diff options
Diffstat (limited to 'net/xfrm/xfrm_ipcomp.c')
| -rw-r--r-- | net/xfrm/xfrm_ipcomp.c | 8 | 
1 files changed, 3 insertions, 5 deletions
diff --git a/net/xfrm/xfrm_ipcomp.c b/net/xfrm/xfrm_ipcomp.c index e5246fbe36c..2906d520eea 100644 --- a/net/xfrm/xfrm_ipcomp.c +++ b/net/xfrm/xfrm_ipcomp.c @@ -276,18 +276,16 @@ static struct crypto_comp * __percpu *ipcomp_alloc_tfms(const char *alg_name)  	struct crypto_comp * __percpu *tfms;  	int cpu; -	/* This can be any valid CPU ID so we don't need locking. */ -	cpu = raw_smp_processor_id();  	list_for_each_entry(pos, &ipcomp_tfms_list, list) {  		struct crypto_comp *tfm; -		tfms = pos->tfms; -		tfm = *per_cpu_ptr(tfms, cpu); +		/* This can be any valid CPU ID so we don't need locking. */ +		tfm = __this_cpu_read(*pos->tfms);  		if (!strcmp(crypto_comp_name(tfm), alg_name)) {  			pos->users++; -			return tfms; +			return pos->tfms;  		}  	}  |