CC: kbuild-all(a)lists.01.org CC: linux-kernel(a)vger.kernel.org TO: Kees Cook CC: Chao Yu , Chao Yu tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 44db63d1ad8d71c6932cbe007eb41f31c434d140 commit: 3f649ab728cda8038259d8f14492fe400fbab911 treewide: Remove uninitialized_var() usage date: 11 months ago :::::: branch date: 17 hours ago :::::: commit date: 11 months ago config: i386-randconfig-m031-20210625 (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot Reported-by: Dan Carpenter New smatch warnings: drivers/net/wireless/broadcom/b43/xmit.c:457 b43_generate_txhdr() error: uninitialized symbol 'cts'. drivers/net/wireless/broadcom/b43/xmit.c:479 b43_generate_txhdr() error: uninitialized symbol 'rts'. drivers/net/wireless/broadcom/b43/xmit.c:497 b43_generate_txhdr() error: uninitialized symbol 'plcp'. drivers/net/wireless/broadcom/b43/xmit.c:517 b43_generate_txhdr() error: potentially dereferencing uninitialized 'hdr'. drivers/net/wireless/broadcom/b43/xmit.c:664 b43_rx() error: uninitialized symbol 'macstat'. drivers/net/wireless/broadcom/b43/xmit.c:719 b43_rx() error: uninitialized symbol 'chanstat'. drivers/net/wireless/broadcom/b43/xmit.c:771 b43_rx() error: uninitialized symbol 'mactime'. drivers/net/wireless/broadcom/b43/dma.c:67 b43_dma_address() error: uninitialized symbol 'addr'. drivers/net/wireless/realtek/rtlwifi/rtl8192cu/hw.c:642 _rtl92cu_init_chipn_two_out_ep_priority() error: uninitialized symbol 'valuelow'. drivers/net/wireless/realtek/rtlwifi/rtl8192cu/hw.c:644 _rtl92cu_init_chipn_two_out_ep_priority() error: uninitialized symbol 'valuehi'. Old smatch warnings: drivers/net/wireless/realtek/rtlwifi/rtl8192cu/hw.c:649 _rtl92cu_init_chipn_two_out_ep_priority() error: uninitialized symbol 'valuehi'. drivers/net/wireless/realtek/rtlwifi/rtl8192cu/hw.c:650 _rtl92cu_init_chipn_two_out_ep_priority() error: uninitialized symbol 'valuelow'. vim +/cts +457 drivers/net/wireless/broadcom/b43/xmit.c e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 233 eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 234 /* Generate a TX data header. */ 09552ccd8277e6 drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-23 235 int b43_generate_txhdr(struct b43_wldev *dev, eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 236 u8 *_txhdr, 035d0243ebbdbd drivers/net/wireless/b43/xmit.c gregor kowski 2009-08-19 237 struct sk_buff *skb_frag, e6a9854b05c1a6 drivers/net/wireless/b43/xmit.c Johannes Berg 2008-10-21 238 struct ieee80211_tx_info *info, e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 239 u16 cookie) e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 240 { 035d0243ebbdbd drivers/net/wireless/b43/xmit.c gregor kowski 2009-08-19 241 const unsigned char *fragment_data = skb_frag->data; 035d0243ebbdbd drivers/net/wireless/b43/xmit.c gregor kowski 2009-08-19 242 unsigned int fragment_len = skb_frag->len; eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 243 struct b43_txhdr *txhdr = (struct b43_txhdr *)_txhdr; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 244 const struct b43_phy *phy = &dev->phy; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 245 const struct ieee80211_hdr *wlhdr = e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 246 (const struct ieee80211_hdr *)fragment_data; d0f09804144fd9 drivers/net/wireless/b43/xmit.c Johannes Berg 2008-07-29 247 int use_encryption = !!info->control.hw_key; f37d923422b618 drivers/net/wireless/b43/xmit.c Harvey Harrison 2008-06-14 248 __le16 fctl = wlhdr->frame_control; 8318d78a44d49a drivers/net/wireless/b43/xmit.c Johannes Berg 2008-01-24 249 struct ieee80211_rate *fbrate; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 250 u8 rate, rate_fb; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 251 int rate_ofdm, rate_fb_ofdm; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 252 unsigned int plcp_fragment_len; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 253 u32 mac_ctl = 0; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 254 u16 phy_ctl = 0; 694718d8ad2f0b drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-10-17 255 bool fill_phy_ctl1 = (phy->type == B43_PHYTYPE_LP || 694718d8ad2f0b drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-10-17 256 phy->type == B43_PHYTYPE_N || 694718d8ad2f0b drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-10-17 257 phy->type == B43_PHYTYPE_HT); e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 258 u8 extra_ft = 0; 2e92e6f2c50b4b drivers/net/wireless/b43/xmit.c Johannes Berg 2008-05-15 259 struct ieee80211_rate *txrate; e6a9854b05c1a6 drivers/net/wireless/b43/xmit.c Johannes Berg 2008-10-21 260 struct ieee80211_tx_rate *rates; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 261 e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 262 memset(txhdr, 0, sizeof(*txhdr)); e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 263 e039fa4a4195ac drivers/net/wireless/b43/xmit.c Johannes Berg 2008-05-15 264 txrate = ieee80211_get_tx_rate(dev->wl->hw, info); 2e92e6f2c50b4b drivers/net/wireless/b43/xmit.c Johannes Berg 2008-05-15 265 rate = txrate ? txrate->hw_value : B43_CCK_RATE_1MB; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 266 rate_ofdm = b43_is_ofdm_rate(rate); 870abdf67170da drivers/net/wireless/b43/xmit.c Felix Fietkau 2008-10-05 267 fbrate = ieee80211_get_alt_retry_rate(dev->wl->hw, info, 0) ? : txrate; 8318d78a44d49a drivers/net/wireless/b43/xmit.c Johannes Berg 2008-01-24 268 rate_fb = fbrate->hw_value; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 269 rate_fb_ofdm = b43_is_ofdm_rate(rate_fb); e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 270 e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 271 if (rate_ofdm) e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 272 txhdr->phy_rate = b43_plcp_get_ratecode_ofdm(rate); e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 273 else e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 274 txhdr->phy_rate = b43_plcp_get_ratecode_cck(rate); e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 275 txhdr->mac_frame_ctl = wlhdr->frame_control; d458cdf712e0c6 drivers/net/wireless/b43/xmit.c Joe Perches 2013-10-01 276 memcpy(txhdr->tx_receiver, wlhdr->addr1, ETH_ALEN); e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 277 e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 278 /* Calculate duration for fallback rate */ e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 279 if ((rate_fb == rate) || e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 280 (wlhdr->duration_id & cpu_to_le16(0x8000)) || e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 281 (wlhdr->duration_id == cpu_to_le16(0))) { e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 282 /* If the fallback rate equals the normal rate or the e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 283 * dur_id field contains an AID, CFP magic or 0, e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 284 * use the original dur_id field. */ e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 285 txhdr->dur_fb = wlhdr->duration_id; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 286 } else { e039fa4a4195ac drivers/net/wireless/b43/xmit.c Johannes Berg 2008-05-15 287 txhdr->dur_fb = ieee80211_generic_frame_duration( 4ee73f338a528f drivers/net/wireless/b43/xmit.c Michal Kazior 2012-04-11 288 dev->wl->hw, info->control.vif, info->band, 4ee73f338a528f drivers/net/wireless/b43/xmit.c Michal Kazior 2012-04-11 289 fragment_len, fbrate); e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 290 } e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 291 e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 292 plcp_fragment_len = fragment_len + FCS_LEN; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 293 if (use_encryption) { e039fa4a4195ac drivers/net/wireless/b43/xmit.c Johannes Berg 2008-05-15 294 u8 key_idx = info->control.hw_key->hw_key_idx; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 295 struct b43_key *key; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 296 int wlhdr_len; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 297 size_t iv_len; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 298 66d2d089c394c7 drivers/net/wireless/b43/xmit.c Michael Buesch 2009-08-06 299 B43_WARN_ON(key_idx >= ARRAY_SIZE(dev->key)); e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 300 key = &(dev->key[key_idx]); 7be1bb6b798d50 drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-23 301 09552ccd8277e6 drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-23 302 if (unlikely(!key->keyconf)) { 09552ccd8277e6 drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-23 303 /* This key is invalid. This might only happen 09552ccd8277e6 drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-23 304 * in a short timeframe after machine resume before 09552ccd8277e6 drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-23 305 * we were able to reconfigure keys. 09552ccd8277e6 drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-23 306 * Drop this packet completely. Do not transmit it 09552ccd8277e6 drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-23 307 * unencrypted to avoid leaking information. */ 09552ccd8277e6 drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-23 308 return -ENOKEY; 09552ccd8277e6 drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-23 309 } e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 310 e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 311 /* Hardware appends ICV. */ 76708dee382a69 drivers/net/wireless/b43/xmit.c Felix Fietkau 2008-10-05 312 plcp_fragment_len += info->control.hw_key->icv_len; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 313 e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 314 key_idx = b43_kidx_to_fw(dev, key_idx); eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 315 mac_ctl |= (key_idx << B43_TXH_MAC_KEYIDX_SHIFT) & eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 316 B43_TXH_MAC_KEYIDX; eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 317 mac_ctl |= (key->algorithm << B43_TXH_MAC_KEYALG_SHIFT) & eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 318 B43_TXH_MAC_KEYALG; f37d923422b618 drivers/net/wireless/b43/xmit.c Harvey Harrison 2008-06-14 319 wlhdr_len = ieee80211_hdrlen(fctl); 035d0243ebbdbd drivers/net/wireless/b43/xmit.c gregor kowski 2009-08-19 320 if (key->algorithm == B43_SEC_ALGO_TKIP) { 035d0243ebbdbd drivers/net/wireless/b43/xmit.c gregor kowski 2009-08-19 321 u16 phase1key[5]; 035d0243ebbdbd drivers/net/wireless/b43/xmit.c gregor kowski 2009-08-19 322 int i; 035d0243ebbdbd drivers/net/wireless/b43/xmit.c gregor kowski 2009-08-19 323 /* we give the phase1key and iv16 here, the key is stored in 035d0243ebbdbd drivers/net/wireless/b43/xmit.c gregor kowski 2009-08-19 324 * shm. With that the hardware can do phase 2 and encryption. 035d0243ebbdbd drivers/net/wireless/b43/xmit.c gregor kowski 2009-08-19 325 */ 523b02ea23b175 drivers/net/wireless/b43/xmit.c Johannes Berg 2011-07-07 326 ieee80211_get_tkip_p1k(info->control.hw_key, skb_frag, phase1key); cde1b55b43b71c drivers/net/wireless/b43/xmit.c Michael Buesch 2009-09-06 327 /* phase1key is in host endian. Copy to little-endian txhdr->iv. */ cde1b55b43b71c drivers/net/wireless/b43/xmit.c Michael Buesch 2009-09-06 328 for (i = 0; i < 5; i++) { cde1b55b43b71c drivers/net/wireless/b43/xmit.c Michael Buesch 2009-09-06 329 txhdr->iv[i * 2 + 0] = phase1key[i]; cde1b55b43b71c drivers/net/wireless/b43/xmit.c Michael Buesch 2009-09-06 330 txhdr->iv[i * 2 + 1] = phase1key[i] >> 8; cde1b55b43b71c drivers/net/wireless/b43/xmit.c Michael Buesch 2009-09-06 331 } 035d0243ebbdbd drivers/net/wireless/b43/xmit.c gregor kowski 2009-08-19 332 /* iv16 */ 035d0243ebbdbd drivers/net/wireless/b43/xmit.c gregor kowski 2009-08-19 333 memcpy(txhdr->iv + 10, ((u8 *) wlhdr) + wlhdr_len, 3); 035d0243ebbdbd drivers/net/wireless/b43/xmit.c gregor kowski 2009-08-19 334 } else { c8e4955653a470 drivers/net/wireless/b43/xmit.c Silvan Jegen 2014-02-25 335 iv_len = min_t(size_t, info->control.hw_key->iv_len, e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 336 ARRAY_SIZE(txhdr->iv)); e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 337 memcpy(txhdr->iv, ((u8 *) wlhdr) + wlhdr_len, iv_len); e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 338 } 035d0243ebbdbd drivers/net/wireless/b43/xmit.c gregor kowski 2009-08-19 339 } efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 340 switch (dev->fw.hdr_format) { 5d852905561a97 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 341 case B43_FW_HDR_598: 5d852905561a97 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 342 b43_generate_plcp_hdr((struct b43_plcp_hdr4 *)(&txhdr->format_598.plcp), 5d852905561a97 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 343 plcp_fragment_len, rate); 5d852905561a97 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 344 break; efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 345 case B43_FW_HDR_351: 2391b7e8d40e4b drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 346 b43_generate_plcp_hdr((struct b43_plcp_hdr4 *)(&txhdr->format_351.plcp), eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 347 plcp_fragment_len, rate); efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 348 break; efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 349 case B43_FW_HDR_410: 2391b7e8d40e4b drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 350 b43_generate_plcp_hdr((struct b43_plcp_hdr4 *)(&txhdr->format_410.plcp), e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 351 plcp_fragment_len, rate); efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 352 break; eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 353 } e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 354 b43_generate_plcp_hdr((struct b43_plcp_hdr4 *)(&txhdr->plcp_fb), e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 355 plcp_fragment_len, rate_fb); e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 356 e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 357 /* Extra Frame Types */ e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 358 if (rate_fb_ofdm) eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 359 extra_ft |= B43_TXH_EFT_FB_OFDM; eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 360 else eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 361 extra_ft |= B43_TXH_EFT_FB_CCK; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 362 e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 363 /* Set channel radio code. Note that the micrcode ORs 0x100 to e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 364 * this value before comparing it to the value in SHM, if this e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 365 * is a 5Ghz packet. e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 366 */ e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 367 txhdr->chan_radio_code = phy->channel; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 368 e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 369 /* PHY TX Control word */ e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 370 if (rate_ofdm) eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 371 phy_ctl |= B43_TXH_PHY_ENC_OFDM; eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 372 else eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 373 phy_ctl |= B43_TXH_PHY_ENC_CCK; e6a9854b05c1a6 drivers/net/wireless/b43/xmit.c Johannes Berg 2008-10-21 374 if (info->control.rates[0].flags & IEEE80211_TX_RC_USE_SHORT_PREAMBLE) eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 375 phy_ctl |= B43_TXH_PHY_SHORTPRMBL; 9db1f6d725921c drivers/net/wireless/b43/xmit.c Michael Buesch 2007-12-22 376 d748b4642a53cd drivers/net/wireless/b43/xmit.c Johannes Berg 2012-03-28 377 switch (b43_ieee80211_antenna_sanitize(dev, 0)) { 9db1f6d725921c drivers/net/wireless/b43/xmit.c Michael Buesch 2007-12-22 378 case 0: /* Default */ eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 379 phy_ctl |= B43_TXH_PHY_ANT01AUTO; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 380 break; 9db1f6d725921c drivers/net/wireless/b43/xmit.c Michael Buesch 2007-12-22 381 case 1: /* Antenna 0 */ eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 382 phy_ctl |= B43_TXH_PHY_ANT0; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 383 break; 9db1f6d725921c drivers/net/wireless/b43/xmit.c Michael Buesch 2007-12-22 384 case 2: /* Antenna 1 */ eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 385 phy_ctl |= B43_TXH_PHY_ANT1; eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 386 break; eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 387 case 3: /* Antenna 2 */ eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 388 phy_ctl |= B43_TXH_PHY_ANT2; eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 389 break; eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 390 case 4: /* Antenna 3 */ eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 391 phy_ctl |= B43_TXH_PHY_ANT3; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 392 break; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 393 default: e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 394 B43_WARN_ON(1); e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 395 } e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 396 e6a9854b05c1a6 drivers/net/wireless/b43/xmit.c Johannes Berg 2008-10-21 397 rates = info->control.rates; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 398 /* MAC control */ e039fa4a4195ac drivers/net/wireless/b43/xmit.c Johannes Berg 2008-05-15 399 if (!(info->flags & IEEE80211_TX_CTL_NO_ACK)) eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 400 mac_ctl |= B43_TXH_MAC_ACK; f591fa5dbbbeae drivers/net/wireless/b43/xmit.c Johannes Berg 2008-07-10 401 /* use hardware sequence counter as the non-TID counter */ f591fa5dbbbeae drivers/net/wireless/b43/xmit.c Johannes Berg 2008-07-10 402 if (info->flags & IEEE80211_TX_CTL_ASSIGN_SEQ) eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 403 mac_ctl |= B43_TXH_MAC_HWSEQ; e039fa4a4195ac drivers/net/wireless/b43/xmit.c Johannes Berg 2008-05-15 404 if (info->flags & IEEE80211_TX_CTL_FIRST_FRAGMENT) eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 405 mac_ctl |= B43_TXH_MAC_STMSDU; 24acfc632b7ba5 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2014-05-20 406 if (!phy->gmode) eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 407 mac_ctl |= B43_TXH_MAC_5GHZ; e6a9854b05c1a6 drivers/net/wireless/b43/xmit.c Johannes Berg 2008-10-21 408 e6a9854b05c1a6 drivers/net/wireless/b43/xmit.c Johannes Berg 2008-10-21 409 /* Overwrite rates[0].count to make the retry calculation e6a9854b05c1a6 drivers/net/wireless/b43/xmit.c Johannes Berg 2008-10-21 410 * in the tx status easier. need the actual retry limit to e6a9854b05c1a6 drivers/net/wireless/b43/xmit.c Johannes Berg 2008-10-21 411 * detect whether the fallback rate was used. e6a9854b05c1a6 drivers/net/wireless/b43/xmit.c Johannes Berg 2008-10-21 412 */ e6a9854b05c1a6 drivers/net/wireless/b43/xmit.c Johannes Berg 2008-10-21 413 if ((rates[0].flags & IEEE80211_TX_RC_USE_RTS_CTS) || e6a9854b05c1a6 drivers/net/wireless/b43/xmit.c Johannes Berg 2008-10-21 414 (rates[0].count <= dev->wl->hw->conf.long_frame_max_tx_count)) { e6a9854b05c1a6 drivers/net/wireless/b43/xmit.c Johannes Berg 2008-10-21 415 rates[0].count = dev->wl->hw->conf.long_frame_max_tx_count; eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 416 mac_ctl |= B43_TXH_MAC_LONGFRAME; e6a9854b05c1a6 drivers/net/wireless/b43/xmit.c Johannes Berg 2008-10-21 417 } else { e6a9854b05c1a6 drivers/net/wireless/b43/xmit.c Johannes Berg 2008-10-21 418 rates[0].count = dev->wl->hw->conf.short_frame_max_tx_count; e6a9854b05c1a6 drivers/net/wireless/b43/xmit.c Johannes Berg 2008-10-21 419 } e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 420 e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 421 /* Generate the RTS or CTS-to-self frame */ e6a9854b05c1a6 drivers/net/wireless/b43/xmit.c Johannes Berg 2008-10-21 422 if ((rates[0].flags & IEEE80211_TX_RC_USE_RTS_CTS) || e6a9854b05c1a6 drivers/net/wireless/b43/xmit.c Johannes Berg 2008-10-21 423 (rates[0].flags & IEEE80211_TX_RC_USE_CTS_PROTECT)) { e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 424 unsigned int len; 3f649ab728cda8 drivers/net/wireless/broadcom/b43/xmit.c Kees Cook 2020-06-03 425 struct ieee80211_hdr *hdr; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 426 int rts_rate, rts_rate_fb; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 427 int rts_rate_ofdm, rts_rate_fb_ofdm; 3f649ab728cda8 drivers/net/wireless/broadcom/b43/xmit.c Kees Cook 2020-06-03 428 struct b43_plcp_hdr6 *plcp; 2e92e6f2c50b4b drivers/net/wireless/b43/xmit.c Johannes Berg 2008-05-15 429 struct ieee80211_rate *rts_cts_rate; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 430 e039fa4a4195ac drivers/net/wireless/b43/xmit.c Johannes Berg 2008-05-15 431 rts_cts_rate = ieee80211_get_rts_cts_rate(dev->wl->hw, info); 2e92e6f2c50b4b drivers/net/wireless/b43/xmit.c Johannes Berg 2008-05-15 432 2e92e6f2c50b4b drivers/net/wireless/b43/xmit.c Johannes Berg 2008-05-15 433 rts_rate = rts_cts_rate ? rts_cts_rate->hw_value : B43_CCK_RATE_1MB; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 434 rts_rate_ofdm = b43_is_ofdm_rate(rts_rate); d0b03439f7845a drivers/net/wireless/broadcom/b43/xmit.c Adrian Chadd 2016-05-16 435 rts_rate_fb = b43_calc_fallback_rate(rts_rate, phy->gmode); e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 436 rts_rate_fb_ofdm = b43_is_ofdm_rate(rts_rate_fb); e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 437 e6a9854b05c1a6 drivers/net/wireless/b43/xmit.c Johannes Berg 2008-10-21 438 if (rates[0].flags & IEEE80211_TX_RC_USE_CTS_PROTECT) { 3f649ab728cda8 drivers/net/wireless/broadcom/b43/xmit.c Kees Cook 2020-06-03 439 struct ieee80211_cts *cts; eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 440 efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 441 switch (dev->fw.hdr_format) { 5d852905561a97 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 442 case B43_FW_HDR_598: 5d852905561a97 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 443 cts = (struct ieee80211_cts *) 5d852905561a97 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 444 (txhdr->format_598.rts_frame); 5d852905561a97 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 445 break; efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 446 case B43_FW_HDR_351: eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 447 cts = (struct ieee80211_cts *) 2391b7e8d40e4b drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 448 (txhdr->format_351.rts_frame); efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 449 break; efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 450 case B43_FW_HDR_410: eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 451 cts = (struct ieee80211_cts *) 2391b7e8d40e4b drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 452 (txhdr->format_410.rts_frame); efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 453 break; eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 454 } e039fa4a4195ac drivers/net/wireless/b43/xmit.c Johannes Berg 2008-05-15 455 ieee80211_ctstoself_get(dev->wl->hw, info->control.vif, e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 456 fragment_data, fragment_len, e039fa4a4195ac drivers/net/wireless/b43/xmit.c Johannes Berg 2008-05-15 @457 info, cts); eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 458 mac_ctl |= B43_TXH_MAC_SENDCTS; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 459 len = sizeof(struct ieee80211_cts); e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 460 } else { 3f649ab728cda8 drivers/net/wireless/broadcom/b43/xmit.c Kees Cook 2020-06-03 461 struct ieee80211_rts *rts; eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 462 efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 463 switch (dev->fw.hdr_format) { 5d852905561a97 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 464 case B43_FW_HDR_598: 5d852905561a97 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 465 rts = (struct ieee80211_rts *) 5d852905561a97 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 466 (txhdr->format_598.rts_frame); 5d852905561a97 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 467 break; efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 468 case B43_FW_HDR_351: eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 469 rts = (struct ieee80211_rts *) 2391b7e8d40e4b drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 470 (txhdr->format_351.rts_frame); efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 471 break; efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 472 case B43_FW_HDR_410: eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 473 rts = (struct ieee80211_rts *) 2391b7e8d40e4b drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 474 (txhdr->format_410.rts_frame); efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 475 break; eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 476 } e039fa4a4195ac drivers/net/wireless/b43/xmit.c Johannes Berg 2008-05-15 477 ieee80211_rts_get(dev->wl->hw, info->control.vif, eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 478 fragment_data, fragment_len, e039fa4a4195ac drivers/net/wireless/b43/xmit.c Johannes Berg 2008-05-15 @479 info, rts); eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 480 mac_ctl |= B43_TXH_MAC_SENDRTS; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 481 len = sizeof(struct ieee80211_rts); e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 482 } e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 483 len += FCS_LEN; eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 484 eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 485 /* Generate the PLCP headers for the RTS/CTS frame */ efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 486 switch (dev->fw.hdr_format) { 5d852905561a97 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 487 case B43_FW_HDR_598: 5d852905561a97 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 488 plcp = &txhdr->format_598.rts_plcp; 5d852905561a97 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 489 break; efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 490 case B43_FW_HDR_351: 2391b7e8d40e4b drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 491 plcp = &txhdr->format_351.rts_plcp; efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 492 break; efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 493 case B43_FW_HDR_410: 2391b7e8d40e4b drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 494 plcp = &txhdr->format_410.rts_plcp; efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 495 break; efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 496 } eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 @497 b43_generate_plcp_hdr((struct b43_plcp_hdr4 *)plcp, eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 498 len, rts_rate); eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 499 plcp = &txhdr->rts_plcp_fb; eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 500 b43_generate_plcp_hdr((struct b43_plcp_hdr4 *)plcp, e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 501 len, rts_rate_fb); eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 502 efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 503 switch (dev->fw.hdr_format) { 5d852905561a97 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 504 case B43_FW_HDR_598: 5d852905561a97 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 505 hdr = (struct ieee80211_hdr *) 5d852905561a97 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 506 (&txhdr->format_598.rts_frame); 5d852905561a97 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 507 break; efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 508 case B43_FW_HDR_351: eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 509 hdr = (struct ieee80211_hdr *) 2391b7e8d40e4b drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 510 (&txhdr->format_351.rts_frame); efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 511 break; efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 512 case B43_FW_HDR_410: eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 513 hdr = (struct ieee80211_hdr *) 2391b7e8d40e4b drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 514 (&txhdr->format_410.rts_frame); efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 515 break; eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 516 } e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 @517 txhdr->rts_dur_fb = hdr->duration_id; eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 518 e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 519 if (rts_rate_ofdm) { eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 520 extra_ft |= B43_TXH_EFT_RTS_OFDM; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 521 txhdr->phy_rate_rts = e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 522 b43_plcp_get_ratecode_ofdm(rts_rate); eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 523 } else { eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 524 extra_ft |= B43_TXH_EFT_RTS_CCK; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 525 txhdr->phy_rate_rts = e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 526 b43_plcp_get_ratecode_cck(rts_rate); eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 527 } e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 528 if (rts_rate_fb_ofdm) eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 529 extra_ft |= B43_TXH_EFT_RTSFB_OFDM; eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 530 else eb189d8bc9824b drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-28 531 extra_ft |= B43_TXH_EFT_RTSFB_CCK; 3311abbbbff171 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-02-25 532 3311abbbbff171 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-02-25 533 if (rates[0].flags & IEEE80211_TX_RC_USE_RTS_CTS && 694718d8ad2f0b drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-10-17 534 fill_phy_ctl1) { 3311abbbbff171 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-02-25 535 txhdr->phy_ctl1_rts = cpu_to_le16( 3311abbbbff171 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-02-25 536 b43_generate_tx_phy_ctl1(dev, rts_rate)); 3311abbbbff171 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-02-25 537 txhdr->phy_ctl1_rts_fb = cpu_to_le16( 3311abbbbff171 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-02-25 538 b43_generate_tx_phy_ctl1(dev, rts_rate_fb)); 3311abbbbff171 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-02-25 539 } e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 540 } e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 541 e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 542 /* Magic cookie */ efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 543 switch (dev->fw.hdr_format) { 5d852905561a97 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 544 case B43_FW_HDR_598: 5d852905561a97 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 545 txhdr->format_598.cookie = cpu_to_le16(cookie); 5d852905561a97 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 546 break; efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 547 case B43_FW_HDR_351: 2391b7e8d40e4b drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 548 txhdr->format_351.cookie = cpu_to_le16(cookie); efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 549 break; efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 550 case B43_FW_HDR_410: 2391b7e8d40e4b drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 551 txhdr->format_410.cookie = cpu_to_le16(cookie); efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 552 break; efe0249b0fd1e9 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-08-11 553 } e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 554 694718d8ad2f0b drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-10-17 555 if (fill_phy_ctl1) { 3311abbbbff171 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-02-25 556 txhdr->phy_ctl1 = 3311abbbbff171 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-02-25 557 cpu_to_le16(b43_generate_tx_phy_ctl1(dev, rate)); 3311abbbbff171 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-02-25 558 txhdr->phy_ctl1_fb = 3311abbbbff171 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-02-25 559 cpu_to_le16(b43_generate_tx_phy_ctl1(dev, rate_fb)); 3311abbbbff171 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-02-25 560 } 3311abbbbff171 drivers/net/wireless/b43/xmit.c Rafał Miłecki 2011-02-25 561 e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 562 /* Apply the bitfields */ e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 563 txhdr->mac_ctl = cpu_to_le32(mac_ctl); e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 564 txhdr->phy_ctl = cpu_to_le16(phy_ctl); e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 565 txhdr->extra_ft = extra_ft; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 566 09552ccd8277e6 drivers/net/wireless/b43/xmit.c Michael Buesch 2008-01-23 567 return 0; e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 568 } e4d6b7951812d9 drivers/net/wireless/b43/xmit.c Michael Buesch 2007-09-18 569 :::::: The code at line 457 was first introduced by commit :::::: e039fa4a4195ac4ee895e6f3d1334beed63256fe mac80211: move TX info into skb->cb :::::: TO: Johannes Berg :::::: CC: John W. Linville --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org