diff options
author | Ming Lei <ming.lei@canonical.com> | 2012-06-22 18:01:40 +0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-07-16 18:04:25 -0700 |
commit | d1c6c030fcec6f860d9bb6c632a3ebe62e28440b (patch) | |
tree | 1a6bbf92f2da6f0df73efb6725de990bb63e4853 /usr | |
parent | 6fbfd0592ef88ba29cdce84ef92757351f1fa9c9 (diff) | |
download | linux-stable-d1c6c030fcec6f860d9bb6c632a3ebe62e28440b.tar.gz linux-stable-d1c6c030fcec6f860d9bb6c632a3ebe62e28440b.tar.bz2 linux-stable-d1c6c030fcec6f860d9bb6c632a3ebe62e28440b.zip |
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>
Diffstat (limited to 'usr')
0 files changed, 0 insertions, 0 deletions