#32 8139too hangs on bringing interface down

critical
closed-fixed
8139too (65)
7
2001-11-01
2001-05-28
Jim Paris
No

bug: 8139too.c version 0.9.17 (and 0.9.15c) under
linux 2.4.5 (and 2.4.3)

My RTL8139 based card is having problems. I've gone
through a ton of
network cards on this machine trying to find one that
works
consistently well. This is the closest I've come, but
it's far from
perfect. The biggest problem is that my system hangs
when I try to
bring the interface down. ('ifconfig eth0 down'). I
have the driver
loaded as a module. The initial debug output when I
execute ifconfig is:

rtl8139_set_rx_mode: ENTER
rtl8139_set_rx_mode: eth0: rtl8139_set_rx_mode(1003)
done -- Rx config 0200f78e.
ether_crc: ENTER
ether_crc: EXIT, returning 2141400475
rtl8139_set_rx_mode: EXIT
rtl8139_close: ENTER

And then, (not immediately, but pretty soon), my dmesg
fills up with this:

rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
eth0: Too much work at interrupt, IntrStatus=0x0001.
rtl8139_interrupt: eth0: exiting interrupt,
intr_status=0x0000.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
rtl8139_interrupt: eth0: interrupt status=0x0000
ackstat=0x0001 new intstat=0x0001.
eth0: Too much work at interrupt, IntrStatus=0x0001.
rtl8139_interrupt: eth0: exiting interrupt,
intr_status=0x0000.

(which repeats forever)

The network interface is dead and any further attempts
to ifconfig
hang (pretty hard -- I can switch VTs but can't break
out or kill ifconfig0)

Attached:
diag-before.txt (output from rtl8139-diag -
mmaaavvveef before ifconfig)
diag-after.txt (output from rtl8139-diag -
mmaaavvveef after ifconfig)
proc-pci.txt (/proc/pci)

All relevant information about the system should be
findable in proc-pci.txt

-jim

Discussion

  • Jim Paris

    Jim Paris - 2001-05-28

    output from rtl8139-diag -mmaaavvveef after ifconfig

     
  • Jim Paris

    Jim Paris - 2001-05-28

    output from rtl8139-diag -mmaaavvveef before ifconfig

     
  • Jim Paris

    Jim Paris - 2001-05-28

    Logged In: YES
    user_id=175928

    oops -- sorry about the line wrapping in that guy :)

     
  • Jim Paris

    Jim Paris - 2001-05-28
    • priority: 5 --> 7
     
  • Jim Paris

    Jim Paris - 2001-05-28
    • assigned_to: nobody --> jgarzik
     
  • Jim Paris

    Jim Paris - 2001-05-28

    Logged In: YES
    user_id=175928

    one more file

     
  • Jim Paris

    Jim Paris - 2001-05-28

    /proc/pci

     
  • Jim Paris

    Jim Paris - 2001-05-28

    Logged In: YES
    user_id=175928

    one more file

     
  • Jeff Garzik

    Jeff Garzik - 2001-11-01
    • status: open --> closed
     
  • Jeff Garzik

    Jeff Garzik - 2001-11-01
    • status: closed --> closed-fixed
     
  • Jeff Garzik

    Jeff Garzik - 2001-11-01

    Logged In: YES
    user_id=17443

    This problem is fixed in the latest version of the driver. You
    can download the driver from the download section on this
    SourceForge web page.

     

Log in to post a comment.