From patchwork Mon Apr 15 17:04:06 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karl Beldan X-Patchwork-Id: 2446371 Return-Path: X-Original-To: patchwork-linux-wireless@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork2.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork2.kernel.org (Postfix) with ESMTP id 6AE67DF2E5 for ; Mon, 15 Apr 2013 17:08:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755005Ab3DORIV (ORCPT ); Mon, 15 Apr 2013 13:08:21 -0400 Received: from mail-we0-f171.google.com ([74.125.82.171]:59606 "EHLO mail-we0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754886Ab3DORIU (ORCPT ); Mon, 15 Apr 2013 13:08:20 -0400 Received: by mail-we0-f171.google.com with SMTP id i48so2173850wef.16 for ; Mon, 15 Apr 2013 10:08:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:from:to:cc:subject:date:message-id:x-mailer; bh=nEGVzi7sD0GbHxPiJ4HDOsXl5LLcy/TnMlAR7w5ItMg=; b=kdxFVK+hRsqiTbQLbB8JCUCUHFZuNoT9KH7HhRTvK5RS0P+tc9lesSwjF3mKZMAZ1T FfUsEOJ93gVajB8uWBRkZuuSq9Oyj7OPv/iDS2e9t4a3/wdhPVHgxBtrLzaZFM8Fn+cN 9zcjow4NJEXQXM8wBefA8pemSRuOCfR4HVdVR2nl5Zu+o1KbQlCpzJWnoJm7rAehPbNZ epXjaiCS2k2zIzQSAHwUTslUHAyrix1QC8mQ+ajug7oKWkg4omAcqoDgUVT4Q499GNlO 0V96P03J4SuLcfwjuHh2aLa/SMS9AZHhNkzsLAcs1NnjAE+4JEUV/+j3OT0PERbOczqO 9/Lg== X-Received: by 10.194.119.33 with SMTP id kr1mr29001261wjb.36.1366045699467; Mon, 15 Apr 2013 10:08:19 -0700 (PDT) Received: from magnum.frso.rivierawaves.com (vpn.rivierawaves.com. [91.151.119.162]) by mx.google.com with ESMTPS id g9sm16268637wix.1.2013.04.15.10.08.18 (version=TLSv1.2 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Mon, 15 Apr 2013 10:08:18 -0700 (PDT) From: Karl Beldan To: Johannes Berg Cc: linux-wireless , Karl Beldan , Karl Beldan Subject: [PATCH] mac80211: adjust initial chandefs assignments in ieee80211_register_hw Date: Mon, 15 Apr 2013 19:04:06 +0200 Message-Id: <1366045446-11286-1-git-send-email-karl.beldan@gmail.com> X-Mailer: git-send-email 1.8.2 Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org From: Karl Beldan I noticed that monitor interfaces by default would start on 5GHz while STA/AP ones would start 2GHZ - It stems from the fact that ieee80211_register_hw unnecessarily adjusts the local->monitor_chandef for each band. This avoids this and while at it uses a single dflt_chandef to initialize in one go local->{hw.conf.chandef,_oper_chandef,monitor_chandef} Signed-off-by: Karl Beldan --- net/mac80211/main.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/net/mac80211/main.c b/net/mac80211/main.c index 52136fd..b867d0a 100644 --- a/net/mac80211/main.c +++ b/net/mac80211/main.c @@ -668,6 +668,7 @@ int ieee80211_register_hw(struct ieee80211_hw *hw) int channels, max_bitrates; bool supp_ht, supp_vht; netdev_features_t feature_whitelist; + struct cfg80211_chan_def dflt_chandef = {}; static const u32 cipher_suites[] = { /* keep WEP first, it may be removed below */ WLAN_CIPHER_SUITE_WEP40, @@ -745,19 +746,18 @@ int ieee80211_register_hw(struct ieee80211_hw *hw) sband = local->hw.wiphy->bands[band]; if (!sband) continue; - if (!local->use_chanctx && !local->_oper_chandef.chan) { + + if (!dflt_chandef.chan) { + cfg80211_chandef_create(&dflt_chandef, + &sband->channels[0], + NL80211_CHAN_NO_HT); /* init channel we're on */ - struct cfg80211_chan_def chandef = { - .chan = &sband->channels[0], - .width = NL80211_CHAN_NO_HT, - .center_freq1 = sband->channels[0].center_freq, - .center_freq2 = 0 - }; - local->hw.conf.chandef = local->_oper_chandef = chandef; + if (!local->use_chanctx && !local->_oper_chandef.chan) + local->hw.conf.chandef = local->_oper_chandef = + dflt_chandef; + local->monitor_chandef = dflt_chandef; } - cfg80211_chandef_create(&local->monitor_chandef, - &sband->channels[0], - NL80211_CHAN_NO_HT); + channels += sband->n_channels; if (max_bitrates < sband->n_bitrates)