diff options
author | Sven Eckelmann <sven@narfation.org> | 2016-01-16 10:29:42 +0100 |
---|---|---|
committer | Antonio Quartulli <a@unstable.cc> | 2016-02-10 23:23:59 +0800 |
commit | 6be4d30c18270fe275084c7cd30884535424266e (patch) | |
tree | 24087bc20264c6edb06896b383dd3f3e504d8c46 /net/batman-adv/sysfs.c | |
parent | e7aed321b8c07d2019b003c3f51a067f2b4f78ab (diff) | |
download | lwn-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.c | 3 |
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; |