Re: [PATCH v14 09/15] PCI: endpoint: pci-epf-test: Add doorbell test support
From: kernel test robot
Date: Sat Feb 08 2025 - 10:44:55 EST
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