Hello. On 08/06/2013 02:37 AM, Sergei Shtylyov wrote:
I'm testing SH-Mobile SDHI driver in DMA mode with a new DMA controller using 'bonnie++' and getting DMA error after which the tmio_mmc_dma.c code falls back to PIO but all commands time out after that. It turned out that the fallback code calls tmio_mmc_enable_dma() with RX/TX channels already freed and pointers to them cleared, so that the function bails out early instead of clearing the DMA bit in the CTL_DMA_ENABLE register. The regression was introduced by commit 162f43e31c5a376ec16336e5d0ac973373d54c89 (mmc: tmio: fix a deadlock). Moving tmio_mmc_enable_dma() calls to the top of the PIO fallback code in tmio_mmc_start_dma_{rx|tx}() helps.
Signed-off-by: Sergei Shtylyov <sergei.shtylyov@xxxxxxxxxxxxxxxxxx> Cc: stable@xxxxxxxxxxxxxxx # 3.1+
Acked-by: Guennadi Liakhovetski <g.liakhovetski@xxxxxx>
Not sure though how far back in stable this really has to go. We don't have any real-life problem reports with older kernels, do we?
If we did, that error would have been fixed earlier, wouldn't it?
I think approach to which patches should get into stable changed recently.
Haven't heard about that (or seen any change in the policy). The issue with this bug is its catastrophic consequencies: you can hardly ^C or ^Z out of 'bonnie++' when it happens (in fact, you cannot ^C at all). IIRC you can't even kill it from another shell.
Yeah, and the filesystem is seriously corrupt after this (I've tested only on VFAT so far).
Tried running 'bonnie++' on SD card with ext3 couple of times -- no problems there. On VFAT the DMA bug reproduced each time I tried to run the test (at least without the fix).
Thanks Guennadi
WBR, Sergei -- 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