Re: [PATCH v8 16/16] CXL/PCI: Disable CXL protocol errors during CXL Port cleanup

From: kernel test robot
Date: Thu Mar 27 2025 - 21:19:31 EST


Hi Terry,

kernel test robot noticed the following build warnings:

[auto build test WARNING on aae0594a7053c60b82621136257c8b648c67b512]

url: https://github.com/intel-lab-lkp/linux/commits/Terry-Bowman/PCI-CXL-Introduce-PCIe-helper-function-pcie_is_cxl/20250327-095738
base: aae0594a7053c60b82621136257c8b648c67b512
patch link: https://lore.kernel.org/r/20250327014717.2988633-17-terry.bowman%40amd.com
patch subject: [PATCH v8 16/16] CXL/PCI: Disable CXL protocol errors during CXL Port cleanup
config: csky-randconfig-r122-20250327 (https://download.01.org/0day-ci/archive/20250328/202503280816.M7DZmSDT-lkp@xxxxxxxxx/config)
compiler: csky-linux-gcc (GCC) 12.4.0
reproduce: (https://download.01.org/0day-ci/archive/20250328/202503280816.M7DZmSDT-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/202503280816.M7DZmSDT-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
drivers/cxl/port.c:68:33: sparse: sparse: symbol 'cxl_ep_error_handlers' was not declared. Should it be static?
>> drivers/cxl/port.c:104:6: sparse: sparse: symbol 'cxl_disable_prot_errors' was not declared. Should it be static?

vim +/cxl_disable_prot_errors +104 drivers/cxl/port.c

67
> 68 const struct cxl_error_handlers cxl_ep_error_handlers = {
69 .error_detected = cxl_error_detected,
70 .cor_error_detected = cxl_cor_error_detected,
71 };
72
73 static void cxl_assign_error_handlers(struct device *_dev,
74 const struct cxl_error_handlers *handlers)
75 {
76 struct device *dev __free(put_device) = get_device(_dev);
77 struct cxl_driver *pdrv;
78
79 if (!dev)
80 return;
81
82 pdrv = to_cxl_drv(dev->driver);
83 pdrv->err_handler = handlers;
84 }
85
86 void cxl_enable_prot_errors(struct device *dev)
87 {
88 struct pci_dev *pdev = to_pci_dev(dev);
89 struct device *pci_dev __free(put_device) = get_device(&pdev->dev);
90
91 if (!pci_dev)
92 return;
93
94 if (!pdev->aer_cap) {
95 pdev->aer_cap = pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_ERR);
96 if (!pdev->aer_cap)
97 return;
98 }
99
100 pci_aer_unmask_internal_errors(pdev);
101 }
102 EXPORT_SYMBOL_NS_GPL(cxl_enable_prot_errors, "CXL");
103
> 104 void cxl_disable_prot_errors(void *_dev)
105 {
106 struct device *dev = _dev;
107 struct pci_dev *pdev = to_pci_dev(dev);
108 struct device *pci_dev __free(put_device) = get_device(&pdev->dev);
109
110 if (!pci_dev || !pdev->aer_cap)
111 return;
112
113 pci_aer_mask_internal_errors(pdev);
114 }
115 EXPORT_SYMBOL_NS_GPL(cxl_disable_prot_errors, "CXL");
116

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