bus: fsl-mc: Fix test for end of loop
authorDan Carpenter <dan.carpenter@oracle.com>
Mon, 8 Feb 2021 17:09:47 +0000 (19:09 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 9 Feb 2021 09:56:37 +0000 (10:56 +0100)
The "desc" pointer can't possibly be NULL here.  If we can't find the
correct "desc" then tt points to the last element of the
fsl_mc_accepted_cmds[] array.  Fix this by testing if
"i == FSL_MC_NUM_ACCEPTED_CMDS" instead.

Fixes: 2cf1e703f066 ("bus: fsl-mc: add fsl-mc userspace support")
Acked-by: Laurentiu Tudor <laurentiu.tudor@nxp.com>
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Link: https://lore.kernel.org/r/20210208170949.3070898-2-ciorneiioana@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/bus/fsl-mc/fsl-mc-uapi.c

index eeb988c9f4bb2c8970cfcb02b0181269ec763d04..bdcd9d983a7826287e02f358db2811e7618807fe 100644 (file)
@@ -338,7 +338,7 @@ static int fsl_mc_command_check(struct fsl_mc_device *mc_dev,
                if ((cmdid & desc->cmdid_mask) == desc->cmdid_value)
                        break;
        }
-       if (!desc) {
+       if (i == FSL_MC_NUM_ACCEPTED_CMDS) {
                dev_err(&mc_dev->dev, "MC command 0x%04x: cmdid not accepted\n", cmdid);
                return -EACCES;
        }