diff options
-rw-r--r-- | net/netfilter/nf_tables_core.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/net/netfilter/nf_tables_core.c b/net/netfilter/nf_tables_core.c index 074067d4fc1e..77165bf023f3 100644 --- a/net/netfilter/nf_tables_core.c +++ b/net/netfilter/nf_tables_core.c | |||
@@ -170,26 +170,23 @@ next_rule: | |||
170 | 170 | ||
171 | switch (data[NFT_REG_VERDICT].verdict) { | 171 | switch (data[NFT_REG_VERDICT].verdict) { |
172 | case NFT_JUMP: | 172 | case NFT_JUMP: |
173 | nft_trace_packet(pkt, chain, rulenum, NFT_TRACE_RULE); | ||
174 | |||
175 | BUG_ON(stackptr >= NFT_JUMP_STACK_SIZE); | 173 | BUG_ON(stackptr >= NFT_JUMP_STACK_SIZE); |
176 | jumpstack[stackptr].chain = chain; | 174 | jumpstack[stackptr].chain = chain; |
177 | jumpstack[stackptr].rule = rule; | 175 | jumpstack[stackptr].rule = rule; |
178 | jumpstack[stackptr].rulenum = rulenum; | 176 | jumpstack[stackptr].rulenum = rulenum; |
179 | stackptr++; | 177 | stackptr++; |
180 | chain = data[NFT_REG_VERDICT].chain; | 178 | /* fall through */ |
181 | goto do_chain; | ||
182 | case NFT_GOTO: | 179 | case NFT_GOTO: |
183 | nft_trace_packet(pkt, chain, rulenum, NFT_TRACE_RULE); | 180 | nft_trace_packet(pkt, chain, rulenum, NFT_TRACE_RULE); |
184 | 181 | ||
185 | chain = data[NFT_REG_VERDICT].chain; | 182 | chain = data[NFT_REG_VERDICT].chain; |
186 | goto do_chain; | 183 | goto do_chain; |
184 | case NFT_CONTINUE: | ||
185 | rulenum++; | ||
186 | /* fall through */ | ||
187 | case NFT_RETURN: | 187 | case NFT_RETURN: |
188 | nft_trace_packet(pkt, chain, rulenum, NFT_TRACE_RETURN); | 188 | nft_trace_packet(pkt, chain, rulenum, NFT_TRACE_RETURN); |
189 | break; | 189 | break; |
190 | case NFT_CONTINUE: | ||
191 | nft_trace_packet(pkt, chain, ++rulenum, NFT_TRACE_RETURN); | ||
192 | break; | ||
193 | default: | 190 | default: |
194 | WARN_ON(1); | 191 | WARN_ON(1); |
195 | } | 192 | } |