* [PATCH] hw/misc/ivshmem: Bury dead legacy INTx code
@ 2019-12-05 20:35 Markus Armbruster
2019-12-06 4:59 ` Thomas Huth
0 siblings, 1 reply; 2+ messages in thread
From: Markus Armbruster @ 2019-12-05 20:35 UTC (permalink / raw)
To: qemu-devel; +Cc: thuth
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;
}
--
2.21.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] hw/misc/ivshmem: Bury dead legacy INTx code
2019-12-05 20:35 [PATCH] hw/misc/ivshmem: Bury dead legacy INTx code Markus Armbruster
@ 2019-12-06 4:59 ` Thomas Huth
0 siblings, 0 replies; 2+ messages in thread
From: Thomas Huth @ 2019-12-06 4:59 UTC (permalink / raw)
To: Markus Armbruster, qemu-devel
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>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2019-12-06 5:00 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-12-05 20:35 [PATCH] hw/misc/ivshmem: Bury dead legacy INTx code Markus Armbruster
2019-12-06 4:59 ` Thomas Huth
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).