X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=net%2Fnetfilter%2Fnfnetlink.c;h=bf23e489e4cdc88eec4a81a8c3461ac2cd5008ee;hb=eb9c4f2ef7150ea2144b53811d1cf555d8e27f69;hp=ec9f0efea6bb58e18bb7bcf9dbab66b333029fac;hpb=3e8d6ad9bf1f02fdb9fd119c3c266d4b73b7175d;p=linux-2.6 diff --git a/net/netfilter/nfnetlink.c b/net/netfilter/nfnetlink.c index ec9f0efea6..bf23e489e4 100644 --- a/net/netfilter/nfnetlink.c +++ b/net/netfilter/nfnetlink.c @@ -14,13 +14,11 @@ * of the GNU General Public License, incorporated herein by reference. */ -#include #include #include #include #include #include -#include #include #include #include @@ -106,7 +104,7 @@ static inline struct nfnl_callback * nfnetlink_find_client(u_int16_t type, struct nfnetlink_subsystem *ss) { u_int8_t cb_id = NFNL_MSG_TYPE(type); - + if (cb_id >= ss->cb_count) { DEBUGP("msgtype %u >= %u, returning\n", type, ss->cb_count); return NULL; @@ -188,7 +186,7 @@ nfnetlink_check_attributes(struct nfnetlink_subsystem *subsys, /* implicit: if nlmsg_len == min_len, we return 0, and an empty * (zeroed) cda[] array. The message is valid, but empty. */ - return 0; + return 0; } int nfnetlink_has_listeners(unsigned int group) @@ -199,13 +197,12 @@ EXPORT_SYMBOL_GPL(nfnetlink_has_listeners); int nfnetlink_send(struct sk_buff *skb, u32 pid, unsigned group, int echo) { - gfp_t allocation = in_interrupt() ? GFP_ATOMIC : GFP_KERNEL; int err = 0; NETLINK_CB(skb).dst_group = group; if (echo) atomic_inc(&skb->users); - netlink_broadcast(nfnl, skb, pid, group, allocation); + netlink_broadcast(nfnl, skb, pid, group, gfp_any()); if (echo) err = netlink_unicast(nfnl, skb, pid, MSG_DONTWAIT); @@ -269,12 +266,12 @@ static int nfnetlink_rcv_msg(struct sk_buff *skb, } { - u_int16_t attr_count = + u_int16_t attr_count = ss->cb[NFNL_MSG_TYPE(nlh->nlmsg_type)].attr_count; struct nfattr *cda[attr_count]; memset(cda, 0, sizeof(struct nfattr *) * attr_count); - + err = nfnetlink_check_attributes(ss, nlh, cda); if (err < 0) goto err_inval; @@ -358,7 +355,7 @@ static int __init nfnetlink_init(void) printk("Netfilter messages via NETLINK v%s.\n", nfversion); nfnl = netlink_kernel_create(NETLINK_NETFILTER, NFNLGRP_MAX, - nfnetlink_rcv, THIS_MODULE); + nfnetlink_rcv, THIS_MODULE); if (!nfnl) { printk(KERN_ERR "cannot initialize nfnetlink!\n"); return -1;