]> git.baikalelectronics.ru Git - kernel.git/commit
spidernet: fix interrupt reason recognition
authorIshizaki Kou <kou.ishizaki@toshiba.co.jp>
Mon, 20 Aug 2007 13:13:27 +0000 (22:13 +0900)
committerJeff Garzik <jeff@garzik.org>
Thu, 13 Sep 2007 04:16:31 +0000 (00:16 -0400)
commitddc5a45f4ce34c881e3a7fa8c3b8e34503559018
treeda75b65fd154d284fae277d855bbeb9e225e24ba
parent0e4949351613f90350c66e961e67443f73d7ad65
spidernet: fix interrupt reason recognition

This patch solves a problem that the spidernet driver sometimes fails
to handle IRQ.

The problem happens because,
- In Cell architecture, interrupts may arrive at an interrupt
  controller, even if they are masked by the setting on registers of
  devices. It happens when interrupt packets are sent just before
  the interrupts are masked.
- spidernet interrupt handler compares interrupt reasons with
  interrupt masks, so when such interrupts occurs, spidernet interrupt
  handler returns IRQ_NONE.
- When all of interrupt handler return IRQ_NONE, linux kernel disables
  the IRQ and it no longer delivers interrupts to the interrupt handlers.

spidernet doesn't work after above sequence, because it can't receive
interrupts.

This patch changes spidernet interrupt handler that it compares
interrupt reason with SPIDER_NET_INTX_MASK_VALUE.

Signed-off-by: Kou Ishizaki <kou.ishizaki@toshiba.co.jp>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/net/spider_net.c