All of lore.kernel.org
 help / color / mirror / Atom feed
* [openeuler:OLK-6.6 1662/1662] arch/x86/kernel/zhaoxin_kh40000.c:155:26: sparse: sparse: symbol 'kh40000_dma_direct_ops' was not declared. Should it be static?
@ 2024-12-26 11:08 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2024-12-26 11:08 UTC (permalink / raw)
  To: kernel; +Cc: oe-kbuild-all

tree:   https://gitee.com/openeuler/kernel.git OLK-6.6
head:   9e7f01f21883b8c1e74302dbac8030cf2771b5ae
commit: 11557c1ae4529f133483879b7ee00b7d8c653be7 [1662/1662] x86/cpu/zhaoxin: Encapsulate access to kh40000_dma_direct_ops within function
config: x86_64-randconfig-123-20241226 (https://download.01.org/0day-ci/archive/20241226/202412261949.sqULJFrV-lkp@intel.com/config)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241226/202412261949.sqULJFrV-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/202412261949.sqULJFrV-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
   arch/x86/kernel/zhaoxin_kh40000.c:33:15: sparse: sparse: symbol 'zhaoxin_patch_code' was not declared. Should it be static?
>> arch/x86/kernel/zhaoxin_kh40000.c:155:26: sparse: sparse: symbol 'kh40000_dma_direct_ops' was not declared. Should it be static?
   arch/x86/kernel/zhaoxin_kh40000.c:325:26: sparse: sparse: symbol 'kh40000_dma_iommu_ops' was not declared. Should it be static?

vim +/kh40000_dma_direct_ops +155 arch/x86/kernel/zhaoxin_kh40000.c

4332dbb0718135 leoliu-oc 2024-05-13   32  
4332dbb0718135 leoliu-oc 2024-05-13  @33  unsigned long zhaoxin_patch_code = ZHAOXIN_PATCH_CODE_DEFAULT;
4332dbb0718135 leoliu-oc 2024-05-13   34  
4332dbb0718135 leoliu-oc 2024-05-13   35  static int __init zhaoxin_patch_code_setup(char *str)
4332dbb0718135 leoliu-oc 2024-05-13   36  {
4332dbb0718135 leoliu-oc 2024-05-13   37  	int err = kstrtoul(str, 0, &zhaoxin_patch_code);
4332dbb0718135 leoliu-oc 2024-05-13   38  
4332dbb0718135 leoliu-oc 2024-05-13   39  	if (err || (zhaoxin_patch_code > ZHAOXIN_PATCH_CODE_MAX)) {
4332dbb0718135 leoliu-oc 2024-05-13   40  		pr_err("cmdline 'zhaoxin_patch_bitmask=%s' inappropriate\n", str);
4332dbb0718135 leoliu-oc 2024-05-13   41  		zhaoxin_patch_code = ZHAOXIN_PATCH_CODE_DEFAULT;
4332dbb0718135 leoliu-oc 2024-05-13   42  		return err;
4332dbb0718135 leoliu-oc 2024-05-13   43  	}
4332dbb0718135 leoliu-oc 2024-05-13   44  
a4738ea3785a75 leoliu-oc 2024-05-23   45  	if (ZHAOXIN_P2CW_NODE_CHECK & zhaoxin_patch_code)
4332dbb0718135 leoliu-oc 2024-05-13   46  		pr_info("zhaoxin dma patch node check is enabled\n");
4332dbb0718135 leoliu-oc 2024-05-13   47  
4332dbb0718135 leoliu-oc 2024-05-13   48  	return 0;
4332dbb0718135 leoliu-oc 2024-05-13   49  }
4332dbb0718135 leoliu-oc 2024-05-13   50  __setup("zhaoxin_patch_bitmask=", zhaoxin_patch_code_setup);
4332dbb0718135 leoliu-oc 2024-05-13   51  
4332dbb0718135 leoliu-oc 2024-05-13   52  static struct pci_dev *kh40000_get_pci_dev(struct device *dev)
4332dbb0718135 leoliu-oc 2024-05-13   53  {
4332dbb0718135 leoliu-oc 2024-05-13   54  	if (dev_is_pci(dev))
4332dbb0718135 leoliu-oc 2024-05-13   55  		return to_pci_dev(dev);
4332dbb0718135 leoliu-oc 2024-05-13   56  
4332dbb0718135 leoliu-oc 2024-05-13   57  	if (dev->parent)
4332dbb0718135 leoliu-oc 2024-05-13   58  		return kh40000_get_pci_dev(dev->parent);
4332dbb0718135 leoliu-oc 2024-05-13   59  
4332dbb0718135 leoliu-oc 2024-05-13   60  	return NULL;
4332dbb0718135 leoliu-oc 2024-05-13   61  }
4332dbb0718135 leoliu-oc 2024-05-13   62  
4332dbb0718135 leoliu-oc 2024-05-13   63  static void kh40000_sync_single_dma_for_cpu(struct device *dev, dma_addr_t paddr,
4332dbb0718135 leoliu-oc 2024-05-13   64  		enum dma_data_direction dir, bool is_iommu)
4332dbb0718135 leoliu-oc 2024-05-13   65  {
4332dbb0718135 leoliu-oc 2024-05-13   66  	u8 vid;
4332dbb0718135 leoliu-oc 2024-05-13   67  	struct pci_dev *pci;
4332dbb0718135 leoliu-oc 2024-05-13   68  	u64 dma_mask = *dev->dma_mask;
4332dbb0718135 leoliu-oc 2024-05-13   69  
4332dbb0718135 leoliu-oc 2024-05-13   70  	/* check direction */
4332dbb0718135 leoliu-oc 2024-05-13   71  	if ((dir != DMA_FROM_DEVICE) && (dir != DMA_BIDIRECTIONAL))
4332dbb0718135 leoliu-oc 2024-05-13   72  		return;
4332dbb0718135 leoliu-oc 2024-05-13   73  
4332dbb0718135 leoliu-oc 2024-05-13   74  	/* check dma capability */
4332dbb0718135 leoliu-oc 2024-05-13   75  	if (dma_mask <= DMA_BIT_MASK(32))
4332dbb0718135 leoliu-oc 2024-05-13   76  		return;
4332dbb0718135 leoliu-oc 2024-05-13   77  
4332dbb0718135 leoliu-oc 2024-05-13   78  	/* check device type */
4332dbb0718135 leoliu-oc 2024-05-13   79  	pci = kh40000_get_pci_dev(dev);
4332dbb0718135 leoliu-oc 2024-05-13   80  	if (pci == NULL)
4332dbb0718135 leoliu-oc 2024-05-13   81  		return;
4332dbb0718135 leoliu-oc 2024-05-13   82  
4332dbb0718135 leoliu-oc 2024-05-13   83  	/* get real physical address */
4332dbb0718135 leoliu-oc 2024-05-13   84  	if (is_iommu) {
4332dbb0718135 leoliu-oc 2024-05-13   85  		struct iommu_domain *domain = iommu_get_dma_domain(dev);
4332dbb0718135 leoliu-oc 2024-05-13   86  
4332dbb0718135 leoliu-oc 2024-05-13   87  		paddr = iommu_iova_to_phys(domain, paddr);
4332dbb0718135 leoliu-oc 2024-05-13   88  		if (!paddr)
4332dbb0718135 leoliu-oc 2024-05-13   89  			return;
4332dbb0718135 leoliu-oc 2024-05-13   90  	}
4332dbb0718135 leoliu-oc 2024-05-13   91  
4332dbb0718135 leoliu-oc 2024-05-13   92  	/* check node or not */
4332dbb0718135 leoliu-oc 2024-05-13   93  	if ((zhaoxin_patch_code & ZHAOXIN_P2CW_NODE_CHECK)
4332dbb0718135 leoliu-oc 2024-05-13   94  	   && pfn_to_nid(PFN_DOWN(paddr)) == dev_to_node(dev))
4332dbb0718135 leoliu-oc 2024-05-13   95  		return;
4332dbb0718135 leoliu-oc 2024-05-13   96  
4332dbb0718135 leoliu-oc 2024-05-13   97  	/* flush data by one pci read cycle */
4332dbb0718135 leoliu-oc 2024-05-13   98  	pci_read_config_byte(pci, PCI_VENDOR_ID, &vid);
4332dbb0718135 leoliu-oc 2024-05-13   99  }
4332dbb0718135 leoliu-oc 2024-05-13  100  
4332dbb0718135 leoliu-oc 2024-05-13  101  /* zhaoxin kh-40000 direct dma ops */
4332dbb0718135 leoliu-oc 2024-05-13  102  static void *kh40000_dma_direct_alloc(struct device *dev, size_t size,
4332dbb0718135 leoliu-oc 2024-05-13  103  		dma_addr_t *addr, gfp_t gfp, unsigned long attrs)
4332dbb0718135 leoliu-oc 2024-05-13  104  {
4332dbb0718135 leoliu-oc 2024-05-13  105  	if (dev->coherent_dma_mask > DMA_BIT_MASK(32))
4332dbb0718135 leoliu-oc 2024-05-13  106  		gfp |= __GFP_THISNODE;
4332dbb0718135 leoliu-oc 2024-05-13  107  
4332dbb0718135 leoliu-oc 2024-05-13  108  	return dma_direct_alloc(dev, size, addr, gfp, attrs);
4332dbb0718135 leoliu-oc 2024-05-13  109  }
4332dbb0718135 leoliu-oc 2024-05-13  110  
4332dbb0718135 leoliu-oc 2024-05-13  111  static void kh40000_dma_direct_unmap_page(struct device *dev, dma_addr_t addr,
4332dbb0718135 leoliu-oc 2024-05-13  112  		size_t size, enum dma_data_direction dir, unsigned long attrs)
4332dbb0718135 leoliu-oc 2024-05-13  113  {
4332dbb0718135 leoliu-oc 2024-05-13  114  	kh40000_sync_single_dma_for_cpu(dev, addr, dir, 0);
4332dbb0718135 leoliu-oc 2024-05-13  115  	dma_direct_unmap_page(dev, addr, size, dir, attrs);
4332dbb0718135 leoliu-oc 2024-05-13  116  }
4332dbb0718135 leoliu-oc 2024-05-13  117  
4332dbb0718135 leoliu-oc 2024-05-13  118  static void kh40000_dma_direct_sync_sg_for_cpu(struct device *dev,
4332dbb0718135 leoliu-oc 2024-05-13  119  		struct scatterlist *sgl, int nents, enum dma_data_direction dir)
4332dbb0718135 leoliu-oc 2024-05-13  120  {
4332dbb0718135 leoliu-oc 2024-05-13  121  	struct scatterlist *sg;
4332dbb0718135 leoliu-oc 2024-05-13  122  	int i;
4332dbb0718135 leoliu-oc 2024-05-13  123  
4332dbb0718135 leoliu-oc 2024-05-13  124  	for_each_sg(sgl,  sg, nents, i)
4332dbb0718135 leoliu-oc 2024-05-13  125  		kh40000_sync_single_dma_for_cpu(dev, sg_dma_address(sg), dir, 0);
4332dbb0718135 leoliu-oc 2024-05-13  126  
4332dbb0718135 leoliu-oc 2024-05-13  127  	dma_direct_sync_sg_for_cpu(dev, sgl, nents, dir);
4332dbb0718135 leoliu-oc 2024-05-13  128  }
4332dbb0718135 leoliu-oc 2024-05-13  129  
4332dbb0718135 leoliu-oc 2024-05-13  130  static void kh40000_dma_direct_sync_single_for_cpu(struct device *dev,
4332dbb0718135 leoliu-oc 2024-05-13  131  		dma_addr_t addr, size_t size, enum dma_data_direction dir)
4332dbb0718135 leoliu-oc 2024-05-13  132  {
4332dbb0718135 leoliu-oc 2024-05-13  133  	kh40000_sync_single_dma_for_cpu(dev, addr, dir, 0);
4332dbb0718135 leoliu-oc 2024-05-13  134  	dma_direct_sync_single_for_cpu(dev, addr, size, dir);
4332dbb0718135 leoliu-oc 2024-05-13  135  }
4332dbb0718135 leoliu-oc 2024-05-13  136  
4332dbb0718135 leoliu-oc 2024-05-13  137  static void kh40000_dma_direct_unmap_sg(struct device *dev, struct scatterlist *sgl,
4332dbb0718135 leoliu-oc 2024-05-13  138  		int nents, enum dma_data_direction dir, unsigned long attrs)
4332dbb0718135 leoliu-oc 2024-05-13  139  {
4332dbb0718135 leoliu-oc 2024-05-13  140  	struct scatterlist *sg;
4332dbb0718135 leoliu-oc 2024-05-13  141  	int i;
4332dbb0718135 leoliu-oc 2024-05-13  142  
4332dbb0718135 leoliu-oc 2024-05-13  143  	for_each_sg(sgl,  sg, nents, i)
4332dbb0718135 leoliu-oc 2024-05-13  144  		kh40000_sync_single_dma_for_cpu(dev, sg_dma_address(sg), dir, 0);
4332dbb0718135 leoliu-oc 2024-05-13  145  
4332dbb0718135 leoliu-oc 2024-05-13  146  	dma_direct_unmap_sg(dev, sgl, nents, dir, attrs);
4332dbb0718135 leoliu-oc 2024-05-13  147  }
4332dbb0718135 leoliu-oc 2024-05-13  148  
4332dbb0718135 leoliu-oc 2024-05-13  149  static void kh40000_dma_direct_unmap_resource(struct device *dev, dma_addr_t addr,
4332dbb0718135 leoliu-oc 2024-05-13  150  		size_t size, enum dma_data_direction dir, unsigned long attrs)
4332dbb0718135 leoliu-oc 2024-05-13  151  {
4332dbb0718135 leoliu-oc 2024-05-13  152  	kh40000_sync_single_dma_for_cpu(dev, addr, dir, 0);
4332dbb0718135 leoliu-oc 2024-05-13  153  }
4332dbb0718135 leoliu-oc 2024-05-13  154  
4332dbb0718135 leoliu-oc 2024-05-13 @155  const struct dma_map_ops kh40000_dma_direct_ops = {
4332dbb0718135 leoliu-oc 2024-05-13  156  	.flags			= DMA_F_PCI_P2PDMA_SUPPORTED,
4332dbb0718135 leoliu-oc 2024-05-13  157  	.alloc			= kh40000_dma_direct_alloc,
4332dbb0718135 leoliu-oc 2024-05-13  158  	.sync_sg_for_cpu	= kh40000_dma_direct_sync_sg_for_cpu,
4332dbb0718135 leoliu-oc 2024-05-13  159  	.unmap_page		= kh40000_dma_direct_unmap_page,
4332dbb0718135 leoliu-oc 2024-05-13  160  	.sync_single_for_cpu	= kh40000_dma_direct_sync_single_for_cpu,
4332dbb0718135 leoliu-oc 2024-05-13  161  	.unmap_sg		= kh40000_dma_direct_unmap_sg,
4332dbb0718135 leoliu-oc 2024-05-13  162  	.unmap_resource		= kh40000_dma_direct_unmap_resource,
4332dbb0718135 leoliu-oc 2024-05-13  163  	.dma_supported		= dma_direct_supported,
4332dbb0718135 leoliu-oc 2024-05-13  164  	.free			= dma_direct_free,
4332dbb0718135 leoliu-oc 2024-05-13  165  	.alloc_pages		= dma_direct_alloc_pages,
4332dbb0718135 leoliu-oc 2024-05-13  166  	.free_pages		= dma_direct_free_pages,
4332dbb0718135 leoliu-oc 2024-05-13  167  	.sync_single_for_device	= dma_direct_sync_single_for_device,
4332dbb0718135 leoliu-oc 2024-05-13  168  	.sync_sg_for_device	= dma_direct_sync_sg_for_device,
4332dbb0718135 leoliu-oc 2024-05-13  169  	.get_required_mask	= dma_direct_get_required_mask,
4332dbb0718135 leoliu-oc 2024-05-13  170  	.max_mapping_size	= dma_direct_max_mapping_size,
4332dbb0718135 leoliu-oc 2024-05-13  171  	.mmap			= dma_direct_mmap,
4332dbb0718135 leoliu-oc 2024-05-13  172  	.get_sgtable		= dma_direct_get_sgtable,
4332dbb0718135 leoliu-oc 2024-05-13  173  	.map_page		= dma_direct_map_page,
4332dbb0718135 leoliu-oc 2024-05-13  174  	.map_sg			= dma_direct_map_sg,
4332dbb0718135 leoliu-oc 2024-05-13  175  	.map_resource		= dma_direct_map_resource,
4332dbb0718135 leoliu-oc 2024-05-13  176  };
ef20808db09987 leoliu-oc 2024-03-22  177  

:::::: The code at line 155 was first introduced by commit
:::::: 4332dbb07181359cccca3ba757ef54e434fb1296 Add kh40000_direct_dma_ops for KH-40000 platform

:::::: TO: leoliu-oc <leoliu-oc@zhaoxin.com>
:::::: CC: leoliu-oc <leoliu-oc@zhaoxin.com>

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [openeuler:OLK-6.6 1662/1662] arch/x86/kernel/zhaoxin_kh40000.c:155:26: sparse: sparse: symbol 'kh40000_dma_direct_ops' was not declared. Should it be static?
@ 2024-12-27 21:46 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2024-12-27 21:46 UTC (permalink / raw)
  To: kernel; +Cc: oe-kbuild-all

tree:   https://gitee.com/openeuler/kernel.git OLK-6.6
head:   e53a23ef21aa9859c864e7c4bb6ecde5269f54b6
commit: 11557c1ae4529f133483879b7ee00b7d8c653be7 [1662/1662] x86/cpu/zhaoxin: Encapsulate access to kh40000_dma_direct_ops within function
config: x86_64-randconfig-123-20241226 (https://download.01.org/0day-ci/archive/20241228/202412280553.DYoAL68M-lkp@intel.com/config)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241228/202412280553.DYoAL68M-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/202412280553.DYoAL68M-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
   arch/x86/kernel/zhaoxin_kh40000.c:33:15: sparse: sparse: symbol 'zhaoxin_patch_code' was not declared. Should it be static?
>> arch/x86/kernel/zhaoxin_kh40000.c:155:26: sparse: sparse: symbol 'kh40000_dma_direct_ops' was not declared. Should it be static?
   arch/x86/kernel/zhaoxin_kh40000.c:325:26: sparse: sparse: symbol 'kh40000_dma_iommu_ops' was not declared. Should it be static?

vim +/kh40000_dma_direct_ops +155 arch/x86/kernel/zhaoxin_kh40000.c

4332dbb0718135 leoliu-oc 2024-05-13  154  
4332dbb0718135 leoliu-oc 2024-05-13 @155  const struct dma_map_ops kh40000_dma_direct_ops = {
4332dbb0718135 leoliu-oc 2024-05-13  156  	.flags			= DMA_F_PCI_P2PDMA_SUPPORTED,
4332dbb0718135 leoliu-oc 2024-05-13  157  	.alloc			= kh40000_dma_direct_alloc,
4332dbb0718135 leoliu-oc 2024-05-13  158  	.sync_sg_for_cpu	= kh40000_dma_direct_sync_sg_for_cpu,
4332dbb0718135 leoliu-oc 2024-05-13  159  	.unmap_page		= kh40000_dma_direct_unmap_page,
4332dbb0718135 leoliu-oc 2024-05-13  160  	.sync_single_for_cpu	= kh40000_dma_direct_sync_single_for_cpu,
4332dbb0718135 leoliu-oc 2024-05-13  161  	.unmap_sg		= kh40000_dma_direct_unmap_sg,
4332dbb0718135 leoliu-oc 2024-05-13  162  	.unmap_resource		= kh40000_dma_direct_unmap_resource,
4332dbb0718135 leoliu-oc 2024-05-13  163  	.dma_supported		= dma_direct_supported,
4332dbb0718135 leoliu-oc 2024-05-13  164  	.free			= dma_direct_free,
4332dbb0718135 leoliu-oc 2024-05-13  165  	.alloc_pages		= dma_direct_alloc_pages,
4332dbb0718135 leoliu-oc 2024-05-13  166  	.free_pages		= dma_direct_free_pages,
4332dbb0718135 leoliu-oc 2024-05-13  167  	.sync_single_for_device	= dma_direct_sync_single_for_device,
4332dbb0718135 leoliu-oc 2024-05-13  168  	.sync_sg_for_device	= dma_direct_sync_sg_for_device,
4332dbb0718135 leoliu-oc 2024-05-13  169  	.get_required_mask	= dma_direct_get_required_mask,
4332dbb0718135 leoliu-oc 2024-05-13  170  	.max_mapping_size	= dma_direct_max_mapping_size,
4332dbb0718135 leoliu-oc 2024-05-13  171  	.mmap			= dma_direct_mmap,
4332dbb0718135 leoliu-oc 2024-05-13  172  	.get_sgtable		= dma_direct_get_sgtable,
4332dbb0718135 leoliu-oc 2024-05-13  173  	.map_page		= dma_direct_map_page,
4332dbb0718135 leoliu-oc 2024-05-13  174  	.map_sg			= dma_direct_map_sg,
4332dbb0718135 leoliu-oc 2024-05-13  175  	.map_resource		= dma_direct_map_resource,
4332dbb0718135 leoliu-oc 2024-05-13  176  };
ef20808db09987 leoliu-oc 2024-03-22  177  

:::::: The code at line 155 was first introduced by commit
:::::: 4332dbb07181359cccca3ba757ef54e434fb1296 Add kh40000_direct_dma_ops for KH-40000 platform

:::::: TO: leoliu-oc <leoliu-oc@zhaoxin.com>
:::::: CC: leoliu-oc <leoliu-oc@zhaoxin.com>

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-12-27 21:46 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-27 21:46 [openeuler:OLK-6.6 1662/1662] arch/x86/kernel/zhaoxin_kh40000.c:155:26: sparse: sparse: symbol 'kh40000_dma_direct_ops' was not declared. Should it be static? kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2024-12-26 11:08 kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.