call to netlink_broadcast crashes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




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);
}

-
: send the line "unsubscribe linux-net" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux