diff mbox series

[u-boot-marvell] arm: mvebu: turris_omnia: fix leaked mtd device

Message ID 20210925004918.30818-1-kabel@kernel.org
State Accepted
Commit 4d515607ddab653492033323e7666a92adfdf7b1
Delegated to: Stefan Roese
Headers show
Series [u-boot-marvell] arm: mvebu: turris_omnia: fix leaked mtd device | expand

Commit Message

Marek Behún Sept. 25, 2021, 12:49 a.m. UTC
From: Marek Behún <marek.behun@nic.cz>

After getting MTD device via get_mtd_device_nm(), we need to put it with
put_mtd_device(), otherwise we get

  Removing MTD device #0 (mx25l6405d) with use count 1

before booting kernel.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
---
 board/CZ.NIC/turris_omnia/turris_omnia.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Pali Rohár Sept. 25, 2021, 4:05 p.m. UTC | #1
On Saturday 25 September 2021 02:49:18 Marek Behún wrote:
> From: Marek Behún <marek.behun@nic.cz>
> 
> After getting MTD device via get_mtd_device_nm(), we need to put it with
> put_mtd_device(), otherwise we get
> 
>   Removing MTD device #0 (mx25l6405d) with use count 1
> 
> before booting kernel.
> 
> Signed-off-by: Marek Behún <marek.behun@nic.cz>

Reviewed-by: Pali Rohár <pali@kernel.org>
Tested-by: Pali Rohár <pali@kernel.org>
Fixes: 92f36c8e74c1 ("arm: mvebu: turris_omnia: fixup MTD partitions in Linux' DTB")

Above commit was introduced in v2021.10-rc1, so I think this fixup
should go into v2021.10.

Stefan, what do you think?

> ---
>  board/CZ.NIC/turris_omnia/turris_omnia.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/board/CZ.NIC/turris_omnia/turris_omnia.c b/board/CZ.NIC/turris_omnia/turris_omnia.c
> index bac78af04e..a48e1f5c30 100644
> --- a/board/CZ.NIC/turris_omnia/turris_omnia.c
> +++ b/board/CZ.NIC/turris_omnia/turris_omnia.c
> @@ -647,10 +647,13 @@ int ft_board_setup(void *blob, struct bd_info *bd)
>  	if (!fixup_mtd_partitions(blob, node, mtd))
>  		goto fail;
>  
> +	put_mtd_device(mtd);
>  	return 0;
>  
>  fail:
>  	printf("Failed fixing SPI NOR partitions!\n");
> +	if (!IS_ERR_OR_NULL(mtd))
> +		put_mtd_device(mtd);
>  	return 0;
>  }
>  #endif
> -- 
> 2.32.0
>
Stefan Roese Sept. 27, 2021, 5:39 a.m. UTC | #2
On 25.09.21 02:49, Marek Behún wrote:
> From: Marek Behún <marek.behun@nic.cz>
> 
> After getting MTD device via get_mtd_device_nm(), we need to put it with
> put_mtd_device(), otherwise we get
> 
>    Removing MTD device #0 (mx25l6405d) with use count 1
> 
> before booting kernel.
> 
> Signed-off-by: Marek Behún <marek.behun@nic.cz>

Reviewed-by: Stefan Roese <sr@denx.de>

Thanks,
Stefan

> ---
>   board/CZ.NIC/turris_omnia/turris_omnia.c | 3 +++
>   1 file changed, 3 insertions(+)
> 
> diff --git a/board/CZ.NIC/turris_omnia/turris_omnia.c b/board/CZ.NIC/turris_omnia/turris_omnia.c
> index bac78af04e..a48e1f5c30 100644
> --- a/board/CZ.NIC/turris_omnia/turris_omnia.c
> +++ b/board/CZ.NIC/turris_omnia/turris_omnia.c
> @@ -647,10 +647,13 @@ int ft_board_setup(void *blob, struct bd_info *bd)
>   	if (!fixup_mtd_partitions(blob, node, mtd))
>   		goto fail;
>   
> +	put_mtd_device(mtd);
>   	return 0;
>   
>   fail:
>   	printf("Failed fixing SPI NOR partitions!\n");
> +	if (!IS_ERR_OR_NULL(mtd))
> +		put_mtd_device(mtd);
>   	return 0;
>   }
>   #endif
> 


Viele Grüße,
Stefan
Stefan Roese Sept. 27, 2021, 5:40 a.m. UTC | #3
On 25.09.21 18:05, Pali Rohár wrote:
> On Saturday 25 September 2021 02:49:18 Marek Behún wrote:
>> From: Marek Behún <marek.behun@nic.cz>
>>
>> After getting MTD device via get_mtd_device_nm(), we need to put it with
>> put_mtd_device(), otherwise we get
>>
>>    Removing MTD device #0 (mx25l6405d) with use count 1
>>
>> before booting kernel.
>>
>> Signed-off-by: Marek Behún <marek.behun@nic.cz>
> 
> Reviewed-by: Pali Rohár <pali@kernel.org>
> Tested-by: Pali Rohár <pali@kernel.org>
> Fixes: 92f36c8e74c1 ("arm: mvebu: turris_omnia: fixup MTD partitions in Linux' DTB")
> 
> Above commit was introduced in v2021.10-rc1, so I think this fixup
> should go into v2021.10.
> 
> Stefan, what do you think?

Makes sense. I'll push this out today.

Thanks,
Stefan

>> ---
>>   board/CZ.NIC/turris_omnia/turris_omnia.c | 3 +++
>>   1 file changed, 3 insertions(+)
>>
>> diff --git a/board/CZ.NIC/turris_omnia/turris_omnia.c b/board/CZ.NIC/turris_omnia/turris_omnia.c
>> index bac78af04e..a48e1f5c30 100644
>> --- a/board/CZ.NIC/turris_omnia/turris_omnia.c
>> +++ b/board/CZ.NIC/turris_omnia/turris_omnia.c
>> @@ -647,10 +647,13 @@ int ft_board_setup(void *blob, struct bd_info *bd)
>>   	if (!fixup_mtd_partitions(blob, node, mtd))
>>   		goto fail;
>>   
>> +	put_mtd_device(mtd);
>>   	return 0;
>>   
>>   fail:
>>   	printf("Failed fixing SPI NOR partitions!\n");
>> +	if (!IS_ERR_OR_NULL(mtd))
>> +		put_mtd_device(mtd);
>>   	return 0;
>>   }
>>   #endif
>> -- 
>> 2.32.0
>>


Viele Grüße,
Stefan
Stefan Roese Sept. 27, 2021, 5:48 a.m. UTC | #4
On 25.09.21 02:49, Marek Behún wrote:
> From: Marek Behún <marek.behun@nic.cz>
> 
> After getting MTD device via get_mtd_device_nm(), we need to put it with
> put_mtd_device(), otherwise we get
> 
>    Removing MTD device #0 (mx25l6405d) with use count 1
> 
> before booting kernel.
> 
> Signed-off-by: Marek Behún <marek.behun@nic.cz>

Applied to u-boot-marvell/master

Thanks,
Stefan

> ---
>   board/CZ.NIC/turris_omnia/turris_omnia.c | 3 +++
>   1 file changed, 3 insertions(+)
> 
> diff --git a/board/CZ.NIC/turris_omnia/turris_omnia.c b/board/CZ.NIC/turris_omnia/turris_omnia.c
> index bac78af04e..a48e1f5c30 100644
> --- a/board/CZ.NIC/turris_omnia/turris_omnia.c
> +++ b/board/CZ.NIC/turris_omnia/turris_omnia.c
> @@ -647,10 +647,13 @@ int ft_board_setup(void *blob, struct bd_info *bd)
>   	if (!fixup_mtd_partitions(blob, node, mtd))
>   		goto fail;
>   
> +	put_mtd_device(mtd);
>   	return 0;
>   
>   fail:
>   	printf("Failed fixing SPI NOR partitions!\n");
> +	if (!IS_ERR_OR_NULL(mtd))
> +		put_mtd_device(mtd);
>   	return 0;
>   }
>   #endif
> 


Viele Grüße,
Stefan
diff mbox series

Patch

diff --git a/board/CZ.NIC/turris_omnia/turris_omnia.c b/board/CZ.NIC/turris_omnia/turris_omnia.c
index bac78af04e..a48e1f5c30 100644
--- a/board/CZ.NIC/turris_omnia/turris_omnia.c
+++ b/board/CZ.NIC/turris_omnia/turris_omnia.c
@@ -647,10 +647,13 @@  int ft_board_setup(void *blob, struct bd_info *bd)
 	if (!fixup_mtd_partitions(blob, node, mtd))
 		goto fail;
 
+	put_mtd_device(mtd);
 	return 0;
 
 fail:
 	printf("Failed fixing SPI NOR partitions!\n");
+	if (!IS_ERR_OR_NULL(mtd))
+		put_mtd_device(mtd);
 	return 0;
 }
 #endif