Hi Linus, On 9/27/21 8:33 PM, Linus Torvalds wrote: > On Mon, Sep 27, 2021 at 6:22 AM Arnd Bergmann <arnd@xxxxxxxxxx> wrote: >> >> More specifically, ' think '\377' may be either -1 or 255 depending on >> the architecture. >> On most architectures, 'char' is implicitly signed, but on some others >> it is not. > > Yeah. That code is just broken. > > And Arnd, your patch may be "conceptually minimal", in that it keeps > thed broken code and makes it work. But it just dials up the oddity to > 11. > > The proper patch is just this appended thing that stops playing silly > games, and just uses "memcmp()". > > I've verified that with sane build configurations, it just generates > > testq %rsi, %rsi > je .L25 > cmpl $-33620224, (%rsi) > je .L31 > > for that > > if (data && !memcmp(data, VBSF_MOUNT_SIGNATURE, 4)) { > > test. With a lot of crazy debug options you'll actually see the > "memcmp()", but the bad code generation is the least of your options > in that case. I agree that your suggestion is to be the best solution, so how do we move forward with this, do I turn this into a proper patch with you as the author and Arnd as Reported-by and if yes may I add your Signed-off-by to the patch ? Or do I make myself author and set you as Suggested-by ? Regards, Hans