]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - net/core/drop_monitor.c
bpf: reuse dev_is_mac_header_xmit for redirect
[karo-tx-linux.git] / net / core / drop_monitor.c
index 72cfb0c611254cbe48885e4d3a7b497e91d94fed..8e0c0635ee975e1c71a126677f63ff220f7f0c44 100644 (file)
@@ -59,12 +59,7 @@ struct dm_hw_stat_delta {
        unsigned long last_drop_val;
 };
 
-static struct genl_family net_drop_monitor_family = {
-       .id             = GENL_ID_GENERATE,
-       .hdrsize        = 0,
-       .name           = "NET_DM",
-       .version        = 2,
-};
+static struct genl_family net_drop_monitor_family;
 
 static DEFINE_PER_CPU(struct per_cpu_dm_data, dm_cpu_data);
 
@@ -351,6 +346,17 @@ static const struct genl_ops dropmon_ops[] = {
        },
 };
 
+static struct genl_family net_drop_monitor_family __ro_after_init = {
+       .hdrsize        = 0,
+       .name           = "NET_DM",
+       .version        = 2,
+       .module         = THIS_MODULE,
+       .ops            = dropmon_ops,
+       .n_ops          = ARRAY_SIZE(dropmon_ops),
+       .mcgrps         = dropmon_mcgrps,
+       .n_mcgrps       = ARRAY_SIZE(dropmon_mcgrps),
+};
+
 static struct notifier_block dropmon_net_notifier = {
        .notifier_call = dropmon_net_event
 };
@@ -367,8 +373,7 @@ static int __init init_net_drop_monitor(void)
                return -ENOSPC;
        }
 
-       rc = genl_register_family_with_ops_groups(&net_drop_monitor_family,
-                                                 dropmon_ops, dropmon_mcgrps);
+       rc = genl_register_family(&net_drop_monitor_family);
        if (rc) {
                pr_err("Could not create drop monitor netlink family\n");
                return rc;