All of lore.kernel.org
 help / color / mirror / Atom feed
From: Felix Fietkau <nbd@openwrt.org>
To: "Luis R. Rodriguez" <rodrigue@qca.qualcomm.com>
Cc: linux-wireless@vger.kernel.org, linville@tuxdriver.com,
	johannes@sipsolutions.net, arend@broadcom.com
Subject: Re: [PATCH v2 3.7 2/2] cfg80211: fix initialization of chan->max_reg_power
Date: Mon, 08 Oct 2012 23:01:30 +0200	[thread overview]
Message-ID: <50733F2A.2060306@openwrt.org> (raw)
In-Reply-To: <20121008190156.GK3354@lenteja.do-not-panic.com>

On 2012-10-08 9:01 PM, Luis R. Rodriguez wrote:
> On Sat, Oct 06, 2012 at 02:40:54PM +0200, Felix Fietkau wrote:
>> A few places touch chan->max_power based on updated tx power rules, but
>> forget to do the same to chan->max_reg_power.
>> 
>> Signed-off-by: Felix Fietkau <nbd@openwrt.org>
>> Cc: stable@vger.kernel.org
>> ---
>>  net/wireless/reg.c |    5 +++--
>>  1 file changed, 3 insertions(+), 2 deletions(-)
>> 
>> diff --git a/net/wireless/reg.c b/net/wireless/reg.c
>> index 3b8cbbc..bcc7d7e 100644
>> --- a/net/wireless/reg.c
>> +++ b/net/wireless/reg.c
>> @@ -908,7 +908,7 @@ static void handle_channel(struct wiphy *wiphy,
>>  			map_regdom_flags(reg_rule->flags) | bw_flags;
>>  		chan->max_antenna_gain = chan->orig_mag =
>>  			(int) MBI_TO_DBI(power_rule->max_antenna_gain);
>> -		chan->max_power = chan->orig_mpwr =
>> +		chan->max_reg_power = chan->max_power = chan->orig_mpwr =
>>  			(int) MBM_TO_DBM(power_rule->max_eirp);
>>  		return;
>>  	}
>> @@ -1331,7 +1331,8 @@ static void handle_channel_custom(struct wiphy *wiphy,
>>  
>>  	chan->flags |= map_regdom_flags(reg_rule->flags) | bw_flags;
>>  	chan->max_antenna_gain = (int) MBI_TO_DBI(power_rule->max_antenna_gain);
>> -	chan->max_power = (int) MBM_TO_DBM(power_rule->max_eirp);
>> +	chan->max_reg_power = chan->max_power =
>> +		(int) MBM_TO_DBM(power_rule->max_eirp);
> 
> This looks good to me, good catch! The commit log could use some love,
> given that this is a stable patch it is worthy to describe the
> consequences of not applying this patch. Can you describe what you
> observed that makes this a critical patch? The only piece of code
> that uses max_reg_power in cfg80211, mac80211 or drivers is on
> net/wireless/reg.c and drivers/net/wireless/mwifiex/cfg80211.c.
> In either case the issue the code you are patching is for code
> that deals with drivers that have a custom regulatory domain
> in which orig_mpwr would have been initialized to a non-zero value
> upon registration. In such cases we could only potenially run into
> an issue on this piece of code on handle_channel():
> 
>         chan->max_reg_power = (int) MBM_TO_DBM(power_rule->max_eirp);
>         if (chan->orig_mpwr) {
>                 /*
>                  * Devices that have their own custom regulatory domain
>                  * but also use WIPHY_FLAG_STRICT_REGULATORY will follow the
>                  * passed country IE power settings.
>                  */
>                 if (initiator == NL80211_REGDOM_SET_BY_COUNTRY_IE &&
>                     wiphy->flags & WIPHY_FLAG_CUSTOM_REGULATORY &&
>                     wiphy->flags & WIPHY_FLAG_STRICT_REGULATORY)
>                         chan->max_power = chan->max_reg_power;
>                 else
>                         chan->max_power = min(chan->orig_mpwr,
>                                               chan->max_reg_power);
>         } else
>                 chan->max_power = chan->max_reg_power;
> 
> The issue would happen if orig_mpwr is non zero (custom) and
> then max_reg_power would not have been initialized. This runs
> when you change a regulatory domain on a card with a custom
> regulatory domain and this would be an issue if max_reg_power
> would not be initialized. This however does not happen due to
> the first line above.
> 
> So I agree with this patch but do not see the requirement for
> it to go in as a stable fix to older stable kernels.
OK, I'll extend the commit log and resend without the stable-Cc.

- Felix

  reply	other threads:[~2012-10-08 21:01 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-06 12:40 [PATCH v2 3.7 1/2] cfg80211: fix antenna gain handling Felix Fietkau
2012-10-06 12:40 ` [PATCH v2 3.7 2/2] cfg80211: fix initialization of chan->max_reg_power Felix Fietkau
2012-10-08 19:01   ` Luis R. Rodriguez
2012-10-08 21:01     ` Felix Fietkau [this message]
2012-10-09  0:12       ` Luis R. Rodriguez
2012-10-08 18:37 ` [PATCH v2 3.7 1/2] cfg80211: fix antenna gain handling Luis R. Rodriguez
2012-10-08 20:52   ` Felix Fietkau
2012-10-09  1:00     ` Luis R. Rodriguez
2012-10-09  9:49       ` Felix Fietkau
2012-10-09 18:43         ` Luis R. Rodriguez

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50733F2A.2060306@openwrt.org \
    --to=nbd@openwrt.org \
    --cc=arend@broadcom.com \
    --cc=johannes@sipsolutions.net \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linville@tuxdriver.com \
    --cc=rodrigue@qca.qualcomm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.