On Wed, 3 Jun 2009 18:09:25 +0100 Russell King <rmk@xxxxxxxxxxxxxxxx> wrote: > In > fact, on ARM the DMA mask is exactly that - it's a 100% proper mask. It's > not a bunch of zeros in the MSB followed by a bunch of ones down to the > LSB. It can be a bunch of ones, a bunch of zeros, followed by a bunch of > ones. > > The way we occasionally have to deal with this is to trial an allocation, > see if the physical address fits, if not free the page and try again with > GFP_DMA set. A couple of times I've suggested that we have the ability to allocate one zone per address bit, so a 32-bit machine with 4k pages would end up having 20 zones. Then, your funny DMA mask can be directly passed into the page allocator as a zone mask and voila, I think. > There's many stories I've heard on what is supposed to take care of the > coherency that I now just close my ears to the problem and chant "it > doesn't exist, people aren't seeing it, mainline folk just don't give > a damn". Really. It is a problem on _some_ ARM devices and has been > for several years now, and I've 100% given up caring about it. I wasn't even aware that there was an issue here. Please don't blame "mainline folk" for something they weren't told about! -- To unsubscribe from this list: send the line "unsubscribe linux-embedded" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html