BCC: [email protected] CC: [email protected] CC: [email protected] TO: Johannes Berg <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: c40e8341e3b3bb27e3a65b06b5b454626234c4f0 commit: 9dd1953846c7cd58100a5c6bd90db54e2c60668a wifi: nl80211/mac80211: clarify link ID in control port TX date: 5 weeks ago :::::: branch date: 20 hours ago :::::: commit date: 5 weeks ago config: openrisc-randconfig-m031-20220824 (https://download.01.org/0day-ci/archive/20220825/[email protected]/config) compiler: or1k-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/tx.c:2916 ieee80211_build_hdr() error: testing array offset 'link_id' after use. Old smatch warnings: net/mac80211/tx.c:1846 invoke_tx_handlers_late() warn: variable dereferenced before check 'tx->skb' (see line 1821) net/mac80211/tx.c:3509 ieee80211_xmit_fast_finish() error: we previously assumed 'key' could be null (see line 3477) vim +/link_id +2916 net/mac80211/tx.c 33b64eb2b1b1759 Luis Carlos Cobo 2008-02-23 2877 065e9605f941b8b Harvey Harrison 2008-06-22 2878 if (ieee80211_is_data_qos(fc)) { c29b9b9b0235d56 Johannes Berg 2007-09-14 2879 __le16 *qos_control; c29b9b9b0235d56 Johannes Berg 2007-09-14 2880 d58ff35122847a8 Johannes Berg 2017-06-16 2881 qos_control = skb_push(skb, 2); c29b9b9b0235d56 Johannes Berg 2007-09-14 2882 memcpy(skb_push(skb, hdrlen - 2), &hdr, hdrlen - 2); c29b9b9b0235d56 Johannes Berg 2007-09-14 2883 /* c29b9b9b0235d56 Johannes Berg 2007-09-14 2884 * Maybe we could actually set some fields here, for now just c29b9b9b0235d56 Johannes Berg 2007-09-14 2885 * initialise to zero to indicate no special operation. c29b9b9b0235d56 Johannes Berg 2007-09-14 2886 */ c29b9b9b0235d56 Johannes Berg 2007-09-14 2887 *qos_control = 0; c29b9b9b0235d56 Johannes Berg 2007-09-14 2888 } else e2ebc74d7e3d716 Johannes Berg 2007-07-27 2889 memcpy(skb_push(skb, hdrlen), &hdr, hdrlen); c29b9b9b0235d56 Johannes Berg 2007-09-14 2890 d57a544d71092a8 Zhang Shengju 2016-03-03 2891 skb_reset_mac_header(skb); e2ebc74d7e3d716 Johannes Berg 2007-07-27 2892 489ee9195a7de9e Felix Fietkau 2010-12-18 2893 info = IEEE80211_SKB_CB(skb); 3b8d81e020f77c9 Johannes Berg 2009-06-17 2894 memset(info, 0, sizeof(*info)); 3b8d81e020f77c9 Johannes Berg 2009-06-17 2895 a729cff8ad5120d Johannes Berg 2011-11-06 2896 info->flags = info_flags; a729cff8ad5120d Johannes Berg 2011-11-06 2897 info->ack_frame_id = info_id; 73c4e195e6396ee Johannes Berg 2014-11-09 2898 info->band = band; 9dd1953846c7cd5 Johannes Berg 2022-07-19 2899 9dd1953846c7cd5 Johannes Berg 2022-07-19 2900 if (likely(!cookie)) { 9dd1953846c7cd5 Johannes Berg 2022-07-19 2901 ctrl_flags |= u32_encode_bits(link_id, 69d41b5a9c9d8d2 Johannes Berg 2022-06-09 2902 IEEE80211_TX_CTRL_MLO_LINK); 9dd1953846c7cd5 Johannes Berg 2022-07-19 2903 } else { 9dd1953846c7cd5 Johannes Berg 2022-07-19 2904 unsigned int pre_conf_link_id; 9dd1953846c7cd5 Johannes Berg 2022-07-19 2905 9dd1953846c7cd5 Johannes Berg 2022-07-19 2906 /* 9dd1953846c7cd5 Johannes Berg 2022-07-19 2907 * ctrl_flags already have been set by 9dd1953846c7cd5 Johannes Berg 2022-07-19 2908 * ieee80211_tx_control_port(), here 9dd1953846c7cd5 Johannes Berg 2022-07-19 2909 * we just sanity check that 9dd1953846c7cd5 Johannes Berg 2022-07-19 2910 */ 9dd1953846c7cd5 Johannes Berg 2022-07-19 2911 9dd1953846c7cd5 Johannes Berg 2022-07-19 2912 pre_conf_link_id = u32_get_bits(ctrl_flags, 9dd1953846c7cd5 Johannes Berg 2022-07-19 2913 IEEE80211_TX_CTRL_MLO_LINK); 9dd1953846c7cd5 Johannes Berg 2022-07-19 2914 9dd1953846c7cd5 Johannes Berg 2022-07-19 2915 if (pre_conf_link_id != link_id && 9dd1953846c7cd5 Johannes Berg 2022-07-19 @2916 link_id != IEEE80211_LINK_UNSPECIFIED) { 9dd1953846c7cd5 Johannes Berg 2022-07-19 2917 #ifdef CPTCFG_MAC80211_VERBOSE_DEBUG 9dd1953846c7cd5 Johannes Berg 2022-07-19 2918 net_info_ratelimited("%s: dropped frame to %pM with bad link ID request (%d vs. %d)\n", 9dd1953846c7cd5 Johannes Berg 2022-07-19 2919 sdata->name, hdr.addr1, 9dd1953846c7cd5 Johannes Berg 2022-07-19 2920 pre_conf_link_id, link_id); 9dd1953846c7cd5 Johannes Berg 2022-07-19 2921 #endif 9dd1953846c7cd5 Johannes Berg 2022-07-19 2922 ret = -EINVAL; 9dd1953846c7cd5 Johannes Berg 2022-07-19 2923 goto free; 9dd1953846c7cd5 Johannes Berg 2022-07-19 2924 } 9dd1953846c7cd5 Johannes Berg 2022-07-19 2925 } 9dd1953846c7cd5 Johannes Berg 2022-07-19 2926 9dd1953846c7cd5 Johannes Berg 2022-07-19 2927 info->control.flags = ctrl_flags; a729cff8ad5120d Johannes Berg 2011-11-06 2928 4c9451ed94087ab Johannes Berg 2014-11-09 2929 return skb; 4c9451ed94087ab Johannes Berg 2014-11-09 2930 free: 4c9451ed94087ab Johannes Berg 2014-11-09 2931 kfree_skb(skb); 4c9451ed94087ab Johannes Berg 2014-11-09 2932 return ERR_PTR(ret); 4c9451ed94087ab Johannes Berg 2014-11-09 2933 } e2ebc74d7e3d716 Johannes Berg 2007-07-27 2934 -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
