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