summaryrefslogtreecommitdiffstats
path: root/include/net/neighbour.h
diff options
context:
space:
mode:
authorReshetova, Elena <elena.reshetova@intel.com>2017-06-30 06:07:56 -0400
committerDavid S. Miller <davem@davemloft.net>2017-07-01 10:39:07 -0400
commit6343944bc1050dcec7c959f484ee0fb6928db3be (patch)
treeb6e57e12f2b0c36611563fb349ece8f70e895fd5 /include/net/neighbour.h
parent9f23743017d11c103b38d2fa1f64674baeca41cd (diff)
net: convert neigh_params.refcnt from atomic_t to refcount_t
refcount_t type and corresponding API should be used instead of atomic_t when the variable is used as a reference counter. This allows to avoid accidental refcounter overflows that might lead to use-after-free situations. Signed-off-by: Elena Reshetova <elena.reshetova@intel.com> Signed-off-by: Hans Liljestrand <ishkamiel@gmail.com> Signed-off-by: Kees Cook <keescook@chromium.org> Signed-off-by: David Windsor <dwindsor@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/neighbour.h')
-rw-r--r--include/net/neighbour.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/include/net/neighbour.h b/include/net/neighbour.h
index e5ee739d2b8c..afc39e3a3f7c 100644
--- a/include/net/neighbour.h
+++ b/include/net/neighbour.h
@@ -77,7 +77,7 @@ struct neigh_parms {
77 void *sysctl_table; 77 void *sysctl_table;
78 78
79 int dead; 79 int dead;
80 atomic_t refcnt; 80 refcount_t refcnt;
81 struct rcu_head rcu_head; 81 struct rcu_head rcu_head;
82 82
83 int reachable_time; 83 int reachable_time;
@@ -396,12 +396,12 @@ void neigh_sysctl_unregister(struct neigh_parms *p);
396 396
397static inline void __neigh_parms_put(struct neigh_parms *parms) 397static inline void __neigh_parms_put(struct neigh_parms *parms)
398{ 398{
399 atomic_dec(&parms->refcnt); 399 refcount_dec(&parms->refcnt);
400} 400}
401 401
402static inline struct neigh_parms *neigh_parms_clone(struct neigh_parms *parms) 402static inline struct neigh_parms *neigh_parms_clone(struct neigh_parms *parms)
403{ 403{
404 atomic_inc(&parms->refcnt); 404 refcount_inc(&parms->refcnt);
405 return parms; 405 return parms;
406} 406}
407 407