Use memdup_user_nul() helper instead of open-coding to simplify the code.

Signed-off-by: Geliang Tang <geliangt...@gmail.com>
---
 arch/powerpc/platforms/pseries/reconfig.c | 13 +++----------
 1 file changed, 3 insertions(+), 10 deletions(-)

diff --git a/arch/powerpc/platforms/pseries/reconfig.c 
b/arch/powerpc/platforms/pseries/reconfig.c
index e5bf1e8..431f513 100644
--- a/arch/powerpc/platforms/pseries/reconfig.c
+++ b/arch/powerpc/platforms/pseries/reconfig.c
@@ -367,16 +367,9 @@ static ssize_t ofdt_write(struct file *file, const char 
__user *buf, size_t coun
        char *kbuf;
        char *tmp;
 
-       if (!(kbuf = kmalloc(count + 1, GFP_KERNEL))) {
-               rv = -ENOMEM;
-               goto out;
-       }
-       if (copy_from_user(kbuf, buf, count)) {
-               rv = -EFAULT;
-               goto out;
-       }
-
-       kbuf[count] = '\0';
+       kbuf = memdup_user_nul(buf, count);
+       if (IS_ERR(kbuf))
+               return PTR_ERR(kbuf);
 
        tmp = strchr(kbuf, ' ');
        if (!tmp) {
-- 
2.9.3

Reply via email to