On 16/11/15 15:33, Ariel D'Alessandro wrote:
>>-------------------------------->cut<----------------------------------
>> From 8cae10eff8ea8da9c5a8058ff75abeeddd8a8224 Mon Sep 17 00:00:00 2001
>>From: Srinivas Kandagatla<srinivas.kandagatla@xxxxxxxxxx>
>>Date: Mon, 26 Oct 2015 13:30:24 +0000
>>Subject: [PATCH] nvmem: core: return error for non word aligned bytes
>>
>>nvmem providers have restrictions on register strides, so return error
>>code when users attempt to read/write buffers with sizes which are not
>>aligned to the word boundary.
>>
>>Without this patch the userspace would continue to try as it does not
>>get any error from the nvmem core, resulting in a hang.
>>
>>Signed-off-by: Srinivas Kandagatla<srinivas.kandagatla@xxxxxxxxxx>
>>---
>> drivers/nvmem/core.c | 6 ++++++
>> 1 file changed, 6 insertions(+)
>>
>>diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
>>index 6fd4e5a..9d11d98 100644
>>--- a/drivers/nvmem/core.c
>>+++ b/drivers/nvmem/core.c
>>@@ -70,6 +70,9 @@ static ssize_t bin_attr_nvmem_read(struct file *filp,
>>struct kobject *kobj,
>> if (pos >= nvmem->size)
>> return 0;
>>
>>+ if (count < nvmem->word_size)
>>+ return -EINVAL;
>>+
>> if (pos + count > nvmem->size)
>> count = nvmem->size - pos;
>>
>>@@ -95,6 +98,9 @@ static ssize_t bin_attr_nvmem_write(struct file *filp,
>>struct kobject *kobj,
>> if (pos >= nvmem->size)
>> return 0;
>>
>>+ if (count < nvmem->word_size)
>>+ return -EINVAL;
>>+
>> if (pos + count > nvmem->size)
>> count = nvmem->size - pos;
>>
>
>Patch looks good to me. I think that it solves the issue.
>I don't have the board here right now, so I'll check it ASAP and give
>some feedback.
Finally tested this. As it seemed, it solved the issue.
Are you submitting a patch for this?
Yes, I will send a patch to the mailing list.
--srini
Thanks again.
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html