From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: drivers/net/wireless/broadcom/b43/xmit.c:457 b43_generate_txhdr() error: uninitialized symbol 'cts'.
Date: Sun, 11 Oct 2020 14:21:13 +0800 [thread overview]
Message-ID: <202010111405.4BTonyja-lkp@intel.com> (raw)
[-- 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 --]
next reply other threads:[~2020-10-11 6:21 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-11 6:21 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2021-06-25 13:05 drivers/net/wireless/broadcom/b43/xmit.c:457 b43_generate_txhdr() error: uninitialized symbol 'cts' kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202010111405.4BTonyja-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.