On Thu, Oct 22, 2020 at 6:36 PM Daniel Díaz <daniel.diaz@xxxxxxxxxx> wrote: > > The kernel Naresh originally referred to is here: > https://builds.tuxbuild.com/SCI7Xyjb7V2NbfQ2lbKBZw/ Thanks. And when I started looking at it, I realized that my original idea ("just look for __put_user_nocheck_X calls, there aren't so many of those") was garbage, and that I was just being stupid. Yes, the commit that broke was about __put_user(), but in order to not duplicate all the code, it re-used the regular put_user() infrastructure, and so all the normal put_user() calls are potential problem spots too if this is about the compiler interaction with KASAN and the asm changes. So it's not just a couple of special cases to look at, it's all the normal cases too. Ok, back to the drawing board, but I think reverting it is probably the right thing to do if I can't think of something smart. That said, since you see this on x86-64, where the whole ugly trick with that register asm("%"_ASM_AX) is unnecessary (because the 8-byte case is still just a single register, no %eax:%edx games needed), it would be interesting to hear if the attached patch fixes it. That would confirm that the problem really is due to some register allocation issue interaction (or, alternatively, it would tell me that there's something else going on). Linus
Attachment:
patch
Description: Binary data