From 899192edbab9c5f4b42fc9ce5ab176530acc197b Mon Sep 17 00:00:00 2001 From: Patrick Pannuto Date: Wed, 4 Aug 2010 14:30:59 -0700 Subject: [PATCH] checkpatch: Check for illegal return codes The only legal integer return is 0, anything else following "return" should be -ERRCODE or a function. http://lkml.org/lkml/2010/7/23/318 There's lots of "return -1;" statements in this patch - it's obscene that this is used to indicate "some error occurred" in kernel space rather than a real errno value - even when an existing function (eg, request_irq) gave you an error code already. Please note this for the future - and please review patches on this point internally first. Change-Id: I16268b2ee034f0b3b899115e45c28acfa734ddec Signed-off-by: Patrick Pannuto (cherry picked from commit 39531a47164294315b5a7256b520fe22d6e87013) Signed-off-by: Stepan Moskovchenko --- scripts/checkpatch.pl | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index c21e4597a5bf..4370db214852 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -6373,6 +6373,12 @@ sub process { "switch default: should use break\n" . $herectx); } +# check for return codes on error paths + if ($line =~ /\breturn\s+-\d+/) { + ERROR("NO_ERROR_CODE", + "illegal return value, please use an error code\n" . $herecurr); + } + # check for gcc specific __FUNCTION__ if ($line =~ /\b__FUNCTION__\b/) { if (WARN("USE_FUNC",