瀏覽代碼

omap: remove BUG_ON for disabled interrupts

Remove a BUG_ON for when interrupts are disabled during an MMC request.

During boot, interrupts can be disabled when a request is made, causing
this bug to be triggered.  In reality, there's no reason this should halt
the kernel, as the driver has proved reliable in spite of disabled
interrupts, and additionally, there's nothing in this code that would
require interrupts to be enabled.

The only setup I've managed to make it trigger on is on the HTC Herald
during bootup when the driver is built into the kernel (mostly because
that's all I have).  I believe it's related to the fact that on bootup I
get many timeout errors on "CMD5" while initializing the card.  Each CMD5
timeout triggers that bug (I changed it to a WARN_ON to get it to boot in)
due to the fact that part of the timeout code involves sending the request
again.  With interrupts turned off, that BUG would be triggered.

Signed-off-by: Cory Maccarrone <darkstar6262@gmail.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Cc: <linux-mmc@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Cory Maccarrone 15 年之前
父節點
當前提交
683eb94777
共有 1 個文件被更改,包括 0 次插入1 次删除
  1. 0 1
      drivers/mmc/host/omap.c

+ 0 - 1
drivers/mmc/host/omap.c

@@ -1157,7 +1157,6 @@ static void mmc_omap_start_request(struct mmc_omap_host *host,
 	mmc_omap_start_command(host, req->cmd);
 	mmc_omap_start_command(host, req->cmd);
 	if (host->dma_in_use)
 	if (host->dma_in_use)
 		omap_start_dma(host->dma_ch);
 		omap_start_dma(host->dma_ch);
-	BUG_ON(irqs_disabled());
 }
 }
 
 
 static void mmc_omap_request(struct mmc_host *mmc, struct mmc_request *req)
 static void mmc_omap_request(struct mmc_host *mmc, struct mmc_request *req)