Hi Greg, thanks for the fix. I'll test this as soon as I get my own PC back... I use Geert's master tree as code basis. Best regards, Matthias
That looks to be the memcpy.c from linux-3.0, yes? Looking at the memcpy.c code for m68knommu before merging and cleanup I can see that it used to do this: const char *c_from = from; char *c_to = to; while (n-- > 0) *c_to++ = *c_from++; return((void *) to); for the the M68000 case. (Actually it did that for all non-ColdFire cases). Which obviously would always work, but is not particularly efficient. So, yes, the current code is broken for M68000. It doesn't check alignment of the source ("from") address. Heres a first attempt at a fix for this. This is only compile tested, not run tested... Basically we check that if after 16bit aligning the destination if the source is unaligned then we resort to a byte wise copy. Need to check if CPU32 needs this or not too. ColdFire doesn't.
-- To unsubscribe from this list: send the line "unsubscribe linux-m68k" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html