genetlink.c (daab7fc734a53fdeaf844b7c03053118ad1769da) | genetlink.c (ff4c92d85c6f2777d2067f8552e7fefb4d1754ae) |
---|---|
1/* 2 * NETLINK Generic Netlink Family 3 * 4 * Authors: Jamal Hadi Salim 5 * Thomas Graf <tgraf@suug.ch> 6 * Johannes Berg <johannes@sipsolutions.net> 7 */ 8 --- 533 unchanged lines hidden (view full) --- 542 543 info.snd_seq = nlh->nlmsg_seq; 544 info.snd_pid = NETLINK_CB(skb).pid; 545 info.nlhdr = nlh; 546 info.genlhdr = nlmsg_data(nlh); 547 info.userhdr = nlmsg_data(nlh) + GENL_HDRLEN; 548 info.attrs = family->attrbuf; 549 genl_info_net_set(&info, net); | 1/* 2 * NETLINK Generic Netlink Family 3 * 4 * Authors: Jamal Hadi Salim 5 * Thomas Graf <tgraf@suug.ch> 6 * Johannes Berg <johannes@sipsolutions.net> 7 */ 8 --- 533 unchanged lines hidden (view full) --- 542 543 info.snd_seq = nlh->nlmsg_seq; 544 info.snd_pid = NETLINK_CB(skb).pid; 545 info.nlhdr = nlh; 546 info.genlhdr = nlmsg_data(nlh); 547 info.userhdr = nlmsg_data(nlh) + GENL_HDRLEN; 548 info.attrs = family->attrbuf; 549 genl_info_net_set(&info, net); |
550 memset(&info.user_ptr, 0, sizeof(info.user_ptr)); |
|
550 | 551 |
551 return ops->doit(skb, &info); | 552 if (family->pre_doit) { 553 err = family->pre_doit(ops, skb, &info); 554 if (err) 555 return err; 556 } 557 558 err = ops->doit(skb, &info); 559 560 if (family->post_doit) 561 family->post_doit(ops, skb, &info); 562 563 return err; |
552} 553 554static void genl_rcv(struct sk_buff *skb) 555{ 556 genl_lock(); 557 netlink_rcv_skb(skb, &genl_rcv_msg); 558 genl_unlock(); 559} --- 377 unchanged lines hidden --- | 564} 565 566static void genl_rcv(struct sk_buff *skb) 567{ 568 genl_lock(); 569 netlink_rcv_skb(skb, &genl_rcv_msg); 570 genl_unlock(); 571} --- 377 unchanged lines hidden --- |