Bing Zhao
466026989f
libertas: fix crash for SD8688
For SD8688, FUNC_INIT command is queued before fw_ready flag is
set. This causes the following crash as lbs_thread blocks any
command if fw_ready is not set.
[ 209.338953] [<c0502248>] (__schedule+0x610/0x764) from [<bf20ae24>] (__lbs_cmd+0xb8/0x130 [libertas])
[ 209.348340] [<bf20ae24>] (__lbs_cmd+0xb8/0x130 [libertas]) from [<bf222474>] (if_sdio_finish_power_on+0xec/0x1b0 [libertas_sdio])
[ 209.360136] [<bf222474>] (if_sdio_finish_power_on+0xec/0x1b0 [libertas_sdio]) from [<bf2226c4>] (if_sdio_power_on+0x18c/0x20c [libertas_sdio])
[ 209.373052] [<bf2226c4>] (if_sdio_power_on+0x18c/0x20c [libertas_sdio]) from [<bf222944>] (if_sdio_probe+0x200/0x31c [libertas_sdio])
[ 209.385316] [<bf222944>] (if_sdio_probe+0x200/0x31c [libertas_sdio]) from [<bf01d820>] (sdio_bus_probe+0x94/0xfc [mmc_core])
[ 209.396748] [<bf01d820>] (sdio_bus_probe+0x94/0xfc [mmc_core]) from [<c02e729c>] (driver_probe_device+0x12c/0x348)
[ 209.407214] [<c02e729c>] (driver_probe_device+0x12c/0x348) from [<c02e7530>] (__driver_attach+0x78/0x9c)
[ 209.416798] [<c02e7530>] (__driver_attach+0x78/0x9c) from [<c02e5658>] (bus_for_each_dev+0x50/0x88)
[ 209.425946] [<c02e5658>] (bus_for_each_dev+0x50/0x88) from [<c02e6810>] (bus_add_driver+0x108/0x268)
[ 209.435180] [<c02e6810>] (bus_add_driver+0x108/0x268) from [<c02e782c>] (driver_register+0xa4/0x134)
[ 209.444426] [<c02e782c>] (driver_register+0xa4/0x134) from [<bf22601c>] (if_sdio_init_module+0x1c/0x3c [libertas_sdio])
[ 209.455339] [<bf22601c>] (if_sdio_init_module+0x1c/0x3c [libertas_sdio]) from [<c00085b8>] (do_one_initcall+0x98/0x174)
[ 209.466236] [<c00085b8>] (do_one_initcall+0x98/0x174) from [<c0076504>] (load_module+0x1c5c/0x1f80)
[ 209.475390] [<c0076504>] (load_module+0x1c5c/0x1f80) from [<c007692c>] (sys_init_module+0x104/0x128)
[ 209.484632] [<c007692c>] (sys_init_module+0x104/0x128) from [<c0008c40>] (ret_fast_syscall+0x0/0x38)
Fix it by setting fw_ready flag prior to queuing FUNC_INIT command.
Cc: <stable@vger.kernel.org> # 3.5+
Reported-by: Lubomir Rintel <lkundrak@v3.sk>
Tested-by: Lubomir Rintel <lkundrak@v3.sk>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2013-02-27 14:12:52 -05:00
..
2012-12-14 10:03:23 -08:00
2012-12-17 10:04:27 -08:00
2012-12-15 12:37:18 -08:00
2012-12-19 14:53:53 -08:00
2012-12-20 18:50:02 -05:00
2013-02-27 14:12:51 -05:00
2012-12-20 14:00:13 -08:00
2013-01-10 02:51:03 -02:00
2012-12-16 15:23:37 -08:00
2012-12-20 08:37:05 -08:00
2012-12-19 12:47:41 -08:00
2012-12-14 14:54:26 -08:00
2012-12-11 12:45:35 -08:00
2012-12-12 12:05:15 -08:00
2012-12-18 09:58:09 -08:00
2012-12-07 23:13:36 +01:00
2012-12-17 17:15:13 -08:00
2012-12-14 14:27:45 -08:00
2012-12-13 12:00:02 -08:00
2012-12-20 17:40:19 -08:00
2012-12-19 22:15:14 +00:00
2012-12-19 20:24:25 -08:00
2012-12-13 19:22:22 -08:00
2012-12-19 22:17:02 +01:00
2012-11-28 11:41:36 -08:00
2012-12-18 16:51:10 -08:00
2012-12-16 18:55:20 -08:00
2012-12-21 16:40:26 -08:00
2012-12-19 12:56:42 -08:00
2012-12-20 10:07:25 -08:00
2012-12-11 14:08:47 -08:00
2012-12-14 14:42:53 -08:00
2012-12-14 13:14:07 -05:00
2012-12-15 12:52:42 -08:00
2012-12-18 15:19:06 +10:30
2012-12-18 09:58:09 -08:00
2012-12-21 17:08:06 -08:00
2012-12-16 12:24:09 +01:00
2012-12-18 15:02:12 -08:00
2012-12-20 07:21:54 -08:00
2012-12-21 17:10:29 -08:00
2012-12-16 18:55:20 -08:00
2012-12-20 07:39:03 -08:00
2013-02-27 14:12:52 -05:00
2013-02-11 18:35:36 +01:00
2012-12-19 10:58:53 +00:00
2012-12-13 14:20:19 -08:00
2012-12-12 11:45:16 -08:00
2012-12-18 19:00:25 -08:00
2012-12-17 17:15:14 -08:00
2012-12-11 13:13:55 -08:00
2012-12-19 08:14:08 -08:00
2012-12-12 18:07:07 -08:00
2012-12-19 08:19:07 -08:00
2012-12-11 13:13:55 -08:00
2012-12-13 12:00:02 -08:00
2012-12-13 12:00:02 -08:00
2012-12-18 15:20:36 +10:30
2012-12-20 17:40:20 -08:00
2012-12-13 14:20:19 -08:00
2012-12-21 16:40:26 -08:00
2012-12-19 15:11:41 +00:00
2013-02-14 14:23:33 -05:00
2013-02-11 18:44:52 +01:00
2012-12-15 14:25:10 -08:00
2012-12-13 12:00:02 -08:00
2012-12-16 11:28:10 -08:00
2012-12-12 12:05:15 -08:00
2012-12-17 17:15:13 -08:00
2012-12-07 13:43:51 -07:00
2012-12-15 14:25:10 -08:00
2012-12-18 15:02:11 -08:00
2012-12-18 09:58:09 -08:00
2012-12-20 08:37:05 -08:00
2012-12-16 15:23:37 -08:00
2012-12-19 22:25:10 +01:00
2012-12-16 17:39:14 -08:00