Arend van Spriel
2bedea8f26
bcma: make bcma_core_pci_{up,down}() callable from atomic context
This patch removes the bcma_core_pci_power_save() call from
the bcma_core_pci_{up,down}() functions as it tries to schedule
thus requiring to call them from non-atomic context. The function
bcma_core_pci_power_save() is now exported so the calling module
can explicitly use it in non-atomic context. This fixes the
'scheduling while atomic' issue reported by Tod Jackson and
Joe Perches.
[ 13.210710] BUG: scheduling while atomic: dhcpcd/1800/0x00000202
[ 13.210718] Modules linked in: brcmsmac nouveau coretemp kvm_intel kvm cordic brcmutil bcma dell_wmi atl1c ttm mxm_wmi wmi
[ 13.210756] CPU: 2 PID: 1800 Comm: dhcpcd Not tainted 3.11.0-wl #1
[ 13.210762] Hardware name: Alienware M11x R2/M11x R2, BIOS A04 11/23/2010
[ 13.210767] ffff880177c92c40 ffff880170fd1948 ffffffff8169af5b 0000000000000007
[ 13.210777] ffff880170fd1ab0 ffff880170fd1958 ffffffff81697ee2 ffff880170fd19d8
[ 13.210785] ffffffff816a19f5 00000000000f4240 000000000000d080 ffff880170fd1fd8
[ 13.210794] Call Trace:
[ 13.210813] [<ffffffff8169af5b>] dump_stack+0x4f/0x84
[ 13.210826] [<ffffffff81697ee2>] __schedule_bug+0x43/0x51
[ 13.210837] [<ffffffff816a19f5>] __schedule+0x6e5/0x810
[ 13.210845] [<ffffffff816a1c34>] schedule+0x24/0x70
[ 13.210855] [<ffffffff816a04fc>] schedule_hrtimeout_range_clock+0x10c/0x150
[ 13.210867] [<ffffffff810684e0>] ? update_rmtp+0x60/0x60
[ 13.210877] [<ffffffff8106915f>] ? hrtimer_start_range_ns+0xf/0x20
[ 13.210887] [<ffffffff816a054e>] schedule_hrtimeout_range+0xe/0x10
[ 13.210897] [<ffffffff8104f6fb>] usleep_range+0x3b/0x40
[ 13.210910] [<ffffffffa00371af>] bcma_pcie_mdio_set_phy.isra.3+0x4f/0x80 [bcma]
[ 13.210921] [<ffffffffa003729f>] bcma_pcie_mdio_write.isra.4+0xbf/0xd0 [bcma]
[ 13.210932] [<ffffffffa0037498>] bcma_pcie_mdio_writeread.isra.6.constprop.13+0x18/0x30 [bcma]
[ 13.210942] [<ffffffffa00374ee>] bcma_core_pci_power_save+0x3e/0x80 [bcma]
[ 13.210953] [<ffffffffa003765d>] bcma_core_pci_up+0x2d/0x60 [bcma]
[ 13.210975] [<ffffffffa03dc17c>] brcms_c_up+0xfc/0x430 [brcmsmac]
[ 13.210989] [<ffffffffa03d1a7d>] brcms_up+0x1d/0x20 [brcmsmac]
[ 13.211003] [<ffffffffa03d2498>] brcms_ops_start+0x298/0x340 [brcmsmac]
[ 13.211020] [<ffffffff81600a12>] ? cfg80211_netdev_notifier_call+0xd2/0x5f0
[ 13.211030] [<ffffffff815fa53d>] ? packet_notifier+0xad/0x1d0
[ 13.211064] [<ffffffff81656e75>] ieee80211_do_open+0x325/0xf80
[ 13.211076] [<ffffffff8106ac09>] ? __raw_notifier_call_chain+0x9/0x10
[ 13.211086] [<ffffffff81657b41>] ieee80211_open+0x71/0x80
[ 13.211101] [<ffffffff81526267>] __dev_open+0x87/0xe0
[ 13.211109] [<ffffffff8152650c>] __dev_change_flags+0x9c/0x180
[ 13.211117] [<ffffffff815266a3>] dev_change_flags+0x23/0x70
[ 13.211127] [<ffffffff8158cd68>] devinet_ioctl+0x5b8/0x6a0
[ 13.211136] [<ffffffff8158d5c5>] inet_ioctl+0x75/0x90
[ 13.211147] [<ffffffff8150b38b>] sock_do_ioctl+0x2b/0x70
[ 13.211155] [<ffffffff8150b681>] sock_ioctl+0x71/0x2a0
[ 13.211169] [<ffffffff8114ed47>] do_vfs_ioctl+0x87/0x520
[ 13.211180] [<ffffffff8113f159>] ? ____fput+0x9/0x10
[ 13.211198] [<ffffffff8106228c>] ? task_work_run+0x9c/0xd0
[ 13.211202] [<ffffffff8114f271>] SyS_ioctl+0x91/0xb0
[ 13.211208] [<ffffffff816aa252>] system_call_fastpath+0x16/0x1b
[ 13.211217] NOHZ: local_softirq_pending 202
The issue was introduced in v3.11 kernel by following commit:
commit aa51e598d0
Author: Hauke Mehrtens <hauke@hauke-m.de>
Date: Sat Aug 24 00:32:31 2013 +0200
brcmsmac: use bcma PCIe up and down functions
replace the calls to bcma_core_pci_extend_L1timer() by calls to the
newly introduced bcma_core_pci_ip() and bcma_core_pci_down()
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Cc: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This fix has been discussed with Hauke Mehrtens [1] selection
option 3) and is intended for v3.12.
Ref:
[1] http://mid.gmane.org/5239B12D.3040206@hauke-m.de
Cc: <stable@vger.kernel.org> # 3.11.x
Cc: Tod Jackson <tod.jackson@gmail.com>
Cc: Joe Perches <joe@perches.com>
Cc: Rafal Milecki <zajec5@gmail.com>
Cc: Hauke Mehrtens <hauke@hauke-m.de>
Reviewed-by: Hante Meuleman <meuleman@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2013-09-26 14:02:33 -04:00
..
2013-09-02 11:49:56 +05:30
2013-09-26 14:02:33 -04:00
2013-08-21 09:28:29 +02:00
2013-09-09 11:15:49 -07:00
2013-07-03 11:54:50 -07:00
2013-07-09 10:33:30 -07:00
2013-08-14 13:55:15 +05:30
2013-08-05 08:52:45 +09:00
2013-08-19 14:20:21 +05:30
2013-09-06 13:21:16 -07:00
2013-08-17 19:34:52 +01:00
2013-07-10 11:10:27 -07:00
2013-09-09 16:35:29 -07:00
2013-09-10 13:33:09 -07:00
2013-09-05 14:54:29 -07:00
2013-08-15 15:42:57 -07:00
2013-08-26 11:32:07 -04:00
2013-08-30 21:37:01 +01:00
2013-09-16 20:35:55 +02:00
2013-08-28 13:34:41 +02:00
2013-09-12 11:35:33 -07:00
2013-08-30 17:34:52 -07:00
2013-09-10 13:03:41 -07:00
2013-09-01 13:50:20 +01:00
2013-09-10 13:33:09 -07:00
2013-06-17 14:38:54 -04:00
2013-09-10 20:04:59 -07:00
2013-09-05 14:54:29 -07:00
2013-08-02 12:33:54 -07:00
2013-05-14 10:23:57 +05:30
2013-04-12 00:31:18 +02:00
2013-07-31 14:20:39 +02:00
2013-07-03 16:31:35 -07:00
2013-07-30 11:53:12 -04:00
2013-05-29 12:57:34 -07:00
2013-07-16 09:32:17 -04:00
2013-05-29 15:50:34 -04:00
2013-07-03 16:07:42 -07:00
2013-08-25 09:39:12 -04:00
2013-07-29 13:04:12 -07:00
2013-07-15 11:07:56 +01:00
2013-07-09 10:33:19 -07:00
2013-09-11 15:58:04 -07:00
2013-07-03 16:07:43 -07:00
2013-04-10 23:41:16 +02:00
2013-09-11 15:59:04 -07:00
2013-07-08 01:23:15 -07:00
2013-05-08 10:13:35 -07:00
2013-05-08 10:13:35 -07:00
2013-04-18 09:00:26 -07:00
2013-07-03 16:07:39 -07:00
2013-05-15 14:42:15 -07:00
2013-09-04 09:23:46 -04:00
2013-08-30 23:44:11 -07:00
2013-07-09 16:30:35 -07:00
2013-08-26 18:40:56 -04:00
2013-04-30 17:04:01 -07:00
2013-08-19 12:27:17 -07:00
2013-08-27 17:50:38 -07:00
2013-04-10 16:33:53 -07:00
2013-05-16 11:09:18 +02:00
2013-07-05 11:09:28 +02:00
2013-09-11 15:56:57 -07:00
2013-03-20 13:23:21 -04:00
2013-07-30 11:11:44 +02:00
2013-09-11 15:58:25 -07:00
2013-04-29 18:28:13 -07:00
2013-04-08 17:28:34 +02:00
2013-06-19 12:58:42 +02:00
2013-05-20 12:27:59 -07:00
2013-08-14 17:14:51 +02:00
2013-08-14 17:14:54 +02:00
2013-07-08 10:13:40 -04:00
2013-09-13 15:09:52 +02:00
2013-08-27 01:44:40 +02:00
2013-09-10 02:54:50 +02:00
2013-07-15 02:09:47 +02:00
2013-05-01 17:51:54 -07:00
2013-09-11 15:59:10 -07:00
2013-09-07 12:56:26 +10:00
2013-04-29 18:28:19 -07:00
2013-09-10 18:56:29 -04:00
2013-05-12 14:16:21 +02:00
2013-08-27 22:09:12 -07:00
2013-08-18 17:39:55 -07:00
2013-06-03 20:20:29 +09:00
2013-09-05 20:46:06 -04:00
2013-09-09 10:26:33 -07:00
2013-08-02 12:33:54 -07:00
2013-05-01 16:36:22 +05:30
2013-08-27 09:18:29 +02:00
2013-08-29 21:55:23 -04:00
2013-09-10 13:37:36 -07:00
2013-04-30 17:04:02 -07:00
2013-06-28 16:04:36 +02:00
2013-06-28 16:04:36 +02:00
2013-06-28 16:04:36 +02:00
2013-07-06 14:09:38 -07:00
2013-07-23 16:01:28 -07:00
2013-07-06 14:09:38 -07:00
2013-07-03 13:25:24 +02:00
2013-07-15 11:25:00 +09:30
2013-05-07 18:38:27 -07:00
2013-09-03 20:57:49 -04:00
2013-09-07 19:54:57 -04:00
2013-03-27 13:48:25 +01:00
2013-04-29 18:28:40 -07:00
2013-08-26 20:15:23 +09:00
2013-06-27 16:53:30 +08:00
2013-05-01 17:31:42 -04:00
2013-06-19 16:49:39 -07:00
2013-07-27 20:24:36 +02:00
2013-06-06 12:41:57 -07:00
2013-06-17 16:38:57 -07:00
2013-06-19 20:30:32 -07:00
2013-05-12 14:16:22 +02:00
2013-04-30 17:04:00 -07:00
2013-08-22 22:13:54 -07:00
2013-09-12 10:12:47 -07:00
2013-09-13 23:06:40 -04:00
2013-09-06 09:17:30 +01:00
2013-09-06 09:17:30 +01:00
2013-04-29 18:28:41 -07:00
2013-06-29 12:57:13 +04:00
2013-09-03 07:41:11 +02:00
2013-06-19 23:32:07 -04:00
2013-09-11 15:57:35 -07:00
2013-07-09 10:33:21 -07:00
2013-04-11 10:00:05 +08:00
2013-04-16 18:47:14 +09:00
2013-09-13 15:09:52 +02:00
2013-03-18 10:21:23 +01:00
2013-08-30 08:42:01 +10:00
2013-04-30 10:09:06 +02:00
2013-08-26 13:46:11 +02:00
2013-08-26 13:46:11 +02:00
2013-09-13 15:11:21 +02:00
2013-08-26 21:40:24 +02:00
2013-03-22 16:19:59 -07:00
2013-09-12 15:38:03 -07:00
2013-09-11 15:57:49 -07:00
2013-08-02 11:34:30 +08:00
2013-04-02 07:07:32 +02:00
2013-08-23 10:22:29 +02:00
2013-08-26 09:30:03 -07:00
2013-04-29 13:54:36 -04:00
2013-05-08 11:51:05 -07:00
2013-08-29 14:08:24 -04:00
2013-03-26 12:32:13 -04:00
2013-06-05 12:00:27 -07:00
2013-06-13 17:51:04 -07:00
2013-06-25 16:44:56 -07:00
2013-07-23 16:52:47 -07:00
2013-07-18 13:05:23 -07:00
2013-07-23 16:52:47 -07:00
2013-03-27 13:48:25 +01:00
2013-08-22 20:30:15 -07:00
2013-09-11 15:59:37 -07:00
2013-03-27 13:48:25 +01:00
2013-09-13 15:09:52 +02:00
2013-05-31 13:02:52 +10:00
2013-08-14 11:38:34 +02:00
2013-04-29 15:54:37 -07:00
2013-09-11 15:59:42 -07:00
2013-06-17 16:38:57 -07:00
2013-08-29 15:32:08 -04:00
2013-03-22 16:41:19 -07:00
2013-09-13 15:09:52 +02:00
2013-06-06 10:23:58 +09:00
2013-09-13 15:09:52 +02:00
2013-06-24 14:02:41 +01:00
2013-09-13 15:09:52 +02:00
2013-07-01 08:12:41 -04:00
2013-06-12 23:02:35 -04:00
2013-08-09 10:49:00 +02:00
2013-08-20 11:46:54 -07:00
2013-05-13 09:45:01 -04:00
2013-08-09 07:53:54 -07:00
2013-08-09 07:53:54 -07:00
2013-07-26 16:19:48 -07:00
2013-04-29 15:42:02 -04:00
2013-09-13 15:09:52 +02:00
2013-08-02 22:38:10 -04:00
2013-04-17 12:35:33 -07:00
2013-04-30 17:04:06 -07:00
2013-08-28 21:35:14 -07:00
2013-07-25 15:39:04 -07:00
2013-09-11 15:58:52 -07:00
2013-05-16 07:55:07 -07:00
2013-04-30 17:04:02 -07:00
2013-07-25 12:35:39 +02:00
2013-09-17 12:52:31 +03:00
2013-04-07 13:05:35 +03:00
2013-07-03 16:07:43 -07:00
2013-04-01 11:04:50 -07:00
2013-08-25 09:39:12 -04:00
2013-05-05 10:58:06 -07:00
2013-09-10 18:56:32 -04:00
2013-07-16 22:00:14 -07:00
2013-07-23 16:47:08 -07:00
2013-07-12 13:51:18 +02:00
2013-09-07 15:49:18 -07:00
2013-03-22 22:17:36 -06:00
2013-09-11 15:59:45 -07:00
2013-05-31 00:48:22 -07:00
2013-08-23 09:02:14 -04:00
2013-08-06 14:10:45 +00:00
2013-04-08 16:57:15 -07:00
2013-09-11 15:57:51 -07:00
2013-09-12 15:38:02 -07:00
2013-06-01 22:24:07 +02:00
2013-08-21 11:52:20 -07:00
2013-09-11 15:57:48 -07:00
2013-08-22 23:20:54 +08:00
2013-09-13 10:55:58 -07:00
2013-09-11 15:58:01 -07:00
2013-09-13 10:55:58 -07:00
2013-09-12 15:38:03 -07:00
2013-07-03 16:07:32 -07:00
2013-09-11 15:58:01 -07:00
2013-09-07 09:48:41 -07:00
2013-09-03 16:35:47 +09:30
2013-08-20 15:37:42 +09:30
2013-07-24 09:14:46 -07:00
2013-08-12 15:27:01 +00:00
2013-06-26 12:10:56 +02:00
2013-07-12 12:07:46 +02:00
2013-08-02 12:33:54 -07:00
2013-09-08 20:20:23 -04:00
2013-07-03 16:08:05 -07:00
2013-06-04 15:17:38 -07:00
2013-05-27 22:50:59 -07:00
2013-09-15 22:18:13 -04:00
2013-05-23 11:58:55 +02:00
2013-08-28 00:26:48 +02:00
2013-06-27 22:44:16 -07:00
2013-05-27 23:18:50 -07:00
2013-06-08 16:20:14 -04:00
2013-09-06 14:49:16 -04:00
2013-09-03 15:26:29 -04:00
2013-09-05 10:40:45 -04:00
2013-06-20 15:41:18 +02:00
2013-07-25 21:54:01 +02:00
2013-04-29 15:54:36 -07:00
2013-08-27 13:52:52 -04:00
2013-05-04 14:47:26 -04:00
2013-09-03 16:40:32 -04:00
2013-05-19 20:29:55 +00:00
2013-08-21 10:29:51 +01:00
2013-06-12 07:49:19 +05:30
2013-09-10 13:53:52 -07:00
2013-08-28 20:50:19 +01:00
2013-08-12 15:27:01 +00:00
2013-06-12 12:37:30 +01:00
2013-08-27 10:53:44 +02:00
2013-09-10 13:53:52 -07:00
2013-08-15 17:22:27 -07:00
2013-06-11 11:41:51 -05:00
2013-03-29 17:54:33 -07:00
2013-09-03 22:52:48 -04:00
2013-07-03 16:07:32 -07:00
2013-04-29 15:54:28 -07:00
2013-07-03 16:07:31 -07:00
2013-04-19 22:25:51 +02:00
2013-09-05 14:54:29 -07:00
2013-09-15 17:41:30 -04:00
2013-07-23 03:58:42 +02:00
2013-04-17 10:21:17 -06:00
2013-04-17 10:21:17 -06:00
2013-09-06 13:30:06 -07:00
2013-04-17 10:21:17 -06:00
2013-09-09 14:29:15 -07:00
2013-08-23 16:08:27 -04:00
2013-06-16 16:12:26 -07:00
2013-09-04 11:55:10 -07:00
2013-05-31 17:19:05 -07:00
2013-05-07 20:16:25 -07:00
2013-07-03 16:08:03 -07:00
2013-04-09 14:13:02 -04:00
2013-07-04 15:51:45 -07:00
2013-06-03 21:49:52 +02:00
2013-07-15 01:31:37 +02:00
2013-03-19 09:47:30 +01:00
2013-07-03 16:16:20 +02:00
2013-08-27 18:42:48 -07:00
2013-08-19 21:22:34 -07:00
2013-08-14 17:14:52 +02:00
2013-06-19 12:55:10 +02:00
2013-08-06 14:21:01 -07:00
2013-05-01 17:29:47 -04:00
2013-05-01 17:29:39 -04:00
2013-04-09 14:13:35 -04:00
2013-04-03 21:50:00 -07:00
2013-08-19 10:18:11 -07:00
2013-07-09 10:33:26 -07:00
2013-06-28 23:15:06 +02:00
2013-06-21 11:32:51 +02:00
2013-08-14 19:54:30 +01:00
2013-08-20 16:53:58 -05:00
2013-08-17 09:32:32 -04:00
2013-09-11 15:59:36 -07:00
2013-09-11 15:59:37 -07:00
2013-05-07 18:38:27 -07:00
2013-09-11 15:59:20 -07:00
2013-06-02 20:53:59 -07:00
2013-08-18 17:40:16 -07:00
2013-08-31 14:43:50 -07:00
2013-06-10 13:45:52 -07:00
2013-06-10 13:45:52 -07:00
2013-07-09 10:33:29 -07:00
2013-09-03 10:07:40 -07:00
2013-04-30 17:04:09 -07:00
2013-04-07 14:06:17 +03:00
2013-09-12 15:38:02 -07:00
2013-07-12 12:07:46 +02:00
2013-04-12 10:26:23 +02:00
2013-04-12 10:26:23 +02:00
2013-05-24 16:22:50 -07:00
2013-07-03 16:08:05 -07:00
2013-07-03 16:08:05 -07:00
2013-04-29 18:28:22 -07:00
2013-03-23 15:53:52 -07:00
2013-07-09 10:33:30 -07:00
2013-06-12 14:02:13 -07:00
2013-09-12 15:38:02 -07:00
2013-04-09 13:19:39 -04:00
2013-06-17 16:38:57 -07:00
2013-07-25 19:30:03 +10:00
2013-07-09 10:33:28 -07:00
2013-07-08 13:36:41 +04:00
2013-09-12 09:25:23 -07:00
2013-05-20 11:47:21 -07:00
2013-04-11 13:14:36 -07:00
2013-06-17 18:09:53 +09:00
2013-08-27 14:25:27 +05:30
2013-08-20 17:10:41 -07:00
2013-08-27 14:25:09 +05:30
2013-09-10 18:56:32 -04:00
2013-09-01 14:16:33 -07:00
2013-09-04 00:27:25 -04:00
2013-09-04 20:51:33 +03:00
2013-09-04 23:11:42 +03:00
2013-09-04 20:53:16 +03:00
2013-09-11 15:58:25 -07:00
2013-08-02 12:33:54 -07:00
2013-04-29 13:21:30 -04:00
2013-08-07 16:52:33 -07:00
2013-06-19 23:34:50 +02:00
2013-06-19 12:58:42 +02:00
2013-08-13 08:19:26 -07:00
2013-06-20 19:02:45 +04:00
2013-06-10 13:45:25 -07:00
2013-03-25 10:39:40 -07:00
2013-08-30 17:26:09 -04:00
2013-04-30 17:04:03 -07:00
2013-04-30 15:50:12 +05:30
2013-06-21 00:35:12 +02:00
2013-09-12 15:38:02 -07:00
2013-08-13 17:57:47 -07:00
2013-04-17 12:35:32 -07:00
2013-09-11 15:58:25 -07:00
2013-08-28 09:51:41 -07:00
2013-06-12 16:29:44 -07:00
2013-07-31 12:16:45 -07:00
2013-08-29 13:54:34 -07:00
2013-03-29 18:10:22 -06:00
2013-09-03 09:10:24 -04:00
2013-08-14 17:58:56 +02:00
2013-05-14 20:54:06 +02:00
2013-04-04 13:18:31 -07:00
2013-04-25 21:01:45 +08:00
2013-09-12 07:49:51 +02:00
2013-05-21 12:25:02 -05:00
2013-06-20 22:24:32 -07:00
2013-07-23 16:47:10 -07:00
2013-07-23 16:42:59 -07:00
2013-07-24 15:12:53 -07:00
2013-04-19 00:40:07 +02:00
2013-04-15 21:23:03 +01:00
2013-03-20 12:10:38 -04:00
2013-05-20 10:24:22 +09:30
2013-04-13 15:31:58 +02:00
2013-08-12 11:56:16 -07:00
2013-09-07 14:35:32 -07:00
2013-07-09 10:33:29 -07:00
2013-08-05 10:52:36 -06:00
2013-08-29 13:30:21 +10:00
2013-09-03 19:17:59 +02:00
2013-03-20 14:06:06 +10:30
2013-07-09 10:47:53 +09:30
2013-07-09 18:24:39 -07:00
2013-09-11 15:57:09 -07:00
2013-07-09 10:33:21 -07:00
2013-09-03 18:25:03 -07:00
2013-09-11 15:58:01 -07:00
2013-03-20 14:06:05 +10:30
2013-05-27 10:57:53 +09:00
2013-08-14 17:14:54 +02:00
2013-08-22 08:53:30 -07:00
2013-07-30 08:30:16 -04:00
2013-09-11 15:58:02 -07:00
2013-07-12 12:07:46 +02:00
2013-07-25 19:30:03 +10:00
2013-07-10 18:11:34 -07:00