memory: brcmstb_dpfe: fix testing array offset after use
authorKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Sat, 13 May 2023 11:29:31 +0000 (13:29 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 19 Jul 2023 14:21:24 +0000 (16:21 +0200)
[ Upstream commit 1d9e93fad549bc38f593147479ee063f2872c170 ]

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")
Acked-by: Markus Mayer <mmayer@broadcom.com>
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
Link: https://lore.kernel.org/r/20230513112931.176066-1-krzysztof.kozlowski@linaro.org
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/memory/brcmstb_dpfe.c

index 76c82e9..9339f80 100644 (file)
@@ -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 */