Re: [PATCH] smp: fix smp_call_function_single_async prototype

From: kernel test robot
Date: Thu Apr 29 2021 - 15:18:56 EST


Hi Arnd,

I love your patch! Perhaps something to improve:

[auto build test WARNING on next-20210429]
[cannot apply to linux/master soc/for-next linus/master v5.12 v5.12-rc8 v5.12-rc7 v5.12]
[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]

url: https://github.com/0day-ci/linux/commits/Arnd-Bergmann/smp-fix-smp_call_function_single_async-prototype/20210429-231235
base: 9e5cff2a1315fec1da1f497714395670366506b6
config: x86_64-randconfig-a013-20210429 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 9131a078901b00e68248a27a4f8c4b11bb1db1ae)
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
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# https://github.com/0day-ci/linux/commit/be40015a8e0990182fa440f75adecf40cf5d0062
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Arnd-Bergmann/smp-fix-smp_call_function_single_async-prototype/20210429-231235
git checkout be40015a8e0990182fa440f75adecf40cf5d0062
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=x86_64

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

All warnings (new ones prefixed by >>):

>> kernel/smp.c:515:19: warning: passing 8-byte aligned argument to 32-byte aligned parameter 1 of 'csd_lock_record' may result in an unaligned pointer access [-Walign-mismatch]
csd_lock_record(csd);
^
>> kernel/smp.c:516:14: warning: passing 8-byte aligned argument to 32-byte aligned parameter 1 of 'csd_unlock' may result in an unaligned pointer access [-Walign-mismatch]
csd_unlock(csd);
^
kernel/smp.c:525:14: warning: passing 8-byte aligned argument to 32-byte aligned parameter 1 of 'csd_unlock' may result in an unaligned pointer access [-Walign-mismatch]
csd_unlock(csd);
^
kernel/smp.c:684:6: warning: no previous prototype for function 'flush_smp_call_function_from_idle' [-Wmissing-prototypes]
void flush_smp_call_function_from_idle(void)
^
kernel/smp.c:684:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void flush_smp_call_function_from_idle(void)
^
static
4 warnings generated.


vim +/csd_lock_record +515 kernel/smp.c

4b44a21dd640b6 Peter Zijlstra 2020-05-26 498
3d4422332711ef Jens Axboe 2008-06-26 499 /*
966a967116e699 Ying Huang 2017-08-08 500 * Insert a previously allocated call_single_data_t element
0b13fda1e0936b Ingo Molnar 2009-02-25 501 * for execution on the given CPU. data must already have
0b13fda1e0936b Ingo Molnar 2009-02-25 502 * ->func, ->info, and ->flags set.
3d4422332711ef Jens Axboe 2008-06-26 503 */
be40015a8e0990 Arnd Bergmann 2021-04-29 504 static int generic_exec_single(int cpu, struct __call_single_data *csd)
3d4422332711ef Jens Axboe 2008-06-26 505 {
8053871d0f7f67 Linus Torvalds 2015-02-11 506 if (cpu == smp_processor_id()) {
4b44a21dd640b6 Peter Zijlstra 2020-05-26 507 smp_call_func_t func = csd->func;
4b44a21dd640b6 Peter Zijlstra 2020-05-26 508 void *info = csd->info;
8b28499a71d343 Frederic Weisbecker 2014-02-24 509 unsigned long flags;
8b28499a71d343 Frederic Weisbecker 2014-02-24 510
8053871d0f7f67 Linus Torvalds 2015-02-11 511 /*
8053871d0f7f67 Linus Torvalds 2015-02-11 512 * We can unlock early even for the synchronous on-stack case,
8053871d0f7f67 Linus Torvalds 2015-02-11 513 * since we're doing this from the same CPU..
8053871d0f7f67 Linus Torvalds 2015-02-11 514 */
35feb60474bf4f Paul E. McKenney 2020-06-30 @515 csd_lock_record(csd);
8053871d0f7f67 Linus Torvalds 2015-02-11 @516 csd_unlock(csd);
8b28499a71d343 Frederic Weisbecker 2014-02-24 517 local_irq_save(flags);
8b28499a71d343 Frederic Weisbecker 2014-02-24 518 func(info);
35feb60474bf4f Paul E. McKenney 2020-06-30 519 csd_lock_record(NULL);
8b28499a71d343 Frederic Weisbecker 2014-02-24 520 local_irq_restore(flags);
8b28499a71d343 Frederic Weisbecker 2014-02-24 521 return 0;
8b28499a71d343 Frederic Weisbecker 2014-02-24 522 }
8b28499a71d343 Frederic Weisbecker 2014-02-24 523
5224b9613b91d9 Linus Torvalds 2015-04-19 524 if ((unsigned)cpu >= nr_cpu_ids || !cpu_online(cpu)) {
5224b9613b91d9 Linus Torvalds 2015-04-19 525 csd_unlock(csd);
8b28499a71d343 Frederic Weisbecker 2014-02-24 526 return -ENXIO;
5224b9613b91d9 Linus Torvalds 2015-04-19 527 }
8b28499a71d343 Frederic Weisbecker 2014-02-24 528
545b8c8df41f9e Peter Zijlstra 2020-06-15 529 __smp_call_single_queue(cpu, &csd->node.llist);
3d4422332711ef Jens Axboe 2008-06-26 530
8b28499a71d343 Frederic Weisbecker 2014-02-24 531 return 0;
3d4422332711ef Jens Axboe 2008-06-26 532 }
3d4422332711ef Jens Axboe 2008-06-26 533

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

Attachment: .config.gz
Description: application/gzip