return ERR_PTR(-EINVAL);
 
        /* Allocate and set up the meter before locking anything. */
-       meter = kzalloc(struct_size(meter, bands, n_bands), GFP_KERNEL);
+       meter = kzalloc(struct_size(meter, bands, n_bands), GFP_KERNEL_ACCOUNT);
        if (!meter)
                return ERR_PTR(-ENOMEM);
 
        },
        { .cmd = OVS_METER_CMD_SET,
                .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
-               .flags = GENL_ADMIN_PERM, /* Requires CAP_NET_ADMIN
-                                          *  privilege.
-                                          */
+               .flags = GENL_UNS_ADMIN_PERM, /* Requires CAP_NET_ADMIN
+                                              *  privilege.
+                                              */
                .doit = ovs_meter_cmd_set,
        },
        { .cmd = OVS_METER_CMD_GET,
        },
        { .cmd = OVS_METER_CMD_DEL,
                .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
-               .flags = GENL_ADMIN_PERM, /* Requires CAP_NET_ADMIN
-                                          *  privilege.
-                                          */
+               .flags = GENL_UNS_ADMIN_PERM, /* Requires CAP_NET_ADMIN
+                                              *  privilege.
+                                              */
                .doit = ovs_meter_cmd_del
        },
 };