mmc: sdio: fix nasty oops in mmc_sdio_detect
authorOhad Ben-Cohen <ohad@wizery.com>
Sun, 14 Nov 2010 10:40:33 +0000 (12:40 +0200)
committerChris Ball <cjb@laptop.org>
Fri, 19 Nov 2010 22:06:52 +0000 (17:06 -0500)
commit4d0812c37f2f6cf6fc7ca086b5a5e572cbbe7f6d
treed9952cc0c7e88030db701434dd056fa99aa96150
parentb432b4b3440a34c1430fcd66bab783640724bd28
mmc: sdio: fix nasty oops in mmc_sdio_detect

Power off the card in mmc_sdio_detect __before__ a potential error
handler, which completely removes the card, executes, and only if the
card was successfully powered on beforehand.

While we're at it, use the _sync variant of the runtime PM put API, in
order to ensure that the card is left powered off in case an error
occurred, and the card is going to be removed.

Reproduced and tested on the OLPC XO-1.5.

Reported-by: Daniel Drake <dsd@laptop.org>
Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
drivers/mmc/core/sdio.c