diff options
| author | Tejun Heo <tj@kernel.org> | 2010-02-16 15:20:26 +0000 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2010-02-16 23:05:38 -0800 | 
| commit | 7d720c3e4f0c4fc152a6bf17e24244a3c85412d2 (patch) | |
| tree | 36e037187ce79acb211702bea22e99c625787757 /net/xfrm/xfrm_policy.c | |
| parent | 2bb4646fce8d09916b351d1a62f98db7cec6fc41 (diff) | |
| download | olio-linux-3.10-7d720c3e4f0c4fc152a6bf17e24244a3c85412d2.tar.xz olio-linux-3.10-7d720c3e4f0c4fc152a6bf17e24244a3c85412d2.zip  | |
percpu: add __percpu sparse annotations to net
Add __percpu sparse annotations to net.
These annotations are to make sparse consider percpu variables to be
in a different address space and warn if accessed without going
through percpu accessors.  This patch doesn't affect normal builds.
The macro and type tricks around snmp stats make things a bit
interesting.  DEFINE/DECLARE_SNMP_STAT() macros mark the target field
as __percpu and SNMP_UPD_PO_STATS() macro is updated accordingly.  All
snmp_mib_*() users which used to cast the argument to (void **) are
updated to cast it to (void __percpu **).
Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: David S. Miller <davem@davemloft.net>
Cc: Patrick McHardy <kaber@trash.net>
Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Cc: Vlad Yasevich <vladislav.yasevich@hp.com>
Cc: netdev@vger.kernel.org
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/xfrm/xfrm_policy.c')
| -rw-r--r-- | net/xfrm/xfrm_policy.c | 6 | 
1 files changed, 3 insertions, 3 deletions
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c index eb870fcc29c..cfceb6616ec 100644 --- a/net/xfrm/xfrm_policy.c +++ b/net/xfrm/xfrm_policy.c @@ -2428,19 +2428,19 @@ static int __net_init xfrm_statistics_init(struct net *net)  {  	int rv; -	if (snmp_mib_init((void **)net->mib.xfrm_statistics, +	if (snmp_mib_init((void __percpu **)net->mib.xfrm_statistics,  			  sizeof(struct linux_xfrm_mib)) < 0)  		return -ENOMEM;  	rv = xfrm_proc_init(net);  	if (rv < 0) -		snmp_mib_free((void **)net->mib.xfrm_statistics); +		snmp_mib_free((void __percpu **)net->mib.xfrm_statistics);  	return rv;  }  static void xfrm_statistics_fini(struct net *net)  {  	xfrm_proc_fini(net); -	snmp_mib_free((void **)net->mib.xfrm_statistics); +	snmp_mib_free((void __percpu **)net->mib.xfrm_statistics);  }  #else  static int __net_init xfrm_statistics_init(struct net *net)  |