Return the error code when command fails.
Fixes: 13324edbe926 ("memory: tegra186-emc: Handle errors in BPMP response")
Reported-by: Hulk Robot <[email protected]>
Signed-off-by: Yang Yingliang <[email protected]>
---
drivers/memory/tegra/tegra186-emc.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/memory/tegra/tegra186-emc.c b/drivers/memory/tegra/tegra186-emc.c
index abc0c2eeaab7..16351840b187 100644
--- a/drivers/memory/tegra/tegra186-emc.c
+++ b/drivers/memory/tegra/tegra186-emc.c
@@ -198,6 +198,7 @@ static int tegra186_emc_probe(struct platform_device *pdev)
goto put_bpmp;
}
if (msg.rx.ret < 0) {
+ err = msg.rx.ret;
dev_err(&pdev->dev, "EMC DVFS MRQ failed: %d (BPMP error code)\n", msg.rx.ret);
goto put_bpmp;
}
--
2.25.1
On 9/27/21 10:51 AM, Yang Yingliang wrote:
> Return the error code when command fails.
>
> Fixes: 13324edbe926 ("memory: tegra186-emc: Handle errors in BPMP response")
> Reported-by: Hulk Robot <[email protected]>
> Signed-off-by: Yang Yingliang <[email protected]>
> ---
> drivers/memory/tegra/tegra186-emc.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/memory/tegra/tegra186-emc.c b/drivers/memory/tegra/tegra186-emc.c
> index abc0c2eeaab7..16351840b187 100644
> --- a/drivers/memory/tegra/tegra186-emc.c
> +++ b/drivers/memory/tegra/tegra186-emc.c
> @@ -198,6 +198,7 @@ static int tegra186_emc_probe(struct platform_device *pdev)
> goto put_bpmp;
> }
> if (msg.rx.ret < 0) {
> + err = msg.rx.ret;
> dev_err(&pdev->dev, "EMC DVFS MRQ failed: %d (BPMP error code)\n", msg.rx.ret);
> goto put_bpmp;
> }
>
Good catch, but we shouldn't return msg.rx.ret since it is a BPMP error
code that doesn't necessarily map directly to a Linux error code. So we
should set err to something like -EINVAL instead. Please update, or if
you'd prefer, I can fix it.
Mikko
Hi,
On 2021/9/27 16:52, Mikko Perttunen wrote:
> On 9/27/21 10:51 AM, Yang Yingliang wrote:
>> Return the error code when command fails.
>>
>> Fixes: 13324edbe926 ("memory: tegra186-emc: Handle errors in BPMP
>> response")
>> Reported-by: Hulk Robot <[email protected]>
>> Signed-off-by: Yang Yingliang <[email protected]>
>> ---
>> drivers/memory/tegra/tegra186-emc.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/memory/tegra/tegra186-emc.c
>> b/drivers/memory/tegra/tegra186-emc.c
>> index abc0c2eeaab7..16351840b187 100644
>> --- a/drivers/memory/tegra/tegra186-emc.c
>> +++ b/drivers/memory/tegra/tegra186-emc.c
>> @@ -198,6 +198,7 @@ static int tegra186_emc_probe(struct
>> platform_device *pdev)
>> goto put_bpmp;
>> }
>> if (msg.rx.ret < 0) {
>> + err = msg.rx.ret;
>> dev_err(&pdev->dev, "EMC DVFS MRQ failed: %d (BPMP error
>> code)\n", msg.rx.ret);
>> goto put_bpmp;
>> }
>>
>
> Good catch, but we shouldn't return msg.rx.ret since it is a BPMP
> error code that doesn't necessarily map directly to a Linux error
> code. So we should set err to something like -EINVAL instead. Please
> update, or if you'd prefer, I can fix it.
I can send a v2 later.
>
> Mikko
> .