iwl3945: Fix statistics in monitor mode
authorMaxim Levitsky <maximlevitsky@gmail.com>
Fri, 1 Aug 2008 09:54:27 +0000 (12:54 +0300)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 1 Aug 2008 19:31:36 +0000 (15:31 -0400)
iwl3945_rx_reply_rx was sending packets too early to
mac80211, before updating signal strength/quality.
This resulted in garbage power levels.

Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/iwlwifi/iwl-3945.c

index a51e0eaa1334336f71281bda765212c5fba0090f..56a9361a847f971b1f7f81abc601141566bba49a 100644 (file)
@@ -710,10 +710,7 @@ static void iwl3945_rx_reply_rx(struct iwl3945_priv *priv,
                return;
        }
 
-       if (priv->iw_mode == IEEE80211_IF_TYPE_MNTR) {
-               iwl3945_pass_packet_to_mac80211(priv, rxb, &rx_status);
-               return;
-       }
+
 
        /* Convert 3945's rssi indicator to dBm */
        rx_status.signal = rx_stats->rssi - IWL_RSSI_OFFSET;
@@ -775,6 +772,11 @@ static void iwl3945_rx_reply_rx(struct iwl3945_priv *priv,
                priv->last_rx_noise = rx_status.noise;
        }
 
+       if (priv->iw_mode == IEEE80211_IF_TYPE_MNTR) {
+               iwl3945_pass_packet_to_mac80211(priv, rxb, &rx_status);
+               return;
+       }
+
        switch (le16_to_cpu(header->frame_control) & IEEE80211_FCTL_FTYPE) {
        case IEEE80211_FTYPE_MGMT:
                switch (le16_to_cpu(header->frame_control) &