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 ---