Mailing List Archive

[PATCH 4/5] hw: Use the PCI_SLOT() macro from 'hw/pci/pci.h'
From: Philippe Mathieu-Daudé <f4bug@amsat.org>

We already have a generic PCI_SLOT() macro in "hw/pci/pci.h"
to extract the PCI slot identifier, use it.

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
hw/hppa/dino.c | 2 +-
hw/i386/xen/xen-hvm.c | 2 +-
hw/isa/piix3.c | 2 +-
hw/mips/gt64xxx_pci.c | 2 +-
hw/pci-host/bonito.c | 2 +-
hw/pci-host/ppce500.c | 2 +-
hw/ppc/ppc4xx_pci.c | 2 +-
hw/sh4/sh_pci.c | 2 +-
8 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/hw/hppa/dino.c b/hw/hppa/dino.c
index 81053b5fb64..5b82c9440d1 100644
--- a/hw/hppa/dino.c
+++ b/hw/hppa/dino.c
@@ -496,7 +496,7 @@ static void dino_set_irq(void *opaque, int irq, int level)

static int dino_pci_map_irq(PCIDevice *d, int irq_num)
{
- int slot = d->devfn >> 3;
+ int slot = PCI_SLOT(d->devfn);

assert(irq_num >= 0 && irq_num <= 3);

diff --git a/hw/i386/xen/xen-hvm.c b/hw/i386/xen/xen-hvm.c
index f3ababf33b6..276254e6ca9 100644
--- a/hw/i386/xen/xen-hvm.c
+++ b/hw/i386/xen/xen-hvm.c
@@ -140,7 +140,7 @@ typedef struct XenIOState {

int xen_pci_slot_get_pirq(PCIDevice *pci_dev, int irq_num)
{
- return irq_num + ((pci_dev->devfn >> 3) << 2);
+ return irq_num + (PCI_SLOT(pci_dev->devfn) << 2);
}

void xen_piix3_set_irq(void *opaque, int irq_num, int level)
diff --git a/hw/isa/piix3.c b/hw/isa/piix3.c
index 587850b8881..f46ccae25cf 100644
--- a/hw/isa/piix3.c
+++ b/hw/isa/piix3.c
@@ -361,7 +361,7 @@ type_init(piix3_register_types)
static int pci_slot_get_pirq(PCIDevice *pci_dev, int pci_intx)
{
int slot_addend;
- slot_addend = (pci_dev->devfn >> 3) - 1;
+ slot_addend = PCI_SLOT(pci_dev->devfn) - 1;
return (pci_intx + slot_addend) & 3;
}

diff --git a/hw/mips/gt64xxx_pci.c b/hw/mips/gt64xxx_pci.c
index e091bc4ed55..588e6f99301 100644
--- a/hw/mips/gt64xxx_pci.c
+++ b/hw/mips/gt64xxx_pci.c
@@ -982,7 +982,7 @@ static int gt64120_pci_map_irq(PCIDevice *pci_dev, int irq_num)
{
int slot;

- slot = (pci_dev->devfn >> 3);
+ slot = PCI_SLOT(pci_dev->devfn);

switch (slot) {
/* PIIX4 USB */
diff --git a/hw/pci-host/bonito.c b/hw/pci-host/bonito.c
index b05295639a6..ee8b193e15b 100644
--- a/hw/pci-host/bonito.c
+++ b/hw/pci-host/bonito.c
@@ -570,7 +570,7 @@ static int pci_bonito_map_irq(PCIDevice *pci_dev, int irq_num)
{
int slot;

- slot = (pci_dev->devfn >> 3);
+ slot = PCI_SLOT(pci_dev->devfn);

switch (slot) {
case 5: /* FULOONG2E_VIA_SLOT, SouthBridge, IDE, USB, ACPI, AC97, MC97 */
diff --git a/hw/pci-host/ppce500.c b/hw/pci-host/ppce500.c
index 9517aab913e..5ad1424b31a 100644
--- a/hw/pci-host/ppce500.c
+++ b/hw/pci-host/ppce500.c
@@ -342,7 +342,7 @@ static const MemoryRegionOps e500_pci_reg_ops = {

static int mpc85xx_pci_map_irq(PCIDevice *pci_dev, int pin)
{
- int devno = pci_dev->devfn >> 3;
+ int devno = PCI_SLOT(pci_dev->devfn);
int ret;

ret = ppce500_pci_map_irq_slot(devno, pin);
diff --git a/hw/ppc/ppc4xx_pci.c b/hw/ppc/ppc4xx_pci.c
index 28724c06f88..e8789f64e80 100644
--- a/hw/ppc/ppc4xx_pci.c
+++ b/hw/ppc/ppc4xx_pci.c
@@ -243,7 +243,7 @@ static void ppc4xx_pci_reset(void *opaque)
* may need further refactoring for other boards. */
static int ppc4xx_pci_map_irq(PCIDevice *pci_dev, int irq_num)
{
- int slot = pci_dev->devfn >> 3;
+ int slot = PCI_SLOT(pci_dev->devfn);

trace_ppc4xx_pci_map_irq(pci_dev->devfn, irq_num, slot);

diff --git a/hw/sh4/sh_pci.c b/hw/sh4/sh_pci.c
index 73d2d0bccb0..734892f47c7 100644
--- a/hw/sh4/sh_pci.c
+++ b/hw/sh4/sh_pci.c
@@ -109,7 +109,7 @@ static const MemoryRegionOps sh_pci_reg_ops = {

static int sh_pci_map_irq(PCIDevice *d, int irq_num)
{
- return (d->devfn >> 3);
+ return PCI_SLOT(d->devfn);
}

static void sh_pci_set_irq(void *opaque, int irq_num, int level)
--
2.26.2
RE: [PATCH 4/5] hw: Use the PCI_SLOT() macro from 'hw/pci/pci.h' [ In reply to ]
> -----Original Message-----
> From: Philippe Mathieu-Daudé <philmd@redhat.com>
> Sent: 12 October 2020 13:45
> To: qemu-devel@nongnu.org
> Cc: Peter Maydell <peter.maydell@linaro.org>; qemu-ppc@nongnu.org; qemu-trivial@nongnu.org; Paul
> Durrant <paul@xen.org>; Aurelien Jarno <aurelien@aurel32.net>; qemu-arm@nongnu.org; Philippe Mathieu-
> Daudé <f4bug@amsat.org>; Michael S. Tsirkin <mst@redhat.com>; Eduardo Habkost <ehabkost@redhat.com>;
> Jiaxun Yang <jiaxun.yang@flygoat.com>; Yoshinori Sato <ysato@users.sourceforge.jp>; Cédric Le Goater
> <clg@kaod.org>; David Gibson <david@gibson.dropbear.id.au>; Stefano Stabellini
> <sstabellini@kernel.org>; Helge Deller <deller@gmx.de>; Anthony Perard <anthony.perard@citrix.com>;
> Richard Henderson <rth@twiddle.net>; Aleksandar Markovic <aleksandar.qemu.devel@gmail.com>; xen-
> devel@lists.xenproject.org; Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>; Marcel Apfelbaum
> <marcel.apfelbaum@gmail.com>; Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>; Paolo Bonzini
> <pbonzini@redhat.com>; Huacai Chen <chenhc@lemote.com>
> Subject: [PATCH 4/5] hw: Use the PCI_SLOT() macro from 'hw/pci/pci.h'
>
> From: Philippe Mathieu-Daudé <f4bug@amsat.org>
>
> We already have a generic PCI_SLOT() macro in "hw/pci/pci.h"
> to extract the PCI slot identifier, use it.
>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

xen-hvm change...

Acked-by: Paul Durrant <paul@xen.org>
Re: [PATCH 4/5] hw: Use the PCI_SLOT() macro from 'hw/pci/pci.h' [ In reply to ]
On Mon, Oct 12, 2020 at 02:45:05PM +0200, Philippe Mathieu-Daud? wrote:
> From: Philippe Mathieu-Daud? <f4bug@amsat.org>
>
> We already have a generic PCI_SLOT() macro in "hw/pci/pci.h"
> to extract the PCI slot identifier, use it.
>
> Signed-off-by: Philippe Mathieu-Daud? <f4bug@amsat.org>

ppc parts
Acked-by: David Gibson <david@gibson.dropbear.id.au>

> ---
> hw/hppa/dino.c | 2 +-
> hw/i386/xen/xen-hvm.c | 2 +-
> hw/isa/piix3.c | 2 +-
> hw/mips/gt64xxx_pci.c | 2 +-
> hw/pci-host/bonito.c | 2 +-
> hw/pci-host/ppce500.c | 2 +-
> hw/ppc/ppc4xx_pci.c | 2 +-
> hw/sh4/sh_pci.c | 2 +-
> 8 files changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/hw/hppa/dino.c b/hw/hppa/dino.c
> index 81053b5fb64..5b82c9440d1 100644
> --- a/hw/hppa/dino.c
> +++ b/hw/hppa/dino.c
> @@ -496,7 +496,7 @@ static void dino_set_irq(void *opaque, int irq, int level)
>
> static int dino_pci_map_irq(PCIDevice *d, int irq_num)
> {
> - int slot = d->devfn >> 3;
> + int slot = PCI_SLOT(d->devfn);
>
> assert(irq_num >= 0 && irq_num <= 3);
>
> diff --git a/hw/i386/xen/xen-hvm.c b/hw/i386/xen/xen-hvm.c
> index f3ababf33b6..276254e6ca9 100644
> --- a/hw/i386/xen/xen-hvm.c
> +++ b/hw/i386/xen/xen-hvm.c
> @@ -140,7 +140,7 @@ typedef struct XenIOState {
>
> int xen_pci_slot_get_pirq(PCIDevice *pci_dev, int irq_num)
> {
> - return irq_num + ((pci_dev->devfn >> 3) << 2);
> + return irq_num + (PCI_SLOT(pci_dev->devfn) << 2);
> }
>
> void xen_piix3_set_irq(void *opaque, int irq_num, int level)
> diff --git a/hw/isa/piix3.c b/hw/isa/piix3.c
> index 587850b8881..f46ccae25cf 100644
> --- a/hw/isa/piix3.c
> +++ b/hw/isa/piix3.c
> @@ -361,7 +361,7 @@ type_init(piix3_register_types)
> static int pci_slot_get_pirq(PCIDevice *pci_dev, int pci_intx)
> {
> int slot_addend;
> - slot_addend = (pci_dev->devfn >> 3) - 1;
> + slot_addend = PCI_SLOT(pci_dev->devfn) - 1;
> return (pci_intx + slot_addend) & 3;
> }
>
> diff --git a/hw/mips/gt64xxx_pci.c b/hw/mips/gt64xxx_pci.c
> index e091bc4ed55..588e6f99301 100644
> --- a/hw/mips/gt64xxx_pci.c
> +++ b/hw/mips/gt64xxx_pci.c
> @@ -982,7 +982,7 @@ static int gt64120_pci_map_irq(PCIDevice *pci_dev, int irq_num)
> {
> int slot;
>
> - slot = (pci_dev->devfn >> 3);
> + slot = PCI_SLOT(pci_dev->devfn);
>
> switch (slot) {
> /* PIIX4 USB */
> diff --git a/hw/pci-host/bonito.c b/hw/pci-host/bonito.c
> index b05295639a6..ee8b193e15b 100644
> --- a/hw/pci-host/bonito.c
> +++ b/hw/pci-host/bonito.c
> @@ -570,7 +570,7 @@ static int pci_bonito_map_irq(PCIDevice *pci_dev, int irq_num)
> {
> int slot;
>
> - slot = (pci_dev->devfn >> 3);
> + slot = PCI_SLOT(pci_dev->devfn);
>
> switch (slot) {
> case 5: /* FULOONG2E_VIA_SLOT, SouthBridge, IDE, USB, ACPI, AC97, MC97 */
> diff --git a/hw/pci-host/ppce500.c b/hw/pci-host/ppce500.c
> index 9517aab913e..5ad1424b31a 100644
> --- a/hw/pci-host/ppce500.c
> +++ b/hw/pci-host/ppce500.c
> @@ -342,7 +342,7 @@ static const MemoryRegionOps e500_pci_reg_ops = {
>
> static int mpc85xx_pci_map_irq(PCIDevice *pci_dev, int pin)
> {
> - int devno = pci_dev->devfn >> 3;
> + int devno = PCI_SLOT(pci_dev->devfn);
> int ret;
>
> ret = ppce500_pci_map_irq_slot(devno, pin);
> diff --git a/hw/ppc/ppc4xx_pci.c b/hw/ppc/ppc4xx_pci.c
> index 28724c06f88..e8789f64e80 100644
> --- a/hw/ppc/ppc4xx_pci.c
> +++ b/hw/ppc/ppc4xx_pci.c
> @@ -243,7 +243,7 @@ static void ppc4xx_pci_reset(void *opaque)
> * may need further refactoring for other boards. */
> static int ppc4xx_pci_map_irq(PCIDevice *pci_dev, int irq_num)
> {
> - int slot = pci_dev->devfn >> 3;
> + int slot = PCI_SLOT(pci_dev->devfn);
>
> trace_ppc4xx_pci_map_irq(pci_dev->devfn, irq_num, slot);
>
> diff --git a/hw/sh4/sh_pci.c b/hw/sh4/sh_pci.c
> index 73d2d0bccb0..734892f47c7 100644
> --- a/hw/sh4/sh_pci.c
> +++ b/hw/sh4/sh_pci.c
> @@ -109,7 +109,7 @@ static const MemoryRegionOps sh_pci_reg_ops = {
>
> static int sh_pci_map_irq(PCIDevice *d, int irq_num)
> {
> - return (d->devfn >> 3);
> + return PCI_SLOT(d->devfn);
> }
>
> static void sh_pci_set_irq(void *opaque, int irq_num, int level)

--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson