Project

General

Profile

Bug #2965

Warning "ehci_hcd should always be loaded before uhci_hcd and ohci_hcd, not after" during boot

Added by Der Tiger almost 5 years ago. Updated over 4 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Category:
Kernel
Target version:
Start date:
04/10/2014
Due date:
% Done:

100%

Estimated time:

Description

THIS IS AN UPDATED COPY OF BUG #2836

It seems, during boot the UHCI driver is being loaded before the EHCI driver, which generates a warning in dmsg (see below @ 5.140022). This is related to http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=9beeee6584b9aa4f9192055512411484a2a624df&id2=2b70f07343389cb474235def00b021a645ede916

Please, ignore the device descriptor errors shown in the log @ 6.500953 and later, that are caused by a wacky USB device and have nothing to do with the issue reported.

[    5.102694] uhci_hcd: USB Universal Host Controller Interface driver
[    5.102868] xen: registering gsi 23 triggering 0 polarity 1
[    5.102880] Already setup the GSI :23
[    5.102920] uhci_hcd 0000:00:1d.0: setting latency timer to 64
[    5.102931] uhci_hcd 0000:00:1d.0: UHCI Host Controller
[    5.102946] uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 1
[    5.103066] uhci_hcd 0000:00:1d.0: irq 23, io base 0x000040a0
[    5.103245] usb usb1: New USB device found, idVendor=1d6b, idProduct=0001
[    5.103252] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    5.103258] usb usb1: Product: UHCI Host Controller
[    5.103263] usb usb1: Manufacturer: Linux 3.10.36-0-grsec uhci_hcd
[    5.103268] usb usb1: SerialNumber: 0000:00:1d.0
[    5.104624] hub 1-0:1.0: USB hub found
[    5.104651] hub 1-0:1.0: 2 ports detected
[    5.105167] xen: registering gsi 19 triggering 0 polarity 1
[    5.105180] Already setup the GSI :19
[    5.105230] uhci_hcd 0000:00:1d.1: setting latency timer to 64
[    5.105246] uhci_hcd 0000:00:1d.1: UHCI Host Controller
[    5.105268] uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 2
[    5.105431] uhci_hcd 0000:00:1d.1: irq 19, io base 0x00004080
[    5.105672] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001
[    5.105682] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    5.105691] usb usb2: Product: UHCI Host Controller
[    5.105699] usb usb2: Manufacturer: Linux 3.10.36-0-grsec uhci_hcd
[    5.105707] usb usb2: SerialNumber: 0000:00:1d.1
[    5.114001] hub 2-0:1.0: USB hub found
[    5.114026] hub 2-0:1.0: 2 ports detected
[    5.114619] xen: registering gsi 18 triggering 0 polarity 1
[    5.114634] Already setup the GSI :18
[    5.114688] uhci_hcd 0000:00:1d.2: setting latency timer to 64
[    5.114707] uhci_hcd 0000:00:1d.2: UHCI Host Controller
[    5.114727] uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 3
[    5.114891] uhci_hcd 0000:00:1d.2: irq 18, io base 0x00004060
[    5.115150] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001
[    5.115161] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    5.115169] usb usb3: Product: UHCI Host Controller
[    5.115176] usb usb3: Manufacturer: Linux 3.10.36-0-grsec uhci_hcd
[    5.115184] usb usb3: SerialNumber: 0000:00:1d.2
[    5.119577] hub 3-0:1.0: USB hub found
[    5.119610] hub 3-0:1.0: 2 ports detected
[    5.120175] xen: registering gsi 16 triggering 0 polarity 1
[    5.120188] Already setup the GSI :16
[    5.120240] uhci_hcd 0000:00:1d.3: setting latency timer to 64
[    5.120257] uhci_hcd 0000:00:1d.3: UHCI Host Controller
[    5.120280] uhci_hcd 0000:00:1d.3: new USB bus registered, assigned bus number 4
[    5.120444] uhci_hcd 0000:00:1d.3: irq 16, io base 0x00004040
[    5.120702] usb usb4: New USB device found, idVendor=1d6b, idProduct=0001
[    5.120713] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    5.120721] usb usb4: Product: UHCI Host Controller
[    5.120730] usb usb4: Manufacturer: Linux 3.10.36-0-grsec uhci_hcd
[    5.120738] usb usb4: SerialNumber: 0000:00:1d.3
[    5.134539] hub 4-0:1.0: USB hub found
[    5.134567] hub 4-0:1.0: 2 ports detected
[    5.140013] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    5.140022] Warning! ehci_hcd should always be loaded before uhci_hcd and ohci_hcd, not after
[    5.143366] ehci-pci: EHCI PCI platform driver
[    5.143592] xen: registering gsi 23 triggering 0 polarity 1
[    5.143606] Already setup the GSI :23
[    5.143694] ehci-pci 0000:00:1d.7: setting latency timer to 64
[    5.163483] ehci-pci 0000:00:1d.7: EHCI Host Controller
[    5.163514] ehci-pci 0000:00:1d.7: new USB bus registered, assigned bus number 5
[    5.163571] ehci-pci 0000:00:1d.7: debug port 1
[    5.167664] ehci-pci 0000:00:1d.7: cache line size of 64 is not supported
[    5.167697] ehci-pci 0000:00:1d.7: irq 23, io mem 0xd0804400
[    5.177695] ehci-pci 0000:00:1d.7: USB 2.0 started, EHCI 1.00
[    5.177745] usb usb5: New USB device found, idVendor=1d6b, idProduct=0002
[    5.177752] usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    5.177757] usb usb5: Product: EHCI Host Controller
[    5.177763] usb usb5: Manufacturer: Linux 3.10.36-0-grsec ehci_hcd
[    5.177768] usb usb5: SerialNumber: 0000:00:1d.7
[    5.178899] hub 5-0:1.0: USB hub found
[    5.178916] hub 5-0:1.0: 8 ports detected
[    5.180247] hub 1-0:1.0: USB hub found
[    5.180269] hub 1-0:1.0: 2 ports detected
[    5.180956] hub 2-0:1.0: USB hub found
[    5.180985] hub 2-0:1.0: 2 ports detected
[    5.184613] hub 3-0:1.0: USB hub found
[    5.184644] hub 3-0:1.0: 2 ports detected
[    5.186959] hub 4-0:1.0: USB hub found
[    5.186982] hub 4-0:1.0: 2 ports detected
[    5.204972] xen: registering gsi 19 triggering 0 polarity 1
[    5.204986] Already setup the GSI :19
[    5.205059] i801_smbus 0000:00:1f.3: SMBus using PCI Interrupt
[    5.545786] EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: (null)
[    5.794304] usb 5-8: new high-speed USB device number 4 using ehci-pci
[    5.918009] usb 5-8: New USB device found, idVendor=058f, idProduct=6254
[    5.918018] usb 5-8: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    5.919235] hub 5-8:1.0: USB hub found
[    5.919416] hub 5-8:1.0: 4 ports detected
[    6.384292] usb 2-2: new low-speed USB device number 2 using uhci_hcd
[    6.500953] usb 2-2: device descriptor read/64, error -71
[    6.720998] usb 2-2: device descriptor read/64, error -71
[    6.930962] usb 2-2: new low-speed USB device number 3 using uhci_hcd
[    6.991598] udevd[896]: starting version 175
[    7.047637] usb 2-2: device descriptor read/64, error -71
[    7.267663] usb 2-2: device descriptor read/64, error -71


Related issues

Copied from Alpine Linux - Bug #2836: [3.x.x] Warning! ehci_hcd should always be loaded before uhci_hcd and ohci_hcd, not afterClosed04/10/2014

Associated revisions

Revision b9346f22 (diff)
Added by Natanael Copa almost 5 years ago

main/linux-grsec: build ehci-hcd into kernel

fixes #2965

Revision 4c19aaa1 (diff)
Added by Natanael Copa over 4 years ago

main/linux-grsec: build ehci-hcd into kernel

ref #2965

Revision 192ea6d2 (diff)
Added by Natanael Copa over 4 years ago

main/linux-grsec: build ehci-hcd into kernel

fixes #2965

History

#2 Updated by Natanael Copa almost 5 years ago

how puppy linux handled it: http://bkhome.org/blog/?viewDetailed=00946

Its hackish. I think what ubuntu ended up doing was to compile in ehci_hcd into the kernel and it looks like that is what Fedora is doing too.

The problem is that ehci_hcd should be a hard dependency for uhci_hcd and ohci_hcd, because if uhci_hcd or ohci_hcd are loaded first, there will only be USB1 support and no USB2. Think of a machine that only has usb1 support, but a time after boot a pccard is plugged with usb2.

The only way to fix it is to always load ehci_hcd if any other *_hcd is ever loaded.

#3 Updated by Der Tiger almost 5 years ago

I think compiling EHCI into the kernel is not a recommended solution, because it will prevent Alpine from being used on hardware which only supports USB 1.x. Some "wacky" USB devices cause trouble whenever the USB enumeration is initiated by the EHCI driver (see errors -71 in above log excerpt) and the work-around usually is to disable EHCI, which would be impossible if EHCI is compiled into the kernel.

If there is any way to by default load ehci_hcd before any other *_hcd, this would be a superb solution, as long as the EHCI driver can still be completely disabled.

#4 Updated by Natanael Copa almost 5 years ago

  • Status changed from New to Resolved
  • % Done changed from 0 to 100

#5 Updated by Natanael Copa almost 5 years ago

  • Status changed from Resolved to Closed

#6 Updated by Natanael Copa over 4 years ago

  • Status changed from Closed to Assigned
  • Target version changed from 3.0.0 to 3.0.5
  • % Done changed from 100 to 0

The fix didn't work. it depends on CONFIG_USB_COMMON=y and CONFIG_USB=y too.

#7 Updated by Natanael Copa over 4 years ago

  • Status changed from Assigned to Resolved
  • % Done changed from 0 to 100

#8 Updated by Natanael Copa over 4 years ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF