BCC: [email protected]
CC: [email protected]
In-Reply-To: <[email protected]>
References: <[email protected]>
TO: Kieran Frewen <[email protected]>
TO: [email protected]
CC: [email protected]
CC: [email protected]
CC: Kieran Frewen <[email protected]>

Hi Kieran,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on wireless/main]
[also build test WARNING on linus/master v6.0-rc3 next-20220901]
[cannot apply to wireless-next/main]
[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#_base_tree_information]

url:    
https://github.com/intel-lab-lkp/linux/commits/Kieran-Frewen/Additional-Support-for-802-11ah-S1G/20220830-102217
base:   https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless.git 
main
:::::: branch date: 3 days ago
:::::: commit date: 3 days ago
config: csky-randconfig-m031-20220901 
(https://download.01.org/0day-ci/archive/20220902/[email protected]/config)
compiler: csky-linux-gcc (GCC) 12.1.0

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>

New smatch warnings:
net/mac80211/rx.c:4956 __ieee80211_rx_handle_packet() error: potentially 
dereferencing uninitialized 'hdr'.
net/mac80211/rx.c:5011 __ieee80211_rx_handle_packet() error: potentially 
dereferencing uninitialized 'ext_hdr'.

Old smatch warnings:
net/mac80211/rx.c:877 ieee80211_rx_monitor() warn: variable dereferenced before 
check 'origskb' (see line 770)
net/mac80211/rx.c:5013 __ieee80211_rx_handle_packet() error: potentially 
dereferencing uninitialized 'hdr'.

vim +/hdr +4956 net/mac80211/rx.c

892b3bceb0b5340 Johannes Berg           2022-06-14  4885  
571ecf676d66735 Johannes Berg           2007-07-27  4886  /*
6b59db7d4c4b0ad Zhao, Gang              2014-04-21  4887   * This is the actual 
Rx frames handler. as it belongs to Rx path it must
6368e4b18d5c71c Ron Rindjunsky          2007-12-24  4888   * be called with 
rcu_read_lock protection.
571ecf676d66735 Johannes Berg           2007-07-27  4889   */
71ebb4aac87e4a1 Ron Rindjunsky          2008-01-21  4890  static void 
__ieee80211_rx_handle_packet(struct ieee80211_hw *hw,
d63b548fffdbd23 Johannes Berg           2016-03-31  4891                        
                 struct ieee80211_sta *pubsta,
af9f9b22beee70a Johannes Berg           2015-06-11  4892                        
                 struct sk_buff *skb,
c5d1686b314ea44 Felix Fietkau           2020-07-26  4893                        
                 struct list_head *list)
571ecf676d66735 Johannes Berg           2007-07-27  4894  {
571ecf676d66735 Johannes Berg           2007-07-27  4895        struct 
ieee80211_local *local = hw_to_local(hw);
571ecf676d66735 Johannes Berg           2007-07-27  4896        struct 
ieee80211_sub_if_data *sdata;
571ecf676d66735 Johannes Berg           2007-07-27  4897        struct 
ieee80211_hdr *hdr;
f4260573b3041a3 Kieran Frewen           2022-08-30  4898        struct 
ieee80211_ext *ext_hdr;
e3cf8b3f7b9eefb Zhu Yi                  2010-03-29  4899        __le16 fc;
5cf121c3cdb9555 Johannes Berg           2008-02-25  4900        struct 
ieee80211_rx_data rx;
4406c3768956083 Johannes Berg           2010-09-24  4901        struct 
ieee80211_sub_if_data *prev;
83e7e4ce9e93c3b Herbert Xu              2016-09-19  4902        struct 
rhlist_head *tmp;
e3cf8b3f7b9eefb Zhu Yi                  2010-03-29  4903        int err = 0;
571ecf676d66735 Johannes Berg           2007-07-27  4904  
e3cf8b3f7b9eefb Zhu Yi                  2010-03-29  4905        fc = ((struct 
ieee80211_hdr *)skb->data)->frame_control;
571ecf676d66735 Johannes Berg           2007-07-27  4906        memset(&rx, 0, 
sizeof(rx));
571ecf676d66735 Johannes Berg           2007-07-27  4907        rx.skb = skb;
571ecf676d66735 Johannes Berg           2007-07-27  4908        rx.local = 
local;
c5d1686b314ea44 Felix Fietkau           2020-07-26  4909        rx.list = list;
892b3bceb0b5340 Johannes Berg           2022-06-14  4910        rx.link_id = -1;
72abd81b980ef7f Johannes Berg           2007-09-17  4911  
e3cf8b3f7b9eefb Zhu Yi                  2010-03-29  4912        if 
(ieee80211_is_data(fc) || ieee80211_is_mgmt(fc))
c206ca670974cef Johannes Berg           2015-04-22  4913                
I802_DEBUG_INC(local->dot11ReceivedFragmentCount);
571ecf676d66735 Johannes Berg           2007-07-27  4914  
f4260573b3041a3 Kieran Frewen           2022-08-30  4915        if 
(ieee80211_is_mgmt(fc) || ieee80211_is_s1g_beacon(fc)) {
4a4f1a5808c8bb0 Johannes Berg           2012-10-26  4916                /* drop 
frame if too short for header */
4a4f1a5808c8bb0 Johannes Berg           2012-10-26  4917                if 
(skb->len < ieee80211_hdrlen(fc))
4a4f1a5808c8bb0 Johannes Berg           2012-10-26  4918                        
err = -ENOBUFS;
e3cf8b3f7b9eefb Zhu Yi                  2010-03-29  4919                else
4a4f1a5808c8bb0 Johannes Berg           2012-10-26  4920                        
err = skb_linearize(skb);
4a4f1a5808c8bb0 Johannes Berg           2012-10-26  4921        } else {
e3cf8b3f7b9eefb Zhu Yi                  2010-03-29  4922                err = 
!pskb_may_pull(skb, ieee80211_hdrlen(fc));
4a4f1a5808c8bb0 Johannes Berg           2012-10-26  4923        }
e3cf8b3f7b9eefb Zhu Yi                  2010-03-29  4924  
e3cf8b3f7b9eefb Zhu Yi                  2010-03-29  4925        if (err) {
e3cf8b3f7b9eefb Zhu Yi                  2010-03-29  4926                
dev_kfree_skb(skb);
e3cf8b3f7b9eefb Zhu Yi                  2010-03-29  4927                return;
e3cf8b3f7b9eefb Zhu Yi                  2010-03-29  4928        }
e3cf8b3f7b9eefb Zhu Yi                  2010-03-29  4929  
f4260573b3041a3 Kieran Frewen           2022-08-30  4930        if 
(ieee80211_is_s1g_beacon(fc))
f4260573b3041a3 Kieran Frewen           2022-08-30  4931                ext_hdr 
= (struct ieee80211_ext *)skb->data;
f4260573b3041a3 Kieran Frewen           2022-08-30  4932        else
e3cf8b3f7b9eefb Zhu Yi                  2010-03-29  4933                hdr = 
(struct ieee80211_hdr *)skb->data;
f4260573b3041a3 Kieran Frewen           2022-08-30  4934  
38f3714d66b5679 Johannes Berg           2008-01-29  4935        
ieee80211_parse_qos(&rx);
d1c3a37ceeb1a5e Johannes Berg           2009-01-07  4936        
ieee80211_verify_alignment(&rx);
38f3714d66b5679 Johannes Berg           2008-01-29  4937  
f4260573b3041a3 Kieran Frewen           2022-08-30  4938        if 
(unlikely(ieee80211_is_probe_resp(fc) ||
f4260573b3041a3 Kieran Frewen           2022-08-30  4939                     
ieee80211_is_beacon(fc) ||
f4260573b3041a3 Kieran Frewen           2022-08-30  4940                     
ieee80211_is_s1g_beacon(fc)))
d48b296850f25cb Johannes Berg           2012-07-06  4941                
ieee80211_scan_rx(local, skb);
d48b296850f25cb Johannes Berg           2012-07-06  4942  
19d19e960598161 Johannes Berg           2017-02-27  4943        if 
(ieee80211_is_data(fc)) {
19d19e960598161 Johannes Berg           2017-02-27  4944                struct 
sta_info *sta, *prev_sta;
19d19e960598161 Johannes Berg           2017-02-27  4945  
d63b548fffdbd23 Johannes Berg           2016-03-31  4946                if 
(pubsta) {
d63b548fffdbd23 Johannes Berg           2016-03-31  4947                        
rx.sta = container_of(pubsta, struct sta_info, sta);
d63b548fffdbd23 Johannes Berg           2016-03-31  4948                        
rx.sdata = rx.sta->sdata;
d63b548fffdbd23 Johannes Berg           2016-03-31  4949                        
if (ieee80211_prepare_and_rx_handle(&rx, skb, true))
d63b548fffdbd23 Johannes Berg           2016-03-31  4950                        
        return;
d63b548fffdbd23 Johannes Berg           2016-03-31  4951                        
goto out;
19d19e960598161 Johannes Berg           2017-02-27  4952                }
7bedd0cfad4e122 Johannes Berg           2015-02-13  4953  
56af326830757f3 Ben Greear              2010-09-23  4954                
prev_sta = NULL;
4406c3768956083 Johannes Berg           2010-09-24  4955  
83e7e4ce9e93c3b Herbert Xu              2016-09-19 @4956                
for_each_sta_info(local, hdr->addr2, sta, tmp) {
56af326830757f3 Ben Greear              2010-09-23  4957                        
if (!prev_sta) {
56af326830757f3 Ben Greear              2010-09-23  4958                        
        prev_sta = sta;
56af326830757f3 Ben Greear              2010-09-23  4959                        
        continue;
56af326830757f3 Ben Greear              2010-09-23  4960                        
}
56af326830757f3 Ben Greear              2010-09-23  4961  
56af326830757f3 Ben Greear              2010-09-23  4962                        
rx.sta = prev_sta;
56af326830757f3 Ben Greear              2010-09-23  4963                        
rx.sdata = prev_sta->sdata;
4406c3768956083 Johannes Berg           2010-09-24  4964                        
ieee80211_prepare_and_rx_handle(&rx, skb, false);
571ecf676d66735 Johannes Berg           2007-07-27  4965  
56af326830757f3 Ben Greear              2010-09-23  4966                        
prev_sta = sta;
4406c3768956083 Johannes Berg           2010-09-24  4967                }
56af326830757f3 Ben Greear              2010-09-23  4968  
56af326830757f3 Ben Greear              2010-09-23  4969                if 
(prev_sta) {
56af326830757f3 Ben Greear              2010-09-23  4970                        
rx.sta = prev_sta;
56af326830757f3 Ben Greear              2010-09-23  4971                        
rx.sdata = prev_sta->sdata;
56af326830757f3 Ben Greear              2010-09-23  4972  
4406c3768956083 Johannes Berg           2010-09-24  4973                        
if (ieee80211_prepare_and_rx_handle(&rx, skb, true))
56af326830757f3 Ben Greear              2010-09-23  4974                        
        return;
8e26d5ad2f9c038 Senthil Balasubramanian 2010-11-30  4975                        
goto out;
abe60632f311d51 Johannes Berg           2009-11-25  4976                }
abe60632f311d51 Johannes Berg           2009-11-25  4977        }
4406c3768956083 Johannes Berg           2010-09-24  4978  
4406c3768956083 Johannes Berg           2010-09-24  4979        prev = NULL;
4406c3768956083 Johannes Berg           2010-09-24  4980  
abe60632f311d51 Johannes Berg           2009-11-25  4981        
list_for_each_entry_rcu(sdata, &local->interfaces, list) {
9607e6b66a0d25c Johannes Berg           2009-12-23  4982                if 
(!ieee80211_sdata_running(sdata))
2a8a9a88fc1b18f Johannes Berg           2007-08-28  4983                        
continue;
2a8a9a88fc1b18f Johannes Berg           2007-08-28  4984  
fbc44bf7177dfd6 Johannes Berg           2009-10-01  4985                if 
(sdata->vif.type == NL80211_IFTYPE_MONITOR ||
fbc44bf7177dfd6 Johannes Berg           2009-10-01  4986                    
sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
b2e7771e556917c Johannes Berg           2007-09-26  4987                        
continue;
b2e7771e556917c Johannes Berg           2007-09-26  4988  
340e11f332c695c Johannes Berg           2007-07-27  4989                /*
abe60632f311d51 Johannes Berg           2009-11-25  4990                 * 
frame is destined for this interface, but if it's
abe60632f311d51 Johannes Berg           2009-11-25  4991                 * not 
also for the previous one we handle that after
abe60632f311d51 Johannes Berg           2009-11-25  4992                 * the 
loop to avoid copying the SKB once too much
340e11f332c695c Johannes Berg           2007-07-27  4993                 */
340e11f332c695c Johannes Berg           2007-07-27  4994  
340e11f332c695c Johannes Berg           2007-07-27  4995                if 
(!prev) {
340e11f332c695c Johannes Berg           2007-07-27  4996                        
prev = sdata;
340e11f332c695c Johannes Berg           2007-07-27  4997                        
continue;
340e11f332c695c Johannes Berg           2007-07-27  4998                }
f4260573b3041a3 Kieran Frewen           2022-08-30  4999                if 
(ieee80211_is_s1g_beacon(fc))
f4260573b3041a3 Kieran Frewen           2022-08-30  5000                        
rx.sta = sta_info_get_bss(prev, ext_hdr->u.s1g_beacon.sa);
f4260573b3041a3 Kieran Frewen           2022-08-30  5001                else
f4260573b3041a3 Kieran Frewen           2022-08-30  5002                        
rx.sta = sta_info_get_bss(prev, hdr->addr2);
20b01f80f72426e Johannes Berg           2010-09-24  5003                
rx.sdata = prev;
892b3bceb0b5340 Johannes Berg           2022-06-14  5004                
ieee80211_rx_for_interface(&rx, skb, false);
4bb29f8c390fb7b Felix Fietkau           2010-01-22  5005  
571ecf676d66735 Johannes Berg           2007-07-27  5006                prev = 
sdata;
571ecf676d66735 Johannes Berg           2007-07-27  5007        }
4bb29f8c390fb7b Felix Fietkau           2010-01-22  5008  
4bb29f8c390fb7b Felix Fietkau           2010-01-22  5009        if (prev) {
f4260573b3041a3 Kieran Frewen           2022-08-30  5010                if 
(ieee80211_is_s1g_beacon(fc))
f4260573b3041a3 Kieran Frewen           2022-08-30 @5011                        
rx.sta = sta_info_get_bss(prev, ext_hdr->u.s1g_beacon.sa);
f4260573b3041a3 Kieran Frewen           2022-08-30  5012                else
f4260573b3041a3 Kieran Frewen           2022-08-30  5013                        
rx.sta = sta_info_get_bss(prev, hdr->addr2);
20b01f80f72426e Johannes Berg           2010-09-24  5014                
rx.sdata = prev;
4bb29f8c390fb7b Felix Fietkau           2010-01-22  5015  
892b3bceb0b5340 Johannes Berg           2022-06-14  5016                if 
(ieee80211_rx_for_interface(&rx, skb, true))
4406c3768956083 Johannes Berg           2010-09-24  5017                        
return;
4bb29f8c390fb7b Felix Fietkau           2010-01-22  5018        }
4406c3768956083 Johannes Berg           2010-09-24  5019  
8e26d5ad2f9c038 Senthil Balasubramanian 2010-11-30  5020   out:
571ecf676d66735 Johannes Berg           2007-07-27  5021        
dev_kfree_skb(skb);
571ecf676d66735 Johannes Berg           2007-07-27  5022  }
6368e4b18d5c71c Ron Rindjunsky          2007-12-24  5023  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to