Message ID | 1443525140-13493-3-git-send-email-daniel@zonque.org |
---|---|
State | RFC, archived |
Delegated to: | David Miller |
Headers | show |
Hi Daniel, [auto build test results on v4.3-rc3 -- if it's inappropriate base, please ignore] config: m68k-sun3_defconfig (attached as .config) reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git checkout bcddf1d1557b51bef5ef395b5b7dd7b512794e2f # save the attached .config to linux build tree make.cross ARCH=m68k All warnings (new ones prefixed by >>): net/netfilter/nft_meta.c: In function 'nft_meta_get_eval': >> net/netfilter/nft_meta.c:34:15: warning: unused variable 'sk' [-Wunused-variable] struct sock *sk = pkt->sk; ^ vim +/sk +34 net/netfilter/nft_meta.c 18 #include <linux/ip.h> 19 #include <linux/ipv6.h> 20 #include <linux/smp.h> 21 #include <net/dst.h> 22 #include <net/sock.h> 23 #include <net/tcp_states.h> /* for TCP_TIME_WAIT */ 24 #include <net/netfilter/nf_tables.h> 25 #include <net/netfilter/nft_meta.h> 26 27 void nft_meta_get_eval(const struct nft_expr *expr, 28 struct nft_regs *regs, 29 const struct nft_pktinfo *pkt) 30 { 31 const struct nft_meta *priv = nft_expr_priv(expr); 32 const struct net_device *in = pkt->in, *out = pkt->out; 33 struct sk_buff *skb = pkt->skb; > 34 struct sock *sk = pkt->sk; 35 u32 *dest = ®s->data[priv->dreg]; 36 37 switch (priv->key) { 38 case NFT_META_LEN: 39 *dest = skb->len; 40 break; 41 case NFT_META_PROTOCOL: 42 *dest = 0; --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
diff --git a/net/netfilter/nft_meta.c b/net/netfilter/nft_meta.c index cb2f13e..f195bee 100644 --- a/net/netfilter/nft_meta.c +++ b/net/netfilter/nft_meta.c @@ -29,8 +29,9 @@ void nft_meta_get_eval(const struct nft_expr *expr, const struct nft_pktinfo *pkt) { const struct nft_meta *priv = nft_expr_priv(expr); - const struct sk_buff *skb = pkt->skb; const struct net_device *in = pkt->in, *out = pkt->out; + struct sk_buff *skb = pkt->skb; + struct sock *sk = pkt->sk; u32 *dest = ®s->data[priv->dreg]; switch (priv->key) { @@ -168,9 +169,9 @@ void nft_meta_get_eval(const struct nft_expr *expr, break; #ifdef CONFIG_CGROUP_NET_CLASSID case NFT_META_CGROUP: - if (skb->sk == NULL || !sk_fullsock(skb->sk)) + if (sk == NULL || !sk_fullsock(sk)) goto err; - *dest = skb->sk->sk_classid; + *dest = sk->sk_classid; break; #endif default:
pkt->sk is set to whatever was passed to nh_hook() by the caller, and for post demux chains, this is the one that should be looked at, as skb->sk is still NULL at this point in time. Signed-off-by: Daniel Mack <daniel@zonque.org> --- net/netfilter/nft_meta.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)