netfilter: xtables: compact table hook functions (2/2)
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / net / ipv4 / netfilter / iptable_raw.c
index 2c55575e89f5447619f8d648cceba6d7a9a13d5f..d16e43777c310e6c8caafb5d43dbd7abb65afb7e 100644 (file)
@@ -49,17 +49,16 @@ iptable_raw_hook(unsigned int hook, struct sk_buff *skb,
                 const struct net_device *in, const struct net_device *out,
                 int (*okfn)(struct sk_buff *))
 {
-       if (hook == NF_INET_PRE_ROUTING)
-               return ipt_do_table(skb, hook, in, out,
-                                   dev_net(in)->ipv4.iptable_raw);
-
-       /* OUTPUT: */
-       /* root is playing with raw sockets. */
-       if (skb->len < sizeof(struct iphdr) ||
-           ip_hdrlen(skb) < sizeof(struct iphdr))
+       const struct net *net;
+
+       if (hook == NF_INET_LOCAL_OUT && 
+           (skb->len < sizeof(struct iphdr) ||
+            ip_hdrlen(skb) < sizeof(struct iphdr)))
+               /* root is playing with raw sockets. */
                return NF_ACCEPT;
-       return ipt_do_table(skb, hook, in, out,
-                           dev_net(out)->ipv4.iptable_raw);
+
+       net = dev_net((in != NULL) ? in : out);
+       return ipt_do_table(skb, hook, in, out, net->ipv4.iptable_raw);
 }
 
 /* 'raw' is the very first table. */