diff options
Diffstat (limited to 'drivers/net/macsec.c')
| -rw-r--r-- | drivers/net/macsec.c | 12 | 
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/net/macsec.c b/drivers/net/macsec.c index 3427993f94f7..984dfa5d6c11 100644 --- a/drivers/net/macsec.c +++ b/drivers/net/macsec.c @@ -3997,17 +3997,15 @@ static int macsec_add_dev(struct net_device *dev, sci_t sci, u8 icv_len)  		return -ENOMEM;  	secy->tx_sc.stats = netdev_alloc_pcpu_stats(struct pcpu_tx_sc_stats); -	if (!secy->tx_sc.stats) { -		free_percpu(macsec->stats); +	if (!secy->tx_sc.stats)  		return -ENOMEM; -	}  	secy->tx_sc.md_dst = metadata_dst_alloc(0, METADATA_MACSEC, GFP_KERNEL); -	if (!secy->tx_sc.md_dst) { -		free_percpu(secy->tx_sc.stats); -		free_percpu(macsec->stats); +	if (!secy->tx_sc.md_dst) +		/* macsec and secy percpu stats will be freed when unregistering +		 * net_device in macsec_free_netdev() +		 */  		return -ENOMEM; -	}  	if (sci == MACSEC_UNDEF_SCI)  		sci = dev_to_sci(dev, MACSEC_PORT_ES);  | 
