Message ID | 20221115090433.232165-1-tanghui20@huawei.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net,v2] net: mvpp2: fix possible invalid pointer dereference | expand |
wt., 15 lis 2022 o 10:08 Hui Tang <tanghui20@huawei.com> napisał(a): > > 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 <tanghui20@huawei.com> > --- > v1 -> v2: patch title include target > --- > 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 > Thank you for the patch. Reviewed-by: Marcin Wojtas <mw@semihalf.com> Best regards, Marcin
On Tue, Nov 15, 2022 at 05:04:33PM +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(). As i pointed out for the MDIO driver, i wonder if this is the correct fix. mvpp2_get_sram() is probably a better place to handle this In fact, please add a devm_ioremap_resource_optional() which returns NULL if the resource does not exist, or an error code for real errors, and make drivers fail the probe on real errors. Andrew
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; }
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 <tanghui20@huawei.com> --- v1 -> v2: patch title include target --- drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)