drivers/android/binder.c:5015:13: warning: stack frame size of 2160 bytes in function 'binder_ioctl'

From: kernel test robot
Date: Fri Dec 04 2020 - 07:13:18 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: bbe2ba04c5a92a49db8a42c850a5a2f6481e47eb
commit: ee0a49a6870ea75e25b4d4984c1bb6b3b7c65f2b powerpc/uaccess: Switch __put_user_size_allowed() to __put_user_asm_goto()
date: 3 months ago
config: powerpc-randconfig-r016-20201204 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 32c501dd88b62787d3a5ffda7aabcf4650dbe3cd)
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 powerpc cross compiling tool for clang build
# apt-get install binutils-powerpc-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ee0a49a6870ea75e25b4d4984c1bb6b3b7c65f2b
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout ee0a49a6870ea75e25b4d4984c1bb6b3b7c65f2b
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc

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

All warnings (new ones prefixed by >>):

>> drivers/android/binder.c:5015:13: warning: stack frame size of 2160 bytes in function 'binder_ioctl' [-Wframe-larger-than=]
static long binder_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
^
1 warning generated.

vim +/binder_ioctl +5015 drivers/android/binder.c

abcc61537e3566 drivers/android/binder.c Colin Cross 2017-08-31 5014
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 @5015 static long binder_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5016 {
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5017 int ret;
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5018 struct binder_proc *proc = filp->private_data;
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5019 struct binder_thread *thread;
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5020 unsigned int size = _IOC_SIZE(cmd);
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5021 void __user *ubuf = (void __user *)arg;
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5022
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5023 /*pr_info("binder_ioctl: %d:%d %x %lx\n",
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5024 proc->pid, current->pid, cmd, arg);*/
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5025
4175e2b46fd4b9 drivers/android/binder.c Sherry Yang 2017-08-23 5026 binder_selftest_alloc(&proc->alloc);
4175e2b46fd4b9 drivers/android/binder.c Sherry Yang 2017-08-23 5027
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5028 trace_binder_ioctl(cmd, arg);
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5029
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5030 ret = wait_event_interruptible(binder_user_error_wait, binder_stop_on_user_error < 2);
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5031 if (ret)
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5032 goto err_unlocked;
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5033
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5034 thread = binder_get_thread(proc);
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5035 if (thread == NULL) {
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5036 ret = -ENOMEM;
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5037 goto err;
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5038 }
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5039
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5040 switch (cmd) {
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5041 case BINDER_WRITE_READ:
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5042 ret = binder_ioctl_write_read(filp, cmd, arg, thread);
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5043 if (ret)
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5044 goto err;
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5045 break;
b3e6861283790d drivers/android/binder.c Todd Kjos 2017-06-29 5046 case BINDER_SET_MAX_THREADS: {
b3e6861283790d drivers/android/binder.c Todd Kjos 2017-06-29 5047 int max_threads;
b3e6861283790d drivers/android/binder.c Todd Kjos 2017-06-29 5048
b3e6861283790d drivers/android/binder.c Todd Kjos 2017-06-29 5049 if (copy_from_user(&max_threads, ubuf,
b3e6861283790d drivers/android/binder.c Todd Kjos 2017-06-29 5050 sizeof(max_threads))) {
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5051 ret = -EINVAL;
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5052 goto err;
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5053 }
b3e6861283790d drivers/android/binder.c Todd Kjos 2017-06-29 5054 binder_inner_proc_lock(proc);
b3e6861283790d drivers/android/binder.c Todd Kjos 2017-06-29 5055 proc->max_threads = max_threads;
b3e6861283790d drivers/android/binder.c Todd Kjos 2017-06-29 5056 binder_inner_proc_unlock(proc);
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5057 break;
b3e6861283790d drivers/android/binder.c Todd Kjos 2017-06-29 5058 }
ec74136ded792d drivers/android/binder.c Todd Kjos 2019-01-14 5059 case BINDER_SET_CONTEXT_MGR_EXT: {
ec74136ded792d drivers/android/binder.c Todd Kjos 2019-01-14 5060 struct flat_binder_object fbo;
ec74136ded792d drivers/android/binder.c Todd Kjos 2019-01-14 5061
ec74136ded792d drivers/android/binder.c Todd Kjos 2019-01-14 5062 if (copy_from_user(&fbo, ubuf, sizeof(fbo))) {
ec74136ded792d drivers/android/binder.c Todd Kjos 2019-01-14 5063 ret = -EINVAL;
ec74136ded792d drivers/android/binder.c Todd Kjos 2019-01-14 5064 goto err;
ec74136ded792d drivers/android/binder.c Todd Kjos 2019-01-14 5065 }
ec74136ded792d drivers/android/binder.c Todd Kjos 2019-01-14 5066 ret = binder_ioctl_set_ctx_mgr(filp, &fbo);
ec74136ded792d drivers/android/binder.c Todd Kjos 2019-01-14 5067 if (ret)
ec74136ded792d drivers/android/binder.c Todd Kjos 2019-01-14 5068 goto err;
ec74136ded792d drivers/android/binder.c Todd Kjos 2019-01-14 5069 break;
ec74136ded792d drivers/android/binder.c Todd Kjos 2019-01-14 5070 }
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5071 case BINDER_SET_CONTEXT_MGR:
ec74136ded792d drivers/android/binder.c Todd Kjos 2019-01-14 5072 ret = binder_ioctl_set_ctx_mgr(filp, NULL);
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5073 if (ret)
78260ac625e91d drivers/staging/android/binder.c Tair Rzayev 2014-06-03 5074 goto err;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 5075 break;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 5076 case BINDER_THREAD_EXIT:
56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012-10-30 5077 binder_debug(BINDER_DEBUG_THREADS, "%d:%d exit\n",
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 5078 proc->pid, thread->pid);
7a4408c6bd3eb1 drivers/android/binder.c Todd Kjos 2017-06-29 5079 binder_thread_release(proc, thread);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 5080 thread = NULL;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 5081 break;
36c89c0a6bebaf drivers/staging/android/binder.c Mathieu Maret 2014-04-15 5082 case BINDER_VERSION: {
36c89c0a6bebaf drivers/staging/android/binder.c Mathieu Maret 2014-04-15 5083 struct binder_version __user *ver = ubuf;
36c89c0a6bebaf drivers/staging/android/binder.c Mathieu Maret 2014-04-15 5084
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 5085 if (size != sizeof(struct binder_version)) {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 5086 ret = -EINVAL;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 5087 goto err;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 5088 }
36c89c0a6bebaf drivers/staging/android/binder.c Mathieu Maret 2014-04-15 5089 if (put_user(BINDER_CURRENT_PROTOCOL_VERSION,
36c89c0a6bebaf drivers/staging/android/binder.c Mathieu Maret 2014-04-15 5090 &ver->protocol_version)) {
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 5091 ret = -EINVAL;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 5092 goto err;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 5093 }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 5094 break;
36c89c0a6bebaf drivers/staging/android/binder.c Mathieu Maret 2014-04-15 5095 }
b7e6a8961b5d6d drivers/android/binder.c Martijn Coenen 2018-09-07 5096 case BINDER_GET_NODE_INFO_FOR_REF: {
b7e6a8961b5d6d drivers/android/binder.c Martijn Coenen 2018-09-07 5097 struct binder_node_info_for_ref info;
b7e6a8961b5d6d drivers/android/binder.c Martijn Coenen 2018-09-07 5098
b7e6a8961b5d6d drivers/android/binder.c Martijn Coenen 2018-09-07 5099 if (copy_from_user(&info, ubuf, sizeof(info))) {
b7e6a8961b5d6d drivers/android/binder.c Martijn Coenen 2018-09-07 5100 ret = -EFAULT;
b7e6a8961b5d6d drivers/android/binder.c Martijn Coenen 2018-09-07 5101 goto err;
b7e6a8961b5d6d drivers/android/binder.c Martijn Coenen 2018-09-07 5102 }
b7e6a8961b5d6d drivers/android/binder.c Martijn Coenen 2018-09-07 5103
b7e6a8961b5d6d drivers/android/binder.c Martijn Coenen 2018-09-07 5104 ret = binder_ioctl_get_node_info_for_ref(proc, &info);
b7e6a8961b5d6d drivers/android/binder.c Martijn Coenen 2018-09-07 5105 if (ret < 0)
b7e6a8961b5d6d drivers/android/binder.c Martijn Coenen 2018-09-07 5106 goto err;
b7e6a8961b5d6d drivers/android/binder.c Martijn Coenen 2018-09-07 5107
b7e6a8961b5d6d drivers/android/binder.c Martijn Coenen 2018-09-07 5108 if (copy_to_user(ubuf, &info, sizeof(info))) {
b7e6a8961b5d6d drivers/android/binder.c Martijn Coenen 2018-09-07 5109 ret = -EFAULT;
b7e6a8961b5d6d drivers/android/binder.c Martijn Coenen 2018-09-07 5110 goto err;
b7e6a8961b5d6d drivers/android/binder.c Martijn Coenen 2018-09-07 5111 }
b7e6a8961b5d6d drivers/android/binder.c Martijn Coenen 2018-09-07 5112
b7e6a8961b5d6d drivers/android/binder.c Martijn Coenen 2018-09-07 5113 break;
b7e6a8961b5d6d drivers/android/binder.c Martijn Coenen 2018-09-07 5114 }
abcc61537e3566 drivers/android/binder.c Colin Cross 2017-08-31 5115 case BINDER_GET_NODE_DEBUG_INFO: {
abcc61537e3566 drivers/android/binder.c Colin Cross 2017-08-31 5116 struct binder_node_debug_info info;
abcc61537e3566 drivers/android/binder.c Colin Cross 2017-08-31 5117
abcc61537e3566 drivers/android/binder.c Colin Cross 2017-08-31 5118 if (copy_from_user(&info, ubuf, sizeof(info))) {
abcc61537e3566 drivers/android/binder.c Colin Cross 2017-08-31 5119 ret = -EFAULT;
abcc61537e3566 drivers/android/binder.c Colin Cross 2017-08-31 5120 goto err;
abcc61537e3566 drivers/android/binder.c Colin Cross 2017-08-31 5121 }
abcc61537e3566 drivers/android/binder.c Colin Cross 2017-08-31 5122
abcc61537e3566 drivers/android/binder.c Colin Cross 2017-08-31 5123 ret = binder_ioctl_get_node_debug_info(proc, &info);
abcc61537e3566 drivers/android/binder.c Colin Cross 2017-08-31 5124 if (ret < 0)
abcc61537e3566 drivers/android/binder.c Colin Cross 2017-08-31 5125 goto err;
abcc61537e3566 drivers/android/binder.c Colin Cross 2017-08-31 5126
abcc61537e3566 drivers/android/binder.c Colin Cross 2017-08-31 5127 if (copy_to_user(ubuf, &info, sizeof(info))) {
abcc61537e3566 drivers/android/binder.c Colin Cross 2017-08-31 5128 ret = -EFAULT;
abcc61537e3566 drivers/android/binder.c Colin Cross 2017-08-31 5129 goto err;
abcc61537e3566 drivers/android/binder.c Colin Cross 2017-08-31 5130 }
abcc61537e3566 drivers/android/binder.c Colin Cross 2017-08-31 5131 break;
abcc61537e3566 drivers/android/binder.c Colin Cross 2017-08-31 5132 }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 5133 default:
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 5134 ret = -EINVAL;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 5135 goto err;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 5136 }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 5137 ret = 0;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 5138 err:
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 5139 if (thread)
08dabceefee0ed drivers/android/binder.c Todd Kjos 2017-06-29 5140 thread->looper_need_return = false;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 5141 wait_event_interruptible(binder_user_error_wait, binder_stop_on_user_error < 2);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 5142 if (ret && ret != -ERESTARTSYS)
56b468fc709b2b drivers/staging/android/binder.c Anmol Sarma 2012-10-30 5143 pr_info("%d:%d ioctl %x %lx returned %d\n", proc->pid, current->pid, cmd, arg, ret);
975a1ac9a9fe65 drivers/staging/android/binder.c Arve Hjønnevåg 2012-10-16 5144 err_unlocked:
975a1ac9a9fe65 drivers/staging/android/binder.c Arve Hjønnevåg 2012-10-16 5145 trace_binder_ioctl_done(ret);
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 5146 return ret;
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 5147 }
355b0502f6efea drivers/staging/android/binder.c Greg Kroah-Hartman 2011-11-30 5148

:::::: The code at line 5015 was first introduced by commit
:::::: 78260ac625e91d2402d72dd2f8c7109f98c1d19a staging: android: binder.c: binder_ioctl() cleanup

:::::: TO: Tair Rzayev <tair.rzayev@xxxxxxxxx>
:::::: CC: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

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

Attachment: .config.gz
Description: application/gzip