Subject: Re: 2.6.7-rc1 breaks forcedeth

I'm not a coder, so sorry if data seems to be superfluous:



2.6.5 works

2.6.7rc (and somes before) don't work



for 2.6.5

Detected 2126.173 MHz processor.



for 2.6.7rc

Detected 2126.366 MHz processor.



"POSIX conformance test by UNIFIX" appears only in 2.6.5.

"nforce fixup c1 halt disconnect fixup" appears only in 2.6.5



and now the ACPI stuff:



for 2.6.5:

--------------------------------------------------------------



ACPI: Subsystem revision 20040326

ACPI: IRQ9 SCI: Edge set to Level Trigger.

ACPI: Interpreter enabled

ACPI: Using PIC for interrupt routing

ACPI: PCI Root Bridge [PCI0] (00:00)

PCI: Probing PCI hardware (bus 00)

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.HUB0._PRT]

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGPB._PRT]

ACPI: PCI Interrupt Link [LNK1] (IRQs 3 4 *5 6 7 10 11 12 14 15)

ACPI: PCI Interrupt Link [LNK2] (IRQs 3 4 5 6 7 10 11 12 14 15)

ACPI: PCI Interrupt Link [LNK3] (IRQs 3 4 5 6 7 10 11 12 14 15)

ACPI: PCI Interrupt Link [LNK4] (IRQs 3 4 5 6 7 *10 11 12 14 15)

ACPI: PCI Interrupt Link [LNK5] (IRQs 3 4 5 6 7 10 11 12 14 15)

ACPI: PCI Interrupt Link [LUBA] (IRQs 3 4 *5 6 7 10 11 12 14 15)

ACPI: PCI Interrupt Link [LUBB] (IRQs 3 4 5 6 7 *10 11 12 14 15)

ACPI: PCI Interrupt Link [LMAC] (IRQs 3 4 5 6 7 10 *11 12 14 15)

ACPI: PCI Interrupt Link [LAPU] (IRQs *3 4 5 6 7 10 11 12 14 15)

ACPI: PCI Interrupt Link [LACI] (IRQs 3 4 5 6 *7 10 11 12 14 15)

ACPI: PCI Interrupt Link [LMCI] (IRQs 3 4 5 6 7 10 11 12 14 15)

ACPI: PCI Interrupt Link [LSMB] (IRQs 3 4 5 6 *7 10 11 12 14 15)

ACPI: PCI Interrupt Link [LUB2] (IRQs 3 4 5 6 7 10 *11 12 14 15)

ACPI: PCI Interrupt Link [LFIR] (IRQs 3 4 5 6 7 10 11 12 14 15)

ACPI: PCI Interrupt Link [L3CM] (IRQs 3 4 5 6 7 10 11 12 14 15)

ACPI: PCI Interrupt Link [LIDE] (IRQs 3 4 5 6 7 10 11 12 14 15)

ACPI: PCI Interrupt Link [APC1] (IRQs *16)

ACPI: PCI Interrupt Link [APC2] (IRQs 17)

ACPI: PCI Interrupt Link [APC3] (IRQs 18)

ACPI: PCI Interrupt Link [APC4] (IRQs *19)

ACPI: PCI Interrupt Link [APCE] (IRQs 16)

ACPI: PCI Interrupt Link [APCF] (IRQs 20 21 22)

ACPI: PCI Interrupt Link [APCG] (IRQs 20 21 22)

ACPI: PCI Interrupt Link [APCH] (IRQs 20 21 22)

ACPI: PCI Interrupt Link [APCI] (IRQs 20 21 22)

ACPI: PCI Interrupt Link [APCJ] (IRQs 20 21 22)

ACPI: PCI Interrupt Link [APCK] (IRQs 20 21 22)

ACPI: PCI Interrupt Link [APCS] (IRQs *23)

ACPI: PCI Interrupt Link [APCL] (IRQs 20 21 22)

ACPI: PCI Interrupt Link [APCM] (IRQs 20 21 22)

ACPI: PCI Interrupt Link [AP3C] (IRQs 20 21 22)

ACPI: PCI Interrupt Link [APCZ] (IRQs 20 21 22)

SCSI subsystem initialized

ACPI: PCI Interrupt Link [LSMB] enabled at IRQ 7

ACPI: PCI Interrupt Link [LUBA] enabled at IRQ 5

ACPI: PCI Interrupt Link [LUBB] enabled at IRQ 10

ACPI: PCI Interrupt Link [LUB2] enabled at IRQ 11

ACPI: PCI Interrupt Link [LMAC] enabled at IRQ 11

ACPI: PCI Interrupt Link [LAPU] enabled at IRQ 3

ACPI: PCI Interrupt Link [LACI] enabled at IRQ 7

ACPI: PCI Interrupt Link [LNK1] enabled at IRQ 5

ACPI: PCI Interrupt Link [LNK4] enabled at IRQ 10

PCI: Using ACPI for IRQ routing

PCI: if you experience problems, try using option 'pci=noacpi' or even

'acpi=off'





for 2.6.7-rc

---------------------------------------------

ACPI: Subsystem revision 20040326

ACPI: IRQ9 SCI: Edge set to Level Trigger.

ACPI: Interpreter enabled

ACPI: Using PIC for interrupt routing

ACPI: PCI Root Bridge [PCI0] (00:00)

PCI: Probing PCI hardware (bus 00)

PCI: nForce2 C1 Halt Disconnect fixup

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.HUB0._PRT]

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGPB._PRT]

ACPI: PCI Interrupt Link [LNK1] (IRQs 3 4 *5 6 7 10 11 12 14 15)

ACPI: PCI Interrupt Link [LNK2] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.

ACPI: PCI Interrupt Link [LNK3] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.

ACPI: PCI Interrupt Link [LNK4] (IRQs 3 4 5 6 7 *10 11 12 14 15)

ACPI: PCI Interrupt Link [LNK5] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.

ACPI: PCI Interrupt Link [LUBA] (IRQs 3 4 *5 6 7 10 11 12 14 15)

ACPI: PCI Interrupt Link [LUBB] (IRQs 3 4 5 6 7 *10 11 12 14 15)

ACPI: PCI Interrupt Link [LMAC] (IRQs 3 4 5 6 7 10 *11 12 14 15)

ACPI: PCI Interrupt Link [LAPU] (IRQs *3 4 5 6 7 10 11 12 14 15)

ACPI: PCI Interrupt Link [LACI] (IRQs 3 4 5 6 *7 10 11 12 14 15)

ACPI: PCI Interrupt Link [LMCI] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.

ACPI: PCI Interrupt Link [LSMB] (IRQs 3 4 5 6 *7 10 11 12 14 15)

ACPI: PCI Interrupt Link [LUB2] (IRQs 3 4 5 6 7 10 *11 12 14 15)

ACPI: PCI Interrupt Link [LFIR] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.

ACPI: PCI Interrupt Link [L3CM] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.

ACPI: PCI Interrupt Link [LIDE] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.

ACPI: PCI Interrupt Link [APC1] (IRQs *16)

ACPI: PCI Interrupt Link [APC2] (IRQs *17), disabled.

ACPI: PCI Interrupt Link [APC3] (IRQs *18), disabled.

ACPI: PCI Interrupt Link [APC4] (IRQs *19)

ACPI: PCI Interrupt Link [APCE] (IRQs *16), disabled.

ACPI: PCI Interrupt Link [APCF] (IRQs 20 21 22) *0

ACPI: PCI Interrupt Link [APCG] (IRQs 20 21 22) *0

ACPI: PCI Interrupt Link [APCH] (IRQs 20 21 22) *0

ACPI: PCI Interrupt Link [APCI] (IRQs 20 21 22) *0

ACPI: PCI Interrupt Link [APCJ] (IRQs 20 21 22) *0

ACPI: PCI Interrupt Link [APCK] (IRQs 20 21 22) *0, disabled.

ACPI: PCI Interrupt Link [APCS] (IRQs *23)

ACPI: PCI Interrupt Link [APCL] (IRQs 20 21 22) *0

ACPI: PCI Interrupt Link [APCM] (IRQs 20 21 22) *0, disabled.

ACPI: PCI Interrupt Link [AP3C] (IRQs 20 21 22) *0, disabled.

ACPI: PCI Interrupt Link [APCZ] (IRQs 20 21 22) *0, disabled.

SCSI subsystem initialized

PCI: Using ACPI for IRQ routing

ACPI: PCI Interrupt Link [LSMB] enabled at IRQ 7

ACPI: PCI interrupt 0000:00:01.1[A] -> GSI 7 (level, low) -> IRQ 7

ACPI: PCI Interrupt Link [LUBA] enabled at IRQ 5

ACPI: PCI interrupt 0000:00:02.0[A] -> GSI 5 (level, low) -> IRQ 5

ACPI: PCI Interrupt Link [LUBB] enabled at IRQ 10

ACPI: PCI interrupt 0000:00:02.1[B] -> GSI 10 (level, low) -> IRQ 10

ACPI: PCI Interrupt Link [LUB2] enabled at IRQ 11

ACPI: PCI interrupt 0000:00:02.2[C] -> GSI 11 (level, low) -> IRQ 11

ACPI: PCI Interrupt Link [LMAC] enabled at IRQ 11

ACPI: PCI interrupt 0000:00:04.0[A] -> GSI 11 (level, low) -> IRQ 11

ACPI: PCI Interrupt Link [LAPU] enabled at IRQ 3

ACPI: PCI interrupt 0000:00:05.0[A] -> GSI 3 (level, low) -> IRQ 3

ACPI: PCI Interrupt Link [LACI] enabled at IRQ 7

ACPI: PCI interrupt 0000:00:06.0[A] -> GSI 7 (level, low) -> IRQ 7

ACPI: PCI Interrupt Link [LNK1] enabled at IRQ 5

ACPI: PCI interrupt 0000:01:08.0[A] -> GSI 5 (level, low) -> IRQ 5

ACPI: PCI interrupt 0000:01:08.1[A] -> GSI 5 (level, low) -> IRQ 5

ACPI: PCI Interrupt Link [LNK4] enabled at IRQ 10

ACPI: PCI interrupt 0000:02:00.0[A] -> GSI 10 (level, low) -> IRQ 10





After initializing of forcedeth part (the part that doesn't work):

--------------------

2.6.5: Nothing

2.6.7: ACPI: PCI interrupt 0000:00:04.0[A] -> GSI 11 (level, low) -> IRQ 11



Ater initializing of usb part:

----------------------

2.6.5: Nothing

2.6.7: ACPI: PCI interrupt 0000:00:06.0[A] -> GSI 7 (level, low) -> IRQ 7



After sound-card part (intel8x0):

----------------------

2.6.5: Nothing

2.6.7: ACPI: PCI interrupt 0000:00:02.2[C] -> GSI 11 (level, low) -> IRQ 11



And this only happens on 2.6.7 (not in 2.6.5):

-----------------------

irq 11: nobody cared!

[<c01059aa>]

[<c0105ac3>]

[<c0105db8>]

[<c01040a8>]

[<c01191b0>]

[<c0119236>]

[<c0105dc5>]

[<c01040a8>]

[<c01e8dbe>]

[<f8a938a2>]

[<c0115a38>]

[<f8a3e870>]

[<f8a43d6a>]

[<c01eca72>]

[<c01ecacc>]

[<c01ecb0c>]

[<c0229b9f>]

[<c0229cf2>]

[<c0229fb1>]

[<c022a45f>]

[<c01ecddc>]

[<f8a0a020>]

[<c012bd9f>]

[<c0103f3b>]

handlers:

[<f8a3f800>]

Disabling IRQ #11





2.6.5

-------------

bash-2.05b# cat /proc/interrupts

CPU0

0: 1902184 XT-PIC timer

1: 2999 XT-PIC i8042

2: 0 XT-PIC cascade

5: 3 XT-PIC Bt87x audio

7: 0 XT-PIC NVidia nForce2

8: 2 XT-PIC rtc

9: 0 XT-PIC acpi

11: 193338 XT-PIC ehci_hcd, eth0

12: 86653 XT-PIC i8042

14: 30572 XT-PIC ide0

15: 112 XT-PIC ide1

NMI: 0

ERR: 0







2.6.7rc

------------

CPU0

0: 163490 XT-PIC timer

1: 170 XT-PIC i8042

2: 0 XT-PIC cascade

5: 0 XT-PIC Bt87x audio

7: 0 XT-PIC NVidia nForce2

8: 2 XT-PIC rtc

9: 0 XT-PIC acpi

11: 100000 XT-PIC ehci_hcd

12: 1162 XT-PIC i8042

14: 14766 XT-PIC ide0

15: 18 XT-PIC ide1

NMI: 0

ERR: 0



Any other test?



Thanks.



Luis Miguel Garcia



El Sunday 06 June 2004 01:50, escribi?:

> On Sun, 6 Jun 2004, Luis Miguel Garc?a Mancebo wrote:

> > I have not been able to make my ethernet card to work in post-2.6.6

> > kernels. This is a nforce2 motherboard, and as Jeff pointed, nothing has

> > changed in the driver (forcedeth), and the problem could be acpi or

> > routing in the kernel. In fact, I have a "Disabling IRQ #11" message.

> > Here is the dmesg:

> >

> > P.S.: I have tested noapic, acpi=off, pci=noapic. But this doesn't fix

> > nothing.

>

> Can you do a "diff" between the dmesg output of a working kernel, and a

> nonworking one? Also, please do the same with /proc/interrupts...

>

> It sounds like your ethernet card is on irq11 (sharing it with USB), but

> that something has incorrectly decided that it must be somewhere else and

> then when the ethernet irq happens, it continually screams on irq11 until

> the kernel decides that it has to shut it up. At which point both ethernet

> and USB is dead (the former because it is on the wrong interrupt, the

> latter because the kernel had to shut up the irq that it was sharing in

> order to avoid endless irqs).

>

> Linus



--

Luis Miguel Garc?a Mancebo

Universidad de Deusto / Deusto University

Spain


2004-06-06 03:14:34

by Linus Torvalds

[permalink] [raw]
Subject: Re: 2.6.7-rc1 breaks forcedeth



On Sun, 6 Jun 2004 [email protected] wrote:
>
> 2.6.7rc
>
> ------------
> CPU0
> 0: 163490 XT-PIC timer
> 1: 170 XT-PIC i8042
> 2: 0 XT-PIC cascade
> 5: 0 XT-PIC Bt87x audio
> 7: 0 XT-PIC NVidia nForce2
> 8: 2 XT-PIC rtc
> 9: 0 XT-PIC acpi
> 11: 100000 XT-PIC ehci_hcd
> 12: 1162 XT-PIC i8042
> 14: 14766 XT-PIC ide0
> 15: 18 XT-PIC ide1
> NMI: 0
> ERR: 0

This doesn't show the forcedeth driver at all. Not on irq11 (where it
should be), and not anywhere else either.

The thing is, the driver seems to not actually even register the irq
handler until the device is opened, which seems a bit bogus. It will
certainly result in problems if the device ever sends an interrupt. And
that seems to be exactly the behaviour you see.

I suspect that the driver should at the very least make sure to disable
any potentially pending interrupts in the "nv_probe()" function. I have no
idea how to do that, but it looks like something like

writel(0, base + NvRegIrqMask);
writel(NVREG_IRQSTAT_MASK, base + NvRegIrqStatus);

should probably do it. It would be better to reset the thing completely,
methinks, but whatever.

Anyway, this really looks very much like an irq is pending on the ethernet
controller, and isn't cleared, and then when the USB driver registers the
same irq (which was previously masked because nobody had actually
registered it), you get a storm of irq's.

As to _why_ this happens only with the current kernel, I don't know. Might
be an irq level/edge issue.

It would be interesting to have the forcedeth driver print out the irq it
will use in nv_probe, just to verify that it's 11. So when it currently
just says "forcedeth.c: subsystem: %05x:%04x bound to %s", make it print
out "dev->irq" too..

Linus

Subject: RE: Re: 2.6.7-rc1 breaks forcedeth

Well. Should I wait until a "debug" versi?n of forcedeth is released? Or do you want for me to do some tests?



If you (or the maintainer of the driver) wants me to do some tests, please drop me an email (I'm not subscribed).



Thanks.



Luis Miguel Garc?a

Spain





----- Mensaje Original -----

Remitente: Linus Torvalds [email protected]

Destinatario: [email protected]

Fecha: Domingo, Junio 6, 2004 5:14am

Asunto: Re: 2.6.7-rc1 breaks forcedeth



>

>On Sun, 6 Jun 2004 [email protected] wrote:

>>

>> 2.6.7rc

>>

>> ------------

>> CPU0

>> 0: 163490 XT-PIC timer

>> 1: 170 XT-PIC i8042

>> 2: 0 XT-PIC cascade

>> 5: 0 XT-PIC Bt87x audio

>> 7: 0 XT-PIC NVidia nForce2

>> 8: 2 XT-PIC rtc

>> 9: 0 XT-PIC acpi

>> 11: 100000 XT-PIC ehci_hcd

>> 12: 1162 XT-PIC i8042

>> 14: 14766 XT-PIC ide0

>> 15: 18 XT-PIC ide1

>> NMI: 0

>> ERR: 0

>This doesn't show the forcedeth driver at all. Not on irq11 (where

>it

>should be), and not anywhere else either.

>The thing is, the driver seems to not actually even register the irq

>handler until the device is opened, which seems a bit bogus. It will

>certainly result in problems if the device ever sends an interrupt.

>And

>that seems to be exactly the behaviour you see.

>I suspect that the driver should at the very least make sure to disable

>any potentially pending interrupts in the "nv_probe()" function. I

>have no

>idea how to do that, but it looks like something like

> writel(0, base + NvRegIrqMask);

> writel(NVREG_IRQSTAT_MASK, base + NvRegIrqStatus);

>should probably do it. It would be better to reset the thing

>completely,

>methinks, but whatever.

>Anyway, this really looks very much like an irq is pending on the

>ethernet

>controller, and isn't cleared, and then when the USB driver

>registers the

>same irq (which was previously masked because nobody had actually

>registered it), you get a storm of irq's.

>As to _why_ this happens only with the current kernel, I don't know.

>Might

>be an irq level/edge issue.

>It would be interesting to have the forcedeth driver print out the

>irq it

>will use in nv_probe, just to verify that it's 11. So when it

>currently

>just says "forcedeth.c: subsystem: %05x:%04x bound to %s", make it

>print

>out "dev->irq" too..

> Linus

2004-06-06 08:36:54

by Manfred Spraul

[permalink] [raw]
Subject: Re: 2.6.7-rc1 breaks forcedeth

--- 2.6/drivers/net/forcedeth.c 2004-05-10 04:31:59.000000000 +0200
+++ build-2.6/drivers/net/forcedeth.c 2004-06-06 10:31:43.826368991 +0200
@@ -1195,16 +1195,13 @@
enable_irq(dev->irq);
}

-static int nv_open(struct net_device *dev)
+static void nv_reset(struct net_device *dev)
{
- struct fe_priv *np = get_nvpriv(dev);
u8 *base = get_hwbase(dev);
- int ret, oom, i;

- dprintk(KERN_DEBUG "nv_open: begin\n");
+ writel(0, base + NvRegIrqMask);
+ writel(NVREG_IRQSTAT_MASK, base + NvRegIrqStatus);

- /* 1) erase previous misconfiguration */
- /* 4.1-1: stop adapter: ignored, 4.3 seems to be overkill */
writel(NVREG_MCASTADDRA_FORCE, base + NvRegMulticastAddrA);
writel(0, base + NvRegMulticastAddrB);
writel(0, base + NvRegMulticastMaskA);
@@ -1215,6 +1212,20 @@
writel(0, base + NvRegUnknownTransmitterReg);
nv_txrx_reset(dev);
writel(0, base + NvRegUnknownSetupReg6);
+ pci_push(base);
+}
+
+static int nv_open(struct net_device *dev)
+{
+ struct fe_priv *np = get_nvpriv(dev);
+ u8 *base = get_hwbase(dev);
+ int ret, oom, i;
+
+ dprintk(KERN_DEBUG "nv_open: begin\n");
+
+ /* 1) erase previous misconfiguration */
+ /* 4.1-1: stop adapter: ignored, 4.3 seems to be overkill */
+ nv_reset(dev);

/* 2) initialize descriptor rings */
np->in_shutdown = 0;
@@ -1506,6 +1517,11 @@
writel(0, base + NvRegWakeUpFlags);
np->wolenabled = 0;

+printk(KERN_ERR "forcedeth: irq line %d, Status 0x%8x, Mask %0x8x\n",
+ pci_dev->irq, readl(base + NvRegIrqStatus),
+ readl(base + NvRegIrqMask));
+ nv_reset(dev);
+
np->tx_flags = cpu_to_le16(NV_TX_LASTPACKET|NV_TX_LASTPACKET1|NV_TX_VALID);
if (id->driver_data & DEV_NEED_LASTPACKET1)
np->tx_flags |= cpu_to_le16(NV_TX_LASTPACKET1);


Attachments:
patch-forcedeth-test (1.69 kB)
Subject: RE: Re: 2.6.7-rc1 breaks forcedeth

Hi manfred,



My ethernet drivers don't work even with that patch.



This is the relevant part that I think you want of the dmesg:



forcedeth.c: Reverse Engineered nForce ethernet driver. Version 0.25.

ACPI: PCI interrupt 0000:00:04.0[A] -> GSI 11 (level, low) -> IRQ 11

PCI: Setting latency timer of device 0000:00:04.0 to 64

forcedeth: irq line 11, Status 0x 4, Mask 08x

eth0: forcedeth.c: subsystem: 0147b:1c00 bound to 0000:00:04.0



And this is the entire dmesg:



Linux version 2.6.7-rc2-Redeeman1 (root@evanescence) (gcc versi?n 3.4.0 20040519 (Gentoo Linux 3.4.0-r5, ssp-3.4-2, pie-8.7.6.2)) #4 Sun Jun 6 00:32:25 CEST 2004

BIOS-provided physical RAM map:

BIOS-e820: 0000000000000000 - 000000000009f800 (usable)

BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)

BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)

BIOS-e820: 0000000000100000 - 000000003fff0000 (usable)

BIOS-e820: 000000003fff0000 - 000000003fff3000 (ACPI NVS)

BIOS-e820: 000000003fff3000 - 0000000040000000 (ACPI data)

BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)

BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)

BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)

Warning only 896MB will be used.

Use a HIGHMEM enabled kernel.

896MB LOWMEM available.

On node 0 totalpages: 229376

DMA zone: 4096 pages, LIFO batch:1

Normal zone: 225280 pages, LIFO batch:16

HighMem zone: 0 pages, LIFO batch:1

DMI 2.2 present.

ACPI: RSDP (v000 Nvidia ) @ 0x000f6ba0

ACPI: RSDT (v001 Nvidia AWRDACPI 0x42302e31 AWRD 0x00000000) @ 0x3fff3000

ACPI: FADT (v001 Nvidia AWRDACPI 0x42302e31 AWRD 0x00000000) @ 0x3fff3040

ACPI: DSDT (v001 NVIDIA AWRDACPI 0x00001000 MSFT 0x0100000d) @ 0x00000000

Built 1 zonelists

Initializing CPU#0

Kernel command line: BOOT_IMAGE=2.6.7rc2-rd1 ro root=304

PID hash table entries: 4096 (order 12: 32768 bytes)

Detected 2037.724 MHz processor.

Using tsc for high-res timesource

Console: colour VGA+ 80x25

Memory: 906844k/917504k available (1789k kernel code, 9912k reserved, 518k data, 120k init, 0k highmem)

Checking if this processor honours the WP bit even in supervisor mode... Ok.

Calibrating delay loop... 4030.46 BogoMIPS

Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)

Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)

Mount-cache hash table entries: 512 (order: 0, 4096 bytes)

CPU: After generic identify, caps: 0383fbff c1c3fbff 00000000 00000000

CPU: After vendor identify, caps: 0383fbff c1c3fbff 00000000 00000000

CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)

CPU: L2 Cache: 512K (64 bytes/line)

CPU: After all inits, caps: 0383fbff c1c3fbff 00000000 00000020

Intel machine check architecture supported.

Intel machine check reporting enabled on CPU#0.

CPU: AMD Athlon(tm) stepping 00

Enabling fast FPU save and restore... done.

Enabling unmasked SIMD FPU exception support... done.

Checking 'hlt' instruction... OK.

NET: Registered protocol family 16

PCI: PCI BIOS revision 2.10 entry at 0xfb420, last bus=2

PCI: Using configuration type 1

mtrr: v2.0 (20020519)

ACPI: Subsystem revision 20040326

ACPI: IRQ9 SCI: Edge set to Level Trigger.

ACPI: Interpreter enabled

ACPI: Using PIC for interrupt routing

ACPI: PCI Root Bridge [PCI0] (00:00)

PCI: Probing PCI hardware (bus 00)

PCI: nForce2 C1 Halt Disconnect fixup

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.HUB0._PRT]

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGPB._PRT]

ACPI: PCI Interrupt Link [LNK1] (IRQs 3 4 *5 6 7 10 11 12 14 15)

ACPI: PCI Interrupt Link [LNK2] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.

ACPI: PCI Interrupt Link [LNK3] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.

ACPI: PCI Interrupt Link [LNK4] (IRQs 3 4 5 6 7 *10 11 12 14 15)

ACPI: PCI Interrupt Link [LNK5] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.

ACPI: PCI Interrupt Link [LUBA] (IRQs 3 4 *5 6 7 10 11 12 14 15)

ACPI: PCI Interrupt Link [LUBB] (IRQs 3 4 5 6 7 *10 11 12 14 15)

ACPI: PCI Interrupt Link [LMAC] (IRQs 3 4 5 6 7 10 *11 12 14 15)

ACPI: PCI Interrupt Link [LAPU] (IRQs *3 4 5 6 7 10 11 12 14 15)

ACPI: PCI Interrupt Link [LACI] (IRQs 3 4 5 6 *7 10 11 12 14 15)

ACPI: PCI Interrupt Link [LMCI] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.

ACPI: PCI Interrupt Link [LSMB] (IRQs 3 4 5 6 *7 10 11 12 14 15)

ACPI: PCI Interrupt Link [LUB2] (IRQs 3 4 5 6 7 10 *11 12 14 15)

ACPI: PCI Interrupt Link [LFIR] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.

ACPI: PCI Interrupt Link [L3CM] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.

ACPI: PCI Interrupt Link [LIDE] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.

ACPI: PCI Interrupt Link [APC1] (IRQs *16)

ACPI: PCI Interrupt Link [APC2] (IRQs *17), disabled.

ACPI: PCI Interrupt Link [APC3] (IRQs *18), disabled.

ACPI: PCI Interrupt Link [APC4] (IRQs *19)

ACPI: PCI Interrupt Link [APCE] (IRQs *16), disabled.

ACPI: PCI Interrupt Link [APCF] (IRQs 20 21 22) *0

ACPI: PCI Interrupt Link [APCG] (IRQs 20 21 22) *0

ACPI: PCI Interrupt Link [APCH] (IRQs 20 21 22) *0

ACPI: PCI Interrupt Link [APCI] (IRQs 20 21 22) *0

ACPI: PCI Interrupt Link [APCJ] (IRQs 20 21 22) *0

ACPI: PCI Interrupt Link [APCK] (IRQs 20 21 22) *0, disabled.

ACPI: PCI Interrupt Link [APCS] (IRQs *23)

ACPI: PCI Interrupt Link [APCL] (IRQs 20 21 22) *0

ACPI: PCI Interrupt Link [APCM] (IRQs 20 21 22) *0, disabled.

ACPI: PCI Interrupt Link [AP3C] (IRQs 20 21 22) *0, disabled.

ACPI: PCI Interrupt Link [APCZ] (IRQs 20 21 22) *0, disabled.

SCSI subsystem initialized

PCI: Using ACPI for IRQ routing

ACPI: PCI Interrupt Link [LSMB] enabled at IRQ 7

ACPI: PCI interrupt 0000:00:01.1[A] -> GSI 7 (level, low) -> IRQ 7

ACPI: PCI Interrupt Link [LUBA] enabled at IRQ 5

ACPI: PCI interrupt 0000:00:02.0[A] -> GSI 5 (level, low) -> IRQ 5

ACPI: PCI Interrupt Link [LUBB] enabled at IRQ 10

ACPI: PCI interrupt 0000:00:02.1[B] -> GSI 10 (level, low) -> IRQ 10

ACPI: PCI Interrupt Link [LUB2] enabled at IRQ 11

ACPI: PCI interrupt 0000:00:02.2[C] -> GSI 11 (level, low) -> IRQ 11

ACPI: PCI Interrupt Link [LMAC] enabled at IRQ 11

ACPI: PCI interrupt 0000:00:04.0[A] -> GSI 11 (level, low) -> IRQ 11

ACPI: PCI Interrupt Link [LAPU] enabled at IRQ 3

ACPI: PCI interrupt 0000:00:05.0[A] -> GSI 3 (level, low) -> IRQ 3

ACPI: PCI Interrupt Link [LACI] enabled at IRQ 7

ACPI: PCI interrupt 0000:00:06.0[A] -> GSI 7 (level, low) -> IRQ 7

ACPI: PCI Interrupt Link [LNK1] enabled at IRQ 5

ACPI: PCI interrupt 0000:01:08.0[A] -> GSI 5 (level, low) -> IRQ 5

ACPI: PCI interrupt 0000:01:08.1[A] -> GSI 5 (level, low) -> IRQ 5

ACPI: PCI Interrupt Link [LNK4] enabled at IRQ 10

ACPI: PCI interrupt 0000:02:00.0[A] -> GSI 10 (level, low) -> IRQ 10

Machine check exception polling timer started.

devfs: 2004-01-31 Richard Gooch ([email protected])

devfs: boot_options: 0x1

Initializing Cryptographic API

ACPI: Power Button (FF) [PWRF]

ACPI: Fan [FAN] (on)

ACPI: Processor [CPU0] (supports C1)

ACPI: Thermal Zone [THRM] (52 C)

Real Time Clock Driver v1.12

Linux agpgart interface v0.100 (c) Dave Jones

Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2

ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx

NFORCE2: IDE controller at PCI slot 0000:00:09.0

NFORCE2: chipset revision 162

NFORCE2: not 100% native mode: will probe irqs later

NFORCE2: BIOS didn't set cable bits correctly. Enabling workaround.

NFORCE2: 0000:00:09.0 (rev a2) UDMA133 controller

ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:DMA, hdb:DMA

ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:DMA, hdd:DMA

hda: ST380023A, ATA DISK drive

Using cfq io scheduler

ide0 at 0x1f0-0x1f7,0x3f6 on irq 14

hdc: HL-DT-ST GCE-8520B, ATAPI CD/DVD-ROM drive

ide1 at 0x170-0x177,0x376 on irq 15

hda: max request size: 128KiB

hda: 156301488 sectors (80026 MB) w/2048KiB Cache, CHS=65535/16/63, UDMA(100)

hda: cache flushes supported

/dev/ide/host0/bus0/target0/lun0: p1 p2 < p5 > p3 p4

hdc: ATAPI 40X CD-ROM CD-R/RW CD-MRW drive, 2048kB Cache, UDMA(33)

Uniform CD-ROM driver Revision: 3.20

mice: PS/2 mouse device common for all mice

serio: i8042 AUX port at 0x60,0x64 irq 12

input: ImExPS/2 Logitech Explorer Mouse on isa0060/serio1

serio: i8042 KBD port at 0x60,0x64 irq 1

input: AT Translated Set 2 keyboard on isa0060/serio0

NET: Registered protocol family 2

IP: routing cache hash table of 8192 buckets, 64Kbytes

TCP: Hash tables configured (established 262144 bind 65536)

NET: Registered protocol family 1

NET: Registered protocol family 17

VFS: Mounted root (reiser4 filesystem) readonly.

Mounted devfs on /dev

Freeing unused kernel memory: 120k freed

Adding 498004k swap on /dev/hda3. Priority:-1 extents:1

forcedeth.c: Reverse Engineered nForce ethernet driver. Version 0.25.

ACPI: PCI interrupt 0000:00:04.0[A] -> GSI 11 (level, low) -> IRQ 11

PCI: Setting latency timer of device 0000:00:04.0 to 64

forcedeth: irq line 11, Status 0x 4, Mask 08x

eth0: forcedeth.c: subsystem: 0147b:1c00 bound to 0000:00:04.0

agpgart: Detected NVIDIA nForce2 chipset

agpgart: Maximum main memory to use for agp memory: 816M

agpgart: AGP aperture is 256M @ 0xa0000000

usbcore: registered new driver usbfs

usbcore: registered new driver hub

ACPI: PCI interrupt 0000:00:06.0[A] -> GSI 7 (level, low) -> IRQ 7

PCI: Setting latency timer of device 0000:00:06.0 to 64

intel8x0_measure_ac97_clock: measured 49429 usecs

intel8x0: clocking to 47452

ACPI: PCI interrupt 0000:00:02.2[C] -> GSI 11 (level, low) -> IRQ 11

ehci_hcd 0000:00:02.2: nVidia Corporation nForce2 USB Controller

PCI: Setting latency timer of device 0000:00:02.2 to 64

ehci_hcd 0000:00:02.2: irq 11, pci mem f8a0c000

ehci_hcd 0000:00:02.2: new USB bus registered, assigned bus number 1

irq 11: nobody cared!

[<c01059aa>]

[<c0105ac3>]

[<c0105db8>]

[<c01040a8>]

[<c01191b0>]

[<c0119236>]

[<c0105dc5>]

[<c01040a8>]

[<c01e8dbe>]

[<f8a938a2>]

[<c0115a38>]

[<f8a3e870>]

[<f8a43d6a>]

[<c01eca72>]

[<c01ecacc>]

[<c01ecb0c>]

[<c0229b9f>]

[<c0229cf2>]

[<c0229fb1>]

[<c022a45f>]

[<c01ecddc>]

[<f8a0a020>]

[<c012bd9f>]

[<c0103f3b>]



handlers:

[<f8a3f800>]

Disabling IRQ #11

PCI: cache line size of 64 is not supported by device 0000:00:02.2

ehci_hcd 0000:00:02.2: USB 2.0 enabled, EHCI 1.00, driver 2004-May-10

hub 1-0:1.0: USB hub found

hub 1-0:1.0: 6 ports detected

ACPI: PCI interrupt 0000:01:08.1[A] -> GSI 5 (level, low) -> IRQ 5

USB Universal Host Controller Interface driver v2.2

atkbd.c: Spurious ACK on isa0060/serio0. Some program, like XFree86, might be trying access hardware directly.

atkbd.c: Spurious ACK on isa0060/serio0. Some program, like XFree86, might be trying access hardware directly.

inserting floppy driver for 2.6.7-rc2-Redeeman1

Floppy drive(s): fd0 is 1.44M

FDC 0 is a post-1991 82077





Any more things to try?







----- Mensaje Original -----

Remitente: Manfred Spraul [email protected]

Destinatario: Linus Torvalds [email protected]

Fecha: Domingo, Junio 6, 2004 10:36am

Asunto: Re: 2.6.7-rc1 breaks forcedeth



>Linus Torvalds wrote:

>>I suspect that the driver should at the very least make sure to

>disable>any potentially pending interrupts in the "nv_probe()"

>function. I have no

>>idea how to do that, but it looks like something like

>>

>> writel(0, base + NvRegIrqMask);

>> writel(NVREG_IRQSTAT_MASK, base + NvRegIrqStatus);

>>

>>should probably do it. It would be better to reset the thing

>completely,

>>methinks, but whatever.

>>

>>

>>

>I'll add that, but it's only a partial fix: what if ehci_hcd is

>loaded

>before the forcedeth driver?

>Luis, could you apply the patch and boot with it? It should print

>something like

>forcedeth: irq line 11, Status 0x00000020, Mask 0x00000020

>If mask and status are really not zero, then it explains your

>problems.

>Additionally I try to reset the nic in nv_probe - there were a few

>reports seemed to indicate that the nic generates timer interrupts

>even

>if the mask is zero.

>--

> Manfred--- 2.6/drivers/net/forcedeth.c 2004-05-10

>04:31:59.000000000 +0200

>+++ build-2.6/drivers/net/forcedeth.c 2004-06-06 10:31:43.826368991

>+0200@@ -1195,16 +1195,13 @@

> enable_irq(dev->irq);

>}

>

>-static int nv_open(struct net_device *dev)

>+static void nv_reset(struct net_device *dev)

>{

>- struct fe_priv *np = get_nvpriv(dev);

> u8 *base = get_hwbase(dev);

>- int ret, oom, i;

>

>- dprintk(KERN_DEBUG "nv_open: begin\n");

>+ writel(0, base + NvRegIrqMask);

>+ writel(NVREG_IRQSTAT_MASK, base + NvRegIrqStatus);

>

>- /* 1) erase previous misconfiguration */

>- /* 4.1-1: stop adapter: ignored, 4.3 seems to be overkill */

> writel(NVREG_MCASTADDRA_FORCE, base + NvRegMulticastAddrA);

> writel(0, base + NvRegMulticastAddrB);

> writel(0, base + NvRegMulticastMaskA);

>@@ -1215,6 +1212,20 @@

> writel(0, base + NvRegUnknownTransmitterReg);

> nv_txrx_reset(dev);

> writel(0, base + NvRegUnknownSetupReg6);

>+ pci_push(base);

>+}

>+

>+static int nv_open(struct net_device *dev)

>+{

>+ struct fe_priv *np = get_nvpriv(dev);

>+ u8 *base = get_hwbase(dev);

>+ int ret, oom, i;

>+

>+ dprintk(KERN_DEBUG "nv_open: begin\n");

>+

>+ /* 1) erase previous misconfiguration */

>+ /* 4.1-1: stop adapter: ignored, 4.3 seems to be overkill */

>+ nv_reset(dev);

>

> /* 2) initialize descriptor rings */

> np->in_shutdown = 0;

>@@ -1506,6 +1517,11 @@

> writel(0, base + NvRegWakeUpFlags);

> np->wolenabled = 0;

>

>+printk(KERN_ERR "forcedeth: irq line %d, Status 0x%8x, Mask %0x8x\n",

>+ pci_dev->irq, readl(base + NvRegIrqStatus),

>+ readl(base + NvRegIrqMask));

>+ nv_reset(dev);

>+

> np->tx_flags =

>cpu_to_le16(NV_TX_LASTPACKET|NV_TX_LASTPACKET1|NV_TX_VALID); if (id-

>>driver_data & DEV_NEED_LASTPACKET1)

> np->tx_flags |= cpu_to_le16(NV_TX_LASTPACKET1);

2004-06-06 12:52:44

by Vincent van de Camp

[permalink] [raw]
Subject: Re: 2.6.7-rc1 breaks forcedeth

I do not use the forcedeth driver, but I do have IRQ 11 problems with an
nforce2 motherboard. I'm not entirely sure if this is the same problem,
but loading the ehci module (managed by hotplug) triggers the kernel to
disable IRQ 11. Dmesg with some stack traces:

Linux version 2.6.6 (root@a7n8x) (gcc version 3.3.2 20031218 (Gentoo
Linux 3.3.2-r5, propolice-3.3-7)) #4 Fri Jun 4 07:47:27 EDT 2004
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009f800 (usable)
BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 000000005fff0000 (usable)
BIOS-e820: 000000005fff0000 - 000000005fff3000 (ACPI NVS)
BIOS-e820: 000000005fff3000 - 0000000060000000 (ACPI data)
BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)
BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
639MB HIGHMEM available.
896MB LOWMEM available.
On node 0 totalpages: 393200
DMA zone: 4096 pages, LIFO batch:1
Normal zone: 225280 pages, LIFO batch:16
HighMem zone: 163824 pages, LIFO batch:16
DMI 2.2 present.
ACPI: RSDP (v000 Nvidia ) @ 0x000f6d60
ACPI: RSDT (v001 Nvidia AWRDACPI 0x42302e31 AWRD 0x00000000) @ 0x5fff3000
ACPI: FADT (v001 Nvidia AWRDACPI 0x42302e31 AWRD 0x00000000) @ 0x5fff3040
ACPI: MADT (v001 Nvidia AWRDACPI 0x42302e31 AWRD 0x00000000) @ 0x5fff74c0
ACPI: DSDT (v001 NVIDIA AWRDACPI 0x00001000 MSFT 0x0100000e) @ 0x00000000
Built 1 zonelists
Kernel command line: root=/dev/hda2 hdc=none
ide_setup: hdc=none
Initializing CPU#0
PID hash table entries: 4096 (order 12: 32768 bytes)
Detected 2162.633 MHz processor.
Using tsc for high-res timesource
Console: colour VGA+ 80x25
Memory: 1556320k/1572800k available (1850k kernel code, 15312k reserved,
681k data, 124k init, 655296k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Calibrating delay loop... 4276.22 BogoMIPS
Dentry cache hash table entries: 262144 (order: 8, 1048576 bytes)
Inode-cache hash table entries: 131072 (order: 7, 524288 bytes)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: After generic identify, caps: 0383fbff c1c3fbff 00000000 00000000
CPU: After vendor identify, caps: 0383fbff c1c3fbff 00000000 00000000
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU: After all inits, caps: 0383fbff c1c3fbff 00000000 00000020
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
CPU: AMD Athlon(tm) XP 3000+ stepping 00
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... OK.
NET: Registered protocol family 16
PCI: PCI BIOS revision 2.10 entry at 0xfb4a0, last bus=3
PCI: Using configuration type 1
mtrr: v2.0 (20020519)
ACPI: Subsystem revision 20040326
ACPI: IRQ9 SCI: Edge set to Level Trigger.
ACPI: Interpreter enabled
ACPI: Using PIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (00:00)
PCI: Probing PCI hardware (bus 00)
PCI: nForce2 C1 Halt Disconnect fixup
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.HUB0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGPB._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.HUB1._PRT]
ACPI: PCI Interrupt Link [LNK1] (IRQs 3 4 5 6 7 10 11 12 14 15) *0,
disabled.
ACPI: PCI Interrupt Link [LNK2] (IRQs 3 4 5 6 7 10 11 12 14 15) *0,
disabled.
ACPI: PCI Interrupt Link [LNK3] (IRQs 3 4 5 6 7 10 *11 12 14 15)
ACPI: PCI Interrupt Link [LNK4] (IRQs 3 4 5 6 7 10 *11 12 14 15)
ACPI: PCI Interrupt Link [LNK5] (IRQs 3 4 5 6 7 10 11 12 14 15) *0,
disabled.
ACPI: PCI Interrupt Link [LUBA] (IRQs 3 4 *5 6 7 10 11 12 14 15)
ACPI: PCI Interrupt Link [LUBB] (IRQs 3 4 *5 6 7 10 11 12 14 15)
ACPI: PCI Interrupt Link [LMAC] (IRQs 3 4 5 6 7 10 11 12 14 15) *0,
disabled.
ACPI: PCI Interrupt Link [LAPU] (IRQs 3 4 5 6 7 10 *11 12 14 15)
ACPI: PCI Interrupt Link [LACI] (IRQs 3 4 *5 6 7 10 11 12 14 15)
ACPI: PCI Interrupt Link [LMCI] (IRQs 3 4 5 6 7 10 11 12 14 15) *0,
disabled.
ACPI: PCI Interrupt Link [LSMB] (IRQs 3 4 5 6 7 10 *11 12 14 15)
ACPI: PCI Interrupt Link [LUB2] (IRQs 3 4 5 6 7 10 *11 12 14 15)
ACPI: PCI Interrupt Link [LFIR] (IRQs 3 4 *5 6 7 10 11 12 14 15)
ACPI: PCI Interrupt Link [L3CM] (IRQs 3 4 *5 6 7 10 11 12 14 15)
ACPI: PCI Interrupt Link [LIDE] (IRQs 3 4 5 6 7 10 11 12 14 15) *0,
disabled.
ACPI: PCI Interrupt Link [APC1] (IRQs *16), disabled.
ACPI: PCI Interrupt Link [APC2] (IRQs *17), disabled.
ACPI: PCI Interrupt Link [APC3] (IRQs *18)
ACPI: PCI Interrupt Link [APC4] (IRQs *19)
ACPI: PCI Interrupt Link [APC5] (IRQs *16), disabled.
ACPI: PCI Interrupt Link [APCF] (IRQs 20 21 22) *0
ACPI: PCI Interrupt Link [APCG] (IRQs 20 21 22) *0
ACPI: PCI Interrupt Link [APCH] (IRQs 20 21 22) *0, disabled.
ACPI: PCI Interrupt Link [APCI] (IRQs 20 21 22) *0
ACPI: PCI Interrupt Link [APCJ] (IRQs 20 21 22) *0
ACPI: PCI Interrupt Link [APCK] (IRQs 20 21 22) *0, disabled.
ACPI: PCI Interrupt Link [APCS] (IRQs *23)
ACPI: PCI Interrupt Link [APCL] (IRQs 20 21 22) *0
ACPI: PCI Interrupt Link [APCM] (IRQs 20 21 22) *0
ACPI: PCI Interrupt Link [AP3C] (IRQs 20 21 22) *0
ACPI: PCI Interrupt Link [APCZ] (IRQs 20 21 22) *0, disabled.
Linux Plug and Play Support v0.97 (c) Adam Belay
ACPI: PCI Interrupt Link [LSMB] enabled at IRQ 11
ACPI: PCI Interrupt Link [LUBA] enabled at IRQ 5
ACPI: PCI Interrupt Link [LUBB] enabled at IRQ 5
ACPI: PCI Interrupt Link [LUB2] enabled at IRQ 11
ACPI: PCI Interrupt Link [LAPU] enabled at IRQ 11
ACPI: PCI Interrupt Link [LACI] enabled at IRQ 5
ACPI: PCI Interrupt Link [LFIR] enabled at IRQ 5
ACPI: PCI Interrupt Link [LNK3] enabled at IRQ 11
ACPI: PCI Interrupt Link [L3CM] enabled at IRQ 5
ACPI: PCI Interrupt Link [LNK4] enabled at IRQ 11
PCI: Using ACPI for IRQ routing
Machine check exception polling timer started.
highmem bounce pool size: 64 pages
SGI XFS with no debug enabled
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
SiI3112 Serial ATA: IDE controller at PCI slot 0000:01:0b.0
SiI3112 Serial ATA: chipset revision 1
SiI3112 Serial ATA: 100% native mode on irq 11
ide0: MMIO-DMA , BIOS settings: hda:pio, hdb:pio
ide1: MMIO-DMA , BIOS settings: hdc:pio, hdd:pio
hda: WDC WD360GD-00FNA0, ATA DISK drive
Using anticipatory io scheduler
ide0 at 0xf8808080-0xf8808087,0xf880808a on irq 11
hda: max request size: 64KiB
hda: 72303840 sectors (37019 MB) w/8192KiB Cache, CHS=16383/255/63,
UDMA(133)
hda: hda1 hda2 hda3
mice: PS/2 mouse device common for all mice
serio: i8042 AUX port at 0x60,0x64 irq 12
serio: i8042 KBD port at 0x60,0x64 irq 1
input: AT Translated Set 2 keyboard on isa0060/serio0
NET: Registered protocol family 2
IP: routing cache hash table of 16384 buckets, 128Kbytes
TCP: Hash tables configured (established 524288 bind 65536)
ip_conntrack version 2.1 (8192 buckets, 65536 max) - 296 bytes per conntrack
ip_tables: (C) 2000-2002 Netfilter core team
ipt_recent v0.3.1: Stephen Frost <[email protected]>.
http://snowman.net/projects/ipt_recent/
arp_tables: (C) 2002 David S. Miller
ACPI: (supports S0 S1 S3 S4 S4bios S5)
XFS mounting filesystem hda2
Ending clean XFS mount for filesystem: hda2
VFS: Mounted root (xfs filesystem) readonly.
Freeing unused kernel memory: 124k freed
NET: Registered protocol family 1
Adding 1606492k swap on /dev/hda3. Priority:-1 extents:1
3c59x: Donald Becker and others. http://www.scyld.com/network/vortex.html
0000:02:01.0: 3Com PCI 3c920 Tornado at 0xb000. Vers LK1.1.19
NFORCE2: IDE controller at PCI slot 0000:00:09.0
NFORCE2: chipset revision 162
NFORCE2: not 100% native mode: will probe irqs later
NFORCE2: 0000:00:09.0 (rev a2) UDMA133 controller
ide2: BM-DMA at 0xf000-0xf007, BIOS settings: hde:DMA, hdf:DMA
ide3: BM-DMA at 0xf008-0xf00f, BIOS settings: hdg:DMA, hdh:DMA
hde: YAMAHA CRW2200E, ATAPI CD/DVD-ROM drive
ide2 at 0x1f0-0x1f7,0x3f6 on irq 14
usbcore: registered new driver usbfs
usbcore: registered new driver hub
usbcore: registered new driver hiddev
usbcore: registered new driver usbhid
drivers/usb/input/hid-core.c: v2.0:USB HID core driver
input: PS/2 Logitech Mouse on isa0060/serio1
Linux agpgart interface v0.100 (c) Dave Jones
agpgart: Detected NVIDIA nForce2 chipset
agpgart: Maximum main memory to use for agp memory: 1430M
agpgart: AGP aperture is 64M @ 0xd8000000
ohci_hcd: 2004 Feb 02 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI)
ohci_hcd: block sizes: ed 64 td 64
ohci_hcd 0000:00:02.0: nVidia Corporation nForce2 USB Controller
PCI: Setting latency timer of device 0000:00:02.0 to 64
ohci_hcd 0000:00:02.0: irq 5, pci mem f893c000
ohci_hcd 0000:00:02.0: new USB bus registered, assigned bus number 1
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 3 ports detected
ohci_hcd 0000:00:02.1: nVidia Corporation nForce2 USB Controller (#2)
PCI: Setting latency timer of device 0000:00:02.1 to 64
ohci_hcd 0000:00:02.1: irq 5, pci mem f8943000
ohci_hcd 0000:00:02.1: new USB bus registered, assigned bus number 2
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 3 ports detected
ehci_hcd 0000:00:02.2: nVidia Corporation nForce2 USB Controller
PCI: Setting latency timer of device 0000:00:02.2 to 64
ehci_hcd 0000:00:02.2: irq 11, pci mem f8945000
ehci_hcd 0000:00:02.2: new USB bus registered, assigned bus number 3
irq 11: nobody cared!
[<c0105a9a>] __report_bad_irq+0x2a/0x90
[<c0105b90>] note_interrupt+0x70/0xa0
[<c0105e31>] do_IRQ+0x121/0x130
[<c0104208>] common_interrupt+0x18/0x20
[<c011ae30>] __do_softirq+0x30/0x80
[<c011aea6>] do_softirq+0x26/0x30
[<c0105e0d>] do_IRQ+0xfd/0x130
[<c0104208>] common_interrupt+0x18/0x20
[<c020821f>] pci_bus_read_config_byte+0x5f/0x90
[<f89a539e>] ehci_start+0x2ce/0x360 [ehci_hcd]
[<c01175fd>] printk+0x10d/0x170
[<f8952507>] usb_register_bus+0x137/0x160 [usbcore]
[<f895758b>] usb_hcd_pci_probe+0x2ab/0x4e0 [usbcore]
[<c020bb42>] pci_device_probe_static+0x52/0x70
[<c020bb9b>] __pci_device_probe+0x3b/0x50
[<c020bbdc>] pci_device_probe+0x2c/0x50
[<c02441cf>] bus_match+0x3f/0x70
[<c02442f9>] driver_attach+0x59/0x90
[<c02445a1>] bus_add_driver+0x91/0xb0
[<c0244a5f>] driver_register+0x2f/0x40
[<c020be5c>] pci_register_driver+0x5c/0x90
[<f8936023>] init+0x23/0x30 [ehci_hcd]
[<c012cc04>] sys_init_module+0x114/0x230
[<c0104049>] sysenter_past_esp+0x52/0x71

handlers:
[<c0258b90>] (ide_intr+0x0/0x190)
[<f8953300>] (usb_hcd_irq+0x0/0x70 [usbcore])
Disabling IRQ #11
irq 11: nobody cared!
[<c0105a9a>] __report_bad_irq+0x2a/0x90
[<c0105b90>] note_interrupt+0x70/0xa0
[<c0105e31>] do_IRQ+0x121/0x130
[<c0104208>] common_interrupt+0x18/0x20
[<c011ae30>] __do_softirq+0x30/0x80
[<c011aea6>] do_softirq+0x26/0x30
[<c0105e0d>] do_IRQ+0xfd/0x130
[<c0104208>] common_interrupt+0x18/0x20
[<c0248b86>] generic_unplug_device+0x26/0x70
[<c0248bf1>] blk_backing_dev_unplug+0x21/0x30
[<c01f3fef>] pagebuf_iowait+0x5f/0x70
[<c01f39f9>] pagebuf_iostart+0x69/0xb0
[<c01f30dc>] pagebuf_get+0x14c/0x1b0
[<c01e485c>] xfs_trans_read_buf+0x31c/0x380
[<c01af7e9>] xfs_da_do_buf+0x6a9/0x9b0
[<c01f30dc>] pagebuf_get+0x14c/0x1b0
[<c01c9944>] xfs_itobp+0x114/0x270
[<c01afba7>] xfs_da_read_buf+0x57/0x60
[<c01b3d42>] xfs_dir2_block_lookup_int+0x52/0x190
[<c01b3d42>] xfs_dir2_block_lookup_int+0x52/0x190
[<c01b3c5f>] xfs_dir2_block_lookup+0x2f/0xc0
[<c01b1fd3>] xfs_dir2_lookup+0xc3/0x140
[<c01e59bc>] xfs_dir_lookup_int+0x4c/0x130
[<c01eb3f0>] xfs_lookup+0x50/0x90
[<c01f7977>] linvfs_lookup+0x67/0xa0
[<c015be4b>] real_lookup+0xcb/0xf0
[<c015c0d6>] do_lookup+0x96/0xb0
[<c015c215>] link_path_walk+0x125/0x960
[<c015ccb7>] path_lookup+0x77/0x140
[<c015d363>] open_namei+0x83/0x400
[<c014db1e>] filp_open+0x3e/0x70
[<c014dfeb>] sys_open+0x5b/0x90
[<c0104049>] sysenter_past_esp+0x52/0x71

handlers:
[<c0258b90>] (ide_intr+0x0/0x190)
[<f8953300>] (usb_hcd_irq+0x0/0x70 [usbcore])
Disabling IRQ #11
PCI: cache line size of 64 is not supported by device 0000:00:02.2
ehci_hcd 0000:00:02.2: USB 2.0 enabled, EHCI 1.00, driver 2004-May-10
hub 3-0:1.0: USB hub found
hub 3-0:1.0: 6 ports detected
PCI: Setting latency timer of device 0000:00:06.0 to 64
intel8x0_measure_ac97_clock: measured 49415 usecs
intel8x0: clocking to 47438
ohci1394: $Rev: 1203 $ Ben Collins <[email protected]>
PCI: Setting latency timer of device 0000:00:0d.0 to 64
ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[5]
MMIO=[e2083000-e20837ff] Max Packet=[2048]
nfs warning: mount version older than kernel

[email protected] wrote:
> Hi manfred,
>
>
>
> My ethernet drivers don't work even with that patch.
>
>
>
> This is the relevant part that I think you want of the dmesg:
>
>
>
> forcedeth.c: Reverse Engineered nForce ethernet driver. Version 0.25.
>
> ACPI: PCI interrupt 0000:00:04.0[A] -> GSI 11 (level, low) -> IRQ 11
>
> PCI: Setting latency timer of device 0000:00:04.0 to 64
>
> forcedeth: irq line 11, Status 0x 4, Mask 08x
>
> eth0: forcedeth.c: subsystem: 0147b:1c00 bound to 0000:00:04.0
>
>
>
> And this is the entire dmesg:
>
>
>
> Linux version 2.6.7-rc2-Redeeman1 (root@evanescence) (gcc versi?n 3.4.0 20040519 (Gentoo Linux 3.4.0-r5, ssp-3.4-2, pie-8.7.6.2)) #4 Sun Jun 6 00:32:25 CEST 2004
>
> BIOS-provided physical RAM map:
>
> BIOS-e820: 0000000000000000 - 000000000009f800 (usable)
>
> BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
>
> BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
>
> BIOS-e820: 0000000000100000 - 000000003fff0000 (usable)
>
> BIOS-e820: 000000003fff0000 - 000000003fff3000 (ACPI NVS)
>
> BIOS-e820: 000000003fff3000 - 0000000040000000 (ACPI data)
>
> BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)
>
> BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
>
> BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
>
> Warning only 896MB will be used.
>
> Use a HIGHMEM enabled kernel.
>
> 896MB LOWMEM available.
>
> On node 0 totalpages: 229376
>
> DMA zone: 4096 pages, LIFO batch:1
>
> Normal zone: 225280 pages, LIFO batch:16
>
> HighMem zone: 0 pages, LIFO batch:1
>
> DMI 2.2 present.
>
> ACPI: RSDP (v000 Nvidia ) @ 0x000f6ba0
>
> ACPI: RSDT (v001 Nvidia AWRDACPI 0x42302e31 AWRD 0x00000000) @ 0x3fff3000
>
> ACPI: FADT (v001 Nvidia AWRDACPI 0x42302e31 AWRD 0x00000000) @ 0x3fff3040
>
> ACPI: DSDT (v001 NVIDIA AWRDACPI 0x00001000 MSFT 0x0100000d) @ 0x00000000
>
> Built 1 zonelists
>
> Initializing CPU#0
>
> Kernel command line: BOOT_IMAGE=2.6.7rc2-rd1 ro root=304
>
> PID hash table entries: 4096 (order 12: 32768 bytes)
>
> Detected 2037.724 MHz processor.
>
> Using tsc for high-res timesource
>
> Console: colour VGA+ 80x25
>
> Memory: 906844k/917504k available (1789k kernel code, 9912k reserved, 518k data, 120k init, 0k highmem)
>
> Checking if this processor honours the WP bit even in supervisor mode... Ok.
>
> Calibrating delay loop... 4030.46 BogoMIPS
>
> Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
>
> Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
>
> Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
>
> CPU: After generic identify, caps: 0383fbff c1c3fbff 00000000 00000000
>
> CPU: After vendor identify, caps: 0383fbff c1c3fbff 00000000 00000000
>
> CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
>
> CPU: L2 Cache: 512K (64 bytes/line)
>
> CPU: After all inits, caps: 0383fbff c1c3fbff 00000000 00000020
>
> Intel machine check architecture supported.
>
> Intel machine check reporting enabled on CPU#0.
>
> CPU: AMD Athlon(tm) stepping 00
>
> Enabling fast FPU save and restore... done.
>
> Enabling unmasked SIMD FPU exception support... done.
>
> Checking 'hlt' instruction... OK.
>
> NET: Registered protocol family 16
>
> PCI: PCI BIOS revision 2.10 entry at 0xfb420, last bus=2
>
> PCI: Using configuration type 1
>
> mtrr: v2.0 (20020519)
>
> ACPI: Subsystem revision 20040326
>
> ACPI: IRQ9 SCI: Edge set to Level Trigger.
>
> ACPI: Interpreter enabled
>
> ACPI: Using PIC for interrupt routing
>
> ACPI: PCI Root Bridge [PCI0] (00:00)
>
> PCI: Probing PCI hardware (bus 00)
>
> PCI: nForce2 C1 Halt Disconnect fixup
>
> ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
>
> ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.HUB0._PRT]
>
> ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGPB._PRT]
>
> ACPI: PCI Interrupt Link [LNK1] (IRQs 3 4 *5 6 7 10 11 12 14 15)
>
> ACPI: PCI Interrupt Link [LNK2] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.
>
> ACPI: PCI Interrupt Link [LNK3] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.
>
> ACPI: PCI Interrupt Link [LNK4] (IRQs 3 4 5 6 7 *10 11 12 14 15)
>
> ACPI: PCI Interrupt Link [LNK5] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.
>
> ACPI: PCI Interrupt Link [LUBA] (IRQs 3 4 *5 6 7 10 11 12 14 15)
>
> ACPI: PCI Interrupt Link [LUBB] (IRQs 3 4 5 6 7 *10 11 12 14 15)
>
> ACPI: PCI Interrupt Link [LMAC] (IRQs 3 4 5 6 7 10 *11 12 14 15)
>
> ACPI: PCI Interrupt Link [LAPU] (IRQs *3 4 5 6 7 10 11 12 14 15)
>
> ACPI: PCI Interrupt Link [LACI] (IRQs 3 4 5 6 *7 10 11 12 14 15)
>
> ACPI: PCI Interrupt Link [LMCI] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.
>
> ACPI: PCI Interrupt Link [LSMB] (IRQs 3 4 5 6 *7 10 11 12 14 15)
>
> ACPI: PCI Interrupt Link [LUB2] (IRQs 3 4 5 6 7 10 *11 12 14 15)
>
> ACPI: PCI Interrupt Link [LFIR] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.
>
> ACPI: PCI Interrupt Link [L3CM] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.
>
> ACPI: PCI Interrupt Link [LIDE] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.
>
> ACPI: PCI Interrupt Link [APC1] (IRQs *16)
>
> ACPI: PCI Interrupt Link [APC2] (IRQs *17), disabled.
>
> ACPI: PCI Interrupt Link [APC3] (IRQs *18), disabled.
>
> ACPI: PCI Interrupt Link [APC4] (IRQs *19)
>
> ACPI: PCI Interrupt Link [APCE] (IRQs *16), disabled.
>
> ACPI: PCI Interrupt Link [APCF] (IRQs 20 21 22) *0
>
> ACPI: PCI Interrupt Link [APCG] (IRQs 20 21 22) *0
>
> ACPI: PCI Interrupt Link [APCH] (IRQs 20 21 22) *0
>
> ACPI: PCI Interrupt Link [APCI] (IRQs 20 21 22) *0
>
> ACPI: PCI Interrupt Link [APCJ] (IRQs 20 21 22) *0
>
> ACPI: PCI Interrupt Link [APCK] (IRQs 20 21 22) *0, disabled.
>
> ACPI: PCI Interrupt Link [APCS] (IRQs *23)
>
> ACPI: PCI Interrupt Link [APCL] (IRQs 20 21 22) *0
>
> ACPI: PCI Interrupt Link [APCM] (IRQs 20 21 22) *0, disabled.
>
> ACPI: PCI Interrupt Link [AP3C] (IRQs 20 21 22) *0, disabled.
>
> ACPI: PCI Interrupt Link [APCZ] (IRQs 20 21 22) *0, disabled.
>
> SCSI subsystem initialized
>
> PCI: Using ACPI for IRQ routing
>
> ACPI: PCI Interrupt Link [LSMB] enabled at IRQ 7
>
> ACPI: PCI interrupt 0000:00:01.1[A] -> GSI 7 (level, low) -> IRQ 7
>
> ACPI: PCI Interrupt Link [LUBA] enabled at IRQ 5
>
> ACPI: PCI interrupt 0000:00:02.0[A] -> GSI 5 (level, low) -> IRQ 5
>
> ACPI: PCI Interrupt Link [LUBB] enabled at IRQ 10
>
> ACPI: PCI interrupt 0000:00:02.1[B] -> GSI 10 (level, low) -> IRQ 10
>
> ACPI: PCI Interrupt Link [LUB2] enabled at IRQ 11
>
> ACPI: PCI interrupt 0000:00:02.2[C] -> GSI 11 (level, low) -> IRQ 11
>
> ACPI: PCI Interrupt Link [LMAC] enabled at IRQ 11
>
> ACPI: PCI interrupt 0000:00:04.0[A] -> GSI 11 (level, low) -> IRQ 11
>
> ACPI: PCI Interrupt Link [LAPU] enabled at IRQ 3
>
> ACPI: PCI interrupt 0000:00:05.0[A] -> GSI 3 (level, low) -> IRQ 3
>
> ACPI: PCI Interrupt Link [LACI] enabled at IRQ 7
>
> ACPI: PCI interrupt 0000:00:06.0[A] -> GSI 7 (level, low) -> IRQ 7
>
> ACPI: PCI Interrupt Link [LNK1] enabled at IRQ 5
>
> ACPI: PCI interrupt 0000:01:08.0[A] -> GSI 5 (level, low) -> IRQ 5
>
> ACPI: PCI interrupt 0000:01:08.1[A] -> GSI 5 (level, low) -> IRQ 5
>
> ACPI: PCI Interrupt Link [LNK4] enabled at IRQ 10
>
> ACPI: PCI interrupt 0000:02:00.0[A] -> GSI 10 (level, low) -> IRQ 10
>
> Machine check exception polling timer started.
>
> devfs: 2004-01-31 Richard Gooch ([email protected])
>
> devfs: boot_options: 0x1
>
> Initializing Cryptographic API
>
> ACPI: Power Button (FF) [PWRF]
>
> ACPI: Fan [FAN] (on)
>
> ACPI: Processor [CPU0] (supports C1)
>
> ACPI: Thermal Zone [THRM] (52 C)
>
> Real Time Clock Driver v1.12
>
> Linux agpgart interface v0.100 (c) Dave Jones
>
> Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
>
> ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
>
> NFORCE2: IDE controller at PCI slot 0000:00:09.0
>
> NFORCE2: chipset revision 162
>
> NFORCE2: not 100% native mode: will probe irqs later
>
> NFORCE2: BIOS didn't set cable bits correctly. Enabling workaround.
>
> NFORCE2: 0000:00:09.0 (rev a2) UDMA133 controller
>
> ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:DMA, hdb:DMA
>
> ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:DMA, hdd:DMA
>
> hda: ST380023A, ATA DISK drive
>
> Using cfq io scheduler
>
> ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
>
> hdc: HL-DT-ST GCE-8520B, ATAPI CD/DVD-ROM drive
>
> ide1 at 0x170-0x177,0x376 on irq 15
>
> hda: max request size: 128KiB
>
> hda: 156301488 sectors (80026 MB) w/2048KiB Cache, CHS=65535/16/63, UDMA(100)
>
> hda: cache flushes supported
>
> /dev/ide/host0/bus0/target0/lun0: p1 p2 < p5 > p3 p4
>
> hdc: ATAPI 40X CD-ROM CD-R/RW CD-MRW drive, 2048kB Cache, UDMA(33)
>
> Uniform CD-ROM driver Revision: 3.20
>
> mice: PS/2 mouse device common for all mice
>
> serio: i8042 AUX port at 0x60,0x64 irq 12
>
> input: ImExPS/2 Logitech Explorer Mouse on isa0060/serio1
>
> serio: i8042 KBD port at 0x60,0x64 irq 1
>
> input: AT Translated Set 2 keyboard on isa0060/serio0
>
> NET: Registered protocol family 2
>
> IP: routing cache hash table of 8192 buckets, 64Kbytes
>
> TCP: Hash tables configured (established 262144 bind 65536)
>
> NET: Registered protocol family 1
>
> NET: Registered protocol family 17
>
> VFS: Mounted root (reiser4 filesystem) readonly.
>
> Mounted devfs on /dev
>
> Freeing unused kernel memory: 120k freed
>
> Adding 498004k swap on /dev/hda3. Priority:-1 extents:1
>
> forcedeth.c: Reverse Engineered nForce ethernet driver. Version 0.25.
>
> ACPI: PCI interrupt 0000:00:04.0[A] -> GSI 11 (level, low) -> IRQ 11
>
> PCI: Setting latency timer of device 0000:00:04.0 to 64
>
> forcedeth: irq line 11, Status 0x 4, Mask 08x
>
> eth0: forcedeth.c: subsystem: 0147b:1c00 bound to 0000:00:04.0
>
> agpgart: Detected NVIDIA nForce2 chipset
>
> agpgart: Maximum main memory to use for agp memory: 816M
>
> agpgart: AGP aperture is 256M @ 0xa0000000
>
> usbcore: registered new driver usbfs
>
> usbcore: registered new driver hub
>
> ACPI: PCI interrupt 0000:00:06.0[A] -> GSI 7 (level, low) -> IRQ 7
>
> PCI: Setting latency timer of device 0000:00:06.0 to 64
>
> intel8x0_measure_ac97_clock: measured 49429 usecs
>
> intel8x0: clocking to 47452
>
> ACPI: PCI interrupt 0000:00:02.2[C] -> GSI 11 (level, low) -> IRQ 11
>
> ehci_hcd 0000:00:02.2: nVidia Corporation nForce2 USB Controller
>
> PCI: Setting latency timer of device 0000:00:02.2 to 64
>
> ehci_hcd 0000:00:02.2: irq 11, pci mem f8a0c000
>
> ehci_hcd 0000:00:02.2: new USB bus registered, assigned bus number 1
>
> irq 11: nobody cared!
>
> [<c01059aa>]
>
> [<c0105ac3>]
>
> [<c0105db8>]
>
> [<c01040a8>]
>
> [<c01191b0>]
>
> [<c0119236>]
>
> [<c0105dc5>]
>
> [<c01040a8>]
>
> [<c01e8dbe>]
>
> [<f8a938a2>]
>
> [<c0115a38>]
>
> [<f8a3e870>]
>
> [<f8a43d6a>]
>
> [<c01eca72>]
>
> [<c01ecacc>]
>
> [<c01ecb0c>]
>
> [<c0229b9f>]
>
> [<c0229cf2>]
>
> [<c0229fb1>]
>
> [<c022a45f>]
>
> [<c01ecddc>]
>
> [<f8a0a020>]
>
> [<c012bd9f>]
>
> [<c0103f3b>]
>
>
>
> handlers:
>
> [<f8a3f800>]
>
> Disabling IRQ #11
>
> PCI: cache line size of 64 is not supported by device 0000:00:02.2
>
> ehci_hcd 0000:00:02.2: USB 2.0 enabled, EHCI 1.00, driver 2004-May-10
>
> hub 1-0:1.0: USB hub found
>
> hub 1-0:1.0: 6 ports detected
>
> ACPI: PCI interrupt 0000:01:08.1[A] -> GSI 5 (level, low) -> IRQ 5
>
> USB Universal Host Controller Interface driver v2.2
>
> atkbd.c: Spurious ACK on isa0060/serio0. Some program, like XFree86, might be trying access hardware directly.
>
> atkbd.c: Spurious ACK on isa0060/serio0. Some program, like XFree86, might be trying access hardware directly.
>
> inserting floppy driver for 2.6.7-rc2-Redeeman1
>
> Floppy drive(s): fd0 is 1.44M
>
> FDC 0 is a post-1991 82077
>
>
>
>
>
> Any more things to try?
>
>
>
>
>
>
>
> ----- Mensaje Original -----
>
> Remitente: Manfred Spraul [email protected]
>
> Destinatario: Linus Torvalds [email protected]
>
> Fecha: Domingo, Junio 6, 2004 10:36am
>
> Asunto: Re: 2.6.7-rc1 breaks forcedeth
>
>
>
>
>>Linus Torvalds wrote:
>
>
>>>I suspect that the driver should at the very least make sure to
>
>
>>disable>any potentially pending interrupts in the "nv_probe()"
>
>
>>function. I have no
>
>
>>>idea how to do that, but it looks like something like
>
>
>
>>> writel(0, base + NvRegIrqMask);
>
>
>>> writel(NVREG_IRQSTAT_MASK, base + NvRegIrqStatus);
>
>
>
>>>should probably do it. It would be better to reset the thing
>
>
>>completely,
>
>
>>>methinks, but whatever.
>
>
>
>>>
>
>
>
>>I'll add that, but it's only a partial fix: what if ehci_hcd is
>
>
>>loaded
>
>
>>before the forcedeth driver?
>
>
>>Luis, could you apply the patch and boot with it? It should print
>
>
>>something like
>
>
>>forcedeth: irq line 11, Status 0x00000020, Mask 0x00000020
>
>
>>If mask and status are really not zero, then it explains your
>
>
>>problems.
>
>
>>Additionally I try to reset the nic in nv_probe - there were a few
>
>
>>reports seemed to indicate that the nic generates timer interrupts
>
>
>>even
>
>
>>if the mask is zero.
>
>
>>--
>
>
>> Manfred--- 2.6/drivers/net/forcedeth.c 2004-05-10
>
>
>>04:31:59.000000000 +0200
>
>
>>+++ build-2.6/drivers/net/forcedeth.c 2004-06-06 10:31:43.826368991
>
>
>>+0200@@ -1195,16 +1195,13 @@
>
>
>> enable_irq(dev->irq);
>
>
>>}
>
>
>
>>-static int nv_open(struct net_device *dev)
>
>
>>+static void nv_reset(struct net_device *dev)
>
>
>>{
>
>
>>- struct fe_priv *np = get_nvpriv(dev);
>
>
>> u8 *base = get_hwbase(dev);
>
>
>>- int ret, oom, i;
>
>
>
>>- dprintk(KERN_DEBUG "nv_open: begin\n");
>
>
>>+ writel(0, base + NvRegIrqMask);
>
>
>>+ writel(NVREG_IRQSTAT_MASK, base + NvRegIrqStatus);
>
>
>
>>- /* 1) erase previous misconfiguration */
>
>
>>- /* 4.1-1: stop adapter: ignored, 4.3 seems to be overkill */
>
>
>> writel(NVREG_MCASTADDRA_FORCE, base + NvRegMulticastAddrA);
>
>
>> writel(0, base + NvRegMulticastAddrB);
>
>
>> writel(0, base + NvRegMulticastMaskA);
>
>
>>@@ -1215,6 +1212,20 @@
>
>
>> writel(0, base + NvRegUnknownTransmitterReg);
>
>
>> nv_txrx_reset(dev);
>
>
>> writel(0, base + NvRegUnknownSetupReg6);
>
>
>>+ pci_push(base);
>
>
>>+}
>
>
>>+
>
>
>>+static int nv_open(struct net_device *dev)
>
>
>>+{
>
>
>>+ struct fe_priv *np = get_nvpriv(dev);
>
>
>>+ u8 *base = get_hwbase(dev);
>
>
>>+ int ret, oom, i;
>
>
>>+
>
>
>>+ dprintk(KERN_DEBUG "nv_open: begin\n");
>
>
>>+
>
>
>>+ /* 1) erase previous misconfiguration */
>
>
>>+ /* 4.1-1: stop adapter: ignored, 4.3 seems to be overkill */
>
>
>>+ nv_reset(dev);
>
>
>
>> /* 2) initialize descriptor rings */
>
>
>> np->in_shutdown = 0;
>
>
>>@@ -1506,6 +1517,11 @@
>
>
>> writel(0, base + NvRegWakeUpFlags);
>
>
>> np->wolenabled = 0;
>
>
>
>>+printk(KERN_ERR "forcedeth: irq line %d, Status 0x%8x, Mask %0x8x\n",
>
>
>>+ pci_dev->irq, readl(base + NvRegIrqStatus),
>
>
>>+ readl(base + NvRegIrqMask));
>
>
>>+ nv_reset(dev);
>
>
>>+
>
>
>> np->tx_flags =
>
>
>>cpu_to_le16(NV_TX_LASTPACKET|NV_TX_LASTPACKET1|NV_TX_VALID); if (id-
>
>
>>>driver_data & DEV_NEED_LASTPACKET1)
>
>
>> np->tx_flags |= cpu_to_le16(NV_TX_LASTPACKET1);
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>

2004-06-06 13:40:59

by Manfred Spraul

[permalink] [raw]
Subject: Re: 2.6.7-rc1 breaks forcedeth

Vincent van de Camp wrote:

> I do not use the forcedeth driver, but I do have IRQ 11 problems with
> an nforce2 motherboard. I'm not entirely sure if this is the same
> problem, but loading the ehci module (managed by hotplug) triggers the
> kernel to disable IRQ 11. Dmesg with some stack traces:

It's the same bug:
something generates irq 11 events. We don't know who or why. This causes
an irq storm as soon as the first user registeres a handler for irq 11
and the system must shut off irq 11. Then all devices that are connected
to irq 11 fail.

--
Manfred

2004-06-06 14:18:18

by Manfred Spraul

[permalink] [raw]
Subject: Re: 2.6.7-rc1 breaks forcedeth

--- 2.6/drivers/net/forcedeth.c 2004-05-10 04:31:59.000000000 +0200
+++ build-2.6/drivers/net/forcedeth.c 2004-06-06 16:09:42.960783872 +0200
@@ -1126,6 +1126,15 @@
writel(NVREG_IRQSTAT_MASK, base + NvRegIrqStatus);
pci_push(base);
dprintk(KERN_DEBUG "%s: irq: %08x\n", dev->name, events);
+
+printk(KERN_ERR "forcedeth %s: got irq Status 0x%08x, Mask 0x%08x\n",
+ dev->name, readl(base + NvRegIrqStatus),
+ readl(base + NvRegIrqMask));
+ if (np->in_shutdown) {
+printk(KERN_ERR "forcedeth: irq while not running.\n");
+ break;
+ }
+
if (!(events & np->irqmask))
break;

@@ -1195,16 +1204,13 @@
enable_irq(dev->irq);
}

-static int nv_open(struct net_device *dev)
+static void nv_reset(struct net_device *dev)
{
- struct fe_priv *np = get_nvpriv(dev);
u8 *base = get_hwbase(dev);
- int ret, oom, i;

- dprintk(KERN_DEBUG "nv_open: begin\n");
+ writel(0, base + NvRegIrqMask);
+ writel(NVREG_IRQSTAT_MASK, base + NvRegIrqStatus);

- /* 1) erase previous misconfiguration */
- /* 4.1-1: stop adapter: ignored, 4.3 seems to be overkill */
writel(NVREG_MCASTADDRA_FORCE, base + NvRegMulticastAddrA);
writel(0, base + NvRegMulticastAddrB);
writel(0, base + NvRegMulticastMaskA);
@@ -1215,9 +1221,22 @@
writel(0, base + NvRegUnknownTransmitterReg);
nv_txrx_reset(dev);
writel(0, base + NvRegUnknownSetupReg6);
+ pci_push(base);
+}
+
+static int nv_open(struct net_device *dev)
+{
+ struct fe_priv *np = get_nvpriv(dev);
+ u8 *base = get_hwbase(dev);
+ int ret, oom, i;
+
+ dprintk(KERN_DEBUG "nv_open: begin\n");
+
+ /* 1) erase previous misconfiguration */
+ /* 4.1-1: stop adapter: ignored, 4.3 seems to be overkill */
+ nv_reset(dev);

/* 2) initialize descriptor rings */
- np->in_shutdown = 0;
oom = nv_init_ring(dev);

/* 3) set mac address */
@@ -1319,10 +1338,7 @@
writel(NVREG_IRQSTAT_MASK, base + NvRegIrqStatus);
pci_push(base);

- ret = request_irq(dev->irq, &nv_nic_irq, SA_SHIRQ, dev->name, dev);
- if (ret)
- goto out_drain;
-
+ np->in_shutdown = 0;
writel(np->irqmask, base + NvRegIrqMask);

spin_lock_irq(&np->lock);
@@ -1506,6 +1522,11 @@
writel(0, base + NvRegWakeUpFlags);
np->wolenabled = 0;

+printk(KERN_ERR "forcedeth: irq line %d, Status 0x%08x, Mask 0x%08x\n",
+ pci_dev->irq, readl(base + NvRegIrqStatus),
+ readl(base + NvRegIrqMask));
+ nv_reset(dev);
+
np->tx_flags = cpu_to_le16(NV_TX_LASTPACKET|NV_TX_LASTPACKET1|NV_TX_VALID);
if (id->driver_data & DEV_NEED_LASTPACKET1)
np->tx_flags |= cpu_to_le16(NV_TX_LASTPACKET1);
@@ -1516,6 +1537,12 @@
if (id->driver_data & DEV_NEED_TIMERIRQ)
np->irqmask |= NVREG_IRQ_TIMER;

+ np->in_shutdown = 1;
+ err = request_irq(dev->irq, &nv_nic_irq, SA_SHIRQ, dev->name, dev);
+ if (err) {
+printk(KERN_ERR "forcedeth: Duh. request_irq failed.\n");
+ }
+
err = register_netdev(dev);
if (err) {
printk(KERN_INFO "forcedeth: unable to register netdev: %d\n", err);


Attachments:
patch-forcedeth-test (2.86 kB)

2004-06-06 17:06:13

by Linus Torvalds

[permalink] [raw]
Subject: Re: 2.6.7-rc1 breaks forcedeth



On Sun, 6 Jun 2004, Manfred Spraul wrote:
>
> I'll add that, but it's only a partial fix: what if ehci_hcd is loaded
> before the forcedeth driver?

Yes. We've had those kinds of problems before, and sometimes you need a
PCI quirk to disable a screaming device. See the PIIX3 USB quirk in
drivers/pci/quirks.c for example.

The good news is that it's fairly rare. Devices don't generally have
pending interrupts, since they haven't been turned on, or at least the
BIOS has finished doing whatever it was doing to them. The USB thing
happens because the BIOS leaves the USB controller active (probably for
keyboard usage) and USB normally generates interrupts whether anything
happens or not.

> Luis, could you apply the patch and boot with it? It should print
> something like
>
> forcedeth: irq line 11, Status 0x00000020, Mask 0x00000020
>
> If mask and status are really not zero, then it explains your problems.

It could be something else on the NForce thing too, of course. Including
just having ACPI get confused about the polarity of the interrupt (if the
interrupt is _off_, but we've told the irq controller the wrong polarity,
the controller will obviously think that it is _on_).

But it's usually a good thing to try to reset a device as much as possible
when you probe for it. If for no other reason than the fact that then
you'll have it in a "known state", and hopefully there won't be as many
surprises..

Linus

2004-06-06 18:14:06

by Jeff Garzik

[permalink] [raw]
Subject: Re: 2.6.7-rc1 breaks forcedeth

Linus Torvalds wrote:
> But it's usually a good thing to try to reset a device as much as possible
> when you probe for it. If for no other reason than the fact that then
> you'll have it in a "known state", and hopefully there won't be as many
> surprises..


Strongly agreed. I stress this, in Linux driver writing talks and
rants, to whomever will listen as "the proper way to do things in Linux".

Presuming things about a device's state upon entry to the driver has led
to bugs in the past. Popular bugs include assuming (a) MAC address
registers hold a valid/useful value or (b) ethernet NIC's DMA engine is
not active. Both of these are quite often not true when you take into
account driver re-loads, warm reboots, and firmware features such as USB
kbd/mouse/storage or PXE booting from a network.

A good driver unconditionally makes sure the device is inactive in its
probe function (struct pci_driver::probe), before registering itself
with any kernel subsystems. This must also be done before request_irq
and before enabling the bus-mastering bit in PCI_COMMAND register.

Jeff


2004-06-06 18:22:14

by Jeff Garzik

[permalink] [raw]
Subject: Re: 2.6.7-rc1 breaks forcedeth

Linus Torvalds wrote:
> The thing is, the driver seems to not actually even register the irq
> handler until the device is opened, which seems a bit bogus. It will

That's normal. The net driver model is:

Probe phase (struct pci_driver::probe):
* make sure device isn't actively sending irqs or DMA'ing
* read MAC address from EEPROM
* put device in low power state (D3 is acceptable)

Interface-up (dev->open):
* power-up device
* allocate consistent DMA memory
* request_irq
* activate DMA engine
* activate link state machine (hardware or software)

Interface-down (dev->stop):
* reverse the interface-up steps

So by definition it is a driver bug if the hardware is sending irqs
outside of when the driver indicates interest in the irq via
request_irq...free_irq.

This is very nice because the sysadmin knows the device is inactive when
the interface is down, providing a clear and clean correlation between
interface state and hardware state.

In a _very few_ situations, it is impossible to do this because the
hardware (or virtual hardware, such as ppc64 hypervisor or s/390) sends
interesting (or necessary) events while the interface is down.


> certainly result in problems if the device ever sends an interrupt. And
> that seems to be exactly the behaviour you see.
>
> I suspect that the driver should at the very least make sure to disable
> any potentially pending interrupts in the "nv_probe()" function. I have no
> idea how to do that, but it looks like something like
>
> writel(0, base + NvRegIrqMask);
> writel(NVREG_IRQSTAT_MASK, base + NvRegIrqStatus);


Agreed; this naturally falls out of the above "Probe phase" description,
in a properly written driver.

Also, PCI 2.3 devices have an "interrupt disable" bit in PCI_COMMAND
they can use, iff (a) it's implemented and (b) the driver isn't using MSI.

Jeff


2004-06-06 18:32:58

by Linus Torvalds

[permalink] [raw]
Subject: Re: 2.6.7-rc1 breaks forcedeth



On Sun, 6 Jun 2004, Jeff Garzik wrote:
>
> So by definition it is a driver bug if the hardware is sending irqs
> outside of when the driver indicates interest in the irq via
> request_irq...free_irq.

Fair enough. It's sometimes easier to just register the driver irq early,
though, to take care of all the cases that can happen. In particular, if
you know you may have pending interrupts, and your irq handler is good at
clearing them (it had better be), the easiest solution may well be to just
register early.

> Also, PCI 2.3 devices have an "interrupt disable" bit in PCI_COMMAND
> they can use, iff (a) it's implemented and (b) the driver isn't using MSI.

Now _this_ will help. However, I suspect it will help three years down the
line, not now. It should have been there originally, it would have solved
a lot of problems.

Linus