diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2025-02-20 11:00:05 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2025-02-20 11:00:05 +0300 |
commit | 6d306090ea23d94783b0e77ecb63bea566fb8da3 (patch) | |
tree | 104bf5edef396a57831c188e2d276c22d171c503 | |
parent | 954b8915ff86353037d4246c7129d807a75f898b (diff) | |
parent | a321d163de3d8aa38a6449ab2becf4b1581aed96 (diff) | |
download | linux-6d306090ea23d94783b0e77ecb63bea566fb8da3.tar.xz |
Merge tag 'mhi-fixes-for-v6.14' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/mani/mhi into char-misc-linus
Manivannan writes:
MHI Host
========
- Use pci_try_reset_function() to reset the MHI function during recovery process
to avoid the deadlock reported on the X1E80100 CRD device. The deadlock can
happen if the caller has already acquired the 'device_lock()' while calling
the recovery function. So using pci_try_reset_function() avoids the deadlock
by returning -EAGAIN if the lock was already acquired.
* tag 'mhi-fixes-for-v6.14' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/mani/mhi:
bus: mhi: host: pci_generic: Use pci_try_reset_function() to avoid deadlock
-rw-r--r-- | drivers/bus/mhi/host/pci_generic.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/bus/mhi/host/pci_generic.c b/drivers/bus/mhi/host/pci_generic.c index c41119b9079f..7ffea0f98162 100644 --- a/drivers/bus/mhi/host/pci_generic.c +++ b/drivers/bus/mhi/host/pci_generic.c @@ -1095,8 +1095,9 @@ static void mhi_pci_recovery_work(struct work_struct *work) err_unprepare: mhi_unprepare_after_power_down(mhi_cntrl); err_try_reset: - if (pci_reset_function(pdev)) - dev_err(&pdev->dev, "Recovery failed\n"); + err = pci_try_reset_function(pdev); + if (err) + dev_err(&pdev->dev, "Recovery failed: %d\n", err); } static void health_check(struct timer_list *t) |