lkml.org 
[lkml]   [2020]   [Apr]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.5 042/257] xhci: bail out early if driver cant accress host in resume
    Date
    From: Mathias Nyman <mathias.nyman@linux.intel.com>

    [ Upstream commit 72ae194704da212e2ec312ab182a96799d070755 ]

    Bail out early if the xHC host needs to be reset at resume
    but driver can't access xHC PCI registers.

    If xhci driver already fails to reset the controller then there
    is no point in attempting to free, re-initialize, re-allocate and
    re-start the host. If failure to access the host is detected later,
    failing the resume, xhci interrupts will be double freed
    when remove is called.

    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Link: https://lore.kernel.org/r/20200312144517.1593-2-mathias.nyman@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/usb/host/xhci.c | 4 +++-
    1 file changed, 3 insertions(+), 1 deletion(-)

    diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
    index dbac0fa9748d5..fe38275363e0f 100644
    --- a/drivers/usb/host/xhci.c
    +++ b/drivers/usb/host/xhci.c
    @@ -1157,8 +1157,10 @@ int xhci_resume(struct xhci_hcd *xhci, bool hibernated)
    xhci_dbg(xhci, "Stop HCD\n");
    xhci_halt(xhci);
    xhci_zero_64b_regs(xhci);
    - xhci_reset(xhci);
    + retval = xhci_reset(xhci);
    spin_unlock_irq(&xhci->lock);
    + if (retval)
    + return retval;
    xhci_cleanup_msix(xhci);

    xhci_dbg(xhci, "// Disabling event ring interrupts\n");
    --
    2.20.1


    \
     
     \ /
      Last update: 2020-04-16 17:49    [W:4.466 / U:0.068 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site