Hi Xuan,

kernel test robot noticed the following build warnings:

[auto build test WARNING on mst-vhost/linux-next]
[also build test WARNING on linus/master v6.7-rc8]
[cannot apply to net-next/main horms-ipvs/master next-20231222]
[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#_base_tree_information]

url:    
https://github.com/intel-lab-lkp/linux/commits/Xuan-Zhuo/virtio_net-introduce-device-stats-feature-and-structures/20231226-153227
base:   https://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git linux-next
patch link:    
https://lore.kernel.org/r/20231226073103.116153-5-xuanzhuo%40linux.alibaba.com
patch subject: [PATCH net-next v1 4/6] virtio_net: stats map include driver 
stats
config: x86_64-randconfig-121-20240101 
(https://download.01.org/0day-ci/archive/20240102/202401020928.jpmkxuhu-...@intel.com/config)
compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20240102/202401020928.jpmkxuhu-...@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <l...@intel.com>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/202401020928.jpmkxuhu-...@intel.com/

sparse warnings: (new ones prefixed by >>)
>> drivers/net/virtio_net.c:3416:83: sparse: sparse: incorrect type in argument 
>> 2 (different base types) @@     expected restricted __virtio64 [usertype] 
>> val @@     got unsigned long long const [usertype] @@
   drivers/net/virtio_net.c:3416:83: sparse:     expected restricted __virtio64 
[usertype] val
   drivers/net/virtio_net.c:3416:83: sparse:     got unsigned long long const 
[usertype]
   drivers/net/virtio_net.c:3500:52: sparse: sparse: incorrect type in argument 
2 (different base types) @@     expected restricted __virtio16 [usertype] val 
@@     got restricted __le16 [usertype] vq_index @@
   drivers/net/virtio_net.c:3500:52: sparse:     expected restricted __virtio16 
[usertype] val
   drivers/net/virtio_net.c:3500:52: sparse:     got restricted __le16 
[usertype] vq_index
   drivers/net/virtio_net.c:3498:81: sparse: sparse: incorrect type in argument 
2 (different base types) @@     expected restricted __virtio16 [usertype] val 
@@     got restricted __le16 [usertype] size @@
   drivers/net/virtio_net.c:3498:81: sparse:     expected restricted __virtio16 
[usertype] val
   drivers/net/virtio_net.c:3498:81: sparse:     got restricted __le16 
[usertype] size
   drivers/net/virtio_net.c:3549:82: sparse: sparse: incorrect type in argument 
2 (different base types) @@     expected restricted __virtio64 [usertype] val 
@@     got restricted __le64 [assigned] [usertype] v @@
   drivers/net/virtio_net.c:3549:82: sparse:     expected restricted __virtio64 
[usertype] val
   drivers/net/virtio_net.c:3549:82: sparse:     got restricted __le64 
[assigned] [usertype] v

vim +3416 drivers/net/virtio_net.c

  3378  
  3379  static void virtnet_fill_stats(struct virtnet_info *vi, u32 qid,
  3380                                 struct virtnet_stats_ctx *ctx,
  3381                                 const u8 *base, bool from_driver, u8 
type)
  3382  {
  3383          struct virtnet_stats_map *m;
  3384          const u64_stats_t *v_stat;
  3385          u32 queue_type;
  3386          const u64 *v;
  3387          u64 offset;
  3388          int i, j;
  3389  
  3390          if (qid == vi->max_queue_pairs * 2) {
  3391                  offset = 0;
  3392                  queue_type = VIRTNET_STATS_Q_TYPE_CQ;
  3393          } else if (qid % 2) {
  3394                  offset = ctx->num_cq + ctx->num_rx * 
vi->curr_queue_pairs + ctx->num_tx * (qid / 2);
  3395                  queue_type = VIRTNET_STATS_Q_TYPE_TX;
  3396          } else {
  3397                  offset = ctx->num_cq + ctx->num_rx * (qid / 2);
  3398                  queue_type = VIRTNET_STATS_Q_TYPE_RX;
  3399          }
  3400  
  3401          for (i = 0; i < ARRAY_SIZE(virtio_net_stats_map); ++i) {
  3402                  m = &virtio_net_stats_map[i];
  3403  
  3404                  if (m->queue_type != queue_type)
  3405                          continue;
  3406  
  3407                  if (from_driver != m->from_driver)
  3408                          goto skip;
  3409  
  3410                  if (type != m->type)
  3411                          goto skip;
  3412  
  3413                  for (j = 0; j < m->num; ++j) {
  3414                          if (!from_driver) {
  3415                                  v = (const u64 *)(base + 
m->desc[j].offset);
> 3416                                  ctx->data[offset + j] = 
> virtio64_to_cpu(vi->vdev, *v);
  3417                          } else {
  3418                                  v_stat = (const u64_stats_t *)(base + 
m->desc[j].offset);
  3419                                  ctx->data[offset + j] = 
u64_stats_read(v_stat);
  3420                          }
  3421                  }
  3422  
  3423                  break;
  3424  skip:
  3425                  if (virtnet_stats_valid(vi, m))
  3426                          offset += m->num;
  3427          }
  3428  }
  3429  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Reply via email to