• Ishizaki Kou's avatar
    spidernet: improve interrupt handling · 7a627558
    Ishizaki Kou authored
    We intend this patch to improve spidernet interrupt handling to be
    more strict.  We had following problem and this patch solves it.
    
     -when CONFIG_DEBUG_SHIRQ=y, request_irq() calls handler().
     -when spider_net_open() is called, it calls request_irq() which calls
      spider_net_interrupt().
     -if some specific interrupt bit is set at this timing, it calls
      netif_rx_schedule() and spider_net_poll() is scheduled.
     -spider_net_open() calls netif_poll_enable() which clears the bit
      __LINK_STATE_RX_SCHED.
     -when spider_net_poll() is called, it calls netif_rx_complete() which
      causes BUG_ON() because __LINK_STATE_RX_SCHED is not set.
    Signed-off-by: default avatarKou Ishizaki <kou.ishizaki@toshiba.co.jp>
    Signed-off-by: default avatarLinas Vepstas <linas@austin.ibm.com>
    Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
    7a627558
spider_net.c 71.1 KB