From patchwork Thu Nov 27 13:41:57 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Emmanuel Grumbach X-Patchwork-Id: 5396351 Return-Path: X-Original-To: patchwork-linux-wireless@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 34F4D9F2F5 for ; Thu, 27 Nov 2014 13:46:47 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 617F1201EC for ; Thu, 27 Nov 2014 13:46:46 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4890A201C7 for ; Thu, 27 Nov 2014 13:46:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751146AbaK0Nqn (ORCPT ); Thu, 27 Nov 2014 08:46:43 -0500 Received: from mga14.intel.com ([192.55.52.115]:49925 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750891AbaK0Nqn (ORCPT ); Thu, 27 Nov 2014 08:46:43 -0500 Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga103.fm.intel.com with ESMTP; 27 Nov 2014 05:39:30 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.07,469,1413270000"; d="scan'208";a="629189907" Received: from unknown (HELO egrumbacLAB.jer.intel.com) ([10.12.217.187]) by fmsmga001.fm.intel.com with ESMTP; 27 Nov 2014 05:46:30 -0800 From: Emmanuel Grumbach To: linux-wireless@vger.kernel.org Cc: michal.kazior@tieto.com, Emmanuel Grumbach Subject: [RFC] mac80211: update the channel context after channel switch Date: Thu, 27 Nov 2014 15:41:57 +0200 Message-Id: <1417095717-23017-1-git-send-email-emmanuel.grumbach@intel.com> X-Mailer: git-send-email 1.9.1 Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP When the channel switch has been made, a vif is now using the channel context which was reserved. When that happens, we need to update the channel context since its parameters may change. I hit a case in which I switched to a 40Mhz channel but the reserved channel context was still on 20Mhz. The rate control would try to send 40Mhz packets on a 20Mhz channel context and that made iwlwifi's firmware unhappy. Signed-off-by: Emmanuel Grumbach --- This is a second version of the patch I sent earlier. I think the first version is more generic. Luca / Michal / Whoever, please share your thoughts on which version should be merged. --- net/mac80211/chan.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/net/mac80211/chan.c b/net/mac80211/chan.c index 4c74e8d..eadc1a0 100644 --- a/net/mac80211/chan.c +++ b/net/mac80211/chan.c @@ -993,6 +993,10 @@ ieee80211_vif_use_reserved_reassign(struct ieee80211_sub_if_data *sdata) sdata->vif.bss_conf.chandef = sdata->reserved_chandef; + ieee80211_recalc_smps_chanctx(local, new_ctx); + ieee80211_recalc_radar_chanctx(local, new_ctx); + ieee80211_recalc_chanctx_min_def(local, new_ctx); + if (changed) ieee80211_bss_info_change_notify(sdata, changed);