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-next>] [day] [month] [year] [list]
Message-Id: <1405617133-4596-1-git-send-email-gavin.guo@canonical.com>
Date:	Fri, 18 Jul 2014 01:12:12 +0800
From:	Gavin Guo <gavin.guo@...onical.com>
To:	stern@...land.harvard.edu, sarah.a.sharp@...ux.intel.com,
	mathias.nyman@...el.com, linux-usb@...r.kernel.org,
	linux-kernel@...r.kernel.org
Cc:	yk@...onical.com, anthony.wong@...onical.com,
	gerald.yang@...onical.com
Subject: [PATCH v2 0/1][RESEND] Fixes to the USB 3.0 detection as 2.0 on AMD platform

As the discussion in http://comments.gmane.org/gmane.linux.usb.general/107011, 
I found that [AMD] FCH USB XHCI Controller [1022:7814] the USB 3.0 disk 
can't work in SuperSpeed after several times of hotplug. After doing some 
experiments and bisection, I found the bug is caused by 
41e7e056cdc662f704fa9262e5c6e213b4ab45dd (USB: Allow USB 3.0 ports to be 
disabled.). And the bug can be fixed by not executing the 
hub_usb3_port_disable() function. I also found that the port status is 
already in RxDetect before setting the port to Disabled in 
hub_usb3_port_disable() function. So, there are 2 ways to fix the bug:

1) Check if the Vendor/Device id is [1022:7814] at the beginning of 
hub_usb3_port_disable() function. If yes, return without executing the 
remaining code.

2) Check if the port status is already in RxDetect, if yes, return without 
executing the remaining code.

The second method seems more reasonable, so the patch is the implementation
of the second one. But it will affect more platforms and I don't know if 
there'll be any negative result. Otherwise, if the first one is correct, 
I can reimplement a new one.

I'm appreciated if you can give me some advice, or if there is any thing I
 missed.

The v2 version has been tested on the 2 platforms which all use the same AMD
controller [1022:7814]. There are totally 3 ports. And each port has been
tested for 30 times of hot-plugging. All of the results showed the USB 3.0 pen
drive is Superspeed device.

Changes from v1 -> v2:
According to Alan's advice in: https://lkml.org/lkml/2014/7/15/315
- Fixes the coding style.
- Modify the debug messages to "Not disabling port; link state is RxDetect"
  to make it more expressive.

Mistakenly add Alan to the Signed-off-by list, it's not correct. Using
Acked-by instead. So, I resent the v2 patch again.

Gavin Guo (1):
  usb: Check if port status is equal to RxDetect

 drivers/usb/core/hub.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

-- 
2.0.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ