On 09.12.20 15:02, Mark Rutland wrote:
On Wed, Dec 09, 2020 at 01:27:10PM +0000, Mark Rutland wrote:On Sun, Nov 22, 2020 at 01:44:53PM -0800, Andy Lutomirski wrote:On Sat, Nov 21, 2020 at 10:55 PM Jürgen Groß <jgross@xxxxxxxx> wrote:On 20.11.20 12:59, Peter Zijlstra wrote:If someone were to write horrible code like: local_irq_disable(); local_irq_save(flags); local_irq_enable(); local_irq_restore(flags); we'd be up some creek without a paddle... now I don't _think_ we have genius code like that, but I'd feel saver if we can haz an assertion in there somewhere...I was just talking to Peter on IRC about implementing the same thing for arm64, so could we put this in the generic irqflags code? IIUC we can use raw_irqs_disabled() to do the check. As this isn't really entry specific (and IIUC the cases this should catch would break lockdep today), maybe we should add a new DEBUG_IRQFLAGS for this, that DEBUG_LOCKDEP can also select? Something like: #define local_irq_restore(flags) \ do { \ if (!raw_irqs_disabled_flags(flags)) { \ trace_hardirqs_on(); \ } else if (IS_ENABLED(CONFIG_DEBUG_IRQFLAGS) { \ if (unlikely(raw_irqs_disabled()) \Whoops; that should be !raw_irqs_disabled().warn_bogus_irqrestore(); \ } \ raw_local_irq_restore(flags); \ } while (0) ... perhaps? (ignoring however we deal with once-ness).If no-one shouts in the next day or two I'll spin this as its own patch.
Fine with me. So I'll just ignore a potential error case in my patch. Thanks, Juergen
Attachment:
OpenPGP_0xB0DE9DD628BF132F.asc
Description: application/pgp-keys
Attachment:
OpenPGP_signature
Description: OpenPGP digital signature
_______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization