Messages in this thread | | | Date | Wed, 11 Jul 2007 14:28:50 -0700 | From | Yinghai Lu <> | Subject | Re: [PATCH 1/5] try parent numa_node at first before using default |
| |
Greg KH wrote: > On Wed, Jul 11, 2007 at 12:54:58PM +0200, Stefan Richter wrote: >> Yinghai Lu wrote: >>> --- a/drivers/base/core.c >>> +++ b/drivers/base/core.c >>> @@ -547,6 +547,8 @@ static void klist_children_put(struct klist_node *n) >>> >>> void device_initialize(struct device *dev) >>> { >>> + int node; >>> + >>> kobj_set_kset_s(dev, devices_subsys); >>> kobject_init(&dev->kobj); >>> klist_init(&dev->klist_children, klist_children_get, >>> @@ -557,7 +559,9 @@ void device_initialize(struct device *dev) >>> spin_lock_init(&dev->devres_lock); >>> INIT_LIST_HEAD(&dev->devres_head); >>> device_init_wakeup(dev, 0); >>> - set_dev_node(dev, -1); >>> + >>> + node = dev->parent ? dev_to_node(dev->parent) : -1; >>> + set_dev_node(dev, node); >>> } >> Two remarks: >> >> - device_add() is perhaps a better place to do this. Otherwise you >> had to change code like drivers/input/gameport/gameport.c:: >> gameport_init_port() which sets the parent device *after* the >> call to device_initialize(). if other device overwrite that, it is OK. even for all pci_dev, pci_device_add will call set_dev_node(&dev->dev, pcibus_to_node(bus)); to overwrite it. but for netdev under pci_dev, it will get node from pci_dev directly.
> > I agree, lots of code sets up the parent pointer after initialize and > before add. One such example is the whole USB subsystem. > > Which makes me wonder how this code was really tested at all to show > that it actually had an affect...
original default is -1, and this patch just try to use parent's node as default.
YH - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |