Hi Paolo, On Fri, Nov 21, 2014 at 07:31:18PM +0100, Paolo Bonzini wrote: [...] >+ u64 feature = valid & -valid; >+ int index = fls64(feature) - 1; >+ void *src = get_xsave_addr(xsave, feature); >+ >+ if (src) { >+ u32 size, offset, ecx, edx; >+ cpuid_count(XSTATE_CPUID, index, >+ &size, &offset, &ecx, &edx); >+ memcpy(dest + offset, src, size); The offset you get is still for compact format, so you almost convert compat format to compat format instead of convert compact format to standard format. In addition, I think convert standard format to compact format should be implemented in put path. Regards, Wanpeng Li -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html