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 <[email protected]>
---
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
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 <[email protected]>
Reviewed-by: Florian Fainelli <[email protected]>
--
Florian
On Sat, 13 May 2023 at 04:29, Krzysztof Kozlowski
<[email protected]> 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 <[email protected]>
> ---
> 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 <[email protected]>
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,
--
Krzysztof Kozlowski <[email protected]>