On Thu, Jan 20, 2011 at 9:42 AM, Dave Martin <dave.martin@xxxxxxxxxx> wrote: > On Wed, Jan 19, 2011 at 10:29 PM, Kevin Hilman <khilman@xxxxxx> wrote: >> Dave Martin <dave.martin@xxxxxxxxxx> writes: >> >>> In low-level board support code, there is sometimes a need to >>> copy a function body to another location at run-time. >>> >>> A straightforward call to memcpy doesn't work in Thumb-2, >>> because bit 0 of external Thumb function symbols is set to 1, >>> indicating that the function is Thumb. Without corrective >>> measures, this will cause an off-by-one copy, and the copy >>> may be called using the wrong instruction set. >>> >>> This patch adds an fncpy() macro to help with such copies. >>> >>> Particular care is needed, because C doesn't guarantee any >>> defined behaviour when casting a function pointer to any other >>> type. This has been observed to lead to strange optimisation >>> side-effects when doing the arithmetic which is required in >>> order to copy/move function bodies correctly in Thumb-2. >>> >>> Thanks to Russell King and Nicolas Pitre for their input >>> on this patch. >>> >>> Signed-off-by: Dave Martin <dave.martin@xxxxxxxxxx> >>> Tested-by: Jean Pihet <j-pihet@xxxxxx> >> >> Tested-by: Kevin Hilman <khilman@xxxxxx> >> >> along with Jean's OMAP patch on: >> >> OMAP2420/n810: including basic suspend/resume test. >> >> OMAP16xx/OSK: boot test only. >> >> Kevin >> > > Thanks > ---Dave > Any more comments on this patch? I have no further changes so far. Cheers ---Dave -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html