]> bbs.cooldavid.org Git - net-next-2.6.git/commit
ARM: mx3: Fix a race condition in mxcmmc
authorDaniel Mack <daniel@caiaq.de>
Tue, 27 Apr 2010 10:24:42 +0000 (12:24 +0200)
committerSascha Hauer <s.hauer@pengutronix.de>
Mon, 17 May 2010 09:44:13 +0000 (11:44 +0200)
commit4a31f2eff3b8fcf009db35f89eb222ed7835b6b9
treed66ba9333096b167248ab0a10c3bde6c0a19cfd6
parenta2ef4562c25317f3d0731e79eb432db8ed9eb1ca
ARM: mx3: Fix a race condition in mxcmmc

From cefcdab08d1c9636c4a7290bc2bbe937d051bce4 Mon Sep 17 00:00:00 2001
From: Volker Ernst <volker.ernst@txtr.com>
Date: Mon, 26 Apr 2010 22:51:07 +0200
Subject: [PATCH] ARM: mx3: Fix a race condition in mxcmmc

This fixes a race condition regarding interrupt bits in the SDHC
controller driver code.

In case of PIO-transfer it does not clear SDHC-status bit#11/12
in the INT-handler anymore. INT-handler might be called during
an ongoing PIO-data-transfer (with some other INT-flag set) and
PIO-transfer depends on these bits being set to detect the end
of the data-transfer. This also means that at the end of PIO-
transfer that PIO-software has to clear these bits itself.

However in case of DMA-transfer these bits have to be cleared
in the INT-handler, because they are used to generate INTs then.

Works solid, no more problems here, can transfer big files.

Signed-off-by: Volker Ernst <volker.ernst@txtr.com>
Acked-by: Daniel Mack <daniel@caiaq.de>
Cc: Andy Green <andy@warmcat.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
drivers/mmc/host/mxcmmc.c