Commit b5ef7d0
ata: libata-core: fix cancellation of a port deferred qc work
commit 55db009 upstream.
cancel_work_sync() is a sleeping function so it cannot be called with
the spin lock of a port being held. Move the call to this function in
ata_port_detach() after EH completes, with the port lock released,
together with other work cancellation calls.
Fixes: 0ea8408 ("ata: libata-scsi: avoid Non-NCQ command starvation")
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Reviewed-by: Igor Pylypiv <ipylypiv@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>1 parent 21e0d7a commit b5ef7d0
1 file changed
Lines changed: 3 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6233 | 6233 | | |
6234 | 6234 | | |
6235 | 6235 | | |
6236 | | - | |
6237 | | - | |
6238 | | - | |
6239 | | - | |
6240 | 6236 | | |
6241 | 6237 | | |
6242 | 6238 | | |
| |||
6247 | 6243 | | |
6248 | 6244 | | |
6249 | 6245 | | |
6250 | | - | |
| 6246 | + | |
6251 | 6247 | | |
| 6248 | + | |
6252 | 6249 | | |
| 6250 | + | |
6253 | 6251 | | |
6254 | 6252 | | |
6255 | 6253 | | |
| |||
0 commit comments