Eric W. Biederman wrote: > Shani Moideen <shani.moideen at wipro.com> writes: > >> Hi, >> Replacing memcpy(dest,src,PAGE_SIZE) with copy_page(dest,src) in >> arch/i386/kernel/machine_kexec.c. > > Please no. > > People get creative in copy_page (especially mmx_copy_page), > and this code path need something simple and stupid, that > will work every time, especially when things are messed up > elsewhere. > memcpy() is pretty creative, too. If you want something really dumb and robust, you should probably create an inline: /* * Eric sez: his code path need something simple and stupid, that * will work every time, especially when things are messed up * elsewhere. */ static inline void braindead_copy_page(void *dst, void *src) { unsigned long ctr = PAGE_SIZE >> 2; asm volatile("cld; rep; movsl" : "+D" (dst), "+S" (src), "+c" (ctr) : : "memory"); } (FWIW, the "cld" is supposed to be redundant, as DF=0 is supposed to be guaranteed by the ABI.) -hpa