diff options
Diffstat (limited to 'drivers/net/ethernet/sfc/mae.c')
| -rw-r--r-- | drivers/net/ethernet/sfc/mae.c | 4 | 
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/ethernet/sfc/mae.c b/drivers/net/ethernet/sfc/mae.c index 6fd0c1e9a7d5..7cfd9000f79d 100644 --- a/drivers/net/ethernet/sfc/mae.c +++ b/drivers/net/ethernet/sfc/mae.c @@ -1090,6 +1090,9 @@ void efx_mae_remove_mport(void *desc, void *arg)  	kfree(mport);  } +/* + * Takes ownership of @desc, even if it returns an error + */  static int efx_mae_process_mport(struct efx_nic *efx,  				 struct mae_mport_desc *desc)  { @@ -1100,6 +1103,7 @@ static int efx_mae_process_mport(struct efx_nic *efx,  	if (!IS_ERR_OR_NULL(mport)) {  		netif_err(efx, drv, efx->net_dev,  			  "mport with id %u does exist!!!\n", desc->mport_id); +		kfree(desc);  		return -EEXIST;  	}  | 
