diff options
Diffstat (limited to 'net/core')
-rw-r--r-- | net/core/drop_monitor.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/net/core/drop_monitor.c b/net/core/drop_monitor.c index 0efc5028ba9d..46ee488c0015 100644 --- a/net/core/drop_monitor.c +++ b/net/core/drop_monitor.c | |||
@@ -106,6 +106,10 @@ static struct sk_buff *reset_per_cpu_data(struct per_cpu_dm_data *data) | |||
106 | return skb; | 106 | return skb; |
107 | } | 107 | } |
108 | 108 | ||
109 | static struct genl_multicast_group dm_mcgrp = { | ||
110 | .name = "events", | ||
111 | }; | ||
112 | |||
109 | static void send_dm_alert(struct work_struct *work) | 113 | static void send_dm_alert(struct work_struct *work) |
110 | { | 114 | { |
111 | struct sk_buff *skb; | 115 | struct sk_buff *skb; |
@@ -116,7 +120,7 @@ static void send_dm_alert(struct work_struct *work) | |||
116 | skb = reset_per_cpu_data(data); | 120 | skb = reset_per_cpu_data(data); |
117 | 121 | ||
118 | if (skb) | 122 | if (skb) |
119 | genlmsg_multicast(skb, 0, NET_DM_GRP_ALERT, GFP_KERNEL); | 123 | genlmsg_multicast(skb, 0, dm_mcgrp.id, GFP_KERNEL); |
120 | } | 124 | } |
121 | 125 | ||
122 | /* | 126 | /* |
@@ -371,6 +375,13 @@ static int __init init_net_drop_monitor(void) | |||
371 | return rc; | 375 | return rc; |
372 | } | 376 | } |
373 | 377 | ||
378 | rc = genl_register_mc_group(&net_drop_monitor_family, &dm_mcgrp); | ||
379 | if (rc) { | ||
380 | pr_err("Failed to register drop monitor mcast group\n"); | ||
381 | goto out_unreg; | ||
382 | } | ||
383 | WARN_ON(dm_mcgrp.id != NET_DM_GRP_ALERT); | ||
384 | |||
374 | rc = register_netdevice_notifier(&dropmon_net_notifier); | 385 | rc = register_netdevice_notifier(&dropmon_net_notifier); |
375 | if (rc < 0) { | 386 | if (rc < 0) { |
376 | pr_crit("Failed to register netdevice notifier\n"); | 387 | pr_crit("Failed to register netdevice notifier\n"); |