提交 5853e22c 编写于 作者: S Sven Eckelmann 提交者: Antonio Quartulli

batman-adv: Prefix bat_sysfs 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: NDavid Miller <davem@davemloft.net>
Signed-off-by: NSven Eckelmann <sven@narfation.org>
上级 40a072d7
...@@ -469,7 +469,7 @@ static struct bat_attribute *mesh_attrs[] = { ...@@ -469,7 +469,7 @@ static struct bat_attribute *mesh_attrs[] = {
NULL, NULL,
}; };
int sysfs_add_meshif(struct net_device *dev) int batadv_sysfs_add_meshif(struct net_device *dev)
{ {
struct kobject *batif_kobject = &dev->dev.kobj; struct kobject *batif_kobject = &dev->dev.kobj;
struct bat_priv *bat_priv = netdev_priv(dev); struct bat_priv *bat_priv = netdev_priv(dev);
...@@ -507,7 +507,7 @@ int sysfs_add_meshif(struct net_device *dev) ...@@ -507,7 +507,7 @@ int sysfs_add_meshif(struct net_device *dev)
return -ENOMEM; return -ENOMEM;
} }
void sysfs_del_meshif(struct net_device *dev) void batadv_sysfs_del_meshif(struct net_device *dev)
{ {
struct bat_priv *bat_priv = netdev_priv(dev); struct bat_priv *bat_priv = netdev_priv(dev);
struct bat_attribute **bat_attr; struct bat_attribute **bat_attr;
...@@ -637,7 +637,7 @@ static struct bat_attribute *batman_attrs[] = { ...@@ -637,7 +637,7 @@ static struct bat_attribute *batman_attrs[] = {
NULL, NULL,
}; };
int sysfs_add_hardif(struct kobject **hardif_obj, struct net_device *dev) int batadv_sysfs_add_hardif(struct kobject **hardif_obj, struct net_device *dev)
{ {
struct kobject *hardif_kobject = &dev->dev.kobj; struct kobject *hardif_kobject = &dev->dev.kobj;
struct bat_attribute **bat_attr; struct bat_attribute **bat_attr;
...@@ -671,14 +671,14 @@ int sysfs_add_hardif(struct kobject **hardif_obj, struct net_device *dev) ...@@ -671,14 +671,14 @@ int sysfs_add_hardif(struct kobject **hardif_obj, struct net_device *dev)
return -ENOMEM; return -ENOMEM;
} }
void sysfs_del_hardif(struct kobject **hardif_obj) void batadv_sysfs_del_hardif(struct kobject **hardif_obj)
{ {
kobject_put(*hardif_obj); kobject_put(*hardif_obj);
*hardif_obj = NULL; *hardif_obj = NULL;
} }
int throw_uevent(struct bat_priv *bat_priv, enum uev_type type, int batadv_throw_uevent(struct bat_priv *bat_priv, enum uev_type type,
enum uev_action action, const char *data) enum uev_action action, const char *data)
{ {
int ret = -ENOMEM; int ret = -ENOMEM;
struct hard_iface *primary_if = NULL; struct hard_iface *primary_if = NULL;
......
...@@ -34,11 +34,12 @@ struct bat_attribute { ...@@ -34,11 +34,12 @@ struct bat_attribute {
char *buf, size_t count); char *buf, size_t count);
}; };
int sysfs_add_meshif(struct net_device *dev); int batadv_sysfs_add_meshif(struct net_device *dev);
void sysfs_del_meshif(struct net_device *dev); void batadv_sysfs_del_meshif(struct net_device *dev);
int sysfs_add_hardif(struct kobject **hardif_obj, struct net_device *dev); int batadv_sysfs_add_hardif(struct kobject **hardif_obj,
void sysfs_del_hardif(struct kobject **hardif_obj); struct net_device *dev);
int throw_uevent(struct bat_priv *bat_priv, enum uev_type type, void batadv_sysfs_del_hardif(struct kobject **hardif_obj);
enum uev_action action, const char *data); int batadv_throw_uevent(struct bat_priv *bat_priv, enum uev_type type,
enum uev_action action, const char *data);
#endif /* _NET_BATMAN_ADV_SYSFS_H_ */ #endif /* _NET_BATMAN_ADV_SYSFS_H_ */
...@@ -220,19 +220,19 @@ void gw_election(struct bat_priv *bat_priv) ...@@ -220,19 +220,19 @@ void gw_election(struct bat_priv *bat_priv)
if ((curr_gw) && (!next_gw)) { if ((curr_gw) && (!next_gw)) {
bat_dbg(DBG_BATMAN, bat_priv, bat_dbg(DBG_BATMAN, bat_priv,
"Removing selected gateway - no gateway in range\n"); "Removing selected gateway - no gateway in range\n");
throw_uevent(bat_priv, UEV_GW, UEV_DEL, NULL); batadv_throw_uevent(bat_priv, UEV_GW, UEV_DEL, NULL);
} else if ((!curr_gw) && (next_gw)) { } else if ((!curr_gw) && (next_gw)) {
bat_dbg(DBG_BATMAN, bat_priv, bat_dbg(DBG_BATMAN, bat_priv,
"Adding route to gateway %pM (gw_flags: %i, tq: %i)\n", "Adding route to gateway %pM (gw_flags: %i, tq: %i)\n",
next_gw->orig_node->orig, next_gw->orig_node->gw_flags, next_gw->orig_node->orig, next_gw->orig_node->gw_flags,
router->tq_avg); router->tq_avg);
throw_uevent(bat_priv, UEV_GW, UEV_ADD, gw_addr); batadv_throw_uevent(bat_priv, UEV_GW, UEV_ADD, gw_addr);
} else { } else {
bat_dbg(DBG_BATMAN, bat_priv, bat_dbg(DBG_BATMAN, bat_priv,
"Changing route to gateway %pM (gw_flags: %i, tq: %i)\n", "Changing route to gateway %pM (gw_flags: %i, tq: %i)\n",
next_gw->orig_node->orig, next_gw->orig_node->gw_flags, next_gw->orig_node->orig, next_gw->orig_node->gw_flags,
router->tq_avg); router->tq_avg);
throw_uevent(bat_priv, UEV_GW, UEV_CHANGE, gw_addr); batadv_throw_uevent(bat_priv, UEV_GW, UEV_CHANGE, gw_addr);
} }
gw_select(bat_priv, next_gw); gw_select(bat_priv, next_gw);
......
...@@ -423,7 +423,7 @@ static struct hard_iface *hardif_add_interface(struct net_device *net_dev) ...@@ -423,7 +423,7 @@ static struct hard_iface *hardif_add_interface(struct net_device *net_dev)
if (!hard_iface) if (!hard_iface)
goto release_dev; goto release_dev;
ret = sysfs_add_hardif(&hard_iface->hardif_obj, net_dev); ret = batadv_sysfs_add_hardif(&hard_iface->hardif_obj, net_dev);
if (ret) if (ret)
goto free_if; goto free_if;
...@@ -467,7 +467,7 @@ static void hardif_remove_interface(struct hard_iface *hard_iface) ...@@ -467,7 +467,7 @@ static void hardif_remove_interface(struct hard_iface *hard_iface)
return; return;
hard_iface->if_status = IF_TO_BE_REMOVED; hard_iface->if_status = IF_TO_BE_REMOVED;
sysfs_del_hardif(&hard_iface->hardif_obj); batadv_sysfs_del_hardif(&hard_iface->hardif_obj);
hardif_free_ref(hard_iface); hardif_free_ref(hard_iface);
} }
......
...@@ -415,7 +415,7 @@ struct net_device *softif_create(const char *name) ...@@ -415,7 +415,7 @@ struct net_device *softif_create(const char *name)
if (ret < 0) if (ret < 0)
goto free_bat_counters; goto free_bat_counters;
ret = sysfs_add_meshif(soft_iface); ret = batadv_sysfs_add_meshif(soft_iface);
if (ret < 0) if (ret < 0)
goto free_bat_counters; goto free_bat_counters;
...@@ -432,7 +432,7 @@ struct net_device *softif_create(const char *name) ...@@ -432,7 +432,7 @@ struct net_device *softif_create(const char *name)
unreg_debugfs: unreg_debugfs:
batadv_debugfs_del_meshif(soft_iface); batadv_debugfs_del_meshif(soft_iface);
unreg_sysfs: unreg_sysfs:
sysfs_del_meshif(soft_iface); batadv_sysfs_del_meshif(soft_iface);
free_bat_counters: free_bat_counters:
free_percpu(bat_priv->bat_counters); free_percpu(bat_priv->bat_counters);
unreg_soft_iface: unreg_soft_iface:
...@@ -448,7 +448,7 @@ struct net_device *softif_create(const char *name) ...@@ -448,7 +448,7 @@ struct net_device *softif_create(const char *name)
void softif_destroy(struct net_device *soft_iface) void softif_destroy(struct net_device *soft_iface)
{ {
batadv_debugfs_del_meshif(soft_iface); batadv_debugfs_del_meshif(soft_iface);
sysfs_del_meshif(soft_iface); batadv_sysfs_del_meshif(soft_iface);
mesh_free(soft_iface); mesh_free(soft_iface);
unregister_netdevice(soft_iface); unregister_netdevice(soft_iface);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册