On Sun, Feb 27, 2011 at 11:28:18PM +0300, Stanislav Fomichev wrote:
> --- a/drivers/staging/brcm80211/brcmsmac/wlc_ampdu.c
> +++ b/drivers/staging/brcm80211/brcmsmac/wlc_ampdu.c
> @@ -637,11 +637,12 @@ wlc_sendampdu(struct ampdu_info *ampdu, wlc_txq_info_t 
> *qi,
>                       mcl |= TXC_STARTMSDU;
>                       rts = (struct ieee80211_rts *)&txh->rts_frame;
>                       fc = le16_to_cpu(rts->frame_control);
> -                     if ((fc & FC_KIND_MASK) == FC_RTS) {
> +
> +                     if (ieee80211_is_rts(rts->frame_control)) {

fc isn't used anymore so it can be removed.

> @@ -6051,7 +6044,8 @@ wlc_d11hdrs_mac80211(struct wlc_info *wlc, struct 
> ieee80211_hw *hw,
>       txrate[1]->count = 0;
>  
>       /* (2) PROTECTION, may change rspec */
> -     if ((ieee80211_is_data(fc) || ieee80211_is_mgmt(fc)) &&
> +     if ((ieee80211_is_data(h->frame_control) ||
> +         ieee80211_is_mgmt(h->frame_control)) &&

This is a bugfix because fc is cpu endian and h->frame_control is big
endian.  Thank you for fixing the bug, :), but please not behavior 
changes in the commit message.

> @@ -6684,7 +6680,7 @@ wlc_dotxstatus(struct wlc_info *wlc, tx_status_t *txs, 
> u32 frm_tx2)
>       tx_rts_count =
>           (txs->status & TX_STATUS_RTS_RTX_MASK) >> TX_STATUS_RTS_RTX_SHIFT;
>  
> -     lastframe = (fc & IEEE80211_FCTL_MOREFRAGS) == 0;
> +     lastframe = ieee80211_has_morefrags(h->frame_control);

This is reversed.  It should be:
        if (ieee80211_has_morefrags(h->frame_control))
                lastframe = false;
        else
                lastframe = true;
  
regards,
dan carpenter
_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel

Reply via email to