1 Apr
2019
1 Apr
'19
7:15 p.m.
On 3/29/19 12:04 PM, Takashi Iwai wrote:
On Thu, 21 Mar 2019 17:10:05 +0100, Pierre-Louis Bossart wrote:
+static ssize_t sof_dfsentry_read(struct file *file, char __user *buffer,
size_t count, loff_t *ppos)
+{
- struct snd_sof_dfsentry *dfse = file->private_data;
- struct snd_sof_dev *sdev = dfse->sdev;
- int size;
- u32 *buf;
- loff_t pos = *ppos;
- size_t size_ret;
- size = dfse->size;
- /* validate position & count */
- if (pos < 0)
return -EINVAL;
- if (pos >= size || !count)
return 0;
- /* find the minimum. min() is not used since it adds sparse warnings */
- if (count > size - pos)
count = size - pos;
- /* intermediate buffer size must be u32 multiple */
- size = ALIGN(count, 4);
Doesn't pos need to be aligned to 32bit as well (at least at actually reading from iomem)?
Good point, we can either return an error if the count in both a multiple of 32 bits, or do some caching to allow for arbitrary size access. The former is very simple but not sure if this is accepted behavior for debugfs.