batman-adv: Prefix types structs with batadv_
[firefly-linux-kernel-4.4.55.git] / net / batman-adv / icmp_socket.c
index 2e98a57f3407c2e9a9a499dfa8ad86b0d5e9f0f0..bde3cf74750796142d4a74e1db2be87516152a1c 100644 (file)
@@ -1,5 +1,4 @@
-/*
- * Copyright (C) 2007-2012 B.A.T.M.A.N. contributors:
+/* Copyright (C) 2007-2012 B.A.T.M.A.N. contributors:
  *
  * Marek Lindner
  *
@@ -16,7 +15,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  * 02110-1301, USA
- *
  */
 
 #include "main.h"
 #include "originator.h"
 #include "hard-interface.h"
 
-static struct socket_client *socket_client_hash[256];
+static struct batadv_socket_client *batadv_socket_client_hash[256];
 
-static void bat_socket_add_packet(struct socket_client *socket_client,
-                                 struct icmp_packet_rr *icmp_packet,
-                                 size_t icmp_len);
+static void batadv_socket_add_packet(struct batadv_socket_client *socket_client,
+                                    struct batadv_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));
+       memset(batadv_socket_client_hash, 0, sizeof(batadv_socket_client_hash));
 }
 
-static int bat_socket_open(struct inode *inode, struct file *file)
+static int batadv_socket_open(struct inode *inode, struct file *file)
 {
        unsigned int i;
-       struct socket_client *socket_client;
+       struct batadv_socket_client *socket_client;
 
        nonseekable_open(inode, file);
 
@@ -51,14 +49,14 @@ static int bat_socket_open(struct inode *inode, struct file *file)
        if (!socket_client)
                return -ENOMEM;
 
-       for (i = 0; i < ARRAY_SIZE(socket_client_hash); i++) {
-               if (!socket_client_hash[i]) {
-                       socket_client_hash[i] = socket_client;
+       for (i = 0; i < ARRAY_SIZE(batadv_socket_client_hash); i++) {
+               if (!batadv_socket_client_hash[i]) {
+                       batadv_socket_client_hash[i] = socket_client;
                        break;
                }
        }
 
-       if (i == ARRAY_SIZE(socket_client_hash)) {
+       if (i == ARRAY_SIZE(batadv_socket_client_hash)) {
                pr_err("Error - can't add another packet client: maximum number of clients reached\n");
                kfree(socket_client);
                return -EXFULL;
@@ -73,14 +71,14 @@ static int bat_socket_open(struct inode *inode, struct file *file)
 
        file->private_data = socket_client;
 
-       inc_module_count();
+       batadv_inc_module_count();
        return 0;
 }
 
-static int bat_socket_release(struct inode *inode, struct file *file)
+static int batadv_socket_release(struct inode *inode, struct file *file)
 {
-       struct socket_client *socket_client = file->private_data;
-       struct socket_packet *socket_packet;
+       struct batadv_socket_client *socket_client = file->private_data;
+       struct batadv_socket_packet *socket_packet;
        struct list_head *list_pos, *list_pos_tmp;
 
        spin_lock_bh(&socket_client->lock);
@@ -88,33 +86,33 @@ static int bat_socket_release(struct inode *inode, struct file *file)
        /* for all packets in the queue ... */
        list_for_each_safe(list_pos, list_pos_tmp, &socket_client->queue_list) {
                socket_packet = list_entry(list_pos,
-                                          struct socket_packet, list);
+                                          struct batadv_socket_packet, list);
 
                list_del(list_pos);
                kfree(socket_packet);
        }
 
-       socket_client_hash[socket_client->index] = NULL;
+       batadv_socket_client_hash[socket_client->index] = NULL;
        spin_unlock_bh(&socket_client->lock);
 
        kfree(socket_client);
-       dec_module_count();
+       batadv_dec_module_count();
 
        return 0;
 }
 
-static ssize_t bat_socket_read(struct file *file, char __user *buf,
-                              size_t count, loff_t *ppos)
+static ssize_t batadv_socket_read(struct file *file, char __user *buf,
+                                 size_t count, loff_t *ppos)
 {
-       struct socket_client *socket_client = file->private_data;
-       struct socket_packet *socket_packet;
+       struct batadv_socket_client *socket_client = file->private_data;
+       struct batadv_socket_packet *socket_packet;
        size_t packet_len;
        int error;
 
        if ((file->f_flags & O_NONBLOCK) && (socket_client->queue_len == 0))
                return -EAGAIN;
 
-       if ((!buf) || (count < sizeof(struct icmp_packet)))
+       if ((!buf) || (count < sizeof(struct batadv_icmp_packet)))
                return -EINVAL;
 
        if (!access_ok(VERIFY_WRITE, buf, count))
@@ -129,7 +127,7 @@ static ssize_t bat_socket_read(struct file *file, char __user *buf,
        spin_lock_bh(&socket_client->lock);
 
        socket_packet = list_first_entry(&socket_client->queue_list,
-                                        struct socket_packet, list);
+                                        struct batadv_socket_packet, list);
        list_del(&socket_packet->list);
        socket_client->queue_len--;
 
@@ -146,34 +144,34 @@ static ssize_t bat_socket_read(struct file *file, char __user *buf,
        return packet_len;
 }
 
-static ssize_t bat_socket_write(struct file *file, const char __user *buff,
-                               size_t len, loff_t *off)
+static ssize_t batadv_socket_write(struct file *file, const char __user *buff,
+                                  size_t len, loff_t *off)
 {
-       struct socket_client *socket_client = file->private_data;
-       struct bat_priv *bat_priv = socket_client->bat_priv;
-       struct hard_iface *primary_if = NULL;
+       struct batadv_socket_client *socket_client = file->private_data;
+       struct batadv_priv *bat_priv = socket_client->bat_priv;
+       struct batadv_hard_iface *primary_if = NULL;
        struct sk_buff *skb;
-       struct icmp_packet_rr *icmp_packet;
+       struct batadv_icmp_packet_rr *icmp_packet;
 
-       struct orig_node *orig_node = NULL;
-       struct neigh_node *neigh_node = NULL;
-       size_t packet_len = sizeof(struct icmp_packet);
+       struct batadv_orig_node *orig_node = NULL;
+       struct batadv_neigh_node *neigh_node = NULL;
+       size_t packet_len = sizeof(struct batadv_icmp_packet);
 
-       if (len < sizeof(struct icmp_packet)) {
-               bat_dbg(DBG_BATMAN, bat_priv,
-                       "Error - can't send packet from char device: invalid packet size\n");
+       if (len < sizeof(struct batadv_icmp_packet)) {
+               batadv_dbg(BATADV_DBG_BATMAN, bat_priv,
+                          "Error - can't send packet from char device: invalid packet size\n");
                return -EINVAL;
        }
 
-       primary_if = primary_if_get_selected(bat_priv);
+       primary_if = batadv_primary_if_get_selected(bat_priv);
 
        if (!primary_if) {
                len = -EFAULT;
                goto out;
        }
 
-       if (len >= sizeof(struct icmp_packet_rr))
-               packet_len = sizeof(struct icmp_packet_rr);
+       if (len >= sizeof(struct batadv_icmp_packet_rr))
+               packet_len = sizeof(struct batadv_icmp_packet_rr);
 
        skb = dev_alloc_skb(packet_len + ETH_HLEN);
        if (!skb) {
@@ -182,81 +180,82 @@ static ssize_t bat_socket_write(struct file *file, const char __user *buff,
        }
 
        skb_reserve(skb, ETH_HLEN);
-       icmp_packet = (struct icmp_packet_rr *)skb_put(skb, packet_len);
+       icmp_packet = (struct batadv_icmp_packet_rr *)skb_put(skb, packet_len);
 
        if (copy_from_user(icmp_packet, buff, packet_len)) {
                len = -EFAULT;
                goto free_skb;
        }
 
-       if (icmp_packet->header.packet_type != BAT_ICMP) {
-               bat_dbg(DBG_BATMAN, bat_priv,
-                       "Error - can't send packet from char device: got bogus packet type (expected: BAT_ICMP)\n");
+       if (icmp_packet->header.packet_type != BATADV_ICMP) {
+               batadv_dbg(BATADV_DBG_BATMAN, bat_priv,
+                          "Error - can't send packet from char device: got bogus packet type (expected: BAT_ICMP)\n");
                len = -EINVAL;
                goto free_skb;
        }
 
-       if (icmp_packet->msg_type != ECHO_REQUEST) {
-               bat_dbg(DBG_BATMAN, bat_priv,
-                       "Error - can't send packet from char device: got bogus message type (expected: ECHO_REQUEST)\n");
+       if (icmp_packet->msg_type != BATADV_ECHO_REQUEST) {
+               batadv_dbg(BATADV_DBG_BATMAN, bat_priv,
+                          "Error - can't send packet from char device: got bogus message type (expected: ECHO_REQUEST)\n");
                len = -EINVAL;
                goto free_skb;
        }
 
        icmp_packet->uid = socket_client->index;
 
-       if (icmp_packet->header.version != COMPAT_VERSION) {
-               icmp_packet->msg_type = PARAMETER_PROBLEM;
-               icmp_packet->header.version = COMPAT_VERSION;
-               bat_socket_add_packet(socket_client, icmp_packet, packet_len);
+       if (icmp_packet->header.version != BATADV_COMPAT_VERSION) {
+               icmp_packet->msg_type = BATADV_PARAMETER_PROBLEM;
+               icmp_packet->header.version = BATADV_COMPAT_VERSION;
+               batadv_socket_add_packet(socket_client, icmp_packet,
+                                        packet_len);
                goto free_skb;
        }
 
-       if (atomic_read(&bat_priv->mesh_state) != MESH_ACTIVE)
+       if (atomic_read(&bat_priv->mesh_state) != BATADV_MESH_ACTIVE)
                goto dst_unreach;
 
-       orig_node = orig_hash_find(bat_priv, icmp_packet->dst);
+       orig_node = batadv_orig_hash_find(bat_priv, icmp_packet->dst);
        if (!orig_node)
                goto dst_unreach;
 
-       neigh_node = orig_node_get_router(orig_node);
+       neigh_node = batadv_orig_node_get_router(orig_node);
        if (!neigh_node)
                goto dst_unreach;
 
        if (!neigh_node->if_incoming)
                goto dst_unreach;
 
-       if (neigh_node->if_incoming->if_status != IF_ACTIVE)
+       if (neigh_node->if_incoming->if_status != BATADV_IF_ACTIVE)
                goto dst_unreach;
 
        memcpy(icmp_packet->orig,
               primary_if->net_dev->dev_addr, ETH_ALEN);
 
-       if (packet_len == sizeof(struct icmp_packet_rr))
+       if (packet_len == sizeof(struct batadv_icmp_packet_rr))
                memcpy(icmp_packet->rr,
                       neigh_node->if_incoming->net_dev->dev_addr, ETH_ALEN);
 
-       send_skb_packet(skb, neigh_node->if_incoming, neigh_node->addr);
+       batadv_send_skb_packet(skb, neigh_node->if_incoming, neigh_node->addr);
        goto out;
 
 dst_unreach:
-       icmp_packet->msg_type = DESTINATION_UNREACHABLE;
-       bat_socket_add_packet(socket_client, icmp_packet, packet_len);
+       icmp_packet->msg_type = BATADV_DESTINATION_UNREACHABLE;
+       batadv_socket_add_packet(socket_client, icmp_packet, packet_len);
 free_skb:
        kfree_skb(skb);
 out:
        if (primary_if)
-               hardif_free_ref(primary_if);
+               batadv_hardif_free_ref(primary_if);
        if (neigh_node)
-               neigh_node_free_ref(neigh_node);
+               batadv_neigh_node_free_ref(neigh_node);
        if (orig_node)
-               orig_node_free_ref(orig_node);
+               batadv_orig_node_free_ref(orig_node);
        return len;
 }
 
-static unsigned int bat_socket_poll(struct file *file, poll_table *wait)
+static unsigned int batadv_socket_poll(struct file *file, poll_table *wait)
 {
-       struct socket_client *socket_client = file->private_data;
+       struct batadv_socket_client *socket_client = file->private_data;
 
        poll_wait(file, &socket_client->queue_wait, wait);
 
@@ -266,39 +265,39 @@ static unsigned int bat_socket_poll(struct file *file, poll_table *wait)
        return 0;
 }
 
-static const struct file_operations fops = {
+static const struct file_operations batadv_fops = {
        .owner = THIS_MODULE,
-       .open = bat_socket_open,
-       .release = bat_socket_release,
-       .read = bat_socket_read,
-       .write = bat_socket_write,
-       .poll = bat_socket_poll,
+       .open = batadv_socket_open,
+       .release = batadv_socket_release,
+       .read = batadv_socket_read,
+       .write = batadv_socket_write,
+       .poll = batadv_socket_poll,
        .llseek = no_llseek,
 };
 
-int bat_socket_setup(struct bat_priv *bat_priv)
+int batadv_socket_setup(struct batadv_priv *bat_priv)
 {
        struct dentry *d;
 
        if (!bat_priv->debug_dir)
                goto err;
 
-       d = debugfs_create_file(ICMP_SOCKET, S_IFREG | S_IWUSR | S_IRUSR,
-                               bat_priv->debug_dir, bat_priv, &fops);
-       if (d)
+       d = debugfs_create_file(BATADV_ICMP_SOCKET, S_IFREG | S_IWUSR | S_IRUSR,
+                               bat_priv->debug_dir, bat_priv, &batadv_fops);
+       if (!d)
                goto err;
 
        return 0;
 
 err:
-       return 1;
+       return -ENOMEM;
 }
 
-static void bat_socket_add_packet(struct socket_client *socket_client,
-                                 struct icmp_packet_rr *icmp_packet,
-                                 size_t icmp_len)
+static void batadv_socket_add_packet(struct batadv_socket_client *socket_client,
+                                    struct batadv_icmp_packet_rr *icmp_packet,
+                                    size_t icmp_len)
 {
-       struct socket_packet *socket_packet;
+       struct batadv_socket_packet *socket_packet;
 
        socket_packet = kmalloc(sizeof(*socket_packet), GFP_ATOMIC);
 
@@ -312,8 +311,9 @@ static void bat_socket_add_packet(struct socket_client *socket_client,
        spin_lock_bh(&socket_client->lock);
 
        /* while waiting for the lock the socket_client could have been
-        * deleted */
-       if (!socket_client_hash[icmp_packet->uid]) {
+        * deleted
+        */
+       if (!batadv_socket_client_hash[icmp_packet->uid]) {
                spin_unlock_bh(&socket_client->lock);
                kfree(socket_packet);
                return;
@@ -324,7 +324,8 @@ static void bat_socket_add_packet(struct socket_client *socket_client,
 
        if (socket_client->queue_len > 100) {
                socket_packet = list_first_entry(&socket_client->queue_list,
-                                                struct socket_packet, list);
+                                                struct batadv_socket_packet,
+                                                list);
 
                list_del(&socket_packet->list);
                kfree(socket_packet);
@@ -336,11 +337,12 @@ 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 batadv_icmp_packet_rr *icmp_packet,
+                                 size_t icmp_len)
 {
-       struct socket_client *hash = socket_client_hash[icmp_packet->uid];
+       struct batadv_socket_client *hash;
 
+       hash = batadv_socket_client_hash[icmp_packet->uid];
        if (hash)
-               bat_socket_add_packet(hash, icmp_packet, icmp_len);
+               batadv_socket_add_packet(hash, icmp_packet, icmp_len);
 }