Message ID | 520A2A0D.4010600@siemens.com |
---|---|
State | New |
Headers | show |
Am 13.08.2013 14:43, schrieb Jan Kiszka: > Now that cpu_in/out is just a wrapper around address_space_rw, we can > also call the latter directly. As host endianness == guest endianness, > there is no need for the memory access helpers st*_p/ld*_p as well. > > Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> > --- > kvm-all.c | 28 ++-------------------------- > 1 files changed, 2 insertions(+), 26 deletions(-) Looks sensible, Reviewed-by: Andreas Färber <afaerber@suse.de> Andreas
Il 13/08/2013 14:43, Jan Kiszka ha scritto: > Now that cpu_in/out is just a wrapper around address_space_rw, we can > also call the latter directly. As host endianness == guest endianness, > there is no need for the memory access helpers st*_p/ld*_p as well. > > Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> > --- > kvm-all.c | 28 ++-------------------------- > 1 files changed, 2 insertions(+), 26 deletions(-) > > diff --git a/kvm-all.c b/kvm-all.c > index 716860f..c861354 100644 > --- a/kvm-all.c > +++ b/kvm-all.c > @@ -1499,32 +1499,8 @@ static void kvm_handle_io(uint16_t port, void *data, int direction, int size, > uint8_t *ptr = data; > > for (i = 0; i < count; i++) { > - if (direction == KVM_EXIT_IO_IN) { > - switch (size) { > - case 1: > - stb_p(ptr, cpu_inb(port)); > - break; > - case 2: > - stw_p(ptr, cpu_inw(port)); > - break; > - case 4: > - stl_p(ptr, cpu_inl(port)); > - break; > - } > - } else { > - switch (size) { > - case 1: > - cpu_outb(port, ldub_p(ptr)); > - break; > - case 2: > - cpu_outw(port, lduw_p(ptr)); > - break; > - case 4: > - cpu_outl(port, ldl_p(ptr)); > - break; > - } > - } > - > + address_space_rw(&address_space_io, port, ptr, size, > + direction == KVM_EXIT_IO_OUT); > ptr += size; > } > } > Applied, thanks. Paolo
diff --git a/kvm-all.c b/kvm-all.c index 716860f..c861354 100644 --- a/kvm-all.c +++ b/kvm-all.c @@ -1499,32 +1499,8 @@ static void kvm_handle_io(uint16_t port, void *data, int direction, int size, uint8_t *ptr = data; for (i = 0; i < count; i++) { - if (direction == KVM_EXIT_IO_IN) { - switch (size) { - case 1: - stb_p(ptr, cpu_inb(port)); - break; - case 2: - stw_p(ptr, cpu_inw(port)); - break; - case 4: - stl_p(ptr, cpu_inl(port)); - break; - } - } else { - switch (size) { - case 1: - cpu_outb(port, ldub_p(ptr)); - break; - case 2: - cpu_outw(port, lduw_p(ptr)); - break; - case 4: - cpu_outl(port, ldl_p(ptr)); - break; - } - } - + address_space_rw(&address_space_io, port, ptr, size, + direction == KVM_EXIT_IO_OUT); ptr += size; } }
Now that cpu_in/out is just a wrapper around address_space_rw, we can also call the latter directly. As host endianness == guest endianness, there is no need for the memory access helpers st*_p/ld*_p as well. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> --- kvm-all.c | 28 ++-------------------------- 1 files changed, 2 insertions(+), 26 deletions(-)