Commit 88ed1e77 authored by Sven Eckelmann's avatar Sven Eckelmann Committed by Antonio Quartulli

batman-adv: Prefix unicast non-static functions with batadv_

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: default avatarDavid Miller <davem@davemloft.net>
Signed-off-by: default avatarSven Eckelmann <sven@narfation.org>
parent 08c36d3e
...@@ -138,7 +138,7 @@ static void orig_node_free_rcu(struct rcu_head *rcu) ...@@ -138,7 +138,7 @@ static void orig_node_free_rcu(struct rcu_head *rcu)
spin_unlock_bh(&orig_node->neigh_list_lock); spin_unlock_bh(&orig_node->neigh_list_lock);
frag_list_free(&orig_node->frag_list); batadv_frag_list_free(&orig_node->frag_list);
batadv_tt_global_del_orig(orig_node->bat_priv, orig_node, batadv_tt_global_del_orig(orig_node->bat_priv, orig_node,
"originator timed out"); "originator timed out");
...@@ -372,7 +372,7 @@ static void _purge_orig(struct bat_priv *bat_priv) ...@@ -372,7 +372,7 @@ static void _purge_orig(struct bat_priv *bat_priv)
if (has_timed_out(orig_node->last_frag_packet, if (has_timed_out(orig_node->last_frag_packet,
FRAG_TIMEOUT)) FRAG_TIMEOUT))
frag_list_free(&orig_node->frag_list); batadv_frag_list_free(&orig_node->frag_list);
} }
spin_unlock_bh(list_lock); spin_unlock_bh(list_lock);
} }
......
...@@ -850,15 +850,16 @@ static int route_unicast_packet(struct sk_buff *skb, struct hard_iface *recv_if) ...@@ -850,15 +850,16 @@ static int route_unicast_packet(struct sk_buff *skb, struct hard_iface *recv_if)
if (unicast_packet->header.packet_type == BAT_UNICAST && if (unicast_packet->header.packet_type == BAT_UNICAST &&
atomic_read(&bat_priv->fragmentation) && atomic_read(&bat_priv->fragmentation) &&
skb->len > neigh_node->if_incoming->net_dev->mtu) { skb->len > neigh_node->if_incoming->net_dev->mtu) {
ret = frag_send_skb(skb, bat_priv, ret = batadv_frag_send_skb(skb, bat_priv,
neigh_node->if_incoming, neigh_node->addr); neigh_node->if_incoming,
neigh_node->addr);
goto out; goto out;
} }
if (unicast_packet->header.packet_type == BAT_UNICAST_FRAG && if (unicast_packet->header.packet_type == BAT_UNICAST_FRAG &&
frag_can_reassemble(skb, neigh_node->if_incoming->net_dev->mtu)) { frag_can_reassemble(skb, neigh_node->if_incoming->net_dev->mtu)) {
ret = frag_reassemble_skb(skb, bat_priv, &new_skb); ret = batadv_frag_reassemble_skb(skb, bat_priv, &new_skb);
if (ret == NET_RX_DROP) if (ret == NET_RX_DROP)
goto out; goto out;
...@@ -1013,7 +1014,7 @@ int batadv_recv_ucast_frag_packet(struct sk_buff *skb, ...@@ -1013,7 +1014,7 @@ int batadv_recv_ucast_frag_packet(struct sk_buff *skb,
/* packet for me */ /* packet for me */
if (is_my_mac(unicast_packet->dest)) { if (is_my_mac(unicast_packet->dest)) {
ret = frag_reassemble_skb(skb, bat_priv, &new_skb); ret = batadv_frag_reassemble_skb(skb, bat_priv, &new_skb);
if (ret == NET_RX_DROP) if (ret == NET_RX_DROP)
return NET_RX_DROP; return NET_RX_DROP;
......
...@@ -237,7 +237,7 @@ static int interface_tx(struct sk_buff *skb, struct net_device *soft_iface) ...@@ -237,7 +237,7 @@ static int interface_tx(struct sk_buff *skb, struct net_device *soft_iface)
goto dropped; goto dropped;
} }
ret = unicast_send_skb(skb, bat_priv); ret = batadv_unicast_send_skb(skb, bat_priv);
if (ret != 0) if (ret != 0)
goto dropped_freed; goto dropped_freed;
} }
......
...@@ -101,7 +101,7 @@ static int frag_create_buffer(struct list_head *head) ...@@ -101,7 +101,7 @@ static int frag_create_buffer(struct list_head *head)
for (i = 0; i < FRAG_BUFFER_SIZE; i++) { for (i = 0; i < FRAG_BUFFER_SIZE; i++) {
tfp = kmalloc(sizeof(*tfp), GFP_ATOMIC); tfp = kmalloc(sizeof(*tfp), GFP_ATOMIC);
if (!tfp) { if (!tfp) {
frag_list_free(head); batadv_frag_list_free(head);
return -ENOMEM; return -ENOMEM;
} }
tfp->skb = NULL; tfp->skb = NULL;
...@@ -151,7 +151,7 @@ static struct frag_packet_list_entry *frag_search_packet(struct list_head *head, ...@@ -151,7 +151,7 @@ static struct frag_packet_list_entry *frag_search_packet(struct list_head *head,
return NULL; return NULL;
} }
void frag_list_free(struct list_head *head) void batadv_frag_list_free(struct list_head *head)
{ {
struct frag_packet_list_entry *pf, *tmp_pf; struct frag_packet_list_entry *pf, *tmp_pf;
...@@ -172,8 +172,8 @@ void frag_list_free(struct list_head *head) ...@@ -172,8 +172,8 @@ void frag_list_free(struct list_head *head)
* or the skb could be reassembled (skb_new will point to the new packet and * or the skb could be reassembled (skb_new will point to the new packet and
* skb was freed) * skb was freed)
*/ */
int frag_reassemble_skb(struct sk_buff *skb, struct bat_priv *bat_priv, int batadv_frag_reassemble_skb(struct sk_buff *skb, struct bat_priv *bat_priv,
struct sk_buff **new_skb) struct sk_buff **new_skb)
{ {
struct orig_node *orig_node; struct orig_node *orig_node;
struct frag_packet_list_entry *tmp_frag_entry; struct frag_packet_list_entry *tmp_frag_entry;
...@@ -216,8 +216,8 @@ int frag_reassemble_skb(struct sk_buff *skb, struct bat_priv *bat_priv, ...@@ -216,8 +216,8 @@ int frag_reassemble_skb(struct sk_buff *skb, struct bat_priv *bat_priv,
return ret; return ret;
} }
int frag_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv, int batadv_frag_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv,
struct hard_iface *hard_iface, const uint8_t dstaddr[]) struct hard_iface *hard_iface, const uint8_t dstaddr[])
{ {
struct unicast_packet tmp_uc, *unicast_packet; struct unicast_packet tmp_uc, *unicast_packet;
struct hard_iface *primary_if; struct hard_iface *primary_if;
...@@ -283,7 +283,7 @@ int frag_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv, ...@@ -283,7 +283,7 @@ int frag_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv,
return ret; return ret;
} }
int unicast_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv) int batadv_unicast_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv)
{ {
struct ethhdr *ethhdr = (struct ethhdr *)skb->data; struct ethhdr *ethhdr = (struct ethhdr *)skb->data;
struct unicast_packet *unicast_packet; struct unicast_packet *unicast_packet;
...@@ -342,8 +342,9 @@ int unicast_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv) ...@@ -342,8 +342,9 @@ int unicast_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv)
neigh_node->if_incoming->net_dev->mtu) { neigh_node->if_incoming->net_dev->mtu) {
/* send frag skb decreases ttl */ /* send frag skb decreases ttl */
unicast_packet->header.ttl++; unicast_packet->header.ttl++;
ret = frag_send_skb(skb, bat_priv, ret = batadv_frag_send_skb(skb, bat_priv,
neigh_node->if_incoming, neigh_node->addr); neigh_node->if_incoming,
neigh_node->addr);
goto out; goto out;
} }
......
...@@ -27,12 +27,13 @@ ...@@ -27,12 +27,13 @@
#define FRAG_TIMEOUT 10000 /* purge frag list entries after time in ms */ #define FRAG_TIMEOUT 10000 /* purge frag list entries after time in ms */
#define FRAG_BUFFER_SIZE 6 /* number of list elements in buffer */ #define FRAG_BUFFER_SIZE 6 /* number of list elements in buffer */
int frag_reassemble_skb(struct sk_buff *skb, struct bat_priv *bat_priv, int batadv_frag_reassemble_skb(struct sk_buff *skb, struct bat_priv *bat_priv,
struct sk_buff **new_skb); struct sk_buff **new_skb);
void frag_list_free(struct list_head *head); void batadv_frag_list_free(struct list_head *head);
int unicast_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv); int batadv_unicast_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv);
int frag_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv, int batadv_frag_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv,
struct hard_iface *hard_iface, const uint8_t dstaddr[]); struct hard_iface *hard_iface,
const uint8_t dstaddr[]);
static inline int frag_can_reassemble(const struct sk_buff *skb, int mtu) static inline int frag_can_reassemble(const struct sk_buff *skb, int mtu)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment