linux/drivers/net/wireless/wl12xx
Ido Yariv a15f1c45f3 wl12xx: Fix validation of pm_runtime_get_sync return value
wl1271_sdio_power_on checks if the return value of pm_runtime_get_sync
is non-zero, and if so bails out.
However, pm_runtime_get_sync can return a positive number which does not
suggest an error has occurred. This is problematic for two reasons:

1. The function will needlessly bail out without decrementing back the
   runtime PM reference counter.
2. wl1271_power_on only checks if wl1271_power_on return value is
   negative. This means that wl1271_power_on will continue even if
   wl1271_sdio_power_on bailed out. As a result, sdio transactions will
   be initiated without properly enabling the sdio function and claiming
   the host. This could even lead to a kernel panic.

Fix this by only checking that the return value of pm_runtime_get_sync
is non-negative.

Signed-off-by: Ido Yariv <ido@wizery.com>
Acked-by: Luciano Coelho <coelho@ti.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2011-08-23 15:54:20 -04:00
..
acx.c drivers/net/wireless/wl12xx: add missing kfree 2011-08-12 13:33:31 -04:00
acx.h wl12xx: AP mode - support FW TX inactivity triggers 2011-07-05 21:33:20 +03:00
boot.c wl12xx: AP mode - support FW TX inactivity triggers 2011-07-05 21:33:20 +03:00
boot.h
cmd.c Merge branch 'for-linville' of git://git.kernel.org/pub/scm/linux/kernel/git/luca/wl12xx 2011-07-08 11:05:20 -04:00
cmd.h wl12xx: Support routing FW logs to the host 2011-06-27 15:10:56 +03:00
conf.h wl12xx: AP mode - support FW TX inactivity triggers 2011-07-05 21:33:20 +03:00
debugfs.c wl12xx: start/stop queues according to global per-AC counters 2011-07-08 09:39:47 +03:00
debugfs.h
event.c wl12xx: AP mode - support FW TX inactivity triggers 2011-07-05 21:33:20 +03:00
event.h wl12xx: AP mode - support FW TX inactivity triggers 2011-07-05 21:33:20 +03:00
ini.h wl12xx: Add Support for Low Power DRPw (LPD) Mode 2011-06-27 12:50:33 +03:00
init.c wl12xx: always initialize AP-mode max power level 2011-07-05 21:51:05 +03:00
init.h
io.c wl12xx: remove unused crc7 references 2011-06-27 10:15:52 +03:00
io.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem 2011-07-08 11:03:36 -04:00
Kconfig wl12xx: remove unused crc7 references 2011-06-27 10:15:52 +03:00
main.c wl12xx: start/stop queues according to global per-AC counters 2011-07-08 09:39:47 +03:00
Makefile
ps.c wl12xx: start/stop queues according to global per-AC counters 2011-07-08 09:39:47 +03:00
ps.h wl12xx: enter/exit psm on wowlan suspend/resume 2011-05-13 14:55:49 +03:00
reg.h
rx.c wl12xx: Support routing FW logs to the host 2011-06-27 15:10:56 +03:00
rx.h wl12xx: Support routing FW logs to the host 2011-06-27 15:10:56 +03:00
scan.c wl12xx: add stop_scan command 2011-07-05 21:50:39 +03:00
scan.h wl12xx: add stop_scan command 2011-07-05 21:50:39 +03:00
sdio_test.c
sdio.c wl12xx: Fix validation of pm_runtime_get_sync return value 2011-08-23 15:54:20 -04:00
spi.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem 2011-07-08 11:03:36 -04:00
testmode.c wl12xx: Remove obsolete testmode NVS push command 2011-08-23 15:54:19 -04:00
testmode.h
tx.c wl12xx: start/stop queues according to global per-AC counters 2011-07-08 09:39:47 +03:00
tx.h wl12xx: start/stop queues according to global per-AC counters 2011-07-08 09:39:47 +03:00
wl12xx_80211.h
wl12xx_platform_data.c
wl12xx.h wl12xx: start/stop queues according to global per-AC counters 2011-07-08 09:39:47 +03:00