.. | .. |
---|
491 | 491 | { |
---|
492 | 492 | struct tid_ampdu_tx *tid_tx; |
---|
493 | 493 | struct ieee80211_local *local = sta->local; |
---|
494 | | - struct ieee80211_sub_if_data *sdata = sta->sdata; |
---|
| 494 | + struct ieee80211_sub_if_data *sdata; |
---|
495 | 495 | struct ieee80211_ampdu_params params = { |
---|
496 | 496 | .sta = &sta->sta, |
---|
497 | 497 | .action = IEEE80211_AMPDU_TX_START, |
---|
.. | .. |
---|
521 | 521 | */ |
---|
522 | 522 | synchronize_net(); |
---|
523 | 523 | |
---|
| 524 | + sdata = sta->sdata; |
---|
524 | 525 | params.ssn = sta->tid_seq[tid] >> 4; |
---|
525 | 526 | ret = drv_ampdu_action(local, sdata, ¶ms); |
---|
526 | 527 | tid_tx->ssn = params.ssn; |
---|
.. | .. |
---|
534 | 535 | */ |
---|
535 | 536 | set_bit(HT_AGG_STATE_DRV_READY, &tid_tx->state); |
---|
536 | 537 | } else if (ret) { |
---|
| 538 | + if (!sdata) |
---|
| 539 | + return; |
---|
| 540 | + |
---|
537 | 541 | ht_dbg(sdata, |
---|
538 | 542 | "BA request denied - HW unavailable for %pM tid %d\n", |
---|
539 | 543 | sta->sta.addr, tid); |
---|