* [nvdimm:libnvdimm-pending 284/291] arch/powerpc/include/asm/uaccess.h:336:1: error: expected '=', ',', '; ', 'asm' or '__attribute__' before '{' token
@ 2020-05-19 11:10 kbuild test robot
0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2020-05-19 11:10 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 17766 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/djbw/nvdimm.git libnvdimm-pending
head: 4e2f899e682d1e6c647651bc36bcdba3b3577485
commit: 0b25105d34e381fafc7eb9395007727bbb4661a4 [284/291] x86, powerpc: Rename memcpy_mcsafe() to copy_mc_to_{user,kernel}()
config: powerpc-defconfig (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
git checkout 0b25105d34e381fafc7eb9395007727bbb4661a4
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@intel.com>
All error/warnings (new ones prefixed by >>, old ones prefixed by <<):
In file included from include/linux/uaccess.h:11,
from include/linux/crypto.h:21,
from include/crypto/hash.h:11,
from include/linux/uio.h:10,
from include/linux/socket.h:8,
from include/linux/compat.h:15,
from arch/powerpc/kernel/asm-offsets.c:14:
>> arch/powerpc/include/asm/uaccess.h:332:1: warning: no previous prototype for 'copy_mc_generic' [-Wmissing-prototypes]
332 | copy_mc_generic(void *to, const void *from, unsigned long size)
| ^~~~~~~~~~~~~~~
arch/powerpc/include/asm/uaccess.h: In function 'copy_mc_generic':
>> arch/powerpc/include/asm/uaccess.h:336:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
336 | {
| ^
arch/powerpc/include/asm/uaccess.h:343:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
343 | {
| ^
arch/powerpc/include/asm/uaccess.h:359:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
359 | {
| ^
arch/powerpc/include/asm/uaccess.h:372:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
372 | {
| ^
arch/powerpc/include/asm/uaccess.h:408:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
408 | {
| ^
arch/powerpc/include/asm/uaccess.h:435:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
435 | {
| ^
arch/powerpc/include/asm/uaccess.h:447:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
447 | {
| ^
arch/powerpc/include/asm/uaccess.h:459:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
459 | {
| ^
>> arch/powerpc/include/asm/uaccess.h:463:13: error: storage class specified for parameter 'strncpy_from_user'
463 | extern long strncpy_from_user(char *dst, const char __user *src, long count);
| ^~~~~~~~~~~~~~~~~
>> arch/powerpc/include/asm/uaccess.h:464:26: error: storage class specified for parameter 'strnlen_user'
464 | extern __must_check long strnlen_user(const char __user *str, long n);
| ^~~~~~~~~~~~
>> arch/powerpc/include/asm/uaccess.h:466:13: error: storage class specified for parameter '__copy_from_user_flushcache'
466 | extern long __copy_from_user_flushcache(void *dst, const void __user *src,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>> arch/powerpc/include/asm/uaccess.h:468:13: error: storage class specified for parameter 'memcpy_page_flushcache'
468 | extern void memcpy_page_flushcache(char *to, struct page *page, size_t offset,
| ^~~~~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/uaccess.h:472:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
472 | {
| ^
In file included from include/linux/crypto.h:21,
from include/crypto/hash.h:11,
from include/linux/uio.h:10,
from include/linux/socket.h:8,
from include/linux/compat.h:15,
from arch/powerpc/kernel/asm-offsets.c:14:
>> include/linux/uaccess.h:60:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
60 | {
| ^
include/linux/uaccess.h:68:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
68 | {
| ^
include/linux/uaccess.h:90:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
90 | {
| ^
include/linux/uaccess.h:98:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
98 | {
| ^
>> include/linux/uaccess.h:121:1: error: storage class specified for parameter '_copy_from_user'
121 | _copy_from_user(void *, const void __user *, unsigned long);
| ^~~~~~~~~~~~~~~
>> include/linux/uaccess.h:137:1: error: storage class specified for parameter '_copy_to_user'
137 | _copy_to_user(void __user *, const void *, unsigned long);
| ^~~~~~~~~~~~~
include/linux/uaccess.h:142:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
142 | {
| ^
include/linux/uaccess.h:150:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
150 | {
| ^
include/linux/uaccess.h:158:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
158 | {
| ^
include/linux/uaccess.h:176:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
176 | {
| ^
include/linux/uaccess.h:181:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
181 | {
| ^
include/linux/uaccess.h:193:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
193 | {
| ^
include/linux/uaccess.h:203:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
203 | {
| ^
include/linux/uaccess.h:216:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
216 | {
| ^
include/linux/uaccess.h:237:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
237 | {
| ^
>> include/linux/uaccess.h:243:25: error: storage class specified for parameter 'check_zeroed_user'
243 | extern __must_check int check_zeroed_user(const void __user *from, size_t size);
| ^~~~~~~~~~~~~~~~~
include/linux/uaccess.h:295:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
295 | {
| ^
>> include/linux/uaccess.h:322:13: error: storage class specified for parameter 'probe_kernel_read'
322 | extern long probe_kernel_read(void *dst, const void *src, size_t size);
| ^~~~~~~~~~~~~~~~~
>> include/linux/uaccess.h:323:13: error: storage class specified for parameter 'probe_kernel_read_strict'
323 | extern long probe_kernel_read_strict(void *dst, const void *src, size_t size);
| ^~~~~~~~~~~~~~~~~~~~~~~~
>> include/linux/uaccess.h:324:13: error: storage class specified for parameter '__probe_kernel_read'
324 | extern long __probe_kernel_read(void *dst, const void *src, size_t size);
| ^~~~~~~~~~~~~~~~~~~
>> include/linux/uaccess.h:335:13: error: storage class specified for parameter 'probe_user_read'
335 | extern long probe_user_read(void *dst, const void __user *src, size_t size);
| ^~~~~~~~~~~~~~~
>> include/linux/uaccess.h:336:13: error: storage class specified for parameter '__probe_user_read'
336 | extern long __probe_user_read(void *dst, const void __user *src, size_t size);
| ^~~~~~~~~~~~~~~~~
>> include/linux/uaccess.h:347:21: error: storage class specified for parameter 'probe_kernel_write'
347 | extern long notrace probe_kernel_write(void *dst, const void *src, size_t size);
| ^~~~~~~~~~~~~~~~~~
>> include/linux/uaccess.h:347:21: error: 'no_instrument_function' attribute applies only to functions
>> include/linux/uaccess.h:348:21: error: storage class specified for parameter '__probe_kernel_write'
348 | extern long notrace __probe_kernel_write(void *dst, const void *src, size_t size);
| ^~~~~~~~~~~~~~~~~~~~
include/linux/uaccess.h:348:21: error: 'no_instrument_function' attribute applies only to functions
>> include/linux/uaccess.h:359:21: error: storage class specified for parameter 'probe_user_write'
359 | extern long notrace probe_user_write(void __user *dst, const void *src, size_t size);
| ^~~~~~~~~~~~~~~~
include/linux/uaccess.h:359:21: error: 'no_instrument_function' attribute applies only to functions
>> include/linux/uaccess.h:360:21: error: storage class specified for parameter '__probe_user_write'
360 | extern long notrace __probe_user_write(void __user *dst, const void *src, size_t size);
| ^~~~~~~~~~~~~~~~~~
include/linux/uaccess.h:360:21: error: 'no_instrument_function' attribute applies only to functions
include/linux/uaccess.h:362:13: error: storage class specified for parameter 'strncpy_from_unsafe'
362 | extern long strncpy_from_unsafe(char *dst, const void *unsafe_addr, long count);
| ^~~~~~~~~~~~~~~~~~~
include/linux/uaccess.h:363:13: error: storage class specified for parameter 'strncpy_from_unsafe_strict'
363 | extern long strncpy_from_unsafe_strict(char *dst, const void *unsafe_addr,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/uaccess.h:365:13: error: storage class specified for parameter '__strncpy_from_unsafe'
365 | extern long __strncpy_from_unsafe(char *dst, const void *unsafe_addr, long count);
| ^~~~~~~~~~~~~~~~~~~~~
include/linux/uaccess.h:366:13: error: storage class specified for parameter 'strncpy_from_unsafe_user'
366 | extern long strncpy_from_unsafe_user(char *dst, const void __user *unsafe_addr,
| ^~~~~~~~~~~~~~~~~~~~~~~~
include/linux/uaccess.h:368:13: error: storage class specified for parameter 'strnlen_unsafe_user'
368 | extern long strnlen_unsafe_user(const void __user *unsafe_addr, long count);
| ^~~~~~~~~~~~~~~~~~~
In file included from include/crypto/hash.h:11,
from include/linux/uio.h:10,
from include/linux/socket.h:8,
from include/linux/compat.h:15,
from arch/powerpc/kernel/asm-offsets.c:14:
include/linux/crypto.h:131:1: warning: empty declaration
131 | struct scatterlist;
| ^~~~~~
include/linux/crypto.h:132:1: warning: empty declaration
132 | struct crypto_async_request;
| ^~~~~~
include/linux/crypto.h:133:1: warning: empty declaration
133 | struct crypto_tfm;
| ^~~~~~
include/linux/crypto.h:134:1: warning: empty declaration
134 | struct crypto_type;
| ^~~~~~
include/linux/crypto.h:136:16: error: storage class specified for parameter 'crypto_completion_t'
136 | typedef void (*crypto_completion_t)(struct crypto_async_request *req, int err);
| ^~~~~~~~~~~~~~~~~~~
include/linux/crypto.h:147:2: error: expected specifier-qualifier-list before 'crypto_completion_t'
147 | crypto_completion_t complete;
| ^~~~~~~~~~~~~~~~~~~
include/linux/crypto.h:145:1: warning: empty declaration
145 | struct crypto_async_request {
| ^~~~~~
include/linux/crypto.h:208:1: warning: empty declaration
208 | struct cipher_alg {
| ^~~~~~
include/linux/crypto.h:228:1: warning: empty declaration
228 | struct compress_alg {
| ^~~~~~
include/linux/crypto.h:435:1: warning: empty declaration
435 | struct crypto_alg {
| ^~~~~~
include/linux/crypto.h:499:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
499 | {}
| ^
include/linux/crypto.h:501:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
501 | {}
| ^
include/linux/crypto.h:503:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
503 | {}
| ^
include/linux/crypto.h:505:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
505 | {}
| ^
include/linux/crypto.h:507:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
507 | {}
| ^
include/linux/crypto.h:509:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
509 | {}
| ^
include/linux/crypto.h:511:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
511 | {}
| ^
include/linux/crypto.h:513:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
513 | {}
| ^
include/linux/crypto.h:515:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
515 | {}
| ^
include/linux/crypto.h:517:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
517 | {}
| ^
include/linux/crypto.h:519:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
519 | {}
| ^
include/linux/crypto.h:521:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
521 | {}
| ^
include/linux/crypto.h:523:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
523 | {}
| ^
include/linux/crypto.h:525:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
525 | {}
| ^
include/linux/crypto.h:527:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
527 | {}
| ^
include/linux/crypto.h:529:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
529 | {}
vim +336 arch/powerpc/include/asm/uaccess.h
326
327 extern unsigned long __copy_tofrom_user(void __user *to,
328 const void __user *from, unsigned long size);
329
330 #ifdef CONFIG_ARCH_HAS_COPY_MC
331 extern unsigned long __must_check
> 332 copy_mc_generic(void *to, const void *from, unsigned long size)
333
334 static __always_inline unsigned long __must_check
335 copy_mc_to_kernel(void *to, const void *from, unsigned long size)
> 336 {
337 return copy_mc_generic(to, from, size);
338 }
339 #define copy_mc_to_kernel copy_mc_to_kernel
340
341 static __always_inline unsigned long __must_check
342 copy_mc_to_user(void __user *to, const void *from, unsigned long n)
343 {
344 if (likely(check_copy_size(from, n, true))) {
345 if (access_ok(to, n)) {
346 allow_write_to_user(to, n);
347 n = copy_mc_generic((void *)to, from, n);
348 prevent_write_to_user(to, n);
349 }
350 }
351
352 return n;
353 }
354 #endif
355
356 #ifdef __powerpc64__
357 static inline unsigned long
358 raw_copy_in_user(void __user *to, const void __user *from, unsigned long n)
359 {
360 unsigned long ret;
361
362 barrier_nospec();
363 allow_read_write_user(to, from, n);
364 ret = __copy_tofrom_user(to, from, n);
365 prevent_read_write_user(to, from, n);
366 return ret;
367 }
368 #endif /* __powerpc64__ */
369
370 static inline unsigned long raw_copy_from_user(void *to,
371 const void __user *from, unsigned long n)
372 {
373 unsigned long ret;
374 if (__builtin_constant_p(n) && (n <= 8)) {
375 ret = 1;
376
377 switch (n) {
378 case 1:
379 barrier_nospec();
380 __get_user_size(*(u8 *)to, from, 1, ret);
381 break;
382 case 2:
383 barrier_nospec();
384 __get_user_size(*(u16 *)to, from, 2, ret);
385 break;
386 case 4:
387 barrier_nospec();
388 __get_user_size(*(u32 *)to, from, 4, ret);
389 break;
390 case 8:
391 barrier_nospec();
392 __get_user_size(*(u64 *)to, from, 8, ret);
393 break;
394 }
395 if (ret == 0)
396 return 0;
397 }
398
399 barrier_nospec();
400 allow_read_from_user(from, n);
401 ret = __copy_tofrom_user((__force void __user *)to, from, n);
402 prevent_read_from_user(from, n);
403 return ret;
404 }
405
406 static inline unsigned long
407 raw_copy_to_user_allowed(void __user *to, const void *from, unsigned long n)
408 {
409 if (__builtin_constant_p(n) && (n <= 8)) {
410 unsigned long ret = 1;
411
412 switch (n) {
413 case 1:
414 __put_user_size_allowed(*(u8 *)from, (u8 __user *)to, 1, ret);
415 break;
416 case 2:
417 __put_user_size_allowed(*(u16 *)from, (u16 __user *)to, 2, ret);
418 break;
419 case 4:
420 __put_user_size_allowed(*(u32 *)from, (u32 __user *)to, 4, ret);
421 break;
422 case 8:
423 __put_user_size_allowed(*(u64 *)from, (u64 __user *)to, 8, ret);
424 break;
425 }
426 if (ret == 0)
427 return 0;
428 }
429
430 return __copy_tofrom_user(to, (__force const void __user *)from, n);
431 }
432
433 static inline unsigned long
434 raw_copy_to_user(void __user *to, const void *from, unsigned long n)
435 {
436 unsigned long ret;
437
438 allow_write_to_user(to, n);
439 ret = raw_copy_to_user_allowed(to, from, n);
440 prevent_write_to_user(to, n);
441 return ret;
442 }
443
444 unsigned long __arch_clear_user(void __user *addr, unsigned long size);
445
446 static inline unsigned long clear_user(void __user *addr, unsigned long size)
447 {
448 unsigned long ret = size;
449 might_fault();
450 if (likely(access_ok(addr, size))) {
451 allow_write_to_user(addr, size);
452 ret = __arch_clear_user(addr, size);
453 prevent_write_to_user(addr, size);
454 }
455 return ret;
456 }
457
458 static inline unsigned long __clear_user(void __user *addr, unsigned long size)
459 {
460 return clear_user(addr, size);
461 }
462
> 463 extern long strncpy_from_user(char *dst, const char __user *src, long count);
> 464 extern __must_check long strnlen_user(const char __user *str, long n);
465
> 466 extern long __copy_from_user_flushcache(void *dst, const void __user *src,
467 unsigned size);
> 468 extern void memcpy_page_flushcache(char *to, struct page *page, size_t offset,
469 size_t len);
470
---
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: 26143 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2020-05-19 11:10 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-19 11:10 [nvdimm:libnvdimm-pending 284/291] arch/powerpc/include/asm/uaccess.h:336:1: error: expected '=', ',', '; ', 'asm' or '__attribute__' before '{' token kbuild test robot
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.