Re: [PATCH v4 3/4] drivers/net/virtio_net: Added RSS hash report.

From: Andrew Melnichenko
Date: Fri Mar 04 2022 - 08:16:49 EST


Hi all,
Yes, I'll prepare a new commit later.

On Fri, Mar 4, 2022 at 10:08 AM Michael S. Tsirkin <mst@xxxxxxxxxx> wrote:
>
> On Wed, Feb 23, 2022 at 03:15:28AM +0800, kernel test robot wrote:
> > Hi Andrew,
> >
> > Thank you for the patch! Perhaps something to improve:
> >
> > [auto build test WARNING on mst-vhost/linux-next]
> > [also build test WARNING on net/master horms-ipvs/master net-next/master linus/master v5.17-rc5 next-20220217]
> > [If your patch is applied to the wrong git tree, kindly drop us a note.
> > And when submitting patch, we suggest to use '--base' as documented in
> > https://git-scm.com/docs/git-format-patch]
>
>
> Andrew,
> do you plan to fix this?
>
> > url: https://github.com/0day-ci/linux/commits/Andrew-Melnychenko/RSS-support-for-VirtioNet/20220222-200334
> > base: https://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git linux-next
> > config: i386-randconfig-s002-20220221 (https://download.01.org/0day-ci/archive/20220223/202202230342.HPYe6dHA-lkp@xxxxxxxxx/config)
> > compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
> > reproduce:
> > # apt-get install sparse
> > # sparse version: v0.6.4-dirty
> > # https://github.com/0day-ci/linux/commit/4fda71c17afd24d8afb675baa0bb14dbbc6cd23c
> > git remote add linux-review https://github.com/0day-ci/linux
> > git fetch --no-tags linux-review Andrew-Melnychenko/RSS-support-for-VirtioNet/20220222-200334
> > git checkout 4fda71c17afd24d8afb675baa0bb14dbbc6cd23c
> > # save the config file to linux build tree
> > mkdir build_dir
> > make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=i386 SHELL=/bin/bash
> >
> > If you fix the issue, kindly add following tag as appropriate
> > Reported-by: kernel test robot <lkp@xxxxxxxxx>
> >
> >
> > sparse warnings: (new ones prefixed by >>)
> > drivers/net/virtio_net.c:1160:25: sparse: sparse: restricted __le16 degrades to integer
> > drivers/net/virtio_net.c:1160:25: sparse: sparse: restricted __le16 degrades to integer
> > drivers/net/virtio_net.c:1160:25: sparse: sparse: restricted __le16 degrades to integer
> > drivers/net/virtio_net.c:1160:25: sparse: sparse: restricted __le16 degrades to integer
> > drivers/net/virtio_net.c:1160:25: sparse: sparse: restricted __le16 degrades to integer
> > drivers/net/virtio_net.c:1160:25: sparse: sparse: restricted __le16 degrades to integer
> > drivers/net/virtio_net.c:1160:25: sparse: sparse: restricted __le16 degrades to integer
> > drivers/net/virtio_net.c:1160:25: sparse: sparse: restricted __le16 degrades to integer
> > drivers/net/virtio_net.c:1160:25: sparse: sparse: restricted __le16 degrades to integer
> > >> drivers/net/virtio_net.c:1178:35: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected unsigned int [usertype] hash @@ got restricted __le32 const [usertype] hash_value @@
> > drivers/net/virtio_net.c:1178:35: sparse: expected unsigned int [usertype] hash
> > drivers/net/virtio_net.c:1178:35: sparse: got restricted __le32 const [usertype] hash_value
> >
> > vim +1178 drivers/net/virtio_net.c
> >
> > 1151
> > 1152 static void virtio_skb_set_hash(const struct virtio_net_hdr_v1_hash *hdr_hash,
> > 1153 struct sk_buff *skb)
> > 1154 {
> > 1155 enum pkt_hash_types rss_hash_type;
> > 1156
> > 1157 if (!hdr_hash || !skb)
> > 1158 return;
> > 1159
> > 1160 switch (hdr_hash->hash_report) {
> > 1161 case VIRTIO_NET_HASH_REPORT_TCPv4:
> > 1162 case VIRTIO_NET_HASH_REPORT_UDPv4:
> > 1163 case VIRTIO_NET_HASH_REPORT_TCPv6:
> > 1164 case VIRTIO_NET_HASH_REPORT_UDPv6:
> > 1165 case VIRTIO_NET_HASH_REPORT_TCPv6_EX:
> > 1166 case VIRTIO_NET_HASH_REPORT_UDPv6_EX:
> > 1167 rss_hash_type = PKT_HASH_TYPE_L4;
> > 1168 break;
> > 1169 case VIRTIO_NET_HASH_REPORT_IPv4:
> > 1170 case VIRTIO_NET_HASH_REPORT_IPv6:
> > 1171 case VIRTIO_NET_HASH_REPORT_IPv6_EX:
> > 1172 rss_hash_type = PKT_HASH_TYPE_L3;
> > 1173 break;
> > 1174 case VIRTIO_NET_HASH_REPORT_NONE:
> > 1175 default:
> > 1176 rss_hash_type = PKT_HASH_TYPE_NONE;
> > 1177 }
> > > 1178 skb_set_hash(skb, hdr_hash->hash_value, rss_hash_type);
> > 1179 }
> > 1180
> >
> > ---
> > 0-DAY CI Kernel Test Service, Intel Corporation
> > https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
>