[PATCH v2 net] ice: Fix NULL pointer access, if PF doesn't support SRIOV_LAG

Thomas Bogendoerfer posted 1 patch 1 year, 3 months ago
drivers/net/ethernet/intel/ice/ice_lag.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH v2 net] ice: Fix NULL pointer access, if PF doesn't support SRIOV_LAG
Posted by Thomas Bogendoerfer 1 year, 3 months ago
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(-)

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;
-- 
2.35.3
Re: [PATCH v2 net] ice: Fix NULL pointer access, if PF doesn't support SRIOV_LAG
Posted by Przemek Kitszel 1 year, 3 months ago
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;
Re: [PATCH v2 net] ice: Fix NULL pointer access, if PF doesn't support SRIOV_LAG
Posted by Przemek Kitszel 1 year, 3 months ago
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>
Re: [PATCH v2 net] ice: Fix NULL pointer access, if PF doesn't support SRIOV_LAG
Posted by Jiri Pirko 1 year, 3 months ago
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>