2022-11-15 05:26:08

by Hui Tang

[permalink] [raw]
Subject: [PATCH] net: mvpp2: fix possible invalid pointer dereference

It will cause invalid pointer dereference to priv->cm3_base behind,
if PTR_ERR(priv->cm3_base) in mvpp2_get_sram().

Fixes: a59d354208a7 ("net: mvpp2: enable global flow control")
Signed-off-by: Hui Tang <[email protected]>
---
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
index d98f7e9a480e..c92bd1922421 100644
--- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
+++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
@@ -7421,7 +7421,7 @@ static int mvpp2_probe(struct platform_device *pdev)
dev_warn(&pdev->dev, "Fail to alloc CM3 SRAM\n");

/* Enable global Flow Control only if handler to SRAM not NULL */
- if (priv->cm3_base)
+ if (!IS_ERR_OR_NULL(priv->cm3_base))
priv->global_tx_fc = true;
}

--
2.17.1



2022-11-15 09:00:36

by Leon Romanovsky

[permalink] [raw]
Subject: Re: [PATCH] net: mvpp2: fix possible invalid pointer dereference

On Tue, Nov 15, 2022 at 12:46:32PM +0800, Hui Tang wrote:
> It will cause invalid pointer dereference to priv->cm3_base behind,
> if PTR_ERR(priv->cm3_base) in mvpp2_get_sram().
>
> Fixes: a59d354208a7 ("net: mvpp2: enable global flow control")
> Signed-off-by: Hui Tang <[email protected]>
> ---
> drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
> index d98f7e9a480e..c92bd1922421 100644
> --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
> +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
> @@ -7421,7 +7421,7 @@ static int mvpp2_probe(struct platform_device *pdev)
> dev_warn(&pdev->dev, "Fail to alloc CM3 SRAM\n");
>
> /* Enable global Flow Control only if handler to SRAM not NULL */
> - if (priv->cm3_base)
> + if (!IS_ERR_OR_NULL(priv->cm3_base))
> priv->global_tx_fc = true;

The change is ok, but the patch title should include target, in your
case it is net -> [PATCH net] ....

Thanks

> }
>
> --
> 2.17.1
>

2022-11-15 09:04:48

by Hui Tang

[permalink] [raw]
Subject: Re: [PATCH] net: mvpp2: fix possible invalid pointer dereference



On 2022/11/15 16:42, Leon Romanovsky wrote:
> On Tue, Nov 15, 2022 at 12:46:32PM +0800, Hui Tang wrote:
>> It will cause invalid pointer dereference to priv->cm3_base behind,
>> if PTR_ERR(priv->cm3_base) in mvpp2_get_sram().
>>
>> Fixes: a59d354208a7 ("net: mvpp2: enable global flow control")
>> Signed-off-by: Hui Tang <[email protected]>
>> ---
>> drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
>> index d98f7e9a480e..c92bd1922421 100644
>> --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
>> +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
>> @@ -7421,7 +7421,7 @@ static int mvpp2_probe(struct platform_device *pdev)
>> dev_warn(&pdev->dev, "Fail to alloc CM3 SRAM\n");
>>
>> /* Enable global Flow Control only if handler to SRAM not NULL */
>> - if (priv->cm3_base)
>> + if (!IS_ERR_OR_NULL(priv->cm3_base))
>> priv->global_tx_fc = true;
>
> The change is ok, but the patch title should include target, in your
> case it is net -> [PATCH net] ....

Thanks, I will fix it in v2.