lkml.org 
[lkml]   [2012]   [Nov]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[ 07/54] iwlwifi: fix monitor mode FCS flag
    Date
    3.6-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Johannes Berg <johannes.berg@intel.com>

    commit 04baaa27b43d389879237b32f8bd194a94cf1ca7 upstream.

    When the firmware is in SNIFFER mode, it leaves
    the FCS at the end of frame. Not telling mac80211
    means it won't add the right flag to the radiotap
    header and that confuses wireshark.

    Since mac80211 doesn't have a per-packet flag, set
    the HW flag dynamically. This works as the monitor
    vif can only be present in the driver by itself.

    This fixes a regression introduced by my

    commit 578977264199de9815ace51ade87cec4894cf010
    Author: Johannes Berg <johannes.berg@intel.com>
    Date: Fri May 11 10:53:18 2012 +0200

    iwlwifi: support explicit monitor interface

    Reported-by: MARK PHILLIPS <mark.phillips@virgin.net>
    Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/net/wireless/iwlwifi/dvm/mac80211.c | 14 ++++++++++++++
    1 file changed, 14 insertions(+)

    --- a/drivers/net/wireless/iwlwifi/dvm/mac80211.c
    +++ b/drivers/net/wireless/iwlwifi/dvm/mac80211.c
    @@ -1352,6 +1352,20 @@ static int iwlagn_mac_add_interface(stru
    vif_priv->ctx = ctx;
    ctx->vif = vif;

    + /*
    + * In SNIFFER device type, the firmware reports the FCS to
    + * the host, rather than snipping it off. Unfortunately,
    + * mac80211 doesn't (yet) provide a per-packet flag for
    + * this, so that we have to set the hardware flag based
    + * on the interfaces added. As the monitor interface can
    + * only be present by itself, and will be removed before
    + * other interfaces are added, this is safe.
    + */
    + if (vif->type == NL80211_IFTYPE_MONITOR)
    + priv->hw->flags |= IEEE80211_HW_RX_INCLUDES_FCS;
    + else
    + priv->hw->flags &= ~IEEE80211_HW_RX_INCLUDES_FCS;
    +
    err = iwl_setup_interface(priv, ctx);
    if (!err || reset)
    goto out;



    \
     
     \ /
      Last update: 2012-12-01 03:21    [W:4.308 / U:0.120 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site