Now that the serial device has a trap handler adhering to the MMIO fault
handler prototype, let's switch over to the joint registration routine.

This allows us to get rid of the ioport shim routines.

Signed-off-by: Andre Przywara <[email protected]>
Reviewed-by: Alexandru Elisei <[email protected]>
---
 hw/serial.c | 31 +++----------------------------
 1 file changed, 3 insertions(+), 28 deletions(-)

diff --git a/hw/serial.c b/hw/serial.c
index c495eac1..4be188a1 100644
--- a/hw/serial.c
+++ b/hw/serial.c
@@ -392,26 +392,6 @@ static void serial8250_mmio(struct kvm_cpu *vcpu, u64 
addr, u8 *data, u32 len,
                serial8250_in(dev, vcpu, addr - dev->iobase, data);
 }
 
-static bool serial8250_ioport_out(struct ioport *ioport, struct kvm_cpu *vcpu,
-                                 u16 port, void *data, int size)
-{
-       struct serial8250_device *dev = ioport->priv;
-
-       serial8250_mmio(vcpu, port, data, 1, true, dev);
-
-       return true;
-}
-
-static bool serial8250_ioport_in(struct ioport *ioport, struct kvm_cpu *vcpu,
-                                u16 port, void *data, int size)
-{
-       struct serial8250_device *dev = ioport->priv;
-
-       serial8250_mmio(vcpu, port, data, 1, false, dev);
-
-       return true;
-}
-
 #ifdef CONFIG_HAS_LIBFDT
 
 char *fdt_stdout_path = NULL;
@@ -449,11 +429,6 @@ void serial8250_generate_fdt_node(void *fdt, struct 
device_header *dev_hdr,
 }
 #endif
 
-static struct ioport_operations serial8250_ops = {
-       .io_in                  = serial8250_ioport_in,
-       .io_out                 = serial8250_ioport_out,
-};
-
 static int serial8250__device_init(struct kvm *kvm,
                                   struct serial8250_device *dev)
 {
@@ -464,7 +439,7 @@ static int serial8250__device_init(struct kvm *kvm,
                return r;
 
        ioport__map_irq(&dev->irq);
-       r = ioport__register(kvm, dev->iobase, &serial8250_ops, 8, dev);
+       r = kvm__register_pio(kvm, dev->iobase, 8, serial8250_mmio, dev);
 
        return r;
 }
@@ -487,7 +462,7 @@ cleanup:
        for (j = 0; j <= i; j++) {
                struct serial8250_device *dev = &devices[j];
 
-               ioport__unregister(kvm, dev->iobase);
+               kvm__deregister_pio(kvm, dev->iobase);
                device__unregister(&dev->dev_hdr);
        }
 
@@ -503,7 +478,7 @@ int serial8250__exit(struct kvm *kvm)
        for (i = 0; i < ARRAY_SIZE(devices); i++) {
                struct serial8250_device *dev = &devices[i];
 
-               r = ioport__unregister(kvm, dev->iobase);
+               r = kvm__deregister_pio(kvm, dev->iobase);
                if (r < 0)
                        return r;
                device__unregister(&dev->dev_hdr);
-- 
2.17.5

_______________________________________________
kvmarm mailing list
[email protected]
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

Reply via email to