Re: [PATCH] kernel/params.c: make use of unused but set variable
From: Linus Torvalds
Date: Sun Jun 07 2015 - 20:17:34 EST
On Sun, Jun 7, 2015 at 5:00 PM, Tejun Heo <htejun@xxxxxxxxx> wrote:
> On Sun, Jun 07, 2015 at 05:54:30PM -0600, Louis Langholtz wrote:
>> @@ -853,6 +853,7 @@ static void __init version_sysfs_builtin(void)
>> mk = locate_module_kobject(vattr->module_name);
>> if (mk) {
>> err = sysfs_create_file(&mk->kobj, &vattr->mattr.attr);
>> + BUG_ON(err);
>
> Maybe BUG_ON(sysfs_create_file(...)); is simpler? Other than that,
Hell no.
Stop with the random BUG_ON() additions.
I have said this before, and apparently I need to sat this again, and
probably I will have to say it in the future.
We don't add BUG_ON's for random reasons.
The *ONLY* acceptable reason for a BUG_ON() is if the machine is dead
anyway because of some major internal corruption.
We have too many BUG_ON's. We've had people add BUG_ON's because "this
cannot happen", and then it turns out they were wrong, and they just
killed the machine.
Dammit, there's no reason to add a BUG_ON() here in the first place,
and the reason of "but but it's an unused error return": is f*cking
retarded.
Stop this idiocy. We don't write crap code just to satisfy some random
coding standard or shut up a compiler error.
At most, it could be a "WARN_ON_ONCE()". Maybe even just silently
ignore the error. But BUG_ON()? Hell no.
NO NO NO.
Quite frankly, if you want to add error handling, then dammit, add it
right. And no, BUG_ON() is _never_ proper error handling.
BUG_ON() is for things like "uhhuh, somebody is trying to free a page
that is already free". That is some serious internal corruption.
BUG_ON() is _not_ for "I'm not doing any error handling, so I'll
sprinkle random lines of BUG_ON() like fairy dust to make the compiler
happen".
Really. I'm getting very tired indeed of people adding BUG_ON's like
that. Stop it.
Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/