Raising MAX_UNITS in net drivers oopses kernel reproducibly

From: Pekka Savola (pekkas@netcore.fi)
Date: Thu Nov 23 2000 - 16:09:18 EST


Hello all,

Using RHL 2.2.16-3 kernel on i686.

Raising MAX_UNITS define from 8 to 16 or 32 in net drivers (tested
tulip.c) causes reproducible oops. The latest Don Becker driver also does
this. Using DFE-570TX quad ethernet cards.

So, why change MAX_UNITS? Interfaces 9-> can't be passed options=,
full_duplex= or similar parameters otherwise. The actual interfaces
should work in autonegotiation though.

I've gotten this crash every time. It can be done as follows:

1) recompile a new tulip module with changed MAX_UNITS.
2) insmod the module
3) take one interface up, with e.g. ifup eth0. [note: traffic doesn't go
anywhere]
4) try to take the interface down, with e.g. ifconfig eth0
5) watch oops in your syslog.

Previous message on syslog was 'Trying to free free IRQ9'.

See below:
-----
Unable to handle kernel paging request at virtual address 0000109f
current->tss.cr3 = 01d69000, %%cr3 = 01d69000
*pde = 00000000
Oops: 0000
CPU: 0
EIP: 0010:[de4x5:de4x5_probe+24259/37172]
EFLAGS: 00010282
eax: c4056f00 ebx: 00001043 ecx: 00000246 edx: 00000000
esi: 00001043 edi: c38cc5a0 ebp: c103deb4 esp: c103deac
ds: 0018 es: 0018 ss: 0018
Process ifconfig (pid: 1924, process nr: 7, stackpage=c103d000)
Stack: 00000000 c38cc480 00001042 c014fe92 c38cc5a0 00001043 c38cc5a0 c0150980
       c38cc5a0 c29c6300 00001042 c29c6324 c103df40 c0170f9c c38cc5a0 00001042
       00008914 00008914 bffff9f4 c2671740 00008913 00000000 c103df40 c0150ee9
Call Trace: [dev_close+78/156] [dev_change_flags+80/268] [devinet_ioctl+620/1404] [dev_ioctl+337/792] [inet_ioctl+294/412] [free_pages+36/40] [sock_ioctl+29/36]
       [sys_ioctl+421/448] [system_call+52/56]
Code: 8b 56 5c 31 c0 0f ab 46 24 19 c0 85 c0 74 29 a1 80 47 21 c0
-----

Note! EIP shows de4x5 for some reason. Please note that de4x5 driver
also "works" with this card. The driver is _really_ buggy with it though.
With Don Becker drivers the output is about the same; EIP is
__insmod_tulip_S and Call Trace: begins with dev_deactivate.

Any ideas? _Should_ raising MAX_UNITS work as I described or are there
any known problems with it?

Please Cc:.

-- 
Pekka Savola                 "Tell me of difficulties surmounted,
Pekka.Savola@netcore.fi      not those you stumble over and fall"

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Nov 23 2000 - 21:00:26 EST