Since copy_to_user() will check 'value', we do not need check it outside
again,  so can save one comparing instruction at least.

Also can let code simpler and easier for readers: if checking parameter
'value', it will easily lead readers to think about why not return
-EINVAL instead of -EFAULT, when checking parameter failed.

Signed-off-by: Chen Gang <gang.c...@asianux.com>
---
 kernel/itimer.c |   13 ++++++-------
 1 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/kernel/itimer.c b/kernel/itimer.c
index 8d262b4..3b12271 100644
--- a/kernel/itimer.c
+++ b/kernel/itimer.c
@@ -102,15 +102,14 @@ int do_getitimer(int which, struct itimerval *value)
 
 SYSCALL_DEFINE2(getitimer, int, which, struct itimerval __user *, value)
 {
-       int error = -EFAULT;
+       int error;
        struct itimerval get_buffer;
 
-       if (value) {
-               error = do_getitimer(which, &get_buffer);
-               if (!error &&
-                   copy_to_user(value, &get_buffer, sizeof(get_buffer)))
-                       error = -EFAULT;
-       }
+       error = do_getitimer(which, &get_buffer);
+       if (!error &&
+           copy_to_user(value, &get_buffer, sizeof(get_buffer)))
+               error = -EFAULT;
+
        return error;
 }
 
-- 
1.7.7.6
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to