commit 0d8587376878c8da5a4953025e621c5dceb8b76a "mmc: core: Allocate per-request data using the block layer core" added a call to blk_cleanup_queue() into the mmc_cleanup_queue() call. This might look intutitive (and that is why I made the mistake), since the cleanup is called if we fail in mmc_init_queue(), but due to the nature of the MMC stack we are cleaning up the queue inside the stack once the queue has been started. The actual call to blk_cleanup_queue() is in mmc_blk_put() in block.c, calling it twice wreaks havoc. Fixes: 0d8587376878 ("mmc: core: Allocate per-request data using the block layer core") Reported-by: Heiner Kallweit <hkallweit1@xxxxxxxxx> Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx> --- drivers/mmc/core/queue.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/mmc/core/queue.c b/drivers/mmc/core/queue.c index 4bf9978b707a..ba689a2ffc51 100644 --- a/drivers/mmc/core/queue.c +++ b/drivers/mmc/core/queue.c @@ -312,7 +312,6 @@ void mmc_cleanup_queue(struct mmc_queue *mq) q->queuedata = NULL; blk_start_queue(q); spin_unlock_irqrestore(q->queue_lock, flags); - blk_cleanup_queue(mq->queue); mq->card = NULL; } -- 2.9.4 -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html