Kalle Valo <[email protected]> writes:

> +static ssize_t ath10k_mem_value_read(struct file *file,
> +                                  char __user *user_buf,
> +                                  size_t count, loff_t *ppos)
> +{
> +     struct ath10k *ar = file->private_data;
> +     u8 *buf;
> +     int ret;
> +
> +     if (*ppos < 0)
> +             return -EINVAL;
> +
> +     if (!count)
> +             return 0;
> +
> +     buf = vmalloc(count);
> +     if (!buf)
> +             return -ENOMEM;
> +
> +     ret = ath10k_hif_diag_read(ar, *ppos, buf, count);
> +     if (ret) {
> +             ath10k_warn(ar, "failed to read address 0x%08x via diagnose 
> window from debugfs: %d\n",
> +                         (u32)(*ppos), ret);
> +             goto read_err;
> +     }
> +

[...]

> +static ssize_t ath10k_mem_value_write(struct file *file,
> +                                   const char __user *user_buf,
> +                                   size_t count, loff_t *ppos)
> +{
> +     struct ath10k *ar = file->private_data;
> +     u8 *buf;
> +     int ret;
> +
> +     if (*ppos < 0)
> +             return -EINVAL;
> +
> +     if (!count)
> +             return 0;
> +
> +     buf = vmalloc(count);
> +     if (!buf)
> +             return -ENOMEM;
> +
> +     ret = copy_from_user(buf, user_buf, count);
> +     if (ret)
> +             goto err_free_copy;
> +
> +     ret = ath10k_hif_diag_write(ar, *ppos, buf, count);
> +     if (ret) {
> +             ath10k_warn(ar, "failed to write address 0x%08x via diagnose 
> window from debugfs: %d\n",
> +                         (u32)(*ppos), ret);
> +             goto err_free_copy;
> +     }

In these two functions we also need to check ar->state.

-- 
Kalle Valo

_______________________________________________
ath10k mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/ath10k

Reply via email to