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

From: richard -rw- weinberger
Date: Wed Nov 14 2012 - 17:27:20 EST


On Wed, Nov 14, 2012 at 11:15 PM, Nick Bowler <nbowler@xxxxxxxxxxxxxxxx> wrote:
> 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?

IMHO this would be even more confusing...

--
Thanks,
//richard
--
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/