Messages in this thread | | | Date | Sat, 9 Aug 2014 07:20:45 -0700 | From | Greg Kroah-Hartman <> | Subject | Re: [PATCH] driver core: fix race with userland in device_add() |
| |
On Wed, Aug 06, 2014 at 04:18:38PM -0400, Alan Stern wrote: > On Wed, 6 Aug 2014, Sergey Klyaus wrote: > > > Hello. > > > > I wrote a patch that fixes the problem that described above, here are a > > patch for 3.16.0+ kernel (cloned from GitHub today). Maybe that "if > > (MAJOR(dev->devt)) " part has to go even after BUS_NOTIFY_ADD_DEVICE abd > > KOBJ_ADD? I put it before it, because there is no rollback code in > > device_add() for that part. > > I think this is fine. However, I suspect the order of the other calls > there isn't totally right. For instance, the > > if (parent) > klist_add_tail(&dev->p->knode_parent, > &parent->p->klist_children); > > part should probably be the first thing after we know the routine can't > abort. > > I guess the time when bus_probe_device() gets called doesn't matter > much, because the driver might not even be loaded at this point. But > what about all the dev->class stuff at the end of device_add()? Should > that happen before any uevents are sent out? > > Greg, have you looked at this?
I haven't, thanks for pointing it out, I'll put it on my list of things to do this week.
greg k-h
| |