Message ID | 20240827071602.66954-1-tbogendoerfer@suse.de (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [v2,net] ice: Fix NULL pointer access, if PF doesn't support SRIOV_LAG | expand |
Tue, Aug 27, 2024 at 09:16:02AM CEST, tbogendoerfer@suse.de wrote: >For PFs, which don't support SRIOV_LAG, there is no pf->lag struct >allocated. So before accessing pf->lag a NULL pointer check is needed. > >Fixes: 1e0f9881ef79 ("ice: Flesh out implementation of support for SRIOV on bonded interface") >Signed-off-by: Thomas Bogendoerfer <tbogendoerfer@suse.de> Reviewed-by: Jiri Pirko <jiri@nvidia.com>
On 8/27/24 09:16, Thomas Bogendoerfer wrote: > For PFs, which don't support SRIOV_LAG, there is no pf->lag struct > allocated. So before accessing pf->lag a NULL pointer check is needed. > > Fixes: 1e0f9881ef79 ("ice: Flesh out implementation of support for SRIOV on bonded interface") > Signed-off-by: Thomas Bogendoerfer <tbogendoerfer@suse.de> > --- > v2: > - Added Fixes tag > v1: https://lore.kernel.org/netdev/20240826085830.28136-1-tbogendoerfer@suse.de/ Please see my reply to v1, unfortunately sent at the same time as your v2. The fixes tag should be different. The check that you have introduced here repeats the check in the only caller (was not effective though). > > drivers/net/ethernet/intel/ice/ice_lag.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/intel/ice/ice_lag.c b/drivers/net/ethernet/intel/ice/ice_lag.c > index 1ccb572ce285..916a16a379a8 100644 > --- a/drivers/net/ethernet/intel/ice/ice_lag.c > +++ b/drivers/net/ethernet/intel/ice/ice_lag.c > @@ -704,7 +704,7 @@ void ice_lag_move_new_vf_nodes(struct ice_vf *vf) > lag = pf->lag; > > mutex_lock(&pf->lag_mutex); > - if (!lag->bonded) > + if (!lag || !lag->bonded) > goto new_vf_unlock; > > pri_port = pf->hw.port_info->lport;
On 8/27/24 11:52, Przemek Kitszel wrote: > On 8/27/24 09:16, Thomas Bogendoerfer wrote: >> For PFs, which don't support SRIOV_LAG, there is no pf->lag struct >> allocated. So before accessing pf->lag a NULL pointer check is needed. >> >> Fixes: 1e0f9881ef79 ("ice: Flesh out implementation of support for >> SRIOV on bonded interface") >> Signed-off-by: Thomas Bogendoerfer <tbogendoerfer@suse.de> >> --- >> v2: >> - Added Fixes tag >> v1: >> https://lore.kernel.org/netdev/20240826085830.28136-1-tbogendoerfer@suse.de/ > > Please see my reply to v1, unfortunately sent at the same time as your > v2. The fixes tag should be different. The check that you have > introduced here repeats the check in the only caller (was not effective > though). > >> >> drivers/net/ethernet/intel/ice/ice_lag.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/net/ethernet/intel/ice/ice_lag.c >> b/drivers/net/ethernet/intel/ice/ice_lag.c >> index 1ccb572ce285..916a16a379a8 100644 >> --- a/drivers/net/ethernet/intel/ice/ice_lag.c >> +++ b/drivers/net/ethernet/intel/ice/ice_lag.c >> @@ -704,7 +704,7 @@ void ice_lag_move_new_vf_nodes(struct ice_vf *vf) >> lag = pf->lag; >> mutex_lock(&pf->lag_mutex); >> - if (!lag->bonded) >> + if (!lag || !lag->bonded) >> goto new_vf_unlock; >> pri_port = pf->hw.port_info->lport; > > thank you, Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
diff --git a/drivers/net/ethernet/intel/ice/ice_lag.c b/drivers/net/ethernet/intel/ice/ice_lag.c index 1ccb572ce285..916a16a379a8 100644 --- a/drivers/net/ethernet/intel/ice/ice_lag.c +++ b/drivers/net/ethernet/intel/ice/ice_lag.c @@ -704,7 +704,7 @@ void ice_lag_move_new_vf_nodes(struct ice_vf *vf) lag = pf->lag; mutex_lock(&pf->lag_mutex); - if (!lag->bonded) + if (!lag || !lag->bonded) goto new_vf_unlock; pri_port = pf->hw.port_info->lport;
For PFs, which don't support SRIOV_LAG, there is no pf->lag struct allocated. So before accessing pf->lag a NULL pointer check is needed. Fixes: 1e0f9881ef79 ("ice: Flesh out implementation of support for SRIOV on bonded interface") Signed-off-by: Thomas Bogendoerfer <tbogendoerfer@suse.de> --- v2: - Added Fixes tag v1: https://lore.kernel.org/netdev/20240826085830.28136-1-tbogendoerfer@suse.de/ drivers/net/ethernet/intel/ice/ice_lag.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)