From: "Michael S. Tsirkin" <mst@redhat.com>
To: qemu-devel@nongnu.org
Cc: Peter Maydell <peter.maydell@linaro.org>,
David Gibson <david@gibson.dropbear.id.au>,
Marcel Apfelbaum <marcel@redhat.com>,
Peter Xu <peterx@redhat.com>, Cornelia Huck <cohuck@redhat.com>,
Christian Borntraeger <borntraeger@de.ibm.com>,
Alexander Graf <agraf@suse.de>,
Richard Henderson <rth@twiddle.net>,
Paolo Bonzini <pbonzini@redhat.com>,
Hannes Reinecke <hare@suse.com>,
Stefano Stabellini <sstabellini@kernel.org>,
Anthony Perard <anthony.perard@citrix.com>,
qemu-s390x@nongnu.org, qemu-block@nongnu.org,
xen-devel@lists.xenproject.org
Subject: [Qemu-devel] [PULL 07/25] pci: Add pci_dev_bus_num() helper
Date: Thu, 21 Dec 2017 16:28:38 +0200 [thread overview]
Message-ID: <1513866427-27125-8-git-send-email-mst@redhat.com> (raw)
In-Reply-To: <1513866427-27125-1-git-send-email-mst@redhat.com>
From: David Gibson <david@gibson.dropbear.id.au>
A fair proportion of the users of pci_bus_num() want to get the bus
number on a specific device, so first have to look up the bus from the
device then call it. This adds a helper to do that (since we're going
to make looking up the bus slightly more verbose).
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Marcel Apfelbaum <marcel@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
---
include/hw/pci/pci.h | 5 +++++
include/hw/xen/xen_common.h | 8 ++++----
hw/pci/pcie_aer.c | 2 +-
hw/s390x/s390-pci-bus.c | 2 +-
hw/scsi/megasas.c | 2 +-
hw/scsi/mptsas.c | 2 +-
hw/xen/xen_pt.c | 6 +++---
7 files changed, 16 insertions(+), 11 deletions(-)
diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h
index 870ebcf..e451235 100644
--- a/include/hw/pci/pci.h
+++ b/include/hw/pci/pci.h
@@ -436,6 +436,11 @@ PCIDevice *pci_nic_init_nofail(NICInfo *nd, PCIBus *rootbus,
PCIDevice *pci_vga_init(PCIBus *bus);
int pci_bus_num(PCIBus *s);
+static inline int pci_dev_bus_num(const PCIDevice *dev)
+{
+ return pci_bus_num(dev->bus);
+}
+
int pci_bus_numa_node(PCIBus *bus);
void pci_for_each_device(PCIBus *bus, int bus_num,
void (*fn)(PCIBus *bus, PCIDevice *d, void *opaque),
diff --git a/include/hw/xen/xen_common.h b/include/hw/xen/xen_common.h
index 86c7f26..64a978e 100644
--- a/include/hw/xen/xen_common.h
+++ b/include/hw/xen/xen_common.h
@@ -542,10 +542,10 @@ static inline void xen_map_pcidev(domid_t dom,
return;
}
- trace_xen_map_pcidev(ioservid, pci_bus_num(pci_dev->bus),
+ trace_xen_map_pcidev(ioservid, pci_dev_bus_num(pci_dev),
PCI_SLOT(pci_dev->devfn), PCI_FUNC(pci_dev->devfn));
xendevicemodel_map_pcidev_to_ioreq_server(xen_dmod, dom, ioservid, 0,
- pci_bus_num(pci_dev->bus),
+ pci_dev_bus_num(pci_dev),
PCI_SLOT(pci_dev->devfn),
PCI_FUNC(pci_dev->devfn));
}
@@ -558,10 +558,10 @@ static inline void xen_unmap_pcidev(domid_t dom,
return;
}
- trace_xen_unmap_pcidev(ioservid, pci_bus_num(pci_dev->bus),
+ trace_xen_unmap_pcidev(ioservid, pci_dev_bus_num(pci_dev),
PCI_SLOT(pci_dev->devfn), PCI_FUNC(pci_dev->devfn));
xendevicemodel_unmap_pcidev_from_ioreq_server(xen_dmod, dom, ioservid, 0,
- pci_bus_num(pci_dev->bus),
+ pci_dev_bus_num(pci_dev),
PCI_SLOT(pci_dev->devfn),
PCI_FUNC(pci_dev->devfn));
}
diff --git a/hw/pci/pcie_aer.c b/hw/pci/pcie_aer.c
index 9720074..21f896a 100644
--- a/hw/pci/pcie_aer.c
+++ b/hw/pci/pcie_aer.c
@@ -1025,7 +1025,7 @@ static int do_pcie_aer_inject_error(Monitor *mon,
}
details->id = id;
details->root_bus = pci_root_bus_path(dev);
- details->bus = pci_bus_num(dev->bus);
+ details->bus = pci_dev_bus_num(dev);
details->devfn = dev->devfn;
return 0;
diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c
index 347329d..f64ad59 100644
--- a/hw/s390x/s390-pci-bus.c
+++ b/hw/s390x/s390-pci-bus.c
@@ -692,7 +692,7 @@ static void s390_pcihost_hot_plug(HotplugHandler *hotplug_dev,
/* In the case the PCI device does not define an id */
/* we generate one based on the PCI address */
dev->id = g_strdup_printf("auto_%02x:%02x.%01x",
- pci_bus_num(pdev->bus),
+ pci_dev_bus_num(pdev),
PCI_SLOT(pdev->devfn),
PCI_FUNC(pdev->devfn));
}
diff --git a/hw/scsi/megasas.c b/hw/scsi/megasas.c
index d5eae62..3e38e9e 100644
--- a/hw/scsi/megasas.c
+++ b/hw/scsi/megasas.c
@@ -2372,7 +2372,7 @@ static void megasas_scsi_realize(PCIDevice *dev, Error **errp)
if (!s->sas_addr) {
s->sas_addr = ((NAA_LOCALLY_ASSIGNED_ID << 24) |
IEEE_COMPANY_LOCALLY_ASSIGNED) << 36;
- s->sas_addr |= (pci_bus_num(dev->bus) << 16);
+ s->sas_addr |= (pci_dev_bus_num(dev) << 16);
s->sas_addr |= (PCI_SLOT(dev->devfn) << 8);
s->sas_addr |= PCI_FUNC(dev->devfn);
}
diff --git a/hw/scsi/mptsas.c b/hw/scsi/mptsas.c
index f6db1b0..3f061f3 100644
--- a/hw/scsi/mptsas.c
+++ b/hw/scsi/mptsas.c
@@ -1312,7 +1312,7 @@ static void mptsas_scsi_realize(PCIDevice *dev, Error **errp)
if (!s->sas_addr) {
s->sas_addr = ((NAA_LOCALLY_ASSIGNED_ID << 24) |
IEEE_COMPANY_LOCALLY_ASSIGNED) << 36;
- s->sas_addr |= (pci_bus_num(dev->bus) << 16);
+ s->sas_addr |= (pci_dev_bus_num(dev) << 16);
s->sas_addr |= (PCI_SLOT(dev->devfn) << 8);
s->sas_addr |= PCI_FUNC(dev->devfn);
}
diff --git a/hw/xen/xen_pt.c b/hw/xen/xen_pt.c
index 9bba717..6236f0c 100644
--- a/hw/xen/xen_pt.c
+++ b/hw/xen/xen_pt.c
@@ -73,7 +73,7 @@ void xen_pt_log(const PCIDevice *d, const char *f, ...)
va_start(ap, f);
if (d) {
- fprintf(stderr, "[%02x:%02x.%d] ", pci_bus_num(d->bus),
+ fprintf(stderr, "[%02x:%02x.%d] ", pci_dev_bus_num(d),
PCI_SLOT(d->devfn), PCI_FUNC(d->devfn));
}
vfprintf(stderr, f, ap);
@@ -711,7 +711,7 @@ static void xen_pt_destroy(PCIDevice *d) {
intx = xen_pt_pci_intx(s);
rc = xc_domain_unbind_pt_irq(xen_xc, xen_domid, machine_irq,
PT_IRQ_TYPE_PCI,
- pci_bus_num(d->bus),
+ pci_dev_bus_num(d),
PCI_SLOT(s->dev.devfn),
intx,
0 /* isa_irq */);
@@ -867,7 +867,7 @@ static void xen_pt_realize(PCIDevice *d, Error **errp)
uint8_t e_intx = xen_pt_pci_intx(s);
rc = xc_domain_bind_pt_pci_irq(xen_xc, xen_domid, machine_irq,
- pci_bus_num(d->bus),
+ pci_dev_bus_num(d),
PCI_SLOT(d->devfn),
e_intx);
if (rc < 0) {
--
MST
next prev parent reply other threads:[~2017-12-21 14:28 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-21 14:27 [Qemu-devel] [PULL 00/25] pc, pci, virtio: features, fixes, cleanups Michael S. Tsirkin
2017-12-21 14:27 ` [Qemu-devel] [PULL 01/25] smbios: support setting OEM strings table Michael S. Tsirkin
2017-12-21 14:28 ` [Qemu-devel] [PULL 02/25] qdev-properties: add UUID property type Michael S. Tsirkin
2017-12-21 14:28 ` [Qemu-devel] [PULL 03/25] vmgenid: use " Michael S. Tsirkin
2017-12-21 14:28 ` [Qemu-devel] [PULL 04/25] tests: add test to check VirtQueue object Michael S. Tsirkin
2017-12-21 14:28 ` [Qemu-devel] [PULL 05/25] pci: Rename root bus initialization functions for clarity Michael S. Tsirkin
2017-12-21 14:28 ` [Qemu-devel] [PULL 06/25] pci: Move bridge data structures from pci_bus.h to pci_bridge.h Michael S. Tsirkin
2017-12-21 14:28 ` Michael S. Tsirkin [this message]
2017-12-21 14:28 ` [Qemu-devel] [PULL 08/25] pci: Eliminate redundant PCIDevice::bus pointer Michael S. Tsirkin
2017-12-21 14:29 ` [Qemu-devel] [PULL 09/25] pci: Eliminate pci_find_primary_bus() Michael S. Tsirkin
2017-12-21 14:29 ` [Qemu-devel] [PULL 10/25] virtio_error: don't invoke status callbacks Michael S. Tsirkin
2018-02-13 20:53 ` [Qemu-devel] [Qemu-stable] " Peter Lieven
2018-02-13 22:23 ` Michael S. Tsirkin
2018-02-14 21:12 ` Peter Lieven
2017-12-21 14:29 ` [Qemu-devel] [PULL 11/25] tests/pxe-test: Remove unnecessary special case test functions Michael S. Tsirkin
2017-12-21 14:29 ` [Qemu-devel] [PULL 12/25] tests/pxe-test: Use table of testcases rather than open-coding Michael S. Tsirkin
2017-12-21 14:29 ` [Qemu-devel] [PULL 13/25] tests/pxe-test: Test net booting over IPv6 in some cases Michael S. Tsirkin
2017-12-21 14:29 ` [Qemu-devel] [PULL 14/25] tests/pxe-test: Add some extra tests Michael S. Tsirkin
2017-12-21 14:29 ` [Qemu-devel] [PULL 15/25] hw/block/nvme: QOM'ify PCI NVME Michael S. Tsirkin
2017-12-21 20:38 ` Michael S. Tsirkin
2017-12-21 23:02 ` Philippe Mathieu-Daudé
2017-12-21 14:29 ` [Qemu-devel] [PULL 16/25] hw/pci-host/piix: QOM'ify the IGD Passthrough host bridge Michael S. Tsirkin
2017-12-21 14:29 ` [Qemu-devel] [PULL 17/25] hw/pci-host/xilinx: QOM'ify the AXI-PCIe " Michael S. Tsirkin
2017-12-21 14:29 ` [Qemu-devel] [PULL 18/25] hw/pci: remove obsolete PCIDevice->init() Michael S. Tsirkin
2017-12-21 14:29 ` [Qemu-devel] [PULL 19/25] vhost-user: fix indentation in protocol specification Michael S. Tsirkin
2017-12-21 14:29 ` [Qemu-devel] [PULL 20/25] vhost-user: document memory accesses Michael S. Tsirkin
2017-12-21 14:30 ` [Qemu-devel] [PULL 23/25] virtio-pci: Don't force Subsystem Vendor ID = Vendor ID Michael S. Tsirkin
2017-12-21 14:31 ` [Qemu-devel] [PULL 24/25] dump-guest-memory.py: fix "You can't do that without a process to debug" Michael S. Tsirkin
2017-12-21 14:31 ` [Qemu-devel] [PULL 25/25] smbus: do not immediately complete commands Michael S. Tsirkin
2017-12-21 14:33 ` [Qemu-devel] [PULL 21/25] intel_iommu: remove X86_IOMMU_PCI_DEVFN_MAX Michael S. Tsirkin
2017-12-21 14:34 ` [Qemu-devel] [PULL 22/25] intel_iommu: fix error param in string Michael S. Tsirkin
2017-12-21 20:26 ` [Qemu-devel] [PULL 00/25] pc, pci, virtio: features, fixes, cleanups Peter Maydell
2017-12-21 20:37 ` Michael S. Tsirkin
2017-12-21 23:05 ` Peter Maydell
2017-12-21 23:42 ` Michael S. Tsirkin
2017-12-22 0:44 ` Philippe Mathieu-Daudé
2017-12-21 23:05 ` Philippe Mathieu-Daudé
2017-12-21 23:43 ` Michael S. Tsirkin
2018-01-08 9:14 ` Peter Maydell
2018-01-08 17:04 ` Michael S. Tsirkin
2018-01-08 18:10 ` Michael S. Tsirkin
2018-01-09 1:10 ` David Gibson
2018-01-09 4:09 ` Michael S. Tsirkin
2018-01-16 2:48 ` Michael S. Tsirkin
2018-01-16 6:28 ` Jason Wang
2018-01-16 6:33 ` Jason Wang
2018-01-16 8:03 ` Dmitry Fleytman
2018-01-17 3:14 ` Jason Wang
2018-01-09 4:11 ` Michael S. Tsirkin
2018-01-11 15:31 ` Peter Maydell
2018-01-11 19:59 ` Michael S. Tsirkin
2018-01-11 20:06 ` Michael S. Tsirkin
2018-01-11 21:05 ` Michael S. Tsirkin
2018-01-12 10:44 ` Peter Maydell
2018-01-12 16:02 ` Michael S. Tsirkin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1513866427-27125-8-git-send-email-mst@redhat.com \
--to=mst@redhat.com \
--cc=agraf@suse.de \
--cc=anthony.perard@citrix.com \
--cc=borntraeger@de.ibm.com \
--cc=cohuck@redhat.com \
--cc=david@gibson.dropbear.id.au \
--cc=hare@suse.com \
--cc=marcel@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=peterx@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=rth@twiddle.net \
--cc=sstabellini@kernel.org \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).