From: "Michael S. Tsirkin" <mst@redhat.com>
To: Alexey Kardashevskiy <aik@ozlabs.ru>
Cc: "Alexander Graf" <agraf@suse.de>,
qemu-devel@nongnu.org, qemu-ppc@nongnu.org,
"Paul Mackerras" <paulus@samba.org>,
"Andreas Färber" <afaerber@suse.de>
Subject: Re: [Qemu-devel] [PATCH v2] spapr-pci: fix config space access to support bridges
Date: Mon, 19 Aug 2013 10:25:54 +0300 [thread overview]
Message-ID: <20130819072554.GD17937@redhat.com> (raw)
In-Reply-To: <1376651378-19410-1-git-send-email-aik@ozlabs.ru>
On Fri, Aug 16, 2013 at 09:09:38PM +1000, Alexey Kardashevskiy wrote:
> spapr-pci config space accessors use find_dev() to find a PCI device.
> However find_dev() only searched on a primary bus and did not do
> recursive search through secondary buses so config space access was not
> possible for devices other that on a primary bus.
>
> This fixed find_dev() by using the PCI API pci_find_device() function.
> This effectively enabled pci bridges on spapr.
>
> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
> ---
Acked-by: Michael S. Tsirkin <mst@redhat.com>
>
> Does not it make sense to move spapr_pci.c from hw/ppc to hw/pci?
It's a pci host bridge, isn't it?
If yes you can put it in hw/pci-host.
hw/pci is core code.
> We already
> do move interrupt controllers to hw/intc.
>
>
> ---
> Changes:
> v2:
> * fixed coding style
> * config space access traces moved out
> ---
> hw/ppc/spapr_pci.c | 11 +----------
> 1 file changed, 1 insertion(+), 10 deletions(-)
>
> diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c
> index 1ca35a0..91d78a6 100644
> --- a/hw/ppc/spapr_pci.c
> +++ b/hw/ppc/spapr_pci.c
> @@ -65,22 +65,13 @@ static PCIDevice *find_dev(sPAPREnvironment *spapr, uint64_t buid,
> {
> sPAPRPHBState *sphb = find_phb(spapr, buid);
> PCIHostState *phb = PCI_HOST_BRIDGE(sphb);
> - BusState *bus = BUS(phb->bus);
> - BusChild *kid;
> int devfn = (config_addr >> 8) & 0xFF;
>
> if (!phb) {
> return NULL;
> }
>
> - QTAILQ_FOREACH(kid, &bus->children, sibling) {
> - PCIDevice *dev = (PCIDevice *)kid->child;
> - if (dev->devfn == devfn) {
> - return dev;
> - }
> - }
> -
> - return NULL;
> + return pci_find_device(phb->bus, (config_addr >> 16) & 0xff, devfn);
> }
>
> static uint32_t rtas_pci_cfgaddr(uint32_t arg)
> --
> 1.8.3.2
prev parent reply other threads:[~2013-08-19 7:24 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-16 11:09 [Qemu-devel] [PATCH v2] spapr-pci: fix config space access to support bridges Alexey Kardashevskiy
2013-08-16 13:04 ` Alexander Graf
2013-08-19 7:25 ` Michael S. Tsirkin [this message]
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=20130819072554.GD17937@redhat.com \
--to=mst@redhat.com \
--cc=afaerber@suse.de \
--cc=agraf@suse.de \
--cc=aik@ozlabs.ru \
--cc=paulus@samba.org \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.