mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 00:53:34 +02:00
wifi: ath9k: consistently use kstrtoX_from_user() functions
Use 'kstrtoul_from_user()' and 'kstrtobool_from_user()' where appropriate and thus avoid some code duplication. Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru> Acked-by: Toke Høiland-Jørgensen <toke@toke.dk> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> Link: https://lore.kernel.org/r/20230726185046.188225-1-dmantipov@yandex.ru
This commit is contained in:
parent
6edb4ba6fb
commit
8b804643f4
|
|
@ -855,16 +855,11 @@ static ssize_t write_file_spectral_short_repeat(struct file *file,
|
|||
{
|
||||
struct ath_spec_scan_priv *spec_priv = file->private_data;
|
||||
unsigned long val;
|
||||
char buf[32];
|
||||
ssize_t len;
|
||||
ssize_t ret;
|
||||
|
||||
len = min(count, sizeof(buf) - 1);
|
||||
if (copy_from_user(buf, user_buf, len))
|
||||
return -EFAULT;
|
||||
|
||||
buf[len] = '\0';
|
||||
if (kstrtoul(buf, 0, &val))
|
||||
return -EINVAL;
|
||||
ret = kstrtoul_from_user(user_buf, count, 0, &val);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (val > 1)
|
||||
return -EINVAL;
|
||||
|
|
@ -903,17 +898,11 @@ static ssize_t write_file_spectral_count(struct file *file,
|
|||
{
|
||||
struct ath_spec_scan_priv *spec_priv = file->private_data;
|
||||
unsigned long val;
|
||||
char buf[32];
|
||||
ssize_t len;
|
||||
|
||||
len = min(count, sizeof(buf) - 1);
|
||||
if (copy_from_user(buf, user_buf, len))
|
||||
return -EFAULT;
|
||||
|
||||
buf[len] = '\0';
|
||||
if (kstrtoul(buf, 0, &val))
|
||||
return -EINVAL;
|
||||
ssize_t ret;
|
||||
|
||||
ret = kstrtoul_from_user(user_buf, count, 0, &val);
|
||||
if (ret)
|
||||
return ret;
|
||||
if (val > 255)
|
||||
return -EINVAL;
|
||||
|
||||
|
|
@ -951,16 +940,11 @@ static ssize_t write_file_spectral_period(struct file *file,
|
|||
{
|
||||
struct ath_spec_scan_priv *spec_priv = file->private_data;
|
||||
unsigned long val;
|
||||
char buf[32];
|
||||
ssize_t len;
|
||||
ssize_t ret;
|
||||
|
||||
len = min(count, sizeof(buf) - 1);
|
||||
if (copy_from_user(buf, user_buf, len))
|
||||
return -EFAULT;
|
||||
|
||||
buf[len] = '\0';
|
||||
if (kstrtoul(buf, 0, &val))
|
||||
return -EINVAL;
|
||||
ret = kstrtoul_from_user(user_buf, count, 0, &val);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (val > 255)
|
||||
return -EINVAL;
|
||||
|
|
@ -999,16 +983,11 @@ static ssize_t write_file_spectral_fft_period(struct file *file,
|
|||
{
|
||||
struct ath_spec_scan_priv *spec_priv = file->private_data;
|
||||
unsigned long val;
|
||||
char buf[32];
|
||||
ssize_t len;
|
||||
ssize_t ret;
|
||||
|
||||
len = min(count, sizeof(buf) - 1);
|
||||
if (copy_from_user(buf, user_buf, len))
|
||||
return -EFAULT;
|
||||
|
||||
buf[len] = '\0';
|
||||
if (kstrtoul(buf, 0, &val))
|
||||
return -EINVAL;
|
||||
ret = kstrtoul_from_user(user_buf, count, 0, &val);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (val > 15)
|
||||
return -EINVAL;
|
||||
|
|
|
|||
|
|
@ -96,21 +96,16 @@ static ssize_t read_file_debug(struct file *file, char __user *user_buf,
|
|||
}
|
||||
|
||||
static ssize_t write_file_debug(struct file *file, const char __user *user_buf,
|
||||
size_t count, loff_t *ppos)
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
struct ath_softc *sc = file->private_data;
|
||||
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
|
||||
unsigned long mask;
|
||||
char buf[32];
|
||||
ssize_t len;
|
||||
ssize_t ret;
|
||||
|
||||
len = min(count, sizeof(buf) - 1);
|
||||
if (copy_from_user(buf, user_buf, len))
|
||||
return -EFAULT;
|
||||
|
||||
buf[len] = '\0';
|
||||
if (kstrtoul(buf, 0, &mask))
|
||||
return -EINVAL;
|
||||
ret = kstrtoul_from_user(user_buf, count, 0, &mask);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
common->debug_mask = mask;
|
||||
return count;
|
||||
|
|
@ -191,16 +186,11 @@ static ssize_t write_file_ani(struct file *file,
|
|||
struct ath_softc *sc = file->private_data;
|
||||
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
|
||||
unsigned long ani;
|
||||
char buf[32];
|
||||
ssize_t len;
|
||||
ssize_t ret;
|
||||
|
||||
len = min(count, sizeof(buf) - 1);
|
||||
if (copy_from_user(buf, user_buf, len))
|
||||
return -EFAULT;
|
||||
|
||||
buf[len] = '\0';
|
||||
if (kstrtoul(buf, 0, &ani))
|
||||
return -EINVAL;
|
||||
ret = kstrtoul_from_user(user_buf, count, 0, &ani);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (ani > 1)
|
||||
return -EINVAL;
|
||||
|
|
@ -248,20 +238,15 @@ static ssize_t write_file_bt_ant_diversity(struct file *file,
|
|||
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
|
||||
struct ath9k_hw_capabilities *pCap = &sc->sc_ah->caps;
|
||||
unsigned long bt_ant_diversity;
|
||||
char buf[32];
|
||||
ssize_t len;
|
||||
ssize_t ret;
|
||||
|
||||
len = min(count, sizeof(buf) - 1);
|
||||
if (copy_from_user(buf, user_buf, len))
|
||||
return -EFAULT;
|
||||
ret = kstrtoul_from_user(user_buf, count, 0, &bt_ant_diversity);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (!(pCap->hw_caps & ATH9K_HW_CAP_BT_ANT_DIV))
|
||||
goto exit;
|
||||
|
||||
buf[len] = '\0';
|
||||
if (kstrtoul(buf, 0, &bt_ant_diversity))
|
||||
return -EINVAL;
|
||||
|
||||
common->bt_ant_diversity = !!bt_ant_diversity;
|
||||
ath9k_ps_wakeup(sc);
|
||||
ath9k_hw_set_bt_ant_diversity(sc->sc_ah, common->bt_ant_diversity);
|
||||
|
|
@ -792,16 +777,11 @@ static ssize_t write_file_reset(struct file *file,
|
|||
struct ath_hw *ah = sc->sc_ah;
|
||||
struct ath_common *common = ath9k_hw_common(ah);
|
||||
unsigned long val;
|
||||
char buf[32];
|
||||
ssize_t len;
|
||||
ssize_t ret;
|
||||
|
||||
len = min(count, sizeof(buf) - 1);
|
||||
if (copy_from_user(buf, user_buf, len))
|
||||
return -EFAULT;
|
||||
|
||||
buf[len] = '\0';
|
||||
if (kstrtoul(buf, 0, &val))
|
||||
return -EINVAL;
|
||||
ret = kstrtoul_from_user(user_buf, count, 0, &val);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (val != 1)
|
||||
return -EINVAL;
|
||||
|
|
@ -886,16 +866,11 @@ static ssize_t write_file_regidx(struct file *file, const char __user *user_buf,
|
|||
{
|
||||
struct ath_softc *sc = file->private_data;
|
||||
unsigned long regidx;
|
||||
char buf[32];
|
||||
ssize_t len;
|
||||
ssize_t ret;
|
||||
|
||||
len = min(count, sizeof(buf) - 1);
|
||||
if (copy_from_user(buf, user_buf, len))
|
||||
return -EFAULT;
|
||||
|
||||
buf[len] = '\0';
|
||||
if (kstrtoul(buf, 0, ®idx))
|
||||
return -EINVAL;
|
||||
ret = kstrtoul_from_user(user_buf, count, 0, ®idx);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
sc->debug.regidx = regidx;
|
||||
return count;
|
||||
|
|
@ -931,16 +906,11 @@ static ssize_t write_file_regval(struct file *file, const char __user *user_buf,
|
|||
struct ath_softc *sc = file->private_data;
|
||||
struct ath_hw *ah = sc->sc_ah;
|
||||
unsigned long regval;
|
||||
char buf[32];
|
||||
ssize_t len;
|
||||
ssize_t ret;
|
||||
|
||||
len = min(count, sizeof(buf) - 1);
|
||||
if (copy_from_user(buf, user_buf, len))
|
||||
return -EFAULT;
|
||||
|
||||
buf[len] = '\0';
|
||||
if (kstrtoul(buf, 0, ®val))
|
||||
return -EINVAL;
|
||||
ret = kstrtoul_from_user(user_buf, count, 0, ®val);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ath9k_ps_wakeup(sc);
|
||||
REG_WRITE_D(ah, sc->debug.regidx, regval);
|
||||
|
|
@ -1128,16 +1098,11 @@ static ssize_t write_file_wow(struct file *file, const char __user *user_buf,
|
|||
{
|
||||
struct ath_softc *sc = file->private_data;
|
||||
unsigned long val;
|
||||
char buf[32];
|
||||
ssize_t len;
|
||||
ssize_t ret;
|
||||
|
||||
len = min(count, sizeof(buf) - 1);
|
||||
if (copy_from_user(buf, user_buf, len))
|
||||
return -EFAULT;
|
||||
|
||||
buf[len] = '\0';
|
||||
if (kstrtoul(buf, 0, &val))
|
||||
return -EINVAL;
|
||||
ret = kstrtoul_from_user(user_buf, count, 0, &val);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (val != 1)
|
||||
return -EINVAL;
|
||||
|
|
@ -1191,17 +1156,12 @@ static ssize_t write_file_tpc(struct file *file, const char __user *user_buf,
|
|||
struct ath_softc *sc = file->private_data;
|
||||
struct ath_hw *ah = sc->sc_ah;
|
||||
unsigned long val;
|
||||
char buf[32];
|
||||
ssize_t len;
|
||||
ssize_t ret;
|
||||
bool tpc_enabled;
|
||||
|
||||
len = min(count, sizeof(buf) - 1);
|
||||
if (copy_from_user(buf, user_buf, len))
|
||||
return -EFAULT;
|
||||
|
||||
buf[len] = '\0';
|
||||
if (kstrtoul(buf, 0, &val))
|
||||
return -EINVAL;
|
||||
ret = kstrtoul_from_user(user_buf, count, 0, &val);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (val > 1)
|
||||
return -EINVAL;
|
||||
|
|
|
|||
|
|
@ -99,17 +99,11 @@ static ssize_t write_file_dfs(struct file *file, const char __user *user_buf,
|
|||
{
|
||||
struct ath_softc *sc = file->private_data;
|
||||
unsigned long val;
|
||||
char buf[32];
|
||||
ssize_t len;
|
||||
|
||||
len = min(count, sizeof(buf) - 1);
|
||||
if (copy_from_user(buf, user_buf, len))
|
||||
return -EFAULT;
|
||||
|
||||
buf[len] = '\0';
|
||||
if (kstrtoul(buf, 0, &val))
|
||||
return -EINVAL;
|
||||
ssize_t ret;
|
||||
|
||||
ret = kstrtoul_from_user(user_buf, count, 0, &val);
|
||||
if (ret)
|
||||
return ret;
|
||||
if (val == DFS_STATS_RESET_MAGIC)
|
||||
memset(&sc->debug.stats.dfs_stats, 0,
|
||||
sizeof(sc->debug.stats.dfs_stats));
|
||||
|
|
|
|||
|
|
@ -375,16 +375,11 @@ static ssize_t write_file_debug(struct file *file, const char __user *user_buf,
|
|||
struct ath9k_htc_priv *priv = file->private_data;
|
||||
struct ath_common *common = ath9k_hw_common(priv->ah);
|
||||
unsigned long mask;
|
||||
char buf[32];
|
||||
ssize_t len;
|
||||
ssize_t ret;
|
||||
|
||||
len = min(count, sizeof(buf) - 1);
|
||||
if (copy_from_user(buf, user_buf, len))
|
||||
return -EFAULT;
|
||||
|
||||
buf[len] = '\0';
|
||||
if (kstrtoul(buf, 0, &mask))
|
||||
return -EINVAL;
|
||||
ret = kstrtoul_from_user(user_buf, count, 0, &mask);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
common->debug_mask = mask;
|
||||
return count;
|
||||
|
|
|
|||
|
|
@ -172,9 +172,8 @@ static ssize_t write_file_tx99(struct file *file, const char __user *user_buf,
|
|||
{
|
||||
struct ath_softc *sc = file->private_data;
|
||||
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
|
||||
char buf[32];
|
||||
bool start;
|
||||
ssize_t len;
|
||||
ssize_t ret;
|
||||
int r;
|
||||
|
||||
if (count < 1)
|
||||
|
|
@ -183,14 +182,9 @@ static ssize_t write_file_tx99(struct file *file, const char __user *user_buf,
|
|||
if (sc->cur_chan->nvifs > 1)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
len = min(count, sizeof(buf) - 1);
|
||||
if (copy_from_user(buf, user_buf, len))
|
||||
return -EFAULT;
|
||||
|
||||
buf[len] = '\0';
|
||||
|
||||
if (kstrtobool(buf, &start))
|
||||
return -EINVAL;
|
||||
ret = kstrtobool_from_user(user_buf, count, &start);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
mutex_lock(&sc->mutex);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user