On Mon, Apr 25, 2016 at 03:24:35PM +0100, Matt Fleming wrote: > On Mon, 25 Apr, at 04:18:41PM, Ard Biesheuvel wrote: > > On 25 April 2016 at 16:15, Matt Fleming <matt@xxxxxxxxxxxxxxxxxxx> wrote: > > > On Mon, 25 Apr, at 03:12:01PM, Robin Murphy wrote: > > >> >+static void efi_call_virt_check_flags(unsigned long flags, const char *call) > > >> >+{ > > >> >+ unsigned long cur_flags; > > >> >+ bool mismatch; > > >> >+ > > >> >+ local_save_flags(cur_flags); > > >> >+ > > >> >+ mismatch = !!((cur_flags ^ flags) & ARCH_EFI_IRQ_FLAGS_MASK); > > >> > > >> nit: the assignment itself is already a conversion to bool, so the > > >> excitement is redundant here. > > > > > > This was intentional. I asked Mark to make this change so that it's > > > explicit for the developer that we're performing the type conversion. > > > > But replacing an implicit boolean cast with an explicit one makes > > little sense, no? Don't we simply want '!= 0' here if you need a > > boolean expression? > > Aha but '!!' is fewer characters to type!! > > I'm not that bothered as long as we don't stuff an int into a bool > without giving the programmer some idea we're doing that. It's not > about the compiler getting it wrong, more about a developer > introducing a bug when they change the code in the future. > > Unless anyone objects, I'll fix this up to use '!= 0' when I apply it. I have no strong preference so long as the code is correct. Another option is to get rid of the bool entirely: flags ^= cur_flags; if (!WARN_ON(flags & ARCH_EFI_IRQ_FLAGS_MASK)) return; Mark. -- To unsubscribe from this list: send the line "unsubscribe linux-efi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html