[alsa-devel] [PATCH v5 03/14] ASoC: SOF: Add driver debug support.

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Mon Apr 1 19:15:46 CEST 2019


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.


More information about the Alsa-devel mailing list