[PATCH 1/3] powerpc/va: Add a __va() variant that doesn't do input validation
kbuild test robot
lkp at intel.com
Fri May 8 11:52:05 AEST 2020
Hi "Aneesh,
I love your patch! Perhaps something to improve:
[auto build test WARNING on powerpc/next]
[also build test WARNING on v5.7-rc4 next-20200507]
[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/Aneesh-Kumar-K-V/powerpc-va-Add-a-__va-variant-that-doesn-t-do-input-validation/20200508-042829
base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
config: powerpc-allyesconfig (attached as .config)
compiler: powerpc64-linux-gcc (GCC) 9.3.0
reproduce:
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 GCC_VERSION=9.3.0 make.cross ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp at intel.com>
All warnings (new ones prefixed by >>):
arch/powerpc/platforms/powernv/opal-core.c: In function 'read_opalcore':
>> arch/powerpc/platforms/powernv/opal-core.c:199:20: warning: passing argument 1 of '__va' makes integer from pointer without a cast [-Wint-conversion]
199 | memcpy(to, __va(addr), tsz);
| ^~~~
| |
| void *
In file included from arch/powerpc/include/asm/mmu.h:132,
from arch/powerpc/include/asm/lppaca.h:47,
from arch/powerpc/include/asm/paca.h:17,
from arch/powerpc/include/asm/current.h:13,
from include/linux/thread_info.h:21,
from include/asm-generic/preempt.h:5,
from ./arch/powerpc/include/generated/asm/preempt.h:1,
from include/linux/preempt.h:78,
from include/linux/spinlock.h:51,
from include/linux/mmzone.h:8,
from include/linux/gfp.h:6,
from include/linux/mm.h:10,
from include/linux/memblock.h:13,
from arch/powerpc/platforms/powernv/opal-core.c:11:
arch/powerpc/include/asm/page.h:229:38: note: expected 'phys_addr_t' {aka 'long long unsigned int'} but argument is of type 'void *'
229 | static inline void *__va(phys_addr_t addr)
| ~~~~~~~~~~~~^~~~
vim +/__va +199 arch/powerpc/platforms/powernv/opal-core.c
6f713d18144ce86 Hari Bathini 2019-09-11 156
6f713d18144ce86 Hari Bathini 2019-09-11 157 /*
6f713d18144ce86 Hari Bathini 2019-09-11 158 * Read from the ELF header and then the crash dump.
6f713d18144ce86 Hari Bathini 2019-09-11 159 * Returns number of bytes read on success, -errno on failure.
6f713d18144ce86 Hari Bathini 2019-09-11 160 */
6f713d18144ce86 Hari Bathini 2019-09-11 161 static ssize_t read_opalcore(struct file *file, struct kobject *kobj,
6f713d18144ce86 Hari Bathini 2019-09-11 162 struct bin_attribute *bin_attr, char *to,
6f713d18144ce86 Hari Bathini 2019-09-11 163 loff_t pos, size_t count)
6f713d18144ce86 Hari Bathini 2019-09-11 164 {
6f713d18144ce86 Hari Bathini 2019-09-11 165 struct opalcore *m;
6f713d18144ce86 Hari Bathini 2019-09-11 166 ssize_t tsz, avail;
6f713d18144ce86 Hari Bathini 2019-09-11 167 loff_t tpos = pos;
6f713d18144ce86 Hari Bathini 2019-09-11 168
6f713d18144ce86 Hari Bathini 2019-09-11 169 if (pos >= oc_conf->opalcore_size)
6f713d18144ce86 Hari Bathini 2019-09-11 170 return 0;
6f713d18144ce86 Hari Bathini 2019-09-11 171
6f713d18144ce86 Hari Bathini 2019-09-11 172 /* Adjust count if it goes beyond opalcore size */
6f713d18144ce86 Hari Bathini 2019-09-11 173 avail = oc_conf->opalcore_size - pos;
6f713d18144ce86 Hari Bathini 2019-09-11 174 if (count > avail)
6f713d18144ce86 Hari Bathini 2019-09-11 175 count = avail;
6f713d18144ce86 Hari Bathini 2019-09-11 176
6f713d18144ce86 Hari Bathini 2019-09-11 177 if (count == 0)
6f713d18144ce86 Hari Bathini 2019-09-11 178 return 0;
6f713d18144ce86 Hari Bathini 2019-09-11 179
6f713d18144ce86 Hari Bathini 2019-09-11 180 /* Read ELF core header and/or PT_NOTE segment */
6f713d18144ce86 Hari Bathini 2019-09-11 181 if (tpos < oc_conf->opalcorebuf_sz) {
6f713d18144ce86 Hari Bathini 2019-09-11 182 tsz = min_t(size_t, oc_conf->opalcorebuf_sz - tpos, count);
6f713d18144ce86 Hari Bathini 2019-09-11 183 memcpy(to, oc_conf->opalcorebuf + tpos, tsz);
6f713d18144ce86 Hari Bathini 2019-09-11 184 to += tsz;
6f713d18144ce86 Hari Bathini 2019-09-11 185 tpos += tsz;
6f713d18144ce86 Hari Bathini 2019-09-11 186 count -= tsz;
6f713d18144ce86 Hari Bathini 2019-09-11 187 }
6f713d18144ce86 Hari Bathini 2019-09-11 188
6f713d18144ce86 Hari Bathini 2019-09-11 189 list_for_each_entry(m, &opalcore_list, list) {
6f713d18144ce86 Hari Bathini 2019-09-11 190 /* nothing more to read here */
6f713d18144ce86 Hari Bathini 2019-09-11 191 if (count == 0)
6f713d18144ce86 Hari Bathini 2019-09-11 192 break;
6f713d18144ce86 Hari Bathini 2019-09-11 193
6f713d18144ce86 Hari Bathini 2019-09-11 194 if (tpos < m->offset + m->size) {
6f713d18144ce86 Hari Bathini 2019-09-11 195 void *addr;
6f713d18144ce86 Hari Bathini 2019-09-11 196
6f713d18144ce86 Hari Bathini 2019-09-11 197 tsz = min_t(size_t, m->offset + m->size - tpos, count);
6f713d18144ce86 Hari Bathini 2019-09-11 198 addr = (void *)(m->paddr + tpos - m->offset);
6f713d18144ce86 Hari Bathini 2019-09-11 @199 memcpy(to, __va(addr), tsz);
6f713d18144ce86 Hari Bathini 2019-09-11 200 to += tsz;
6f713d18144ce86 Hari Bathini 2019-09-11 201 tpos += tsz;
6f713d18144ce86 Hari Bathini 2019-09-11 202 count -= tsz;
6f713d18144ce86 Hari Bathini 2019-09-11 203 }
6f713d18144ce86 Hari Bathini 2019-09-11 204 }
6f713d18144ce86 Hari Bathini 2019-09-11 205
6f713d18144ce86 Hari Bathini 2019-09-11 206 return (tpos - pos);
6f713d18144ce86 Hari Bathini 2019-09-11 207 }
6f713d18144ce86 Hari Bathini 2019-09-11 208
:::::: The code at line 199 was first introduced by commit
:::::: 6f713d18144ce86c9f01cdf64222d6339e26129e powerpc/opalcore: export /sys/firmware/opal/core for analysing opal crashes
:::::: TO: Hari Bathini <hbathini at linux.vnet.ibm.com>
:::::: CC: Michael Ellerman <mpe at ellerman.id.au>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 66039 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20200508/e15df361/attachment-0001.gz>
More information about the Linuxppc-dev
mailing list