OSDN Git Service

mac80211: clean up ieee80211_rx_h_check_dup code
[sagit-ice-cold/kernel_xiaomi_msm8998.git] / net / mac80211 / rx.c
index 5bc0b88..60692d9 100644 (file)
@@ -1113,16 +1113,16 @@ ieee80211_rx_h_check_dup(struct ieee80211_rx_data *rx)
            is_multicast_ether_addr(hdr->addr1))
                return RX_CONTINUE;
 
-       if (rx->sta) {
-               if (unlikely(ieee80211_has_retry(hdr->frame_control) &&
-                            rx->sta->last_seq_ctrl[rx->seqno_idx] ==
-                            hdr->seq_ctrl)) {
-                       I802_DEBUG_INC(rx->local->dot11FrameDuplicateCount);
-                       rx->sta->num_duplicates++;
-                       return RX_DROP_UNUSABLE;
-               } else if (!(status->flag & RX_FLAG_AMSDU_MORE)) {
-                       rx->sta->last_seq_ctrl[rx->seqno_idx] = hdr->seq_ctrl;
-               }
+       if (!rx->sta)
+               return RX_CONTINUE;
+
+       if (unlikely(ieee80211_has_retry(hdr->frame_control) &&
+                    rx->sta->last_seq_ctrl[rx->seqno_idx] == hdr->seq_ctrl)) {
+               I802_DEBUG_INC(rx->local->dot11FrameDuplicateCount);
+               rx->sta->num_duplicates++;
+               return RX_DROP_UNUSABLE;
+       } else if (!(status->flag & RX_FLAG_AMSDU_MORE)) {
+               rx->sta->last_seq_ctrl[rx->seqno_idx] = hdr->seq_ctrl;
        }
 
        return RX_CONTINUE;