]> git.baikalelectronics.ru Git - kernel.git/commit
driver core: fix shutdown races with probe/remove(v3)
authorMing Lei <ming.lei@canonical.com>
Fri, 22 Jun 2012 10:01:40 +0000 (18:01 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 17 Jul 2012 01:04:25 +0000 (18:04 -0700)
commit08c9fd2f2577457f1ba502e675554c680fcfdd94
tree1a6bbf92f2da6f0df73efb6725de990bb63e4853
parentfefe74ddc1bf4e56dde92939319478dc7d3e3472
driver core: fix shutdown races with probe/remove(v3)

Firstly, .shutdown callback may touch a uninitialized hardware
if dev->driver is set and .probe is not completed.

Secondly, device_shutdown() may dereference a null pointer to cause
oops when dev->driver is cleared after it has been checked in
device_shutdown().

So just hold device lock and its parent lock(if it has) to
fix the races.

Cc: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Ming Lei <ming.lei@canonical.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/base/core.c