b44: the poll handler b44_poll must not enable IRQ unconditionally
authorDongdong Deng <dongdong.deng@windriver.com>
Wed, 16 Sep 2009 16:10:47 +0000 (16:10 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 17 Sep 2009 03:49:47 +0000 (20:49 -0700)
commite99b1f04d922f132ffab8310b470bcc93d3ddf80
tree608230959790644dd22c1e6f81c812d497169b09
parent3933fc952a5a5af4cf23fca94e20203251c9d825
b44: the poll handler b44_poll must not enable IRQ unconditionally

net/core/netpoll.c::netpoll_send_skb() calls the poll handler when
it is available. As netconsole can be used from almost any context,
IRQ must not be enabled blindly in the NAPI handler of the driver
which supports netpoll.

Call trace:
netpoll_send_skb()
{
local_irq_save(flags)
  -> netpoll_poll()
    -> poll_napi()
      -> poll_one_napi()
        -> napi->poll()
            -> b44_poll()
local_irq_restore(flags)
}

Signed-off-by: Dongdong Deng <dongdong.deng@windriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/b44.c