Re: [Qemu-devel] [PATCH 16/23] ioport: register ranges by byte aligned addresses always

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 07/25/2011 09:02 AM, Avi Kivity wrote:
The I/O port space is byte addressable, even for word and long accesses.

An example is the VMware svga card, which has long ports on offsets 0,
1, and 2.

Signed-off-by: Avi Kivity<avi@xxxxxxxxxx>

I've always thought this was odd but didn't know of a specific circumstance where it broke a device.

This was a big problem with the old API. Devices don't register their interest in specific sizes. They may ignore certain size accesses but that's a device specific behavior.

Reviewed-by: Anthony Liguori <aliguori@xxxxxxxxxx>

Regards,

Anthony Liguori

---
  ioport.c |    4 ++--
  1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/ioport.c b/ioport.c
index 0d2611d..a32483b 100644
--- a/ioport.c
+++ b/ioport.c
@@ -146,7 +146,7 @@ int register_ioport_read(pio_addr_t start, int length, int size,
          hw_error("register_ioport_read: invalid size");
          return -1;
      }
-    for(i = start; i<  start + length; i += size) {
+    for(i = start; i<  start + length; ++i) {
          ioport_read_table[bsize][i] = func;
          if (ioport_opaque[i] != NULL&&  ioport_opaque[i] != opaque)
              hw_error("register_ioport_read: invalid opaque for address 0x%x",
@@ -166,7 +166,7 @@ int register_ioport_write(pio_addr_t start, int length, int size,
          hw_error("register_ioport_write: invalid size");
          return -1;
      }
-    for(i = start; i<  start + length; i += size) {
+    for(i = start; i<  start + length; ++i) {
          ioport_write_table[bsize][i] = func;
          if (ioport_opaque[i] != NULL&&  ioport_opaque[i] != opaque)
              hw_error("register_ioport_write: invalid opaque for address 0x%x",

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux