Skip to contentSkip to conversation

2.6.8.1 modprobe tg3 oopses

PATCH In review Randy.Dunlap 2 participants 2 messages Aug 22, 2004 – Aug 23, 2004 1 message not in the archive

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

#1 lore raw

PATCH 1/1 2.6.8.1 modprobe tg3 oopses

| Subject: 2.6.8.1 "modprobe tg3" oopses with gcc 3.4.1
| 
| 
| I get this when trying to modprobe tg3 on an Acer Aspire 1500 notebook (32bit 
| mode) when the kernel [tried 2.6.8.1 and 2.6.8.1-mm1] is compiled with gcc 
| 3.4.1 (3.3.4 works):

I wouldn't expect this to be compiler-dependent. There's an obvious problem with add_pin_to_irq(). It shouldn't be __init. Patch below. (I thought that I had already mailed this one time, but I don't see it anywhere.)

| CPU:    0
| EIP:    0060:[<c03ba270>]    Not tainted VLI
| EFLAGS: 00210216   (2.6.8-1ark)
| EIP is at add_pin_to_irq+0x0/0x60     <<<<< code is gone

--

add_pin_to_irq() should not be __init; it is used after init code.

diffstat:=

 arch/i386/kernel/io_apic.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)
arch/i386/kernel/io_apic.c renamed from arch/i386/kernel/io_apic.c~ioapic_non_init +1 -1
diff -Naurp ./arch/i386/kernel/io_apic.c~ioapic_non_init ./arch/i386/kernel/io_apic.c
@@ -85,7 +85,7 @@ int vector_irq[NR_VECTORS] = { [0 ... NR
  * shared ISA-space IRQs, so we have to support them. We are super
  * fast in the common case, and fast for shared ISA-space IRQs.
  */
-static void __init add_pin_to_irq(unsigned int irq, int apic, int pin)
+static void add_pin_to_irq(unsigned int irq, int apic, int pin)
 {
 	static int first_free_entry = NR_IRQS;
 	struct irq_pin_list *entry = irq_2_pin + irq;
#2 lore raw
Quoted 6 lines · Randy.Dunlap

I wouldn't expect this to be compiler-dependent. There's an obvious problem with add_pin_to_irq(). It shouldn't be __init. Patch below. (I thought that I had already mailed this one time, but I don't see it anywhere.)

arch/i386/kernel/io_apic.c | 2 +-

There also needs to be a similar patch for arch/x86_64/kernel/io_apic.c. Doing this fixed the oops for me.

Thanks,

-tduffy

x86_64/kernel/io_apic.c renamed from x86_64/kernel/io_apic.c.orig +1 -1
@@ -80,7 +80,7 @@
  * shared ISA-space IRQs, so we have to support them. We are super
  * fast in the common case, and fast for shared ISA-space IRQs.
  */
-static void __init add_pin_to_irq(unsigned int irq, int apic, int pin)
+static void add_pin_to_irq(unsigned int irq, int apic, int pin)
 {
 	static int first_free_entry = NR_IRQS;
 	struct irq_pin_list *entry = irq_2_pin + irq;

z