]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
x86/tlb: Convert copy_from_user() + kstrtouint() to kstrtouint_from_user()
authorFushuai Wang <wangfushuai@baidu.com>
Sat, 17 Jan 2026 14:56:15 +0000 (22:56 +0800)
committerBorislav Petkov (AMD) <bp@alien8.de>
Sun, 24 May 2026 23:08:38 +0000 (16:08 -0700)
Using kstrtouint_from_user() instead of copy_from_user() + kstrtouint() makes
the code simpler and less error-prone.

No functional changes.

  [ bp: Align function args on opening brace, while at it. ]

Suggested-by: Yury Norov <ynorov@nvidia.com>
Signed-off-by: Fushuai Wang <wangfushuai@baidu.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Yury Norov <ynorov@nvidia.com>
Link: https://patch.msgid.link/20260117145615.53455-3-fushuai.wang@linux.dev
arch/x86/mm/tlb.c

index af43d177087e7ea46712d83e7c95d0b9d58f9dd1..ce2e2c4c72c386227b75350a05345f31ef9e720e 100644 (file)
@@ -1769,7 +1769,7 @@ bool nmi_uaccess_okay(void)
 }
 
 static ssize_t tlbflush_read_file(struct file *file, char __user *user_buf,
-                            size_t count, loff_t *ppos)
+                                 size_t count, loff_t *ppos)
 {
        char buf[32];
        unsigned int len;
@@ -1778,20 +1778,15 @@ static ssize_t tlbflush_read_file(struct file *file, char __user *user_buf,
        return simple_read_from_buffer(user_buf, count, ppos, buf, len);
 }
 
-static ssize_t tlbflush_write_file(struct file *file,
-                const char __user *user_buf, size_t count, loff_t *ppos)
+static ssize_t tlbflush_write_file(struct file *file, const char __user *user_buf,
+                                  size_t count, loff_t *ppos)
 {
-       char buf[32];
-       ssize_t len;
        int ceiling;
+       int err;
 
-       len = min(count, sizeof(buf) - 1);
-       if (copy_from_user(buf, user_buf, len))
-               return -EFAULT;
-
-       buf[len] = '\0';
-       if (kstrtoint(buf, 0, &ceiling))
-               return -EINVAL;
+       err = kstrtoint_from_user(user_buf, count, 0, &ceiling);
+       if (err)
+               return err;
 
        if (ceiling < 0)
                return -EINVAL;