diff options
Diffstat (limited to 'recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0005-rtl8187-brightness_set-can-not-sleep.patch')
-rw-r--r-- | recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0005-rtl8187-brightness_set-can-not-sleep.patch | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0005-rtl8187-brightness_set-can-not-sleep.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0005-rtl8187-brightness_set-can-not-sleep.patch new file mode 100644 index 00000000..5a01a08c --- /dev/null +++ b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0005-rtl8187-brightness_set-can-not-sleep.patch | |||
@@ -0,0 +1,56 @@ | |||
1 | From c8ad2074ce769ad8b16677e0a9bee9232be03acc Mon Sep 17 00:00:00 2001 | ||
2 | From: Stanislaw Gruszka <sgruszka@redhat.com> | ||
3 | Date: Wed, 16 May 2012 11:06:21 +0200 | ||
4 | Subject: [PATCH 005/109] rtl8187: ->brightness_set can not sleep | ||
5 | |||
6 | commit 0fde0a8cfd0ede7f310d6a681c8e5a7cb3e32406 upstream. | ||
7 | |||
8 | Fix: | ||
9 | |||
10 | BUG: sleeping function called from invalid context at kernel/workqueue.c:2547 | ||
11 | in_atomic(): 1, irqs_disabled(): 0, pid: 629, name: wpa_supplicant | ||
12 | 2 locks held by wpa_supplicant/629: | ||
13 | #0: (rtnl_mutex){+.+.+.}, at: [<c08b2b84>] rtnl_lock+0x14/0x20 | ||
14 | #1: (&trigger->leddev_list_lock){.+.?..}, at: [<c0867f41>] led_trigger_event+0x21/0x80 | ||
15 | Pid: 629, comm: wpa_supplicant Not tainted 3.3.0-0.rc3.git5.1.fc17.i686 | ||
16 | Call Trace: | ||
17 | [<c046a9f6>] __might_sleep+0x126/0x1d0 | ||
18 | [<c0457d6c>] wait_on_work+0x2c/0x1d0 | ||
19 | [<c045a09a>] __cancel_work_timer+0x6a/0x120 | ||
20 | [<c045a160>] cancel_delayed_work_sync+0x10/0x20 | ||
21 | [<f7dd3c22>] rtl8187_led_brightness_set+0x82/0xf0 [rtl8187] | ||
22 | [<c0867f7c>] led_trigger_event+0x5c/0x80 | ||
23 | [<f7ff5e6d>] ieee80211_led_radio+0x1d/0x40 [mac80211] | ||
24 | [<f7ff3583>] ieee80211_stop_device+0x13/0x230 [mac80211] | ||
25 | |||
26 | Removing _sync is ok, because if led_on work is currently running | ||
27 | it will be finished before led_off work start to perform, since | ||
28 | they are always queued on the same mac80211 local->workqueue. | ||
29 | |||
30 | Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=795176 | ||
31 | |||
32 | Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> | ||
33 | Acked-by: Larry Finger <Larry.Finger@lwfinger.net> | ||
34 | Acked-by: Hin-Tak Leung <htl10@users.sourceforge.net> | ||
35 | Signed-off-by: John W. Linville <linville@tuxdriver.com> | ||
36 | Signed-off-by: Ben Hutchings <ben@decadent.org.uk> | ||
37 | --- | ||
38 | drivers/net/wireless/rtl818x/rtl8187/leds.c | 2 +- | ||
39 | 1 files changed, 1 insertions(+), 1 deletions(-) | ||
40 | |||
41 | diff --git a/drivers/net/wireless/rtl818x/rtl8187/leds.c b/drivers/net/wireless/rtl818x/rtl8187/leds.c | ||
42 | index 2e0de2f..c2d5b49 100644 | ||
43 | --- a/drivers/net/wireless/rtl818x/rtl8187/leds.c | ||
44 | +++ b/drivers/net/wireless/rtl818x/rtl8187/leds.c | ||
45 | @@ -117,7 +117,7 @@ static void rtl8187_led_brightness_set(struct led_classdev *led_dev, | ||
46 | radio_on = true; | ||
47 | } else if (radio_on) { | ||
48 | radio_on = false; | ||
49 | - cancel_delayed_work_sync(&priv->led_on); | ||
50 | + cancel_delayed_work(&priv->led_on); | ||
51 | ieee80211_queue_delayed_work(hw, &priv->led_off, 0); | ||
52 | } | ||
53 | } else if (radio_on) { | ||
54 | -- | ||
55 | 1.7.7.6 | ||
56 | |||