Re: [PATCH v3 4/7] PCI: endpoint: Introduce pci_epc_mem_map()/unmap()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Damien,

kernel test robot noticed the following build warnings:

[auto build test WARNING on pci/next]
[also build test WARNING on pci/for-linus mani-mhi/mhi-next linus/master v6.12-rc2 next-20241004]
[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/Damien-Le-Moal/PCI-endpoint-Introduce-pci_epc_function_is_valid/20241004-130947
base:   https://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git next
patch link:    https://lore.kernel.org/r/20241004050742.140664-5-dlemoal%40kernel.org
patch subject: [PATCH v3 4/7] PCI: endpoint: Introduce pci_epc_mem_map()/unmap()
config: x86_64-randconfig-122-20241007 (https://download.01.org/0day-ci/archive/20241007/202410070929.jEKAJxjG-lkp@xxxxxxxxx/config)
compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241007/202410070929.jEKAJxjG-lkp@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410070929.jEKAJxjG-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
>> drivers/pci/endpoint/pci-epc-core.c:569:34: sparse: sparse: Using plain integer as NULL pointer
   drivers/pci/endpoint/pci-epc-core.c: note: in included file (through include/linux/smp.h, include/linux/lockdep.h, include/linux/spinlock.h, ...):
   include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates to true

vim +569 drivers/pci/endpoint/pci-epc-core.c

   524	
   525	/**
   526	 * pci_epc_mem_map() - allocate and map a PCI address to a CPU address
   527	 * @epc: the EPC device on which the CPU address is to be allocated and mapped
   528	 * @func_no: the physical endpoint function number in the EPC device
   529	 * @vfunc_no: the virtual endpoint function number in the physical function
   530	 * @pci_addr: PCI address to which the CPU address should be mapped
   531	 * @pci_size: the number of bytes to map starting from @pci_addr
   532	 * @map: where to return the mapping information
   533	 *
   534	 * Allocate a controller memory address region and map it to a RC PCI address
   535	 * region, taking into account the controller physical address mapping
   536	 * constraints using pci_epc_map_align().
   537	 * The effective size of the PCI address range mapped from @pci_addr is
   538	 * indicated by @map->pci_size. This size may be less than the requested
   539	 * @pci_size. The local virtual CPU address for the mapping is indicated by
   540	 * @map->virt_addr (@map->phys_addr indicates the physical address).
   541	 * The size and CPU address of the controller memory allocated and mapped are
   542	 * respectively indicated by @map->map_size and @map->virt_base (and
   543	 * @map->phys_base).
   544	 *
   545	 * Returns 0 on success and a negative error code in case of error.
   546	 */
   547	int pci_epc_mem_map(struct pci_epc *epc, u8 func_no, u8 vfunc_no,
   548			    u64 pci_addr, size_t pci_size, struct pci_epc_map *map)
   549	{
   550		int ret;
   551	
   552		ret = pci_epc_map_align(epc, func_no, vfunc_no, pci_addr, pci_size, map);
   553		if (ret)
   554			return ret;
   555	
   556		map->virt_base = pci_epc_mem_alloc_addr(epc, &map->phys_base,
   557							map->map_size);
   558		if (!map->virt_base)
   559			return -ENOMEM;
   560	
   561		map->phys_addr = map->phys_base + map->map_ofst;
   562		map->virt_addr = map->virt_base + map->map_ofst;
   563	
   564		ret = pci_epc_map_addr(epc, func_no, vfunc_no, map->phys_base,
   565				       map->map_pci_addr, map->map_size);
   566		if (ret) {
   567			pci_epc_mem_free_addr(epc, map->phys_base, map->virt_base,
   568					      map->map_size);
 > 569			map->virt_base = 0;
   570			return ret;
   571		}
   572	
   573		return 0;
   574	}
   575	EXPORT_SYMBOL_GPL(pci_epc_mem_map);
   576	

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




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux