kernel probs with IRQ sharing, Madwifi and non-existing floppy drive

Peter pboy at barkhof.uni-bremen.de
Sun Sep 5 09:52:07 UTC 2004


Hi,


basically I have some interrupt problems with kernel 2.6 on my Thinkpad.
And I'm looking urgently for assistence after having googled a lot and
having tried several things to resolve my prob.

Excuse the long text here, but I wish to give as much information as
possible to enable someone to give me some helpful hints.




The details:

I use an IBM Thinkpad T40p (centrino chip) and an internal atheros WiFi
pci card with kernel 2.6.7-1.494.2.2 and atrpms Madwifi driver
kernel-module-madwifi-2.6.7-1.494.2.2-0.8.5.5-7.rhfc2.at

By default configuration (acpi, no special command line options) all the
PCI interrupts are route to irg11. The current madwifi driver and/or the
2.6 kernel seem not to be able to handle the irq sharing. I can load the
driver, but the driver does not connect to an AP.

Sometimes it may connect, but after some work there are a lot of
messages like "kernel: ath0: hardware error; resetting" in the log
and the connections slows down to zero transfer rate.

I tried to use kernel 2.6.8-1.521 and the actual CVS tree of madwifi
(with recommended patches), but this combination is even worse.

With FC1 there is no problem at all.

By some experimentation I suppose there is an IRQ problem. I tried to
change the bios setup and assigned the irq manually. This made the
kernel 2.6.7-1.494.2.2 work quite stable.

Two problems / questions:

a) how to disable the floppy driver permanently?

The system does not have a floppy drive so I disabled the floppy
controller in bios and disabled the floppy driver in modprobe.conf by
  alias floppy off
or
  alias block-major-2 off
as I found by searching the list. And it seems to work, I don't find a
floppy module with lsmod.

When I disconnect my usb mouse I get:
> Sep  5 00:23:12 littlePiet kernel: usb 3-1: USB disconnect, address 2
> Sep  5 00:23:13 littlePiet kernel: inserting floppy driver for
>                                    2.6.7-1.494.2.2
> Sep  5 00:23:13 littlePiet kernel: floppy0: Unable to grab IRQ6 
>                                    for the floppy driver
> Sep  5 00:23:13 littlePiet modprobe: FATAL: Error inserting floppy
>      (/lib/modules/2.6.7-1.494.2.2/kernel/drivers/block/floppy.ko):
>       Device or resource busy
> Sep  5 00:23:14 littlePiet kernel: ath0: hardware error; resetting
> Sep  5 00:23:45 littlePiet last message repeated 201 times

The ath0 hardware error message is repeated endless and I have to reboot
the system in order to gain network access again.

Question: how can I avoid the loading of the floppy module after usb
disconnect?
(the same problem arise when I change the state of the pcmcia system)

b) how to avoid the system to assign irq'a automatically?

ACPI seems to handle the assignment of irqs. I find a lot of messages
like
> kernel: ACPI: Using PIC for interrupt routing
> kernel: PCI: Using ACPI for IRQ routing 
> kernel: ACPI: PCI interrupt 0000:00:1d.1[B] -> GSI 4
>               (level, low) -> IRQ 4
 

With the following interrupts I can operate the system quite stable:

[root at little log]# cat /proc/interrupts
           CPU0
  0:    2100476          XT-PIC  timer
  1:       7980          XT-PIC  i8042
  2:          0          XT-PIC  cascade
  4:      31034          XT-PIC  ehci_hcd, uhci_hcd
  6:      20421          XT-PIC  uhci_hcd, ath0
  8:          1          XT-PIC  rtc
  9:        683          XT-PIC  acpi
 10:          1          XT-PIC  yenta, Intel 82801DB-ICH4
 11:     104727          XT-PIC  uhci_hcd, yenta, radeon at PCI:1:0:0
 12:      10375          XT-PIC  i8042
 14:      21546          XT-PIC  ide0
 15:      21535          XT-PIC  ide1
NMI:          0
ERR:          0

By googling I found the parameter noapic as a miracle cure for all irq
problems. But detailed investigations showed that this parameter seems
to be for smp systems only.

Others mentioned the kernel parameter pci=noapic to prevent acpi to
automatically handle irq assignment.  But this seems not to work with
fedora - at least I find the same kernel messages in the log file /w and
w/o that parameter.

Well: how to avoid automatic irq assignment?


Any help appreciated.

Thanks 
Peter





More information about the users mailing list