[BUG] mmc: dw_mmc*: mmc2: cache flush error -110 hang

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello mmc people,

When booting the veyron speedy, which uses the dw_mmc driver on kernel 4.19 it hangs for ~10 minutes about 1 in 10 boots.
This also occurs on kernel version 4.17.2.
Tracing the hang:
if the mmc block system fails to read a sector, mmc_blk_rq_error is called, which calls hw_reset,
which calls _mmc_hw_reset in /drivers/mmc/core/mmc.c,
which finally calls
mmc_flush_cache(host->card) which hangs for ~10 minutes, before failing and resetting the emmc.

If the call to mmc_flush_cache(host->card) is commented out, the hang no longer happens.


The errors printed after it finally recovers are:
[  602.188052] mmc2: cache flush error -110
[  602.690672] dwmmc_rockchip ff0f0000.dwmmc: Busy; trying anyway
[  603.193323] mmc_host mmc2: Timeout sending command (cmd 0x202000 arg 0x0 status 0x80202000)

The first is printed by mmc_flush_cache, and the second two are from the second half of __mmc_hw_reset,
when it re inits the emmc.

Could this be due to incorrect clocks?



[Index of Archives]     [Linux Memonry Technology]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux