call to netlink_broadcast crashes
From: John Williams Floroiu
Date: Fri Jan 09 2004 - 05:45:57 EST
Hi,
I get a kernel dump (see below, code follows) each time netlink_broadcast is invoked by a handler dispatched with
schedule_work(...) from a kernel timer handler. Are there any restrictions to calling netlink_broadcast from a tasklet?
Thanks in advance.
Cheers,
John.
---
Unable to handle kernel paging request at virtual address f6a34fb0
printing eip:
f88233ca
*pde = 00488067
*pte = 36a34000
Oops: 0000 [#1]
CPU: 1
EIP: 0060:[__crc_utf8_wctomb+5448385/6417782] Not tainted
EFLAGS: 00010246
EIP is at uk_task+0xda/0x160 [uk]
eax: 00000000 ebx: f6a34f4c ecx: 00000000 edx: fffffffd
esi: f2f1fbf8 edi: f8824460 ebp: c1a95f64 esp: c1a95f48
ds: 007b es: 007b ss: 0068
Process events/1 (pid: 7, threadinfo=c1a94000 task=c1a619b0)
Stack: f2fa7e94 f6a34f4c 00000000 00000159 00000020 c1a94000 f8824464 c1a95fec
c01370f6 00000000 c1a95fa0 00000000 c1a64f90 c1a64fa0 00000000 f88232f0
00000212 c1a64f88 c1a64f78 5a5a5a5a 5a5a5a5a 5a5a5a5a 00000001 00000000
Call Trace:
[worker_thread+534/960] worker_thread+0x216/0x3c0
[__crc_utf8_wctomb+5448167/6417782] uk_task+0x0/0x160 [uk]
[default_wake_function+0/32] default_wake_function+0x0/0x20
[ret_from_fork+6/20] ret_from_fork+0x6/0x14
[default_wake_function+0/32] default_wake_function+0x0/0x20
[worker_thread+0/960] worker_thread+0x0/0x3c0
[kernel_thread_helper+5/24] kernel_thread_helper+0x5/0x18
Code: 8b 43 64 c7 04 24 a0 36 82 f8 89 44 24 04 e8 73 10 90 c7 83
---
void my_task(void *arg) {
struct nlmsghdr *nlh;
int size;
size = NLMSG_SPACE(256); /* nlmsghdr + 256 */
struct sk_buff *skb = alloc_skb(size, GFP_ATOMIC);
if (!skb)
return;
NLMSG_PUT(skb, 0, 0, MY_NOTIF, 0);
NETLINK_CB(skb).dst_groups = MYGRP;
netlink_broadcast(uknl, skb, 0, MYGRP, GFP_ATOMIC);
return;
nlmsg_failure:
skb_trim(skb, skb->tail - skb->data);
}
-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html