Re: [PATCH v6 3/5] remoteproc: qcom: Update PIL relocation info on load

From: kbuild test robot
Date: Thu May 28 2020 - 23:24:54 EST


Hi Bjorn,

I love your patch! Perhaps something to improve:

[auto build test WARNING on next-20200526]
[also build test WARNING on v5.7-rc7]
[cannot apply to robh/for-next linus/master agross-msm/qcom/for-next remoteproc/for-next rpmsg/for-next hwspinlock/for-next v5.7-rc7 v5.7-rc6 v5.7-rc5]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url: https://github.com/0day-ci/linux/commits/Bjorn-Andersson/remoteproc-qcom-PIL-info-support/20200527-135911
base: b0523c7b1c9d0edcd6c0fe6d2cb558a9ad5c60a8
config: arm64-allyesconfig (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm64

If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>, old ones prefixed by <<):

>> drivers/remoteproc/qcom_pil_info.c:69:5: warning: no previous prototype for 'qcom_pil_info_store' [-Wmissing-prototypes]
69 | int qcom_pil_info_store(const char *image, phys_addr_t base, size_t size)
| ^~~~~~~~~~~~~~~~~~~

vim +/qcom_pil_info_store +69 drivers/remoteproc/qcom_pil_info.c

41d96cc2fee2c1 Bjorn Andersson 2020-05-26 60
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 61 /**
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 62 * qcom_pil_info_store() - store PIL information of image in IMEM
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 63 * @image: name of the image
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 64 * @base: base address of the loaded image
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 65 * @size: size of the loaded image
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 66 *
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 67 * Return: 0 on success, negative errno on failure
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 68 */
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 @69 int qcom_pil_info_store(const char *image, phys_addr_t base, size_t size)
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 70 {
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 71 char buf[PIL_RELOC_NAME_LEN];
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 72 void __iomem *entry;
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 73 int ret;
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 74 int i;
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 75
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 76 mutex_lock(&reloc_mutex);
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 77 ret = qcom_pil_info_init();
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 78 if (ret < 0) {
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 79 mutex_unlock(&reloc_mutex);
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 80 return ret;
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 81 }
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 82
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 83 for (i = 0; i < _reloc.num_entries; i++) {
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 84 entry = _reloc.base + i * sizeof(struct pil_reloc_entry);
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 85
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 86 memcpy_fromio(buf, entry, PIL_RELOC_NAME_LEN);
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 87
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 88 /*
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 89 * An empty record means we didn't find it, given that the
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 90 * records are packed.
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 91 */
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 92 if (!buf[0])
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 93 goto found_unused;
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 94
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 95 if (!strncmp(buf, image, PIL_RELOC_NAME_LEN))
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 96 goto found_existing;
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 97 }
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 98
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 99 pr_warn("insufficient PIL info slots\n");
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 100 mutex_unlock(&reloc_mutex);
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 101 return -ENOMEM;
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 102
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 103 found_unused:
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 104 memcpy_toio(entry, image, PIL_RELOC_NAME_LEN);
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 105 found_existing:
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 106 writel(base, entry + offsetof(struct pil_reloc_entry, base));
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 107 writel(size, entry + offsetof(struct pil_reloc_entry, size));
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 108 mutex_unlock(&reloc_mutex);
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 109
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 110 return 0;
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 111 }
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 112 EXPORT_SYMBOL_GPL(qcom_pil_info_store);
41d96cc2fee2c1 Bjorn Andersson 2020-05-26 113

:::::: The code at line 69 was first introduced by commit
:::::: 41d96cc2fee2c1143685357ad2929be0a7cf5d0f remoteproc: qcom: Introduce helper to store pil info in IMEM

:::::: TO: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx>
:::::: CC: 0day robot <lkp@xxxxxxxxx>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip