[PATCH v2 2/2] ath10k: add memory dump debugfs interface
Kalle Valo
kvalo at qca.qualcomm.com
Tue Nov 25 00:41:25 PST 2014
Kalle Valo <kvalo at qca.qualcomm.com> 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
More information about the ath10k
mailing list