rtnetlink: make rtnl_register accept a flags parameter
This change allows us to later indicate to rtnetlink core that certain doit functions should be called without acquiring rtnl_mutex. This change should have no effect, we simply replace the last (now unused) calcit argument with the new flag. Signed-off-by: Florian Westphal <fw@strlen.de> Reviewed-by: Hannes Frederic Sowa <hannes@stressinduktion.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
e1fa6d216d
commit
b97bac64a5
@@ -178,7 +178,7 @@ static rtnl_dumpit_func rtnl_get_dumpit(int protocol, int msgindex)
|
||||
* @msgtype: rtnetlink message type
|
||||
* @doit: Function pointer called for each request message
|
||||
* @dumpit: Function pointer called for each dump request (NLM_F_DUMP) message
|
||||
* @calcit: Function pointer to calc size of dump message
|
||||
* @flags: rtnl_link_flags to modifiy behaviour of doit/dumpit functions
|
||||
*
|
||||
* Registers the specified function pointers (at least one of them has
|
||||
* to be non-NULL) to be called whenever a request message for the
|
||||
@@ -192,7 +192,7 @@ static rtnl_dumpit_func rtnl_get_dumpit(int protocol, int msgindex)
|
||||
*/
|
||||
int __rtnl_register(int protocol, int msgtype,
|
||||
rtnl_doit_func doit, rtnl_dumpit_func dumpit,
|
||||
rtnl_calcit_func calcit)
|
||||
unsigned int flags)
|
||||
{
|
||||
struct rtnl_link *tab;
|
||||
int msgindex;
|
||||
@@ -230,9 +230,9 @@ EXPORT_SYMBOL_GPL(__rtnl_register);
|
||||
*/
|
||||
void rtnl_register(int protocol, int msgtype,
|
||||
rtnl_doit_func doit, rtnl_dumpit_func dumpit,
|
||||
rtnl_calcit_func calcit)
|
||||
unsigned int flags)
|
||||
{
|
||||
if (__rtnl_register(protocol, msgtype, doit, dumpit, calcit) < 0)
|
||||
if (__rtnl_register(protocol, msgtype, doit, dumpit, flags) < 0)
|
||||
panic("Unable to register rtnetlink message handler, "
|
||||
"protocol = %d, message type = %d\n",
|
||||
protocol, msgtype);
|
||||
@@ -4279,23 +4279,23 @@ void __init rtnetlink_init(void)
|
||||
register_netdevice_notifier(&rtnetlink_dev_notifier);
|
||||
|
||||
rtnl_register(PF_UNSPEC, RTM_GETLINK, rtnl_getlink,
|
||||
rtnl_dump_ifinfo, NULL);
|
||||
rtnl_register(PF_UNSPEC, RTM_SETLINK, rtnl_setlink, NULL, NULL);
|
||||
rtnl_register(PF_UNSPEC, RTM_NEWLINK, rtnl_newlink, NULL, NULL);
|
||||
rtnl_register(PF_UNSPEC, RTM_DELLINK, rtnl_dellink, NULL, NULL);
|
||||
rtnl_dump_ifinfo, 0);
|
||||
rtnl_register(PF_UNSPEC, RTM_SETLINK, rtnl_setlink, NULL, 0);
|
||||
rtnl_register(PF_UNSPEC, RTM_NEWLINK, rtnl_newlink, NULL, 0);
|
||||
rtnl_register(PF_UNSPEC, RTM_DELLINK, rtnl_dellink, NULL, 0);
|
||||
|
||||
rtnl_register(PF_UNSPEC, RTM_GETADDR, NULL, rtnl_dump_all, NULL);
|
||||
rtnl_register(PF_UNSPEC, RTM_GETROUTE, NULL, rtnl_dump_all, NULL);
|
||||
rtnl_register(PF_UNSPEC, RTM_GETNETCONF, NULL, rtnl_dump_all, NULL);
|
||||
rtnl_register(PF_UNSPEC, RTM_GETADDR, NULL, rtnl_dump_all, 0);
|
||||
rtnl_register(PF_UNSPEC, RTM_GETROUTE, NULL, rtnl_dump_all, 0);
|
||||
rtnl_register(PF_UNSPEC, RTM_GETNETCONF, NULL, rtnl_dump_all, 0);
|
||||
|
||||
rtnl_register(PF_BRIDGE, RTM_NEWNEIGH, rtnl_fdb_add, NULL, NULL);
|
||||
rtnl_register(PF_BRIDGE, RTM_DELNEIGH, rtnl_fdb_del, NULL, NULL);
|
||||
rtnl_register(PF_BRIDGE, RTM_GETNEIGH, NULL, rtnl_fdb_dump, NULL);
|
||||
rtnl_register(PF_BRIDGE, RTM_NEWNEIGH, rtnl_fdb_add, NULL, 0);
|
||||
rtnl_register(PF_BRIDGE, RTM_DELNEIGH, rtnl_fdb_del, NULL, 0);
|
||||
rtnl_register(PF_BRIDGE, RTM_GETNEIGH, NULL, rtnl_fdb_dump, 0);
|
||||
|
||||
rtnl_register(PF_BRIDGE, RTM_GETLINK, NULL, rtnl_bridge_getlink, NULL);
|
||||
rtnl_register(PF_BRIDGE, RTM_DELLINK, rtnl_bridge_dellink, NULL, NULL);
|
||||
rtnl_register(PF_BRIDGE, RTM_SETLINK, rtnl_bridge_setlink, NULL, NULL);
|
||||
rtnl_register(PF_BRIDGE, RTM_GETLINK, NULL, rtnl_bridge_getlink, 0);
|
||||
rtnl_register(PF_BRIDGE, RTM_DELLINK, rtnl_bridge_dellink, NULL, 0);
|
||||
rtnl_register(PF_BRIDGE, RTM_SETLINK, rtnl_bridge_setlink, NULL, 0);
|
||||
|
||||
rtnl_register(PF_UNSPEC, RTM_GETSTATS, rtnl_stats_get, rtnl_stats_dump,
|
||||
NULL);
|
||||
0);
|
||||
}
|
||||
|
Reference in New Issue
Block a user