Update patches from upstream to fix oops

Found by kernel test bot:

http://thread.gmane.org/gmane.linux.kernel/2139378

and Johanness fixed it up quickly
This commit is contained in:
Josh Boyer 2016-01-29 12:07:07 -05:00
parent 1f1a7f551b
commit 51a47249db
2 changed files with 21 additions and 19 deletions

View File

@ -1,7 +1,7 @@
From ae47d3756cfb9f55edac25fccbebe0a4bf1cbf1e Mon Sep 17 00:00:00 2001 From cb150b9d23be6ee7f3a0fff29784f1c5b5ac514d Mon Sep 17 00:00:00 2001
From: Johannes Berg <johannes.berg@intel.com> From: Johannes Berg <johannes.berg@intel.com>
Date: Wed, 27 Jan 2016 13:41:35 +0100 Date: Wed, 27 Jan 2016 13:29:34 +0100
Subject: [PATCH 2/2] cfg80211/wext: fix message ordering Subject: cfg80211/wext: fix message ordering
Since cfg80211 frequently takes actions from its netdev notifier Since cfg80211 frequently takes actions from its netdev notifier
call, wireless extensions messages could still be ordered badly call, wireless extensions messages could still be ordered badly
@ -28,7 +28,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
3 files changed, 10 insertions(+), 1 deletion(-) 3 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/include/net/iw_handler.h b/include/net/iw_handler.h diff --git a/include/net/iw_handler.h b/include/net/iw_handler.h
index 8f81bbbc38fc..8a3ec3955f20 100644 index 8f81bbb..e0f4109 100644
--- a/include/net/iw_handler.h --- a/include/net/iw_handler.h
+++ b/include/net/iw_handler.h +++ b/include/net/iw_handler.h
@@ -439,6 +439,12 @@ int dev_get_wireless_info(char *buffer, char **start, off_t offset, int length); @@ -439,6 +439,12 @@ int dev_get_wireless_info(char *buffer, char **start, off_t offset, int length);
@ -39,16 +39,16 @@ index 8f81bbbc38fc..8a3ec3955f20 100644
+/* flush all previous wext events - if work is done from netdev notifiers */ +/* flush all previous wext events - if work is done from netdev notifiers */
+void wireless_nlevent_flush(void); +void wireless_nlevent_flush(void);
+#else +#else
+static void wireless_nlevent_flush(void) {} +static inline void wireless_nlevent_flush(void) {}
+#endif +#endif
/* We may need a function to send a stream of events to user space. /* We may need a function to send a stream of events to user space.
* More on that later... */ * More on that later... */
diff --git a/net/wireless/core.c b/net/wireless/core.c diff --git a/net/wireless/core.c b/net/wireless/core.c
index 3893409dee95..335830eccb01 100644 index b091551..8f0bac7 100644
--- a/net/wireless/core.c --- a/net/wireless/core.c
+++ b/net/wireless/core.c +++ b/net/wireless/core.c
@@ -1143,6 +1143,8 @@ static int cfg80211_netdev_notifier_call(struct notifier_block *nb, @@ -1147,6 +1147,8 @@ static int cfg80211_netdev_notifier_call(struct notifier_block *nb,
return NOTIFY_DONE; return NOTIFY_DONE;
} }
@ -58,7 +58,7 @@ index 3893409dee95..335830eccb01 100644
} }
diff --git a/net/wireless/wext-core.c b/net/wireless/wext-core.c diff --git a/net/wireless/wext-core.c b/net/wireless/wext-core.c
index 5f429637efff..abdfcb5f3e48 100644 index 87dd619..b50ee5d 100644
--- a/net/wireless/wext-core.c --- a/net/wireless/wext-core.c
+++ b/net/wireless/wext-core.c +++ b/net/wireless/wext-core.c
@@ -342,7 +342,7 @@ static const int compat_event_type_size[] = { @@ -342,7 +342,7 @@ static const int compat_event_type_size[] = {
@ -79,5 +79,5 @@ index 5f429637efff..abdfcb5f3e48 100644
static int wext_netdev_notifier_call(struct notifier_block *nb, static int wext_netdev_notifier_call(struct notifier_block *nb,
unsigned long state, void *ptr) unsigned long state, void *ptr)
-- --
2.5.0 cgit v0.12

View File

@ -1,7 +1,7 @@
From 699a8adb3553e2a7fb5930e1f962e2ef6d6f4104 Mon Sep 17 00:00:00 2001 From 8bf862739a7786ae72409220914df960a0aa80d8 Mon Sep 17 00:00:00 2001
From: Johannes Berg <johannes.berg@intel.com> From: Johannes Berg <johannes.berg@intel.com>
Date: Wed, 27 Jan 2016 13:41:34 +0100 Date: Wed, 27 Jan 2016 12:37:52 +0100
Subject: [PATCH 1/2] wext: fix message delay/ordering Subject: wext: fix message delay/ordering
Beniamino reported that he was getting an RTM_NEWLINK message for a Beniamino reported that he was getting an RTM_NEWLINK message for a
given interface, after the RTM_DELLINK for it. It turns out that the given interface, after the RTM_DELLINK for it. It turns out that the
@ -37,11 +37,11 @@ Cc: stable@vger.kernel.org
Reported-by: Beniamino Galvani <bgalvani@redhat.com> Reported-by: Beniamino Galvani <bgalvani@redhat.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
--- ---
net/wireless/wext-core.c | 49 ++++++++++++++++++++++++++++++++++++++---------- net/wireless/wext-core.c | 51 +++++++++++++++++++++++++++++++++++++-----------
1 file changed, 39 insertions(+), 10 deletions(-) 1 file changed, 40 insertions(+), 11 deletions(-)
diff --git a/net/wireless/wext-core.c b/net/wireless/wext-core.c diff --git a/net/wireless/wext-core.c b/net/wireless/wext-core.c
index c8717c1d082e..5f429637efff 100644 index c8717c1..87dd619 100644
--- a/net/wireless/wext-core.c --- a/net/wireless/wext-core.c
+++ b/net/wireless/wext-core.c +++ b/net/wireless/wext-core.c
@@ -342,6 +342,39 @@ static const int compat_event_type_size[] = { @@ -342,6 +342,39 @@ static const int compat_event_type_size[] = {
@ -84,18 +84,20 @@ index c8717c1d082e..5f429637efff 100644
static int __net_init wext_pernet_init(struct net *net) static int __net_init wext_pernet_init(struct net *net)
{ {
skb_queue_head_init(&net->wext_nlevents); skb_queue_head_init(&net->wext_nlevents);
@@ -360,6 +393,11 @@ static struct pernet_operations wext_pernet_ops = { @@ -360,7 +393,12 @@ static struct pernet_operations wext_pernet_ops = {
static int __init wireless_nlevent_init(void) static int __init wireless_nlevent_init(void)
{ {
+ int err = register_netdevice_notifier(&wext_netdev_notifier); - return register_pernet_subsys(&wext_pernet_ops);
+ int err = register_pernet_subsys(&wext_pernet_ops);
+ +
+ if (err) + if (err)
+ return err; + return err;
+ +
return register_pernet_subsys(&wext_pernet_ops); + return register_netdevice_notifier(&wext_netdev_notifier);
} }
subsys_initcall(wireless_nlevent_init);
@@ -368,17 +406,8 @@ subsys_initcall(wireless_nlevent_init); @@ -368,17 +406,8 @@ subsys_initcall(wireless_nlevent_init);
/* Process events generated by the wireless layer or the driver. */ /* Process events generated by the wireless layer or the driver. */
static void wireless_nlevent_process(struct work_struct *work) static void wireless_nlevent_process(struct work_struct *work)
@ -116,5 +118,5 @@ index c8717c1d082e..5f429637efff 100644
} }
-- --
2.5.0 cgit v0.12