From patchwork Sat Jan 18 01:39:26 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krishna Chaitanya X-Patchwork-Id: 3508501 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 A1B8C9F2E9 for ; Sat, 18 Jan 2014 14:36:29 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id CC23920120 for ; Sat, 18 Jan 2014 14:36:28 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id E01CF20142 for ; Sat, 18 Jan 2014 14:36:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752942AbaAROfx (ORCPT ); Sat, 18 Jan 2014 09:35:53 -0500 Received: from mail-pd0-f176.google.com ([209.85.192.176]:50534 "EHLO mail-pd0-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752880AbaAROfV (ORCPT ); Sat, 18 Jan 2014 09:35:21 -0500 Received: by mail-pd0-f176.google.com with SMTP id r10so5116363pdi.21 for ; Sat, 18 Jan 2014 06:35:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=DsJAB7GtRrT03flWMT16IMu4C1P6aiv3DrfGlnlYo2w=; b=t9nGjvyoBo9TZ1TgRJ1F/QvTu32MI5hZxxh+0lcNAdEIMokmAKQP8b7eph/TrpaB14 67J8Gu6NDAwIMA5hZp0YxjxwLYAiYLUzqSqP9EkpqRRFmMokNbyGsKwevNCYEAXUgv+f NkdH7NQ7u4lLb19kTnH7ZLQBZ5vlRDE2R3NA3lYYxmmg6Gw9x+Xhq+zHbFIkd8vaXjh5 TPTuKARB8j8q8pliS/7+ME5+jJAgzkMWKHls1pjq4P1D6hd+7qkLEIGl3LYptZBqMGZ8 YJeeRU+5WdCUwcukLIFa3N6+5B/I94PC4brLaH8W+sK8PYx55huZ1Q6tD+IQUl686R/e 8Rkg== X-Received: by 10.68.227.36 with SMTP id rx4mr835324pbc.164.1390055721129; Sat, 18 Jan 2014 06:35:21 -0800 (PST) Received: from localhost.localdomain ([49.204.217.73]) by mx.google.com with ESMTPSA id i10sm42421684pat.11.2014.01.18.06.35.18 for (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sat, 18 Jan 2014 06:35:20 -0800 (PST) From: Chaitanya T K To: linux-wireless@vger.kernel.org, johannes@sipsolutions.net, mcgrof@do-not-panic.com Cc: Chaitanya T K Subject: [PATCH V2] cfg80211: Do not call CRDA when using internal regulatory database Date: Sat, 18 Jan 2014 07:09:26 +0530 Message-Id: <1390009167-4766-1-git-send-email-chaitanya.mgit@gmail.com> X-Mailer: git-send-email 1.7.9.5 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.1 required=5.0 tests=BAYES_00, DATE_IN_PAST_12_24, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,FREEMAIL_FROM,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 When using internal regulatory data base kconfig option, do not try to call crda. This completely defeats the purpose of enabling internal regulatory db. Signed-off-by: Chaitanya T K --- V2: Use Proper Error codes while returning Fix the call_crda if condition. --- net/wireless/reg.c | 29 +++++++++++++++-------------- net/wireless/reg.c | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/net/wireless/reg.c b/net/wireless/reg.c index 7d20d84..1f9e67d 100644 --- a/net/wireless/reg.c +++ b/net/wireless/reg.c @@ -454,16 +454,16 @@ static void reg_regdb_search(struct work_struct *work) static DECLARE_WORK(reg_regdb_work, reg_regdb_search); -static void reg_regdb_query(const char *alpha2) +static int reg_regdb_query(const char *alpha2) { struct reg_regdb_search_request *request; if (!alpha2) - return; + return -EINVAL; request = kzalloc(sizeof(struct reg_regdb_search_request), GFP_KERNEL); if (!request) - return; + return -ENOMEM; memcpy(request->alpha2, alpha2, 2); @@ -472,6 +472,7 @@ static void reg_regdb_query(const char *alpha2) mutex_unlock(®_regdb_search_mutex); schedule_work(®_regdb_work); + return 0; } /* Feel free to add any other sanity checks here */ @@ -482,7 +483,15 @@ static void reg_regdb_size_check(void) } #else static inline void reg_regdb_size_check(void) {} -static inline void reg_regdb_query(const char *alpha2) {} +static inline int reg_regdb_query(const char *alpha2) +{ + if (!is_world_regdom((char *) alpha2)) + pr_info("Calling CRDA for country: %c%c\n", + alpha2[0], alpha2[1]); + else + pr_info("Calling CRDA to update world regulatory domain\n"); + return kobject_uevent(®_pdev->dev.kobj, KOBJ_CHANGE); +} #endif /* CONFIG_CFG80211_INTERNAL_REGDB */ /* @@ -492,22 +501,14 @@ static inline void reg_regdb_query(const char *alpha2) {} */ static int call_crda(const char *alpha2) { - if (!is_world_regdom((char *) alpha2)) - pr_info("Calling CRDA for country: %c%c\n", - alpha2[0], alpha2[1]); - else - pr_info("Calling CRDA to update world regulatory domain\n"); - - /* query internal regulatory database (if it exists) */ - reg_regdb_query(alpha2); - - return kobject_uevent(®_pdev->dev.kobj, KOBJ_CHANGE); + /* query internal regulatory database/crda depending on config */ + return reg_regdb_query(alpha2); } static enum reg_request_treatment reg_call_crda(struct regulatory_request *request) { - if (call_crda(request->alpha2)) + if (call_crda(request->alpha2) < 0) return REG_REQ_IGNORE; return REG_REQ_OK; }