Merge tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
[firefly-linux-kernel-4.4.55.git] / net / ipv4 / netfilter / arp_tables.c
index 92305a1a021a7936206f9078008532bc151ec757..8f87fc38ccde3a4a55dc3b2ebb8f0ec5f0ecf4c9 100644 (file)
@@ -240,7 +240,7 @@ get_entry(const void *base, unsigned int offset)
        return (struct arpt_entry *)(base + offset);
 }
 
-static inline __pure
+static inline
 struct arpt_entry *arpt_next_entry(const struct arpt_entry *entry)
 {
        return (void *)entry + entry->next_offset;
@@ -280,6 +280,9 @@ unsigned int arpt_do_table(struct sk_buff *skb,
        table_base = private->entries;
        jumpstack  = (struct arpt_entry **)private->jumpstack[cpu];
 
+       /* No TEE support for arptables, so no need to switch to alternate
+        * stack.  All targets that reenter must return absolute verdicts.
+        */
        e = get_entry(table_base, private->hook_entry[hook]);
 
        acpar.in      = state->in;
@@ -325,11 +328,6 @@ unsigned int arpt_do_table(struct sk_buff *skb,
                        }
                        if (table_base + v
                            != arpt_next_entry(e)) {
-
-                               if (stackidx >= private->stacksize) {
-                                       verdict = NF_DROP;
-                                       break;
-                               }
                                jumpstack[stackidx++] = e;
                        }
 
@@ -337,9 +335,6 @@ unsigned int arpt_do_table(struct sk_buff *skb,
                        continue;
                }
 
-               /* Targets which reenter must return
-                * abs. verdicts
-                */
                acpar.target   = t->u.kernel.target;
                acpar.targinfo = t->data;
                verdict = t->u.kernel.target->target(skb, &acpar);