Re: [PATCH v4 1/5] hisi_acc_vfio_pci: fix XQE dma address error

liulongfang
2025-03-03T11:14:59Z

On 2025/2/28 19:55, kernel test robot wrote:
> Hi Longfang,
>
> kernel test robot noticed the following build errors:
>
> [auto build test ERROR on awilliam-vfio/next]
> [also build test ERROR on awilliam-vfio/for-linus linus/master v6.14-rc4 next-20250227]
> [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/Longfang-Liu/hisi_acc_vfio_pci-fix-XQE-dma-address-error/20250225-143347
> base: https://github.com/awilliam/linux-vfio.git next
> patch link: https://lore.kernel.org/r/20250225062757.19692-2-liulongfang%40huawei.com
> patch subject: [PATCH v4 1/5] hisi_acc_vfio_pci: fix XQE dma address error
> config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20250228/202502281952.Z9JQ8jcK-lkp@intel.com/config)
> compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90)
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250228/202502281952.Z9JQ8jcK-lkp@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 <lkp@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202502281952.Z9JQ8jcK-lkp@intel.com/
>
> All errors (new ones prefixed by >>):
>
> In file included from drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c:9:
> In file included from include/linux/hisi_acc_qm.h:10:
> In file included from include/linux/pci.h:1644:
> In file included from include/linux/dmapool.h:14:
> In file included from include/linux/scatterlist.h:8:
> In file included from include/linux/mm.h:2224:
> include/linux/vmstat.h:504:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
> 504 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
> | ~~~~~~~~~~~~~~~~~~~~~ ^
> 505 | item];
> | ~~~~
> include/linux/vmstat.h:511:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
> 511 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
> | ~~~~~~~~~~~~~~~~~~~~~ ^
> 512 | NR_VM_NUMA_EVENT_ITEMS +
> | ~~~~~~~~~~~~~~~~~~~~~~
> include/linux/vmstat.h:524:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
> 524 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
> | ~~~~~~~~~~~~~~~~~~~~~ ^
> 525 | NR_VM_NUMA_EVENT_ITEMS +
> | ~~~~~~~~~~~~~~~~~~~~~~
>>> drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c:448:23: error: use of undeclared identifier 'ACC_DRV_MAR'
> 448 | vf_data->major_ver = ACC_DRV_MAR;
> | ^
>>> drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c:449:23: error: use of undeclared identifier 'ACC_DRV_MIN'
> 449 | vf_data->minor_ver = ACC_DRV_MIN;
> | ^
> 3 warnings and 2 errors generated.
>
>
> vim +/ACC_DRV_MAR +448 drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c
>
> 438
> 439 static int vf_qm_get_match_data(struct hisi_acc_vf_core_device *hisi_acc_vdev,
> 440 struct acc_vf_data *vf_data)
> 441 {
> 442 struct hisi_qm *pf_qm = hisi_acc_vdev->pf_qm;
> 443 struct device *dev = &pf_qm->pdev->dev;
> 444 int vf_id = hisi_acc_vdev->vf_id;
> 445 int ret;
> 446
> 447 vf_data->acc_magic = ACC_DEV_MAGIC_V2;
> > 448 vf_data->major_ver = ACC_DRV_MAR;
> > 449 vf_data->minor_ver = ACC_DRV_MIN;
> 450 /* Save device id */
> 451 vf_data->dev_id = hisi_acc_vdev->vf_dev->device;
> 452
> 453 /* VF qp num save from PF */
> 454 ret = pf_qm_get_qp_num(pf_qm, vf_id, &vf_data->qp_base);
> 455 if (ret <= 0) {
> 456 dev_err(dev, "failed to get vft qp nums!\n");
> 457 return -EINVAL;
> 458 }
> 459
> 460 vf_data->qp_num = ret;
> 461
> 462 /* VF isolation state save from PF */
> 463 ret = qm_read_regs(pf_qm, QM_QUE_ISO_CFG_V, &vf_data->que_iso_cfg, 1);
> 464 if (ret) {
> 465 dev_err(dev, "failed to read QM_QUE_ISO_CFG_V!\n");
> 466 return ret;
> 467 }
> 468
> 469 return 0;
> 470 }
> 471
>

Thank you for your test, I will fix it in the next version.

Thanks.
Longfang.