Bug 247499

Summary: Error -110 after adding USB 2.0 PCI card
Product: [Fedora] Fedora Reporter: Joachim Frieben <jfrieben>
Component: kernelAssignee: Kernel Maintainer List <kernel-maint>
Status: CLOSED CANTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: low Docs Contact:
Priority: low    
Version: 7CC: chris.brown
Target Milestone: ---   
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-01-09 18:35:33 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Output of "dmesg" after adding a "D-Link DUB-A2" card.
none
Additional output of "dmesg" after adding a "D-Link DUB-A2" card and reloading "ehci-hcd.ko"
none
Output of "lspci -vv" after adding a "D-Link DUB-A2" card.
none
Output of "dmesg" after booting with "noapic"
none
Output of "lspci -vv" after booting with "noapic"
none
Output of "dmesg" after booting with "irqpoll" and inserted "USB" stick
none
dmidecode output for PR440FX and kernel version 2.6.22.5-76.fc7
none
Output of "lspci -vv" after booting kernel 2.6.22.5-76.fc7 with "noapic" none

Description Joachim Frieben 2007-07-09 16:54:53 UTC
Description of problem:
After adding a "D-Link DUB-A2" card adding 2 "USB 2.0" ports to
my system, the "USB" ports do not get set up correctly.
The "dmesg" log file complains that the device does not accept
the assigned addresses. As a consequence, no "USB 2.0"
functionality after upgrading the system.

Version-Release number of selected component (if applicable):
kernel-2.6.21-1.3255.fc7

How reproducible:
Always.

Steps to Reproduce:
1. Add "D-Link DUB-A2" card to system.
2. Reboot system. 
  
Actual results:
"USB" is not working, and a kernel oops complains about an
"IRQ" problem with #16 after which "Disabling IRQ #16" is
reported.

Expected results:
New "USB 2.0" card is initialized correctly and working
properly.

Additional info:
The new setup works flawlessly under "Windows 2000". The problem
persists after disabling the onboard "USB 1.1" devices. The
kernel oops is related to a conflict with the "ATI Radeon 7200"
card present in the computer:

irq 16: nobody cared (try booting with the "irqpoll" option)
 [<c0452a6a>] __report_bad_irq+0x36/0x75
 [<c0452c48>] note_interrupt+0x19f/0x1db
 [<c045213a>] handle_IRQ_event+0x1a/0x3f
 [<c04533dd>] handle_fasteoi_irq+0x86/0xa6
 [<c0453357>] handle_fasteoi_irq+0x0/0xa6
 [<c04072bb>] do_IRQ+0xac/0xd1
 [<c0419cd1>] smp_apic_timer_interrupt+0x74/0x80
 [<c04058ff>] common_interrupt+0x23/0x28
 [<c0403d60>] default_idle+0x0/0x3e
 [<c0403d8c>] default_idle+0x2c/0x3e
 [<c04033d6>] cpu_idle+0xa3/0xc4
 =======================
handlers:
[<e0a2cbdb>] (radeon_driver_irq_handler+0x0/0x8b [radeon])
Disabling IRQ #16

Comment 1 Joachim Frieben 2007-07-09 17:01:53 UTC
Created attachment 158787 [details]
Output of "dmesg" after adding a "D-Link DUB-A2" card.

Comment 2 Joachim Frieben 2007-07-09 17:03:27 UTC
Created attachment 158788 [details]
Additional output of "dmesg" after adding a "D-Link DUB-A2" card and reloading "ehci-hcd.ko"

Comment 3 Joachim Frieben 2007-07-09 17:04:39 UTC
Created attachment 158789 [details]
Output of "lspci -vv" after adding a "D-Link DUB-A2" card.

Comment 4 Joachim Frieben 2007-07-09 17:32:42 UTC
Created attachment 158790 [details]
Output of "dmesg" after booting with "noapic"

After adding "noapic" to the kernel options, "USB 2.0" is working
as expected, and the "USB" stick is auto-mounted after plugging
it in.

Comment 5 Joachim Frieben 2007-07-09 17:33:26 UTC
Created attachment 158791 [details]
Output of "lspci -vv" after booting with "noapic"

Comment 6 Chuck Ebbert 2007-07-09 17:35:13 UTC
Try resetting the motherboard's resources in the BIOS setup if possible.
Many BIOS screens call this option "reset configuration data".
("noapic" should not be necessary.)


Comment 7 Joachim Frieben 2007-07-10 09:38:56 UTC
I have restored the "BIOS" default settings, but this doesn't change
the big picture. There is no particular entry "Reset Configuration
Data". Under normal circumstances, you save general settings like
"ACPI" interrupt routing or not or maybe even the address of the
serial ports but for the rest this seems quite uncommon, and I have
nothing comparable among the settings of my "PR440FX" mainboard.
However, I have explored various boot options, and it turns out that
adding "irqpoll" suppresses the kernel oops related to interrupt #16.
It turns out that "Error -110" -only- occurs when both the stick was
actually plugged in at boot time and "noapic" was missing from the
boot options. In all other cases, the "USB" stick connected to the
add-on "USB 2.0" card is mounted correctly.
However, only with "noapic", it's even possible to use both the
onboard "USB 1.x" device and the add-on "VIA" based "USB 2.0" card
at will with successive and successful mounting and unmounting of
the stick, as you expect as the normal and correct behaviour.

Comment 8 Joachim Frieben 2007-07-10 09:46:25 UTC
Created attachment 158830 [details]
Output of "dmesg" after booting with "irqpoll" and inserted "USB" stick

Comment 9 Joachim Frieben 2007-07-10 16:34:32 UTC
Adding "noapic" to the kernel options allows to restore a correct behaviour 
with respect to detecting and mounting the device. However, I have observed, 
that data corruption occurs when I copy data from the "USB" stick when it's 
plugged into a "USB 2.0" port. Data transfer using the onboard "USB 1.x" 
device works correctly!

Comment 10 Christopher Brown 2007-09-17 21:15:42 UTC
Hello Joachim,

I'm reviewing this bug as part of the kernel bug triage project, an attempt to
isolate current bugs in the fedora kernel.

http://fedoraproject.org/wiki/KernelBugTriage

I am CC'ing myself to this bug and will try and assist you in resolving it if I can.

There hasn't been much activity on this bug for a while. Could you tell me if
you are still having problems with the latest kernel?

If the problem no longer exists then please close this bug or I'll do so in a
few days if there is no additional information lodged.

Cheers
Chris

Comment 11 Joachim Frieben 2007-09-20 12:42:23 UTC
The problem has somehow worsened: when adding "noapic" as kernel option,
the USB stick is neither detected not mounted. In the "dmesg" log file,
some entries appear upon insertion of the USB stick:

  usb 1-1: new high speed USB device using ehci_hcd and address 2
  usb 1-1: device descriptor read/64, error -110
  usb 1-1: device descriptor read/64, error -110
  usb 1-1: new high speed USB device using ehci_hcd and address 3
  usb 1-1: device descriptor read/64, error -110
  usb 1-1: device descriptor read/64, error -110
  usb 1-1: new high speed USB device using ehci_hcd and address 4
  usb 1-1: device not accepting address 4, error -110
  usb 1-1: new high speed USB device using ehci_hcd and address 5
  usb 1-1: device not accepting address 5, error -110

When APIC IRQ routing is enabled, the system locks up after inserting
the USB stick, because the file system gets blocked. The USB controller
seems to interfere with the on-board AIC-7880 UW-SCSI controller.
When ctrl-alt-del is typed in order to trigger a reboot, the system
complains that it cannot find /sbin/shutdown followed by some ext3
file system error message. For this reason, it is not possible to save
the output of "dmesg" but it contains a corresponding backtrace preceded
by some "irq XX: nobody cared" message.

Comment 12 Christopher Brown 2007-09-20 13:39:40 UTC
Can you try the following parameters:

pci=routeirq

pci=biosirq

pci=noacpi

Cheers
Chris



Comment 13 Joachim Frieben 2007-09-21 09:13:47 UTC
Option "pci=noacpi" is somehow useless because the kernel disables
ACPI on this old PR440FX mainboard anyway. The remaining two options
don't make any difference. I have to report that the USB card doesn't
work under Windows 2000 either since I have replaced the previous
3CP6510 PCI hardware modem with a D-LINK DWL-G520 WLAN adapter.
I am inclined to recommend closing this bug report as "WONTFIX" since
the issue doesn't seem to be a generic kernel problem but rather a
fundamental hardware incompatibility issue related to the 440FX chip
set.
Interestingly, the onboard USB 1.0 device doesn't work under Windows
2000 either whereas it does work correctly under Linux when kernel
option "noapic" is added [bug 243587].

Comment 14 Christopher Brown 2007-09-21 10:12:34 UTC
Okay, thanks for the update Joachim. You might like to also try nolapic as an
option when booting and see if this helps. You might like to also install
dmidecode and run it (you need to be root), attaching the output back here. You
can get the latest BIOS for your board from:

http://downloadcenter.intel.com/filter_results.aspx?strTypes=all&ProductID=221&OSFullName=All+Operating+Systems&lang=eng&strOSs=All&submit=Go%21

if you are not already running it.

Cheers
Chris

Comment 15 Joachim Frieben 2007-09-21 13:49:28 UTC
Created attachment 202121 [details]
dmidecode output for PR440FX and kernel version 2.6.22.5-76.fc7

The installed BIOS is the latest one as the board itself was manufactured
just before production was shut down.
Booting with "lapic" leads to the same IRQ mess which screws up mouse and
file system access. In this case, the system needs to be powered off.
I have a spare USB 2.0 card produced by Apdaptec with a different controller
chip. I could give that one a try, too.

Comment 16 Joachim Frieben 2007-09-21 13:52:44 UTC
Created attachment 202131 [details]
Output of "lspci -vv" after booting kernel 2.6.22.5-76.fc7 with "noapic"

Comment 17 Christopher Brown 2007-09-21 21:25:18 UTC
Thanks for that. The spare card would narrow things down a bit. I'm CC'ing the
USB maintainer and adding a USB blocker bug which may gain this bug further review.

Could you also try:

# rmmod ehci_hcd

as I have experienced this issue myself. The above caused the device to drop
back to USB 1.0 and it seemed happy after that. Not a fix but something else to
test.

Cheers
Chris

Comment 18 Pete Zaitcev 2007-09-21 22:30:27 UTC
This has nothing to do with USB. Most likely it's a busted BIOS which provides
broken ACPI tables.

Comment 19 Christopher Brown 2007-09-22 00:05:19 UTC
Removing USB blocker then. Joachim, have you tried removing ACPI althogether with:

acpi=off

? If you have and it still isn't helping then as Pete indicated it might be time
for that Adaptec card...

Comment 20 Joachim Frieben 2007-09-22 08:40:34 UTC
(In reply to comment #18)
> This has nothing to do with USB. Most likely it's a busted BIOS which provides
> broken ACPI tables.

Likely not, as ACPI is disabled by default as stated in comment #13 and
confirmed by the following entry in "dmesg":

  ACPI: BIOS age (1998) fails cutoff (1999), acpi=force is required to
        enable ACPI
  ACPI: Disabling ACPI support
  ACPI: Interpreter disabled.
  pnp: PnP ACPI: disabled

Even adding "acpi=force" does not allow to enable ACPI on this system.

Comment 21 Christopher Brown 2007-09-23 14:57:43 UTC
(In reply to comment #20)
> (In reply to comment #18)
> > This has nothing to do with USB. Most likely it's a busted BIOS which provides
> > broken ACPI tables.
> 
> Likely not, as ACPI is disabled by default as stated in comment #13 and
> confirmed by the following entry in "dmesg":

My bad, I should have spotted this. Have you tried:

# rmmod ehci_hcd

?

Comment 22 Joachim Frieben 2007-09-23 19:38:04 UTC
No luck after installing an Adaptec AUA-2000LP [NEC USB controller chip]:
the big picture remains the same. Without "noapic", there is a problem with
interrupt #17 [before #16]. The last line of the "dmesg" output indicates
a conflict between the AIC-7880 SCSI controller chip and the USB controller
which leads to a lock-up of file I/O:

irq 17: nobody cared (try booting with the "irqpoll" option)
 [<c0406463>] show_trace_log_lvl+0x1a/0x2f
 [<c0406e59>] show_trace+0x12/0x14
 [<c0406e71>] dump_stack+0x16/0x18
 [<c0462774>] __report_bad_irq+0x39/0x79
 [<c0462999>] note_interrupt+0x1e5/0x220
 [<c0462f33>] handle_fasteoi_irq+0x91/0xb6
 [<c04076f4>] do_IRQ+0x91/0xbd
 =======================
handlers:
[<e08dbf62>] (ahc_linux_isr+0x0/0x1cc [aic7xxx])
Disabling IRQ #17

After adding "noapic", no error -110 as before. However, the USB stick does
show up in "dmesg". Module "usb-storage" is not loaded, and loading it
manually from the command line does not complete, the shell is stuck.

Comment 23 Joachim Frieben 2007-09-23 19:46:07 UTC
(In reply to comment #22)
> After adding "noapic", no error -110 as before. However, the USB stick does
> ### not ### show up in "dmesg". Module "usb-storage" is not loaded, and
> loading it manually from the command line does not complete, the shell is
> stuck.

It is possible to unload ehci_hcd.ko but reloading it again also hangs.

Comment 24 Christopher Brown 2008-01-09 16:02:26 UTC
Hello Joachim,

Can I take it there has been no improvement since your last update?

Comment 25 Joachim Frieben 2008-01-09 18:20:37 UTC
I have changed my desktop system and do not know when I will be able to
retest this issue. The non-ACPI PR440FX mainboard from 1996 is probably
not of real interest for a wider audience anymore. Closing as WONTFIX?