diff mbox series

nvmem: core: Check read_only flag for force_ro in bin_attr_nvmem_write()

Message ID 20240713154001.107439-1-marex@denx.de
State New
Headers show
Series nvmem: core: Check read_only flag for force_ro in bin_attr_nvmem_write() | expand

Commit Message

Marek Vasut July 13, 2024, 3:39 p.m. UTC
The bin_attr_nvmem_write() must check the read_only flag and block
writes on read-only devices, now that a nvmem device can be switched
between read-write and read-only mode at runtime using the force_ro
attribute. Add the missing check.

Fixes: 9d7eb234ac7a ("nvmem: core: Implement force_ro sysfs attribute")
Signed-off-by: Marek Vasut <marex@denx.de>
---
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: linux-kernel@vger.kernel.org
---
 drivers/nvmem/core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Marek Vasut Sept. 24, 2024, 10:42 p.m. UTC | #1
On 7/13/24 5:39 PM, Marek Vasut wrote:
> The bin_attr_nvmem_write() must check the read_only flag and block
> writes on read-only devices, now that a nvmem device can be switched
> between read-write and read-only mode at runtime using the force_ro
> attribute. Add the missing check.
> 
> Fixes: 9d7eb234ac7a ("nvmem: core: Implement force_ro sysfs attribute")
> Signed-off-by: Marek Vasut <marex@denx.de>
> ---
> Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> Cc: linux-kernel@vger.kernel.org
It seems this bugfix is not even in next, any news ?
Marek Vasut Oct. 25, 2024, 11:15 p.m. UTC | #2
On 9/25/24 12:42 AM, Marek Vasut wrote:
> On 7/13/24 5:39 PM, Marek Vasut wrote:
>> The bin_attr_nvmem_write() must check the read_only flag and block
>> writes on read-only devices, now that a nvmem device can be switched
>> between read-write and read-only mode at runtime using the force_ro
>> attribute. Add the missing check.
>>
>> Fixes: 9d7eb234ac7a ("nvmem: core: Implement force_ro sysfs attribute")
>> Signed-off-by: Marek Vasut <marex@denx.de>
>> ---
>> Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
>> Cc: linux-kernel@vger.kernel.org
> It seems this bugfix is not even in next, any news ?

This is still broken, bugfix is available for three months now, but not 
picked up. Any news?
Srinivas Kandagatla Oct. 26, 2024, 7:21 a.m. UTC | #3
Apologies, some how I missed this email.

On 26/10/2024 00:15, Marek Vasut wrote:
> On 9/25/24 12:42 AM, Marek Vasut wrote:
>> On 7/13/24 5:39 PM, Marek Vasut wrote:
>>> The bin_attr_nvmem_write() must check the read_only flag and block
>>> writes on read-only devices, now that a nvmem device can be switched
>>> between read-write and read-only mode at runtime using the force_ro
>>> attribute. Add the missing check.
>>>
>>> Fixes: 9d7eb234ac7a ("nvmem: core: Implement force_ro sysfs attribute")
>>> Signed-off-by: Marek Vasut <marex@denx.de>

Applied with CC stable.

--srini
>>> ---
>>> Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
>>> Cc: linux-kernel@vger.kernel.org
>> It seems this bugfix is not even in next, any news ?
> 
> This is still broken, bugfix is available for three months now, but not 
> picked up. Any news?
Marek Vasut Oct. 26, 2024, 7:36 a.m. UTC | #4
On 10/26/24 9:21 AM, Srinivas Kandagatla wrote:
> Apologies, some how I missed this email.

No worries, the commit was still in my upstreaming queue, so I figured 
it was time to remind upstream about it.

> On 26/10/2024 00:15, Marek Vasut wrote:
>> On 9/25/24 12:42 AM, Marek Vasut wrote:
>>> On 7/13/24 5:39 PM, Marek Vasut wrote:
>>>> The bin_attr_nvmem_write() must check the read_only flag and block
>>>> writes on read-only devices, now that a nvmem device can be switched
>>>> between read-write and read-only mode at runtime using the force_ro
>>>> attribute. Add the missing check.
>>>>
>>>> Fixes: 9d7eb234ac7a ("nvmem: core: Implement force_ro sysfs attribute")
>>>> Signed-off-by: Marek Vasut <marex@denx.de>
> 
> Applied with CC stable.

Thank you !
diff mbox series

Patch

diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
index 516dfd861b9f9..9cfe7d4bcda39 100644
--- a/drivers/nvmem/core.c
+++ b/drivers/nvmem/core.c
@@ -267,7 +267,7 @@  static ssize_t bin_attr_nvmem_write(struct file *filp, struct kobject *kobj,
 
 	count = round_down(count, nvmem->word_size);
 
-	if (!nvmem->reg_write)
+	if (!nvmem->reg_write || nvmem->read_only)
 		return -EPERM;
 
 	rc = nvmem_reg_write(nvmem, pos, buf, count);