Messages in this thread |  | | Date | Sun, 16 May 2021 18:09:50 +0800 | From | kernel test robot <> | Subject | fs/cifs/sess.c:78:5: warning: stack frame size of 1168 bytes in function 'cifs_try_adding_channels' |
| |
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 63d1cb53e26a9a4168b84a8981b225c0a9cfa235 commit: 387ec58f339b0c45e3767395f11fa8dd3772131e cifs: simplify handling of cifs_sb/ctx->local_nls date: 5 months ago config: powerpc64-randconfig-r023-20210516 (attached as .config) compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project a80a5036a1f6b9a9eb4038b30458f9ab349efff8) 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 powerpc64 cross compiling tool for clang build # apt-get install binutils-powerpc64-linux-gnu # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=387ec58f339b0c45e3767395f11fa8dd3772131e git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 387ec58f339b0c45e3767395f11fa8dd3772131e # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=powerpc64
If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
>> fs/cifs/sess.c:78:5: warning: stack frame size of 1168 bytes in function 'cifs_try_adding_channels' [-Wframe-larger-than=] int cifs_try_adding_channels(struct cifs_sb_info *cifs_sb, struct cifs_ses *ses) ^ 1 warning generated.
vim +/cifs_try_adding_channels +78 fs/cifs/sess.c
76 77 /* returns number of channels added */ > 78 int cifs_try_adding_channels(struct cifs_sb_info *cifs_sb, struct cifs_ses *ses) 79 { 80 int old_chan_count = ses->chan_count; 81 int left = ses->chan_max - ses->chan_count; 82 int i = 0; 83 int rc = 0; 84 int tries = 0; 85 struct cifs_server_iface *ifaces = NULL; 86 size_t iface_count; 87 88 if (left <= 0) { 89 cifs_dbg(FYI, 90 "ses already at max_channels (%zu), nothing to open\n", 91 ses->chan_max); 92 return 0; 93 } 94 95 if (ses->server->dialect < SMB30_PROT_ID) { 96 cifs_dbg(VFS, "multichannel is not supported on this protocol version, use 3.0 or above\n"); 97 return 0; 98 } 99 100 /* 101 * Make a copy of the iface list at the time and use that 102 * instead so as to not hold the iface spinlock for opening 103 * channels 104 */ 105 spin_lock(&ses->iface_lock); 106 iface_count = ses->iface_count; 107 if (iface_count <= 0) { 108 spin_unlock(&ses->iface_lock); 109 cifs_dbg(VFS, "no iface list available to open channels\n"); 110 return 0; 111 } 112 ifaces = kmemdup(ses->iface_list, iface_count*sizeof(*ifaces), 113 GFP_ATOMIC); 114 if (!ifaces) { 115 spin_unlock(&ses->iface_lock); 116 return 0; 117 } 118 spin_unlock(&ses->iface_lock); 119 120 /* 121 * Keep connecting to same, fastest, iface for all channels as 122 * long as its RSS. Try next fastest one if not RSS or channel 123 * creation fails. 124 */ 125 while (left > 0) { 126 struct cifs_server_iface *iface; 127 128 tries++; 129 if (tries > 3*ses->chan_max) { 130 cifs_dbg(FYI, "too many channel open attempts (%d channels left to open)\n", 131 left); 132 break; 133 } 134 135 iface = &ifaces[i]; 136 if (is_ses_using_iface(ses, iface) && !iface->rss_capable) { 137 i = (i+1) % iface_count; 138 continue; 139 } 140 141 rc = cifs_ses_add_channel(cifs_sb, ses, iface); 142 if (rc) { 143 cifs_dbg(FYI, "failed to open extra channel on iface#%d rc=%d\n", 144 i, rc); 145 i = (i+1) % iface_count; 146 continue; 147 } 148 149 cifs_dbg(FYI, "successfully opened new channel on iface#%d\n", 150 i); 151 left--; 152 } 153 154 kfree(ifaces); 155 return ses->chan_count - old_chan_count; 156 } 157
--- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org [unhandled content-type:application/gzip] |  |