net: dsa: ocelot: unlock on error in vsc9959_qos_port_tas_set()
authorDan Carpenter <dan.carpenter@linaro.org>
Tue, 6 Jun 2023 08:24:37 +0000 (11:24 +0300)
committerDavid S. Miller <davem@davemloft.net>
Wed, 7 Jun 2023 09:10:52 +0000 (10:10 +0100)
This error path needs call mutex_unlock(&ocelot->tas_lock) before
returning.

Fixes: 2d800bc500fb ("net/sched: taprio: replace tc_taprio_qopt_offload :: enable with a "cmd" enum")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/ocelot/felix_vsc9959.c

index 5de6a27..903532e 100644 (file)
@@ -1424,7 +1424,8 @@ static int vsc9959_qos_port_tas_set(struct ocelot *ocelot, int port,
                mutex_unlock(&ocelot->tas_lock);
                return 0;
        } else if (taprio->cmd != TAPRIO_CMD_REPLACE) {
-               return -EOPNOTSUPP;
+               ret = -EOPNOTSUPP;
+               goto err_unlock;
        }
 
        ret = ocelot_port_mqprio(ocelot, port, &taprio->mqprio);