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]
Date:   Fri, 25 Nov 2016 16:12:09 +0300
From:   Sergei Shtylyov <sergei.shtylyov@...entembedded.com>
To:     Changming Huang <jerry.huang@....com>, stern@...land.harvard.edu,
        gregkh@...uxfoundation.org
Cc:     ramneek.mehresh@....com, julia.lawall@...6.fr, sriram.dash@....com,
        linux-usb@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2] fsl/usb: Workarourd for USB erratum-A005697

Hello.

On 11/25/2016 06:24 AM, Changming Huang wrote:

> The EHCI specification states the following in the SUSP bit description:
> In the Suspend state, the port is senstive to resume detection.

    Sensitive.

> Note that the bit status does not change untile the port is suspended and

    Until.

> that there may be a delay in susupending a port if there is a transaction

    Suspending.

> currently in progress on the USB.
>
> However, in NXP USBDR controller, the PORTSCx[SUSP] bit changes immediately
> when the application sets it and not when the port is actually suspended.
>
> So the application must wait for at least 10 milliseconds after a port
> indicates that it is suspended, to make sure this port has entered
> suspended state before initiating this port resume using the Force Port
> Resume bit. This bit is for NXP controller, not EHCI compatible.
>
> Signed-off-by: Changming Huang <jerry.huang@....com>
> Signed-off-by: Ramneek Mehresh <ramneek.mehresh@....com>

[...]

> diff --git a/drivers/usb/host/ehci-hub.c b/drivers/usb/host/ehci-hub.c
> index 74f62d6..81e2310 100644
> --- a/drivers/usb/host/ehci-hub.c
> +++ b/drivers/usb/host/ehci-hub.c
> @@ -310,6 +310,13 @@ static int ehci_bus_suspend (struct usb_hcd *hcd)
>  	}
>  	spin_unlock_irq(&ehci->lock);
>
> +	if (changed && ehci_has_fsl_susp_errata(ehci))
> +		/* Wait for at least 10 millisecondes to ensure the controller

    Milliseconds.

> +		 * enter the suspend status before initiating a port resume
> +		 * using the Fore Port Resume bit (Not-EHCI compatible).

    Maybe force?
    s/Not/non/ also.

> +		 */
> +		usleep_range(10000, 20000);
> +
>  	if ((changed && ehci->has_tdi_phy_lpm) || fs_idle_delay) {
>  		/*
>  		 * Wait for HCD to enter low-power mode or for the bus
[...]
> @@ -703,10 +704,15 @@ struct ehci_tt {
>  #if defined(CONFIG_PPC_85xx)
>  /* Some Freescale processors have an erratum (USB A-005275) in which
>   * incoming packets get corrupted in HS mode
> + * Some Freescale processors have an erratum (USB A-005697) in which
> + * we need to wait for 10ms for bus to fo into suspend mode after

    Fo?

[...]

MBR, Sergei

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ