2019-03-24 23:20:02

by Kangjie Lu

[permalink] [raw]
Subject: [PATCH] net: ieee802154: fix missing checks for regmap_update_bits

regmap_update_bits could fail and deserves a check.

The patch adds the checks and if it fails, returns its error
code upstream.

Signed-off-by: Kangjie Lu <[email protected]>
---
drivers/net/ieee802154/mcr20a.c | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/drivers/net/ieee802154/mcr20a.c b/drivers/net/ieee802154/mcr20a.c
index c589f5ae75bb..8bb53ec8d9cf 100644
--- a/drivers/net/ieee802154/mcr20a.c
+++ b/drivers/net/ieee802154/mcr20a.c
@@ -533,6 +533,8 @@ mcr20a_start(struct ieee802154_hw *hw)
dev_dbg(printdev(lp), "no slotted operation\n");
ret = regmap_update_bits(lp->regmap_dar, DAR_PHY_CTRL1,
DAR_PHY_CTRL1_SLOTTED, 0x0);
+ if (ret < 0)
+ return ret;

/* enable irq */
enable_irq(lp->spi->irq);
@@ -540,11 +542,15 @@ mcr20a_start(struct ieee802154_hw *hw)
/* Unmask SEQ interrupt */
ret = regmap_update_bits(lp->regmap_dar, DAR_PHY_CTRL2,
DAR_PHY_CTRL2_SEQMSK, 0x0);
+ if (ret < 0)
+ return ret;

/* Start the RX sequence */
dev_dbg(printdev(lp), "start the RX sequence\n");
ret = regmap_update_bits(lp->regmap_dar, DAR_PHY_CTRL1,
DAR_PHY_CTRL1_XCVSEQ_MASK, MCR20A_XCVSEQ_RX);
+ if (ret < 0)
+ return ret;

return 0;
}
--
2.17.1



2019-03-27 15:12:25

by Mukesh Ojha

[permalink] [raw]
Subject: Re: [PATCH] net: ieee802154: fix missing checks for regmap_update_bits


On 3/25/2019 4:48 AM, Kangjie Lu wrote:
> regmap_update_bits could fail and deserves a check.
>
> The patch adds the checks and if it fails, returns its error
> code upstream.
>
> Signed-off-by: Kangjie Lu <[email protected]>


Reviewed-by: Mukesh Ojha <[email protected]>

-Mukesh

> ---
> drivers/net/ieee802154/mcr20a.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/net/ieee802154/mcr20a.c b/drivers/net/ieee802154/mcr20a.c
> index c589f5ae75bb..8bb53ec8d9cf 100644
> --- a/drivers/net/ieee802154/mcr20a.c
> +++ b/drivers/net/ieee802154/mcr20a.c
> @@ -533,6 +533,8 @@ mcr20a_start(struct ieee802154_hw *hw)
> dev_dbg(printdev(lp), "no slotted operation\n");
> ret = regmap_update_bits(lp->regmap_dar, DAR_PHY_CTRL1,
> DAR_PHY_CTRL1_SLOTTED, 0x0);
> + if (ret < 0)
> + return ret;
>
> /* enable irq */
> enable_irq(lp->spi->irq);
> @@ -540,11 +542,15 @@ mcr20a_start(struct ieee802154_hw *hw)
> /* Unmask SEQ interrupt */
> ret = regmap_update_bits(lp->regmap_dar, DAR_PHY_CTRL2,
> DAR_PHY_CTRL2_SEQMSK, 0x0);
> + if (ret < 0)
> + return ret;
>
> /* Start the RX sequence */
> dev_dbg(printdev(lp), "start the RX sequence\n");
> ret = regmap_update_bits(lp->regmap_dar, DAR_PHY_CTRL1,
> DAR_PHY_CTRL1_XCVSEQ_MASK, MCR20A_XCVSEQ_RX);
> + if (ret < 0)
> + return ret;
>
> return 0;
> }

2019-03-27 17:16:45

by Stefan Schmidt

[permalink] [raw]
Subject: Re: [PATCH] net: ieee802154: fix missing checks for regmap_update_bits

Hello.

On 25.03.19 08:18, Kangjie Lu wrote:
> regmap_update_bits could fail and deserves a check.
>
> The patch adds the checks and if it fails, returns its error
> code upstream.
>
> Signed-off-by: Kangjie Lu <[email protected]>
> ---
> drivers/net/ieee802154/mcr20a.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/net/ieee802154/mcr20a.c b/drivers/net/ieee802154/mcr20a.c
> index c589f5ae75bb..8bb53ec8d9cf 100644
> --- a/drivers/net/ieee802154/mcr20a.c
> +++ b/drivers/net/ieee802154/mcr20a.c
> @@ -533,6 +533,8 @@ mcr20a_start(struct ieee802154_hw *hw)
> dev_dbg(printdev(lp), "no slotted operation\n");
> ret = regmap_update_bits(lp->regmap_dar, DAR_PHY_CTRL1,
> DAR_PHY_CTRL1_SLOTTED, 0x0);
> + if (ret < 0)
> + return ret;
>
> /* enable irq */
> enable_irq(lp->spi->irq);
> @@ -540,11 +542,15 @@ mcr20a_start(struct ieee802154_hw *hw)
> /* Unmask SEQ interrupt */
> ret = regmap_update_bits(lp->regmap_dar, DAR_PHY_CTRL2,
> DAR_PHY_CTRL2_SEQMSK, 0x0);
> + if (ret < 0)
> + return ret;
>
> /* Start the RX sequence */
> dev_dbg(printdev(lp), "start the RX sequence\n");
> ret = regmap_update_bits(lp->regmap_dar, DAR_PHY_CTRL1,
> DAR_PHY_CTRL1_XCVSEQ_MASK, MCR20A_XCVSEQ_RX);
> + if (ret < 0)
> + return ret;
>
> return 0;
> }
>

This patch has been applied to the wpan tree and will be
part of the next pull request to net. Thanks!

regards
Stefan Schmidt