net: enetc: check the index of the SFI rather than the handle
authorWei Fang <wei.fang@nxp.com>
Thu, 4 May 2023 08:03:59 +0000 (16:03 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 17 May 2023 09:53:38 +0000 (11:53 +0200)
[ Upstream commit 299efdc2380aac588557f4d0b2ce7bee05bd0cf2 ]

We should check whether the current SFI (Stream Filter Instance) table
is full before creating a new SFI entry. However, the previous logic
checks the handle by mistake and might lead to unpredictable behavior.

Fixes: 888ae5a3952b ("net: enetc: add tc flower psfp offload driver")
Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/freescale/enetc/enetc_qos.c

index fcebb54224c092a9af2012f01af3f27b818fae5a..a8539a8554a135c7c2b1ef1f895d4162e4e58edb 100644 (file)
@@ -1255,7 +1255,7 @@ static int enetc_psfp_parse_clsflower(struct enetc_ndev_priv *priv,
                int index;
 
                index = enetc_get_free_index(priv);
-               if (sfi->handle < 0) {
+               if (index < 0) {
                        NL_SET_ERR_MSG_MOD(extack, "No Stream Filter resource!");
                        err = -ENOSPC;
                        goto free_fmi;