Hi Willem, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on ipvs/master] [also build test WARNING on linus/master v5.11-rc6 next-20210125] [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] url: https://github.com/0day-ci/linux/commits/Willem-de-Bruijn/virtio-net-add-tx-hash-rx-tstamp-and-tx-tstamp/20201229-002604 base: https://git.kernel.org/pub/scm/linux/kernel/git/horms/ipvs.git master config: x86_64-randconfig-s021-20201228 (attached as .config) compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.3-215-g0fb77bb6-dirty # https://github.com/0day-ci/linux/commit/d309db6857fa35b0d7a11cc5229436d6d71ab274 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Willem-de-Bruijn/virtio-net-add-tx-hash-rx-tstamp-and-tx-tstamp/20201229-002604 git checkout d309db6857fa35b0d7a11cc5229436d6d71ab274 # save the attached .config to linux build tree make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot "sparse warnings: (new ones prefixed by >>)" >> drivers/net/virtio_net.c:1096:80: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned long long [usertype] ns @@ got restricted __virtio64 [usertype] tstamp @@ drivers/net/virtio_net.c:1096:80: sparse: expected unsigned long long [usertype] ns drivers/net/virtio_net.c:1096:80: sparse: got restricted __virtio64 [usertype] tstamp drivers/net/virtio_net.c:1580:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] hash_value @@ got restricted __virtio32 @@ drivers/net/virtio_net.c:1580:32: sparse: expected restricted __le32 [usertype] hash_value drivers/net/virtio_net.c:1580:32: sparse: got restricted __virtio32 drivers/net/virtio_net.c:1581:33: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le16 [usertype] hash_report @@ got int @@ drivers/net/virtio_net.c:1581:33: sparse: expected restricted __le16 [usertype] hash_report drivers/net/virtio_net.c:1581:33: sparse: got int vim +1096 drivers/net/virtio_net.c 1048 1049 static void receive_buf(struct virtnet_info *vi, struct receive_queue *rq, 1050 void *buf, unsigned int len, void **ctx, 1051 unsigned int *xdp_xmit, 1052 struct virtnet_rq_stats *stats) 1053 { 1054 struct net_device *dev = vi->dev; 1055 struct sk_buff *skb; 1056 struct virtio_net_hdr_mrg_rxbuf *hdr; 1057 1058 if (unlikely(len < vi->hdr_len + ETH_HLEN)) { 1059 pr_debug("%s: short packet %i\n", dev->name, len); 1060 dev->stats.rx_length_errors++; 1061 if (vi->mergeable_rx_bufs) { 1062 put_page(virt_to_head_page(buf)); 1063 } else if (vi->big_packets) { 1064 give_pages(rq, buf); 1065 } else { 1066 put_page(virt_to_head_page(buf)); 1067 } 1068 return; 1069 } 1070 1071 if (vi->mergeable_rx_bufs) 1072 skb = receive_mergeable(dev, vi, rq, buf, ctx, len, xdp_xmit, 1073 stats); 1074 else if (vi->big_packets) 1075 skb = receive_big(dev, vi, rq, buf, len, stats); 1076 else 1077 skb = receive_small(dev, vi, rq, buf, ctx, len, xdp_xmit, stats); 1078 1079 if (unlikely(!skb)) 1080 return; 1081 1082 hdr = skb_vnet_hdr(skb); 1083 1084 if (hdr->hdr.flags & VIRTIO_NET_HDR_F_DATA_VALID) 1085 skb->ip_summed = CHECKSUM_UNNECESSARY; 1086 1087 if (virtio_net_hdr_to_skb(skb, &hdr->hdr, 1088 virtio_is_little_endian(vi->vdev))) { 1089 net_warn_ratelimited("%s: bad gso: type: %u, size: %u\n", 1090 dev->name, hdr->hdr.gso_type, 1091 hdr->hdr.gso_size); 1092 goto frame_err; 1093 } 1094 1095 if (vi->has_rx_tstamp) > 1096 skb_hwtstamps(skb)->hwtstamp = ns_to_ktime(skb_vnet_hdr_12(skb)->tstamp); 1097 1098 skb_record_rx_queue(skb, vq2rxq(rq->vq)); 1099 skb->protocol = eth_type_trans(skb, dev); 1100 pr_debug("Receiving skb proto 0x%04x len %i type %i\n", 1101 ntohs(skb->protocol), skb->len, skb->pkt_type); 1102 1103 napi_gro_receive(&rq->napi, skb); 1104 return; 1105 1106 frame_err: 1107 dev->stats.rx_frame_errors++; 1108 dev_kfree_skb(skb); 1109 } 1110 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org