batman-adv can be compiled as part of the kernel instead of an module. In that
case the linker will see all non-static symbols of batman-adv and all other
non-static symbols of the kernel. This could lead to symbol collisions. A
prefix for the batman-adv symbols that defines their private namespace avoids
such a problem.

Reported-by: David Miller <da...@davemloft.net>
Signed-off-by: Sven Eckelmann <s...@narfation.org>
---
 bat_debugfs.c |    2 +-
 icmp_socket.c |    8 ++++----
 icmp_socket.h |    8 ++++----
 main.c        |    2 +-
 routing.c     |    2 +-
 5 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/bat_debugfs.c b/bat_debugfs.c
index 939c5be..f8b3fa5 100644
--- a/bat_debugfs.c
+++ b/bat_debugfs.c
@@ -349,7 +349,7 @@ int batadv_debugfs_add_meshif(struct net_device *dev)
        if (!bat_priv->debug_dir)
                goto out;
 
-       bat_socket_setup(bat_priv);
+       batadv_socket_setup(bat_priv);
        debug_log_setup(bat_priv);
 
        for (bat_debug = mesh_debuginfos; *bat_debug; ++bat_debug) {
diff --git a/icmp_socket.c b/icmp_socket.c
index 2e98a57..c734655 100644
--- a/icmp_socket.c
+++ b/icmp_socket.c
@@ -34,7 +34,7 @@ static void bat_socket_add_packet(struct socket_client 
*socket_client,
                                  struct icmp_packet_rr *icmp_packet,
                                  size_t icmp_len);
 
-void bat_socket_init(void)
+void batadv_socket_init(void)
 {
        memset(socket_client_hash, 0, sizeof(socket_client_hash));
 }
@@ -276,7 +276,7 @@ static const struct file_operations fops = {
        .llseek = no_llseek,
 };
 
-int bat_socket_setup(struct bat_priv *bat_priv)
+int batadv_socket_setup(struct bat_priv *bat_priv)
 {
        struct dentry *d;
 
@@ -336,8 +336,8 @@ static void bat_socket_add_packet(struct socket_client 
*socket_client,
        wake_up(&socket_client->queue_wait);
 }
 
-void bat_socket_receive_packet(struct icmp_packet_rr *icmp_packet,
-                              size_t icmp_len)
+void batadv_socket_receive_packet(struct icmp_packet_rr *icmp_packet,
+                                 size_t icmp_len)
 {
        struct socket_client *hash = socket_client_hash[icmp_packet->uid];
 
diff --git a/icmp_socket.h b/icmp_socket.h
index 380ed4c..7b88636 100644
--- a/icmp_socket.h
+++ b/icmp_socket.h
@@ -24,9 +24,9 @@
 
 #define ICMP_SOCKET "socket"
 
-void bat_socket_init(void);
-int bat_socket_setup(struct bat_priv *bat_priv);
-void bat_socket_receive_packet(struct icmp_packet_rr *icmp_packet,
-                              size_t icmp_len);
+void batadv_socket_init(void);
+int batadv_socket_setup(struct bat_priv *bat_priv);
+void batadv_socket_receive_packet(struct icmp_packet_rr *icmp_packet,
+                                 size_t icmp_len);
 
 #endif /* _NET_BATMAN_ADV_ICMP_SOCKET_H_ */
diff --git a/main.c b/main.c
index 0d42edf..534956b 100644
--- a/main.c
+++ b/main.c
@@ -65,7 +65,7 @@ static int __init batman_init(void)
        if (!bat_event_workqueue)
                return -ENOMEM;
 
-       bat_socket_init();
+       batadv_socket_init();
        batadv_debugfs_init();
 
        register_netdevice_notifier(&batadv_hard_if_notifier);
diff --git a/routing.c b/routing.c
index 97901f3..3f03427 100644
--- a/routing.c
+++ b/routing.c
@@ -289,7 +289,7 @@ static int recv_my_icmp_packet(struct bat_priv *bat_priv,
 
        /* add data to device queue */
        if (icmp_packet->msg_type != ECHO_REQUEST) {
-               bat_socket_receive_packet(icmp_packet, icmp_len);
+               batadv_socket_receive_packet(icmp_packet, icmp_len);
                goto out;
        }
 
-- 
1.7.10

Reply via email to