summaryrefslogtreecommitdiff
path: root/net/batman-adv/sysfs.c
diff options
context:
space:
mode:
authorSven Eckelmann <sven@narfation.org>2016-01-16 10:29:42 +0100
committerAntonio Quartulli <a@unstable.cc>2016-02-10 23:23:59 +0800
commit6be4d30c18270fe275084c7cd30884535424266e (patch)
tree24087bc20264c6edb06896b383dd3f3e504d8c46 /net/batman-adv/sysfs.c
parente7aed321b8c07d2019b003c3f51a067f2b4f78ab (diff)
downloadlwn-6be4d30c18270fe275084c7cd30884535424266e.tar.gz
lwn-6be4d30c18270fe275084c7cd30884535424266e.zip
batman-adv: Convert batadv_softif_vlan to kref
batman-adv uses a self-written reference implementation which is just based on atomic_t. This is less obvious when reading the code than kref and therefore increases the change that the reference counting will be missed. Signed-off-by: Sven Eckelmann <sven@narfation.org> Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch> Signed-off-by: Antonio Quartulli <a@unstable.cc>
Diffstat (limited to 'net/batman-adv/sysfs.c')
-rw-r--r--net/batman-adv/sysfs.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/batman-adv/sysfs.c b/net/batman-adv/sysfs.c
index 964fc5986b2c..ab4382ba3855 100644
--- a/net/batman-adv/sysfs.c
+++ b/net/batman-adv/sysfs.c
@@ -25,6 +25,7 @@
#include <linux/fs.h>
#include <linux/if.h>
#include <linux/if_vlan.h>
+#include <linux/kref.h>
#include <linux/kernel.h>
#include <linux/netdevice.h>
#include <linux/printk.h>
@@ -97,7 +98,7 @@ batadv_kobj_to_vlan(struct batadv_priv *bat_priv, struct kobject *obj)
if (vlan_tmp->kobj != obj)
continue;
- if (!atomic_inc_not_zero(&vlan_tmp->refcount))
+ if (!kref_get_unless_zero(&vlan_tmp->refcount))
continue;
vlan = vlan_tmp;