On Friday 22 June 2007 15:34, Nicolas Ferre wrote: > Hugh Dickins : > > Aren't you just guessing there? Those kunmap_atomics in at91_mci.c > > may look wrong to you, but they're not incorrect (so long as sg->offset > > falls within the page, as it must do here to make sense of the page). > > Especially not on ARM, where kunmap_atomic actually has no interest > > in the argument passed. And the oops was in the flush_dcache_page. > > > > If you actually reproduced Nicolas' problem on ARM, and verified > > that your patch then fixes it, please let us know: that will be > > remarkably interesting. > > Patch tested without success. Indeed, I always see the Oops with > Marc's patch. So, it's really interesting, it worked really for me (oops without patch) and no oops with it. My hardware is a custom board with an at91rm9200.
I had a look the the kunmap_atomic function, and I _really_ don't understand how this patch can do something :-/ And last but not least, my patch is completly wrong... void *kmap_atomic(...); unsigned int *buffer = kmap_atomic(...) + sg->offset; // addition in u8* kunmap_atomic(buffer - sg->offset); // <- sub in u32* -> please forget my patch Regards Marc - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/