On Jun 15, 2015 11:43 AM, "Andrea Arcangeli" <aarcange@xxxxxxxxxx> wrote:
>
> Several times I got very hardly reproducible bugs noticed purely
> because of BUG_ON (not VM_BUG_ON)
Feel free to use them while developing. Don't send me patches with your broken debug code, though.
For users, a dead machine means that it is less likely you will ever get a bug report. People set "reboot on oops", and when running X is not always something that can be seen anyway. They'll just see a rebooting or a dead machine, and not send you any debug output.
This is not negotiable. Seriously. Get rid of the BUG_ON if you expect your patches to be merged mainline.
Also, even for debugging, using something like
if (WARN_ON_ONCE(...))
return -EINVAL;
is the right thing to do. Then you can unwind locks etc, and return cleanly, and you'll only get one warning rather than a stream of them etc.
So stop making excuses for your bad BUG_ON use. Do it in private where nobody can see your perversions, or do it right.
Linus