linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Luis R. Rodriguez" <mcgrof@do-not-panic.com>
To: johannes@sipsolutions.net
Cc: linux-wireless@vger.kernel.org, linux@eikelenboom.it,
	"Luis R. Rodriguez" <mcgrof@do-not-panic.com>
Subject: [PATCH 1/3] cfg80211: allow reprocessing of pending requests
Date: Tue, 25 Feb 2014 17:09:40 -0800	[thread overview]
Message-ID: <1393376982-28276-2-git-send-email-mcgrof@do-not-panic.com> (raw)
In-Reply-To: <1393376982-28276-1-git-send-email-mcgrof@do-not-panic.com>

In certain situations we want to trigger reprocessing
of the last regulatory hint. One situation in which
this makes sense is the case where the cfg80211 was
built-in to the kernel, CFG80211_INTERNAL_REGDB was not
enabled and the CRDA binary is on a partition not availble
during early boot. In such a case we want to be able to
re-process the same request at some other point.

When we are asked to re-process the same request we need
to be careful to not kfree it, addresses that.

Reported-by: Sander Eikelenboom <linux@eikelenboom.it>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
 net/wireless/reg.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/net/wireless/reg.c b/net/wireless/reg.c
index b95e9cf..f5b120f 100644
--- a/net/wireless/reg.c
+++ b/net/wireless/reg.c
@@ -240,19 +240,21 @@ static char user_alpha2[2];
 module_param(ieee80211_regdom, charp, 0444);
 MODULE_PARM_DESC(ieee80211_regdom, "IEEE 802.11 regulatory domain code");
 
-static void reg_kfree_last_request(void)
+static void reg_kfree_last_request(struct regulatory_request *lr)
 {
-	struct regulatory_request *lr;
-
-	lr = get_last_request();
-
 	if (lr != &core_request_world && lr)
 		kfree_rcu(lr, rcu_head);
 }
 
 static void reg_update_last_request(struct regulatory_request *request)
 {
-	reg_kfree_last_request();
+	struct regulatory_request *lr;
+
+	lr = get_last_request();
+	if (lr == request)
+		return;
+
+	reg_kfree_last_request(lr);
 	rcu_assign_pointer(last_request, request);
 }
 
-- 
1.8.5.3


  reply	other threads:[~2014-02-26  1:09 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-26  1:09 [PATCH v2 0/3] cfg80211: respin reprocessing pending requests Luis R. Rodriguez
2014-02-26  1:09 ` Luis R. Rodriguez [this message]
2014-03-03 13:10   ` [PATCH 1/3] cfg80211: allow reprocessing of " Johannes Berg
2014-02-26  1:09 ` [PATCH 2/3] cfg80211: fix processing world regdomain when non modular Luis R. Rodriguez
2014-03-03 13:10   ` Johannes Berg
2014-03-14 20:30     ` Colleen T
2014-03-14 20:48       ` Luis R. Rodriguez
2014-03-14 22:12         ` Colleen T
2014-03-15  1:03           ` Luis R. Rodriguez
2014-03-15 15:59             ` Janusz Dziedzic
2014-03-16  4:42               ` Luis R. Rodriguez
2014-03-16 19:04                 ` Colleen T
2014-04-09 16:33                   ` Arik Nemtsov
2014-04-09 19:16                     ` Johannes Berg
2014-04-10  6:13                       ` Arik Nemtsov
2014-04-10  8:01                         ` Johannes Berg
2014-04-10  8:17                           ` Arik Nemtsov
2014-04-10  8:23                             ` Johannes Berg
2014-04-09 20:28                     ` Sander Eikelenboom
2014-04-13 12:50                     ` Eliad Peller
2014-04-14 19:27                       ` Colleen T
2014-04-16 10:38                         ` Arik Nemtsov
2014-04-16 11:01                           ` Janusz Dziedzic
2014-04-16 11:07                             ` Arik Nemtsov
2014-03-19 14:01       ` Johannes Berg
2014-02-26  1:09 ` [PATCH 3/3] cfg80211: processing regulatory requests on netdev notifier Luis R. Rodriguez
2014-02-27 13:21   ` Arik Nemtsov
2014-02-27 17:20     ` Luis R. Rodriguez
2014-02-27 20:31       ` Arik Nemtsov
2014-02-26  7:41 ` [PATCH v2 0/3] cfg80211: respin reprocessing pending requests Sander Eikelenboom
  -- strict thread matches above, loose matches on Subject: below --
2013-12-19 20:53 [PATCH 0/3] cfg80211: process pending regulatory requests Luis R. Rodriguez
2013-12-19 20:53 ` [PATCH 1/3] cfg80211: allow reprocessing of pending requests Luis R. Rodriguez
2014-01-07 15:34   ` Johannes Berg
2014-01-23 13:16     ` Sander Eikelenboom
2014-01-24 23:14       ` Luis R. Rodriguez
2014-01-27 10:48         ` Sander Eikelenboom
2014-02-19  0:51     ` 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=1393376982-28276-2-git-send-email-mcgrof@do-not-panic.com \
    --to=mcgrof@do-not-panic.com \
    --cc=johannes@sipsolutions.net \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linux@eikelenboom.it \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).