[PATCH] cxl: Make vPHB device node match adapter's

Ian Munsie imunsie at au1.ibm.com
Thu Jun 16 07:53:49 AEST 2016


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?

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