hw/misc/ivshmem: Bury dead legacy INTx code
diff mbox series

Message ID 20191205203557.11254-1-armbru@redhat.com
State New
Headers show
Series
  • hw/misc/ivshmem: Bury dead legacy INTx code
Related show

Commit Message

Markus Armbruster Dec. 5, 2019, 8:35 p.m. UTC
Devices "ivshmem-plain" and "ivshmem-doorbell" support only MSI-X.
Config space register Interrupt Pin is zero.  Device "ivshmem"
additionally supported legacy INTx, but it was removed in commit
5a0e75f0a9 "hw/misc/ivshmem: Remove deprecated "ivshmem" legacy
device".  The commit left ivshmem_update_irq() behind.  Since the
Interrupt Pin register is zero, the function does nothing.  Remove it.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 hw/misc/ivshmem.c | 35 -----------------------------------
 1 file changed, 35 deletions(-)

Comments

Thomas Huth Dec. 6, 2019, 4:59 a.m. UTC | #1
On 05/12/2019 21.35, Markus Armbruster wrote:
> Devices "ivshmem-plain" and "ivshmem-doorbell" support only MSI-X.
> Config space register Interrupt Pin is zero.  Device "ivshmem"
> additionally supported legacy INTx, but it was removed in commit
> 5a0e75f0a9 "hw/misc/ivshmem: Remove deprecated "ivshmem" legacy
> device".  The commit left ivshmem_update_irq() behind.  Since the
> Interrupt Pin register is zero, the function does nothing.  Remove it.
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>  hw/misc/ivshmem.c | 35 -----------------------------------
>  1 file changed, 35 deletions(-)
> 
> diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c
> index 5e3b05eae0..710cdb7263 100644
> --- a/hw/misc/ivshmem.c
> +++ b/hw/misc/ivshmem.c
> @@ -136,44 +136,11 @@ static inline bool ivshmem_is_master(IVShmemState *s)
>      return s->master == ON_OFF_AUTO_ON;
>  }
>  
> -static void ivshmem_update_irq(IVShmemState *s)
> -{
> -    PCIDevice *d = PCI_DEVICE(s);
> -    uint32_t isr = s->intrstatus & s->intrmask;
> -
> -    /*
> -     * Do nothing unless the device actually uses INTx.  Here's how
> -     * the device variants signal interrupts, what they put in PCI
> -     * config space:
> -     * Device variant    Interrupt  Interrupt Pin  MSI-X cap.
> -     * ivshmem-plain         none            0         no
> -     * ivshmem-doorbell     MSI-X            1        yes(1)
> -     * ivshmem,msi=off       INTx            1         no
> -     * ivshmem,msi=on       MSI-X            1(2)     yes(1)
> -     * (1) if guest enabled MSI-X
> -     * (2) the device lies
> -     * Leads to the condition for doing nothing:
> -     */
> -    if (ivshmem_has_feature(s, IVSHMEM_MSI)
> -        || !d->config[PCI_INTERRUPT_PIN]) {
> -        return;
> -    }
> -
> -    /* don't print ISR resets */
> -    if (isr) {
> -        IVSHMEM_DPRINTF("Set IRQ to %d (%04x %04x)\n",
> -                        isr ? 1 : 0, s->intrstatus, s->intrmask);
> -    }
> -
> -    pci_set_irq(d, isr != 0);
> -}
> -
>  static void ivshmem_IntrMask_write(IVShmemState *s, uint32_t val)
>  {
>      IVSHMEM_DPRINTF("IntrMask write(w) val = 0x%04x\n", val);
>  
>      s->intrmask = val;
> -    ivshmem_update_irq(s);
>  }
>  
>  static uint32_t ivshmem_IntrMask_read(IVShmemState *s)
> @@ -189,7 +156,6 @@ static void ivshmem_IntrStatus_write(IVShmemState *s, uint32_t val)
>      IVSHMEM_DPRINTF("IntrStatus write(w) val = 0x%04x\n", val);
>  
>      s->intrstatus = val;
> -    ivshmem_update_irq(s);
>  }
>  
>  static uint32_t ivshmem_IntrStatus_read(IVShmemState *s)
> @@ -198,7 +164,6 @@ static uint32_t ivshmem_IntrStatus_read(IVShmemState *s)
>  
>      /* reading ISR clears all interrupts */
>      s->intrstatus = 0;
> -    ivshmem_update_irq(s);
>      return ret;
>  }
>  
> 

Reviewed-by: Thomas Huth <thuth@redhat.com>

Patch
diff mbox series

diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c
index 5e3b05eae0..710cdb7263 100644
--- a/hw/misc/ivshmem.c
+++ b/hw/misc/ivshmem.c
@@ -136,44 +136,11 @@  static inline bool ivshmem_is_master(IVShmemState *s)
     return s->master == ON_OFF_AUTO_ON;
 }
 
-static void ivshmem_update_irq(IVShmemState *s)
-{
-    PCIDevice *d = PCI_DEVICE(s);
-    uint32_t isr = s->intrstatus & s->intrmask;
-
-    /*
-     * Do nothing unless the device actually uses INTx.  Here's how
-     * the device variants signal interrupts, what they put in PCI
-     * config space:
-     * Device variant    Interrupt  Interrupt Pin  MSI-X cap.
-     * ivshmem-plain         none            0         no
-     * ivshmem-doorbell     MSI-X            1        yes(1)
-     * ivshmem,msi=off       INTx            1         no
-     * ivshmem,msi=on       MSI-X            1(2)     yes(1)
-     * (1) if guest enabled MSI-X
-     * (2) the device lies
-     * Leads to the condition for doing nothing:
-     */
-    if (ivshmem_has_feature(s, IVSHMEM_MSI)
-        || !d->config[PCI_INTERRUPT_PIN]) {
-        return;
-    }
-
-    /* don't print ISR resets */
-    if (isr) {
-        IVSHMEM_DPRINTF("Set IRQ to %d (%04x %04x)\n",
-                        isr ? 1 : 0, s->intrstatus, s->intrmask);
-    }
-
-    pci_set_irq(d, isr != 0);
-}
-
 static void ivshmem_IntrMask_write(IVShmemState *s, uint32_t val)
 {
     IVSHMEM_DPRINTF("IntrMask write(w) val = 0x%04x\n", val);
 
     s->intrmask = val;
-    ivshmem_update_irq(s);
 }
 
 static uint32_t ivshmem_IntrMask_read(IVShmemState *s)
@@ -189,7 +156,6 @@  static void ivshmem_IntrStatus_write(IVShmemState *s, uint32_t val)
     IVSHMEM_DPRINTF("IntrStatus write(w) val = 0x%04x\n", val);
 
     s->intrstatus = val;
-    ivshmem_update_irq(s);
 }
 
 static uint32_t ivshmem_IntrStatus_read(IVShmemState *s)
@@ -198,7 +164,6 @@  static uint32_t ivshmem_IntrStatus_read(IVShmemState *s)
 
     /* reading ISR clears all interrupts */
     s->intrstatus = 0;
-    ivshmem_update_irq(s);
     return ret;
 }