On Thu, Feb 27, 2025, at 14:49, Pavel Begunkov wrote: > On 2/27/25 13:20, Arnd Bergmann wrote: >> | ^~~ >> >> Since io_is_compat() turns into a compile-time 'false', the #ifdef >> here is completely unnecessary, and removing it avoids the warning. > > I don't think __get_compat_msghdr() and other helpers are > compiled for !COMPAT. They are not defined without CONFIG_COMPAT. My point in the message is that io_is_compat() turning into a compile-time 'false' value means that they also don't get called, because compilers are really good at this type of dead code elimination. > I'd just silence it like: > > if (io_is_compat(req->ctx)) { > ret = -EFAULT; > #ifdef CONFIG_COMPAT > ... > #endif CONFIG_COMPAT > } That seems even less readable. If you want to be explicit about it, you could use if (IS_ENABLED(CONFIG_COMPAT) && io_is_compat(req->ctx)) { to replace the #ifdef, but as I wrote in the patch description, the compile-time check is really redundant because io_is_compat() is meant to do exactly that. Arnd