net/core/skbuff.c:3673 skb_segment_list() warn: inconsistent indenting
From: kbuild test robot
Date: Sat May 23 2020 - 15:42:10 EST
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: e644645abf4788e919beeb97925fb6bf43e890a2
commit: 3a1296a38d0cf62bffb9a03c585cbd5dbf15d596 net: Support GRO/GSO fraglist chaining.
date: 4 months ago
config: h8300-randconfig-m001-20200521 (attached as .config)
compiler: h8300-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 3a1296a38d0cf62bffb9a03c585cbd5dbf15d596
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=h8300
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@xxxxxxxxx>
New smatch warnings:
net/core/skbuff.c:3673 skb_segment_list() warn: inconsistent indenting
Old smatch warnings:
net/core/skbuff.c:105 skb_panic() warn: argument 8 to %#lx specifier is cast from pointer
net/core/skbuff.c:105 skb_panic() warn: argument 9 to %#lx specifier is cast from pointer
net/core/skbuff.c:3845 skb_segment() error: we previously assumed 'list_skb' could be null (see line 3765)
vim +3673 net/core/skbuff.c
3641
3642 struct sk_buff *skb_segment_list(struct sk_buff *skb,
3643 netdev_features_t features,
3644 unsigned int offset)
3645 {
3646 struct sk_buff *list_skb = skb_shinfo(skb)->frag_list;
3647 unsigned int tnl_hlen = skb_tnl_header_len(skb);
3648 unsigned int delta_truesize = 0;
3649 unsigned int delta_len = 0;
3650 struct sk_buff *tail = NULL;
3651 struct sk_buff *nskb;
3652
3653 skb_push(skb, -skb_network_offset(skb) + offset);
3654
3655 skb_shinfo(skb)->frag_list = NULL;
3656
3657 do {
3658 nskb = list_skb;
3659 list_skb = list_skb->next;
3660
3661 if (!tail)
3662 skb->next = nskb;
3663 else
3664 tail->next = nskb;
3665
3666 tail = nskb;
3667
3668 delta_len += nskb->len;
3669 delta_truesize += nskb->truesize;
3670
3671 skb_push(nskb, -skb_network_offset(nskb) + offset);
3672
> 3673 __copy_skb_header(nskb, skb);
3674
3675 skb_headers_offset_update(nskb, skb_headroom(nskb) - skb_headroom(skb));
3676 skb_copy_from_linear_data_offset(skb, -tnl_hlen,
3677 nskb->data - tnl_hlen,
3678 offset + tnl_hlen);
3679
3680 if (skb_needs_linearize(nskb, features) &&
3681 __skb_linearize(nskb))
3682 goto err_linearize;
3683
3684 } while (list_skb);
3685
3686 skb->truesize = skb->truesize - delta_truesize;
3687 skb->data_len = skb->data_len - delta_len;
3688 skb->len = skb->len - delta_len;
3689
3690 skb_gso_reset(skb);
3691
3692 skb->prev = tail;
3693
3694 if (skb_needs_linearize(skb, features) &&
3695 __skb_linearize(skb))
3696 goto err_linearize;
3697
3698 skb_get(skb);
3699
3700 return skb;
3701
3702 err_linearize:
3703 kfree_skb_list(skb->next);
3704 skb->next = NULL;
3705 return ERR_PTR(-ENOMEM);
3706 }
3707 EXPORT_SYMBOL_GPL(skb_segment_list);
3708
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip