ice: Check VF VSI Pointer Value in ice_vc_add_fdir_fltr()
authorXuanqiang Luo <luoxuanqiang@kylinos.cn>
Fri, 25 Apr 2025 22:26:32 +0000 (15:26 -0700)
committerJakub Kicinski <kuba@kernel.org>
Mon, 28 Apr 2025 22:59:13 +0000 (15:59 -0700)
As mentioned in the commit baeb705fd6a7 ("ice: always check VF VSI
pointer values"), we need to perform a null pointer check on the return
value of ice_get_vf_vsi() before using it.

Fixes: 6ebbe97a4881 ("ice: Add a per-VF limit on number of FDIR filters")
Signed-off-by: Xuanqiang Luo <luoxuanqiang@kylinos.cn>
Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Link: https://patch.msgid.link/20250425222636.3188441-3-anthony.l.nguyen@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/intel/ice/ice_virtchnl_fdir.c

index 7752920d7a8ee47ab88ebf2d49c8a55824eb2300..1cca9b2262e866dfba4fd382922afdb73dc1fef3 100644 (file)
@@ -2097,6 +2097,11 @@ int ice_vc_add_fdir_fltr(struct ice_vf *vf, u8 *msg)
        pf = vf->pf;
        dev = ice_pf_to_dev(pf);
        vf_vsi = ice_get_vf_vsi(vf);
+       if (!vf_vsi) {
+               dev_err(dev, "Can not get FDIR vf_vsi for VF %u\n", vf->vf_id);
+               v_ret = VIRTCHNL_STATUS_ERR_PARAM;
+               goto err_exit;
+       }
 
 #define ICE_VF_MAX_FDIR_FILTERS        128
        if (!ice_fdir_num_avail_fltr(&pf->hw, vf_vsi) ||