diff mbox series

mtd: nand: qcom: Fix the node for nand unmap resource

Message ID 20230907092854.11408-1-quic_bibekkum@quicinc.com
State New
Headers show
Series mtd: nand: qcom: Fix the node for nand unmap resource | expand

Commit Message

Bibek Kumar Patro Sept. 7, 2023, 9:28 a.m. UTC
While unmapping the nand resource in case of err_core_clk
the dev node being passed is res_start instead of nand->dma_base
(where the iova returned from map operation is stored) causing
failure in unmap operation. Hence modifying the unmap operation
to pass the nand->base_dma instead of res_start.

Signed-off-by: Bibek Kumar Patro <quic_bibekkum@quicinc.com>
---
 drivers/mtd/nand/raw/qcom_nandc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Pavan Kondeti Sept. 8, 2023, 10:22 a.m. UTC | #1
On Thu, Sep 07, 2023 at 02:58:54PM +0530, Bibek Kumar Patro wrote:
> While unmapping the nand resource in case of err_core_clk
> the dev node being passed is res_start instead of nand->dma_base

It is not not dev not but addr argument.

> (where the iova returned from map operation is stored) causing
> failure in unmap operation. Hence modifying the unmap operation
> to pass the nand->base_dma instead of res_start.
> 

Pls simplify this commit description. I think, it was a simple copy/paste
mistake. I would write

"Fix addr argument to dma_unmap_resource() in the error path of probe.
The addr argument should be dma address not physical address."

> Signed-off-by: Bibek Kumar Patro <quic_bibekkum@quicinc.com>
> ---
>  drivers/mtd/nand/raw/qcom_nandc.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/mtd/nand/raw/qcom_nandc.c b/drivers/mtd/nand/raw/qcom_nandc.c
> index f583022755a2..e085a0f588eb 100644
> --- a/drivers/mtd/nand/raw/qcom_nandc.c
> +++ b/drivers/mtd/nand/raw/qcom_nandc.c
> @@ -3322,7 +3322,7 @@ static int qcom_nandc_probe(struct platform_device *pdev)
>  err_aon_clk:
>  	clk_disable_unprepare(nandc->core_clk);
>  err_core_clk:
> -	dma_unmap_resource(dev, res->start, resource_size(res),
> +	dma_unmap_resource(dev, nandc->base_dma, resource_size(res),
>  			   DMA_BIDIRECTIONAL, 0);
>  	dev_err(&pdev->dev, "DEBUG: probe failed for nandc module\n");
>  	return ret;

Since you are fixing a bug introduced by a previous commit, you should
add Fixes tag like below. Refer to Documentation [1].

Fixes: 7330fc505af4 ("mtd: rawnand: qcom: stop using phys_to_dma()")

[1] https://docs.kernel.org/process/submitting-patches.html#using-reported-by-tested-by-reviewed-by-suggested-by-and-fixes

Thanks,
Pavan
Manivannan Sadhasivam Sept. 9, 2023, 6:03 a.m. UTC | #2
On Thu, Sep 07, 2023 at 02:58:54PM +0530, Bibek Kumar Patro wrote:
> While unmapping the nand resource in case of err_core_clk
> the dev node being passed is res_start instead of nand->dma_base
> (where the iova returned from map operation is stored) causing
> failure in unmap operation. Hence modifying the unmap operation
> to pass the nand->base_dma instead of res_start.
> 
> Signed-off-by: Bibek Kumar Patro <quic_bibekkum@quicinc.com>
> ---
>  drivers/mtd/nand/raw/qcom_nandc.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/mtd/nand/raw/qcom_nandc.c b/drivers/mtd/nand/raw/qcom_nandc.c
> index f583022755a2..e085a0f588eb 100644
> --- a/drivers/mtd/nand/raw/qcom_nandc.c
> +++ b/drivers/mtd/nand/raw/qcom_nandc.c
> @@ -3322,7 +3322,7 @@ static int qcom_nandc_probe(struct platform_device *pdev)
>  err_aon_clk:
>  	clk_disable_unprepare(nandc->core_clk);
>  err_core_clk:
> -	dma_unmap_resource(dev, res->start, resource_size(res),
> +	dma_unmap_resource(dev, nandc->base_dma, resource_size(res),
>  			   DMA_BIDIRECTIONAL, 0);
>  	dev_err(&pdev->dev, "DEBUG: probe failed for nandc module\n");

This error indicates that you are sending the patch against downstream tree.
That's not appropriate. Please send your patches against mainline/mtd-next
instead and also validate properly.

- Mani

>  	return ret;
> -- 
> 2.17.1
>
Bibek Kumar Patro Sept. 11, 2023, 12:46 p.m. UTC | #3
On 9/9/2023 11:33 AM, Manivannan Sadhasivam wrote:
> On Thu, Sep 07, 2023 at 02:58:54PM +0530, Bibek Kumar Patro wrote:
>> While unmapping the nand resource in case of err_core_clk
>> the dev node being passed is res_start instead of nand->dma_base
>> (where the iova returned from map operation is stored) causing
>> failure in unmap operation. Hence modifying the unmap operation
>> to pass the nand->base_dma instead of res_start.
>>
>> Signed-off-by: Bibek Kumar Patro <quic_bibekkum@quicinc.com>
>> ---
>>   drivers/mtd/nand/raw/qcom_nandc.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/mtd/nand/raw/qcom_nandc.c b/drivers/mtd/nand/raw/qcom_nandc.c
>> index f583022755a2..e085a0f588eb 100644
>> --- a/drivers/mtd/nand/raw/qcom_nandc.c
>> +++ b/drivers/mtd/nand/raw/qcom_nandc.c
>> @@ -3322,7 +3322,7 @@ static int qcom_nandc_probe(struct platform_device *pdev)
>>   err_aon_clk:
>>   	clk_disable_unprepare(nandc->core_clk);
>>   err_core_clk:
>> -	dma_unmap_resource(dev, res->start, resource_size(res),
>> +	dma_unmap_resource(dev, nandc->base_dma, resource_size(res),
>>   			   DMA_BIDIRECTIONAL, 0);
>>   	dev_err(&pdev->dev, "DEBUG: probe failed for nandc module\n");
> 
> This error indicates that you are sending the patch against downstream tree.
> That's not appropriate. Please send your patches against mainline/mtd-next
> instead and also validate properly.
> 
> - Mani

This patch is created against upstream tree only,
These debug prints got added from a conflicting patch
created for debugging.
apologies for this mistake. Will revise this and send
a new patch set.

regards,
Bibek


> 
>>   	return ret;
>> -- 
>> 2.17.1
>>
>
Bibek Kumar Patro Sept. 11, 2023, 1:37 p.m. UTC | #4
On 9/8/2023 3:52 PM, Pavan Kondeti wrote:
> On Thu, Sep 07, 2023 at 02:58:54PM +0530, Bibek Kumar Patro wrote:
>> While unmapping the nand resource in case of err_core_clk
>> the dev node being passed is res_start instead of nand->dma_base
> 
> It is not not dev not but addr argument.
> 
>> (where the iova returned from map operation is stored) causing
>> failure in unmap operation. Hence modifying the unmap operation
>> to pass the nand->base_dma instead of res_start.
>>
> 
> Pls simplify this commit description. I think, it was a simple copy/paste
> mistake. I would write
> 
> "Fix addr argument to dma_unmap_resource() in the error path of probe.
> The addr argument should be dma address not physical address."
> 

Thanks for this suggestion Pavan, this looks simplified and easier to
understand the bug. Incorporated this in next revision.

>> Signed-off-by: Bibek Kumar Patro <quic_bibekkum@quicinc.com>
>> ---
>>   drivers/mtd/nand/raw/qcom_nandc.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/mtd/nand/raw/qcom_nandc.c b/drivers/mtd/nand/raw/qcom_nandc.c
>> index f583022755a2..e085a0f588eb 100644
>> --- a/drivers/mtd/nand/raw/qcom_nandc.c
>> +++ b/drivers/mtd/nand/raw/qcom_nandc.c
>> @@ -3322,7 +3322,7 @@ static int qcom_nandc_probe(struct platform_device *pdev)
>>   err_aon_clk:
>>   	clk_disable_unprepare(nandc->core_clk);
>>   err_core_clk:
>> -	dma_unmap_resource(dev, res->start, resource_size(res),
>> +	dma_unmap_resource(dev, nandc->base_dma, resource_size(res),
>>   			   DMA_BIDIRECTIONAL, 0);
>>   	dev_err(&pdev->dev, "DEBUG: probe failed for nandc module\n");
>>   	return ret;
> 
> Since you are fixing a bug introduced by a previous commit, you should
> add Fixes tag like below. Refer to Documentation [1].
> 
> Fixes: 7330fc505af4 ("mtd: rawnand: qcom: stop using phys_to_dma()")
> 
> [1] https://docs.kernel.org/process/submitting-patches.html#using-reported-by-tested-by-reviewed-by-suggested-by-and-fixes

Thanks very much for the inputs, addressed this in next revision.

Thanks & regards,
Bibek

> 
> Thanks,
> Pavan
diff mbox series

Patch

diff --git a/drivers/mtd/nand/raw/qcom_nandc.c b/drivers/mtd/nand/raw/qcom_nandc.c
index f583022755a2..e085a0f588eb 100644
--- a/drivers/mtd/nand/raw/qcom_nandc.c
+++ b/drivers/mtd/nand/raw/qcom_nandc.c
@@ -3322,7 +3322,7 @@  static int qcom_nandc_probe(struct platform_device *pdev)
 err_aon_clk:
 	clk_disable_unprepare(nandc->core_clk);
 err_core_clk:
-	dma_unmap_resource(dev, res->start, resource_size(res),
+	dma_unmap_resource(dev, nandc->base_dma, resource_size(res),
 			   DMA_BIDIRECTIONAL, 0);
 	dev_err(&pdev->dev, "DEBUG: probe failed for nandc module\n");
 	return ret;