]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: rtw88: use kstrtoX_from_user() in debugfs handlers
authorDmitry Antipov <dmantipov@yandex.ru>
Wed, 10 Jan 2024 13:29:28 +0000 (16:29 +0300)
committerKalle Valo <kvalo@kernel.org>
Thu, 18 Jan 2024 09:32:47 +0000 (11:32 +0200)
When 'sscanf()' is not needed to scan an input, prefer common
'kstrtoX_from_user()' over 'rtw_debugfs_copy_from_user()' with
following 'kstrtoX()'. Minor adjustments, compile tested only.

Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
Acked-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://msgid.link/20240110132930.438828-1-dmantipov@yandex.ru
drivers/net/wireless/realtek/rtw88/debug.c

index 1b2ad81838be3801fd2114b8e68d652939a510d1..5b2036798159af98dc97e09e52b58ef133df622e 100644 (file)
@@ -316,23 +316,13 @@ static ssize_t rtw_debugfs_set_single_input(struct file *filp,
 {
        struct seq_file *seqpriv = (struct seq_file *)filp->private_data;
        struct rtw_debugfs_priv *debugfs_priv = seqpriv->private;
-       struct rtw_dev *rtwdev = debugfs_priv->rtwdev;
-       char tmp[32 + 1];
        u32 input;
-       int num;
        int ret;
 
-       ret = rtw_debugfs_copy_from_user(tmp, sizeof(tmp), buffer, count, 1);
+       ret = kstrtou32_from_user(buffer, count, 0, &input);
        if (ret)
                return ret;
 
-       num = kstrtoint(tmp, 0, &input);
-
-       if (num) {
-               rtw_warn(rtwdev, "kstrtoint failed\n");
-               return num;
-       }
-
        debugfs_priv->cb_data = input;
 
        return count;
@@ -485,19 +475,12 @@ static ssize_t rtw_debugfs_set_fix_rate(struct file *filp,
        struct rtw_dev *rtwdev = debugfs_priv->rtwdev;
        struct rtw_dm_info *dm_info = &rtwdev->dm_info;
        u8 fix_rate;
-       char tmp[32 + 1];
        int ret;
 
-       ret = rtw_debugfs_copy_from_user(tmp, sizeof(tmp), buffer, count, 1);
+       ret = kstrtou8_from_user(buffer, count, 0, &fix_rate);
        if (ret)
                return ret;
 
-       ret = kstrtou8(tmp, 0, &fix_rate);
-       if (ret) {
-               rtw_warn(rtwdev, "invalid args, [rate]\n");
-               return ret;
-       }
-
        dm_info->fix_rate = fix_rate;
 
        return count;
@@ -879,20 +862,13 @@ static ssize_t rtw_debugfs_set_coex_enable(struct file *filp,
        struct rtw_debugfs_priv *debugfs_priv = seqpriv->private;
        struct rtw_dev *rtwdev = debugfs_priv->rtwdev;
        struct rtw_coex *coex = &rtwdev->coex;
-       char tmp[32 + 1];
        bool enable;
        int ret;
 
-       ret = rtw_debugfs_copy_from_user(tmp, sizeof(tmp), buffer, count, 1);
+       ret = kstrtobool_from_user(buffer, count, &enable);
        if (ret)
                return ret;
 
-       ret = kstrtobool(tmp, &enable);
-       if (ret) {
-               rtw_warn(rtwdev, "invalid arguments\n");
-               return ret;
-       }
-
        mutex_lock(&rtwdev->mutex);
        coex->manual_control = !enable;
        mutex_unlock(&rtwdev->mutex);
@@ -951,18 +927,13 @@ static ssize_t rtw_debugfs_set_fw_crash(struct file *filp,
        struct seq_file *seqpriv = (struct seq_file *)filp->private_data;
        struct rtw_debugfs_priv *debugfs_priv = seqpriv->private;
        struct rtw_dev *rtwdev = debugfs_priv->rtwdev;
-       char tmp[32 + 1];
        bool input;
        int ret;
 
-       ret = rtw_debugfs_copy_from_user(tmp, sizeof(tmp), buffer, count, 1);
+       ret = kstrtobool_from_user(buffer, count, &input);
        if (ret)
                return ret;
 
-       ret = kstrtobool(tmp, &input);
-       if (ret)
-               return -EINVAL;
-
        if (!input)
                return -EINVAL;
 
@@ -1030,11 +1001,12 @@ static ssize_t rtw_debugfs_set_dm_cap(struct file *filp,
        struct rtw_debugfs_priv *debugfs_priv = seqpriv->private;
        struct rtw_dev *rtwdev = debugfs_priv->rtwdev;
        struct rtw_dm_info *dm_info = &rtwdev->dm_info;
-       int bit;
+       int ret, bit;
        bool en;
 
-       if (kstrtoint_from_user(buffer, count, 10, &bit))
-               return -EINVAL;
+       ret = kstrtoint_from_user(buffer, count, 10, &bit);
+       if (ret)
+               return ret;
 
        en = bit > 0;
        bit = abs(bit);