Thread (6 messages) flat view 6 messages, 5 authors, 2016-06-21

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

From: Michael Neuling <hidden>
Date: 2016-06-17 03:45:10

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.
=20
@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 <redacted>
=20
Excerpts from Frederic Barrat's message of 2016-06-15 16:42:16 +0200:
quoted
=20
Tested by cxlflash on bare-metal and powerVM.
=20
Signed-off-by: Frederic Barrat <redacted>
---
=C2=A0drivers/misc/cxl/vphb.c | 21 ++++++++++-----------
=C2=A01 file changed, 10 insertions(+), 11 deletions(-)
=20
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 =3D
=C2=A0
=C2=A0int cxl_pci_vphb_add(struct cxl_afu *afu)
=C2=A0{
-=C2=A0=C2=A0=C2=A0=C2=A0struct pci_dev *phys_dev;
-=C2=A0=C2=A0=C2=A0=C2=A0struct pci_controller *phb, *phys_phb;
+=C2=A0=C2=A0=C2=A0=C2=A0struct pci_controller *phb;
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0struct device_node *vphb_dn;
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0struct device *parent;
=C2=A0
-=C2=A0=C2=A0=C2=A0=C2=A0if (cpu_has_feature(CPU_FTR_HVMODE)) {
-=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0phys_dev =3D to_pci_de=
v(afu->adapter->dev.parent);
quoted
-=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0phys_phb =3D pci_bus_t=
o_host(phys_dev->bus);
quoted
-=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0vphb_dn =3D phys_phb->=
dn;
quoted
-=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0parent =3D &phys_dev->=
dev;
quoted
-=C2=A0=C2=A0=C2=A0=C2=A0} else {
-=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0vphb_dn =3D afu->adapt=
er->dev.parent->of_node;
quoted
-=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0parent =3D afu->adapte=
r->dev.parent;
quoted
-=C2=A0=C2=A0=C2=A0=C2=A0}
+=C2=A0=C2=A0=C2=A0=C2=A0/* The parent device is the adapter. Reuse the=
 device node of
quoted
+=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0* the adapter.
+=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0* We don't seem to care what device node=
 is used for the vPHB,
quoted
+=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0* but tools such as lsvpd walk up the de=
vice parents looking
quoted
+=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0* for a valid location code, so we might=
 as well show devices
quoted
+=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0* attached to the adapter as being locat=
ed on that adapter.
quoted
+=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0*/
+=C2=A0=C2=A0=C2=A0=C2=A0parent =3D afu->adapter->dev.parent;
+=C2=A0=C2=A0=C2=A0=C2=A0vphb_dn =3D parent->of_node;
=C2=A0
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0/* Alloc and setup PHB data structure */
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0phb =3D pcibios_alloc_controller(vphb_dn)=
;
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help