All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gabriel Krisman Bertazi <krisman@linux.vnet.ibm.com>
To: Kamal Mostafa <kamal@canonical.com>
Cc: Mathias Nyman <mathias.nyman@intel.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] xhci: Fix soft lockup in xhci_pci_probe path when XHCI_STATE_HALTED
Date: Mon, 01 Aug 2016 13:27:38 -0300	[thread overview]
Message-ID: <87eg68cv45.fsf@linux.vnet.ibm.com> (raw)
In-Reply-To: <1470067718-13042-1-git-send-email-kamal@canonical.com> (Kamal Mostafa's message of "Mon, 1 Aug 2016 09:08:38 -0700")

Kamal Mostafa <kamal@canonical.com> writes:

> Commit 27a41a83ec54 ("xhci: Cleanup only when releasing primary hcd")
> causes a soft lockup at boot when XHCI_STATE_HALTED, preventing
> VirtualBox 5.1.x from booting if USB3.0 is enabled.
>
> Revert to allowing xhci_irq to handle the interrupt when
> XHCI_STATE_HALTED but not XHCI_STATE_DYING.
>
> Fixes: 27a41a83ec54 ("xhci: Cleanup only when releasing primary hcd")
> BugLink: https://bugs.launchpad.net/bugs/1604058
> Signed-off-by: Kamal Mostafa <kamal@canonical.com>
> Cc: <stable@vger.kernel.org> #v4.3+
> Cc: Gabriel Krisman Bertazi <krisman@linux.vnet.ibm.com>
> Acked-by: Tim Gardner <tim.gardner@canonical.com>
> Acked-by: Stefan Bader <stefan.bader@canonical.com>
> ---
>  drivers/usb/host/xhci-ring.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
> index 918e0c7..1d36a5f 100644
> --- a/drivers/usb/host/xhci-ring.c
> +++ b/drivers/usb/host/xhci-ring.c
> @@ -2751,8 +2751,7 @@ hw_died:
>  		writel(irq_pending, &xhci->ir_set->irq_pending);
>  	}
>
> -	if (xhci->xhc_state & XHCI_STATE_DYING ||
> -	    xhci->xhc_state & XHCI_STATE_HALTED) {
> +	if (xhci->xhc_state & XHCI_STATE_DYING) {
>  		xhci_dbg(xhci, "xHCI dying, ignoring interrupt. "
>  				"Shouldn't IRQs be disabled?\n");
>  		/* Clear the event handler busy flag (RW1C);
> @@ -2764,6 +2763,8 @@ hw_died:
>  		spin_unlock(&xhci->lock);
>
>  		return IRQ_HANDLED;
> +	} else if (xhci->xhc_state & XHCI_STATE_HALTED) {
> +		xhci_dbg(xhci, "xHCI halted, handling interrupt.\n");
>  	}

Returning early when XHCI_STATE_HALTED is no longer necessary since my
commit ensures we only free the HCD after disabling the primary HCD.

I think we can drop the 'else if' leg all together and only test for
XHCI_STATE_DYING here.

-- 
Gabriel Krisman Bertazi

      reply	other threads:[~2016-08-01 16:27 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-01 16:08 [PATCH] xhci: Fix soft lockup in xhci_pci_probe path when XHCI_STATE_HALTED Kamal Mostafa
2016-08-01 16:27 ` Gabriel Krisman Bertazi [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87eg68cv45.fsf@linux.vnet.ibm.com \
    --to=krisman@linux.vnet.ibm.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=kamal@canonical.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=mathias.nyman@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.