@@ -1418,6 +1418,11 @@ static inline void mmc_bus_get(struct mmc_host *host)
{
unsigned long flags;
+ if (mmc_am_panic_task(host)) {
+ host->bus_refs++;
+ return;
+ }
+
spin_lock_irqsave(&host->lock, flags);
host->bus_refs++;
spin_unlock_irqrestore(&host->lock, flags);
@@ -1431,6 +1436,11 @@ static inline void mmc_bus_put(struct mmc_host *host)
{
unsigned long flags;
+ if (mmc_am_panic_task(host)) {
+ host->bus_refs--;
+ return;
+ }
+
spin_lock_irqsave(&host->lock, flags);
host->bus_refs--;
if ((host->bus_refs == 0) && host->bus_ops)