Commit 42ea6c4
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 08d9175 commit 42ea6c4
1 file changed
Lines changed: 3 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6132 | 6132 | | |
6133 | 6133 | | |
6134 | 6134 | | |
6135 | | - | |
6136 | | - | |
6137 | | - | |
6138 | | - | |
6139 | 6135 | | |
6140 | 6136 | | |
6141 | 6137 | | |
| |||
6146 | 6142 | | |
6147 | 6143 | | |
6148 | 6144 | | |
6149 | | - | |
| 6145 | + | |
6150 | 6146 | | |
| 6147 | + | |
6151 | 6148 | | |
| 6149 | + | |
6152 | 6150 | | |
6153 | 6151 | | |
6154 | 6152 | | |
| |||
0 commit comments