From patchwork Sat Dec 14 19:09:06 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Luis R. Rodriguez" X-Patchwork-Id: 3349401 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 8312E9F243 for ; Sat, 14 Dec 2013 19:09:21 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id ACFF9206CC for ; Sat, 14 Dec 2013 19:09:20 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C8783206B0 for ; Sat, 14 Dec 2013 19:09:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753870Ab3LNTJR (ORCPT ); Sat, 14 Dec 2013 14:09:17 -0500 Received: from mail-wi0-f176.google.com ([209.85.212.176]:62424 "EHLO mail-wi0-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753612Ab3LNTJR (ORCPT ); Sat, 14 Dec 2013 14:09:17 -0500 Received: by mail-wi0-f176.google.com with SMTP id hq4so611423wib.15 for ; Sat, 14 Dec 2013 11:09:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=lB0g8aiL17kDpYn7TbW/0RxWQnU+tKU1DRg/ftr6hzs=; b=RE80/7ZicDeeNon2hgyn20I4NuWSinHGgvd/gqRTREGL7ZVGEAIa67ECnxVaBHqqJs bPmCylQzGWoyJQuf77aspOwGIzbq4hJZFVIGDvJluvZ7gGZQqC1iX0WrY+d89O+QKknW eWLvP8mEq6owrcIwfjmQ9g4k7DvUvPFMA25DcG2u+EBadspvqsQrg5EVkUvm/PfyBXW3 B5Gjori5DebNMlEhPlSNDBupko97aU9R0CbDxVpCZpM5GrSuBTQnGGS8/ssB5in5x2It m0vi50wj7zPR4Gu3IwmuzQAbs1jqxOaEpcVuZw9ezKGlXL3F4lhhQKJHG0wXHhZ95zrn Zerg== X-Received: by 10.180.108.83 with SMTP id hi19mr7096711wib.26.1387048155509; Sat, 14 Dec 2013 11:09:15 -0800 (PST) Received: from mcgrof@gmail.com (85-170-63-113.rev.numericable.fr. [85.170.63.113]) by mx.google.com with ESMTPSA id fj8sm26370072wib.1.2013.12.14.11.09.13 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Sat, 14 Dec 2013 11:09:14 -0800 (PST) Received: by mcgrof@gmail.com (sSMTP sendmail emulation); Sat, 14 Dec 2013 20:09:13 +0100 From: "Luis R. Rodriguez" To: linville@tuxdriver.com, johannes@sipsolutions.net Cc: linux-wireless@vger.kernel.org, "Luis R. Rodriguez" , Sujith Manoharan Subject: [PATCH 2/2] cfg80211: make regulatory_hint() remove REGULATORY_CUSTOM_REG Date: Sat, 14 Dec 2013 20:09:06 +0100 Message-Id: <1387048146-16380-2-git-send-email-mcgrof@do-not-panic.com> X-Mailer: git-send-email 1.8.4.3 In-Reply-To: <1387048146-16380-1-git-send-email-mcgrof@do-not-panic.com> References: <1387048146-16380-1-git-send-email-mcgrof@do-not-panic.com> Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Spam-Status: No, score=-7.2 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=ham 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 The REGULATORY_CUSTOM_REG can be used during early init with the goal of overriding the wiphy's default regulatory settings in case the alpha2 of the device is not known. In the case that the alpha2 becomes known lets avoid having drivers having to clear the REGULATORY_CUSTOM_REG flag by doing it for them when regulatory_hint() is used. Cc: Sujith Manoharan Signed-off-by: Luis R. Rodriguez --- drivers/net/wireless/ath/regd.c | 2 -- include/net/regulatory.h | 4 ++++ net/wireless/reg.c | 2 ++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/ath/regd.c b/drivers/net/wireless/ath/regd.c index 56c3d05..e5e9059 100644 --- a/drivers/net/wireless/ath/regd.c +++ b/drivers/net/wireless/ath/regd.c @@ -652,8 +652,6 @@ ath_regd_init_wiphy(struct ath_regulatory *reg, } wiphy_apply_custom_regulatory(wiphy, regd); - if (!ath_is_world_regd(reg)) - wiphy->regulatory_flags &= ~REGULATORY_CUSTOM_REG; ath_reg_apply_radar_flags(wiphy); ath_reg_apply_world_flags(wiphy, NL80211_REGDOM_SET_BY_DRIVER, reg); return 0; diff --git a/include/net/regulatory.h b/include/net/regulatory.h index c96a0b8..b07cdc9 100644 --- a/include/net/regulatory.h +++ b/include/net/regulatory.h @@ -96,6 +96,10 @@ struct regulatory_request { * initiator is %REGDOM_SET_BY_CORE). Drivers that use * wiphy_apply_custom_regulatory() should have this flag set * or the regulatory core will set it for the wiphy. + * If you use regulatory_hint() *after* using + * wiphy_apply_custom_regulatory() the wireless core will + * clear the REGULATORY_CUSTOM_REG for your wiphy as it would be + * implied that the device somehow gained knowledge of its region. * @REGULATORY_STRICT_REG: tells us that the wiphy for this device * has regulatory domain that it wishes to be considered as the * superset for regulatory rules. After this device gets its regulatory diff --git a/net/wireless/reg.c b/net/wireless/reg.c index ec54e1a..070ff28 100644 --- a/net/wireless/reg.c +++ b/net/wireless/reg.c @@ -1826,6 +1826,8 @@ int regulatory_hint(struct wiphy *wiphy, const char *alpha2) if (WARN_ON(!alpha2 || !wiphy)) return -EINVAL; + wiphy->regulatory_flags &= ~REGULATORY_CUSTOM_REG; + request = kzalloc(sizeof(struct regulatory_request), GFP_KERNEL); if (!request) return -ENOMEM;