• Stanislaw Gruszka's avatar
    iwlagn: fix channel switch locking · 6f213ff1
    Stanislaw Gruszka authored
    We use priv->mutex to avoid race conditions between iwl_chswitch_done()
    and iwlagn_mac_channel_switch(), when marking channel switch in
    progress. But iwl_chswitch_done() can be called in atomic context
    from iwl_rx_csa() or with mutex already taken from iwlagn_commit_rxon().
    
    These bugs were introduced by:
    
    commit 79d07325
    Author: Wey-Yi Guy <wey-yi.w.guy@intel.com>
    Date:   Thu May 6 08:54:11 2010 -0700
    
        iwlwifi: support channel switch offload in driver
    
    To fix remove mutex from iwl_chswitch_done() and use atomic bitops for
    marking channel switch pending.
    
    Also remove iwl2030_hw_channel_switch() since 2000 series adapters are
    2.4GHz only devices.
    
    Cc: stable@kernel.org # 2.6.36+
    Signed-off-by: default avatarStanislaw Gruszka <sgruszka@redhat.com>
    Acked-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    6f213ff1
iwl-core.h 22.4 KB