Highmem issues with MMC filesystem
Jamie Lokier
jamie at shareable.org
Thu Mar 18 21:55:23 EDT 2010
Nicolas Pitre wrote:
> Data read from a DMA based block device is corrupted in memory and
> causing all sorts of misbehavior such as segmentation faults in user
> space, or EXT2 complaining about broken filesystem metadata.
I doubt it is related, but just in case: I've seen similar on a
no-doubt completely unrelated ARM9 system on now-ancient kernels:
occasional ext3 metadata corruption.
In my case it was due to a bug in the chip's IDE driver, which did:
1. Setup DMA address register.
2. Appropriate cache flushes.
3. Write to remaining DMA registers to start DMA.
It turned out step 1 causes the DMA controller to begin reading from
that address into an internal 128-byte FIFO, before officially
starting DMA. Moving step 2 before step 1 fixed that.
-- Jamie
More information about the linux-arm-kernel
mailing list