On Mon, Apr 25, 2016 at 11:51:53AM +0100, Matt Fleming wrote: > On Mon, 25 Apr, at 11:40:09AM, Mark Rutland wrote: > > > > It looks like irqs_disabled_flags() will do what you expect, and ignore > > everything but the interrupt flag. > > > > However, for ARM that will ignore the other exceptions we've seen FW > > erroneously unmask (e.g. FIQ), which is unfortunate, as fiddling with > > those is just as disastrous. > > Bah, right. > > > Would you be happy with an arch_efi_call_check_flags(before, after), > > instead? That way we can make the flags we check arch-specific. > > Could we just make the flag mask arch-specific instead of the call > since the rest of efi_call_virt_check_flags() is good? Yup, I meant that arch_efi_call_check_flags would only do the flag comparison, only replacing the bit currently in the WARN_ON_ONCE(). > Something like this (uncompiled, untested, half-baked), > > --- > > diff --git a/drivers/firmware/efi/runtime-wrappers.c b/drivers/firmware/efi/runtime-wrappers.c > index c38b1cfc26e2..057d00bee7d6 100644 > --- a/drivers/firmware/efi/runtime-wrappers.c > +++ b/drivers/firmware/efi/runtime-wrappers.c > @@ -25,9 +25,12 @@ > static void efi_call_virt_check_flags(unsigned long flags, const char *call) > { > unsigned long cur_flags; > + bool mismatch; > > local_save_flags(cur_flags); > - if (!WARN_ON_ONCE(cur_flags != flags)) > + > + mismatch = (cur_flags ^ flags) & ARCH_EFI_IRQ_FLAGS_MASK; > + if (!WARN_ON_ONCE(mismatch)) > return; This style also works for me. Should I respin patch 6 as a series doing the above? I assume that the first 5 patches are fine as-is. Thanks, 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