On Thu, Jun 19, 2014 at 03:39:47PM -0700, H. Peter Anvin wrote:
On 06/19/2014 01:01 PM, Greg KH wrote:
On Thu, Jun 19, 2014 at 09:15:36PM +0200, Daniel Vetter wrote:
On Thu, Jun 19, 2014 at 7:00 PM, Greg KH gregkh@linuxfoundation.org wrote:
> + BUG_ON(f1->context != f2->context);
Nice, you just crashed the kernel, making it impossible to debug or recover :(
agreed, that should probably be 'if (WARN_ON(...)) return NULL;'
(but at least I wouldn't expect to hit that under console_lock so you should at least see the last N lines of the backtrace on the screen ;-))
Lots of devices don't have console screens :)
Aside: This is a pet peeve of mine and recently I've switched to rejecting all patch that have a BUG_ON, period.
Please do, I have been for a few years now as well for the same reasons you cite.
I'm actually concerned about this trend. Downgrading things to WARN_ON can allow a security bug in the kernel to continue to exist, for example, or make the error message disappear.
A BUG_ON makes any error message disappear pretty quickly :)
I'm talking about foolish "ASSERT-like" BUG_ON that driver authors like to add to their code when writing it to catch things they are messing up. After the code is working, they should be removed, like this one.
Don't enforce an api requirement with a kernel crash, warn and return an error which the caller should always be checking anyway.
thanks,
greg k-h