Commit bcf0814
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 33abac5 commit bcf0814
1 file changed
Lines changed: 3 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6163 | 6163 | | |
6164 | 6164 | | |
6165 | 6165 | | |
6166 | | - | |
6167 | | - | |
6168 | | - | |
6169 | | - | |
6170 | 6166 | | |
6171 | 6167 | | |
6172 | 6168 | | |
| |||
6177 | 6173 | | |
6178 | 6174 | | |
6179 | 6175 | | |
6180 | | - | |
| 6176 | + | |
6181 | 6177 | | |
| 6178 | + | |
6182 | 6179 | | |
| 6180 | + | |
6183 | 6181 | | |
6184 | 6182 | | |
6185 | 6183 | | |
| |||
0 commit comments