Commit 55db009
committed
ata: libata-core: fix cancellation of a port deferred qc work
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>1 parent eddb98a commit 55db009
1 file changed
Lines changed: 3 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6269 | 6269 | | |
6270 | 6270 | | |
6271 | 6271 | | |
6272 | | - | |
6273 | | - | |
6274 | | - | |
6275 | | - | |
6276 | 6272 | | |
6277 | 6273 | | |
6278 | 6274 | | |
| |||
6283 | 6279 | | |
6284 | 6280 | | |
6285 | 6281 | | |
6286 | | - | |
| 6282 | + | |
6287 | 6283 | | |
| 6284 | + | |
6288 | 6285 | | |
| 6286 | + | |
6289 | 6287 | | |
6290 | 6288 | | |
6291 | 6289 | | |
| |||
0 commit comments