On Fri, Apr 29, 2005 at 10:23:36PM +0400, Roman Kagan wrote:
> On Wed, Apr 27, 2005 at 04:14:08PM -0700, Patrick Mansfield wrote:
> > On Wed, Apr 27, 2005 at 05:21:10PM -0400, Alan Stern wrote:
> > 
> > > David's right.  Why did kobject_hotplug() move out of kobject_add() and
> > > into its callers sometime after 2.6.11?  In particular the invocation in 
> > > device_add() is in the wrong place; it needs to come before 
> > > bus_add_device() starts probing for drivers.  Otherwise, as David points 
> > > out, when the drivers start registering child devices from their probe 
> > > methods, the hotplug events for those child devices will appear before 
> > > the 
> > > event for the parent.
> > 
> > But bus_add_device() calls device_add_attrs() to create attrs, if you call
> > it after the hotplug, the user space hotplug event shows up before the
> > sysfs attrs are created (if the driver is using the bus->dev_attrs field).
> 
> Do I get it right that at hotplug time the attributes do already exist,
> but it is the sysfs files which don't?  It's certainly true for USB, I'm
> much less acquainted with other subsystems.
> 
> Then, instead of trying to make sure the attributes are available via
> sysfs at hotplug time, we can use another means to pass them to hotplug:
> we can add a routine, which, when called from the .hotplug function
> and given pointers to struct attribute and struct device, would add
> environment variable
> 
> SYSFS_attrName=attrValue
> 
> using attribute's .name and .show, to the list of env variables exported
> to the hotplug callout.  This would allow udev or whatever is called to
> get most relevant attributes via environment, if available, otherwise to
> poke in sysfs and wait until they show up.
> 
> Sorry but I can't illustrate it with a patch at the moment as I'm
> leaving for four days off, maybe I'll be able to do it when I'm back.

You mean the current kevent_uevent() call with the action of
KOBJ_CHANGE?  :)

That would work too, for apps that listen to kevent messages.

thanks,

greg k-h


-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games.
Get your fingers limbered up and give it your best shot. 4 great events, 4
opportunities to win big! Highest score wins.NEC IT Guy Games. Play to
win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to