> -----Original Message-----
> From: Loktionov, Aleksandr <[email protected]>
> Sent: Thursday, September 17, 2026 1:29 PM
> To: Wentao Liang <[email protected]>; [email protected]
> Cc: Nguyen, Anthony L <[email protected]>;
> [email protected]; [email protected]; intel-wired-
> [email protected]; [email protected]; [email protected]; linux-
> [email protected]; Swiatkowski, Michal
> <[email protected]>; [email protected];
> [email protected]; Kitszel, Przemyslaw <[email protected]>;
> [email protected]
> Subject: RE: [PATCH] ice: fix VF reference leak in ice_set_vf_trust()
> 
> 
> 
> > -----Original Message-----
> > From: Wentao Liang <[email protected]>
> > Sent: Thursday, September 17, 2026 1:11 PM
> > To: [email protected]
> > Cc: Nguyen, Anthony L <[email protected]>;
> > [email protected]; [email protected]; intel-wired-
> > [email protected]; [email protected]; [email protected];
> > [email protected]; Swiatkowski, Michal
> > <[email protected]>; [email protected];
> > [email protected]; Kitszel, Przemyslaw <[email protected]>;
> > Wentao Liang <[email protected]>; [email protected]
> > Subject: [PATCH] ice: fix VF reference leak in ice_set_vf_trust()
> >
> > ice_get_vf_by_id() takes a reference on the VF, which the caller has
> > to release with ice_put_vf(). The switchdev mode check now happens
> > after the VF is looked up and returns -EOPNOTSUPP without dropping
> > that reference, leaking it.
> >
> > Use the existing out_put_vf label instead.
> >
> > Fixes: 83b49e7f63da ("ice: check if VF exists before mode check")
> > Cc: [email protected]
> > Signed-off-by: Wentao Liang <[email protected]>
> > ---
> >  drivers/net/ethernet/intel/ice/ice_sriov.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/net/ethernet/intel/ice/ice_sriov.c
> > b/drivers/net/ethernet/intel/ice/ice_sriov.c
> > index 7e00e091756d..202224dba1a3 100644
> > --- a/drivers/net/ethernet/intel/ice/ice_sriov.c
> > +++ b/drivers/net/ethernet/intel/ice/ice_sriov.c
> > @@ -1384,7 +1384,8 @@ int ice_set_vf_trust(struct net_device *netdev,
> > int vf_id, bool trusted)
> >
> >     if (ice_is_eswitch_mode_switchdev(pf)) {
> >             dev_info(ice_pf_to_dev(pf), "Trusted VF is forbidden in
> switchdev
> > mode\n");
> > -           return -EOPNOTSUPP;
> > +           ret = -EOPNOTSUPP;
> > +           goto out_put_vf;
> >     }
> >
> >     ret = ice_check_vf_ready_for_cfg(vf);
> > --
> > 2.34.1
> 
> Reviewed-by: Aleksandr Loktionov <[email protected]>

Tested-by: Patryk Holda <[email protected]> 


Reply via email to