All of lore.kernel.org
 help / color / mirror / Atom feed
* [android-common:upstream-linux-5.15.y 264/377] drivers/pci/endpoint/functions/pci-epf-vntb.c:600:45: sparse: sparse: Using plain integer as NULL pointer
@ 2024-03-28 15:23 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2024-03-28 15:23 UTC (permalink / raw)
  To: cros-kernel-buildreports; +Cc: oe-kbuild-all

tree:   https://android.googlesource.com/kernel/common upstream-linux-5.15.y
head:   9465fef4ae351749f7068da8c78af4ca27e61928
commit: e2b6ef72b7aea9d7d480d2df499bcd1c93247abb [264/377] PCI: endpoint: Support NTB transfer between RC and EP
config: i386-randconfig-062-20240328 (https://download.01.org/0day-ci/archive/20240328/202403282339.inNxJ7O8-lkp@intel.com/config)
compiler: gcc-8 (Ubuntu 8.4.0-3ubuntu2) 8.4.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240328/202403282339.inNxJ7O8-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/202403282339.inNxJ7O8-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
   drivers/pci/endpoint/functions/pci-epf-vntb.c:542:17: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __iomem *mw_addr @@     got void * @@
   drivers/pci/endpoint/functions/pci-epf-vntb.c:542:17: sparse:     expected void [noderef] __iomem *mw_addr
   drivers/pci/endpoint/functions/pci-epf-vntb.c:542:17: sparse:     got void *
   drivers/pci/endpoint/functions/pci-epf-vntb.c:574:41: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void *addr @@     got void [noderef] __iomem *epf_db @@
   drivers/pci/endpoint/functions/pci-epf-vntb.c:574:41: sparse:     expected void *addr
   drivers/pci/endpoint/functions/pci-epf-vntb.c:574:41: sparse:     got void [noderef] __iomem *epf_db
>> drivers/pci/endpoint/functions/pci-epf-vntb.c:600:45: sparse: sparse: Using plain integer as NULL pointer
>> drivers/pci/endpoint/functions/pci-epf-vntb.c:985:16: sparse: sparse: symbol 'vpci_ops' was not declared. Should it be static?
   drivers/pci/endpoint/functions/pci-epf-vntb.c:1089:33: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void [noderef] __iomem *base @@     got struct epf_ntb_ctrl *reg @@
   drivers/pci/endpoint/functions/pci-epf-vntb.c:1089:33: sparse:     expected void [noderef] __iomem *base
   drivers/pci/endpoint/functions/pci-epf-vntb.c:1089:33: sparse:     got struct epf_ntb_ctrl *reg
   drivers/pci/endpoint/functions/pci-epf-vntb.c:1100:33: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void [noderef] __iomem *base @@     got struct epf_ntb_ctrl *reg @@
   drivers/pci/endpoint/functions/pci-epf-vntb.c:1100:33: sparse:     expected void [noderef] __iomem *base
   drivers/pci/endpoint/functions/pci-epf-vntb.c:1100:33: sparse:     got struct epf_ntb_ctrl *reg
   drivers/pci/endpoint/functions/pci-epf-vntb.c:1111:33: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void [noderef] __iomem *base @@     got struct epf_ntb_ctrl *reg @@
   drivers/pci/endpoint/functions/pci-epf-vntb.c:1111:33: sparse:     expected void [noderef] __iomem *base
   drivers/pci/endpoint/functions/pci-epf-vntb.c:1111:33: sparse:     got struct epf_ntb_ctrl *reg
   drivers/pci/endpoint/functions/pci-epf-vntb.c:1123:33: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void [noderef] __iomem *base @@     got struct epf_ntb_ctrl *reg @@
   drivers/pci/endpoint/functions/pci-epf-vntb.c:1123:33: sparse:     expected void [noderef] __iomem *base
   drivers/pci/endpoint/functions/pci-epf-vntb.c:1123:33: sparse:     got struct epf_ntb_ctrl *reg

vim +600 drivers/pci/endpoint/functions/pci-epf-vntb.c

   511	
   512	/**
   513	 * epf_ntb_db_bar_init() - Configure Doorbell window BARs
   514	 * @ntb: NTB device that facilitates communication between HOST and vHOST
   515	 */
   516	static int epf_ntb_db_bar_init(struct epf_ntb *ntb)
   517	{
   518		const struct pci_epc_features *epc_features;
   519		u32 align;
   520		struct device *dev = &ntb->epf->dev;
   521		int ret;
   522		struct pci_epf_bar *epf_bar;
   523		void __iomem *mw_addr;
   524		enum pci_barno barno;
   525		size_t size = 4 * ntb->db_count;
   526	
   527		epc_features = pci_epc_get_features(ntb->epf->epc,
   528						    ntb->epf->func_no,
   529						    ntb->epf->vfunc_no);
   530		align = epc_features->align;
   531	
   532		if (size < 128)
   533			size = 128;
   534	
   535		if (align)
   536			size = ALIGN(size, align);
   537		else
   538			size = roundup_pow_of_two(size);
   539	
   540		barno = ntb->epf_ntb_bar[BAR_DB];
   541	
 > 542		mw_addr = pci_epf_alloc_space(ntb->epf, size, barno, align, 0);
   543		if (!mw_addr) {
   544			dev_err(dev, "Failed to allocate OB address\n");
   545			return -ENOMEM;
   546		}
   547	
   548		ntb->epf_db = mw_addr;
   549	
   550		epf_bar = &ntb->epf->bar[barno];
   551	
   552		ret = pci_epc_set_bar(ntb->epf->epc, ntb->epf->func_no, ntb->epf->vfunc_no, epf_bar);
   553		if (ret) {
   554			dev_err(dev, "Doorbell BAR set failed\n");
   555				goto err_alloc_peer_mem;
   556		}
   557		return ret;
   558	
   559	err_alloc_peer_mem:
   560		pci_epc_mem_free_addr(ntb->epf->epc, epf_bar->phys_addr, mw_addr, epf_bar->size);
   561		return -1;
   562	}
   563	
   564	/**
   565	 * epf_ntb_db_bar_clear() - Clear doorbell BAR and free memory
   566	 *   allocated in peer's outbound address space
   567	 * @ntb: NTB device that facilitates communication between HOST and vHOST
   568	 */
   569	static void epf_ntb_db_bar_clear(struct epf_ntb *ntb)
   570	{
   571		enum pci_barno barno;
   572	
   573		barno = ntb->epf_ntb_bar[BAR_DB];
   574		pci_epf_free_space(ntb->epf, ntb->epf_db, barno, 0);
   575		pci_epc_clear_bar(ntb->epf->epc,
   576				  ntb->epf->func_no,
   577				  ntb->epf->vfunc_no,
   578				  &ntb->epf->bar[barno]);
   579	}
   580	
   581	/**
   582	 * epf_ntb_mw_bar_init() - Configure Memory window BARs
   583	 * @ntb: NTB device that facilitates communication between HOST and vHOST
   584	 *
   585	 */
   586	static int epf_ntb_mw_bar_init(struct epf_ntb *ntb)
   587	{
   588		int ret = 0;
   589		int i;
   590		u64 size;
   591		enum pci_barno barno;
   592		struct device *dev = &ntb->epf->dev;
   593	
   594		for (i = 0; i < ntb->num_mws; i++) {
   595			size = ntb->mws_size[i];
   596			barno = ntb->epf_ntb_bar[BAR_MW0 + i];
   597	
   598			ntb->epf->bar[barno].barno = barno;
   599			ntb->epf->bar[barno].size = size;
 > 600			ntb->epf->bar[barno].addr = 0;
   601			ntb->epf->bar[barno].phys_addr = 0;
   602			ntb->epf->bar[barno].flags |= upper_32_bits(size) ?
   603					PCI_BASE_ADDRESS_MEM_TYPE_64 :
   604					PCI_BASE_ADDRESS_MEM_TYPE_32;
   605	
   606			ret = pci_epc_set_bar(ntb->epf->epc,
   607					      ntb->epf->func_no,
   608					      ntb->epf->vfunc_no,
   609					      &ntb->epf->bar[barno]);
   610			if (ret) {
   611				dev_err(dev, "MW set failed\n");
   612				goto err_alloc_mem;
   613			}
   614	
   615			/* Allocate EPC outbound memory windows to vpci vntb device */
   616			ntb->vpci_mw_addr[i] = pci_epc_mem_alloc_addr(ntb->epf->epc,
   617								      &ntb->vpci_mw_phy[i],
   618								      size);
   619			if (!ntb->vpci_mw_addr[i]) {
   620				dev_err(dev, "Failed to allocate source address\n");
   621				goto err_alloc_mem;
   622			}
   623		}
   624	
   625		return ret;
   626	err_alloc_mem:
   627		return ret;
   628	}
   629	

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2024-03-28 15:24 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-28 15:23 [android-common:upstream-linux-5.15.y 264/377] drivers/pci/endpoint/functions/pci-epf-vntb.c:600:45: sparse: sparse: Using plain integer as NULL pointer 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.