From: lintao Date: Wed, 10 Sep 2014 07:21:15 +0000 (+0800) Subject: mmc: fix spinlock bf in irq env X-Git-Tag: firefly_0821_release~4729 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=5dce427f179ea;p=firefly-linux-kernel-4.4.55.git mmc: fix spinlock bf in irq env --- diff --git a/drivers/mmc/host/rk_sdmmc.c b/drivers/mmc/host/rk_sdmmc.c index 586b91479e3a..4f3c0d3b9ae4 100755 --- a/drivers/mmc/host/rk_sdmmc.c +++ b/drivers/mmc/host/rk_sdmmc.c @@ -1694,10 +1694,11 @@ static void dw_mci_enable_sdio_irq(struct mmc_host *mmc, int enb) { struct dw_mci_slot *slot = mmc_priv(mmc); struct dw_mci *host = slot->host; + unsigned long flags; u32 int_mask; u32 sdio_int; - spin_lock_bh(&host->lock); + spin_lock_irqsave(&host->lock, flags); /* Enable/disable Slot Specific SDIO interrupt */ int_mask = mci_readl(host, INTMASK); @@ -1723,7 +1724,7 @@ static void dw_mci_enable_sdio_irq(struct mmc_host *mmc, int enb) (int_mask & ~sdio_int)); } - spin_unlock_bh(&host->lock); + spin_unlock_irqrestore(&host->lock, flags); } #ifdef CONFIG_MMC_DW_ROCKCHIP_SWITCH_VOLTAGE