From: Alexander Graf <agraf@suse.de>
To: David Gibson <david@gibson.dropbear.id.au>
Cc: Alexey Kardashevskiy <aik@ozlabs.ru>,
aliguori@us.ibm.com, qemu-ppc@nongnu.org, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 06/10] pseries: Export find_phb() utility function for PCI code
Date: Tue, 14 Aug 2012 13:45:53 +0200 [thread overview]
Message-ID: <502A3A71.20908@suse.de> (raw)
In-Reply-To: <1344391839-2006-7-git-send-email-david@gibson.dropbear.id.au>
On 08/08/2012 04:10 AM, David Gibson wrote:
> From: Alexey Kardashevskiy <aik@ozlabs.ru>
>
> The pseries PCI code makes use of an internal find_dev() function which
> locates a PCIDevice * given a (platform specific) bus ID and device
> address. Internally this needs to first locate the host bridge on which
> the device resides based on the bus ID. This patch exposes that host
> bridge lookup as a separate function, which we will need later in the MSI
> and VFIO code.
>
> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
> ---
> hw/spapr_pci.c | 32 ++++++++++++++++++++++----------
> 1 file changed, 22 insertions(+), 10 deletions(-)
>
> diff --git a/hw/spapr_pci.c b/hw/spapr_pci.c
> index fcc358e..842068f 100644
> --- a/hw/spapr_pci.c
> +++ b/hw/spapr_pci.c
> @@ -29,27 +29,39 @@
> #include "hw/spapr_pci.h"
> #include "exec-memory.h"
> #include <libfdt.h>
> +#include "trace.h"
trace.h?
Alex
>
> #include "hw/pci_internals.h"
>
> -static PCIDevice *find_dev(sPAPREnvironment *spapr,
> - uint64_t buid, uint32_t config_addr)
> +static sPAPRPHBState *find_phb(sPAPREnvironment *spapr, uint64_t buid)
> {
> - int devfn = (config_addr >> 8) & 0xFF;
> sPAPRPHBState *phb;
>
> QLIST_FOREACH(phb, &spapr->phbs, list) {
> - BusChild *kid;
> -
> if (phb->buid != buid) {
> continue;
> }
> + return phb;
> + }
> +
> + return NULL;
> +}
> +
> +static PCIDevice *find_dev(sPAPREnvironment *spapr, uint64_t buid,
> + uint32_t config_addr)
> +{
> + sPAPRPHBState *phb = find_phb(spapr, buid);
> + BusChild *kid;
> + int devfn = (config_addr >> 8) & 0xFF;
> +
> + if (!phb) {
> + return NULL;
> + }
>
> - QTAILQ_FOREACH(kid, &phb->host_state.bus->qbus.children, sibling) {
> - PCIDevice *dev = (PCIDevice *)kid->child;
> - if (dev->devfn == devfn) {
> - return dev;
> - }
> + QTAILQ_FOREACH(kid, &phb->host_state.bus->qbus.children, sibling) {
> + PCIDevice *dev = (PCIDevice *)kid->child;
> + if (dev->devfn == devfn) {
> + return dev;
> }
> }
>
next prev parent reply other threads:[~2012-08-14 11:46 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-08 2:10 [Qemu-devel] [0/10] pseries updates and cleanups David Gibson
2012-08-08 2:10 ` [Qemu-devel] [PATCH 01/10] pseries: Update SLOF David Gibson
2012-08-08 2:10 ` [Qemu-devel] [PATCH 02/10] pseries: Remove extraneous prints David Gibson
2012-08-08 2:10 ` [Qemu-devel] [PATCH 03/10] pseries: Rework irq assignment to avoid carrying qemu_irqs around David Gibson
2012-08-08 2:10 ` [Qemu-devel] [PATCH 04/10] pseries: Separate PCI RTAS setup from common from emulation specific PCI setup David Gibson
2012-08-08 2:10 ` [Qemu-devel] [PATCH 05/10] pseries: added allocator for a block of IRQs David Gibson
2012-08-08 2:10 ` [Qemu-devel] [PATCH 06/10] pseries: Export find_phb() utility function for PCI code David Gibson
2012-08-14 11:45 ` Alexander Graf [this message]
2012-08-15 1:03 ` [Qemu-devel] [Qemu-ppc] " David Gibson
2012-08-08 2:10 ` [Qemu-devel] [PATCH 07/10] pseries: Add trace event for PCI irqs David Gibson
2012-08-08 2:10 ` [Qemu-devel] [PATCH 08/10] pseries: Add PCI MSI/MSI-X support David Gibson
2012-08-08 2:10 ` [Qemu-devel] [PATCH 09/10] pseries dma: DMA window params added to PHB and DT population changed David Gibson
2012-08-08 2:10 ` [Qemu-devel] [PATCH 10/10] pseries: Update SLOF firmware image David Gibson
2012-08-14 12:34 ` [Qemu-devel] [0/10] pseries updates and cleanups Alexander Graf
2012-08-14 12:56 ` [Qemu-devel] [Qemu-ppc] " Alexander Graf
2012-08-15 1:05 ` David Gibson
2012-08-15 9:30 ` Alexander Graf
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=502A3A71.20908@suse.de \
--to=agraf@suse.de \
--cc=aik@ozlabs.ru \
--cc=aliguori@us.ibm.com \
--cc=david@gibson.dropbear.id.au \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.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).