On 7/6/26 13:53, Li Zhe wrote: > On Mon, Jul 6, 2026 at 11:18:48AM +0200, [email protected] wrote: > >>> + >>> +#define __HAVE_ARCH_MEMCPY_NT 1 >>> +/* >>> + * Reuse the existing x86 flushcache backend as the nt copy primitive. >>> + * Callers pair it with memcpy_nt_drain() when later stores must be >>> + * ordered after the copy. >>> + */ >>> +static __always_inline void memcpy_nt(void *dst, const void *src, size_t >>> cnt) >>> +{ >>> + memcpy_flushcache(dst, src, cnt); >>> +} >> >> In particular if you end up with a single function (that jsut requires a >> write >> memory barrier afterwards), please make this >> >> #define memcpy_nt memcpy_nt >> >> instead. > > Thanks for the review. > > Just to make sure I understood this correctly: do you mean that, rather > than using a separate __HAVE_ARCH_MEMCPY_NT feature macro, you would > prefer the usual self-macro override pattern, with > > #define memcpy_nt memcpy_nt > > in arch/x86/include/asm/string_64.h and the generic fallback kept under > #ifndef memcpy_nt in include/linux/string.h?
Yes, that's what Linus suggested as the preferred way for single functions when it came up in different context recently. -- Cheers, David

