Subject: Re: [PATCH 1/5] try parent numa_node at first before using default

From: Greg KH <[email-masked]>
Date: Wed, 11 Jul 2007 14:08:33 -0700

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().

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...

So consider this patch series rejected from my side for now.

thanks,

greg k-h