Thread (22 messages) 22 messages, 7 authors, 2016-01-28

Re: [PATCH v9 5/6] PCI: generic: Make pci-host-generic driver numa aware

From: Ganapatrao Kulkarni <hidden>
Date: 2016-01-19 12:32:19
Also in: linux-arch, linux-arm-kernel, linux-pci, linux-s390, linux-sh, linuxppc-dev, lkml

On Tue, Jan 19, 2016 at 3:11 PM, Lorenzo Pieralisi
[off-list ref] wrote:
On Tue, Jan 19, 2016 at 11:28:56AM +0530, Ganapatrao Kulkarni wrote:
quoted
On Mon, Jan 18, 2016 at 11:11 PM, David Daney [off-list ref] wrote:
quoted
On 01/18/2016 08:36 AM, Ganapatrao Kulkarni wrote:
quoted
update numa_node of device associated with pci bus.
moved down devm_kzalloc to allocate from node memory.

Signed-off-by: Ganapatrao Kulkarni <redacted>
---
  drivers/pci/host/pci-host-generic.c | 9 ++++++---
  1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/pci/host/pci-host-generic.c
b/drivers/pci/host/pci-host-generic.c
index 5434c90..0e1ce06 100644
--- a/drivers/pci/host/pci-host-generic.c
+++ b/drivers/pci/host/pci-host-generic.c
@@ -215,11 +215,9 @@ static int gen_pci_probe(struct platform_device
*pdev)
        const struct of_device_id *of_id;
        struct device *dev = &pdev->dev;
        struct device_node *np = dev->of_node;
-       struct gen_pci *pci = devm_kzalloc(dev, sizeof(*pci), GFP_KERNEL);
+       struct gen_pci *pci;
        struct pci_bus *bus, *child;

-       if (!pci)
-               return -ENOMEM;

        type = of_get_property(np, "device_type", NULL);
        if (!type || strcmp(type, "pci")) {
@@ -230,6 +228,11 @@ static int gen_pci_probe(struct platform_device
*pdev)
        of_pci_check_probe_only();

        of_id = of_match_node(gen_pci_of_match, np);
+       set_dev_node(dev, of_node_to_nid(np));

This shouldn't be done in individual platform_drivers, but instead in the
device probing code.

There is code that does this in drivers/of/platform.c and
drivers/of/device.c  Is that not being called for the pci-host-gweneric
devices?  If not, we should figure out why, and perhaps attempt to fix it
rather than doing it here.
is it more appropriate to call of_platform_device_create ?
That's already done to create the platform device by OF core when
populating devices from DT, what David suggested is that you should
add set_dev_node() to core OF code instead of adding it specifically
to the PCI host generic code.
This patch was worked on 4.2(inherited to 4.4) to have correct
numa_node populated on sysfs.
however, on 4.4, OF  is fixed to set numa_node(fixed by
56f2de81e020c537f7e35550d13840143cb765cd)

This patch (patch #5) is not required and will be dropped.
thanks for your comments.

Lorenzo
thanks
Ganapat
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help