From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: [arnd-playground:asm-generic-uaccess-4 1/7] arch/um/kernel/skas/uaccess.c:211:15: error: '__strncpy_from_user' undeclared here (not in a function); did you mean 'strncpy_from_user'?
Date: Wed, 21 Jul 2021 03:50:33 +0800 [thread overview]
Message-ID: <202107210320.SCJ12EAT-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 7533 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git asm-generic-uaccess-4
head: d7d80410412f516869e09904cffd817acaeec742
commit: d6c30cddd046b12ea68ec67c50bac29cae3da28c [1/7] asm-generic/uaccess.h: remove __strncpy_from_user/__strnlen_user
config: um-x86_64_defconfig (attached as .config)
compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0
reproduce (this is a W=1 build):
# https://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git/commit/?id=d6c30cddd046b12ea68ec67c50bac29cae3da28c
git remote add arnd-playground https://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git
git fetch --no-tags arnd-playground asm-generic-uaccess-4
git checkout d6c30cddd046b12ea68ec67c50bac29cae3da28c
# save the attached .config to linux build tree
mkdir build_dir
make W=1 O=build_dir ARCH=um SUBARCH=x86_64 SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All error/warnings (new ones prefixed by >>):
In file included from include/linux/linkage.h:7,
from include/linux/fs.h:5,
from include/linux/highmem.h:5,
from arch/um/kernel/skas/uaccess.c:7:
>> arch/um/kernel/skas/uaccess.c:211:15: error: '__strncpy_from_user' undeclared here (not in a function); did you mean 'strncpy_from_user'?
211 | EXPORT_SYMBOL(__strncpy_from_user);
| ^~~~~~~~~~~~~~~~~~~
include/linux/export.h:98:16: note: in definition of macro '___EXPORT_SYMBOL'
98 | extern typeof(sym) sym; \
| ^~~
include/linux/export.h:160:34: note: in expansion of macro '__EXPORT_SYMBOL'
160 | #define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
| ^~~~~~~~~~~~~~~
include/linux/export.h:163:29: note: in expansion of macro '_EXPORT_SYMBOL'
163 | #define EXPORT_SYMBOL(sym) _EXPORT_SYMBOL(sym, "")
| ^~~~~~~~~~~~~~
arch/um/kernel/skas/uaccess.c:211:1: note: in expansion of macro 'EXPORT_SYMBOL'
211 | EXPORT_SYMBOL(__strncpy_from_user);
| ^~~~~~~~~~~~~
>> arch/um/kernel/skas/uaccess.c:242:6: warning: no previous prototype for '__strnlen_user' [-Wmissing-prototypes]
242 | long __strnlen_user(const void __user *str, long len)
| ^~~~~~~~~~~~~~
vim +211 arch/um/kernel/skas/uaccess.c
^1da177e4c3f41 Linus Torvalds 2005-04-16 191
d6c30cddd046b1 Arnd Bergmann 2020-01-16 192 long strncpy_from_user(char *dst, const char __user *src, long count)
^1da177e4c3f41 Linus Torvalds 2005-04-16 193 {
f8d65d27e677da Richard Weinberger 2015-05-12 194 long n;
^1da177e4c3f41 Linus Torvalds 2005-04-16 195 char *ptr = dst;
^1da177e4c3f41 Linus Torvalds 2005-04-16 196
d6c30cddd046b1 Arnd Bergmann 2020-01-16 197 if (!access_ok(src, 1))
d6c30cddd046b1 Arnd Bergmann 2020-01-16 198 return -EFAULT;
d6c30cddd046b1 Arnd Bergmann 2020-01-16 199
db68ce10c4f0a2 Al Viro 2017-03-20 200 if (uaccess_kernel()) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 201 strncpy(dst, (__force void *) src, count);
8ca842c4b5cbc7 Jeff Dike 2007-10-16 202 return strnlen(dst, count);
^1da177e4c3f41 Linus Torvalds 2005-04-16 203 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 204
^1da177e4c3f41 Linus Torvalds 2005-04-16 205 n = buffer_op((unsigned long) src, count, 0, strncpy_chunk_from_user,
^1da177e4c3f41 Linus Torvalds 2005-04-16 206 &ptr);
^1da177e4c3f41 Linus Torvalds 2005-04-16 207 if (n != 0)
8ca842c4b5cbc7 Jeff Dike 2007-10-16 208 return -EFAULT;
8ca842c4b5cbc7 Jeff Dike 2007-10-16 209 return strnlen(dst, count);
^1da177e4c3f41 Linus Torvalds 2005-04-16 210 }
f8d65d27e677da Richard Weinberger 2015-05-12 @211 EXPORT_SYMBOL(__strncpy_from_user);
^1da177e4c3f41 Linus Torvalds 2005-04-16 212
^1da177e4c3f41 Linus Torvalds 2005-04-16 213 static int clear_chunk(unsigned long addr, int len, void *unused)
^1da177e4c3f41 Linus Torvalds 2005-04-16 214 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 215 memset((void *) addr, 0, len);
8ca842c4b5cbc7 Jeff Dike 2007-10-16 216 return 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 217 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 218
f8d65d27e677da Richard Weinberger 2015-05-12 219 unsigned long __clear_user(void __user *mem, unsigned long len)
^1da177e4c3f41 Linus Torvalds 2005-04-16 220 {
db68ce10c4f0a2 Al Viro 2017-03-20 221 if (uaccess_kernel()) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 222 memset((__force void*)mem, 0, len);
8ca842c4b5cbc7 Jeff Dike 2007-10-16 223 return 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 224 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 225
f8d65d27e677da Richard Weinberger 2015-05-12 226 return buffer_op((unsigned long) mem, len, 1, clear_chunk, NULL);
^1da177e4c3f41 Linus Torvalds 2005-04-16 227 }
f8d65d27e677da Richard Weinberger 2015-05-12 228 EXPORT_SYMBOL(__clear_user);
^1da177e4c3f41 Linus Torvalds 2005-04-16 229
^1da177e4c3f41 Linus Torvalds 2005-04-16 230 static int strnlen_chunk(unsigned long str, int len, void *arg)
^1da177e4c3f41 Linus Torvalds 2005-04-16 231 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 232 int *len_ptr = arg, n;
^1da177e4c3f41 Linus Torvalds 2005-04-16 233
^1da177e4c3f41 Linus Torvalds 2005-04-16 234 n = strnlen((void *) str, len);
^1da177e4c3f41 Linus Torvalds 2005-04-16 235 *len_ptr += n;
^1da177e4c3f41 Linus Torvalds 2005-04-16 236
^1da177e4c3f41 Linus Torvalds 2005-04-16 237 if (n < len)
8ca842c4b5cbc7 Jeff Dike 2007-10-16 238 return 1;
8ca842c4b5cbc7 Jeff Dike 2007-10-16 239 return 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 240 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 241
f8d65d27e677da Richard Weinberger 2015-05-12 @242 long __strnlen_user(const void __user *str, long len)
^1da177e4c3f41 Linus Torvalds 2005-04-16 243 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 244 int count = 0, n;
^1da177e4c3f41 Linus Torvalds 2005-04-16 245
db68ce10c4f0a2 Al Viro 2017-03-20 246 if (uaccess_kernel())
8ca842c4b5cbc7 Jeff Dike 2007-10-16 247 return strnlen((__force char*)str, len) + 1;
^1da177e4c3f41 Linus Torvalds 2005-04-16 248
^1da177e4c3f41 Linus Torvalds 2005-04-16 249 n = buffer_op((unsigned long) str, len, 0, strnlen_chunk, &count);
^1da177e4c3f41 Linus Torvalds 2005-04-16 250 if (n == 0)
8ca842c4b5cbc7 Jeff Dike 2007-10-16 251 return count + 1;
3179ce7254ffa4 Richard Weinberger 2013-05-11 252 return 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 253 }
f8d65d27e677da Richard Weinberger 2015-05-12 254 EXPORT_SYMBOL(__strnlen_user);
dd3035a21ba7cc Anton Ivanov 2021-03-12 255
:::::: The code@line 211 was first introduced by commit
:::::: f8d65d27e677da0ce33de570e3068308a77ed2b1 um: Rework uaccess code
:::::: TO: Richard Weinberger <richard@nod.at>
:::::: CC: Richard Weinberger <richard@nod.at>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 9549 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org
Subject: [arnd-playground:asm-generic-uaccess-4 1/7] arch/um/kernel/skas/uaccess.c:211:15: error: '__strncpy_from_user' undeclared here (not in a function); did you mean 'strncpy_from_user'?
Date: Wed, 21 Jul 2021 03:50:33 +0800 [thread overview]
Message-ID: <202107210320.SCJ12EAT-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 7414 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git asm-generic-uaccess-4
head: d7d80410412f516869e09904cffd817acaeec742
commit: d6c30cddd046b12ea68ec67c50bac29cae3da28c [1/7] asm-generic/uaccess.h: remove __strncpy_from_user/__strnlen_user
config: um-x86_64_defconfig (attached as .config)
compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0
reproduce (this is a W=1 build):
# https://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git/commit/?id=d6c30cddd046b12ea68ec67c50bac29cae3da28c
git remote add arnd-playground https://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git
git fetch --no-tags arnd-playground asm-generic-uaccess-4
git checkout d6c30cddd046b12ea68ec67c50bac29cae3da28c
# save the attached .config to linux build tree
mkdir build_dir
make W=1 O=build_dir ARCH=um SUBARCH=x86_64 SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All error/warnings (new ones prefixed by >>):
In file included from include/linux/linkage.h:7,
from include/linux/fs.h:5,
from include/linux/highmem.h:5,
from arch/um/kernel/skas/uaccess.c:7:
>> arch/um/kernel/skas/uaccess.c:211:15: error: '__strncpy_from_user' undeclared here (not in a function); did you mean 'strncpy_from_user'?
211 | EXPORT_SYMBOL(__strncpy_from_user);
| ^~~~~~~~~~~~~~~~~~~
include/linux/export.h:98:16: note: in definition of macro '___EXPORT_SYMBOL'
98 | extern typeof(sym) sym; \
| ^~~
include/linux/export.h:160:34: note: in expansion of macro '__EXPORT_SYMBOL'
160 | #define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
| ^~~~~~~~~~~~~~~
include/linux/export.h:163:29: note: in expansion of macro '_EXPORT_SYMBOL'
163 | #define EXPORT_SYMBOL(sym) _EXPORT_SYMBOL(sym, "")
| ^~~~~~~~~~~~~~
arch/um/kernel/skas/uaccess.c:211:1: note: in expansion of macro 'EXPORT_SYMBOL'
211 | EXPORT_SYMBOL(__strncpy_from_user);
| ^~~~~~~~~~~~~
>> arch/um/kernel/skas/uaccess.c:242:6: warning: no previous prototype for '__strnlen_user' [-Wmissing-prototypes]
242 | long __strnlen_user(const void __user *str, long len)
| ^~~~~~~~~~~~~~
vim +211 arch/um/kernel/skas/uaccess.c
^1da177e4c3f41 Linus Torvalds 2005-04-16 191
d6c30cddd046b1 Arnd Bergmann 2020-01-16 192 long strncpy_from_user(char *dst, const char __user *src, long count)
^1da177e4c3f41 Linus Torvalds 2005-04-16 193 {
f8d65d27e677da Richard Weinberger 2015-05-12 194 long n;
^1da177e4c3f41 Linus Torvalds 2005-04-16 195 char *ptr = dst;
^1da177e4c3f41 Linus Torvalds 2005-04-16 196
d6c30cddd046b1 Arnd Bergmann 2020-01-16 197 if (!access_ok(src, 1))
d6c30cddd046b1 Arnd Bergmann 2020-01-16 198 return -EFAULT;
d6c30cddd046b1 Arnd Bergmann 2020-01-16 199
db68ce10c4f0a2 Al Viro 2017-03-20 200 if (uaccess_kernel()) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 201 strncpy(dst, (__force void *) src, count);
8ca842c4b5cbc7 Jeff Dike 2007-10-16 202 return strnlen(dst, count);
^1da177e4c3f41 Linus Torvalds 2005-04-16 203 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 204
^1da177e4c3f41 Linus Torvalds 2005-04-16 205 n = buffer_op((unsigned long) src, count, 0, strncpy_chunk_from_user,
^1da177e4c3f41 Linus Torvalds 2005-04-16 206 &ptr);
^1da177e4c3f41 Linus Torvalds 2005-04-16 207 if (n != 0)
8ca842c4b5cbc7 Jeff Dike 2007-10-16 208 return -EFAULT;
8ca842c4b5cbc7 Jeff Dike 2007-10-16 209 return strnlen(dst, count);
^1da177e4c3f41 Linus Torvalds 2005-04-16 210 }
f8d65d27e677da Richard Weinberger 2015-05-12 @211 EXPORT_SYMBOL(__strncpy_from_user);
^1da177e4c3f41 Linus Torvalds 2005-04-16 212
^1da177e4c3f41 Linus Torvalds 2005-04-16 213 static int clear_chunk(unsigned long addr, int len, void *unused)
^1da177e4c3f41 Linus Torvalds 2005-04-16 214 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 215 memset((void *) addr, 0, len);
8ca842c4b5cbc7 Jeff Dike 2007-10-16 216 return 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 217 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 218
f8d65d27e677da Richard Weinberger 2015-05-12 219 unsigned long __clear_user(void __user *mem, unsigned long len)
^1da177e4c3f41 Linus Torvalds 2005-04-16 220 {
db68ce10c4f0a2 Al Viro 2017-03-20 221 if (uaccess_kernel()) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 222 memset((__force void*)mem, 0, len);
8ca842c4b5cbc7 Jeff Dike 2007-10-16 223 return 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 224 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 225
f8d65d27e677da Richard Weinberger 2015-05-12 226 return buffer_op((unsigned long) mem, len, 1, clear_chunk, NULL);
^1da177e4c3f41 Linus Torvalds 2005-04-16 227 }
f8d65d27e677da Richard Weinberger 2015-05-12 228 EXPORT_SYMBOL(__clear_user);
^1da177e4c3f41 Linus Torvalds 2005-04-16 229
^1da177e4c3f41 Linus Torvalds 2005-04-16 230 static int strnlen_chunk(unsigned long str, int len, void *arg)
^1da177e4c3f41 Linus Torvalds 2005-04-16 231 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 232 int *len_ptr = arg, n;
^1da177e4c3f41 Linus Torvalds 2005-04-16 233
^1da177e4c3f41 Linus Torvalds 2005-04-16 234 n = strnlen((void *) str, len);
^1da177e4c3f41 Linus Torvalds 2005-04-16 235 *len_ptr += n;
^1da177e4c3f41 Linus Torvalds 2005-04-16 236
^1da177e4c3f41 Linus Torvalds 2005-04-16 237 if (n < len)
8ca842c4b5cbc7 Jeff Dike 2007-10-16 238 return 1;
8ca842c4b5cbc7 Jeff Dike 2007-10-16 239 return 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 240 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 241
f8d65d27e677da Richard Weinberger 2015-05-12 @242 long __strnlen_user(const void __user *str, long len)
^1da177e4c3f41 Linus Torvalds 2005-04-16 243 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 244 int count = 0, n;
^1da177e4c3f41 Linus Torvalds 2005-04-16 245
db68ce10c4f0a2 Al Viro 2017-03-20 246 if (uaccess_kernel())
8ca842c4b5cbc7 Jeff Dike 2007-10-16 247 return strnlen((__force char*)str, len) + 1;
^1da177e4c3f41 Linus Torvalds 2005-04-16 248
^1da177e4c3f41 Linus Torvalds 2005-04-16 249 n = buffer_op((unsigned long) str, len, 0, strnlen_chunk, &count);
^1da177e4c3f41 Linus Torvalds 2005-04-16 250 if (n == 0)
8ca842c4b5cbc7 Jeff Dike 2007-10-16 251 return count + 1;
3179ce7254ffa4 Richard Weinberger 2013-05-11 252 return 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 253 }
f8d65d27e677da Richard Weinberger 2015-05-12 254 EXPORT_SYMBOL(__strnlen_user);
dd3035a21ba7cc Anton Ivanov 2021-03-12 255
:::::: The code at line 211 was first introduced by commit
:::::: f8d65d27e677da0ce33de570e3068308a77ed2b1 um: Rework uaccess code
:::::: TO: Richard Weinberger <richard@nod.at>
:::::: CC: Richard Weinberger <richard@nod.at>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 9549 bytes --]
next reply other threads:[~2021-07-20 19:50 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-20 19:50 kernel test robot [this message]
2021-07-20 19:50 ` [arnd-playground:asm-generic-uaccess-4 1/7] arch/um/kernel/skas/uaccess.c:211:15: error: '__strncpy_from_user' undeclared here (not in a function); did you mean 'strncpy_from_user'? kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202107210320.SCJ12EAT-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.