[PATCH v3 3/3] wifi: ath10k: only load compatible DT cal data
kernel test robot
lkp at intel.com
Fri Feb 3 03:38:22 PST 2023
Hi,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on helgaas-pci/next]
[also build test ERROR on helgaas-pci/for-linus wireless-next/main wireless/main linus/master v6.2-rc6 next-20230203]
[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/equu-openmail-cc/wifi-ath9k-stop-loading-incompatible-DT-cal-data/20230202-165536
base: https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git next
patch link: https://lore.kernel.org/r/20230202075524.2911058-4-equu%40openmail.cc
patch subject: [PATCH v3 3/3] wifi: ath10k: only load compatible DT cal data
config: i386-randconfig-a005 (https://download.01.org/0day-ci/archive/20230203/202302031943.aLVT61nB-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-8) 11.3.0
reproduce (this is a W=1 build):
# https://github.com/intel-lab-lkp/linux/commit/d2ef9bc195ade55c010e64762b135a46a62f3fdd
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review equu-openmail-cc/wifi-ath9k-stop-loading-incompatible-DT-cal-data/20230202-165536
git checkout d2ef9bc195ade55c010e64762b135a46a62f3fdd
# save the config file
mkdir build_dir && cp config build_dir/.config
make W=1 O=build_dir ARCH=i386 olddefconfig
make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/net/wireless/ath/ath10k/
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp at intel.com>
All errors (new ones prefixed by >>):
In file included from drivers/net/wireless/ath/ath10k/core.c:16:
include/linux/of_pci.h:23:33: warning: 'struct pci_driver' declared inside parameter list will not be visible outside of this definition or declaration
23 | struct pci_driver *drv);
| ^~~~~~~~~~
drivers/net/wireless/ath/ath10k/core.c: In function 'ath10k_download_cal_nvmem':
>> drivers/net/wireless/ath/ath10k/core.c:1987:40: error: passing argument 2 of 'of_pci_node_match_driver' from incompatible pointer type [-Werror=incompatible-pointer-types]
1987 | &ath10k_pci_driver)))
| ^~~~~~~~~~~~~~~~~~
| |
| struct pci_driver *
In file included from drivers/net/wireless/ath/ath10k/core.c:16:
include/linux/of_pci.h:23:45: note: expected 'struct pci_driver *' but argument is of type 'struct pci_driver *'
23 | struct pci_driver *drv);
| ~~~~~~~~~~~~~~~~~~~^~~
cc1: some warnings being treated as errors
vim +/of_pci_node_match_driver +1987 drivers/net/wireless/ath/ath10k/core.c
1955
1956 static int ath10k_download_cal_nvmem(struct ath10k *ar, const char *cell_name)
1957 {
1958 struct nvmem_cell *cell;
1959 void *buf;
1960 size_t len;
1961 int ret;
1962
1963 /* devm_nvmem_cell_get() will get a cell first from the OF
1964 * DT node representing the given device with nvmem-cell-name
1965 * "calibration", and from the global lookup table as a fallback,
1966 * and an ath10k device could be either a pci one or a platform one.
1967 *
1968 * If the OF DT node is not compatible with the real device, the
1969 * calibration data got from the node should not be applied.
1970 *
1971 * dev_is_pci(ar->dev) && ( no OF node || caldata not from node
1972 * || not compatible ) -> do not use caldata .
1973 *
1974 * !dev_is_pci(ar->dev) -> always use caldata .
1975 *
1976 * The judgement for compatibility differs with ath9k for many
1977 * DT using "qcom,ath10k" as compatibility string.
1978 */
1979 if (dev_is_pci(ar->dev) &&
1980 (!ar->dev->of_node ||
1981 (of_property_match_string(ar->dev->of_node,
1982 "nvmem-cell-names",
1983 cell_name) < 0) ||
1984 !of_device_is_compatible(ar->dev->of_node,
1985 "qcom,ath10k") ||
1986 !of_pci_node_match_driver(ar->dev->of_node,
> 1987 &ath10k_pci_driver)))
1988 return -ENOENT;
1989
1990 cell = devm_nvmem_cell_get(ar->dev, cell_name);
1991 if (IS_ERR(cell)) {
1992 ret = PTR_ERR(cell);
1993 return ret;
1994 }
1995
1996 buf = nvmem_cell_read(cell, &len);
1997 if (IS_ERR(buf))
1998 return PTR_ERR(buf);
1999
2000 if (ar->hw_params.cal_data_len != len) {
2001 kfree(buf);
2002 ath10k_warn(ar, "invalid calibration data length in nvmem-cell '%s': %zu != %u\n",
2003 cell_name, len, ar->hw_params.cal_data_len);
2004 return -EMSGSIZE;
2005 }
2006
2007 ret = ath10k_download_board_data(ar, buf, len);
2008 kfree(buf);
2009 if (ret)
2010 ath10k_warn(ar, "failed to download calibration data from nvmem-cell '%s': %d\n",
2011 cell_name, ret);
2012
2013 return ret;
2014 }
2015
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests
More information about the ath10k
mailing list