tulip: fix crash on iface up with shirq debug
authorKyle McMartin <kyle@redhat.com>
Thu, 19 Mar 2009 01:49:01 +0000 (18:49 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 19 Mar 2009 01:49:01 +0000 (18:49 -0700)
commit69145635d4db0a0382885b14634aa5b721f3aa1a
tree3221b6a995853fe0a29887c1f83c158477845cd3
parent4783256ef92f5aecd6d54693b16386f2a0021c2a
tulip: fix crash on iface up with shirq debug

Tulip is currently doing request_irq before it has done its
initialization. This is usually not a problem because it hasn't
enable interrupts yet, but with DEBUG_SHIRQ on, we call the irq handler
when registering the interrupt as a sanity check.

This can result in a NULL ptr dereference, so call tulip_init_ring
before request_irq, and add a free_ring function to do the freeing
now shared with tulip_close.

Tested with a shell loop running ifup, ifdown in a loop a few hundred
times with DEBUG_SHIRQ on.

Signed-off-by: Kyle McMartin <kyle@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/tulip/tulip_core.c