diff options
| author | Bart Van Assche <bvanassche@acm.org> | 2026-05-21 10:33:29 -0700 |
|---|---|---|
| committer | Niklas Cassel <cassel@kernel.org> | 2026-06-01 19:07:37 +0200 |
| commit | aa0ae1c35f7b3e9afed2324bed5f5c87ad55b92c (patch) | |
| tree | 7f0f0df6a0eb5f228001507d43b4882db9d0288a /drivers/phy/eswin/git@git.tavy.me:linux.git | |
| parent | fa0f6679c73553d3e457884759ae4c6f220a71de (diff) | |
ata: libata: Fix ata_exec_internal()
Some but not all ata_exec_internal() calls happen from the context of
the ATA error handler. Commit c0c362b60e25 ("libata: implement cross-port
EH exclusion") added ata_eh_release() and ata_eh_acquire() calls in
ata_exec_internal(). Calling these functions is necessary if the caller
holds the eh_mutex but is not allowed if the caller doesn't hold that
mutex. Fix this by only calling ata_eh_release() and ata_eh_acquire() if
the caller holds the eh_mutex. An example of an indirect caller of
ata_exec_internal() that does not hold the eh_mutex is
ata_host_register().
Fixes: c0c362b60e25 ("libata: implement cross-port EH exclusion")
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Niklas Cassel <cassel@kernel.org>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Hannes Reinecke <hare@kernel.org>
Signed-off-by: Niklas Cassel <cassel@kernel.org>
Diffstat (limited to 'drivers/phy/eswin/git@git.tavy.me:linux.git')
0 files changed, 0 insertions, 0 deletions
