Re: [GIT] Networking

Linus Torvalds
2015-06-24T23:38:20Z

On Wed, Jun 24, 2015 at 6:39 AM, David Miller <davem@davemloft.net> wrote:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git master

Just going through the conflicts, I see commit 7193a141eb74 ("IB/mlx4:
Set VF to read from QP counters"), and wonder...

Is that code really supposed to fall through to the
infiniband-over-ethernet case when the link layer is
IB_LINK_LAYER_INFINIBAND but it's a slave?

The commit message is not in the least helpful.

On the *other* side of the same conflict, I find an even more
offensive commit, namely commit 4cd7c9479aff ("IB/mad: Add support for
additional MAD info to/from drivers") which adds a BUG_ON() for a
sanity check, rather than just returning -EINVAL or something sane
like that.

I'm getting *real* tired of that BUG_ON() shit. I realize that
infiniband is a niche market, and those "commercial grade" niche
markets are more-than-used-to crap code and horrible hacks, but this
is still the kernel. We don't add random machine-killing debug checks
when it is *so* simple to just do

if (WARN_ON_ONCE(..))
return -EINVAL;

instead.

Killing the machine for idiotic things like that is truly offensive,
and truly horrible horrible code. Why do I keep on having to tell
people off for doing these things? Why do people keep thinking that
debugging-by-killing-the-machine is a good idea?

Either that BUG_ON() cannot possibly happen, in which case it should
damn well not exist in the first place. Or it's a valuable debug aid,
in which case it should damn well not be a BUG_ON. You can't have it
both ways.

The next pointless BUG_ON() I see, I will start getting _really_
unpleasant about.

Doug, get rid of those things asap.

Linus