387a8cbdf8
If sdhci-s3c driver is built as module, it gives following error if inserted again after removing. This was happening as pm_runtime_use_autosuspend() is called in sdhci_s3c_probe() function but in sdhci_s3c_remove() its complementary pm_runtime_dont_use_autosuspend() is not called. BUG: spinlock bad magic on CPU#1, insmod/955 lock: 0xee771368, .magic: 00000000, .owner: insmod/955, .owner_cpu: 1 [<c00147e0>] (unwind_backtrace+0x0/0xf8) from [<c0136b40>] (do_raw_spin_unlock+0xa4/0xe4) [<c0136b40>] (do_raw_spin_unlock+0xa4/0xe4) from [<c01be508>] (_raw_spin_unlock_irqrestore+0xc/0x38) [<c01be508>] (_raw_spin_unlock_irqrestore+0xc/0x38) from [<c01a9334>] (sdhci_runtime_suspend_host+0x54/0x80) [<c01a9334>] (sdhci_runtime_suspend_host+0x54/0x80) from [<bf0060a8>] (sdhci_s3c_runtime_suspend+0x14/0x38 [sdhci_s3c]) [<bf0060a8>] (sdhci_s3c_runtime_suspend+0x14/0x38 [sdhci_s3c]) from [<c016cb00>] (pm_generic_runtime_suspend+0x2c/0x40) [<c016cb00>] (pm_generic_runtime_suspend+0x2c/0x40) from [<c0170090>] (__rpm_callback+0x70/0x98) [<c0170090>] (__rpm_callback+0x70/0x98) from [<c01703f0>] (rpm_suspend+0xf0/0x534) [<c01703f0>] (rpm_suspend+0xf0/0x534) from [<c0171670>] (__pm_runtime_suspend+0x5c/0x74) [<c0171670>] (__pm_runtime_suspend+0x5c/0x74) from [<c016d018>] (pm_generic_runtime_idle+0x44/0x4c) [<c016d018>] (pm_generic_runtime_idle+0x44/0x4c) from [<c0170090>] (__rpm_callback+0x70/0x98) [<c0170090>] (__rpm_callback+0x70/0x98) from [<c0170984>] (rpm_idle+0xdc/0x18c) [<c0170984>] (rpm_idle+0xdc/0x18c) from [<c0171608>] (pm_runtime_set_autosuspend_delay+0x30/0x3c) [<c0171608>] (pm_runtime_set_autosuspend_delay+0x30/0x3c) from [<bf0069c4>] (sdhci_s3c_probe+0x35c/0x52c [sdhci_s3c]) [<bf0069c4>] (sdhci_s3c_probe+0x35c/0x52c [sdhci_s3c]) from [<c016a014>] (platform_drv_probe+0x18/0x1c) Signed-off-by: Chander Kashyap <chander.kashyap@linaro.org> Acked-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Chris Ball <cjb@laptop.org> |
||
---|---|---|
.. | ||
at91_mci.c | ||
at91_mci.h | ||
atmel-mci-regs.h | ||
atmel-mci.c | ||
au1xmmc.c | ||
bfin_sdh.c | ||
cb710-mmc.c | ||
cb710-mmc.h | ||
davinci_mmc.c | ||
dw_mmc-exynos.c | ||
dw_mmc-pci.c | ||
dw_mmc-pltfm.c | ||
dw_mmc-pltfm.h | ||
dw_mmc.c | ||
dw_mmc.h | ||
jz4740_mmc.c | ||
Kconfig | ||
Makefile | ||
mmc_spi.c | ||
mmci.c | ||
mmci.h | ||
msm_sdcc.c | ||
msm_sdcc.h | ||
mvsdio.c | ||
mvsdio.h | ||
mxcmmc.c | ||
mxs-mmc.c | ||
of_mmc_spi.c | ||
omap_hsmmc.c | ||
omap.c | ||
pxamci.c | ||
pxamci.h | ||
s3cmci.c | ||
s3cmci.h | ||
sdhci-cns3xxx.c | ||
sdhci-dove.c | ||
sdhci-esdhc-imx.c | ||
sdhci-esdhc.h | ||
sdhci-of-esdhc.c | ||
sdhci-of-hlwd.c | ||
sdhci-pci-data.c | ||
sdhci-pci.c | ||
sdhci-pltfm.c | ||
sdhci-pltfm.h | ||
sdhci-pxav2.c | ||
sdhci-pxav3.c | ||
sdhci-s3c.c | ||
sdhci-spear.c | ||
sdhci-tegra.c | ||
sdhci.c | ||
sdhci.h | ||
sdricoh_cs.c | ||
sh_mmcif.c | ||
sh_mobile_sdhi.c | ||
tifm_sd.c | ||
tmio_mmc_dma.c | ||
tmio_mmc_pio.c | ||
tmio_mmc.c | ||
tmio_mmc.h | ||
ushc.c | ||
via-sdmmc.c | ||
vub300.c | ||
wbsd.c | ||
wbsd.h |