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 /drivers/tty/serial/sccnxp.c | |
| parent | 6fbfd0592ef88ba29cdce84ef92757351f1fa9c9 (diff) | |
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 'drivers/tty/serial/sccnxp.c')
0 files changed, 0 insertions, 0 deletions
