Re: [PATCH v14 09/15] PCI: endpoint: pci-epf-test: Add doorbell test support

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

 



Hi Frank,

kernel test robot noticed the following build errors:

[auto build test ERROR on 00f3246adeeacbda0bd0b303604e46eb59c32e6e]

url:    https://github.com/intel-lab-lkp/linux/commits/Frank-Li/platform-msi-Add-msi_remove_device_irq_domain-in-platform_device_msi_free_irqs_all/20250208-034445
base:   00f3246adeeacbda0bd0b303604e46eb59c32e6e
patch link:    https://lore.kernel.org/r/20250207-ep-msi-v14-9-9671b136f2b8%40nxp.com
patch subject: [PATCH v14 09/15] PCI: endpoint: pci-epf-test: Add doorbell test support
config: i386-buildonly-randconfig-003-20250208 (https://download.01.org/0day-ci/archive/20250208/202502082311.G1hWGggF-lkp@xxxxxxxxx/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250208/202502082311.G1hWGggF-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/202502082311.G1hWGggF-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

   drivers/pci/endpoint/functions/pci-epf-test.c: In function 'pci_epf_test_enable_doorbell':
>> drivers/pci/endpoint/functions/pci-epf-test.c:726:42: error: passing argument 4 of 'pci_epf_align_inbound_addr' from incompatible pointer type [-Werror=incompatible-pointer-types]
     726 |                                          &epf_test->db_bar.phys_addr, &offset);
         |                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
         |                                          |
         |                                          dma_addr_t * {aka unsigned int *}
   In file included from include/linux/pci-epc.h:12,
                    from drivers/pci/endpoint/functions/pci-epf-test.c:19:
   include/linux/pci-epf.h:245:47: note: expected 'u64 *' {aka 'long long unsigned int *'} but argument is of type 'dma_addr_t *' {aka 'unsigned int *'}
     245 |                                u64 addr, u64 *base, size_t *off);
         |                                          ~~~~~^~~~
   cc1: some warnings being treated as errors


vim +/pci_epf_align_inbound_addr +726 drivers/pci/endpoint/functions/pci-epf-test.c

   686	
   687	static void pci_epf_test_enable_doorbell(struct pci_epf_test *epf_test,
   688						 struct pci_epf_test_reg *reg)
   689	{
   690		struct pci_epf *epf = epf_test->epf;
   691		struct pci_epc *epc = epf->epc;
   692		struct msi_msg *msg;
   693		enum pci_barno bar;
   694		size_t offset;
   695		int ret;
   696	
   697		ret = pci_epf_alloc_doorbell(epf, 1);
   698		if (ret) {
   699			reg->status |= STATUS_DOORBELL_ENABLE_FAIL;
   700			return;
   701		}
   702	
   703		msg = &epf->db_msg[0].msg;
   704		bar = pci_epc_get_next_free_bar(epf_test->epc_features, epf_test->test_reg_bar + 1);
   705		if (bar < BAR_0 || bar == epf_test->test_reg_bar || !epf->db_msg) {
   706			reg->status |= STATUS_DOORBELL_ENABLE_FAIL;
   707			return;
   708		}
   709	
   710		ret = request_irq(epf->db_msg[0].virq, pci_epf_test_doorbell_handler, 0,
   711				  "pci-test-doorbell", epf_test);
   712		if (ret) {
   713			dev_err(&epf->dev,
   714				"Failed to request irq %d, doorbell feature is not supported\n",
   715				epf->db_msg[0].virq);
   716			reg->status |= STATUS_DOORBELL_ENABLE_FAIL;
   717			pci_epf_test_doorbell_cleanup(epf_test);
   718			return;
   719		}
   720	
   721		reg->doorbell_data = msg->data;
   722		reg->doorbell_bar = bar;
   723	
   724		msg = &epf->db_msg[0].msg;
   725		ret = pci_epf_align_inbound_addr(epf, bar, ((u64)msg->address_hi << 32) | msg->address_lo,
 > 726						 &epf_test->db_bar.phys_addr, &offset);
   727	
   728		if (ret) {
   729			reg->status |= STATUS_DOORBELL_ENABLE_FAIL;
   730			pci_epf_test_doorbell_cleanup(epf_test);
   731			return;
   732		}
   733	
   734		reg->doorbell_offset = offset;
   735	
   736		epf_test->db_bar.barno = bar;
   737		epf_test->db_bar.size = epf->bar[bar].size;
   738		epf_test->db_bar.flags = epf->bar[bar].flags;
   739	
   740		ret = pci_epc_set_bar(epc, epf->func_no, epf->vfunc_no, &epf_test->db_bar);
   741		if (ret) {
   742			reg->status |= STATUS_DOORBELL_ENABLE_FAIL;
   743			pci_epf_test_doorbell_cleanup(epf_test);
   744		} else {
   745			reg->status |= STATUS_DOORBELL_ENABLE_SUCCESS;
   746		}
   747	}
   748	

-- 
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