From: Jisheng Zhang Date: Fri, 23 Jan 2015 10:08:21 +0000 (+0800) Subject: mmc: sdhci-pxav3: fix race between runtime pm and irq X-Git-Tag: fixes-v4.0-rc1~141^2~22 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3bb10f60933e84abfe2be69f60b3486f9b96348b;p=pandora-kernel.git mmc: sdhci-pxav3: fix race between runtime pm and irq This patch is to fix a race condition that may cause an unhandled irq, which results in big sdhci interrupt numbers and endless "mmc1: got irq while runtime suspended" msgs before v3.15. Consider following scenario: CPU0 CPU1 sdhci_pxav3_runtime_suspend() spin_lock_irqsave(&host->lock, flags); sdhci_irq() spining on the &host->lock host->runtime_suspended = true; spin_unlock_irqrestore(&host->lock, flags); get the &host->lock runtime_suspended is true now return IRQ_NONE; Fix this race by using the core sdhci.c supplied sdhci_runtime_suspend_host() in runtime suspend hook which will disable card interrupts. We also use the sdhci_runtime_resume_host() in the runtime resume hook accordingly. Signed-off-by: Jisheng Zhang Cc: # v3.9+ Signed-off-by: Ulf Hansson --- Reading git-diff-tree failed