]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
scatterlist: don't BUG when we can trivially return a proper error.
authorNick Bowler <nbowler@elliptictech.com>
Thu, 15 Nov 2012 02:38:56 +0000 (13:38 +1100)
committerStephen Rothwell <sfr@canb.auug.org.au>
Thu, 15 Nov 2012 06:32:24 +0000 (17:32 +1100)
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.

Let's return an error code instead of crashing the kernel: that sounds
like a much better plan.

Signed-off-by: Nick Bowler <nbowler@elliptictech.com>
Cc: Maxim Levitsky <maximlevitsky@gmail.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
lib/scatterlist.c

index 3675452b23ca175b612489e362aa7274b75d96a5..11ecaf000696ce5ecbbdba1ccd4a04009f3b04aa 100644 (file)
@@ -248,7 +248,8 @@ int __sg_alloc_table(struct sg_table *table, unsigned int nents,
        unsigned int left;
 
 #ifndef ARCH_HAS_SG_CHAIN
-       BUG_ON(nents > max_ents);
+       if (WARN_ON_ONCE(nents > max_ents))
+               return -E2BIG;
 #endif
 
        memset(table, 0, sizeof(*table));