memory: brcmstb_dpfe: fix testing array offset after use

Message ID 20230513112931.176066-1-krzysztof.kozlowski@linaro.org
State New
Headers
Series memory: brcmstb_dpfe: fix testing array offset after use |

Commit Message

Krzysztof Kozlowski May 13, 2023, 11:29 a.m. UTC
  Code should first check for valid value of array offset, then use it as
the index.  Fixes smatch warning:

  drivers/memory/brcmstb_dpfe.c:443 __send_command() error: testing array offset 'cmd' after use.

Fixes: 2f330caff577 ("memory: brcmstb: Add driver for DPFE")
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 drivers/memory/brcmstb_dpfe.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
  

Comments

Florian Fainelli May 18, 2023, 10:50 p.m. UTC | #1
On 5/13/23 04:29, Krzysztof Kozlowski wrote:
> Code should first check for valid value of array offset, then use it as
> the index.  Fixes smatch warning:
> 
>    drivers/memory/brcmstb_dpfe.c:443 __send_command() error: testing array offset 'cmd' after use.
> 
> Fixes: 2f330caff577 ("memory: brcmstb: Add driver for DPFE")
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
  
Markus Mayer May 18, 2023, 11:06 p.m. UTC | #2
On Sat, 13 May 2023 at 04:29, Krzysztof Kozlowski
<krzysztof.kozlowski@linaro.org> wrote:
>
> Code should first check for valid value of array offset, then use it as
> the index.  Fixes smatch warning:
>
>   drivers/memory/brcmstb_dpfe.c:443 __send_command() error: testing array offset 'cmd' after use.
>
> Fixes: 2f330caff577 ("memory: brcmstb: Add driver for DPFE")
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> ---
>  drivers/memory/brcmstb_dpfe.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/memory/brcmstb_dpfe.c b/drivers/memory/brcmstb_dpfe.c
> index 76c82e9c8fce..9339f80b21c5 100644
> --- a/drivers/memory/brcmstb_dpfe.c
> +++ b/drivers/memory/brcmstb_dpfe.c
> @@ -434,15 +434,17 @@ static void __finalize_command(struct brcmstb_dpfe_priv *priv)
>  static int __send_command(struct brcmstb_dpfe_priv *priv, unsigned int cmd,
>                           u32 result[])
>  {
> -       const u32 *msg = priv->dpfe_api->command[cmd];
>         void __iomem *regs = priv->regs;
>         unsigned int i, chksum, chksum_idx;
> +       const u32 *msg;
>         int ret = 0;
>         u32 resp;
>
>         if (cmd >= DPFE_CMD_MAX)
>                 return -1;
>
> +       msg = priv->dpfe_api->command[cmd];
> +
>         mutex_lock(&priv->lock);
>
>         /* Wait for DCPU to become ready */
> --
> 2.34.1
>

Acked-by: Markus Mayer <mmayer@broadcom.com>
  
Krzysztof Kozlowski May 30, 2023, 8:26 a.m. UTC | #3
On Sat, 13 May 2023 13:29:31 +0200, Krzysztof Kozlowski wrote:
> Code should first check for valid value of array offset, then use it as
> the index.  Fixes smatch warning:
> 
>   drivers/memory/brcmstb_dpfe.c:443 __send_command() error: testing array offset 'cmd' after use.
> 
> 

Applied, thanks!

[1/1] memory: brcmstb_dpfe: fix testing array offset after use
      https://git.kernel.org/krzk/linux-mem-ctrl/c/1d9e93fad549bc38f593147479ee063f2872c170

Best regards,
  

Patch

diff --git a/drivers/memory/brcmstb_dpfe.c b/drivers/memory/brcmstb_dpfe.c
index 76c82e9c8fce..9339f80b21c5 100644
--- a/drivers/memory/brcmstb_dpfe.c
+++ b/drivers/memory/brcmstb_dpfe.c
@@ -434,15 +434,17 @@  static void __finalize_command(struct brcmstb_dpfe_priv *priv)
 static int __send_command(struct brcmstb_dpfe_priv *priv, unsigned int cmd,
 			  u32 result[])
 {
-	const u32 *msg = priv->dpfe_api->command[cmd];
 	void __iomem *regs = priv->regs;
 	unsigned int i, chksum, chksum_idx;
+	const u32 *msg;
 	int ret = 0;
 	u32 resp;
 
 	if (cmd >= DPFE_CMD_MAX)
 		return -1;
 
+	msg = priv->dpfe_api->command[cmd];
+
 	mutex_lock(&priv->lock);
 
 	/* Wait for DCPU to become ready */