hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
kernel/net/batman-adv/gateway_client.h
....@@ -1,19 +1,7 @@
11 /* SPDX-License-Identifier: GPL-2.0 */
2
-/* Copyright (C) 2009-2018 B.A.T.M.A.N. contributors:
2
+/* Copyright (C) 2009-2020 B.A.T.M.A.N. contributors:
33 *
44 * Marek Lindner
5
- *
6
- * This program is free software; you can redistribute it and/or
7
- * modify it under the terms of version 2 of the GNU General Public
8
- * License as published by the Free Software Foundation.
9
- *
10
- * This program is distributed in the hope that it will be useful, but
11
- * WITHOUT ANY WARRANTY; without even the implied warranty of
12
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
- * General Public License for more details.
14
- *
15
- * You should have received a copy of the GNU General Public License
16
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
175 */
186
197 #ifndef _NET_BATMAN_ADV_GATEWAY_CLIENT_H_
....@@ -21,12 +9,12 @@
219
2210 #include "main.h"
2311
12
+#include <linux/kref.h>
13
+#include <linux/netlink.h>
14
+#include <linux/seq_file.h>
15
+#include <linux/skbuff.h>
2416 #include <linux/types.h>
25
-
26
-struct batadv_tvlv_gateway_data;
27
-struct netlink_callback;
28
-struct seq_file;
29
-struct sk_buff;
17
+#include <uapi/linux/batadv_packet.h>
3018
3119 void batadv_gw_check_client_stop(struct batadv_priv *bat_priv);
3220 void batadv_gw_reselect(struct batadv_priv *bat_priv);
....@@ -41,7 +29,7 @@
4129 void batadv_gw_node_delete(struct batadv_priv *bat_priv,
4230 struct batadv_orig_node *orig_node);
4331 void batadv_gw_node_free(struct batadv_priv *bat_priv);
44
-void batadv_gw_node_put(struct batadv_gw_node *gw_node);
32
+void batadv_gw_node_release(struct kref *ref);
4533 struct batadv_gw_node *
4634 batadv_gw_get_selected_gw_node(struct batadv_priv *bat_priv);
4735 int batadv_gw_client_seq_print_text(struct seq_file *seq, void *offset);
....@@ -53,4 +41,17 @@
5341 struct batadv_gw_node *batadv_gw_node_get(struct batadv_priv *bat_priv,
5442 struct batadv_orig_node *orig_node);
5543
44
+/**
45
+ * batadv_gw_node_put() - decrement the gw_node refcounter and possibly release
46
+ * it
47
+ * @gw_node: gateway node to free
48
+ */
49
+static inline void batadv_gw_node_put(struct batadv_gw_node *gw_node)
50
+{
51
+ if (!gw_node)
52
+ return;
53
+
54
+ kref_put(&gw_node->refcount, batadv_gw_node_release);
55
+}
56
+
5657 #endif /* _NET_BATMAN_ADV_GATEWAY_CLIENT_H_ */