lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Yd1tUKhyZf26OVNQ@kroah.com>
Date:   Tue, 11 Jan 2022 12:43:12 +0100
From:   Greg KH <gregkh@...uxfoundation.org>
To:     Puma Hsu <pumahsu@...gle.com>
Cc:     mathias.nyman@...el.com, s.shtylyov@....ru,
        albertccwang@...gle.com, linux-usb@...r.kernel.org,
        linux-kernel@...r.kernel.org, stable@...r.kernel.org
Subject: Re: [PATCH v3] xhci: re-initialize the HC during resume if HCE was
 set

On Wed, Dec 29, 2021 at 07:25:51PM +0800, Puma Hsu wrote:
> When HCE(Host Controller Error) is set, it means an internal
> error condition has been detected. It needs to re-initialize
> the HC too.

What is "It" in the last sentence?

> 
> Cc: stable@...r.kernel.org
> Signed-off-by: Puma Hsu <pumahsu@...gle.com>

What commit id does this fix?

> ---
> v2: Follow Sergey Shtylyov <s.shtylyov@....ru>'s comment.
> v3: Add stable@...r.kernel.org for stable release.
> 
>  drivers/usb/host/xhci.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
> index dc357cabb265..ab440ce8420f 100644
> --- a/drivers/usb/host/xhci.c
> +++ b/drivers/usb/host/xhci.c
> @@ -1146,8 +1146,8 @@ int xhci_resume(struct xhci_hcd *xhci, bool hibernated)
>  		temp = readl(&xhci->op_regs->status);
>  	}
>  
> -	/* If restore operation fails, re-initialize the HC during resume */
> -	if ((temp & STS_SRE) || hibernated) {
> +	/* If restore operation fails or HC error is detected, re-initialize the HC during resume */
> +	if ((temp & (STS_SRE | STS_HCE)) || hibernated) {

But if STS_HCE is set on suspend, that means the suspend was broken so
you wouldn't get here, right?

Or can the error happen between suspend and resume?

This seems like a big hammer for when the host controller throws an
error.  Why is this the only place that it should be checked for?  What
caused the error that can now allow it to be fixed?

thanks,

greg k-h

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ