On Tue, 24 Feb 2026 17:54:07 +0000 Fuad Tabba <[email protected]> wrote:
> Hi Andy, > > On Tue, 24 Feb 2026 at 17:21, Andy Shevchenko > <[email protected]> wrote: > > > > On Tue, Feb 24, 2026 at 05:04:27PM +0000, Fuad Tabba wrote: > > > sized_strscpy() performs word-at-a-time writes to the destination > > > buffer. If the destination buffer is not aligned to unsigned long, > > > direct assignment causes UBSAN misaligned-access errors. > > > > > > Use put_unaligned() to safely write the words to the destination. > > > > Have you measured the performance impact? > > Not directly. I verified the disassembly for both x86_64 and aarch64. > On x86_64, both the raw pointer cast and put_unaligned() compile down > to mov %rdi,(%rsi). On aarch64, both compile to str x0, [x1]. What happens on cpu that trap misaligned accesses (eg sparc64)? put_unaligned() exists because it can be horrid. David > > > Have you read the comment near to > > > > if (IS_ENABLED(CONFIG_KMSAN)) > > Not until now to be honest. However, are you asking whether > put_unaligned() breaks KMSAN? I don't think it does, max is set to 0 > when KMSAN is enabled, this entire while loop is bypassed. > > Thanks, > /fuad > > > ? > > > > -- > > With Best Regards, > > Andy Shevchenko > > > > >

