[PATCH] cxl: Make vPHB device node match adapter's
Michael Neuling
mikey at neuling.org
Fri Jun 17 13:45:10 AEST 2016
On Thu, 2016-06-16 at 07:53 +1000, Ian Munsie wrote:
> This could probably use a description in the commit message, perhaps
> including output showing the before/after difference this makes to
> lsvpd, but otherwise it looks fine to me.
>
> @Mikey - this look OK to you?
Yeah I think this is a good idea.
IIRC, we had something like this really early on but hit some random issue
and pulled it out before posting.
Mikey
> Acked-by: Ian Munsie <imunsie at au1.ibm.com>
>
> Excerpts from Frederic Barrat's message of 2016-06-15 16:42:16 +0200:
> >
> > Tested by cxlflash on bare-metal and powerVM.
> >
> > Signed-off-by: Frederic Barrat <fbarrat at linux.vnet.ibm.com>
> > ---
> > drivers/misc/cxl/vphb.c | 21 ++++++++++-----------
> > 1 file changed, 10 insertions(+), 11 deletions(-)
> >
> > diff --git a/drivers/misc/cxl/vphb.c b/drivers/misc/cxl/vphb.c
> > index cdc7723..012b6aa 100644
> > --- a/drivers/misc/cxl/vphb.c
> > +++ b/drivers/misc/cxl/vphb.c
> > @@ -208,20 +208,19 @@ static struct pci_controller_ops
> > cxl_pci_controller_ops =
> >
> > int cxl_pci_vphb_add(struct cxl_afu *afu)
> > {
> > - struct pci_dev *phys_dev;
> > - struct pci_controller *phb, *phys_phb;
> > + struct pci_controller *phb;
> > struct device_node *vphb_dn;
> > struct device *parent;
> >
> > - if (cpu_has_feature(CPU_FTR_HVMODE)) {
> > - phys_dev = to_pci_dev(afu->adapter->dev.parent);
> > - phys_phb = pci_bus_to_host(phys_dev->bus);
> > - vphb_dn = phys_phb->dn;
> > - parent = &phys_dev->dev;
> > - } else {
> > - vphb_dn = afu->adapter->dev.parent->of_node;
> > - parent = afu->adapter->dev.parent;
> > - }
> > + /* The parent device is the adapter. Reuse the device node of
> > + * the adapter.
> > + * We don't seem to care what device node is used for the vPHB,
> > + * but tools such as lsvpd walk up the device parents looking
> > + * for a valid location code, so we might as well show devices
> > + * attached to the adapter as being located on that adapter.
> > + */
> > + parent = afu->adapter->dev.parent;
> > + vphb_dn = parent->of_node;
> >
> > /* Alloc and setup PHB data structure */
> > phb = pcibios_alloc_controller(vphb_dn);
More information about the Linuxppc-dev
mailing list