lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202307241512.oEYN9ZOx-lkp@intel.com>
Date:   Mon, 24 Jul 2023 15:26:41 +0800
From:   kernel test robot <lkp@...el.com>
To:     Jisheng Zhang <jszhang@...nel.org>
Cc:     llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev,
        linux-kernel@...r.kernel.org,
        Palmer Dabbelt <palmerdabbelt@...gle.com>
Subject: net/wireless/pmsr.c:186:12: warning: stack frame size (2640) exceeds
 limit (2048) in 'pmsr_parse_peer'

Hi Jisheng,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   6eaae198076080886b9e7d57f4ae06fa782f90ef
commit: 8341dcfbd8dda98a3b2836a421016f7d88e35b1c riscv: Enable Undefined Behavior Sanitizer UBSAN
date:   1 year, 11 months ago
config: riscv-randconfig-r042-20230724 (https://download.01.org/0day-ci/archive/20230724/202307241512.oEYN9ZOx-lkp@intel.com/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
reproduce: (https://download.01.org/0day-ci/archive/20230724/202307241512.oEYN9ZOx-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202307241512.oEYN9ZOx-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> net/wireless/pmsr.c:186:12: warning: stack frame size (2640) exceeds limit (2048) in 'pmsr_parse_peer' [-Wframe-larger-than]
     186 | static int pmsr_parse_peer(struct cfg80211_registered_device *rdev,
         |            ^
   1 warning generated.
--
>> net/wireless/reg.c:2437:13: warning: stack frame size (2352) exceeds limit (2048) in 'wiphy_update_regulatory' [-Wframe-larger-than]
    2437 | static void wiphy_update_regulatory(struct wiphy *wiphy,
         |             ^
   1 warning generated.
--
   kernel/sched/fair.c:5438:6: warning: no previous prototype for function 'init_cfs_bandwidth' [-Wmissing-prototypes]
    5438 | void init_cfs_bandwidth(struct cfs_bandwidth *cfs_b) {}
         |      ^
   kernel/sched/fair.c:5438:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    5438 | void init_cfs_bandwidth(struct cfs_bandwidth *cfs_b) {}
         | ^
         | static 
   kernel/sched/fair.c:11457:6: warning: no previous prototype for function 'free_fair_sched_group' [-Wmissing-prototypes]
    11457 | void free_fair_sched_group(struct task_group *tg) { }
          |      ^
   kernel/sched/fair.c:11457:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    11457 | void free_fair_sched_group(struct task_group *tg) { }
          | ^
          | static 
   kernel/sched/fair.c:11459:5: warning: no previous prototype for function 'alloc_fair_sched_group' [-Wmissing-prototypes]
    11459 | int alloc_fair_sched_group(struct task_group *tg, struct task_group *parent)
          |     ^
   kernel/sched/fair.c:11459:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    11459 | int alloc_fair_sched_group(struct task_group *tg, struct task_group *parent)
          | ^
          | static 
   kernel/sched/fair.c:11464:6: warning: no previous prototype for function 'online_fair_sched_group' [-Wmissing-prototypes]
    11464 | void online_fair_sched_group(struct task_group *tg) { }
          |      ^
   kernel/sched/fair.c:11464:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    11464 | void online_fair_sched_group(struct task_group *tg) { }
          | ^
          | static 
   kernel/sched/fair.c:11466:6: warning: no previous prototype for function 'unregister_fair_sched_group' [-Wmissing-prototypes]
    11466 | void unregister_fair_sched_group(struct task_group *tg) { }
          |      ^
   kernel/sched/fair.c:11466:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    11466 | void unregister_fair_sched_group(struct task_group *tg) { }
          | ^
          | static 
   kernel/sched/fair.c:450:20: warning: unused function 'list_del_leaf_cfs_rq' [-Wunused-function]
     450 | static inline void list_del_leaf_cfs_rq(struct cfs_rq *cfs_rq)
         |                    ^
   kernel/sched/fair.c:5419:20: warning: unused function 'sync_throttle' [-Wunused-function]
    5419 | static inline void sync_throttle(struct task_group *tg, int cpu) {}
         |                    ^
   kernel/sched/fair.c:5444:37: warning: unused function 'tg_cfs_bandwidth' [-Wunused-function]
    5444 | static inline struct cfs_bandwidth *tg_cfs_bandwidth(struct task_group *tg)
         |                                     ^
   kernel/sched/fair.c:5448:20: warning: unused function 'destroy_cfs_bandwidth' [-Wunused-function]
    5448 | static inline void destroy_cfs_bandwidth(struct cfs_bandwidth *cfs_b) {}
         |                    ^
>> kernel/sched/fair.c:9712:12: warning: stack frame size (2320) exceeds limit (2048) in 'load_balance' [-Wframe-larger-than]
    9712 | static int load_balance(int this_cpu, struct rq *this_rq,
         |            ^
   10 warnings generated.
   /tmp/fair-295e8c.s: Assembler messages:
   /tmp/fair-295e8c.s:6618: Error: unrecognized opcode `csrrc s9,0x100,2', extension `zicsr' required
   /tmp/fair-295e8c.s:6631: Error: unrecognized opcode `csrs 0x100,a0', extension `zicsr' required
   /tmp/fair-295e8c.s:20948: Error: unrecognized opcode `csrrc s5,0x100,2', extension `zicsr' required
   /tmp/fair-295e8c.s:21087: Error: unrecognized opcode `csrs 0x100,a0', extension `zicsr' required
   /tmp/fair-295e8c.s:24185: Error: unrecognized opcode `csrrc s4,0x100,2', extension `zicsr' required
   /tmp/fair-295e8c.s:24567: Error: unrecognized opcode `csrs 0x100,a0', extension `zicsr' required
   /tmp/fair-295e8c.s:25097: Error: unrecognized opcode `csrrc s2,0x100,2', extension `zicsr' required
   /tmp/fair-295e8c.s:25149: Error: unrecognized opcode `csrs 0x100,a0', extension `zicsr' required
   /tmp/fair-295e8c.s:25164: Error: unrecognized opcode `csrs 0x100,a0', extension `zicsr' required
   /tmp/fair-295e8c.s:25188: Error: unrecognized opcode `csrs 0x100,a0', extension `zicsr' required
   /tmp/fair-295e8c.s:26611: Error: unrecognized opcode `csrc 0x100,2', extension `zicsr' required
   /tmp/fair-295e8c.s:26711: Error: unrecognized opcode `csrs 0x100,2', extension `zicsr' required
   clang: error: assembler command failed with exit code 1 (use -v to see invocation)
--
>> drivers/mmc/host/sdhci.c:3411:20: warning: stack frame size (2816) exceeds limit (2048) in 'sdhci_irq' [-Wframe-larger-than]
    3411 | static irqreturn_t sdhci_irq(int irq, void *dev_id)
         |                    ^
   1 warning generated.
   /tmp/sdhci-da405a.s: Assembler messages:
   /tmp/sdhci-da405a.s:22550: Error: unrecognized opcode `csrrc a0,0x100,2', extension `zicsr' required
   /tmp/sdhci-da405a.s:22731: Error: unrecognized opcode `csrrc s2,0x100,2', extension `zicsr' required
   /tmp/sdhci-da405a.s:22883: Error: unrecognized opcode `csrs 0x100,a0', extension `zicsr' required
   /tmp/sdhci-da405a.s:22894: Error: unrecognized opcode `csrs 0x100,a0', extension `zicsr' required
   /tmp/sdhci-da405a.s:45515: Error: unrecognized opcode `csrrc s3,0x100,2', extension `zicsr' required
   /tmp/sdhci-da405a.s:45672: Error: unrecognized opcode `csrs 0x100,a0', extension `zicsr' required
   clang: error: assembler command failed with exit code 1 (use -v to see invocation)
--
>> net/mac80211/rx.c:3819:13: warning: stack frame size (7392) exceeds limit (2048) in 'ieee80211_rx_handlers' [-Wframe-larger-than]
    3819 | static void ieee80211_rx_handlers(struct ieee80211_rx_data *rx,
         |             ^
   1 warning generated.
--
>> net/mac80211/tx.c:3586:17: warning: stack frame size (2544) exceeds limit (2048) in 'ieee80211_tx_dequeue' [-Wframe-larger-than]
    3586 | struct sk_buff *ieee80211_tx_dequeue(struct ieee80211_hw *hw,
         |                 ^
   1 warning generated.
--
>> net/mac80211/util.c:995:1: warning: stack frame size (2256) exceeds limit (2048) in '_ieee802_11_parse_elems_crc' [-Wframe-larger-than]
     995 | _ieee802_11_parse_elems_crc(const u8 *start, size_t len, bool action,
         | ^
   1 warning generated.
--
>> fs/f2fs/debug.c:326:12: warning: stack frame size (5328) exceeds limit (2048) in 'stat_show' [-Wframe-larger-than]
     326 | static int stat_show(struct seq_file *s, void *v)
         |            ^
   1 warning generated.
--
>> fs/nilfs2/segment.c:2008:12: warning: stack frame size (4576) exceeds limit (2048) in 'nilfs_segctor_do_construct' [-Wframe-larger-than]
    2008 | static int nilfs_segctor_do_construct(struct nilfs_sc_info *sci, int mode)
         |            ^
>> fs/nilfs2/segment.c:1479:12: warning: stack frame size (2192) exceeds limit (2048) in 'nilfs_segctor_collect' [-Wframe-larger-than]
    1479 | static int nilfs_segctor_collect(struct nilfs_sc_info *sci,
         |            ^
   2 warnings generated.
   /tmp/segment-a6eb20.s: Assembler messages:
   /tmp/segment-a6eb20.s:3732: Error: unrecognized opcode `csrrc s5,0x100,2', extension `zicsr' required
   /tmp/segment-a6eb20.s:3766: Error: unrecognized opcode `csrs 0x100,a0', extension `zicsr' required
   /tmp/segment-a6eb20.s:4416: Error: unrecognized opcode `csrrc s3,0x100,2', extension `zicsr' required
   /tmp/segment-a6eb20.s:4450: Error: unrecognized opcode `csrs 0x100,a0', extension `zicsr' required
   /tmp/segment-a6eb20.s:4476: Error: unrecognized opcode `csrrc s5,0x100,2', extension `zicsr' required
   /tmp/segment-a6eb20.s:4510: Error: unrecognized opcode `csrs 0x100,a0', extension `zicsr' required
   clang: error: assembler command failed with exit code 1 (use -v to see invocation)


vim +/pmsr_parse_peer +186 net/wireless/pmsr.c

9bb7e0f24e7e7d Johannes Berg 2018-09-10  185  
9bb7e0f24e7e7d Johannes Berg 2018-09-10 @186  static int pmsr_parse_peer(struct cfg80211_registered_device *rdev,
9bb7e0f24e7e7d Johannes Berg 2018-09-10  187  			   struct nlattr *peer,
9bb7e0f24e7e7d Johannes Berg 2018-09-10  188  			   struct cfg80211_pmsr_request_peer *out,
9bb7e0f24e7e7d Johannes Berg 2018-09-10  189  			   struct genl_info *info)
9bb7e0f24e7e7d Johannes Berg 2018-09-10  190  {
9bb7e0f24e7e7d Johannes Berg 2018-09-10  191  	struct nlattr *tb[NL80211_PMSR_PEER_ATTR_MAX + 1];
9bb7e0f24e7e7d Johannes Berg 2018-09-10  192  	struct nlattr *req[NL80211_PMSR_REQ_ATTR_MAX + 1];
9bb7e0f24e7e7d Johannes Berg 2018-09-10  193  	struct nlattr *treq;
9bb7e0f24e7e7d Johannes Berg 2018-09-10  194  	int err, rem;
9bb7e0f24e7e7d Johannes Berg 2018-09-10  195  
9bb7e0f24e7e7d Johannes Berg 2018-09-10  196  	/* no validation needed - was already done via nested policy */
8cb081746c031f Johannes Berg 2019-04-26  197  	nla_parse_nested_deprecated(tb, NL80211_PMSR_PEER_ATTR_MAX, peer,
8cb081746c031f Johannes Berg 2019-04-26  198  				    NULL, NULL);
9bb7e0f24e7e7d Johannes Berg 2018-09-10  199  
9bb7e0f24e7e7d Johannes Berg 2018-09-10  200  	if (!tb[NL80211_PMSR_PEER_ATTR_ADDR] ||
9bb7e0f24e7e7d Johannes Berg 2018-09-10  201  	    !tb[NL80211_PMSR_PEER_ATTR_CHAN] ||
9bb7e0f24e7e7d Johannes Berg 2018-09-10  202  	    !tb[NL80211_PMSR_PEER_ATTR_REQ]) {
9bb7e0f24e7e7d Johannes Berg 2018-09-10  203  		NL_SET_ERR_MSG_ATTR(info->extack, peer,
9bb7e0f24e7e7d Johannes Berg 2018-09-10  204  				    "insufficient peer data");
9bb7e0f24e7e7d Johannes Berg 2018-09-10  205  		return -EINVAL;
9bb7e0f24e7e7d Johannes Berg 2018-09-10  206  	}
9bb7e0f24e7e7d Johannes Berg 2018-09-10  207  
9bb7e0f24e7e7d Johannes Berg 2018-09-10  208  	memcpy(out->addr, nla_data(tb[NL80211_PMSR_PEER_ATTR_ADDR]), ETH_ALEN);
9bb7e0f24e7e7d Johannes Berg 2018-09-10  209  
9bb7e0f24e7e7d Johannes Berg 2018-09-10  210  	/* reuse info->attrs */
9bb7e0f24e7e7d Johannes Berg 2018-09-10  211  	memset(info->attrs, 0, sizeof(*info->attrs) * (NL80211_ATTR_MAX + 1));
8cb081746c031f Johannes Berg 2019-04-26  212  	err = nla_parse_nested_deprecated(info->attrs, NL80211_ATTR_MAX,
9bb7e0f24e7e7d Johannes Berg 2018-09-10  213  					  tb[NL80211_PMSR_PEER_ATTR_CHAN],
d15da2a2e81367 Johannes Berg 2020-04-30  214  					  NULL, info->extack);
9bb7e0f24e7e7d Johannes Berg 2018-09-10  215  	if (err)
9bb7e0f24e7e7d Johannes Berg 2018-09-10  216  		return err;
9bb7e0f24e7e7d Johannes Berg 2018-09-10  217  
9bb7e0f24e7e7d Johannes Berg 2018-09-10  218  	err = nl80211_parse_chandef(rdev, info, &out->chandef);
9bb7e0f24e7e7d Johannes Berg 2018-09-10  219  	if (err)
9bb7e0f24e7e7d Johannes Berg 2018-09-10  220  		return err;
9bb7e0f24e7e7d Johannes Berg 2018-09-10  221  
9bb7e0f24e7e7d Johannes Berg 2018-09-10  222  	/* no validation needed - was already done via nested policy */
8cb081746c031f Johannes Berg 2019-04-26  223  	nla_parse_nested_deprecated(req, NL80211_PMSR_REQ_ATTR_MAX,
8cb081746c031f Johannes Berg 2019-04-26  224  				    tb[NL80211_PMSR_PEER_ATTR_REQ], NULL,
8cb081746c031f Johannes Berg 2019-04-26  225  				    NULL);
9bb7e0f24e7e7d Johannes Berg 2018-09-10  226  
9bb7e0f24e7e7d Johannes Berg 2018-09-10  227  	if (!req[NL80211_PMSR_REQ_ATTR_DATA]) {
9bb7e0f24e7e7d Johannes Berg 2018-09-10  228  		NL_SET_ERR_MSG_ATTR(info->extack,
9bb7e0f24e7e7d Johannes Berg 2018-09-10  229  				    tb[NL80211_PMSR_PEER_ATTR_REQ],
9bb7e0f24e7e7d Johannes Berg 2018-09-10  230  				    "missing request type/data");
9bb7e0f24e7e7d Johannes Berg 2018-09-10  231  		return -EINVAL;
9bb7e0f24e7e7d Johannes Berg 2018-09-10  232  	}
9bb7e0f24e7e7d Johannes Berg 2018-09-10  233  
9bb7e0f24e7e7d Johannes Berg 2018-09-10  234  	if (req[NL80211_PMSR_REQ_ATTR_GET_AP_TSF])
9bb7e0f24e7e7d Johannes Berg 2018-09-10  235  		out->report_ap_tsf = true;
9bb7e0f24e7e7d Johannes Berg 2018-09-10  236  
9bb7e0f24e7e7d Johannes Berg 2018-09-10  237  	if (out->report_ap_tsf && !rdev->wiphy.pmsr_capa->report_ap_tsf) {
9bb7e0f24e7e7d Johannes Berg 2018-09-10  238  		NL_SET_ERR_MSG_ATTR(info->extack,
9bb7e0f24e7e7d Johannes Berg 2018-09-10  239  				    req[NL80211_PMSR_REQ_ATTR_GET_AP_TSF],
9bb7e0f24e7e7d Johannes Berg 2018-09-10  240  				    "reporting AP TSF is not supported");
9bb7e0f24e7e7d Johannes Berg 2018-09-10  241  		return -EINVAL;
9bb7e0f24e7e7d Johannes Berg 2018-09-10  242  	}
9bb7e0f24e7e7d Johannes Berg 2018-09-10  243  
9bb7e0f24e7e7d Johannes Berg 2018-09-10  244  	nla_for_each_nested(treq, req[NL80211_PMSR_REQ_ATTR_DATA], rem) {
9bb7e0f24e7e7d Johannes Berg 2018-09-10  245  		switch (nla_type(treq)) {
9bb7e0f24e7e7d Johannes Berg 2018-09-10  246  		case NL80211_PMSR_TYPE_FTM:
9bb7e0f24e7e7d Johannes Berg 2018-09-10  247  			err = pmsr_parse_ftm(rdev, treq, out, info);
9bb7e0f24e7e7d Johannes Berg 2018-09-10  248  			break;
9bb7e0f24e7e7d Johannes Berg 2018-09-10  249  		default:
9bb7e0f24e7e7d Johannes Berg 2018-09-10  250  			NL_SET_ERR_MSG_ATTR(info->extack, treq,
9bb7e0f24e7e7d Johannes Berg 2018-09-10  251  					    "unsupported measurement type");
9bb7e0f24e7e7d Johannes Berg 2018-09-10  252  			err = -EINVAL;
9bb7e0f24e7e7d Johannes Berg 2018-09-10  253  		}
9bb7e0f24e7e7d Johannes Berg 2018-09-10  254  	}
9bb7e0f24e7e7d Johannes Berg 2018-09-10  255  
9bb7e0f24e7e7d Johannes Berg 2018-09-10  256  	if (err)
9bb7e0f24e7e7d Johannes Berg 2018-09-10  257  		return err;
9bb7e0f24e7e7d Johannes Berg 2018-09-10  258  
9bb7e0f24e7e7d Johannes Berg 2018-09-10  259  	return 0;
9bb7e0f24e7e7d Johannes Berg 2018-09-10  260  }
9bb7e0f24e7e7d Johannes Berg 2018-09-10  261  

:::::: The code at line 186 was first introduced by commit
:::::: 9bb7e0f24e7e7d00daa1219b14539e2e602649b2 cfg80211: add peer measurement with FTM initiator API

:::::: TO: Johannes Berg <johannes.berg@...el.com>
:::::: CC: Johannes Berg <johannes.berg@...el.com>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ