Re: [PATCH] scatterlist: don't BUG when we can trivially return aproper error.

From: Nick Bowler
Date: Wed Nov 14 2012 - 17:16:15 EST


On 2012-11-14 13:05 -0800, Andrew Morton wrote:
> On Thu, 1 Nov 2012 15:03:00 -0400
> Nick Bowler <nbowler@xxxxxxxxxxxxxxxx> wrote:
>
> > There is absolutely no reason to crash the kernel when we have a
> > perfectly good return value already available to use for conveying
> > failure status.
>
> Yes, I suppose that's true. I don't see a case for BUGging the kernel
> here.
[...]
> > - BUG_ON(nents > max_ents);
> > + if (WARN_ON_ONCE(nents > max_ents))
> > + return -E2BIG;
> > #endif
>
> OK, pet peeve: if this E2BIG gets returned to userspace, our poor user
> will look it up and see "Argument list too long; used when the
> arguments passed to a new program being executed with one of the exec
> functions occupy too much memory space". He then gets to spend half a
> day reviewing his code's exec() callsites!
>
> See? Although the error's name sounds like a nice match to the
> internal state, it isn't really a match at all and our use of it is
> misleading.
>
> Unfortunately there is no EKERNELSCREWEDUP,

Well, maybe we should add it! :P

> so we usually use EINVAL.

Fair enough. I will prepare v2. But perhaps EOPNOTSUPP would be a
better fit?

Thanks,
--
Nick Bowler, Elliptic Technologies (http://www.elliptictech.com/)
--
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/