On Thu, Oct 6, 2016 at 4:05 PM, Kees Cook <keescook@xxxxxxxxxxxx> wrote: > > It seems to handle other things too, file descriptors, I think? Some > giant warning, I think about fds, went away when I switched from > do_exit() to BUG(). I'd have to go look more closely. I think you must have changed something else too. I can't think of what else there is than the crazy "oops_in+_progress" hacks. We used to reset the preempt counter too, but with that being per-thread I don't think that even matters. So I think you may have some voodoo programming there. An an oops (but not a do_exit()) will add a taint, and there's the notifications that might do random things (mainly kgdb and tracing). But that should be pretty much it. > Yeah, for sure. I didn't mean to imply they all depended on it, just > that finding those that do will require manual inspection. We'll not > be able to do a flag-day on BUG until we fix everything. Not true. That kind of thinking just says "we can never change BUG at all". You'll never fix anything that way. We should just switch BUG() over and be done with it. The whole point it that since it should never trigger in the first place, the semantics on BUG() should never matter. And if you have some code that depends on the semantics of BUG(), that code is buggy crap *by*definition*. And there's no way we'll let that kind of shit determine kernel development. That would be insane. Linus -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html