ethernet driver enabled the interrupts in poll (warning issue)
Dear all,
I am facing the below mentioned warning issue in 3.0-RT(Real Time kernel) due to the following
commit.
{{{
commit 79b1bee888d43b14cf0c08fb8e5aa6
cb161e48f8
Author: Dongdong Deng <dongdong.deng@windriver.com>
Date: Fri Aug 21 03:33:36 2009 +0000
netpoll: warning for ndo_start_xmit returns with interrupts enabled
WARN_ONCE for ndo_start_xmit() enable interrupts in
netpoll_send_skb(),
because the NETPOLL API requires that interrupts remain disabled in
netpoll_send_skb().
Signed-off-by: Dongdong Deng <dongdong.deng@windriver.com>
Acked-by: Matt Mackall <mpm@selenic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
}}}
But I am using netpoll feature and as part of it, the data transfer happens
between host and target board through net poll interface. And of course it uses
smsc911x driver as part of this communication.
The following warning backtrace is observed on my ARM Target board(CortexA9 SMP Dual core Board)
The board boots fine but following warning message is observed on console
after some time.
This happens only with 3.0-RT(Real time) kernel.
{{{
------------[ cut here ]------------
WARNING: at net/core/netpoll.c:346 netpoll_send_skb_on_dev+0x178/
0x228()
netpoll_send_skb(): eth0 enabled interrupts in poll
(smsc911x_hard_start_xmit+0x0/
0x21c)
Modules linked in:
Backtrace:
[<8001151c>] (dump_backtrace+0x0/0x114) from [<80382254>]
(dump_stack+0x20/0x24)
r6:804848ff r5:0000015a r4:9f365da8 r3:00000000
[<80382234>] (dump_stack+0x0/0x24) from [<8002df98>]
(warn_slowpath_common+0x5c/0x74)
[<8002df3c>] (warn_slowpath_common+0x0/0x74) from [<8002e06c>]
(warn_slowpath_fmt+0x40/0x48)
r8:000000c8 r7:80c33000 r6:9f237000 r5:9f188200 r4:9f356600
r3:00000009
[<8002e02c>] (warn_slowpath_fmt+0x0/0x48) from [<802cb5b0>]
(netpoll_send_skb_on_dev+0x178/0x228)
r3:9f237000 r2:80484912
[<802cb438>] (netpoll_send_skb_on_dev+0x0/0x228) from [<802cb8a8>]
(netpoll_send_udp+0x248/0x250)
[<802cb660>] (netpoll_send_udp+0x0/0x250) from [<801e0a80>]
....
}}}
I understood from the backtrace message is that driver transmit code enables the interrupt in poll.
If anyone have inputs, Please let me know.
Thanks for your help in advance.
Cheers,
Anbu
|