diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.c b/drivers/net/wireless/iwlwifi/iwl-3945.c index eb30819cddc4..0d3cc3559039 100644 --- a/drivers/net/wireless/iwlwifi/iwl-3945.c +++ b/drivers/net/wireless/iwlwifi/iwl-3945.c @@ -524,7 +524,7 @@ static void iwl3945_add_radiotap(struct iwl3945_priv *priv, s8 noise = 0; int rate = stats->rate_idx; u64 tsf = stats->mactime; - __le16 phy_flags_hw = rx_hdr->phy_flags; + __le16 phy_flags_hw = rx_hdr->phy_flags, antenna; struct iwl3945_rt_rx_hdr { struct ieee80211_radiotap_header rt_hdr; @@ -596,8 +596,8 @@ static void iwl3945_add_radiotap(struct iwl3945_priv *priv, iwl3945_rt->rt_rate = iwl3945_rates[rate].ieee; /* antenna number */ - iwl3945_rt->rt_antenna = - le16_to_cpu(phy_flags_hw & RX_RES_PHY_FLAGS_ANTENNA_MSK) >> 4; + antenna = phy_flags_hw & RX_RES_PHY_FLAGS_ANTENNA_MSK; + iwl3945_rt->rt_antenna = le16_to_cpu(antenna) >> 4; /* set the preamble flag if we have it */ if (phy_flags_hw & RX_RES_PHY_FLAGS_SHORT_PREAMBLE_MSK) diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.h b/drivers/net/wireless/iwlwifi/iwl-3945.h index ac1226946aa6..333c85077211 100644 --- a/drivers/net/wireless/iwlwifi/iwl-3945.h +++ b/drivers/net/wireless/iwlwifi/iwl-3945.h @@ -280,8 +280,8 @@ struct iwl3945_frame { #define SEQ_TO_QUEUE(x) ((x >> 8) & 0xbf) #define QUEUE_TO_SEQ(x) ((x & 0xbf) << 8) -#define SEQ_TO_INDEX(x) (x & 0xff) -#define INDEX_TO_SEQ(x) (x & 0xff) +#define SEQ_TO_INDEX(x) ((u8)(x & 0xff)) +#define INDEX_TO_SEQ(x) ((u8)(x & 0xff)) #define SEQ_HUGE_FRAME (0x4000) #define SEQ_RX_FRAME __constant_cpu_to_le16(0x8000) #define SEQ_TO_SN(seq) (((seq) & IEEE80211_SCTL_SEQ) >> 4) diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c index 0171bb8cbbc6..73e8a24eb9ce 100644 --- a/drivers/net/wireless/iwlwifi/iwl-4965.c +++ b/drivers/net/wireless/iwlwifi/iwl-4965.c @@ -3296,6 +3296,7 @@ static void iwl4965_add_radiotap(struct iwl_priv *priv, s8 noise = 0; int rate = stats->rate_idx; u64 tsf = stats->mactime; + __le16 antenna; __le16 phy_flags_hw = rx_start->phy_flags; struct iwl4965_rt_rx_hdr { struct ieee80211_radiotap_header rt_hdr; @@ -3380,8 +3381,8 @@ static void iwl4965_add_radiotap(struct iwl_priv *priv, * new 802.11n radiotap field "RX chains" that is defined * as a bitmask. */ - iwl4965_rt->rt_antenna = - le16_to_cpu(phy_flags_hw & RX_RES_PHY_FLAGS_ANTENNA_MSK) >> 4; + antenna = phy_flags_hw & RX_RES_PHY_FLAGS_ANTENNA_MSK; + iwl4965_rt->rt_antenna = le16_to_cpu(antenna) >> 4; /* set the preamble flag if appropriate */ if (phy_flags_hw & RX_RES_PHY_FLAGS_SHORT_PREAMBLE_MSK) diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.h b/drivers/net/wireless/iwlwifi/iwl-4965.h index c8e7028cdf2a..0ec217da48d4 100644 --- a/drivers/net/wireless/iwlwifi/iwl-4965.h +++ b/drivers/net/wireless/iwlwifi/iwl-4965.h @@ -294,8 +294,8 @@ struct iwl4965_frame { #define SEQ_TO_QUEUE(x) ((x >> 8) & 0xbf) #define QUEUE_TO_SEQ(x) ((x & 0xbf) << 8) -#define SEQ_TO_INDEX(x) (x & 0xff) -#define INDEX_TO_SEQ(x) (x & 0xff) +#define SEQ_TO_INDEX(x) ((u8)(x & 0xff)) +#define INDEX_TO_SEQ(x) ((u8)(x & 0xff)) #define SEQ_HUGE_FRAME (0x4000) #define SEQ_RX_FRAME __constant_cpu_to_le16(0x8000) #define SEQ_TO_SN(seq) (((seq) & IEEE80211_SCTL_SEQ) >> 4)