diff options
36 files changed, 68 insertions, 374 deletions
diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c index 90ba9f4c03f3..92b8aafb8bb4 100644 --- a/drivers/block/nbd.c +++ b/drivers/block/nbd.c | |||
@@ -1999,22 +1999,18 @@ out: | |||
1999 | static const struct genl_ops nbd_connect_genl_ops[] = { | 1999 | static const struct genl_ops nbd_connect_genl_ops[] = { |
2000 | { | 2000 | { |
2001 | .cmd = NBD_CMD_CONNECT, | 2001 | .cmd = NBD_CMD_CONNECT, |
2002 | .policy = nbd_attr_policy, | ||
2003 | .doit = nbd_genl_connect, | 2002 | .doit = nbd_genl_connect, |
2004 | }, | 2003 | }, |
2005 | { | 2004 | { |
2006 | .cmd = NBD_CMD_DISCONNECT, | 2005 | .cmd = NBD_CMD_DISCONNECT, |
2007 | .policy = nbd_attr_policy, | ||
2008 | .doit = nbd_genl_disconnect, | 2006 | .doit = nbd_genl_disconnect, |
2009 | }, | 2007 | }, |
2010 | { | 2008 | { |
2011 | .cmd = NBD_CMD_RECONFIGURE, | 2009 | .cmd = NBD_CMD_RECONFIGURE, |
2012 | .policy = nbd_attr_policy, | ||
2013 | .doit = nbd_genl_reconfigure, | 2010 | .doit = nbd_genl_reconfigure, |
2014 | }, | 2011 | }, |
2015 | { | 2012 | { |
2016 | .cmd = NBD_CMD_STATUS, | 2013 | .cmd = NBD_CMD_STATUS, |
2017 | .policy = nbd_attr_policy, | ||
2018 | .doit = nbd_genl_status, | 2014 | .doit = nbd_genl_status, |
2019 | }, | 2015 | }, |
2020 | }; | 2016 | }; |
@@ -2031,6 +2027,7 @@ static struct genl_family nbd_genl_family __ro_after_init = { | |||
2031 | .ops = nbd_connect_genl_ops, | 2027 | .ops = nbd_connect_genl_ops, |
2032 | .n_ops = ARRAY_SIZE(nbd_connect_genl_ops), | 2028 | .n_ops = ARRAY_SIZE(nbd_connect_genl_ops), |
2033 | .maxattr = NBD_ATTR_MAX, | 2029 | .maxattr = NBD_ATTR_MAX, |
2030 | .policy = nbd_attr_policy, | ||
2034 | .mcgrps = nbd_mcast_grps, | 2031 | .mcgrps = nbd_mcast_grps, |
2035 | .n_mcgrps = ARRAY_SIZE(nbd_mcast_grps), | 2032 | .n_mcgrps = ARRAY_SIZE(nbd_mcast_grps), |
2036 | }; | 2033 | }; |
diff --git a/drivers/net/gtp.c b/drivers/net/gtp.c index 7a145172d503..c06e31747288 100644 --- a/drivers/net/gtp.c +++ b/drivers/net/gtp.c | |||
@@ -1271,20 +1271,17 @@ static const struct genl_ops gtp_genl_ops[] = { | |||
1271 | { | 1271 | { |
1272 | .cmd = GTP_CMD_NEWPDP, | 1272 | .cmd = GTP_CMD_NEWPDP, |
1273 | .doit = gtp_genl_new_pdp, | 1273 | .doit = gtp_genl_new_pdp, |
1274 | .policy = gtp_genl_policy, | ||
1275 | .flags = GENL_ADMIN_PERM, | 1274 | .flags = GENL_ADMIN_PERM, |
1276 | }, | 1275 | }, |
1277 | { | 1276 | { |
1278 | .cmd = GTP_CMD_DELPDP, | 1277 | .cmd = GTP_CMD_DELPDP, |
1279 | .doit = gtp_genl_del_pdp, | 1278 | .doit = gtp_genl_del_pdp, |
1280 | .policy = gtp_genl_policy, | ||
1281 | .flags = GENL_ADMIN_PERM, | 1279 | .flags = GENL_ADMIN_PERM, |
1282 | }, | 1280 | }, |
1283 | { | 1281 | { |
1284 | .cmd = GTP_CMD_GETPDP, | 1282 | .cmd = GTP_CMD_GETPDP, |
1285 | .doit = gtp_genl_get_pdp, | 1283 | .doit = gtp_genl_get_pdp, |
1286 | .dumpit = gtp_genl_dump_pdp, | 1284 | .dumpit = gtp_genl_dump_pdp, |
1287 | .policy = gtp_genl_policy, | ||
1288 | .flags = GENL_ADMIN_PERM, | 1285 | .flags = GENL_ADMIN_PERM, |
1289 | }, | 1286 | }, |
1290 | }; | 1287 | }; |
@@ -1294,6 +1291,7 @@ static struct genl_family gtp_genl_family __ro_after_init = { | |||
1294 | .version = 0, | 1291 | .version = 0, |
1295 | .hdrsize = 0, | 1292 | .hdrsize = 0, |
1296 | .maxattr = GTPA_MAX, | 1293 | .maxattr = GTPA_MAX, |
1294 | .policy = gtp_genl_policy, | ||
1297 | .netnsok = true, | 1295 | .netnsok = true, |
1298 | .module = THIS_MODULE, | 1296 | .module = THIS_MODULE, |
1299 | .ops = gtp_genl_ops, | 1297 | .ops = gtp_genl_ops, |
diff --git a/drivers/net/ieee802154/mac802154_hwsim.c b/drivers/net/ieee802154/mac802154_hwsim.c index b6743f03dce0..49866737f138 100644 --- a/drivers/net/ieee802154/mac802154_hwsim.c +++ b/drivers/net/ieee802154/mac802154_hwsim.c | |||
@@ -598,37 +598,31 @@ static const struct nla_policy hwsim_genl_policy[MAC802154_HWSIM_ATTR_MAX + 1] = | |||
598 | static const struct genl_ops hwsim_nl_ops[] = { | 598 | static const struct genl_ops hwsim_nl_ops[] = { |
599 | { | 599 | { |
600 | .cmd = MAC802154_HWSIM_CMD_NEW_RADIO, | 600 | .cmd = MAC802154_HWSIM_CMD_NEW_RADIO, |
601 | .policy = hwsim_genl_policy, | ||
602 | .doit = hwsim_new_radio_nl, | 601 | .doit = hwsim_new_radio_nl, |
603 | .flags = GENL_UNS_ADMIN_PERM, | 602 | .flags = GENL_UNS_ADMIN_PERM, |
604 | }, | 603 | }, |
605 | { | 604 | { |
606 | .cmd = MAC802154_HWSIM_CMD_DEL_RADIO, | 605 | .cmd = MAC802154_HWSIM_CMD_DEL_RADIO, |
607 | .policy = hwsim_genl_policy, | ||
608 | .doit = hwsim_del_radio_nl, | 606 | .doit = hwsim_del_radio_nl, |
609 | .flags = GENL_UNS_ADMIN_PERM, | 607 | .flags = GENL_UNS_ADMIN_PERM, |
610 | }, | 608 | }, |
611 | { | 609 | { |
612 | .cmd = MAC802154_HWSIM_CMD_GET_RADIO, | 610 | .cmd = MAC802154_HWSIM_CMD_GET_RADIO, |
613 | .policy = hwsim_genl_policy, | ||
614 | .doit = hwsim_get_radio_nl, | 611 | .doit = hwsim_get_radio_nl, |
615 | .dumpit = hwsim_dump_radio_nl, | 612 | .dumpit = hwsim_dump_radio_nl, |
616 | }, | 613 | }, |
617 | { | 614 | { |
618 | .cmd = MAC802154_HWSIM_CMD_NEW_EDGE, | 615 | .cmd = MAC802154_HWSIM_CMD_NEW_EDGE, |
619 | .policy = hwsim_genl_policy, | ||
620 | .doit = hwsim_new_edge_nl, | 616 | .doit = hwsim_new_edge_nl, |
621 | .flags = GENL_UNS_ADMIN_PERM, | 617 | .flags = GENL_UNS_ADMIN_PERM, |
622 | }, | 618 | }, |
623 | { | 619 | { |
624 | .cmd = MAC802154_HWSIM_CMD_DEL_EDGE, | 620 | .cmd = MAC802154_HWSIM_CMD_DEL_EDGE, |
625 | .policy = hwsim_genl_policy, | ||
626 | .doit = hwsim_del_edge_nl, | 621 | .doit = hwsim_del_edge_nl, |
627 | .flags = GENL_UNS_ADMIN_PERM, | 622 | .flags = GENL_UNS_ADMIN_PERM, |
628 | }, | 623 | }, |
629 | { | 624 | { |
630 | .cmd = MAC802154_HWSIM_CMD_SET_EDGE, | 625 | .cmd = MAC802154_HWSIM_CMD_SET_EDGE, |
631 | .policy = hwsim_genl_policy, | ||
632 | .doit = hwsim_set_edge_lqi, | 626 | .doit = hwsim_set_edge_lqi, |
633 | .flags = GENL_UNS_ADMIN_PERM, | 627 | .flags = GENL_UNS_ADMIN_PERM, |
634 | }, | 628 | }, |
@@ -638,6 +632,7 @@ static struct genl_family hwsim_genl_family __ro_after_init = { | |||
638 | .name = "MAC802154_HWSIM", | 632 | .name = "MAC802154_HWSIM", |
639 | .version = 1, | 633 | .version = 1, |
640 | .maxattr = MAC802154_HWSIM_ATTR_MAX, | 634 | .maxattr = MAC802154_HWSIM_ATTR_MAX, |
635 | .policy = hwsim_genl_policy, | ||
641 | .module = THIS_MODULE, | 636 | .module = THIS_MODULE, |
642 | .ops = hwsim_nl_ops, | 637 | .ops = hwsim_nl_ops, |
643 | .n_ops = ARRAY_SIZE(hwsim_nl_ops), | 638 | .n_ops = ARRAY_SIZE(hwsim_nl_ops), |
diff --git a/drivers/net/macsec.c b/drivers/net/macsec.c index 64a982563d59..947c40f112d1 100644 --- a/drivers/net/macsec.c +++ b/drivers/net/macsec.c | |||
@@ -2637,60 +2637,50 @@ static const struct genl_ops macsec_genl_ops[] = { | |||
2637 | { | 2637 | { |
2638 | .cmd = MACSEC_CMD_GET_TXSC, | 2638 | .cmd = MACSEC_CMD_GET_TXSC, |
2639 | .dumpit = macsec_dump_txsc, | 2639 | .dumpit = macsec_dump_txsc, |
2640 | .policy = macsec_genl_policy, | ||
2641 | }, | 2640 | }, |
2642 | { | 2641 | { |
2643 | .cmd = MACSEC_CMD_ADD_RXSC, | 2642 | .cmd = MACSEC_CMD_ADD_RXSC, |
2644 | .doit = macsec_add_rxsc, | 2643 | .doit = macsec_add_rxsc, |
2645 | .policy = macsec_genl_policy, | ||
2646 | .flags = GENL_ADMIN_PERM, | 2644 | .flags = GENL_ADMIN_PERM, |
2647 | }, | 2645 | }, |
2648 | { | 2646 | { |
2649 | .cmd = MACSEC_CMD_DEL_RXSC, | 2647 | .cmd = MACSEC_CMD_DEL_RXSC, |
2650 | .doit = macsec_del_rxsc, | 2648 | .doit = macsec_del_rxsc, |
2651 | .policy = macsec_genl_policy, | ||
2652 | .flags = GENL_ADMIN_PERM, | 2649 | .flags = GENL_ADMIN_PERM, |
2653 | }, | 2650 | }, |
2654 | { | 2651 | { |
2655 | .cmd = MACSEC_CMD_UPD_RXSC, | 2652 | .cmd = MACSEC_CMD_UPD_RXSC, |
2656 | .doit = macsec_upd_rxsc, | 2653 | .doit = macsec_upd_rxsc, |
2657 | .policy = macsec_genl_policy, | ||
2658 | .flags = GENL_ADMIN_PERM, | 2654 | .flags = GENL_ADMIN_PERM, |
2659 | }, | 2655 | }, |
2660 | { | 2656 | { |
2661 | .cmd = MACSEC_CMD_ADD_TXSA, | 2657 | .cmd = MACSEC_CMD_ADD_TXSA, |
2662 | .doit = macsec_add_txsa, | 2658 | .doit = macsec_add_txsa, |
2663 | .policy = macsec_genl_policy, | ||
2664 | .flags = GENL_ADMIN_PERM, | 2659 | .flags = GENL_ADMIN_PERM, |
2665 | }, | 2660 | }, |
2666 | { | 2661 | { |
2667 | .cmd = MACSEC_CMD_DEL_TXSA, | 2662 | .cmd = MACSEC_CMD_DEL_TXSA, |
2668 | .doit = macsec_del_txsa, | 2663 | .doit = macsec_del_txsa, |
2669 | .policy = macsec_genl_policy, | ||
2670 | .flags = GENL_ADMIN_PERM, | 2664 | .flags = GENL_ADMIN_PERM, |
2671 | }, | 2665 | }, |
2672 | { | 2666 | { |
2673 | .cmd = MACSEC_CMD_UPD_TXSA, | 2667 | .cmd = MACSEC_CMD_UPD_TXSA, |
2674 | .doit = macsec_upd_txsa, | 2668 | .doit = macsec_upd_txsa, |
2675 | .policy = macsec_genl_policy, | ||
2676 | .flags = GENL_ADMIN_PERM, | 2669 | .flags = GENL_ADMIN_PERM, |
2677 | }, | 2670 | }, |
2678 | { | 2671 | { |
2679 | .cmd = MACSEC_CMD_ADD_RXSA, | 2672 | .cmd = MACSEC_CMD_ADD_RXSA, |
2680 | .doit = macsec_add_rxsa, | 2673 | .doit = macsec_add_rxsa, |
2681 | .policy = macsec_genl_policy, | ||
2682 | .flags = GENL_ADMIN_PERM, | 2674 | .flags = GENL_ADMIN_PERM, |
2683 | }, | 2675 | }, |
2684 | { | 2676 | { |
2685 | .cmd = MACSEC_CMD_DEL_RXSA, | 2677 | .cmd = MACSEC_CMD_DEL_RXSA, |
2686 | .doit = macsec_del_rxsa, | 2678 | .doit = macsec_del_rxsa, |
2687 | .policy = macsec_genl_policy, | ||
2688 | .flags = GENL_ADMIN_PERM, | 2679 | .flags = GENL_ADMIN_PERM, |
2689 | }, | 2680 | }, |
2690 | { | 2681 | { |
2691 | .cmd = MACSEC_CMD_UPD_RXSA, | 2682 | .cmd = MACSEC_CMD_UPD_RXSA, |
2692 | .doit = macsec_upd_rxsa, | 2683 | .doit = macsec_upd_rxsa, |
2693 | .policy = macsec_genl_policy, | ||
2694 | .flags = GENL_ADMIN_PERM, | 2684 | .flags = GENL_ADMIN_PERM, |
2695 | }, | 2685 | }, |
2696 | }; | 2686 | }; |
@@ -2700,6 +2690,7 @@ static struct genl_family macsec_fam __ro_after_init = { | |||
2700 | .hdrsize = 0, | 2690 | .hdrsize = 0, |
2701 | .version = MACSEC_GENL_VERSION, | 2691 | .version = MACSEC_GENL_VERSION, |
2702 | .maxattr = MACSEC_ATTR_MAX, | 2692 | .maxattr = MACSEC_ATTR_MAX, |
2693 | .policy = macsec_genl_policy, | ||
2703 | .netnsok = true, | 2694 | .netnsok = true, |
2704 | .module = THIS_MODULE, | 2695 | .module = THIS_MODULE, |
2705 | .ops = macsec_genl_ops, | 2696 | .ops = macsec_genl_ops, |
diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c index ee950aa48e3b..6ad74f898832 100644 --- a/drivers/net/team/team.c +++ b/drivers/net/team/team.c | |||
@@ -2725,24 +2725,20 @@ static const struct genl_ops team_nl_ops[] = { | |||
2725 | { | 2725 | { |
2726 | .cmd = TEAM_CMD_NOOP, | 2726 | .cmd = TEAM_CMD_NOOP, |
2727 | .doit = team_nl_cmd_noop, | 2727 | .doit = team_nl_cmd_noop, |
2728 | .policy = team_nl_policy, | ||
2729 | }, | 2728 | }, |
2730 | { | 2729 | { |
2731 | .cmd = TEAM_CMD_OPTIONS_SET, | 2730 | .cmd = TEAM_CMD_OPTIONS_SET, |
2732 | .doit = team_nl_cmd_options_set, | 2731 | .doit = team_nl_cmd_options_set, |
2733 | .policy = team_nl_policy, | ||
2734 | .flags = GENL_ADMIN_PERM, | 2732 | .flags = GENL_ADMIN_PERM, |
2735 | }, | 2733 | }, |
2736 | { | 2734 | { |
2737 | .cmd = TEAM_CMD_OPTIONS_GET, | 2735 | .cmd = TEAM_CMD_OPTIONS_GET, |
2738 | .doit = team_nl_cmd_options_get, | 2736 | .doit = team_nl_cmd_options_get, |
2739 | .policy = team_nl_policy, | ||
2740 | .flags = GENL_ADMIN_PERM, | 2737 | .flags = GENL_ADMIN_PERM, |
2741 | }, | 2738 | }, |
2742 | { | 2739 | { |
2743 | .cmd = TEAM_CMD_PORT_LIST_GET, | 2740 | .cmd = TEAM_CMD_PORT_LIST_GET, |
2744 | .doit = team_nl_cmd_port_list_get, | 2741 | .doit = team_nl_cmd_port_list_get, |
2745 | .policy = team_nl_policy, | ||
2746 | .flags = GENL_ADMIN_PERM, | 2742 | .flags = GENL_ADMIN_PERM, |
2747 | }, | 2743 | }, |
2748 | }; | 2744 | }; |
@@ -2755,6 +2751,7 @@ static struct genl_family team_nl_family __ro_after_init = { | |||
2755 | .name = TEAM_GENL_NAME, | 2751 | .name = TEAM_GENL_NAME, |
2756 | .version = TEAM_GENL_VERSION, | 2752 | .version = TEAM_GENL_VERSION, |
2757 | .maxattr = TEAM_ATTR_MAX, | 2753 | .maxattr = TEAM_ATTR_MAX, |
2754 | .policy = team_nl_policy, | ||
2758 | .netnsok = true, | 2755 | .netnsok = true, |
2759 | .module = THIS_MODULE, | 2756 | .module = THIS_MODULE, |
2760 | .ops = team_nl_ops, | 2757 | .ops = team_nl_ops, |
diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c index 0838af04d681..4cc7b222859c 100644 --- a/drivers/net/wireless/mac80211_hwsim.c +++ b/drivers/net/wireless/mac80211_hwsim.c | |||
@@ -3620,35 +3620,29 @@ done: | |||
3620 | static const struct genl_ops hwsim_ops[] = { | 3620 | static const struct genl_ops hwsim_ops[] = { |
3621 | { | 3621 | { |
3622 | .cmd = HWSIM_CMD_REGISTER, | 3622 | .cmd = HWSIM_CMD_REGISTER, |
3623 | .policy = hwsim_genl_policy, | ||
3624 | .doit = hwsim_register_received_nl, | 3623 | .doit = hwsim_register_received_nl, |
3625 | .flags = GENL_UNS_ADMIN_PERM, | 3624 | .flags = GENL_UNS_ADMIN_PERM, |
3626 | }, | 3625 | }, |
3627 | { | 3626 | { |
3628 | .cmd = HWSIM_CMD_FRAME, | 3627 | .cmd = HWSIM_CMD_FRAME, |
3629 | .policy = hwsim_genl_policy, | ||
3630 | .doit = hwsim_cloned_frame_received_nl, | 3628 | .doit = hwsim_cloned_frame_received_nl, |
3631 | }, | 3629 | }, |
3632 | { | 3630 | { |
3633 | .cmd = HWSIM_CMD_TX_INFO_FRAME, | 3631 | .cmd = HWSIM_CMD_TX_INFO_FRAME, |
3634 | .policy = hwsim_genl_policy, | ||
3635 | .doit = hwsim_tx_info_frame_received_nl, | 3632 | .doit = hwsim_tx_info_frame_received_nl, |
3636 | }, | 3633 | }, |
3637 | { | 3634 | { |
3638 | .cmd = HWSIM_CMD_NEW_RADIO, | 3635 | .cmd = HWSIM_CMD_NEW_RADIO, |
3639 | .policy = hwsim_genl_policy, | ||
3640 | .doit = hwsim_new_radio_nl, | 3636 | .doit = hwsim_new_radio_nl, |
3641 | .flags = GENL_UNS_ADMIN_PERM, | 3637 | .flags = GENL_UNS_ADMIN_PERM, |
3642 | }, | 3638 | }, |
3643 | { | 3639 | { |
3644 | .cmd = HWSIM_CMD_DEL_RADIO, | 3640 | .cmd = HWSIM_CMD_DEL_RADIO, |
3645 | .policy = hwsim_genl_policy, | ||
3646 | .doit = hwsim_del_radio_nl, | 3641 | .doit = hwsim_del_radio_nl, |
3647 | .flags = GENL_UNS_ADMIN_PERM, | 3642 | .flags = GENL_UNS_ADMIN_PERM, |
3648 | }, | 3643 | }, |
3649 | { | 3644 | { |
3650 | .cmd = HWSIM_CMD_GET_RADIO, | 3645 | .cmd = HWSIM_CMD_GET_RADIO, |
3651 | .policy = hwsim_genl_policy, | ||
3652 | .doit = hwsim_get_radio_nl, | 3646 | .doit = hwsim_get_radio_nl, |
3653 | .dumpit = hwsim_dump_radio_nl, | 3647 | .dumpit = hwsim_dump_radio_nl, |
3654 | }, | 3648 | }, |
@@ -3658,6 +3652,7 @@ static struct genl_family hwsim_genl_family __ro_after_init = { | |||
3658 | .name = "MAC80211_HWSIM", | 3652 | .name = "MAC80211_HWSIM", |
3659 | .version = 1, | 3653 | .version = 1, |
3660 | .maxattr = HWSIM_ATTR_MAX, | 3654 | .maxattr = HWSIM_ATTR_MAX, |
3655 | .policy = hwsim_genl_policy, | ||
3661 | .netnsok = true, | 3656 | .netnsok = true, |
3662 | .module = THIS_MODULE, | 3657 | .module = THIS_MODULE, |
3663 | .ops = hwsim_ops, | 3658 | .ops = hwsim_ops, |
diff --git a/drivers/target/target_core_user.c b/drivers/target/target_core_user.c index 5831e0eecea1..845b32eaff36 100644 --- a/drivers/target/target_core_user.c +++ b/drivers/target/target_core_user.c | |||
@@ -442,25 +442,21 @@ static const struct genl_ops tcmu_genl_ops[] = { | |||
442 | { | 442 | { |
443 | .cmd = TCMU_CMD_SET_FEATURES, | 443 | .cmd = TCMU_CMD_SET_FEATURES, |
444 | .flags = GENL_ADMIN_PERM, | 444 | .flags = GENL_ADMIN_PERM, |
445 | .policy = tcmu_attr_policy, | ||
446 | .doit = tcmu_genl_set_features, | 445 | .doit = tcmu_genl_set_features, |
447 | }, | 446 | }, |
448 | { | 447 | { |
449 | .cmd = TCMU_CMD_ADDED_DEVICE_DONE, | 448 | .cmd = TCMU_CMD_ADDED_DEVICE_DONE, |
450 | .flags = GENL_ADMIN_PERM, | 449 | .flags = GENL_ADMIN_PERM, |
451 | .policy = tcmu_attr_policy, | ||
452 | .doit = tcmu_genl_add_dev_done, | 450 | .doit = tcmu_genl_add_dev_done, |
453 | }, | 451 | }, |
454 | { | 452 | { |
455 | .cmd = TCMU_CMD_REMOVED_DEVICE_DONE, | 453 | .cmd = TCMU_CMD_REMOVED_DEVICE_DONE, |
456 | .flags = GENL_ADMIN_PERM, | 454 | .flags = GENL_ADMIN_PERM, |
457 | .policy = tcmu_attr_policy, | ||
458 | .doit = tcmu_genl_rm_dev_done, | 455 | .doit = tcmu_genl_rm_dev_done, |
459 | }, | 456 | }, |
460 | { | 457 | { |
461 | .cmd = TCMU_CMD_RECONFIG_DEVICE_DONE, | 458 | .cmd = TCMU_CMD_RECONFIG_DEVICE_DONE, |
462 | .flags = GENL_ADMIN_PERM, | 459 | .flags = GENL_ADMIN_PERM, |
463 | .policy = tcmu_attr_policy, | ||
464 | .doit = tcmu_genl_reconfig_dev_done, | 460 | .doit = tcmu_genl_reconfig_dev_done, |
465 | }, | 461 | }, |
466 | }; | 462 | }; |
@@ -472,6 +468,7 @@ static struct genl_family tcmu_genl_family __ro_after_init = { | |||
472 | .name = "TCM-USER", | 468 | .name = "TCM-USER", |
473 | .version = 2, | 469 | .version = 2, |
474 | .maxattr = TCMU_ATTR_MAX, | 470 | .maxattr = TCMU_ATTR_MAX, |
471 | .policy = tcmu_attr_policy, | ||
475 | .mcgrps = tcmu_mcgrps, | 472 | .mcgrps = tcmu_mcgrps, |
476 | .n_mcgrps = ARRAY_SIZE(tcmu_mcgrps), | 473 | .n_mcgrps = ARRAY_SIZE(tcmu_mcgrps), |
477 | .netnsok = true, | 474 | .netnsok = true, |
diff --git a/include/linux/genl_magic_func.h b/include/linux/genl_magic_func.h index 83f81ac53282..6cb82301d8e9 100644 --- a/include/linux/genl_magic_func.h +++ b/include/linux/genl_magic_func.h | |||
@@ -233,7 +233,6 @@ const char *CONCAT_(GENL_MAGIC_FAMILY, _genl_cmd_to_str)(__u8 cmd) | |||
233 | { \ | 233 | { \ |
234 | handler \ | 234 | handler \ |
235 | .cmd = op_name, \ | 235 | .cmd = op_name, \ |
236 | .policy = CONCAT_(GENL_MAGIC_FAMILY, _tla_nl_policy), \ | ||
237 | }, | 236 | }, |
238 | 237 | ||
239 | #define ZZZ_genl_ops CONCAT_(GENL_MAGIC_FAMILY, _genl_ops) | 238 | #define ZZZ_genl_ops CONCAT_(GENL_MAGIC_FAMILY, _genl_ops) |
@@ -290,7 +289,8 @@ static struct genl_family ZZZ_genl_family __ro_after_init = { | |||
290 | #ifdef GENL_MAGIC_FAMILY_HDRSZ | 289 | #ifdef GENL_MAGIC_FAMILY_HDRSZ |
291 | .hdrsize = NLA_ALIGN(GENL_MAGIC_FAMILY_HDRSZ), | 290 | .hdrsize = NLA_ALIGN(GENL_MAGIC_FAMILY_HDRSZ), |
292 | #endif | 291 | #endif |
293 | .maxattr = ARRAY_SIZE(drbd_tla_nl_policy)-1, | 292 | .maxattr = ARRAY_SIZE(CONCAT_(GENL_MAGIC_FAMILY, _tla_nl_policy))-1, |
293 | .policy = CONCAT_(GENL_MAGIC_FAMILY, _tla_nl_policy), | ||
294 | .ops = ZZZ_genl_ops, | 294 | .ops = ZZZ_genl_ops, |
295 | .n_ops = ARRAY_SIZE(ZZZ_genl_ops), | 295 | .n_ops = ARRAY_SIZE(ZZZ_genl_ops), |
296 | .mcgrps = ZZZ_genl_mcgrps, | 296 | .mcgrps = ZZZ_genl_mcgrps, |
diff --git a/include/net/genetlink.h b/include/net/genetlink.h index aa2e5888f18d..6850c7b1a3a6 100644 --- a/include/net/genetlink.h +++ b/include/net/genetlink.h | |||
@@ -26,6 +26,7 @@ struct genl_info; | |||
26 | * @name: name of family | 26 | * @name: name of family |
27 | * @version: protocol version | 27 | * @version: protocol version |
28 | * @maxattr: maximum number of attributes supported | 28 | * @maxattr: maximum number of attributes supported |
29 | * @policy: netlink policy | ||
29 | * @netnsok: set to true if the family can handle network | 30 | * @netnsok: set to true if the family can handle network |
30 | * namespaces and should be presented in all of them | 31 | * namespaces and should be presented in all of them |
31 | * @parallel_ops: operations can be called in parallel and aren't | 32 | * @parallel_ops: operations can be called in parallel and aren't |
@@ -56,6 +57,7 @@ struct genl_family { | |||
56 | unsigned int maxattr; | 57 | unsigned int maxattr; |
57 | bool netnsok; | 58 | bool netnsok; |
58 | bool parallel_ops; | 59 | bool parallel_ops; |
60 | const struct nla_policy *policy; | ||
59 | int (*pre_doit)(const struct genl_ops *ops, | 61 | int (*pre_doit)(const struct genl_ops *ops, |
60 | struct sk_buff *skb, | 62 | struct sk_buff *skb, |
61 | struct genl_info *info); | 63 | struct genl_info *info); |
@@ -124,14 +126,12 @@ static inline int genl_err_attr(struct genl_info *info, int err, | |||
124 | * @cmd: command identifier | 126 | * @cmd: command identifier |
125 | * @internal_flags: flags used by the family | 127 | * @internal_flags: flags used by the family |
126 | * @flags: flags | 128 | * @flags: flags |
127 | * @policy: attribute validation policy | ||
128 | * @doit: standard command callback | 129 | * @doit: standard command callback |
129 | * @start: start callback for dumps | 130 | * @start: start callback for dumps |
130 | * @dumpit: callback for dumpers | 131 | * @dumpit: callback for dumpers |
131 | * @done: completion callback for dumps | 132 | * @done: completion callback for dumps |
132 | */ | 133 | */ |
133 | struct genl_ops { | 134 | struct genl_ops { |
134 | const struct nla_policy *policy; | ||
135 | int (*doit)(struct sk_buff *skb, | 135 | int (*doit)(struct sk_buff *skb, |
136 | struct genl_info *info); | 136 | struct genl_info *info); |
137 | int (*start)(struct netlink_callback *cb); | 137 | int (*start)(struct netlink_callback *cb); |
diff --git a/kernel/taskstats.c b/kernel/taskstats.c index 4e62a4a8fa91..1b942a7caf26 100644 --- a/kernel/taskstats.c +++ b/kernel/taskstats.c | |||
@@ -650,16 +650,37 @@ static const struct genl_ops taskstats_ops[] = { | |||
650 | { | 650 | { |
651 | .cmd = TASKSTATS_CMD_GET, | 651 | .cmd = TASKSTATS_CMD_GET, |
652 | .doit = taskstats_user_cmd, | 652 | .doit = taskstats_user_cmd, |
653 | .policy = taskstats_cmd_get_policy, | 653 | /* policy enforced later */ |
654 | .flags = GENL_ADMIN_PERM, | 654 | .flags = GENL_ADMIN_PERM | GENL_CMD_CAP_HASPOL, |
655 | }, | 655 | }, |
656 | { | 656 | { |
657 | .cmd = CGROUPSTATS_CMD_GET, | 657 | .cmd = CGROUPSTATS_CMD_GET, |
658 | .doit = cgroupstats_user_cmd, | 658 | .doit = cgroupstats_user_cmd, |
659 | .policy = cgroupstats_cmd_get_policy, | 659 | /* policy enforced later */ |
660 | .flags = GENL_CMD_CAP_HASPOL, | ||
660 | }, | 661 | }, |
661 | }; | 662 | }; |
662 | 663 | ||
664 | static int taskstats_pre_doit(const struct genl_ops *ops, struct sk_buff *skb, | ||
665 | struct genl_info *info) | ||
666 | { | ||
667 | const struct nla_policy *policy = NULL; | ||
668 | |||
669 | switch (ops->cmd) { | ||
670 | case TASKSTATS_CMD_GET: | ||
671 | policy = taskstats_cmd_get_policy; | ||
672 | break; | ||
673 | case CGROUPSTATS_CMD_GET: | ||
674 | policy = cgroupstats_cmd_get_policy; | ||
675 | break; | ||
676 | default: | ||
677 | return -EINVAL; | ||
678 | } | ||
679 | |||
680 | return nlmsg_validate(info->nlhdr, GENL_HDRLEN, TASKSTATS_CMD_ATTR_MAX, | ||
681 | policy, info->extack); | ||
682 | } | ||
683 | |||
663 | static struct genl_family family __ro_after_init = { | 684 | static struct genl_family family __ro_after_init = { |
664 | .name = TASKSTATS_GENL_NAME, | 685 | .name = TASKSTATS_GENL_NAME, |
665 | .version = TASKSTATS_GENL_VERSION, | 686 | .version = TASKSTATS_GENL_VERSION, |
@@ -667,6 +688,7 @@ static struct genl_family family __ro_after_init = { | |||
667 | .module = THIS_MODULE, | 688 | .module = THIS_MODULE, |
668 | .ops = taskstats_ops, | 689 | .ops = taskstats_ops, |
669 | .n_ops = ARRAY_SIZE(taskstats_ops), | 690 | .n_ops = ARRAY_SIZE(taskstats_ops), |
691 | .pre_doit = taskstats_pre_doit, | ||
670 | }; | 692 | }; |
671 | 693 | ||
672 | /* Needed early in initialization */ | 694 | /* Needed early in initialization */ |
diff --git a/net/batman-adv/netlink.c b/net/batman-adv/netlink.c index 67a58da2e6a0..d3033a3d2a63 100644 --- a/net/batman-adv/netlink.c +++ b/net/batman-adv/netlink.c | |||
@@ -1345,34 +1345,29 @@ static const struct genl_ops batadv_netlink_ops[] = { | |||
1345 | { | 1345 | { |
1346 | .cmd = BATADV_CMD_GET_MESH, | 1346 | .cmd = BATADV_CMD_GET_MESH, |
1347 | /* can be retrieved by unprivileged users */ | 1347 | /* can be retrieved by unprivileged users */ |
1348 | .policy = batadv_netlink_policy, | ||
1349 | .doit = batadv_netlink_get_mesh, | 1348 | .doit = batadv_netlink_get_mesh, |
1350 | .internal_flags = BATADV_FLAG_NEED_MESH, | 1349 | .internal_flags = BATADV_FLAG_NEED_MESH, |
1351 | }, | 1350 | }, |
1352 | { | 1351 | { |
1353 | .cmd = BATADV_CMD_TP_METER, | 1352 | .cmd = BATADV_CMD_TP_METER, |
1354 | .flags = GENL_ADMIN_PERM, | 1353 | .flags = GENL_ADMIN_PERM, |
1355 | .policy = batadv_netlink_policy, | ||
1356 | .doit = batadv_netlink_tp_meter_start, | 1354 | .doit = batadv_netlink_tp_meter_start, |
1357 | .internal_flags = BATADV_FLAG_NEED_MESH, | 1355 | .internal_flags = BATADV_FLAG_NEED_MESH, |
1358 | }, | 1356 | }, |
1359 | { | 1357 | { |
1360 | .cmd = BATADV_CMD_TP_METER_CANCEL, | 1358 | .cmd = BATADV_CMD_TP_METER_CANCEL, |
1361 | .flags = GENL_ADMIN_PERM, | 1359 | .flags = GENL_ADMIN_PERM, |
1362 | .policy = batadv_netlink_policy, | ||
1363 | .doit = batadv_netlink_tp_meter_cancel, | 1360 | .doit = batadv_netlink_tp_meter_cancel, |
1364 | .internal_flags = BATADV_FLAG_NEED_MESH, | 1361 | .internal_flags = BATADV_FLAG_NEED_MESH, |
1365 | }, | 1362 | }, |
1366 | { | 1363 | { |
1367 | .cmd = BATADV_CMD_GET_ROUTING_ALGOS, | 1364 | .cmd = BATADV_CMD_GET_ROUTING_ALGOS, |
1368 | .flags = GENL_ADMIN_PERM, | 1365 | .flags = GENL_ADMIN_PERM, |
1369 | .policy = batadv_netlink_policy, | ||
1370 | .dumpit = batadv_algo_dump, | 1366 | .dumpit = batadv_algo_dump, |
1371 | }, | 1367 | }, |
1372 | { | 1368 | { |
1373 | .cmd = BATADV_CMD_GET_HARDIF, | 1369 | .cmd = BATADV_CMD_GET_HARDIF, |
1374 | /* can be retrieved by unprivileged users */ | 1370 | /* can be retrieved by unprivileged users */ |
1375 | .policy = batadv_netlink_policy, | ||
1376 | .dumpit = batadv_netlink_dump_hardif, | 1371 | .dumpit = batadv_netlink_dump_hardif, |
1377 | .doit = batadv_netlink_get_hardif, | 1372 | .doit = batadv_netlink_get_hardif, |
1378 | .internal_flags = BATADV_FLAG_NEED_MESH | | 1373 | .internal_flags = BATADV_FLAG_NEED_MESH | |
@@ -1381,68 +1376,57 @@ static const struct genl_ops batadv_netlink_ops[] = { | |||
1381 | { | 1376 | { |
1382 | .cmd = BATADV_CMD_GET_TRANSTABLE_LOCAL, | 1377 | .cmd = BATADV_CMD_GET_TRANSTABLE_LOCAL, |
1383 | .flags = GENL_ADMIN_PERM, | 1378 | .flags = GENL_ADMIN_PERM, |
1384 | .policy = batadv_netlink_policy, | ||
1385 | .dumpit = batadv_tt_local_dump, | 1379 | .dumpit = batadv_tt_local_dump, |
1386 | }, | 1380 | }, |
1387 | { | 1381 | { |
1388 | .cmd = BATADV_CMD_GET_TRANSTABLE_GLOBAL, | 1382 | .cmd = BATADV_CMD_GET_TRANSTABLE_GLOBAL, |
1389 | .flags = GENL_ADMIN_PERM, | 1383 | .flags = GENL_ADMIN_PERM, |
1390 | .policy = batadv_netlink_policy, | ||
1391 | .dumpit = batadv_tt_global_dump, | 1384 | .dumpit = batadv_tt_global_dump, |
1392 | }, | 1385 | }, |
1393 | { | 1386 | { |
1394 | .cmd = BATADV_CMD_GET_ORIGINATORS, | 1387 | .cmd = BATADV_CMD_GET_ORIGINATORS, |
1395 | .flags = GENL_ADMIN_PERM, | 1388 | .flags = GENL_ADMIN_PERM, |
1396 | .policy = batadv_netlink_policy, | ||
1397 | .dumpit = batadv_orig_dump, | 1389 | .dumpit = batadv_orig_dump, |
1398 | }, | 1390 | }, |
1399 | { | 1391 | { |
1400 | .cmd = BATADV_CMD_GET_NEIGHBORS, | 1392 | .cmd = BATADV_CMD_GET_NEIGHBORS, |
1401 | .flags = GENL_ADMIN_PERM, | 1393 | .flags = GENL_ADMIN_PERM, |
1402 | .policy = batadv_netlink_policy, | ||
1403 | .dumpit = batadv_hardif_neigh_dump, | 1394 | .dumpit = batadv_hardif_neigh_dump, |
1404 | }, | 1395 | }, |
1405 | { | 1396 | { |
1406 | .cmd = BATADV_CMD_GET_GATEWAYS, | 1397 | .cmd = BATADV_CMD_GET_GATEWAYS, |
1407 | .flags = GENL_ADMIN_PERM, | 1398 | .flags = GENL_ADMIN_PERM, |
1408 | .policy = batadv_netlink_policy, | ||
1409 | .dumpit = batadv_gw_dump, | 1399 | .dumpit = batadv_gw_dump, |
1410 | }, | 1400 | }, |
1411 | { | 1401 | { |
1412 | .cmd = BATADV_CMD_GET_BLA_CLAIM, | 1402 | .cmd = BATADV_CMD_GET_BLA_CLAIM, |
1413 | .flags = GENL_ADMIN_PERM, | 1403 | .flags = GENL_ADMIN_PERM, |
1414 | .policy = batadv_netlink_policy, | ||
1415 | .dumpit = batadv_bla_claim_dump, | 1404 | .dumpit = batadv_bla_claim_dump, |
1416 | }, | 1405 | }, |
1417 | { | 1406 | { |
1418 | .cmd = BATADV_CMD_GET_BLA_BACKBONE, | 1407 | .cmd = BATADV_CMD_GET_BLA_BACKBONE, |
1419 | .flags = GENL_ADMIN_PERM, | 1408 | .flags = GENL_ADMIN_PERM, |
1420 | .policy = batadv_netlink_policy, | ||
1421 | .dumpit = batadv_bla_backbone_dump, | 1409 | .dumpit = batadv_bla_backbone_dump, |
1422 | }, | 1410 | }, |
1423 | { | 1411 | { |
1424 | .cmd = BATADV_CMD_GET_DAT_CACHE, | 1412 | .cmd = BATADV_CMD_GET_DAT_CACHE, |
1425 | .flags = GENL_ADMIN_PERM, | 1413 | .flags = GENL_ADMIN_PERM, |
1426 | .policy = batadv_netlink_policy, | ||
1427 | .dumpit = batadv_dat_cache_dump, | 1414 | .dumpit = batadv_dat_cache_dump, |
1428 | }, | 1415 | }, |
1429 | { | 1416 | { |
1430 | .cmd = BATADV_CMD_GET_MCAST_FLAGS, | 1417 | .cmd = BATADV_CMD_GET_MCAST_FLAGS, |
1431 | .flags = GENL_ADMIN_PERM, | 1418 | .flags = GENL_ADMIN_PERM, |
1432 | .policy = batadv_netlink_policy, | ||
1433 | .dumpit = batadv_mcast_flags_dump, | 1419 | .dumpit = batadv_mcast_flags_dump, |
1434 | }, | 1420 | }, |
1435 | { | 1421 | { |
1436 | .cmd = BATADV_CMD_SET_MESH, | 1422 | .cmd = BATADV_CMD_SET_MESH, |
1437 | .flags = GENL_ADMIN_PERM, | 1423 | .flags = GENL_ADMIN_PERM, |
1438 | .policy = batadv_netlink_policy, | ||
1439 | .doit = batadv_netlink_set_mesh, | 1424 | .doit = batadv_netlink_set_mesh, |
1440 | .internal_flags = BATADV_FLAG_NEED_MESH, | 1425 | .internal_flags = BATADV_FLAG_NEED_MESH, |
1441 | }, | 1426 | }, |
1442 | { | 1427 | { |
1443 | .cmd = BATADV_CMD_SET_HARDIF, | 1428 | .cmd = BATADV_CMD_SET_HARDIF, |
1444 | .flags = GENL_ADMIN_PERM, | 1429 | .flags = GENL_ADMIN_PERM, |
1445 | .policy = batadv_netlink_policy, | ||
1446 | .doit = batadv_netlink_set_hardif, | 1430 | .doit = batadv_netlink_set_hardif, |
1447 | .internal_flags = BATADV_FLAG_NEED_MESH | | 1431 | .internal_flags = BATADV_FLAG_NEED_MESH | |
1448 | BATADV_FLAG_NEED_HARDIF, | 1432 | BATADV_FLAG_NEED_HARDIF, |
@@ -1450,7 +1434,6 @@ static const struct genl_ops batadv_netlink_ops[] = { | |||
1450 | { | 1434 | { |
1451 | .cmd = BATADV_CMD_GET_VLAN, | 1435 | .cmd = BATADV_CMD_GET_VLAN, |
1452 | /* can be retrieved by unprivileged users */ | 1436 | /* can be retrieved by unprivileged users */ |
1453 | .policy = batadv_netlink_policy, | ||
1454 | .doit = batadv_netlink_get_vlan, | 1437 | .doit = batadv_netlink_get_vlan, |
1455 | .internal_flags = BATADV_FLAG_NEED_MESH | | 1438 | .internal_flags = BATADV_FLAG_NEED_MESH | |
1456 | BATADV_FLAG_NEED_VLAN, | 1439 | BATADV_FLAG_NEED_VLAN, |
@@ -1458,7 +1441,6 @@ static const struct genl_ops batadv_netlink_ops[] = { | |||
1458 | { | 1441 | { |
1459 | .cmd = BATADV_CMD_SET_VLAN, | 1442 | .cmd = BATADV_CMD_SET_VLAN, |
1460 | .flags = GENL_ADMIN_PERM, | 1443 | .flags = GENL_ADMIN_PERM, |
1461 | .policy = batadv_netlink_policy, | ||
1462 | .doit = batadv_netlink_set_vlan, | 1444 | .doit = batadv_netlink_set_vlan, |
1463 | .internal_flags = BATADV_FLAG_NEED_MESH | | 1445 | .internal_flags = BATADV_FLAG_NEED_MESH | |
1464 | BATADV_FLAG_NEED_VLAN, | 1446 | BATADV_FLAG_NEED_VLAN, |
@@ -1470,6 +1452,7 @@ struct genl_family batadv_netlink_family __ro_after_init = { | |||
1470 | .name = BATADV_NL_NAME, | 1452 | .name = BATADV_NL_NAME, |
1471 | .version = 1, | 1453 | .version = 1, |
1472 | .maxattr = BATADV_ATTR_MAX, | 1454 | .maxattr = BATADV_ATTR_MAX, |
1455 | .policy = batadv_netlink_policy, | ||
1473 | .netnsok = true, | 1456 | .netnsok = true, |
1474 | .pre_doit = batadv_pre_doit, | 1457 | .pre_doit = batadv_pre_doit, |
1475 | .post_doit = batadv_post_doit, | 1458 | .post_doit = batadv_post_doit, |
diff --git a/net/core/devlink.c b/net/core/devlink.c index 78e22cea4cc7..1a65cbf1ab05 100644 --- a/net/core/devlink.c +++ b/net/core/devlink.c | |||
@@ -3640,7 +3640,6 @@ static int devlink_nl_cmd_region_read_dumpit(struct sk_buff *skb, | |||
3640 | struct netlink_callback *cb) | 3640 | struct netlink_callback *cb) |
3641 | { | 3641 | { |
3642 | u64 ret_offset, start_offset, end_offset = 0; | 3642 | u64 ret_offset, start_offset, end_offset = 0; |
3643 | const struct genl_ops *ops = cb->data; | ||
3644 | struct devlink_region *region; | 3643 | struct devlink_region *region; |
3645 | struct nlattr *chunks_attr; | 3644 | struct nlattr *chunks_attr; |
3646 | const char *region_name; | 3645 | const char *region_name; |
@@ -3657,7 +3656,8 @@ static int devlink_nl_cmd_region_read_dumpit(struct sk_buff *skb, | |||
3657 | return -ENOMEM; | 3656 | return -ENOMEM; |
3658 | 3657 | ||
3659 | err = nlmsg_parse(cb->nlh, GENL_HDRLEN + devlink_nl_family.hdrsize, | 3658 | err = nlmsg_parse(cb->nlh, GENL_HDRLEN + devlink_nl_family.hdrsize, |
3660 | attrs, DEVLINK_ATTR_MAX, ops->policy, cb->extack); | 3659 | attrs, DEVLINK_ATTR_MAX, devlink_nl_family.policy, |
3660 | cb->extack); | ||
3661 | if (err) | 3661 | if (err) |
3662 | goto out_free; | 3662 | goto out_free; |
3663 | 3663 | ||
@@ -4923,7 +4923,6 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
4923 | .cmd = DEVLINK_CMD_GET, | 4923 | .cmd = DEVLINK_CMD_GET, |
4924 | .doit = devlink_nl_cmd_get_doit, | 4924 | .doit = devlink_nl_cmd_get_doit, |
4925 | .dumpit = devlink_nl_cmd_get_dumpit, | 4925 | .dumpit = devlink_nl_cmd_get_dumpit, |
4926 | .policy = devlink_nl_policy, | ||
4927 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 4926 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
4928 | /* can be retrieved by unprivileged users */ | 4927 | /* can be retrieved by unprivileged users */ |
4929 | }, | 4928 | }, |
@@ -4931,21 +4930,18 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
4931 | .cmd = DEVLINK_CMD_PORT_GET, | 4930 | .cmd = DEVLINK_CMD_PORT_GET, |
4932 | .doit = devlink_nl_cmd_port_get_doit, | 4931 | .doit = devlink_nl_cmd_port_get_doit, |
4933 | .dumpit = devlink_nl_cmd_port_get_dumpit, | 4932 | .dumpit = devlink_nl_cmd_port_get_dumpit, |
4934 | .policy = devlink_nl_policy, | ||
4935 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT, | 4933 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT, |
4936 | /* can be retrieved by unprivileged users */ | 4934 | /* can be retrieved by unprivileged users */ |
4937 | }, | 4935 | }, |
4938 | { | 4936 | { |
4939 | .cmd = DEVLINK_CMD_PORT_SET, | 4937 | .cmd = DEVLINK_CMD_PORT_SET, |
4940 | .doit = devlink_nl_cmd_port_set_doit, | 4938 | .doit = devlink_nl_cmd_port_set_doit, |
4941 | .policy = devlink_nl_policy, | ||
4942 | .flags = GENL_ADMIN_PERM, | 4939 | .flags = GENL_ADMIN_PERM, |
4943 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT, | 4940 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT, |
4944 | }, | 4941 | }, |
4945 | { | 4942 | { |
4946 | .cmd = DEVLINK_CMD_PORT_SPLIT, | 4943 | .cmd = DEVLINK_CMD_PORT_SPLIT, |
4947 | .doit = devlink_nl_cmd_port_split_doit, | 4944 | .doit = devlink_nl_cmd_port_split_doit, |
4948 | .policy = devlink_nl_policy, | ||
4949 | .flags = GENL_ADMIN_PERM, | 4945 | .flags = GENL_ADMIN_PERM, |
4950 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | | 4946 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | |
4951 | DEVLINK_NL_FLAG_NO_LOCK, | 4947 | DEVLINK_NL_FLAG_NO_LOCK, |
@@ -4953,7 +4949,6 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
4953 | { | 4949 | { |
4954 | .cmd = DEVLINK_CMD_PORT_UNSPLIT, | 4950 | .cmd = DEVLINK_CMD_PORT_UNSPLIT, |
4955 | .doit = devlink_nl_cmd_port_unsplit_doit, | 4951 | .doit = devlink_nl_cmd_port_unsplit_doit, |
4956 | .policy = devlink_nl_policy, | ||
4957 | .flags = GENL_ADMIN_PERM, | 4952 | .flags = GENL_ADMIN_PERM, |
4958 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | | 4953 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | |
4959 | DEVLINK_NL_FLAG_NO_LOCK, | 4954 | DEVLINK_NL_FLAG_NO_LOCK, |
@@ -4962,7 +4957,6 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
4962 | .cmd = DEVLINK_CMD_SB_GET, | 4957 | .cmd = DEVLINK_CMD_SB_GET, |
4963 | .doit = devlink_nl_cmd_sb_get_doit, | 4958 | .doit = devlink_nl_cmd_sb_get_doit, |
4964 | .dumpit = devlink_nl_cmd_sb_get_dumpit, | 4959 | .dumpit = devlink_nl_cmd_sb_get_dumpit, |
4965 | .policy = devlink_nl_policy, | ||
4966 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | | 4960 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | |
4967 | DEVLINK_NL_FLAG_NEED_SB, | 4961 | DEVLINK_NL_FLAG_NEED_SB, |
4968 | /* can be retrieved by unprivileged users */ | 4962 | /* can be retrieved by unprivileged users */ |
@@ -4971,7 +4965,6 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
4971 | .cmd = DEVLINK_CMD_SB_POOL_GET, | 4965 | .cmd = DEVLINK_CMD_SB_POOL_GET, |
4972 | .doit = devlink_nl_cmd_sb_pool_get_doit, | 4966 | .doit = devlink_nl_cmd_sb_pool_get_doit, |
4973 | .dumpit = devlink_nl_cmd_sb_pool_get_dumpit, | 4967 | .dumpit = devlink_nl_cmd_sb_pool_get_dumpit, |
4974 | .policy = devlink_nl_policy, | ||
4975 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | | 4968 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | |
4976 | DEVLINK_NL_FLAG_NEED_SB, | 4969 | DEVLINK_NL_FLAG_NEED_SB, |
4977 | /* can be retrieved by unprivileged users */ | 4970 | /* can be retrieved by unprivileged users */ |
@@ -4979,7 +4972,6 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
4979 | { | 4972 | { |
4980 | .cmd = DEVLINK_CMD_SB_POOL_SET, | 4973 | .cmd = DEVLINK_CMD_SB_POOL_SET, |
4981 | .doit = devlink_nl_cmd_sb_pool_set_doit, | 4974 | .doit = devlink_nl_cmd_sb_pool_set_doit, |
4982 | .policy = devlink_nl_policy, | ||
4983 | .flags = GENL_ADMIN_PERM, | 4975 | .flags = GENL_ADMIN_PERM, |
4984 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | | 4976 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | |
4985 | DEVLINK_NL_FLAG_NEED_SB, | 4977 | DEVLINK_NL_FLAG_NEED_SB, |
@@ -4988,7 +4980,6 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
4988 | .cmd = DEVLINK_CMD_SB_PORT_POOL_GET, | 4980 | .cmd = DEVLINK_CMD_SB_PORT_POOL_GET, |
4989 | .doit = devlink_nl_cmd_sb_port_pool_get_doit, | 4981 | .doit = devlink_nl_cmd_sb_port_pool_get_doit, |
4990 | .dumpit = devlink_nl_cmd_sb_port_pool_get_dumpit, | 4982 | .dumpit = devlink_nl_cmd_sb_port_pool_get_dumpit, |
4991 | .policy = devlink_nl_policy, | ||
4992 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT | | 4983 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT | |
4993 | DEVLINK_NL_FLAG_NEED_SB, | 4984 | DEVLINK_NL_FLAG_NEED_SB, |
4994 | /* can be retrieved by unprivileged users */ | 4985 | /* can be retrieved by unprivileged users */ |
@@ -4996,7 +4987,6 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
4996 | { | 4987 | { |
4997 | .cmd = DEVLINK_CMD_SB_PORT_POOL_SET, | 4988 | .cmd = DEVLINK_CMD_SB_PORT_POOL_SET, |
4998 | .doit = devlink_nl_cmd_sb_port_pool_set_doit, | 4989 | .doit = devlink_nl_cmd_sb_port_pool_set_doit, |
4999 | .policy = devlink_nl_policy, | ||
5000 | .flags = GENL_ADMIN_PERM, | 4990 | .flags = GENL_ADMIN_PERM, |
5001 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT | | 4991 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT | |
5002 | DEVLINK_NL_FLAG_NEED_SB, | 4992 | DEVLINK_NL_FLAG_NEED_SB, |
@@ -5005,7 +4995,6 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
5005 | .cmd = DEVLINK_CMD_SB_TC_POOL_BIND_GET, | 4995 | .cmd = DEVLINK_CMD_SB_TC_POOL_BIND_GET, |
5006 | .doit = devlink_nl_cmd_sb_tc_pool_bind_get_doit, | 4996 | .doit = devlink_nl_cmd_sb_tc_pool_bind_get_doit, |
5007 | .dumpit = devlink_nl_cmd_sb_tc_pool_bind_get_dumpit, | 4997 | .dumpit = devlink_nl_cmd_sb_tc_pool_bind_get_dumpit, |
5008 | .policy = devlink_nl_policy, | ||
5009 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT | | 4998 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT | |
5010 | DEVLINK_NL_FLAG_NEED_SB, | 4999 | DEVLINK_NL_FLAG_NEED_SB, |
5011 | /* can be retrieved by unprivileged users */ | 5000 | /* can be retrieved by unprivileged users */ |
@@ -5013,7 +5002,6 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
5013 | { | 5002 | { |
5014 | .cmd = DEVLINK_CMD_SB_TC_POOL_BIND_SET, | 5003 | .cmd = DEVLINK_CMD_SB_TC_POOL_BIND_SET, |
5015 | .doit = devlink_nl_cmd_sb_tc_pool_bind_set_doit, | 5004 | .doit = devlink_nl_cmd_sb_tc_pool_bind_set_doit, |
5016 | .policy = devlink_nl_policy, | ||
5017 | .flags = GENL_ADMIN_PERM, | 5005 | .flags = GENL_ADMIN_PERM, |
5018 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT | | 5006 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT | |
5019 | DEVLINK_NL_FLAG_NEED_SB, | 5007 | DEVLINK_NL_FLAG_NEED_SB, |
@@ -5021,7 +5009,6 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
5021 | { | 5009 | { |
5022 | .cmd = DEVLINK_CMD_SB_OCC_SNAPSHOT, | 5010 | .cmd = DEVLINK_CMD_SB_OCC_SNAPSHOT, |
5023 | .doit = devlink_nl_cmd_sb_occ_snapshot_doit, | 5011 | .doit = devlink_nl_cmd_sb_occ_snapshot_doit, |
5024 | .policy = devlink_nl_policy, | ||
5025 | .flags = GENL_ADMIN_PERM, | 5012 | .flags = GENL_ADMIN_PERM, |
5026 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | | 5013 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | |
5027 | DEVLINK_NL_FLAG_NEED_SB, | 5014 | DEVLINK_NL_FLAG_NEED_SB, |
@@ -5029,7 +5016,6 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
5029 | { | 5016 | { |
5030 | .cmd = DEVLINK_CMD_SB_OCC_MAX_CLEAR, | 5017 | .cmd = DEVLINK_CMD_SB_OCC_MAX_CLEAR, |
5031 | .doit = devlink_nl_cmd_sb_occ_max_clear_doit, | 5018 | .doit = devlink_nl_cmd_sb_occ_max_clear_doit, |
5032 | .policy = devlink_nl_policy, | ||
5033 | .flags = GENL_ADMIN_PERM, | 5019 | .flags = GENL_ADMIN_PERM, |
5034 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | | 5020 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | |
5035 | DEVLINK_NL_FLAG_NEED_SB, | 5021 | DEVLINK_NL_FLAG_NEED_SB, |
@@ -5037,14 +5023,12 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
5037 | { | 5023 | { |
5038 | .cmd = DEVLINK_CMD_ESWITCH_GET, | 5024 | .cmd = DEVLINK_CMD_ESWITCH_GET, |
5039 | .doit = devlink_nl_cmd_eswitch_get_doit, | 5025 | .doit = devlink_nl_cmd_eswitch_get_doit, |
5040 | .policy = devlink_nl_policy, | ||
5041 | .flags = GENL_ADMIN_PERM, | 5026 | .flags = GENL_ADMIN_PERM, |
5042 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5027 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5043 | }, | 5028 | }, |
5044 | { | 5029 | { |
5045 | .cmd = DEVLINK_CMD_ESWITCH_SET, | 5030 | .cmd = DEVLINK_CMD_ESWITCH_SET, |
5046 | .doit = devlink_nl_cmd_eswitch_set_doit, | 5031 | .doit = devlink_nl_cmd_eswitch_set_doit, |
5047 | .policy = devlink_nl_policy, | ||
5048 | .flags = GENL_ADMIN_PERM, | 5032 | .flags = GENL_ADMIN_PERM, |
5049 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | | 5033 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | |
5050 | DEVLINK_NL_FLAG_NO_LOCK, | 5034 | DEVLINK_NL_FLAG_NO_LOCK, |
@@ -5052,49 +5036,42 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
5052 | { | 5036 | { |
5053 | .cmd = DEVLINK_CMD_DPIPE_TABLE_GET, | 5037 | .cmd = DEVLINK_CMD_DPIPE_TABLE_GET, |
5054 | .doit = devlink_nl_cmd_dpipe_table_get, | 5038 | .doit = devlink_nl_cmd_dpipe_table_get, |
5055 | .policy = devlink_nl_policy, | ||
5056 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5039 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5057 | /* can be retrieved by unprivileged users */ | 5040 | /* can be retrieved by unprivileged users */ |
5058 | }, | 5041 | }, |
5059 | { | 5042 | { |
5060 | .cmd = DEVLINK_CMD_DPIPE_ENTRIES_GET, | 5043 | .cmd = DEVLINK_CMD_DPIPE_ENTRIES_GET, |
5061 | .doit = devlink_nl_cmd_dpipe_entries_get, | 5044 | .doit = devlink_nl_cmd_dpipe_entries_get, |
5062 | .policy = devlink_nl_policy, | ||
5063 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5045 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5064 | /* can be retrieved by unprivileged users */ | 5046 | /* can be retrieved by unprivileged users */ |
5065 | }, | 5047 | }, |
5066 | { | 5048 | { |
5067 | .cmd = DEVLINK_CMD_DPIPE_HEADERS_GET, | 5049 | .cmd = DEVLINK_CMD_DPIPE_HEADERS_GET, |
5068 | .doit = devlink_nl_cmd_dpipe_headers_get, | 5050 | .doit = devlink_nl_cmd_dpipe_headers_get, |
5069 | .policy = devlink_nl_policy, | ||
5070 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5051 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5071 | /* can be retrieved by unprivileged users */ | 5052 | /* can be retrieved by unprivileged users */ |
5072 | }, | 5053 | }, |
5073 | { | 5054 | { |
5074 | .cmd = DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET, | 5055 | .cmd = DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET, |
5075 | .doit = devlink_nl_cmd_dpipe_table_counters_set, | 5056 | .doit = devlink_nl_cmd_dpipe_table_counters_set, |
5076 | .policy = devlink_nl_policy, | ||
5077 | .flags = GENL_ADMIN_PERM, | 5057 | .flags = GENL_ADMIN_PERM, |
5078 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5058 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5079 | }, | 5059 | }, |
5080 | { | 5060 | { |
5081 | .cmd = DEVLINK_CMD_RESOURCE_SET, | 5061 | .cmd = DEVLINK_CMD_RESOURCE_SET, |
5082 | .doit = devlink_nl_cmd_resource_set, | 5062 | .doit = devlink_nl_cmd_resource_set, |
5083 | .policy = devlink_nl_policy, | ||
5084 | .flags = GENL_ADMIN_PERM, | 5063 | .flags = GENL_ADMIN_PERM, |
5085 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5064 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5086 | }, | 5065 | }, |
5087 | { | 5066 | { |
5088 | .cmd = DEVLINK_CMD_RESOURCE_DUMP, | 5067 | .cmd = DEVLINK_CMD_RESOURCE_DUMP, |
5089 | .doit = devlink_nl_cmd_resource_dump, | 5068 | .doit = devlink_nl_cmd_resource_dump, |
5090 | .policy = devlink_nl_policy, | ||
5091 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5069 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5092 | /* can be retrieved by unprivileged users */ | 5070 | /* can be retrieved by unprivileged users */ |
5093 | }, | 5071 | }, |
5094 | { | 5072 | { |
5095 | .cmd = DEVLINK_CMD_RELOAD, | 5073 | .cmd = DEVLINK_CMD_RELOAD, |
5096 | .doit = devlink_nl_cmd_reload, | 5074 | .doit = devlink_nl_cmd_reload, |
5097 | .policy = devlink_nl_policy, | ||
5098 | .flags = GENL_ADMIN_PERM, | 5075 | .flags = GENL_ADMIN_PERM, |
5099 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | | 5076 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | |
5100 | DEVLINK_NL_FLAG_NO_LOCK, | 5077 | DEVLINK_NL_FLAG_NO_LOCK, |
@@ -5103,14 +5080,12 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
5103 | .cmd = DEVLINK_CMD_PARAM_GET, | 5080 | .cmd = DEVLINK_CMD_PARAM_GET, |
5104 | .doit = devlink_nl_cmd_param_get_doit, | 5081 | .doit = devlink_nl_cmd_param_get_doit, |
5105 | .dumpit = devlink_nl_cmd_param_get_dumpit, | 5082 | .dumpit = devlink_nl_cmd_param_get_dumpit, |
5106 | .policy = devlink_nl_policy, | ||
5107 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5083 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5108 | /* can be retrieved by unprivileged users */ | 5084 | /* can be retrieved by unprivileged users */ |
5109 | }, | 5085 | }, |
5110 | { | 5086 | { |
5111 | .cmd = DEVLINK_CMD_PARAM_SET, | 5087 | .cmd = DEVLINK_CMD_PARAM_SET, |
5112 | .doit = devlink_nl_cmd_param_set_doit, | 5088 | .doit = devlink_nl_cmd_param_set_doit, |
5113 | .policy = devlink_nl_policy, | ||
5114 | .flags = GENL_ADMIN_PERM, | 5089 | .flags = GENL_ADMIN_PERM, |
5115 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5090 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5116 | }, | 5091 | }, |
@@ -5118,14 +5093,12 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
5118 | .cmd = DEVLINK_CMD_PORT_PARAM_GET, | 5093 | .cmd = DEVLINK_CMD_PORT_PARAM_GET, |
5119 | .doit = devlink_nl_cmd_port_param_get_doit, | 5094 | .doit = devlink_nl_cmd_port_param_get_doit, |
5120 | .dumpit = devlink_nl_cmd_port_param_get_dumpit, | 5095 | .dumpit = devlink_nl_cmd_port_param_get_dumpit, |
5121 | .policy = devlink_nl_policy, | ||
5122 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT, | 5096 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT, |
5123 | /* can be retrieved by unprivileged users */ | 5097 | /* can be retrieved by unprivileged users */ |
5124 | }, | 5098 | }, |
5125 | { | 5099 | { |
5126 | .cmd = DEVLINK_CMD_PORT_PARAM_SET, | 5100 | .cmd = DEVLINK_CMD_PORT_PARAM_SET, |
5127 | .doit = devlink_nl_cmd_port_param_set_doit, | 5101 | .doit = devlink_nl_cmd_port_param_set_doit, |
5128 | .policy = devlink_nl_policy, | ||
5129 | .flags = GENL_ADMIN_PERM, | 5102 | .flags = GENL_ADMIN_PERM, |
5130 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT, | 5103 | .internal_flags = DEVLINK_NL_FLAG_NEED_PORT, |
5131 | }, | 5104 | }, |
@@ -5133,21 +5106,18 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
5133 | .cmd = DEVLINK_CMD_REGION_GET, | 5106 | .cmd = DEVLINK_CMD_REGION_GET, |
5134 | .doit = devlink_nl_cmd_region_get_doit, | 5107 | .doit = devlink_nl_cmd_region_get_doit, |
5135 | .dumpit = devlink_nl_cmd_region_get_dumpit, | 5108 | .dumpit = devlink_nl_cmd_region_get_dumpit, |
5136 | .policy = devlink_nl_policy, | ||
5137 | .flags = GENL_ADMIN_PERM, | 5109 | .flags = GENL_ADMIN_PERM, |
5138 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5110 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5139 | }, | 5111 | }, |
5140 | { | 5112 | { |
5141 | .cmd = DEVLINK_CMD_REGION_DEL, | 5113 | .cmd = DEVLINK_CMD_REGION_DEL, |
5142 | .doit = devlink_nl_cmd_region_del, | 5114 | .doit = devlink_nl_cmd_region_del, |
5143 | .policy = devlink_nl_policy, | ||
5144 | .flags = GENL_ADMIN_PERM, | 5115 | .flags = GENL_ADMIN_PERM, |
5145 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5116 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5146 | }, | 5117 | }, |
5147 | { | 5118 | { |
5148 | .cmd = DEVLINK_CMD_REGION_READ, | 5119 | .cmd = DEVLINK_CMD_REGION_READ, |
5149 | .dumpit = devlink_nl_cmd_region_read_dumpit, | 5120 | .dumpit = devlink_nl_cmd_region_read_dumpit, |
5150 | .policy = devlink_nl_policy, | ||
5151 | .flags = GENL_ADMIN_PERM, | 5121 | .flags = GENL_ADMIN_PERM, |
5152 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5122 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5153 | }, | 5123 | }, |
@@ -5155,7 +5125,6 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
5155 | .cmd = DEVLINK_CMD_INFO_GET, | 5125 | .cmd = DEVLINK_CMD_INFO_GET, |
5156 | .doit = devlink_nl_cmd_info_get_doit, | 5126 | .doit = devlink_nl_cmd_info_get_doit, |
5157 | .dumpit = devlink_nl_cmd_info_get_dumpit, | 5127 | .dumpit = devlink_nl_cmd_info_get_dumpit, |
5158 | .policy = devlink_nl_policy, | ||
5159 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5128 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5160 | /* can be retrieved by unprivileged users */ | 5129 | /* can be retrieved by unprivileged users */ |
5161 | }, | 5130 | }, |
@@ -5163,35 +5132,30 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
5163 | .cmd = DEVLINK_CMD_HEALTH_REPORTER_GET, | 5132 | .cmd = DEVLINK_CMD_HEALTH_REPORTER_GET, |
5164 | .doit = devlink_nl_cmd_health_reporter_get_doit, | 5133 | .doit = devlink_nl_cmd_health_reporter_get_doit, |
5165 | .dumpit = devlink_nl_cmd_health_reporter_get_dumpit, | 5134 | .dumpit = devlink_nl_cmd_health_reporter_get_dumpit, |
5166 | .policy = devlink_nl_policy, | ||
5167 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5135 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5168 | /* can be retrieved by unprivileged users */ | 5136 | /* can be retrieved by unprivileged users */ |
5169 | }, | 5137 | }, |
5170 | { | 5138 | { |
5171 | .cmd = DEVLINK_CMD_HEALTH_REPORTER_SET, | 5139 | .cmd = DEVLINK_CMD_HEALTH_REPORTER_SET, |
5172 | .doit = devlink_nl_cmd_health_reporter_set_doit, | 5140 | .doit = devlink_nl_cmd_health_reporter_set_doit, |
5173 | .policy = devlink_nl_policy, | ||
5174 | .flags = GENL_ADMIN_PERM, | 5141 | .flags = GENL_ADMIN_PERM, |
5175 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5142 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5176 | }, | 5143 | }, |
5177 | { | 5144 | { |
5178 | .cmd = DEVLINK_CMD_HEALTH_REPORTER_RECOVER, | 5145 | .cmd = DEVLINK_CMD_HEALTH_REPORTER_RECOVER, |
5179 | .doit = devlink_nl_cmd_health_reporter_recover_doit, | 5146 | .doit = devlink_nl_cmd_health_reporter_recover_doit, |
5180 | .policy = devlink_nl_policy, | ||
5181 | .flags = GENL_ADMIN_PERM, | 5147 | .flags = GENL_ADMIN_PERM, |
5182 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5148 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5183 | }, | 5149 | }, |
5184 | { | 5150 | { |
5185 | .cmd = DEVLINK_CMD_HEALTH_REPORTER_DIAGNOSE, | 5151 | .cmd = DEVLINK_CMD_HEALTH_REPORTER_DIAGNOSE, |
5186 | .doit = devlink_nl_cmd_health_reporter_diagnose_doit, | 5152 | .doit = devlink_nl_cmd_health_reporter_diagnose_doit, |
5187 | .policy = devlink_nl_policy, | ||
5188 | .flags = GENL_ADMIN_PERM, | 5153 | .flags = GENL_ADMIN_PERM, |
5189 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5154 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5190 | }, | 5155 | }, |
5191 | { | 5156 | { |
5192 | .cmd = DEVLINK_CMD_HEALTH_REPORTER_DUMP_GET, | 5157 | .cmd = DEVLINK_CMD_HEALTH_REPORTER_DUMP_GET, |
5193 | .doit = devlink_nl_cmd_health_reporter_dump_get_doit, | 5158 | .doit = devlink_nl_cmd_health_reporter_dump_get_doit, |
5194 | .policy = devlink_nl_policy, | ||
5195 | .flags = GENL_ADMIN_PERM, | 5159 | .flags = GENL_ADMIN_PERM, |
5196 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | | 5160 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | |
5197 | DEVLINK_NL_FLAG_NO_LOCK, | 5161 | DEVLINK_NL_FLAG_NO_LOCK, |
@@ -5199,7 +5163,6 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
5199 | { | 5163 | { |
5200 | .cmd = DEVLINK_CMD_HEALTH_REPORTER_DUMP_CLEAR, | 5164 | .cmd = DEVLINK_CMD_HEALTH_REPORTER_DUMP_CLEAR, |
5201 | .doit = devlink_nl_cmd_health_reporter_dump_clear_doit, | 5165 | .doit = devlink_nl_cmd_health_reporter_dump_clear_doit, |
5202 | .policy = devlink_nl_policy, | ||
5203 | .flags = GENL_ADMIN_PERM, | 5166 | .flags = GENL_ADMIN_PERM, |
5204 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | | 5167 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | |
5205 | DEVLINK_NL_FLAG_NO_LOCK, | 5168 | DEVLINK_NL_FLAG_NO_LOCK, |
@@ -5207,7 +5170,6 @@ static const struct genl_ops devlink_nl_ops[] = { | |||
5207 | { | 5170 | { |
5208 | .cmd = DEVLINK_CMD_FLASH_UPDATE, | 5171 | .cmd = DEVLINK_CMD_FLASH_UPDATE, |
5209 | .doit = devlink_nl_cmd_flash_update, | 5172 | .doit = devlink_nl_cmd_flash_update, |
5210 | .policy = devlink_nl_policy, | ||
5211 | .flags = GENL_ADMIN_PERM, | 5173 | .flags = GENL_ADMIN_PERM, |
5212 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, | 5174 | .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, |
5213 | }, | 5175 | }, |
@@ -5217,6 +5179,7 @@ static struct genl_family devlink_nl_family __ro_after_init = { | |||
5217 | .name = DEVLINK_GENL_NAME, | 5179 | .name = DEVLINK_GENL_NAME, |
5218 | .version = DEVLINK_GENL_VERSION, | 5180 | .version = DEVLINK_GENL_VERSION, |
5219 | .maxattr = DEVLINK_ATTR_MAX, | 5181 | .maxattr = DEVLINK_ATTR_MAX, |
5182 | .policy = devlink_nl_policy, | ||
5220 | .netnsok = true, | 5183 | .netnsok = true, |
5221 | .pre_doit = devlink_nl_pre_doit, | 5184 | .pre_doit = devlink_nl_pre_doit, |
5222 | .post_doit = devlink_nl_post_doit, | 5185 | .post_doit = devlink_nl_post_doit, |
diff --git a/net/hsr/hsr_netlink.c b/net/hsr/hsr_netlink.c index b9cce0fd5696..bcc04d3e724f 100644 --- a/net/hsr/hsr_netlink.c +++ b/net/hsr/hsr_netlink.c | |||
@@ -449,14 +449,12 @@ static const struct genl_ops hsr_ops[] = { | |||
449 | { | 449 | { |
450 | .cmd = HSR_C_GET_NODE_STATUS, | 450 | .cmd = HSR_C_GET_NODE_STATUS, |
451 | .flags = 0, | 451 | .flags = 0, |
452 | .policy = hsr_genl_policy, | ||
453 | .doit = hsr_get_node_status, | 452 | .doit = hsr_get_node_status, |
454 | .dumpit = NULL, | 453 | .dumpit = NULL, |
455 | }, | 454 | }, |
456 | { | 455 | { |
457 | .cmd = HSR_C_GET_NODE_LIST, | 456 | .cmd = HSR_C_GET_NODE_LIST, |
458 | .flags = 0, | 457 | .flags = 0, |
459 | .policy = hsr_genl_policy, | ||
460 | .doit = hsr_get_node_list, | 458 | .doit = hsr_get_node_list, |
461 | .dumpit = NULL, | 459 | .dumpit = NULL, |
462 | }, | 460 | }, |
@@ -467,6 +465,7 @@ static struct genl_family hsr_genl_family __ro_after_init = { | |||
467 | .name = "HSR", | 465 | .name = "HSR", |
468 | .version = 1, | 466 | .version = 1, |
469 | .maxattr = HSR_A_MAX, | 467 | .maxattr = HSR_A_MAX, |
468 | .policy = hsr_genl_policy, | ||
470 | .module = THIS_MODULE, | 469 | .module = THIS_MODULE, |
471 | .ops = hsr_ops, | 470 | .ops = hsr_ops, |
472 | .n_ops = ARRAY_SIZE(hsr_ops), | 471 | .n_ops = ARRAY_SIZE(hsr_ops), |
diff --git a/net/ieee802154/ieee802154.h b/net/ieee802154/ieee802154.h index a5d7515b7f62..bc147bc8e36a 100644 --- a/net/ieee802154/ieee802154.h +++ b/net/ieee802154/ieee802154.h | |||
@@ -20,7 +20,6 @@ void ieee802154_nl_exit(void); | |||
20 | #define IEEE802154_OP(_cmd, _func) \ | 20 | #define IEEE802154_OP(_cmd, _func) \ |
21 | { \ | 21 | { \ |
22 | .cmd = _cmd, \ | 22 | .cmd = _cmd, \ |
23 | .policy = ieee802154_policy, \ | ||
24 | .doit = _func, \ | 23 | .doit = _func, \ |
25 | .dumpit = NULL, \ | 24 | .dumpit = NULL, \ |
26 | .flags = GENL_ADMIN_PERM, \ | 25 | .flags = GENL_ADMIN_PERM, \ |
@@ -29,7 +28,6 @@ void ieee802154_nl_exit(void); | |||
29 | #define IEEE802154_DUMP(_cmd, _func, _dump) \ | 28 | #define IEEE802154_DUMP(_cmd, _func, _dump) \ |
30 | { \ | 29 | { \ |
31 | .cmd = _cmd, \ | 30 | .cmd = _cmd, \ |
32 | .policy = ieee802154_policy, \ | ||
33 | .doit = _func, \ | 31 | .doit = _func, \ |
34 | .dumpit = _dump, \ | 32 | .dumpit = _dump, \ |
35 | } | 33 | } |
diff --git a/net/ieee802154/netlink.c b/net/ieee802154/netlink.c index 96636e3b7aa9..098d67439b6d 100644 --- a/net/ieee802154/netlink.c +++ b/net/ieee802154/netlink.c | |||
@@ -136,6 +136,7 @@ struct genl_family nl802154_family __ro_after_init = { | |||
136 | .name = IEEE802154_NL_NAME, | 136 | .name = IEEE802154_NL_NAME, |
137 | .version = 1, | 137 | .version = 1, |
138 | .maxattr = IEEE802154_ATTR_MAX, | 138 | .maxattr = IEEE802154_ATTR_MAX, |
139 | .policy = ieee802154_policy, | ||
139 | .module = THIS_MODULE, | 140 | .module = THIS_MODULE, |
140 | .ops = ieee802154_ops, | 141 | .ops = ieee802154_ops, |
141 | .n_ops = ARRAY_SIZE(ieee802154_ops), | 142 | .n_ops = ARRAY_SIZE(ieee802154_ops), |
diff --git a/net/ieee802154/nl802154.c b/net/ieee802154/nl802154.c index 99f6c254ea77..308370cfd668 100644 --- a/net/ieee802154/nl802154.c +++ b/net/ieee802154/nl802154.c | |||
@@ -2220,7 +2220,6 @@ static const struct genl_ops nl802154_ops[] = { | |||
2220 | .doit = nl802154_get_wpan_phy, | 2220 | .doit = nl802154_get_wpan_phy, |
2221 | .dumpit = nl802154_dump_wpan_phy, | 2221 | .dumpit = nl802154_dump_wpan_phy, |
2222 | .done = nl802154_dump_wpan_phy_done, | 2222 | .done = nl802154_dump_wpan_phy_done, |
2223 | .policy = nl802154_policy, | ||
2224 | /* can be retrieved by unprivileged users */ | 2223 | /* can be retrieved by unprivileged users */ |
2225 | .internal_flags = NL802154_FLAG_NEED_WPAN_PHY | | 2224 | .internal_flags = NL802154_FLAG_NEED_WPAN_PHY | |
2226 | NL802154_FLAG_NEED_RTNL, | 2225 | NL802154_FLAG_NEED_RTNL, |
@@ -2229,7 +2228,6 @@ static const struct genl_ops nl802154_ops[] = { | |||
2229 | .cmd = NL802154_CMD_GET_INTERFACE, | 2228 | .cmd = NL802154_CMD_GET_INTERFACE, |
2230 | .doit = nl802154_get_interface, | 2229 | .doit = nl802154_get_interface, |
2231 | .dumpit = nl802154_dump_interface, | 2230 | .dumpit = nl802154_dump_interface, |
2232 | .policy = nl802154_policy, | ||
2233 | /* can be retrieved by unprivileged users */ | 2231 | /* can be retrieved by unprivileged users */ |
2234 | .internal_flags = NL802154_FLAG_NEED_WPAN_DEV | | 2232 | .internal_flags = NL802154_FLAG_NEED_WPAN_DEV | |
2235 | NL802154_FLAG_NEED_RTNL, | 2233 | NL802154_FLAG_NEED_RTNL, |
@@ -2237,7 +2235,6 @@ static const struct genl_ops nl802154_ops[] = { | |||
2237 | { | 2235 | { |
2238 | .cmd = NL802154_CMD_NEW_INTERFACE, | 2236 | .cmd = NL802154_CMD_NEW_INTERFACE, |
2239 | .doit = nl802154_new_interface, | 2237 | .doit = nl802154_new_interface, |
2240 | .policy = nl802154_policy, | ||
2241 | .flags = GENL_ADMIN_PERM, | 2238 | .flags = GENL_ADMIN_PERM, |
2242 | .internal_flags = NL802154_FLAG_NEED_WPAN_PHY | | 2239 | .internal_flags = NL802154_FLAG_NEED_WPAN_PHY | |
2243 | NL802154_FLAG_NEED_RTNL, | 2240 | NL802154_FLAG_NEED_RTNL, |
@@ -2245,7 +2242,6 @@ static const struct genl_ops nl802154_ops[] = { | |||
2245 | { | 2242 | { |
2246 | .cmd = NL802154_CMD_DEL_INTERFACE, | 2243 | .cmd = NL802154_CMD_DEL_INTERFACE, |
2247 | .doit = nl802154_del_interface, | 2244 | .doit = nl802154_del_interface, |
2248 | .policy = nl802154_policy, | ||
2249 | .flags = GENL_ADMIN_PERM, | 2245 | .flags = GENL_ADMIN_PERM, |
2250 | .internal_flags = NL802154_FLAG_NEED_WPAN_DEV | | 2246 | .internal_flags = NL802154_FLAG_NEED_WPAN_DEV | |
2251 | NL802154_FLAG_NEED_RTNL, | 2247 | NL802154_FLAG_NEED_RTNL, |
@@ -2253,7 +2249,6 @@ static const struct genl_ops nl802154_ops[] = { | |||
2253 | { | 2249 | { |
2254 | .cmd = NL802154_CMD_SET_CHANNEL, | 2250 | .cmd = NL802154_CMD_SET_CHANNEL, |
2255 | .doit = nl802154_set_channel, | 2251 | .doit = nl802154_set_channel, |
2256 | .policy = nl802154_policy, | ||
2257 | .flags = GENL_ADMIN_PERM, | 2252 | .flags = GENL_ADMIN_PERM, |
2258 | .internal_flags = NL802154_FLAG_NEED_WPAN_PHY | | 2253 | .internal_flags = NL802154_FLAG_NEED_WPAN_PHY | |
2259 | NL802154_FLAG_NEED_RTNL, | 2254 | NL802154_FLAG_NEED_RTNL, |
@@ -2261,7 +2256,6 @@ static const struct genl_ops nl802154_ops[] = { | |||
2261 | { | 2256 | { |
2262 | .cmd = NL802154_CMD_SET_CCA_MODE, | 2257 | .cmd = NL802154_CMD_SET_CCA_MODE, |
2263 | .doit = nl802154_set_cca_mode, | 2258 | .doit = nl802154_set_cca_mode, |
2264 | .policy = nl802154_policy, | ||
2265 | .flags = GENL_ADMIN_PERM, | 2259 | .flags = GENL_ADMIN_PERM, |
2266 | .internal_flags = NL802154_FLAG_NEED_WPAN_PHY | | 2260 | .internal_flags = NL802154_FLAG_NEED_WPAN_PHY | |
2267 | NL802154_FLAG_NEED_RTNL, | 2261 | NL802154_FLAG_NEED_RTNL, |
@@ -2269,7 +2263,6 @@ static const struct genl_ops nl802154_ops[] = { | |||
2269 | { | 2263 | { |
2270 | .cmd = NL802154_CMD_SET_CCA_ED_LEVEL, | 2264 | .cmd = NL802154_CMD_SET_CCA_ED_LEVEL, |
2271 | .doit = nl802154_set_cca_ed_level, | 2265 | .doit = nl802154_set_cca_ed_level, |
2272 | .policy = nl802154_policy, | ||
2273 | .flags = GENL_ADMIN_PERM, | 2266 | .flags = GENL_ADMIN_PERM, |
2274 | .internal_flags = NL802154_FLAG_NEED_WPAN_PHY | | 2267 | .internal_flags = NL802154_FLAG_NEED_WPAN_PHY | |
2275 | NL802154_FLAG_NEED_RTNL, | 2268 | NL802154_FLAG_NEED_RTNL, |
@@ -2277,7 +2270,6 @@ static const struct genl_ops nl802154_ops[] = { | |||
2277 | { | 2270 | { |
2278 | .cmd = NL802154_CMD_SET_TX_POWER, | 2271 | .cmd = NL802154_CMD_SET_TX_POWER, |
2279 | .doit = nl802154_set_tx_power, | 2272 | .doit = nl802154_set_tx_power, |
2280 | .policy = nl802154_policy, | ||
2281 | .flags = GENL_ADMIN_PERM, | 2273 | .flags = GENL_ADMIN_PERM, |
2282 | .internal_flags = NL802154_FLAG_NEED_WPAN_PHY | | 2274 | .internal_flags = NL802154_FLAG_NEED_WPAN_PHY | |
2283 | NL802154_FLAG_NEED_RTNL, | 2275 | NL802154_FLAG_NEED_RTNL, |
@@ -2285,7 +2277,6 @@ static const struct genl_ops nl802154_ops[] = { | |||
2285 | { | 2277 | { |
2286 | .cmd = NL802154_CMD_SET_WPAN_PHY_NETNS, | 2278 | .cmd = NL802154_CMD_SET_WPAN_PHY_NETNS, |
2287 | .doit = nl802154_wpan_phy_netns, | 2279 | .doit = nl802154_wpan_phy_netns, |
2288 | .policy = nl802154_policy, | ||
2289 | .flags = GENL_ADMIN_PERM, | 2280 | .flags = GENL_ADMIN_PERM, |
2290 | .internal_flags = NL802154_FLAG_NEED_WPAN_PHY | | 2281 | .internal_flags = NL802154_FLAG_NEED_WPAN_PHY | |
2291 | NL802154_FLAG_NEED_RTNL, | 2282 | NL802154_FLAG_NEED_RTNL, |
@@ -2293,7 +2284,6 @@ static const struct genl_ops nl802154_ops[] = { | |||
2293 | { | 2284 | { |
2294 | .cmd = NL802154_CMD_SET_PAN_ID, | 2285 | .cmd = NL802154_CMD_SET_PAN_ID, |
2295 | .doit = nl802154_set_pan_id, | 2286 | .doit = nl802154_set_pan_id, |
2296 | .policy = nl802154_policy, | ||
2297 | .flags = GENL_ADMIN_PERM, | 2287 | .flags = GENL_ADMIN_PERM, |
2298 | .internal_flags = NL802154_FLAG_NEED_NETDEV | | 2288 | .internal_flags = NL802154_FLAG_NEED_NETDEV | |
2299 | NL802154_FLAG_NEED_RTNL, | 2289 | NL802154_FLAG_NEED_RTNL, |
@@ -2301,7 +2291,6 @@ static const struct genl_ops nl802154_ops[] = { | |||
2301 | { | 2291 | { |
2302 | .cmd = NL802154_CMD_SET_SHORT_ADDR, | 2292 | .cmd = NL802154_CMD_SET_SHORT_ADDR, |
2303 | .doit = nl802154_set_short_addr, | 2293 | .doit = nl802154_set_short_addr, |
2304 | .policy = nl802154_policy, | ||
2305 | .flags = GENL_ADMIN_PERM, | 2294 | .flags = GENL_ADMIN_PERM, |
2306 | .internal_flags = NL802154_FLAG_NEED_NETDEV | | 2295 | .internal_flags = NL802154_FLAG_NEED_NETDEV | |
2307 | NL802154_FLAG_NEED_RTNL, | 2296 | NL802154_FLAG_NEED_RTNL, |
@@ -2309,7 +2298,6 @@ static const struct genl_ops nl802154_ops[] = { | |||
2309 | { | 2298 | { |
2310 | .cmd = NL802154_CMD_SET_BACKOFF_EXPONENT, | 2299 | .cmd = NL802154_CMD_SET_BACKOFF_EXPONENT, |
2311 | .doit = nl802154_set_backoff_exponent, | 2300 | .doit = nl802154_set_backoff_exponent, |
2312 | .policy = nl802154_policy, | ||
2313 | .flags = GENL_ADMIN_PERM, | 2301 | .flags = GENL_ADMIN_PERM, |
2314 | .internal_flags = NL802154_FLAG_NEED_NETDEV | | 2302 | .internal_flags = NL802154_FLAG_NEED_NETDEV | |
2315 | NL802154_FLAG_NEED_RTNL, | 2303 | NL802154_FLAG_NEED_RTNL, |
@@ -2317,7 +2305,6 @@ static const struct genl_ops nl802154_ops[] = { | |||
2317 | { | 2305 | { |
2318 | .cmd = NL802154_CMD_SET_MAX_CSMA_BACKOFFS, | 2306 | .cmd = NL802154_CMD_SET_MAX_CSMA_BACKOFFS, |
2319 | .doit = nl802154_set_max_csma_backoffs, | 2307 | .doit = nl802154_set_max_csma_backoffs, |
2320 | .policy = nl802154_policy, | ||
2321 | .flags = GENL_ADMIN_PERM, | 2308 | .flags = GENL_ADMIN_PERM, |
2322 | .internal_flags = NL802154_FLAG_NEED_NETDEV | | 2309 | .internal_flags = NL802154_FLAG_NEED_NETDEV | |
2323 | NL802154_FLAG_NEED_RTNL, | 2310 | NL802154_FLAG_NEED_RTNL, |
@@ -2325,7 +2312,6 @@ static const struct genl_ops nl802154_ops[] = { | |||
2325 | { | 2312 | { |
2326 | .cmd = NL802154_CMD_SET_MAX_FRAME_RETRIES, | 2313 | .cmd = NL802154_CMD_SET_MAX_FRAME_RETRIES, |
2327 | .doit = nl802154_set_max_frame_retries, | 2314 | .doit = nl802154_set_max_frame_retries, |
2328 | .policy = nl802154_policy, | ||
2329 | .flags = GENL_ADMIN_PERM, | 2315 | .flags = GENL_ADMIN_PERM, |
2330 | .internal_flags = NL802154_FLAG_NEED_NETDEV | | 2316 | .internal_flags = NL802154_FLAG_NEED_NETDEV | |
2331 | NL802154_FLAG_NEED_RTNL, | 2317 | NL802154_FLAG_NEED_RTNL, |
@@ -2333,7 +2319,6 @@ static const struct genl_ops nl802154_ops[] = { | |||
2333 | { | 2319 | { |
2334 | .cmd = NL802154_CMD_SET_LBT_MODE, | 2320 | .cmd = NL802154_CMD_SET_LBT_MODE, |
2335 | .doit = nl802154_set_lbt_mode, | 2321 | .doit = nl802154_set_lbt_mode, |
2336 | .policy = nl802154_policy, | ||
2337 | .flags = GENL_ADMIN_PERM, | 2322 | .flags = GENL_ADMIN_PERM, |
2338 | .internal_flags = NL802154_FLAG_NEED_NETDEV | | 2323 | .internal_flags = NL802154_FLAG_NEED_NETDEV | |
2339 | NL802154_FLAG_NEED_RTNL, | 2324 | NL802154_FLAG_NEED_RTNL, |
@@ -2341,7 +2326,6 @@ static const struct genl_ops nl802154_ops[] = { | |||
2341 | { | 2326 | { |
2342 | .cmd = NL802154_CMD_SET_ACKREQ_DEFAULT, | 2327 | .cmd = NL802154_CMD_SET_ACKREQ_DEFAULT, |
2343 | .doit = nl802154_set_ackreq_default, | 2328 | .doit = nl802154_set_ackreq_default, |
2344 | .policy = nl802154_policy, | ||
2345 | .flags = GENL_ADMIN_PERM, | 2329 | .flags = GENL_ADMIN_PERM, |
2346 | .internal_flags = NL802154_FLAG_NEED_NETDEV | | 2330 | .internal_flags = NL802154_FLAG_NEED_NETDEV | |
2347 | NL802154_FLAG_NEED_RTNL, | 2331 | NL802154_FLAG_NEED_RTNL, |
@@ -2350,7 +2334,6 @@ static const struct genl_ops nl802154_ops[] = { | |||
2350 | { | 2334 | { |
2351 | .cmd = NL802154_CMD_SET_SEC_PARAMS, | 2335 | .cmd = NL802154_CMD_SET_SEC_PARAMS, |
2352 | .doit = nl802154_set_llsec_params, | 2336 | .doit = nl802154_set_llsec_params, |
2353 | .policy = nl802154_policy, | ||
2354 | .flags = GENL_ADMIN_PERM, | 2337 | .flags = GENL_ADMIN_PERM, |
2355 | .internal_flags = NL802154_FLAG_NEED_NETDEV | | 2338 | .internal_flags = NL802154_FLAG_NEED_NETDEV | |
2356 | NL802154_FLAG_NEED_RTNL, | 2339 | NL802154_FLAG_NEED_RTNL, |
@@ -2359,7 +2342,6 @@ static const struct genl_ops nl802154_ops[] = { | |||
2359 | .cmd = NL802154_CMD_GET_SEC_KEY, | 2342 | .cmd = NL802154_CMD_GET_SEC_KEY, |
2360 | /* TODO .doit by matching key id? */ | 2343 | /* TODO .doit by matching key id? */ |
2361 | .dumpit = nl802154_dump_llsec_key, | 2344 | .dumpit = nl802154_dump_llsec_key, |
2362 | .policy = nl802154_policy, | ||
2363 | .flags = GENL_ADMIN_PERM, | 2345 | .flags = GENL_ADMIN_PERM, |
2364 | .internal_flags = NL802154_FLAG_NEED_NETDEV | | 2346 | .internal_flags = NL802154_FLAG_NEED_NETDEV | |
2365 | NL802154_FLAG_NEED_RTNL, | 2347 | NL802154_FLAG_NEED_RTNL, |
@@ -2367,7 +2349,6 @@ static const struct genl_ops nl802154_ops[] = { | |||
2367 | { | 2349 | { |
2368 | .cmd = NL802154_CMD_NEW_SEC_KEY, | 2350 | .cmd = NL802154_CMD_NEW_SEC_KEY, |
2369 | .doit = nl802154_add_llsec_key, | 2351 | .doit = nl802154_add_llsec_key, |
2370 | .policy = nl802154_policy, | ||
2371 | .flags = GENL_ADMIN_PERM, | 2352 | .flags = GENL_ADMIN_PERM, |
2372 | .internal_flags = NL802154_FLAG_NEED_NETDEV | | 2353 | .internal_flags = NL802154_FLAG_NEED_NETDEV | |
2373 | NL802154_FLAG_NEED_RTNL, | 2354 | NL802154_FLAG_NEED_RTNL, |
@@ -2375,7 +2356,6 @@ static const struct genl_ops nl802154_ops[] = { | |||
2375 | { | 2356 | { |
2376 | .cmd = NL802154_CMD_DEL_SEC_KEY, | 2357 | .cmd = NL802154_CMD_DEL_SEC_KEY, |
2377 | .doit = nl802154_del_llsec_key, | 2358 | .doit = nl802154_del_llsec_key, |
2378 | .policy = nl802154_policy, | ||
2379 | .flags = GENL_ADMIN_PERM, | 2359 | .flags = GENL_ADMIN_PERM, |
2380 | .internal_flags = NL802154_FLAG_NEED_NETDEV | | 2360 | .internal_flags = NL802154_FLAG_NEED_NETDEV | |
2381 | NL802154_FLAG_NEED_RTNL, | 2361 | NL802154_FLAG_NEED_RTNL, |
@@ -2385,7 +2365,6 @@ static const struct genl_ops nl802154_ops[] = { | |||
2385 | .cmd = NL802154_CMD_GET_SEC_DEV, | 2365 | .cmd = NL802154_CMD_GET_SEC_DEV, |
2386 | /* TODO .doit by matching extended_addr? */ | 2366 | /* TODO .doit by matching extended_addr? */ |
2387 | .dumpit = nl802154_dump_llsec_dev, | 2367 | .dumpit = nl802154_dump_llsec_dev, |
2388 | .policy = nl802154_policy, | ||
2389 | .flags = GENL_ADMIN_PERM, | 2368 | .flags = GENL_ADMIN_PERM, |
2390 | .internal_flags = NL802154_FLAG_NEED_NETDEV | | 2369 | .internal_flags = NL802154_FLAG_NEED_NETDEV | |
2391 | NL802154_FLAG_NEED_RTNL, | 2370 | NL802154_FLAG_NEED_RTNL, |
@@ -2393,7 +2372,6 @@ static const struct genl_ops nl802154_ops[] = { | |||
2393 | { | 2372 | { |
2394 | .cmd = NL802154_CMD_NEW_SEC_DEV, | 2373 | .cmd = NL802154_CMD_NEW_SEC_DEV, |
2395 | .doit = nl802154_add_llsec_dev, | 2374 | .doit = nl802154_add_llsec_dev, |
2396 | .policy = nl802154_policy, | ||
2397 | .flags = GENL_ADMIN_PERM, | 2375 | .flags = GENL_ADMIN_PERM, |
2398 | .internal_flags = NL802154_FLAG_NEED_NETDEV | | 2376 | .internal_flags = NL802154_FLAG_NEED_NETDEV | |
2399 | NL802154_FLAG_NEED_RTNL, | 2377 | NL802154_FLAG_NEED_RTNL, |
@@ -2401,7 +2379,6 @@ static const struct genl_ops nl802154_ops[] = { | |||
2401 | { | 2379 | { |
2402 | .cmd = NL802154_CMD_DEL_SEC_DEV, | 2380 | .cmd = NL802154_CMD_DEL_SEC_DEV, |
2403 | .doit = nl802154_del_llsec_dev, | 2381 | .doit = nl802154_del_llsec_dev, |
2404 | .policy = nl802154_policy, | ||
2405 | .flags = GENL_ADMIN_PERM, | 2382 | .flags = GENL_ADMIN_PERM, |
2406 | .internal_flags = NL802154_FLAG_NEED_NETDEV | | 2383 | .internal_flags = NL802154_FLAG_NEED_NETDEV | |
2407 | NL802154_FLAG_NEED_RTNL, | 2384 | NL802154_FLAG_NEED_RTNL, |
@@ -2411,7 +2388,6 @@ static const struct genl_ops nl802154_ops[] = { | |||
2411 | .cmd = NL802154_CMD_GET_SEC_DEVKEY, | 2388 | .cmd = NL802154_CMD_GET_SEC_DEVKEY, |
2412 | /* TODO doit by matching ??? */ | 2389 | /* TODO doit by matching ??? */ |
2413 | .dumpit = nl802154_dump_llsec_devkey, | 2390 | .dumpit = nl802154_dump_llsec_devkey, |
2414 | .policy = nl802154_policy, | ||
2415 | .flags = GENL_ADMIN_PERM, | 2391 | .flags = GENL_ADMIN_PERM, |
2416 | .internal_flags = NL802154_FLAG_NEED_NETDEV | | 2392 | .internal_flags = NL802154_FLAG_NEED_NETDEV | |
2417 | NL802154_FLAG_NEED_RTNL, | 2393 | NL802154_FLAG_NEED_RTNL, |
@@ -2419,7 +2395,6 @@ static const struct genl_ops nl802154_ops[] = { | |||
2419 | { | 2395 | { |
2420 | .cmd = NL802154_CMD_NEW_SEC_DEVKEY, | 2396 | .cmd = NL802154_CMD_NEW_SEC_DEVKEY, |
2421 | .doit = nl802154_add_llsec_devkey, | 2397 | .doit = nl802154_add_llsec_devkey, |
2422 | .policy = nl802154_policy, | ||
2423 | .flags = GENL_ADMIN_PERM, | 2398 | .flags = GENL_ADMIN_PERM, |
2424 | .internal_flags = NL802154_FLAG_NEED_NETDEV | | 2399 | .internal_flags = NL802154_FLAG_NEED_NETDEV | |
2425 | NL802154_FLAG_NEED_RTNL, | 2400 | NL802154_FLAG_NEED_RTNL, |
@@ -2427,7 +2402,6 @@ static const struct genl_ops nl802154_ops[] = { | |||
2427 | { | 2402 | { |
2428 | .cmd = NL802154_CMD_DEL_SEC_DEVKEY, | 2403 | .cmd = NL802154_CMD_DEL_SEC_DEVKEY, |
2429 | .doit = nl802154_del_llsec_devkey, | 2404 | .doit = nl802154_del_llsec_devkey, |
2430 | .policy = nl802154_policy, | ||
2431 | .flags = GENL_ADMIN_PERM, | 2405 | .flags = GENL_ADMIN_PERM, |
2432 | .internal_flags = NL802154_FLAG_NEED_NETDEV | | 2406 | .internal_flags = NL802154_FLAG_NEED_NETDEV | |
2433 | NL802154_FLAG_NEED_RTNL, | 2407 | NL802154_FLAG_NEED_RTNL, |
@@ -2436,7 +2410,6 @@ static const struct genl_ops nl802154_ops[] = { | |||
2436 | .cmd = NL802154_CMD_GET_SEC_LEVEL, | 2410 | .cmd = NL802154_CMD_GET_SEC_LEVEL, |
2437 | /* TODO .doit by matching frame_type? */ | 2411 | /* TODO .doit by matching frame_type? */ |
2438 | .dumpit = nl802154_dump_llsec_seclevel, | 2412 | .dumpit = nl802154_dump_llsec_seclevel, |
2439 | .policy = nl802154_policy, | ||
2440 | .flags = GENL_ADMIN_PERM, | 2413 | .flags = GENL_ADMIN_PERM, |
2441 | .internal_flags = NL802154_FLAG_NEED_NETDEV | | 2414 | .internal_flags = NL802154_FLAG_NEED_NETDEV | |
2442 | NL802154_FLAG_NEED_RTNL, | 2415 | NL802154_FLAG_NEED_RTNL, |
@@ -2444,7 +2417,6 @@ static const struct genl_ops nl802154_ops[] = { | |||
2444 | { | 2417 | { |
2445 | .cmd = NL802154_CMD_NEW_SEC_LEVEL, | 2418 | .cmd = NL802154_CMD_NEW_SEC_LEVEL, |
2446 | .doit = nl802154_add_llsec_seclevel, | 2419 | .doit = nl802154_add_llsec_seclevel, |
2447 | .policy = nl802154_policy, | ||
2448 | .flags = GENL_ADMIN_PERM, | 2420 | .flags = GENL_ADMIN_PERM, |
2449 | .internal_flags = NL802154_FLAG_NEED_NETDEV | | 2421 | .internal_flags = NL802154_FLAG_NEED_NETDEV | |
2450 | NL802154_FLAG_NEED_RTNL, | 2422 | NL802154_FLAG_NEED_RTNL, |
@@ -2453,7 +2425,6 @@ static const struct genl_ops nl802154_ops[] = { | |||
2453 | .cmd = NL802154_CMD_DEL_SEC_LEVEL, | 2425 | .cmd = NL802154_CMD_DEL_SEC_LEVEL, |
2454 | /* TODO match frame_type only? */ | 2426 | /* TODO match frame_type only? */ |
2455 | .doit = nl802154_del_llsec_seclevel, | 2427 | .doit = nl802154_del_llsec_seclevel, |
2456 | .policy = nl802154_policy, | ||
2457 | .flags = GENL_ADMIN_PERM, | 2428 | .flags = GENL_ADMIN_PERM, |
2458 | .internal_flags = NL802154_FLAG_NEED_NETDEV | | 2429 | .internal_flags = NL802154_FLAG_NEED_NETDEV | |
2459 | NL802154_FLAG_NEED_RTNL, | 2430 | NL802154_FLAG_NEED_RTNL, |
@@ -2466,6 +2437,7 @@ static struct genl_family nl802154_fam __ro_after_init = { | |||
2466 | .hdrsize = 0, /* no private header */ | 2437 | .hdrsize = 0, /* no private header */ |
2467 | .version = 1, /* no particular meaning now */ | 2438 | .version = 1, /* no particular meaning now */ |
2468 | .maxattr = NL802154_ATTR_MAX, | 2439 | .maxattr = NL802154_ATTR_MAX, |
2440 | .policy = nl802154_policy, | ||
2469 | .netnsok = true, | 2441 | .netnsok = true, |
2470 | .pre_doit = nl802154_pre_doit, | 2442 | .pre_doit = nl802154_pre_doit, |
2471 | .post_doit = nl802154_post_doit, | 2443 | .post_doit = nl802154_post_doit, |
diff --git a/net/ipv4/fou.c b/net/ipv4/fou.c index 79e98e21cdd7..a23fbb52d265 100644 --- a/net/ipv4/fou.c +++ b/net/ipv4/fou.c | |||
@@ -808,20 +808,17 @@ static const struct genl_ops fou_nl_ops[] = { | |||
808 | { | 808 | { |
809 | .cmd = FOU_CMD_ADD, | 809 | .cmd = FOU_CMD_ADD, |
810 | .doit = fou_nl_cmd_add_port, | 810 | .doit = fou_nl_cmd_add_port, |
811 | .policy = fou_nl_policy, | ||
812 | .flags = GENL_ADMIN_PERM, | 811 | .flags = GENL_ADMIN_PERM, |
813 | }, | 812 | }, |
814 | { | 813 | { |
815 | .cmd = FOU_CMD_DEL, | 814 | .cmd = FOU_CMD_DEL, |
816 | .doit = fou_nl_cmd_rm_port, | 815 | .doit = fou_nl_cmd_rm_port, |
817 | .policy = fou_nl_policy, | ||
818 | .flags = GENL_ADMIN_PERM, | 816 | .flags = GENL_ADMIN_PERM, |
819 | }, | 817 | }, |
820 | { | 818 | { |
821 | .cmd = FOU_CMD_GET, | 819 | .cmd = FOU_CMD_GET, |
822 | .doit = fou_nl_cmd_get_port, | 820 | .doit = fou_nl_cmd_get_port, |
823 | .dumpit = fou_nl_dump, | 821 | .dumpit = fou_nl_dump, |
824 | .policy = fou_nl_policy, | ||
825 | }, | 822 | }, |
826 | }; | 823 | }; |
827 | 824 | ||
@@ -830,6 +827,7 @@ static struct genl_family fou_nl_family __ro_after_init = { | |||
830 | .name = FOU_GENL_NAME, | 827 | .name = FOU_GENL_NAME, |
831 | .version = FOU_GENL_VERSION, | 828 | .version = FOU_GENL_VERSION, |
832 | .maxattr = FOU_ATTR_MAX, | 829 | .maxattr = FOU_ATTR_MAX, |
830 | .policy = fou_nl_policy, | ||
833 | .netnsok = true, | 831 | .netnsok = true, |
834 | .module = THIS_MODULE, | 832 | .module = THIS_MODULE, |
835 | .ops = fou_nl_ops, | 833 | .ops = fou_nl_ops, |
diff --git a/net/ipv4/tcp_metrics.c b/net/ipv4/tcp_metrics.c index b467a7cabf40..4ccec4c705f7 100644 --- a/net/ipv4/tcp_metrics.c +++ b/net/ipv4/tcp_metrics.c | |||
@@ -953,12 +953,10 @@ static const struct genl_ops tcp_metrics_nl_ops[] = { | |||
953 | .cmd = TCP_METRICS_CMD_GET, | 953 | .cmd = TCP_METRICS_CMD_GET, |
954 | .doit = tcp_metrics_nl_cmd_get, | 954 | .doit = tcp_metrics_nl_cmd_get, |
955 | .dumpit = tcp_metrics_nl_dump, | 955 | .dumpit = tcp_metrics_nl_dump, |
956 | .policy = tcp_metrics_nl_policy, | ||
957 | }, | 956 | }, |
958 | { | 957 | { |
959 | .cmd = TCP_METRICS_CMD_DEL, | 958 | .cmd = TCP_METRICS_CMD_DEL, |
960 | .doit = tcp_metrics_nl_cmd_del, | 959 | .doit = tcp_metrics_nl_cmd_del, |
961 | .policy = tcp_metrics_nl_policy, | ||
962 | .flags = GENL_ADMIN_PERM, | 960 | .flags = GENL_ADMIN_PERM, |
963 | }, | 961 | }, |
964 | }; | 962 | }; |
@@ -968,6 +966,7 @@ static struct genl_family tcp_metrics_nl_family __ro_after_init = { | |||
968 | .name = TCP_METRICS_GENL_NAME, | 966 | .name = TCP_METRICS_GENL_NAME, |
969 | .version = TCP_METRICS_GENL_VERSION, | 967 | .version = TCP_METRICS_GENL_VERSION, |
970 | .maxattr = TCP_METRICS_ATTR_MAX, | 968 | .maxattr = TCP_METRICS_ATTR_MAX, |
969 | .policy = tcp_metrics_nl_policy, | ||
971 | .netnsok = true, | 970 | .netnsok = true, |
972 | .module = THIS_MODULE, | 971 | .module = THIS_MODULE, |
973 | .ops = tcp_metrics_nl_ops, | 972 | .ops = tcp_metrics_nl_ops, |
diff --git a/net/ipv6/ila/ila_main.c b/net/ipv6/ila/ila_main.c index 18fac76b9520..8d31a5066d0c 100644 --- a/net/ipv6/ila/ila_main.c +++ b/net/ipv6/ila/ila_main.c | |||
@@ -17,19 +17,16 @@ static const struct genl_ops ila_nl_ops[] = { | |||
17 | { | 17 | { |
18 | .cmd = ILA_CMD_ADD, | 18 | .cmd = ILA_CMD_ADD, |
19 | .doit = ila_xlat_nl_cmd_add_mapping, | 19 | .doit = ila_xlat_nl_cmd_add_mapping, |
20 | .policy = ila_nl_policy, | ||
21 | .flags = GENL_ADMIN_PERM, | 20 | .flags = GENL_ADMIN_PERM, |
22 | }, | 21 | }, |
23 | { | 22 | { |
24 | .cmd = ILA_CMD_DEL, | 23 | .cmd = ILA_CMD_DEL, |
25 | .doit = ila_xlat_nl_cmd_del_mapping, | 24 | .doit = ila_xlat_nl_cmd_del_mapping, |
26 | .policy = ila_nl_policy, | ||
27 | .flags = GENL_ADMIN_PERM, | 25 | .flags = GENL_ADMIN_PERM, |
28 | }, | 26 | }, |
29 | { | 27 | { |
30 | .cmd = ILA_CMD_FLUSH, | 28 | .cmd = ILA_CMD_FLUSH, |
31 | .doit = ila_xlat_nl_cmd_flush, | 29 | .doit = ila_xlat_nl_cmd_flush, |
32 | .policy = ila_nl_policy, | ||
33 | .flags = GENL_ADMIN_PERM, | 30 | .flags = GENL_ADMIN_PERM, |
34 | }, | 31 | }, |
35 | { | 32 | { |
@@ -38,7 +35,6 @@ static const struct genl_ops ila_nl_ops[] = { | |||
38 | .start = ila_xlat_nl_dump_start, | 35 | .start = ila_xlat_nl_dump_start, |
39 | .dumpit = ila_xlat_nl_dump, | 36 | .dumpit = ila_xlat_nl_dump, |
40 | .done = ila_xlat_nl_dump_done, | 37 | .done = ila_xlat_nl_dump_done, |
41 | .policy = ila_nl_policy, | ||
42 | }, | 38 | }, |
43 | }; | 39 | }; |
44 | 40 | ||
@@ -49,6 +45,7 @@ struct genl_family ila_nl_family __ro_after_init = { | |||
49 | .name = ILA_GENL_NAME, | 45 | .name = ILA_GENL_NAME, |
50 | .version = ILA_GENL_VERSION, | 46 | .version = ILA_GENL_VERSION, |
51 | .maxattr = ILA_ATTR_MAX, | 47 | .maxattr = ILA_ATTR_MAX, |
48 | .policy = ila_nl_policy, | ||
52 | .netnsok = true, | 49 | .netnsok = true, |
53 | .parallel_ops = true, | 50 | .parallel_ops = true, |
54 | .module = THIS_MODULE, | 51 | .module = THIS_MODULE, |
diff --git a/net/ipv6/seg6.c b/net/ipv6/seg6.c index 9b2f272ca164..ceff773471e7 100644 --- a/net/ipv6/seg6.c +++ b/net/ipv6/seg6.c | |||
@@ -399,7 +399,6 @@ static const struct genl_ops seg6_genl_ops[] = { | |||
399 | { | 399 | { |
400 | .cmd = SEG6_CMD_SETHMAC, | 400 | .cmd = SEG6_CMD_SETHMAC, |
401 | .doit = seg6_genl_sethmac, | 401 | .doit = seg6_genl_sethmac, |
402 | .policy = seg6_genl_policy, | ||
403 | .flags = GENL_ADMIN_PERM, | 402 | .flags = GENL_ADMIN_PERM, |
404 | }, | 403 | }, |
405 | { | 404 | { |
@@ -407,19 +406,16 @@ static const struct genl_ops seg6_genl_ops[] = { | |||
407 | .start = seg6_genl_dumphmac_start, | 406 | .start = seg6_genl_dumphmac_start, |
408 | .dumpit = seg6_genl_dumphmac, | 407 | .dumpit = seg6_genl_dumphmac, |
409 | .done = seg6_genl_dumphmac_done, | 408 | .done = seg6_genl_dumphmac_done, |
410 | .policy = seg6_genl_policy, | ||
411 | .flags = GENL_ADMIN_PERM, | 409 | .flags = GENL_ADMIN_PERM, |
412 | }, | 410 | }, |
413 | { | 411 | { |
414 | .cmd = SEG6_CMD_SET_TUNSRC, | 412 | .cmd = SEG6_CMD_SET_TUNSRC, |
415 | .doit = seg6_genl_set_tunsrc, | 413 | .doit = seg6_genl_set_tunsrc, |
416 | .policy = seg6_genl_policy, | ||
417 | .flags = GENL_ADMIN_PERM, | 414 | .flags = GENL_ADMIN_PERM, |
418 | }, | 415 | }, |
419 | { | 416 | { |
420 | .cmd = SEG6_CMD_GET_TUNSRC, | 417 | .cmd = SEG6_CMD_GET_TUNSRC, |
421 | .doit = seg6_genl_get_tunsrc, | 418 | .doit = seg6_genl_get_tunsrc, |
422 | .policy = seg6_genl_policy, | ||
423 | .flags = GENL_ADMIN_PERM, | 419 | .flags = GENL_ADMIN_PERM, |
424 | }, | 420 | }, |
425 | }; | 421 | }; |
@@ -429,6 +425,7 @@ static struct genl_family seg6_genl_family __ro_after_init = { | |||
429 | .name = SEG6_GENL_NAME, | 425 | .name = SEG6_GENL_NAME, |
430 | .version = SEG6_GENL_VERSION, | 426 | .version = SEG6_GENL_VERSION, |
431 | .maxattr = SEG6_ATTR_MAX, | 427 | .maxattr = SEG6_ATTR_MAX, |
428 | .policy = seg6_genl_policy, | ||
432 | .netnsok = true, | 429 | .netnsok = true, |
433 | .parallel_ops = true, | 430 | .parallel_ops = true, |
434 | .ops = seg6_genl_ops, | 431 | .ops = seg6_genl_ops, |
diff --git a/net/l2tp/l2tp_netlink.c b/net/l2tp/l2tp_netlink.c index edbd5d1fbcde..77595fcc9f75 100644 --- a/net/l2tp/l2tp_netlink.c +++ b/net/l2tp/l2tp_netlink.c | |||
@@ -916,57 +916,48 @@ static const struct genl_ops l2tp_nl_ops[] = { | |||
916 | { | 916 | { |
917 | .cmd = L2TP_CMD_NOOP, | 917 | .cmd = L2TP_CMD_NOOP, |
918 | .doit = l2tp_nl_cmd_noop, | 918 | .doit = l2tp_nl_cmd_noop, |
919 | .policy = l2tp_nl_policy, | ||
920 | /* can be retrieved by unprivileged users */ | 919 | /* can be retrieved by unprivileged users */ |
921 | }, | 920 | }, |
922 | { | 921 | { |
923 | .cmd = L2TP_CMD_TUNNEL_CREATE, | 922 | .cmd = L2TP_CMD_TUNNEL_CREATE, |
924 | .doit = l2tp_nl_cmd_tunnel_create, | 923 | .doit = l2tp_nl_cmd_tunnel_create, |
925 | .policy = l2tp_nl_policy, | ||
926 | .flags = GENL_ADMIN_PERM, | 924 | .flags = GENL_ADMIN_PERM, |
927 | }, | 925 | }, |
928 | { | 926 | { |
929 | .cmd = L2TP_CMD_TUNNEL_DELETE, | 927 | .cmd = L2TP_CMD_TUNNEL_DELETE, |
930 | .doit = l2tp_nl_cmd_tunnel_delete, | 928 | .doit = l2tp_nl_cmd_tunnel_delete, |
931 | .policy = l2tp_nl_policy, | ||
932 | .flags = GENL_ADMIN_PERM, | 929 | .flags = GENL_ADMIN_PERM, |
933 | }, | 930 | }, |
934 | { | 931 | { |
935 | .cmd = L2TP_CMD_TUNNEL_MODIFY, | 932 | .cmd = L2TP_CMD_TUNNEL_MODIFY, |
936 | .doit = l2tp_nl_cmd_tunnel_modify, | 933 | .doit = l2tp_nl_cmd_tunnel_modify, |
937 | .policy = l2tp_nl_policy, | ||
938 | .flags = GENL_ADMIN_PERM, | 934 | .flags = GENL_ADMIN_PERM, |
939 | }, | 935 | }, |
940 | { | 936 | { |
941 | .cmd = L2TP_CMD_TUNNEL_GET, | 937 | .cmd = L2TP_CMD_TUNNEL_GET, |
942 | .doit = l2tp_nl_cmd_tunnel_get, | 938 | .doit = l2tp_nl_cmd_tunnel_get, |
943 | .dumpit = l2tp_nl_cmd_tunnel_dump, | 939 | .dumpit = l2tp_nl_cmd_tunnel_dump, |
944 | .policy = l2tp_nl_policy, | ||
945 | .flags = GENL_ADMIN_PERM, | 940 | .flags = GENL_ADMIN_PERM, |
946 | }, | 941 | }, |
947 | { | 942 | { |
948 | .cmd = L2TP_CMD_SESSION_CREATE, | 943 | .cmd = L2TP_CMD_SESSION_CREATE, |
949 | .doit = l2tp_nl_cmd_session_create, | 944 | .doit = l2tp_nl_cmd_session_create, |
950 | .policy = l2tp_nl_policy, | ||
951 | .flags = GENL_ADMIN_PERM, | 945 | .flags = GENL_ADMIN_PERM, |
952 | }, | 946 | }, |
953 | { | 947 | { |
954 | .cmd = L2TP_CMD_SESSION_DELETE, | 948 | .cmd = L2TP_CMD_SESSION_DELETE, |
955 | .doit = l2tp_nl_cmd_session_delete, | 949 | .doit = l2tp_nl_cmd_session_delete, |
956 | .policy = l2tp_nl_policy, | ||
957 | .flags = GENL_ADMIN_PERM, | 950 | .flags = GENL_ADMIN_PERM, |
958 | }, | 951 | }, |
959 | { | 952 | { |
960 | .cmd = L2TP_CMD_SESSION_MODIFY, | 953 | .cmd = L2TP_CMD_SESSION_MODIFY, |
961 | .doit = l2tp_nl_cmd_session_modify, | 954 | .doit = l2tp_nl_cmd_session_modify, |
962 | .policy = l2tp_nl_policy, | ||
963 | .flags = GENL_ADMIN_PERM, | 955 | .flags = GENL_ADMIN_PERM, |
964 | }, | 956 | }, |
965 | { | 957 | { |
966 | .cmd = L2TP_CMD_SESSION_GET, | 958 | .cmd = L2TP_CMD_SESSION_GET, |
967 | .doit = l2tp_nl_cmd_session_get, | 959 | .doit = l2tp_nl_cmd_session_get, |
968 | .dumpit = l2tp_nl_cmd_session_dump, | 960 | .dumpit = l2tp_nl_cmd_session_dump, |
969 | .policy = l2tp_nl_policy, | ||
970 | .flags = GENL_ADMIN_PERM, | 961 | .flags = GENL_ADMIN_PERM, |
971 | }, | 962 | }, |
972 | }; | 963 | }; |
@@ -976,6 +967,7 @@ static struct genl_family l2tp_nl_family __ro_after_init = { | |||
976 | .version = L2TP_GENL_VERSION, | 967 | .version = L2TP_GENL_VERSION, |
977 | .hdrsize = 0, | 968 | .hdrsize = 0, |
978 | .maxattr = L2TP_ATTR_MAX, | 969 | .maxattr = L2TP_ATTR_MAX, |
970 | .policy = l2tp_nl_policy, | ||
979 | .netnsok = true, | 971 | .netnsok = true, |
980 | .module = THIS_MODULE, | 972 | .module = THIS_MODULE, |
981 | .ops = l2tp_nl_ops, | 973 | .ops = l2tp_nl_ops, |
diff --git a/net/ncsi/ncsi-netlink.c b/net/ncsi/ncsi-netlink.c index bad17bba8ba7..367b2f6513e0 100644 --- a/net/ncsi/ncsi-netlink.c +++ b/net/ncsi/ncsi-netlink.c | |||
@@ -723,38 +723,32 @@ static int ncsi_set_channel_mask_nl(struct sk_buff *msg, | |||
723 | static const struct genl_ops ncsi_ops[] = { | 723 | static const struct genl_ops ncsi_ops[] = { |
724 | { | 724 | { |
725 | .cmd = NCSI_CMD_PKG_INFO, | 725 | .cmd = NCSI_CMD_PKG_INFO, |
726 | .policy = ncsi_genl_policy, | ||
727 | .doit = ncsi_pkg_info_nl, | 726 | .doit = ncsi_pkg_info_nl, |
728 | .dumpit = ncsi_pkg_info_all_nl, | 727 | .dumpit = ncsi_pkg_info_all_nl, |
729 | .flags = 0, | 728 | .flags = 0, |
730 | }, | 729 | }, |
731 | { | 730 | { |
732 | .cmd = NCSI_CMD_SET_INTERFACE, | 731 | .cmd = NCSI_CMD_SET_INTERFACE, |
733 | .policy = ncsi_genl_policy, | ||
734 | .doit = ncsi_set_interface_nl, | 732 | .doit = ncsi_set_interface_nl, |
735 | .flags = GENL_ADMIN_PERM, | 733 | .flags = GENL_ADMIN_PERM, |
736 | }, | 734 | }, |
737 | { | 735 | { |
738 | .cmd = NCSI_CMD_CLEAR_INTERFACE, | 736 | .cmd = NCSI_CMD_CLEAR_INTERFACE, |
739 | .policy = ncsi_genl_policy, | ||
740 | .doit = ncsi_clear_interface_nl, | 737 | .doit = ncsi_clear_interface_nl, |
741 | .flags = GENL_ADMIN_PERM, | 738 | .flags = GENL_ADMIN_PERM, |
742 | }, | 739 | }, |
743 | { | 740 | { |
744 | .cmd = NCSI_CMD_SEND_CMD, | 741 | .cmd = NCSI_CMD_SEND_CMD, |
745 | .policy = ncsi_genl_policy, | ||
746 | .doit = ncsi_send_cmd_nl, | 742 | .doit = ncsi_send_cmd_nl, |
747 | .flags = GENL_ADMIN_PERM, | 743 | .flags = GENL_ADMIN_PERM, |
748 | }, | 744 | }, |
749 | { | 745 | { |
750 | .cmd = NCSI_CMD_SET_PACKAGE_MASK, | 746 | .cmd = NCSI_CMD_SET_PACKAGE_MASK, |
751 | .policy = ncsi_genl_policy, | ||
752 | .doit = ncsi_set_package_mask_nl, | 747 | .doit = ncsi_set_package_mask_nl, |
753 | .flags = GENL_ADMIN_PERM, | 748 | .flags = GENL_ADMIN_PERM, |
754 | }, | 749 | }, |
755 | { | 750 | { |
756 | .cmd = NCSI_CMD_SET_CHANNEL_MASK, | 751 | .cmd = NCSI_CMD_SET_CHANNEL_MASK, |
757 | .policy = ncsi_genl_policy, | ||
758 | .doit = ncsi_set_channel_mask_nl, | 752 | .doit = ncsi_set_channel_mask_nl, |
759 | .flags = GENL_ADMIN_PERM, | 753 | .flags = GENL_ADMIN_PERM, |
760 | }, | 754 | }, |
@@ -764,6 +758,7 @@ static struct genl_family ncsi_genl_family __ro_after_init = { | |||
764 | .name = "NCSI", | 758 | .name = "NCSI", |
765 | .version = 0, | 759 | .version = 0, |
766 | .maxattr = NCSI_ATTR_MAX, | 760 | .maxattr = NCSI_ATTR_MAX, |
761 | .policy = ncsi_genl_policy, | ||
767 | .module = THIS_MODULE, | 762 | .module = THIS_MODULE, |
768 | .ops = ncsi_ops, | 763 | .ops = ncsi_ops, |
769 | .n_ops = ARRAY_SIZE(ncsi_ops), | 764 | .n_ops = ARRAY_SIZE(ncsi_ops), |
diff --git a/net/netfilter/ipvs/ip_vs_ctl.c b/net/netfilter/ipvs/ip_vs_ctl.c index 053cd96b9c76..4b933669fd83 100644 --- a/net/netfilter/ipvs/ip_vs_ctl.c +++ b/net/netfilter/ipvs/ip_vs_ctl.c | |||
@@ -3775,19 +3775,16 @@ static const struct genl_ops ip_vs_genl_ops[] = { | |||
3775 | { | 3775 | { |
3776 | .cmd = IPVS_CMD_NEW_SERVICE, | 3776 | .cmd = IPVS_CMD_NEW_SERVICE, |
3777 | .flags = GENL_ADMIN_PERM, | 3777 | .flags = GENL_ADMIN_PERM, |
3778 | .policy = ip_vs_cmd_policy, | ||
3779 | .doit = ip_vs_genl_set_cmd, | 3778 | .doit = ip_vs_genl_set_cmd, |
3780 | }, | 3779 | }, |
3781 | { | 3780 | { |
3782 | .cmd = IPVS_CMD_SET_SERVICE, | 3781 | .cmd = IPVS_CMD_SET_SERVICE, |
3783 | .flags = GENL_ADMIN_PERM, | 3782 | .flags = GENL_ADMIN_PERM, |
3784 | .policy = ip_vs_cmd_policy, | ||
3785 | .doit = ip_vs_genl_set_cmd, | 3783 | .doit = ip_vs_genl_set_cmd, |
3786 | }, | 3784 | }, |
3787 | { | 3785 | { |
3788 | .cmd = IPVS_CMD_DEL_SERVICE, | 3786 | .cmd = IPVS_CMD_DEL_SERVICE, |
3789 | .flags = GENL_ADMIN_PERM, | 3787 | .flags = GENL_ADMIN_PERM, |
3790 | .policy = ip_vs_cmd_policy, | ||
3791 | .doit = ip_vs_genl_set_cmd, | 3788 | .doit = ip_vs_genl_set_cmd, |
3792 | }, | 3789 | }, |
3793 | { | 3790 | { |
@@ -3795,42 +3792,35 @@ static const struct genl_ops ip_vs_genl_ops[] = { | |||
3795 | .flags = GENL_ADMIN_PERM, | 3792 | .flags = GENL_ADMIN_PERM, |
3796 | .doit = ip_vs_genl_get_cmd, | 3793 | .doit = ip_vs_genl_get_cmd, |
3797 | .dumpit = ip_vs_genl_dump_services, | 3794 | .dumpit = ip_vs_genl_dump_services, |
3798 | .policy = ip_vs_cmd_policy, | ||
3799 | }, | 3795 | }, |
3800 | { | 3796 | { |
3801 | .cmd = IPVS_CMD_NEW_DEST, | 3797 | .cmd = IPVS_CMD_NEW_DEST, |
3802 | .flags = GENL_ADMIN_PERM, | 3798 | .flags = GENL_ADMIN_PERM, |
3803 | .policy = ip_vs_cmd_policy, | ||
3804 | .doit = ip_vs_genl_set_cmd, | 3799 | .doit = ip_vs_genl_set_cmd, |
3805 | }, | 3800 | }, |
3806 | { | 3801 | { |
3807 | .cmd = IPVS_CMD_SET_DEST, | 3802 | .cmd = IPVS_CMD_SET_DEST, |
3808 | .flags = GENL_ADMIN_PERM, | 3803 | .flags = GENL_ADMIN_PERM, |
3809 | .policy = ip_vs_cmd_policy, | ||
3810 | .doit = ip_vs_genl_set_cmd, | 3804 | .doit = ip_vs_genl_set_cmd, |
3811 | }, | 3805 | }, |
3812 | { | 3806 | { |
3813 | .cmd = IPVS_CMD_DEL_DEST, | 3807 | .cmd = IPVS_CMD_DEL_DEST, |
3814 | .flags = GENL_ADMIN_PERM, | 3808 | .flags = GENL_ADMIN_PERM, |
3815 | .policy = ip_vs_cmd_policy, | ||
3816 | .doit = ip_vs_genl_set_cmd, | 3809 | .doit = ip_vs_genl_set_cmd, |
3817 | }, | 3810 | }, |
3818 | { | 3811 | { |
3819 | .cmd = IPVS_CMD_GET_DEST, | 3812 | .cmd = IPVS_CMD_GET_DEST, |
3820 | .flags = GENL_ADMIN_PERM, | 3813 | .flags = GENL_ADMIN_PERM, |
3821 | .policy = ip_vs_cmd_policy, | ||
3822 | .dumpit = ip_vs_genl_dump_dests, | 3814 | .dumpit = ip_vs_genl_dump_dests, |
3823 | }, | 3815 | }, |
3824 | { | 3816 | { |
3825 | .cmd = IPVS_CMD_NEW_DAEMON, | 3817 | .cmd = IPVS_CMD_NEW_DAEMON, |
3826 | .flags = GENL_ADMIN_PERM, | 3818 | .flags = GENL_ADMIN_PERM, |
3827 | .policy = ip_vs_cmd_policy, | ||
3828 | .doit = ip_vs_genl_set_daemon, | 3819 | .doit = ip_vs_genl_set_daemon, |
3829 | }, | 3820 | }, |
3830 | { | 3821 | { |
3831 | .cmd = IPVS_CMD_DEL_DAEMON, | 3822 | .cmd = IPVS_CMD_DEL_DAEMON, |
3832 | .flags = GENL_ADMIN_PERM, | 3823 | .flags = GENL_ADMIN_PERM, |
3833 | .policy = ip_vs_cmd_policy, | ||
3834 | .doit = ip_vs_genl_set_daemon, | 3824 | .doit = ip_vs_genl_set_daemon, |
3835 | }, | 3825 | }, |
3836 | { | 3826 | { |
@@ -3841,7 +3831,6 @@ static const struct genl_ops ip_vs_genl_ops[] = { | |||
3841 | { | 3831 | { |
3842 | .cmd = IPVS_CMD_SET_CONFIG, | 3832 | .cmd = IPVS_CMD_SET_CONFIG, |
3843 | .flags = GENL_ADMIN_PERM, | 3833 | .flags = GENL_ADMIN_PERM, |
3844 | .policy = ip_vs_cmd_policy, | ||
3845 | .doit = ip_vs_genl_set_cmd, | 3834 | .doit = ip_vs_genl_set_cmd, |
3846 | }, | 3835 | }, |
3847 | { | 3836 | { |
@@ -3857,7 +3846,6 @@ static const struct genl_ops ip_vs_genl_ops[] = { | |||
3857 | { | 3846 | { |
3858 | .cmd = IPVS_CMD_ZERO, | 3847 | .cmd = IPVS_CMD_ZERO, |
3859 | .flags = GENL_ADMIN_PERM, | 3848 | .flags = GENL_ADMIN_PERM, |
3860 | .policy = ip_vs_cmd_policy, | ||
3861 | .doit = ip_vs_genl_set_cmd, | 3849 | .doit = ip_vs_genl_set_cmd, |
3862 | }, | 3850 | }, |
3863 | { | 3851 | { |
@@ -3872,6 +3860,7 @@ static struct genl_family ip_vs_genl_family __ro_after_init = { | |||
3872 | .name = IPVS_GENL_NAME, | 3860 | .name = IPVS_GENL_NAME, |
3873 | .version = IPVS_GENL_VERSION, | 3861 | .version = IPVS_GENL_VERSION, |
3874 | .maxattr = IPVS_CMD_ATTR_MAX, | 3862 | .maxattr = IPVS_CMD_ATTR_MAX, |
3863 | .policy = ip_vs_cmd_policy, | ||
3875 | .netnsok = true, /* Make ipvsadm to work on netns */ | 3864 | .netnsok = true, /* Make ipvsadm to work on netns */ |
3876 | .module = THIS_MODULE, | 3865 | .module = THIS_MODULE, |
3877 | .ops = ip_vs_genl_ops, | 3866 | .ops = ip_vs_genl_ops, |
diff --git a/net/netlabel/netlabel_calipso.c b/net/netlabel/netlabel_calipso.c index 4d748975117d..80184513b2b2 100644 --- a/net/netlabel/netlabel_calipso.c +++ b/net/netlabel/netlabel_calipso.c | |||
@@ -322,28 +322,24 @@ static const struct genl_ops netlbl_calipso_ops[] = { | |||
322 | { | 322 | { |
323 | .cmd = NLBL_CALIPSO_C_ADD, | 323 | .cmd = NLBL_CALIPSO_C_ADD, |
324 | .flags = GENL_ADMIN_PERM, | 324 | .flags = GENL_ADMIN_PERM, |
325 | .policy = calipso_genl_policy, | ||
326 | .doit = netlbl_calipso_add, | 325 | .doit = netlbl_calipso_add, |
327 | .dumpit = NULL, | 326 | .dumpit = NULL, |
328 | }, | 327 | }, |
329 | { | 328 | { |
330 | .cmd = NLBL_CALIPSO_C_REMOVE, | 329 | .cmd = NLBL_CALIPSO_C_REMOVE, |
331 | .flags = GENL_ADMIN_PERM, | 330 | .flags = GENL_ADMIN_PERM, |
332 | .policy = calipso_genl_policy, | ||
333 | .doit = netlbl_calipso_remove, | 331 | .doit = netlbl_calipso_remove, |
334 | .dumpit = NULL, | 332 | .dumpit = NULL, |
335 | }, | 333 | }, |
336 | { | 334 | { |
337 | .cmd = NLBL_CALIPSO_C_LIST, | 335 | .cmd = NLBL_CALIPSO_C_LIST, |
338 | .flags = 0, | 336 | .flags = 0, |
339 | .policy = calipso_genl_policy, | ||
340 | .doit = netlbl_calipso_list, | 337 | .doit = netlbl_calipso_list, |
341 | .dumpit = NULL, | 338 | .dumpit = NULL, |
342 | }, | 339 | }, |
343 | { | 340 | { |
344 | .cmd = NLBL_CALIPSO_C_LISTALL, | 341 | .cmd = NLBL_CALIPSO_C_LISTALL, |
345 | .flags = 0, | 342 | .flags = 0, |
346 | .policy = calipso_genl_policy, | ||
347 | .doit = NULL, | 343 | .doit = NULL, |
348 | .dumpit = netlbl_calipso_listall, | 344 | .dumpit = netlbl_calipso_listall, |
349 | }, | 345 | }, |
@@ -354,6 +350,7 @@ static struct genl_family netlbl_calipso_gnl_family __ro_after_init = { | |||
354 | .name = NETLBL_NLTYPE_CALIPSO_NAME, | 350 | .name = NETLBL_NLTYPE_CALIPSO_NAME, |
355 | .version = NETLBL_PROTO_VERSION, | 351 | .version = NETLBL_PROTO_VERSION, |
356 | .maxattr = NLBL_CALIPSO_A_MAX, | 352 | .maxattr = NLBL_CALIPSO_A_MAX, |
353 | .policy = calipso_genl_policy, | ||
357 | .module = THIS_MODULE, | 354 | .module = THIS_MODULE, |
358 | .ops = netlbl_calipso_ops, | 355 | .ops = netlbl_calipso_ops, |
359 | .n_ops = ARRAY_SIZE(netlbl_calipso_ops), | 356 | .n_ops = ARRAY_SIZE(netlbl_calipso_ops), |
diff --git a/net/netlabel/netlabel_cipso_v4.c b/net/netlabel/netlabel_cipso_v4.c index 9aacf2da3d98..ba7800f94ccc 100644 --- a/net/netlabel/netlabel_cipso_v4.c +++ b/net/netlabel/netlabel_cipso_v4.c | |||
@@ -734,28 +734,24 @@ static const struct genl_ops netlbl_cipsov4_ops[] = { | |||
734 | { | 734 | { |
735 | .cmd = NLBL_CIPSOV4_C_ADD, | 735 | .cmd = NLBL_CIPSOV4_C_ADD, |
736 | .flags = GENL_ADMIN_PERM, | 736 | .flags = GENL_ADMIN_PERM, |
737 | .policy = netlbl_cipsov4_genl_policy, | ||
738 | .doit = netlbl_cipsov4_add, | 737 | .doit = netlbl_cipsov4_add, |
739 | .dumpit = NULL, | 738 | .dumpit = NULL, |
740 | }, | 739 | }, |
741 | { | 740 | { |
742 | .cmd = NLBL_CIPSOV4_C_REMOVE, | 741 | .cmd = NLBL_CIPSOV4_C_REMOVE, |
743 | .flags = GENL_ADMIN_PERM, | 742 | .flags = GENL_ADMIN_PERM, |
744 | .policy = netlbl_cipsov4_genl_policy, | ||
745 | .doit = netlbl_cipsov4_remove, | 743 | .doit = netlbl_cipsov4_remove, |
746 | .dumpit = NULL, | 744 | .dumpit = NULL, |
747 | }, | 745 | }, |
748 | { | 746 | { |
749 | .cmd = NLBL_CIPSOV4_C_LIST, | 747 | .cmd = NLBL_CIPSOV4_C_LIST, |
750 | .flags = 0, | 748 | .flags = 0, |
751 | .policy = netlbl_cipsov4_genl_policy, | ||
752 | .doit = netlbl_cipsov4_list, | 749 | .doit = netlbl_cipsov4_list, |
753 | .dumpit = NULL, | 750 | .dumpit = NULL, |
754 | }, | 751 | }, |
755 | { | 752 | { |
756 | .cmd = NLBL_CIPSOV4_C_LISTALL, | 753 | .cmd = NLBL_CIPSOV4_C_LISTALL, |
757 | .flags = 0, | 754 | .flags = 0, |
758 | .policy = netlbl_cipsov4_genl_policy, | ||
759 | .doit = NULL, | 755 | .doit = NULL, |
760 | .dumpit = netlbl_cipsov4_listall, | 756 | .dumpit = netlbl_cipsov4_listall, |
761 | }, | 757 | }, |
@@ -766,6 +762,7 @@ static struct genl_family netlbl_cipsov4_gnl_family __ro_after_init = { | |||
766 | .name = NETLBL_NLTYPE_CIPSOV4_NAME, | 762 | .name = NETLBL_NLTYPE_CIPSOV4_NAME, |
767 | .version = NETLBL_PROTO_VERSION, | 763 | .version = NETLBL_PROTO_VERSION, |
768 | .maxattr = NLBL_CIPSOV4_A_MAX, | 764 | .maxattr = NLBL_CIPSOV4_A_MAX, |
765 | .policy = netlbl_cipsov4_genl_policy, | ||
769 | .module = THIS_MODULE, | 766 | .module = THIS_MODULE, |
770 | .ops = netlbl_cipsov4_ops, | 767 | .ops = netlbl_cipsov4_ops, |
771 | .n_ops = ARRAY_SIZE(netlbl_cipsov4_ops), | 768 | .n_ops = ARRAY_SIZE(netlbl_cipsov4_ops), |
diff --git a/net/netlabel/netlabel_mgmt.c b/net/netlabel/netlabel_mgmt.c index 21e0095b1d14..a16eacfb2236 100644 --- a/net/netlabel/netlabel_mgmt.c +++ b/net/netlabel/netlabel_mgmt.c | |||
@@ -773,56 +773,48 @@ static const struct genl_ops netlbl_mgmt_genl_ops[] = { | |||
773 | { | 773 | { |
774 | .cmd = NLBL_MGMT_C_ADD, | 774 | .cmd = NLBL_MGMT_C_ADD, |
775 | .flags = GENL_ADMIN_PERM, | 775 | .flags = GENL_ADMIN_PERM, |
776 | .policy = netlbl_mgmt_genl_policy, | ||
777 | .doit = netlbl_mgmt_add, | 776 | .doit = netlbl_mgmt_add, |
778 | .dumpit = NULL, | 777 | .dumpit = NULL, |
779 | }, | 778 | }, |
780 | { | 779 | { |
781 | .cmd = NLBL_MGMT_C_REMOVE, | 780 | .cmd = NLBL_MGMT_C_REMOVE, |
782 | .flags = GENL_ADMIN_PERM, | 781 | .flags = GENL_ADMIN_PERM, |
783 | .policy = netlbl_mgmt_genl_policy, | ||
784 | .doit = netlbl_mgmt_remove, | 782 | .doit = netlbl_mgmt_remove, |
785 | .dumpit = NULL, | 783 | .dumpit = NULL, |
786 | }, | 784 | }, |
787 | { | 785 | { |
788 | .cmd = NLBL_MGMT_C_LISTALL, | 786 | .cmd = NLBL_MGMT_C_LISTALL, |
789 | .flags = 0, | 787 | .flags = 0, |
790 | .policy = netlbl_mgmt_genl_policy, | ||
791 | .doit = NULL, | 788 | .doit = NULL, |
792 | .dumpit = netlbl_mgmt_listall, | 789 | .dumpit = netlbl_mgmt_listall, |
793 | }, | 790 | }, |
794 | { | 791 | { |
795 | .cmd = NLBL_MGMT_C_ADDDEF, | 792 | .cmd = NLBL_MGMT_C_ADDDEF, |
796 | .flags = GENL_ADMIN_PERM, | 793 | .flags = GENL_ADMIN_PERM, |
797 | .policy = netlbl_mgmt_genl_policy, | ||
798 | .doit = netlbl_mgmt_adddef, | 794 | .doit = netlbl_mgmt_adddef, |
799 | .dumpit = NULL, | 795 | .dumpit = NULL, |
800 | }, | 796 | }, |
801 | { | 797 | { |
802 | .cmd = NLBL_MGMT_C_REMOVEDEF, | 798 | .cmd = NLBL_MGMT_C_REMOVEDEF, |
803 | .flags = GENL_ADMIN_PERM, | 799 | .flags = GENL_ADMIN_PERM, |
804 | .policy = netlbl_mgmt_genl_policy, | ||
805 | .doit = netlbl_mgmt_removedef, | 800 | .doit = netlbl_mgmt_removedef, |
806 | .dumpit = NULL, | 801 | .dumpit = NULL, |
807 | }, | 802 | }, |
808 | { | 803 | { |
809 | .cmd = NLBL_MGMT_C_LISTDEF, | 804 | .cmd = NLBL_MGMT_C_LISTDEF, |
810 | .flags = 0, | 805 | .flags = 0, |
811 | .policy = netlbl_mgmt_genl_policy, | ||
812 | .doit = netlbl_mgmt_listdef, | 806 | .doit = netlbl_mgmt_listdef, |
813 | .dumpit = NULL, | 807 | .dumpit = NULL, |
814 | }, | 808 | }, |
815 | { | 809 | { |
816 | .cmd = NLBL_MGMT_C_PROTOCOLS, | 810 | .cmd = NLBL_MGMT_C_PROTOCOLS, |
817 | .flags = 0, | 811 | .flags = 0, |
818 | .policy = netlbl_mgmt_genl_policy, | ||
819 | .doit = NULL, | 812 | .doit = NULL, |
820 | .dumpit = netlbl_mgmt_protocols, | 813 | .dumpit = netlbl_mgmt_protocols, |
821 | }, | 814 | }, |
822 | { | 815 | { |
823 | .cmd = NLBL_MGMT_C_VERSION, | 816 | .cmd = NLBL_MGMT_C_VERSION, |
824 | .flags = 0, | 817 | .flags = 0, |
825 | .policy = netlbl_mgmt_genl_policy, | ||
826 | .doit = netlbl_mgmt_version, | 818 | .doit = netlbl_mgmt_version, |
827 | .dumpit = NULL, | 819 | .dumpit = NULL, |
828 | }, | 820 | }, |
@@ -833,6 +825,7 @@ static struct genl_family netlbl_mgmt_gnl_family __ro_after_init = { | |||
833 | .name = NETLBL_NLTYPE_MGMT_NAME, | 825 | .name = NETLBL_NLTYPE_MGMT_NAME, |
834 | .version = NETLBL_PROTO_VERSION, | 826 | .version = NETLBL_PROTO_VERSION, |
835 | .maxattr = NLBL_MGMT_A_MAX, | 827 | .maxattr = NLBL_MGMT_A_MAX, |
828 | .policy = netlbl_mgmt_genl_policy, | ||
836 | .module = THIS_MODULE, | 829 | .module = THIS_MODULE, |
837 | .ops = netlbl_mgmt_genl_ops, | 830 | .ops = netlbl_mgmt_genl_ops, |
838 | .n_ops = ARRAY_SIZE(netlbl_mgmt_genl_ops), | 831 | .n_ops = ARRAY_SIZE(netlbl_mgmt_genl_ops), |
diff --git a/net/netlabel/netlabel_unlabeled.c b/net/netlabel/netlabel_unlabeled.c index c92894c3e40a..6b1b6c2b5141 100644 --- a/net/netlabel/netlabel_unlabeled.c +++ b/net/netlabel/netlabel_unlabeled.c | |||
@@ -1318,56 +1318,48 @@ static const struct genl_ops netlbl_unlabel_genl_ops[] = { | |||
1318 | { | 1318 | { |
1319 | .cmd = NLBL_UNLABEL_C_STATICADD, | 1319 | .cmd = NLBL_UNLABEL_C_STATICADD, |
1320 | .flags = GENL_ADMIN_PERM, | 1320 | .flags = GENL_ADMIN_PERM, |
1321 | .policy = netlbl_unlabel_genl_policy, | ||
1322 | .doit = netlbl_unlabel_staticadd, | 1321 | .doit = netlbl_unlabel_staticadd, |
1323 | .dumpit = NULL, | 1322 | .dumpit = NULL, |
1324 | }, | 1323 | }, |
1325 | { | 1324 | { |
1326 | .cmd = NLBL_UNLABEL_C_STATICREMOVE, | 1325 | .cmd = NLBL_UNLABEL_C_STATICREMOVE, |
1327 | .flags = GENL_ADMIN_PERM, | 1326 | .flags = GENL_ADMIN_PERM, |
1328 | .policy = netlbl_unlabel_genl_policy, | ||
1329 | .doit = netlbl_unlabel_staticremove, | 1327 | .doit = netlbl_unlabel_staticremove, |
1330 | .dumpit = NULL, | 1328 | .dumpit = NULL, |
1331 | }, | 1329 | }, |
1332 | { | 1330 | { |
1333 | .cmd = NLBL_UNLABEL_C_STATICLIST, | 1331 | .cmd = NLBL_UNLABEL_C_STATICLIST, |
1334 | .flags = 0, | 1332 | .flags = 0, |
1335 | .policy = netlbl_unlabel_genl_policy, | ||
1336 | .doit = NULL, | 1333 | .doit = NULL, |
1337 | .dumpit = netlbl_unlabel_staticlist, | 1334 | .dumpit = netlbl_unlabel_staticlist, |
1338 | }, | 1335 | }, |
1339 | { | 1336 | { |
1340 | .cmd = NLBL_UNLABEL_C_STATICADDDEF, | 1337 | .cmd = NLBL_UNLABEL_C_STATICADDDEF, |
1341 | .flags = GENL_ADMIN_PERM, | 1338 | .flags = GENL_ADMIN_PERM, |
1342 | .policy = netlbl_unlabel_genl_policy, | ||
1343 | .doit = netlbl_unlabel_staticadddef, | 1339 | .doit = netlbl_unlabel_staticadddef, |
1344 | .dumpit = NULL, | 1340 | .dumpit = NULL, |
1345 | }, | 1341 | }, |
1346 | { | 1342 | { |
1347 | .cmd = NLBL_UNLABEL_C_STATICREMOVEDEF, | 1343 | .cmd = NLBL_UNLABEL_C_STATICREMOVEDEF, |
1348 | .flags = GENL_ADMIN_PERM, | 1344 | .flags = GENL_ADMIN_PERM, |
1349 | .policy = netlbl_unlabel_genl_policy, | ||
1350 | .doit = netlbl_unlabel_staticremovedef, | 1345 | .doit = netlbl_unlabel_staticremovedef, |
1351 | .dumpit = NULL, | 1346 | .dumpit = NULL, |
1352 | }, | 1347 | }, |
1353 | { | 1348 | { |
1354 | .cmd = NLBL_UNLABEL_C_STATICLISTDEF, | 1349 | .cmd = NLBL_UNLABEL_C_STATICLISTDEF, |
1355 | .flags = 0, | 1350 | .flags = 0, |
1356 | .policy = netlbl_unlabel_genl_policy, | ||
1357 | .doit = NULL, | 1351 | .doit = NULL, |
1358 | .dumpit = netlbl_unlabel_staticlistdef, | 1352 | .dumpit = netlbl_unlabel_staticlistdef, |
1359 | }, | 1353 | }, |
1360 | { | 1354 | { |
1361 | .cmd = NLBL_UNLABEL_C_ACCEPT, | 1355 | .cmd = NLBL_UNLABEL_C_ACCEPT, |
1362 | .flags = GENL_ADMIN_PERM, | 1356 | .flags = GENL_ADMIN_PERM, |
1363 | .policy = netlbl_unlabel_genl_policy, | ||
1364 | .doit = netlbl_unlabel_accept, | 1357 | .doit = netlbl_unlabel_accept, |
1365 | .dumpit = NULL, | 1358 | .dumpit = NULL, |
1366 | }, | 1359 | }, |
1367 | { | 1360 | { |
1368 | .cmd = NLBL_UNLABEL_C_LIST, | 1361 | .cmd = NLBL_UNLABEL_C_LIST, |
1369 | .flags = 0, | 1362 | .flags = 0, |
1370 | .policy = netlbl_unlabel_genl_policy, | ||
1371 | .doit = netlbl_unlabel_list, | 1363 | .doit = netlbl_unlabel_list, |
1372 | .dumpit = NULL, | 1364 | .dumpit = NULL, |
1373 | }, | 1365 | }, |
@@ -1378,6 +1370,7 @@ static struct genl_family netlbl_unlabel_gnl_family __ro_after_init = { | |||
1378 | .name = NETLBL_NLTYPE_UNLABELED_NAME, | 1370 | .name = NETLBL_NLTYPE_UNLABELED_NAME, |
1379 | .version = NETLBL_PROTO_VERSION, | 1371 | .version = NETLBL_PROTO_VERSION, |
1380 | .maxattr = NLBL_UNLABEL_A_MAX, | 1372 | .maxattr = NLBL_UNLABEL_A_MAX, |
1373 | .policy = netlbl_unlabel_genl_policy, | ||
1381 | .module = THIS_MODULE, | 1374 | .module = THIS_MODULE, |
1382 | .ops = netlbl_unlabel_genl_ops, | 1375 | .ops = netlbl_unlabel_genl_ops, |
1383 | .n_ops = ARRAY_SIZE(netlbl_unlabel_genl_ops), | 1376 | .n_ops = ARRAY_SIZE(netlbl_unlabel_genl_ops), |
diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c index 25eeb6d2a75a..a75ea33fb5ea 100644 --- a/net/netlink/genetlink.c +++ b/net/netlink/genetlink.c | |||
@@ -577,7 +577,7 @@ static int genl_family_rcv_msg(const struct genl_family *family, | |||
577 | 577 | ||
578 | if (attrbuf) { | 578 | if (attrbuf) { |
579 | err = nlmsg_parse(nlh, hdrlen, attrbuf, family->maxattr, | 579 | err = nlmsg_parse(nlh, hdrlen, attrbuf, family->maxattr, |
580 | ops->policy, extack); | 580 | family->policy, extack); |
581 | if (err < 0) | 581 | if (err < 0) |
582 | goto out; | 582 | goto out; |
583 | } | 583 | } |
@@ -677,7 +677,7 @@ static int ctrl_fill_info(const struct genl_family *family, u32 portid, u32 seq, | |||
677 | op_flags |= GENL_CMD_CAP_DUMP; | 677 | op_flags |= GENL_CMD_CAP_DUMP; |
678 | if (ops->doit) | 678 | if (ops->doit) |
679 | op_flags |= GENL_CMD_CAP_DO; | 679 | op_flags |= GENL_CMD_CAP_DO; |
680 | if (ops->policy) | 680 | if (family->policy) |
681 | op_flags |= GENL_CMD_CAP_HASPOL; | 681 | op_flags |= GENL_CMD_CAP_HASPOL; |
682 | 682 | ||
683 | nest = nla_nest_start(skb, i + 1); | 683 | nest = nla_nest_start(skb, i + 1); |
@@ -939,7 +939,6 @@ static const struct genl_ops genl_ctrl_ops[] = { | |||
939 | .cmd = CTRL_CMD_GETFAMILY, | 939 | .cmd = CTRL_CMD_GETFAMILY, |
940 | .doit = ctrl_getfamily, | 940 | .doit = ctrl_getfamily, |
941 | .dumpit = ctrl_dumpfamily, | 941 | .dumpit = ctrl_dumpfamily, |
942 | .policy = ctrl_policy, | ||
943 | }, | 942 | }, |
944 | }; | 943 | }; |
945 | 944 | ||
@@ -957,6 +956,7 @@ static struct genl_family genl_ctrl __ro_after_init = { | |||
957 | .name = "nlctrl", | 956 | .name = "nlctrl", |
958 | .version = 0x2, | 957 | .version = 0x2, |
959 | .maxattr = CTRL_ATTR_MAX, | 958 | .maxattr = CTRL_ATTR_MAX, |
959 | .policy = ctrl_policy, | ||
960 | .netnsok = true, | 960 | .netnsok = true, |
961 | }; | 961 | }; |
962 | 962 | ||
diff --git a/net/nfc/netlink.c b/net/nfc/netlink.c index 376181cc1def..4d9f3ac8d562 100644 --- a/net/nfc/netlink.c +++ b/net/nfc/netlink.c | |||
@@ -1670,99 +1670,80 @@ static const struct genl_ops nfc_genl_ops[] = { | |||
1670 | .doit = nfc_genl_get_device, | 1670 | .doit = nfc_genl_get_device, |
1671 | .dumpit = nfc_genl_dump_devices, | 1671 | .dumpit = nfc_genl_dump_devices, |
1672 | .done = nfc_genl_dump_devices_done, | 1672 | .done = nfc_genl_dump_devices_done, |
1673 | .policy = nfc_genl_policy, | ||
1674 | }, | 1673 | }, |
1675 | { | 1674 | { |
1676 | .cmd = NFC_CMD_DEV_UP, | 1675 | .cmd = NFC_CMD_DEV_UP, |
1677 | .doit = nfc_genl_dev_up, | 1676 | .doit = nfc_genl_dev_up, |
1678 | .policy = nfc_genl_policy, | ||
1679 | }, | 1677 | }, |
1680 | { | 1678 | { |
1681 | .cmd = NFC_CMD_DEV_DOWN, | 1679 | .cmd = NFC_CMD_DEV_DOWN, |
1682 | .doit = nfc_genl_dev_down, | 1680 | .doit = nfc_genl_dev_down, |
1683 | .policy = nfc_genl_policy, | ||
1684 | }, | 1681 | }, |
1685 | { | 1682 | { |
1686 | .cmd = NFC_CMD_START_POLL, | 1683 | .cmd = NFC_CMD_START_POLL, |
1687 | .doit = nfc_genl_start_poll, | 1684 | .doit = nfc_genl_start_poll, |
1688 | .policy = nfc_genl_policy, | ||
1689 | }, | 1685 | }, |
1690 | { | 1686 | { |
1691 | .cmd = NFC_CMD_STOP_POLL, | 1687 | .cmd = NFC_CMD_STOP_POLL, |
1692 | .doit = nfc_genl_stop_poll, | 1688 | .doit = nfc_genl_stop_poll, |
1693 | .policy = nfc_genl_policy, | ||
1694 | }, | 1689 | }, |
1695 | { | 1690 | { |
1696 | .cmd = NFC_CMD_DEP_LINK_UP, | 1691 | .cmd = NFC_CMD_DEP_LINK_UP, |
1697 | .doit = nfc_genl_dep_link_up, | 1692 | .doit = nfc_genl_dep_link_up, |
1698 | .policy = nfc_genl_policy, | ||
1699 | }, | 1693 | }, |
1700 | { | 1694 | { |
1701 | .cmd = NFC_CMD_DEP_LINK_DOWN, | 1695 | .cmd = NFC_CMD_DEP_LINK_DOWN, |
1702 | .doit = nfc_genl_dep_link_down, | 1696 | .doit = nfc_genl_dep_link_down, |
1703 | .policy = nfc_genl_policy, | ||
1704 | }, | 1697 | }, |
1705 | { | 1698 | { |
1706 | .cmd = NFC_CMD_GET_TARGET, | 1699 | .cmd = NFC_CMD_GET_TARGET, |
1707 | .dumpit = nfc_genl_dump_targets, | 1700 | .dumpit = nfc_genl_dump_targets, |
1708 | .done = nfc_genl_dump_targets_done, | 1701 | .done = nfc_genl_dump_targets_done, |
1709 | .policy = nfc_genl_policy, | ||
1710 | }, | 1702 | }, |
1711 | { | 1703 | { |
1712 | .cmd = NFC_CMD_LLC_GET_PARAMS, | 1704 | .cmd = NFC_CMD_LLC_GET_PARAMS, |
1713 | .doit = nfc_genl_llc_get_params, | 1705 | .doit = nfc_genl_llc_get_params, |
1714 | .policy = nfc_genl_policy, | ||
1715 | }, | 1706 | }, |
1716 | { | 1707 | { |
1717 | .cmd = NFC_CMD_LLC_SET_PARAMS, | 1708 | .cmd = NFC_CMD_LLC_SET_PARAMS, |
1718 | .doit = nfc_genl_llc_set_params, | 1709 | .doit = nfc_genl_llc_set_params, |
1719 | .policy = nfc_genl_policy, | ||
1720 | }, | 1710 | }, |
1721 | { | 1711 | { |
1722 | .cmd = NFC_CMD_LLC_SDREQ, | 1712 | .cmd = NFC_CMD_LLC_SDREQ, |
1723 | .doit = nfc_genl_llc_sdreq, | 1713 | .doit = nfc_genl_llc_sdreq, |
1724 | .policy = nfc_genl_policy, | ||
1725 | }, | 1714 | }, |
1726 | { | 1715 | { |
1727 | .cmd = NFC_CMD_FW_DOWNLOAD, | 1716 | .cmd = NFC_CMD_FW_DOWNLOAD, |
1728 | .doit = nfc_genl_fw_download, | 1717 | .doit = nfc_genl_fw_download, |
1729 | .policy = nfc_genl_policy, | ||
1730 | }, | 1718 | }, |
1731 | { | 1719 | { |
1732 | .cmd = NFC_CMD_ENABLE_SE, | 1720 | .cmd = NFC_CMD_ENABLE_SE, |
1733 | .doit = nfc_genl_enable_se, | 1721 | .doit = nfc_genl_enable_se, |
1734 | .policy = nfc_genl_policy, | ||
1735 | }, | 1722 | }, |
1736 | { | 1723 | { |
1737 | .cmd = NFC_CMD_DISABLE_SE, | 1724 | .cmd = NFC_CMD_DISABLE_SE, |
1738 | .doit = nfc_genl_disable_se, | 1725 | .doit = nfc_genl_disable_se, |
1739 | .policy = nfc_genl_policy, | ||
1740 | }, | 1726 | }, |
1741 | { | 1727 | { |
1742 | .cmd = NFC_CMD_GET_SE, | 1728 | .cmd = NFC_CMD_GET_SE, |
1743 | .dumpit = nfc_genl_dump_ses, | 1729 | .dumpit = nfc_genl_dump_ses, |
1744 | .done = nfc_genl_dump_ses_done, | 1730 | .done = nfc_genl_dump_ses_done, |
1745 | .policy = nfc_genl_policy, | ||
1746 | }, | 1731 | }, |
1747 | { | 1732 | { |
1748 | .cmd = NFC_CMD_SE_IO, | 1733 | .cmd = NFC_CMD_SE_IO, |
1749 | .doit = nfc_genl_se_io, | 1734 | .doit = nfc_genl_se_io, |
1750 | .policy = nfc_genl_policy, | ||
1751 | }, | 1735 | }, |
1752 | { | 1736 | { |
1753 | .cmd = NFC_CMD_ACTIVATE_TARGET, | 1737 | .cmd = NFC_CMD_ACTIVATE_TARGET, |
1754 | .doit = nfc_genl_activate_target, | 1738 | .doit = nfc_genl_activate_target, |
1755 | .policy = nfc_genl_policy, | ||
1756 | }, | 1739 | }, |
1757 | { | 1740 | { |
1758 | .cmd = NFC_CMD_VENDOR, | 1741 | .cmd = NFC_CMD_VENDOR, |
1759 | .doit = nfc_genl_vendor_cmd, | 1742 | .doit = nfc_genl_vendor_cmd, |
1760 | .policy = nfc_genl_policy, | ||
1761 | }, | 1743 | }, |
1762 | { | 1744 | { |
1763 | .cmd = NFC_CMD_DEACTIVATE_TARGET, | 1745 | .cmd = NFC_CMD_DEACTIVATE_TARGET, |
1764 | .doit = nfc_genl_deactivate_target, | 1746 | .doit = nfc_genl_deactivate_target, |
1765 | .policy = nfc_genl_policy, | ||
1766 | }, | 1747 | }, |
1767 | }; | 1748 | }; |
1768 | 1749 | ||
@@ -1771,6 +1752,7 @@ static struct genl_family nfc_genl_family __ro_after_init = { | |||
1771 | .name = NFC_GENL_NAME, | 1752 | .name = NFC_GENL_NAME, |
1772 | .version = NFC_GENL_VERSION, | 1753 | .version = NFC_GENL_VERSION, |
1773 | .maxattr = NFC_ATTR_MAX, | 1754 | .maxattr = NFC_ATTR_MAX, |
1755 | .policy = nfc_genl_policy, | ||
1774 | .module = THIS_MODULE, | 1756 | .module = THIS_MODULE, |
1775 | .ops = nfc_genl_ops, | 1757 | .ops = nfc_genl_ops, |
1776 | .n_ops = ARRAY_SIZE(nfc_genl_ops), | 1758 | .n_ops = ARRAY_SIZE(nfc_genl_ops), |
diff --git a/net/openvswitch/conntrack.c b/net/openvswitch/conntrack.c index 1b6896896fff..51080004677e 100644 --- a/net/openvswitch/conntrack.c +++ b/net/openvswitch/conntrack.c | |||
@@ -2154,18 +2154,15 @@ static struct genl_ops ct_limit_genl_ops[] = { | |||
2154 | { .cmd = OVS_CT_LIMIT_CMD_SET, | 2154 | { .cmd = OVS_CT_LIMIT_CMD_SET, |
2155 | .flags = GENL_ADMIN_PERM, /* Requires CAP_NET_ADMIN | 2155 | .flags = GENL_ADMIN_PERM, /* Requires CAP_NET_ADMIN |
2156 | * privilege. */ | 2156 | * privilege. */ |
2157 | .policy = ct_limit_policy, | ||
2158 | .doit = ovs_ct_limit_cmd_set, | 2157 | .doit = ovs_ct_limit_cmd_set, |
2159 | }, | 2158 | }, |
2160 | { .cmd = OVS_CT_LIMIT_CMD_DEL, | 2159 | { .cmd = OVS_CT_LIMIT_CMD_DEL, |
2161 | .flags = GENL_ADMIN_PERM, /* Requires CAP_NET_ADMIN | 2160 | .flags = GENL_ADMIN_PERM, /* Requires CAP_NET_ADMIN |
2162 | * privilege. */ | 2161 | * privilege. */ |
2163 | .policy = ct_limit_policy, | ||
2164 | .doit = ovs_ct_limit_cmd_del, | 2162 | .doit = ovs_ct_limit_cmd_del, |
2165 | }, | 2163 | }, |
2166 | { .cmd = OVS_CT_LIMIT_CMD_GET, | 2164 | { .cmd = OVS_CT_LIMIT_CMD_GET, |
2167 | .flags = 0, /* OK for unprivileged users. */ | 2165 | .flags = 0, /* OK for unprivileged users. */ |
2168 | .policy = ct_limit_policy, | ||
2169 | .doit = ovs_ct_limit_cmd_get, | 2166 | .doit = ovs_ct_limit_cmd_get, |
2170 | }, | 2167 | }, |
2171 | }; | 2168 | }; |
@@ -2179,6 +2176,7 @@ struct genl_family dp_ct_limit_genl_family __ro_after_init = { | |||
2179 | .name = OVS_CT_LIMIT_FAMILY, | 2176 | .name = OVS_CT_LIMIT_FAMILY, |
2180 | .version = OVS_CT_LIMIT_VERSION, | 2177 | .version = OVS_CT_LIMIT_VERSION, |
2181 | .maxattr = OVS_CT_LIMIT_ATTR_MAX, | 2178 | .maxattr = OVS_CT_LIMIT_ATTR_MAX, |
2179 | .policy = ct_limit_policy, | ||
2182 | .netnsok = true, | 2180 | .netnsok = true, |
2183 | .parallel_ops = true, | 2181 | .parallel_ops = true, |
2184 | .ops = ct_limit_genl_ops, | 2182 | .ops = ct_limit_genl_ops, |
diff --git a/net/openvswitch/datapath.c b/net/openvswitch/datapath.c index 9dd158ab51b3..a64d3eb1f9a9 100644 --- a/net/openvswitch/datapath.c +++ b/net/openvswitch/datapath.c | |||
@@ -639,7 +639,6 @@ static const struct nla_policy packet_policy[OVS_PACKET_ATTR_MAX + 1] = { | |||
639 | static const struct genl_ops dp_packet_genl_ops[] = { | 639 | static const struct genl_ops dp_packet_genl_ops[] = { |
640 | { .cmd = OVS_PACKET_CMD_EXECUTE, | 640 | { .cmd = OVS_PACKET_CMD_EXECUTE, |
641 | .flags = GENL_UNS_ADMIN_PERM, /* Requires CAP_NET_ADMIN privilege. */ | 641 | .flags = GENL_UNS_ADMIN_PERM, /* Requires CAP_NET_ADMIN privilege. */ |
642 | .policy = packet_policy, | ||
643 | .doit = ovs_packet_cmd_execute | 642 | .doit = ovs_packet_cmd_execute |
644 | } | 643 | } |
645 | }; | 644 | }; |
@@ -649,6 +648,7 @@ static struct genl_family dp_packet_genl_family __ro_after_init = { | |||
649 | .name = OVS_PACKET_FAMILY, | 648 | .name = OVS_PACKET_FAMILY, |
650 | .version = OVS_PACKET_VERSION, | 649 | .version = OVS_PACKET_VERSION, |
651 | .maxattr = OVS_PACKET_ATTR_MAX, | 650 | .maxattr = OVS_PACKET_ATTR_MAX, |
651 | .policy = packet_policy, | ||
652 | .netnsok = true, | 652 | .netnsok = true, |
653 | .parallel_ops = true, | 653 | .parallel_ops = true, |
654 | .ops = dp_packet_genl_ops, | 654 | .ops = dp_packet_genl_ops, |
@@ -1424,23 +1424,19 @@ static const struct nla_policy flow_policy[OVS_FLOW_ATTR_MAX + 1] = { | |||
1424 | static const struct genl_ops dp_flow_genl_ops[] = { | 1424 | static const struct genl_ops dp_flow_genl_ops[] = { |
1425 | { .cmd = OVS_FLOW_CMD_NEW, | 1425 | { .cmd = OVS_FLOW_CMD_NEW, |
1426 | .flags = GENL_UNS_ADMIN_PERM, /* Requires CAP_NET_ADMIN privilege. */ | 1426 | .flags = GENL_UNS_ADMIN_PERM, /* Requires CAP_NET_ADMIN privilege. */ |
1427 | .policy = flow_policy, | ||
1428 | .doit = ovs_flow_cmd_new | 1427 | .doit = ovs_flow_cmd_new |
1429 | }, | 1428 | }, |
1430 | { .cmd = OVS_FLOW_CMD_DEL, | 1429 | { .cmd = OVS_FLOW_CMD_DEL, |
1431 | .flags = GENL_UNS_ADMIN_PERM, /* Requires CAP_NET_ADMIN privilege. */ | 1430 | .flags = GENL_UNS_ADMIN_PERM, /* Requires CAP_NET_ADMIN privilege. */ |
1432 | .policy = flow_policy, | ||
1433 | .doit = ovs_flow_cmd_del | 1431 | .doit = ovs_flow_cmd_del |
1434 | }, | 1432 | }, |
1435 | { .cmd = OVS_FLOW_CMD_GET, | 1433 | { .cmd = OVS_FLOW_CMD_GET, |
1436 | .flags = 0, /* OK for unprivileged users. */ | 1434 | .flags = 0, /* OK for unprivileged users. */ |
1437 | .policy = flow_policy, | ||
1438 | .doit = ovs_flow_cmd_get, | 1435 | .doit = ovs_flow_cmd_get, |
1439 | .dumpit = ovs_flow_cmd_dump | 1436 | .dumpit = ovs_flow_cmd_dump |
1440 | }, | 1437 | }, |
1441 | { .cmd = OVS_FLOW_CMD_SET, | 1438 | { .cmd = OVS_FLOW_CMD_SET, |
1442 | .flags = GENL_UNS_ADMIN_PERM, /* Requires CAP_NET_ADMIN privilege. */ | 1439 | .flags = GENL_UNS_ADMIN_PERM, /* Requires CAP_NET_ADMIN privilege. */ |
1443 | .policy = flow_policy, | ||
1444 | .doit = ovs_flow_cmd_set, | 1440 | .doit = ovs_flow_cmd_set, |
1445 | }, | 1441 | }, |
1446 | }; | 1442 | }; |
@@ -1450,6 +1446,7 @@ static struct genl_family dp_flow_genl_family __ro_after_init = { | |||
1450 | .name = OVS_FLOW_FAMILY, | 1446 | .name = OVS_FLOW_FAMILY, |
1451 | .version = OVS_FLOW_VERSION, | 1447 | .version = OVS_FLOW_VERSION, |
1452 | .maxattr = OVS_FLOW_ATTR_MAX, | 1448 | .maxattr = OVS_FLOW_ATTR_MAX, |
1449 | .policy = flow_policy, | ||
1453 | .netnsok = true, | 1450 | .netnsok = true, |
1454 | .parallel_ops = true, | 1451 | .parallel_ops = true, |
1455 | .ops = dp_flow_genl_ops, | 1452 | .ops = dp_flow_genl_ops, |
@@ -1817,23 +1814,19 @@ static const struct nla_policy datapath_policy[OVS_DP_ATTR_MAX + 1] = { | |||
1817 | static const struct genl_ops dp_datapath_genl_ops[] = { | 1814 | static const struct genl_ops dp_datapath_genl_ops[] = { |
1818 | { .cmd = OVS_DP_CMD_NEW, | 1815 | { .cmd = OVS_DP_CMD_NEW, |
1819 | .flags = GENL_UNS_ADMIN_PERM, /* Requires CAP_NET_ADMIN privilege. */ | 1816 | .flags = GENL_UNS_ADMIN_PERM, /* Requires CAP_NET_ADMIN privilege. */ |
1820 | .policy = datapath_policy, | ||
1821 | .doit = ovs_dp_cmd_new | 1817 | .doit = ovs_dp_cmd_new |
1822 | }, | 1818 | }, |
1823 | { .cmd = OVS_DP_CMD_DEL, | 1819 | { .cmd = OVS_DP_CMD_DEL, |
1824 | .flags = GENL_UNS_ADMIN_PERM, /* Requires CAP_NET_ADMIN privilege. */ | 1820 | .flags = GENL_UNS_ADMIN_PERM, /* Requires CAP_NET_ADMIN privilege. */ |
1825 | .policy = datapath_policy, | ||
1826 | .doit = ovs_dp_cmd_del | 1821 | .doit = ovs_dp_cmd_del |
1827 | }, | 1822 | }, |
1828 | { .cmd = OVS_DP_CMD_GET, | 1823 | { .cmd = OVS_DP_CMD_GET, |
1829 | .flags = 0, /* OK for unprivileged users. */ | 1824 | .flags = 0, /* OK for unprivileged users. */ |
1830 | .policy = datapath_policy, | ||
1831 | .doit = ovs_dp_cmd_get, | 1825 | .doit = ovs_dp_cmd_get, |
1832 | .dumpit = ovs_dp_cmd_dump | 1826 | .dumpit = ovs_dp_cmd_dump |
1833 | }, | 1827 | }, |
1834 | { .cmd = OVS_DP_CMD_SET, | 1828 | { .cmd = OVS_DP_CMD_SET, |
1835 | .flags = GENL_UNS_ADMIN_PERM, /* Requires CAP_NET_ADMIN privilege. */ | 1829 | .flags = GENL_UNS_ADMIN_PERM, /* Requires CAP_NET_ADMIN privilege. */ |
1836 | .policy = datapath_policy, | ||
1837 | .doit = ovs_dp_cmd_set, | 1830 | .doit = ovs_dp_cmd_set, |
1838 | }, | 1831 | }, |
1839 | }; | 1832 | }; |
@@ -1843,6 +1836,7 @@ static struct genl_family dp_datapath_genl_family __ro_after_init = { | |||
1843 | .name = OVS_DATAPATH_FAMILY, | 1836 | .name = OVS_DATAPATH_FAMILY, |
1844 | .version = OVS_DATAPATH_VERSION, | 1837 | .version = OVS_DATAPATH_VERSION, |
1845 | .maxattr = OVS_DP_ATTR_MAX, | 1838 | .maxattr = OVS_DP_ATTR_MAX, |
1839 | .policy = datapath_policy, | ||
1846 | .netnsok = true, | 1840 | .netnsok = true, |
1847 | .parallel_ops = true, | 1841 | .parallel_ops = true, |
1848 | .ops = dp_datapath_genl_ops, | 1842 | .ops = dp_datapath_genl_ops, |
@@ -2260,23 +2254,19 @@ static const struct nla_policy vport_policy[OVS_VPORT_ATTR_MAX + 1] = { | |||
2260 | static const struct genl_ops dp_vport_genl_ops[] = { | 2254 | static const struct genl_ops dp_vport_genl_ops[] = { |
2261 | { .cmd = OVS_VPORT_CMD_NEW, | 2255 | { .cmd = OVS_VPORT_CMD_NEW, |
2262 | .flags = GENL_UNS_ADMIN_PERM, /* Requires CAP_NET_ADMIN privilege. */ | 2256 | .flags = GENL_UNS_ADMIN_PERM, /* Requires CAP_NET_ADMIN privilege. */ |
2263 | .policy = vport_policy, | ||
2264 | .doit = ovs_vport_cmd_new | 2257 | .doit = ovs_vport_cmd_new |
2265 | }, | 2258 | }, |
2266 | { .cmd = OVS_VPORT_CMD_DEL, | 2259 | { .cmd = OVS_VPORT_CMD_DEL, |
2267 | .flags = GENL_UNS_ADMIN_PERM, /* Requires CAP_NET_ADMIN privilege. */ | 2260 | .flags = GENL_UNS_ADMIN_PERM, /* Requires CAP_NET_ADMIN privilege. */ |
2268 | .policy = vport_policy, | ||
2269 | .doit = ovs_vport_cmd_del | 2261 | .doit = ovs_vport_cmd_del |
2270 | }, | 2262 | }, |
2271 | { .cmd = OVS_VPORT_CMD_GET, | 2263 | { .cmd = OVS_VPORT_CMD_GET, |
2272 | .flags = 0, /* OK for unprivileged users. */ | 2264 | .flags = 0, /* OK for unprivileged users. */ |
2273 | .policy = vport_policy, | ||
2274 | .doit = ovs_vport_cmd_get, | 2265 | .doit = ovs_vport_cmd_get, |
2275 | .dumpit = ovs_vport_cmd_dump | 2266 | .dumpit = ovs_vport_cmd_dump |
2276 | }, | 2267 | }, |
2277 | { .cmd = OVS_VPORT_CMD_SET, | 2268 | { .cmd = OVS_VPORT_CMD_SET, |
2278 | .flags = GENL_UNS_ADMIN_PERM, /* Requires CAP_NET_ADMIN privilege. */ | 2269 | .flags = GENL_UNS_ADMIN_PERM, /* Requires CAP_NET_ADMIN privilege. */ |
2279 | .policy = vport_policy, | ||
2280 | .doit = ovs_vport_cmd_set, | 2270 | .doit = ovs_vport_cmd_set, |
2281 | }, | 2271 | }, |
2282 | }; | 2272 | }; |
@@ -2286,6 +2276,7 @@ struct genl_family dp_vport_genl_family __ro_after_init = { | |||
2286 | .name = OVS_VPORT_FAMILY, | 2276 | .name = OVS_VPORT_FAMILY, |
2287 | .version = OVS_VPORT_VERSION, | 2277 | .version = OVS_VPORT_VERSION, |
2288 | .maxattr = OVS_VPORT_ATTR_MAX, | 2278 | .maxattr = OVS_VPORT_ATTR_MAX, |
2279 | .policy = vport_policy, | ||
2289 | .netnsok = true, | 2280 | .netnsok = true, |
2290 | .parallel_ops = true, | 2281 | .parallel_ops = true, |
2291 | .ops = dp_vport_genl_ops, | 2282 | .ops = dp_vport_genl_ops, |
diff --git a/net/openvswitch/meter.c b/net/openvswitch/meter.c index 43849d752a1e..0be3d097ae01 100644 --- a/net/openvswitch/meter.c +++ b/net/openvswitch/meter.c | |||
@@ -527,26 +527,22 @@ bool ovs_meter_execute(struct datapath *dp, struct sk_buff *skb, | |||
527 | static struct genl_ops dp_meter_genl_ops[] = { | 527 | static struct genl_ops dp_meter_genl_ops[] = { |
528 | { .cmd = OVS_METER_CMD_FEATURES, | 528 | { .cmd = OVS_METER_CMD_FEATURES, |
529 | .flags = 0, /* OK for unprivileged users. */ | 529 | .flags = 0, /* OK for unprivileged users. */ |
530 | .policy = meter_policy, | ||
531 | .doit = ovs_meter_cmd_features | 530 | .doit = ovs_meter_cmd_features |
532 | }, | 531 | }, |
533 | { .cmd = OVS_METER_CMD_SET, | 532 | { .cmd = OVS_METER_CMD_SET, |
534 | .flags = GENL_ADMIN_PERM, /* Requires CAP_NET_ADMIN | 533 | .flags = GENL_ADMIN_PERM, /* Requires CAP_NET_ADMIN |
535 | * privilege. | 534 | * privilege. |
536 | */ | 535 | */ |
537 | .policy = meter_policy, | ||
538 | .doit = ovs_meter_cmd_set, | 536 | .doit = ovs_meter_cmd_set, |
539 | }, | 537 | }, |
540 | { .cmd = OVS_METER_CMD_GET, | 538 | { .cmd = OVS_METER_CMD_GET, |
541 | .flags = 0, /* OK for unprivileged users. */ | 539 | .flags = 0, /* OK for unprivileged users. */ |
542 | .policy = meter_policy, | ||
543 | .doit = ovs_meter_cmd_get, | 540 | .doit = ovs_meter_cmd_get, |
544 | }, | 541 | }, |
545 | { .cmd = OVS_METER_CMD_DEL, | 542 | { .cmd = OVS_METER_CMD_DEL, |
546 | .flags = GENL_ADMIN_PERM, /* Requires CAP_NET_ADMIN | 543 | .flags = GENL_ADMIN_PERM, /* Requires CAP_NET_ADMIN |
547 | * privilege. | 544 | * privilege. |
548 | */ | 545 | */ |
549 | .policy = meter_policy, | ||
550 | .doit = ovs_meter_cmd_del | 546 | .doit = ovs_meter_cmd_del |
551 | }, | 547 | }, |
552 | }; | 548 | }; |
@@ -560,6 +556,7 @@ struct genl_family dp_meter_genl_family __ro_after_init = { | |||
560 | .name = OVS_METER_FAMILY, | 556 | .name = OVS_METER_FAMILY, |
561 | .version = OVS_METER_VERSION, | 557 | .version = OVS_METER_VERSION, |
562 | .maxattr = OVS_METER_ATTR_MAX, | 558 | .maxattr = OVS_METER_ATTR_MAX, |
559 | .policy = meter_policy, | ||
563 | .netnsok = true, | 560 | .netnsok = true, |
564 | .parallel_ops = true, | 561 | .parallel_ops = true, |
565 | .ops = dp_meter_genl_ops, | 562 | .ops = dp_meter_genl_ops, |
diff --git a/net/smc/smc_pnet.c b/net/smc/smc_pnet.c index 8d2f6296279c..3cdf81cf97a3 100644 --- a/net/smc/smc_pnet.c +++ b/net/smc/smc_pnet.c | |||
@@ -611,7 +611,6 @@ static const struct genl_ops smc_pnet_ops[] = { | |||
611 | { | 611 | { |
612 | .cmd = SMC_PNETID_GET, | 612 | .cmd = SMC_PNETID_GET, |
613 | .flags = GENL_ADMIN_PERM, | 613 | .flags = GENL_ADMIN_PERM, |
614 | .policy = smc_pnet_policy, | ||
615 | .doit = smc_pnet_get, | 614 | .doit = smc_pnet_get, |
616 | .dumpit = smc_pnet_dump, | 615 | .dumpit = smc_pnet_dump, |
617 | .start = smc_pnet_dump_start | 616 | .start = smc_pnet_dump_start |
@@ -619,19 +618,16 @@ static const struct genl_ops smc_pnet_ops[] = { | |||
619 | { | 618 | { |
620 | .cmd = SMC_PNETID_ADD, | 619 | .cmd = SMC_PNETID_ADD, |
621 | .flags = GENL_ADMIN_PERM, | 620 | .flags = GENL_ADMIN_PERM, |
622 | .policy = smc_pnet_policy, | ||
623 | .doit = smc_pnet_add | 621 | .doit = smc_pnet_add |
624 | }, | 622 | }, |
625 | { | 623 | { |
626 | .cmd = SMC_PNETID_DEL, | 624 | .cmd = SMC_PNETID_DEL, |
627 | .flags = GENL_ADMIN_PERM, | 625 | .flags = GENL_ADMIN_PERM, |
628 | .policy = smc_pnet_policy, | ||
629 | .doit = smc_pnet_del | 626 | .doit = smc_pnet_del |
630 | }, | 627 | }, |
631 | { | 628 | { |
632 | .cmd = SMC_PNETID_FLUSH, | 629 | .cmd = SMC_PNETID_FLUSH, |
633 | .flags = GENL_ADMIN_PERM, | 630 | .flags = GENL_ADMIN_PERM, |
634 | .policy = smc_pnet_policy, | ||
635 | .doit = smc_pnet_flush | 631 | .doit = smc_pnet_flush |
636 | } | 632 | } |
637 | }; | 633 | }; |
@@ -642,6 +638,7 @@ static struct genl_family smc_pnet_nl_family __ro_after_init = { | |||
642 | .name = SMCR_GENL_FAMILY_NAME, | 638 | .name = SMCR_GENL_FAMILY_NAME, |
643 | .version = SMCR_GENL_FAMILY_VERSION, | 639 | .version = SMCR_GENL_FAMILY_VERSION, |
644 | .maxattr = SMC_PNETID_MAX, | 640 | .maxattr = SMC_PNETID_MAX, |
641 | .policy = smc_pnet_policy, | ||
645 | .netnsok = true, | 642 | .netnsok = true, |
646 | .module = THIS_MODULE, | 643 | .module = THIS_MODULE, |
647 | .ops = smc_pnet_ops, | 644 | .ops = smc_pnet_ops, |
diff --git a/net/tipc/netlink.c b/net/tipc/netlink.c index 5240f64e8ccc..2d178df0a89f 100644 --- a/net/tipc/netlink.c +++ b/net/tipc/netlink.c | |||
@@ -144,114 +144,93 @@ static const struct genl_ops tipc_genl_v2_ops[] = { | |||
144 | { | 144 | { |
145 | .cmd = TIPC_NL_BEARER_DISABLE, | 145 | .cmd = TIPC_NL_BEARER_DISABLE, |
146 | .doit = tipc_nl_bearer_disable, | 146 | .doit = tipc_nl_bearer_disable, |
147 | .policy = tipc_nl_policy, | ||
148 | }, | 147 | }, |
149 | { | 148 | { |
150 | .cmd = TIPC_NL_BEARER_ENABLE, | 149 | .cmd = TIPC_NL_BEARER_ENABLE, |
151 | .doit = tipc_nl_bearer_enable, | 150 | .doit = tipc_nl_bearer_enable, |
152 | .policy = tipc_nl_policy, | ||
153 | }, | 151 | }, |
154 | { | 152 | { |
155 | .cmd = TIPC_NL_BEARER_GET, | 153 | .cmd = TIPC_NL_BEARER_GET, |
156 | .doit = tipc_nl_bearer_get, | 154 | .doit = tipc_nl_bearer_get, |
157 | .dumpit = tipc_nl_bearer_dump, | 155 | .dumpit = tipc_nl_bearer_dump, |
158 | .policy = tipc_nl_policy, | ||
159 | }, | 156 | }, |
160 | { | 157 | { |
161 | .cmd = TIPC_NL_BEARER_ADD, | 158 | .cmd = TIPC_NL_BEARER_ADD, |
162 | .doit = tipc_nl_bearer_add, | 159 | .doit = tipc_nl_bearer_add, |
163 | .policy = tipc_nl_policy, | ||
164 | }, | 160 | }, |
165 | { | 161 | { |
166 | .cmd = TIPC_NL_BEARER_SET, | 162 | .cmd = TIPC_NL_BEARER_SET, |
167 | .doit = tipc_nl_bearer_set, | 163 | .doit = tipc_nl_bearer_set, |
168 | .policy = tipc_nl_policy, | ||
169 | }, | 164 | }, |
170 | { | 165 | { |
171 | .cmd = TIPC_NL_SOCK_GET, | 166 | .cmd = TIPC_NL_SOCK_GET, |
172 | .start = tipc_dump_start, | 167 | .start = tipc_dump_start, |
173 | .dumpit = tipc_nl_sk_dump, | 168 | .dumpit = tipc_nl_sk_dump, |
174 | .done = tipc_dump_done, | 169 | .done = tipc_dump_done, |
175 | .policy = tipc_nl_policy, | ||
176 | }, | 170 | }, |
177 | { | 171 | { |
178 | .cmd = TIPC_NL_PUBL_GET, | 172 | .cmd = TIPC_NL_PUBL_GET, |
179 | .dumpit = tipc_nl_publ_dump, | 173 | .dumpit = tipc_nl_publ_dump, |
180 | .policy = tipc_nl_policy, | ||
181 | }, | 174 | }, |
182 | { | 175 | { |
183 | .cmd = TIPC_NL_LINK_GET, | 176 | .cmd = TIPC_NL_LINK_GET, |
184 | .doit = tipc_nl_node_get_link, | 177 | .doit = tipc_nl_node_get_link, |
185 | .dumpit = tipc_nl_node_dump_link, | 178 | .dumpit = tipc_nl_node_dump_link, |
186 | .policy = tipc_nl_policy, | ||
187 | }, | 179 | }, |
188 | { | 180 | { |
189 | .cmd = TIPC_NL_LINK_SET, | 181 | .cmd = TIPC_NL_LINK_SET, |
190 | .doit = tipc_nl_node_set_link, | 182 | .doit = tipc_nl_node_set_link, |
191 | .policy = tipc_nl_policy, | ||
192 | }, | 183 | }, |
193 | { | 184 | { |
194 | .cmd = TIPC_NL_LINK_RESET_STATS, | 185 | .cmd = TIPC_NL_LINK_RESET_STATS, |
195 | .doit = tipc_nl_node_reset_link_stats, | 186 | .doit = tipc_nl_node_reset_link_stats, |
196 | .policy = tipc_nl_policy, | ||
197 | }, | 187 | }, |
198 | { | 188 | { |
199 | .cmd = TIPC_NL_MEDIA_GET, | 189 | .cmd = TIPC_NL_MEDIA_GET, |
200 | .doit = tipc_nl_media_get, | 190 | .doit = tipc_nl_media_get, |
201 | .dumpit = tipc_nl_media_dump, | 191 | .dumpit = tipc_nl_media_dump, |
202 | .policy = tipc_nl_policy, | ||
203 | }, | 192 | }, |
204 | { | 193 | { |
205 | .cmd = TIPC_NL_MEDIA_SET, | 194 | .cmd = TIPC_NL_MEDIA_SET, |
206 | .doit = tipc_nl_media_set, | 195 | .doit = tipc_nl_media_set, |
207 | .policy = tipc_nl_policy, | ||
208 | }, | 196 | }, |
209 | { | 197 | { |
210 | .cmd = TIPC_NL_NODE_GET, | 198 | .cmd = TIPC_NL_NODE_GET, |
211 | .dumpit = tipc_nl_node_dump, | 199 | .dumpit = tipc_nl_node_dump, |
212 | .policy = tipc_nl_policy, | ||
213 | }, | 200 | }, |
214 | { | 201 | { |
215 | .cmd = TIPC_NL_NET_GET, | 202 | .cmd = TIPC_NL_NET_GET, |
216 | .dumpit = tipc_nl_net_dump, | 203 | .dumpit = tipc_nl_net_dump, |
217 | .policy = tipc_nl_policy, | ||
218 | }, | 204 | }, |
219 | { | 205 | { |
220 | .cmd = TIPC_NL_NET_SET, | 206 | .cmd = TIPC_NL_NET_SET, |
221 | .doit = tipc_nl_net_set, | 207 | .doit = tipc_nl_net_set, |
222 | .policy = tipc_nl_policy, | ||
223 | }, | 208 | }, |
224 | { | 209 | { |
225 | .cmd = TIPC_NL_NAME_TABLE_GET, | 210 | .cmd = TIPC_NL_NAME_TABLE_GET, |
226 | .dumpit = tipc_nl_name_table_dump, | 211 | .dumpit = tipc_nl_name_table_dump, |
227 | .policy = tipc_nl_policy, | ||
228 | }, | 212 | }, |
229 | { | 213 | { |
230 | .cmd = TIPC_NL_MON_SET, | 214 | .cmd = TIPC_NL_MON_SET, |
231 | .doit = tipc_nl_node_set_monitor, | 215 | .doit = tipc_nl_node_set_monitor, |
232 | .policy = tipc_nl_policy, | ||
233 | }, | 216 | }, |
234 | { | 217 | { |
235 | .cmd = TIPC_NL_MON_GET, | 218 | .cmd = TIPC_NL_MON_GET, |
236 | .doit = tipc_nl_node_get_monitor, | 219 | .doit = tipc_nl_node_get_monitor, |
237 | .dumpit = tipc_nl_node_dump_monitor, | 220 | .dumpit = tipc_nl_node_dump_monitor, |
238 | .policy = tipc_nl_policy, | ||
239 | }, | 221 | }, |
240 | { | 222 | { |
241 | .cmd = TIPC_NL_MON_PEER_GET, | 223 | .cmd = TIPC_NL_MON_PEER_GET, |
242 | .dumpit = tipc_nl_node_dump_monitor_peer, | 224 | .dumpit = tipc_nl_node_dump_monitor_peer, |
243 | .policy = tipc_nl_policy, | ||
244 | }, | 225 | }, |
245 | { | 226 | { |
246 | .cmd = TIPC_NL_PEER_REMOVE, | 227 | .cmd = TIPC_NL_PEER_REMOVE, |
247 | .doit = tipc_nl_peer_rm, | 228 | .doit = tipc_nl_peer_rm, |
248 | .policy = tipc_nl_policy, | ||
249 | }, | 229 | }, |
250 | #ifdef CONFIG_TIPC_MEDIA_UDP | 230 | #ifdef CONFIG_TIPC_MEDIA_UDP |
251 | { | 231 | { |
252 | .cmd = TIPC_NL_UDP_GET_REMOTEIP, | 232 | .cmd = TIPC_NL_UDP_GET_REMOTEIP, |
253 | .dumpit = tipc_udp_nl_dump_remoteip, | 233 | .dumpit = tipc_udp_nl_dump_remoteip, |
254 | .policy = tipc_nl_policy, | ||
255 | }, | 234 | }, |
256 | #endif | 235 | #endif |
257 | }; | 236 | }; |
@@ -261,6 +240,7 @@ struct genl_family tipc_genl_family __ro_after_init = { | |||
261 | .version = TIPC_GENL_V2_VERSION, | 240 | .version = TIPC_GENL_V2_VERSION, |
262 | .hdrsize = 0, | 241 | .hdrsize = 0, |
263 | .maxattr = TIPC_NLA_MAX, | 242 | .maxattr = TIPC_NLA_MAX, |
243 | .policy = tipc_nl_policy, | ||
264 | .netnsok = true, | 244 | .netnsok = true, |
265 | .module = THIS_MODULE, | 245 | .module = THIS_MODULE, |
266 | .ops = tipc_genl_v2_ops, | 246 | .ops = tipc_genl_v2_ops, |
diff --git a/net/wimax/stack.c b/net/wimax/stack.c index a6307813b6d5..b7f571e55448 100644 --- a/net/wimax/stack.c +++ b/net/wimax/stack.c | |||
@@ -420,25 +420,21 @@ static const struct genl_ops wimax_gnl_ops[] = { | |||
420 | { | 420 | { |
421 | .cmd = WIMAX_GNL_OP_MSG_FROM_USER, | 421 | .cmd = WIMAX_GNL_OP_MSG_FROM_USER, |
422 | .flags = GENL_ADMIN_PERM, | 422 | .flags = GENL_ADMIN_PERM, |
423 | .policy = wimax_gnl_policy, | ||
424 | .doit = wimax_gnl_doit_msg_from_user, | 423 | .doit = wimax_gnl_doit_msg_from_user, |
425 | }, | 424 | }, |
426 | { | 425 | { |
427 | .cmd = WIMAX_GNL_OP_RESET, | 426 | .cmd = WIMAX_GNL_OP_RESET, |
428 | .flags = GENL_ADMIN_PERM, | 427 | .flags = GENL_ADMIN_PERM, |
429 | .policy = wimax_gnl_policy, | ||
430 | .doit = wimax_gnl_doit_reset, | 428 | .doit = wimax_gnl_doit_reset, |
431 | }, | 429 | }, |
432 | { | 430 | { |
433 | .cmd = WIMAX_GNL_OP_RFKILL, | 431 | .cmd = WIMAX_GNL_OP_RFKILL, |
434 | .flags = GENL_ADMIN_PERM, | 432 | .flags = GENL_ADMIN_PERM, |
435 | .policy = wimax_gnl_policy, | ||
436 | .doit = wimax_gnl_doit_rfkill, | 433 | .doit = wimax_gnl_doit_rfkill, |
437 | }, | 434 | }, |
438 | { | 435 | { |
439 | .cmd = WIMAX_GNL_OP_STATE_GET, | 436 | .cmd = WIMAX_GNL_OP_STATE_GET, |
440 | .flags = GENL_ADMIN_PERM, | 437 | .flags = GENL_ADMIN_PERM, |
441 | .policy = wimax_gnl_policy, | ||
442 | .doit = wimax_gnl_doit_state_get, | 438 | .doit = wimax_gnl_doit_state_get, |
443 | }, | 439 | }, |
444 | }; | 440 | }; |
@@ -582,6 +578,7 @@ struct genl_family wimax_gnl_family __ro_after_init = { | |||
582 | .version = WIMAX_GNL_VERSION, | 578 | .version = WIMAX_GNL_VERSION, |
583 | .hdrsize = 0, | 579 | .hdrsize = 0, |
584 | .maxattr = WIMAX_GNL_ATTR_MAX, | 580 | .maxattr = WIMAX_GNL_ATTR_MAX, |
581 | .policy = wimax_gnl_policy, | ||
585 | .module = THIS_MODULE, | 582 | .module = THIS_MODULE, |
586 | .ops = wimax_gnl_ops, | 583 | .ops = wimax_gnl_ops, |
587 | .n_ops = ARRAY_SIZE(wimax_gnl_ops), | 584 | .n_ops = ARRAY_SIZE(wimax_gnl_ops), |
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index 25a9e3b5c154..33408ba1d7ee 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c | |||
@@ -13368,7 +13368,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13368 | .doit = nl80211_get_wiphy, | 13368 | .doit = nl80211_get_wiphy, |
13369 | .dumpit = nl80211_dump_wiphy, | 13369 | .dumpit = nl80211_dump_wiphy, |
13370 | .done = nl80211_dump_wiphy_done, | 13370 | .done = nl80211_dump_wiphy_done, |
13371 | .policy = nl80211_policy, | ||
13372 | /* can be retrieved by unprivileged users */ | 13371 | /* can be retrieved by unprivileged users */ |
13373 | .internal_flags = NL80211_FLAG_NEED_WIPHY | | 13372 | .internal_flags = NL80211_FLAG_NEED_WIPHY | |
13374 | NL80211_FLAG_NEED_RTNL, | 13373 | NL80211_FLAG_NEED_RTNL, |
@@ -13376,7 +13375,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13376 | { | 13375 | { |
13377 | .cmd = NL80211_CMD_SET_WIPHY, | 13376 | .cmd = NL80211_CMD_SET_WIPHY, |
13378 | .doit = nl80211_set_wiphy, | 13377 | .doit = nl80211_set_wiphy, |
13379 | .policy = nl80211_policy, | ||
13380 | .flags = GENL_UNS_ADMIN_PERM, | 13378 | .flags = GENL_UNS_ADMIN_PERM, |
13381 | .internal_flags = NL80211_FLAG_NEED_RTNL, | 13379 | .internal_flags = NL80211_FLAG_NEED_RTNL, |
13382 | }, | 13380 | }, |
@@ -13384,7 +13382,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13384 | .cmd = NL80211_CMD_GET_INTERFACE, | 13382 | .cmd = NL80211_CMD_GET_INTERFACE, |
13385 | .doit = nl80211_get_interface, | 13383 | .doit = nl80211_get_interface, |
13386 | .dumpit = nl80211_dump_interface, | 13384 | .dumpit = nl80211_dump_interface, |
13387 | .policy = nl80211_policy, | ||
13388 | /* can be retrieved by unprivileged users */ | 13385 | /* can be retrieved by unprivileged users */ |
13389 | .internal_flags = NL80211_FLAG_NEED_WDEV | | 13386 | .internal_flags = NL80211_FLAG_NEED_WDEV | |
13390 | NL80211_FLAG_NEED_RTNL, | 13387 | NL80211_FLAG_NEED_RTNL, |
@@ -13392,7 +13389,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13392 | { | 13389 | { |
13393 | .cmd = NL80211_CMD_SET_INTERFACE, | 13390 | .cmd = NL80211_CMD_SET_INTERFACE, |
13394 | .doit = nl80211_set_interface, | 13391 | .doit = nl80211_set_interface, |
13395 | .policy = nl80211_policy, | ||
13396 | .flags = GENL_UNS_ADMIN_PERM, | 13392 | .flags = GENL_UNS_ADMIN_PERM, |
13397 | .internal_flags = NL80211_FLAG_NEED_NETDEV | | 13393 | .internal_flags = NL80211_FLAG_NEED_NETDEV | |
13398 | NL80211_FLAG_NEED_RTNL, | 13394 | NL80211_FLAG_NEED_RTNL, |
@@ -13400,7 +13396,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13400 | { | 13396 | { |
13401 | .cmd = NL80211_CMD_NEW_INTERFACE, | 13397 | .cmd = NL80211_CMD_NEW_INTERFACE, |
13402 | .doit = nl80211_new_interface, | 13398 | .doit = nl80211_new_interface, |
13403 | .policy = nl80211_policy, | ||
13404 | .flags = GENL_UNS_ADMIN_PERM, | 13399 | .flags = GENL_UNS_ADMIN_PERM, |
13405 | .internal_flags = NL80211_FLAG_NEED_WIPHY | | 13400 | .internal_flags = NL80211_FLAG_NEED_WIPHY | |
13406 | NL80211_FLAG_NEED_RTNL, | 13401 | NL80211_FLAG_NEED_RTNL, |
@@ -13408,7 +13403,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13408 | { | 13403 | { |
13409 | .cmd = NL80211_CMD_DEL_INTERFACE, | 13404 | .cmd = NL80211_CMD_DEL_INTERFACE, |
13410 | .doit = nl80211_del_interface, | 13405 | .doit = nl80211_del_interface, |
13411 | .policy = nl80211_policy, | ||
13412 | .flags = GENL_UNS_ADMIN_PERM, | 13406 | .flags = GENL_UNS_ADMIN_PERM, |
13413 | .internal_flags = NL80211_FLAG_NEED_WDEV | | 13407 | .internal_flags = NL80211_FLAG_NEED_WDEV | |
13414 | NL80211_FLAG_NEED_RTNL, | 13408 | NL80211_FLAG_NEED_RTNL, |
@@ -13416,7 +13410,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13416 | { | 13410 | { |
13417 | .cmd = NL80211_CMD_GET_KEY, | 13411 | .cmd = NL80211_CMD_GET_KEY, |
13418 | .doit = nl80211_get_key, | 13412 | .doit = nl80211_get_key, |
13419 | .policy = nl80211_policy, | ||
13420 | .flags = GENL_UNS_ADMIN_PERM, | 13413 | .flags = GENL_UNS_ADMIN_PERM, |
13421 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13414 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13422 | NL80211_FLAG_NEED_RTNL, | 13415 | NL80211_FLAG_NEED_RTNL, |
@@ -13424,7 +13417,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13424 | { | 13417 | { |
13425 | .cmd = NL80211_CMD_SET_KEY, | 13418 | .cmd = NL80211_CMD_SET_KEY, |
13426 | .doit = nl80211_set_key, | 13419 | .doit = nl80211_set_key, |
13427 | .policy = nl80211_policy, | ||
13428 | .flags = GENL_UNS_ADMIN_PERM, | 13420 | .flags = GENL_UNS_ADMIN_PERM, |
13429 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13421 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13430 | NL80211_FLAG_NEED_RTNL | | 13422 | NL80211_FLAG_NEED_RTNL | |
@@ -13433,7 +13425,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13433 | { | 13425 | { |
13434 | .cmd = NL80211_CMD_NEW_KEY, | 13426 | .cmd = NL80211_CMD_NEW_KEY, |
13435 | .doit = nl80211_new_key, | 13427 | .doit = nl80211_new_key, |
13436 | .policy = nl80211_policy, | ||
13437 | .flags = GENL_UNS_ADMIN_PERM, | 13428 | .flags = GENL_UNS_ADMIN_PERM, |
13438 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13429 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13439 | NL80211_FLAG_NEED_RTNL | | 13430 | NL80211_FLAG_NEED_RTNL | |
@@ -13442,14 +13433,12 @@ static const struct genl_ops nl80211_ops[] = { | |||
13442 | { | 13433 | { |
13443 | .cmd = NL80211_CMD_DEL_KEY, | 13434 | .cmd = NL80211_CMD_DEL_KEY, |
13444 | .doit = nl80211_del_key, | 13435 | .doit = nl80211_del_key, |
13445 | .policy = nl80211_policy, | ||
13446 | .flags = GENL_UNS_ADMIN_PERM, | 13436 | .flags = GENL_UNS_ADMIN_PERM, |
13447 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13437 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13448 | NL80211_FLAG_NEED_RTNL, | 13438 | NL80211_FLAG_NEED_RTNL, |
13449 | }, | 13439 | }, |
13450 | { | 13440 | { |
13451 | .cmd = NL80211_CMD_SET_BEACON, | 13441 | .cmd = NL80211_CMD_SET_BEACON, |
13452 | .policy = nl80211_policy, | ||
13453 | .flags = GENL_UNS_ADMIN_PERM, | 13442 | .flags = GENL_UNS_ADMIN_PERM, |
13454 | .doit = nl80211_set_beacon, | 13443 | .doit = nl80211_set_beacon, |
13455 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13444 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
@@ -13457,7 +13446,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13457 | }, | 13446 | }, |
13458 | { | 13447 | { |
13459 | .cmd = NL80211_CMD_START_AP, | 13448 | .cmd = NL80211_CMD_START_AP, |
13460 | .policy = nl80211_policy, | ||
13461 | .flags = GENL_UNS_ADMIN_PERM, | 13449 | .flags = GENL_UNS_ADMIN_PERM, |
13462 | .doit = nl80211_start_ap, | 13450 | .doit = nl80211_start_ap, |
13463 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13451 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
@@ -13465,7 +13453,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13465 | }, | 13453 | }, |
13466 | { | 13454 | { |
13467 | .cmd = NL80211_CMD_STOP_AP, | 13455 | .cmd = NL80211_CMD_STOP_AP, |
13468 | .policy = nl80211_policy, | ||
13469 | .flags = GENL_UNS_ADMIN_PERM, | 13456 | .flags = GENL_UNS_ADMIN_PERM, |
13470 | .doit = nl80211_stop_ap, | 13457 | .doit = nl80211_stop_ap, |
13471 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13458 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
@@ -13475,14 +13462,12 @@ static const struct genl_ops nl80211_ops[] = { | |||
13475 | .cmd = NL80211_CMD_GET_STATION, | 13462 | .cmd = NL80211_CMD_GET_STATION, |
13476 | .doit = nl80211_get_station, | 13463 | .doit = nl80211_get_station, |
13477 | .dumpit = nl80211_dump_station, | 13464 | .dumpit = nl80211_dump_station, |
13478 | .policy = nl80211_policy, | ||
13479 | .internal_flags = NL80211_FLAG_NEED_NETDEV | | 13465 | .internal_flags = NL80211_FLAG_NEED_NETDEV | |
13480 | NL80211_FLAG_NEED_RTNL, | 13466 | NL80211_FLAG_NEED_RTNL, |
13481 | }, | 13467 | }, |
13482 | { | 13468 | { |
13483 | .cmd = NL80211_CMD_SET_STATION, | 13469 | .cmd = NL80211_CMD_SET_STATION, |
13484 | .doit = nl80211_set_station, | 13470 | .doit = nl80211_set_station, |
13485 | .policy = nl80211_policy, | ||
13486 | .flags = GENL_UNS_ADMIN_PERM, | 13471 | .flags = GENL_UNS_ADMIN_PERM, |
13487 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13472 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13488 | NL80211_FLAG_NEED_RTNL, | 13473 | NL80211_FLAG_NEED_RTNL, |
@@ -13490,7 +13475,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13490 | { | 13475 | { |
13491 | .cmd = NL80211_CMD_NEW_STATION, | 13476 | .cmd = NL80211_CMD_NEW_STATION, |
13492 | .doit = nl80211_new_station, | 13477 | .doit = nl80211_new_station, |
13493 | .policy = nl80211_policy, | ||
13494 | .flags = GENL_UNS_ADMIN_PERM, | 13478 | .flags = GENL_UNS_ADMIN_PERM, |
13495 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13479 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13496 | NL80211_FLAG_NEED_RTNL, | 13480 | NL80211_FLAG_NEED_RTNL, |
@@ -13498,7 +13482,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13498 | { | 13482 | { |
13499 | .cmd = NL80211_CMD_DEL_STATION, | 13483 | .cmd = NL80211_CMD_DEL_STATION, |
13500 | .doit = nl80211_del_station, | 13484 | .doit = nl80211_del_station, |
13501 | .policy = nl80211_policy, | ||
13502 | .flags = GENL_UNS_ADMIN_PERM, | 13485 | .flags = GENL_UNS_ADMIN_PERM, |
13503 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13486 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13504 | NL80211_FLAG_NEED_RTNL, | 13487 | NL80211_FLAG_NEED_RTNL, |
@@ -13507,7 +13490,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13507 | .cmd = NL80211_CMD_GET_MPATH, | 13490 | .cmd = NL80211_CMD_GET_MPATH, |
13508 | .doit = nl80211_get_mpath, | 13491 | .doit = nl80211_get_mpath, |
13509 | .dumpit = nl80211_dump_mpath, | 13492 | .dumpit = nl80211_dump_mpath, |
13510 | .policy = nl80211_policy, | ||
13511 | .flags = GENL_UNS_ADMIN_PERM, | 13493 | .flags = GENL_UNS_ADMIN_PERM, |
13512 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13494 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13513 | NL80211_FLAG_NEED_RTNL, | 13495 | NL80211_FLAG_NEED_RTNL, |
@@ -13516,7 +13498,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13516 | .cmd = NL80211_CMD_GET_MPP, | 13498 | .cmd = NL80211_CMD_GET_MPP, |
13517 | .doit = nl80211_get_mpp, | 13499 | .doit = nl80211_get_mpp, |
13518 | .dumpit = nl80211_dump_mpp, | 13500 | .dumpit = nl80211_dump_mpp, |
13519 | .policy = nl80211_policy, | ||
13520 | .flags = GENL_UNS_ADMIN_PERM, | 13501 | .flags = GENL_UNS_ADMIN_PERM, |
13521 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13502 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13522 | NL80211_FLAG_NEED_RTNL, | 13503 | NL80211_FLAG_NEED_RTNL, |
@@ -13524,7 +13505,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13524 | { | 13505 | { |
13525 | .cmd = NL80211_CMD_SET_MPATH, | 13506 | .cmd = NL80211_CMD_SET_MPATH, |
13526 | .doit = nl80211_set_mpath, | 13507 | .doit = nl80211_set_mpath, |
13527 | .policy = nl80211_policy, | ||
13528 | .flags = GENL_UNS_ADMIN_PERM, | 13508 | .flags = GENL_UNS_ADMIN_PERM, |
13529 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13509 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13530 | NL80211_FLAG_NEED_RTNL, | 13510 | NL80211_FLAG_NEED_RTNL, |
@@ -13532,7 +13512,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13532 | { | 13512 | { |
13533 | .cmd = NL80211_CMD_NEW_MPATH, | 13513 | .cmd = NL80211_CMD_NEW_MPATH, |
13534 | .doit = nl80211_new_mpath, | 13514 | .doit = nl80211_new_mpath, |
13535 | .policy = nl80211_policy, | ||
13536 | .flags = GENL_UNS_ADMIN_PERM, | 13515 | .flags = GENL_UNS_ADMIN_PERM, |
13537 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13516 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13538 | NL80211_FLAG_NEED_RTNL, | 13517 | NL80211_FLAG_NEED_RTNL, |
@@ -13540,7 +13519,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13540 | { | 13519 | { |
13541 | .cmd = NL80211_CMD_DEL_MPATH, | 13520 | .cmd = NL80211_CMD_DEL_MPATH, |
13542 | .doit = nl80211_del_mpath, | 13521 | .doit = nl80211_del_mpath, |
13543 | .policy = nl80211_policy, | ||
13544 | .flags = GENL_UNS_ADMIN_PERM, | 13522 | .flags = GENL_UNS_ADMIN_PERM, |
13545 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13523 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13546 | NL80211_FLAG_NEED_RTNL, | 13524 | NL80211_FLAG_NEED_RTNL, |
@@ -13548,7 +13526,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13548 | { | 13526 | { |
13549 | .cmd = NL80211_CMD_SET_BSS, | 13527 | .cmd = NL80211_CMD_SET_BSS, |
13550 | .doit = nl80211_set_bss, | 13528 | .doit = nl80211_set_bss, |
13551 | .policy = nl80211_policy, | ||
13552 | .flags = GENL_UNS_ADMIN_PERM, | 13529 | .flags = GENL_UNS_ADMIN_PERM, |
13553 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13530 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13554 | NL80211_FLAG_NEED_RTNL, | 13531 | NL80211_FLAG_NEED_RTNL, |
@@ -13557,7 +13534,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13557 | .cmd = NL80211_CMD_GET_REG, | 13534 | .cmd = NL80211_CMD_GET_REG, |
13558 | .doit = nl80211_get_reg_do, | 13535 | .doit = nl80211_get_reg_do, |
13559 | .dumpit = nl80211_get_reg_dump, | 13536 | .dumpit = nl80211_get_reg_dump, |
13560 | .policy = nl80211_policy, | ||
13561 | .internal_flags = NL80211_FLAG_NEED_RTNL, | 13537 | .internal_flags = NL80211_FLAG_NEED_RTNL, |
13562 | /* can be retrieved by unprivileged users */ | 13538 | /* can be retrieved by unprivileged users */ |
13563 | }, | 13539 | }, |
@@ -13565,7 +13541,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13565 | { | 13541 | { |
13566 | .cmd = NL80211_CMD_SET_REG, | 13542 | .cmd = NL80211_CMD_SET_REG, |
13567 | .doit = nl80211_set_reg, | 13543 | .doit = nl80211_set_reg, |
13568 | .policy = nl80211_policy, | ||
13569 | .flags = GENL_ADMIN_PERM, | 13544 | .flags = GENL_ADMIN_PERM, |
13570 | .internal_flags = NL80211_FLAG_NEED_RTNL, | 13545 | .internal_flags = NL80211_FLAG_NEED_RTNL, |
13571 | }, | 13546 | }, |
@@ -13573,19 +13548,16 @@ static const struct genl_ops nl80211_ops[] = { | |||
13573 | { | 13548 | { |
13574 | .cmd = NL80211_CMD_REQ_SET_REG, | 13549 | .cmd = NL80211_CMD_REQ_SET_REG, |
13575 | .doit = nl80211_req_set_reg, | 13550 | .doit = nl80211_req_set_reg, |
13576 | .policy = nl80211_policy, | ||
13577 | .flags = GENL_ADMIN_PERM, | 13551 | .flags = GENL_ADMIN_PERM, |
13578 | }, | 13552 | }, |
13579 | { | 13553 | { |
13580 | .cmd = NL80211_CMD_RELOAD_REGDB, | 13554 | .cmd = NL80211_CMD_RELOAD_REGDB, |
13581 | .doit = nl80211_reload_regdb, | 13555 | .doit = nl80211_reload_regdb, |
13582 | .policy = nl80211_policy, | ||
13583 | .flags = GENL_ADMIN_PERM, | 13556 | .flags = GENL_ADMIN_PERM, |
13584 | }, | 13557 | }, |
13585 | { | 13558 | { |
13586 | .cmd = NL80211_CMD_GET_MESH_CONFIG, | 13559 | .cmd = NL80211_CMD_GET_MESH_CONFIG, |
13587 | .doit = nl80211_get_mesh_config, | 13560 | .doit = nl80211_get_mesh_config, |
13588 | .policy = nl80211_policy, | ||
13589 | /* can be retrieved by unprivileged users */ | 13561 | /* can be retrieved by unprivileged users */ |
13590 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13562 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13591 | NL80211_FLAG_NEED_RTNL, | 13563 | NL80211_FLAG_NEED_RTNL, |
@@ -13593,7 +13565,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13593 | { | 13565 | { |
13594 | .cmd = NL80211_CMD_SET_MESH_CONFIG, | 13566 | .cmd = NL80211_CMD_SET_MESH_CONFIG, |
13595 | .doit = nl80211_update_mesh_config, | 13567 | .doit = nl80211_update_mesh_config, |
13596 | .policy = nl80211_policy, | ||
13597 | .flags = GENL_UNS_ADMIN_PERM, | 13568 | .flags = GENL_UNS_ADMIN_PERM, |
13598 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13569 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13599 | NL80211_FLAG_NEED_RTNL, | 13570 | NL80211_FLAG_NEED_RTNL, |
@@ -13601,7 +13572,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13601 | { | 13572 | { |
13602 | .cmd = NL80211_CMD_TRIGGER_SCAN, | 13573 | .cmd = NL80211_CMD_TRIGGER_SCAN, |
13603 | .doit = nl80211_trigger_scan, | 13574 | .doit = nl80211_trigger_scan, |
13604 | .policy = nl80211_policy, | ||
13605 | .flags = GENL_UNS_ADMIN_PERM, | 13575 | .flags = GENL_UNS_ADMIN_PERM, |
13606 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | | 13576 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | |
13607 | NL80211_FLAG_NEED_RTNL, | 13577 | NL80211_FLAG_NEED_RTNL, |
@@ -13609,20 +13579,17 @@ static const struct genl_ops nl80211_ops[] = { | |||
13609 | { | 13579 | { |
13610 | .cmd = NL80211_CMD_ABORT_SCAN, | 13580 | .cmd = NL80211_CMD_ABORT_SCAN, |
13611 | .doit = nl80211_abort_scan, | 13581 | .doit = nl80211_abort_scan, |
13612 | .policy = nl80211_policy, | ||
13613 | .flags = GENL_UNS_ADMIN_PERM, | 13582 | .flags = GENL_UNS_ADMIN_PERM, |
13614 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | | 13583 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | |
13615 | NL80211_FLAG_NEED_RTNL, | 13584 | NL80211_FLAG_NEED_RTNL, |
13616 | }, | 13585 | }, |
13617 | { | 13586 | { |
13618 | .cmd = NL80211_CMD_GET_SCAN, | 13587 | .cmd = NL80211_CMD_GET_SCAN, |
13619 | .policy = nl80211_policy, | ||
13620 | .dumpit = nl80211_dump_scan, | 13588 | .dumpit = nl80211_dump_scan, |
13621 | }, | 13589 | }, |
13622 | { | 13590 | { |
13623 | .cmd = NL80211_CMD_START_SCHED_SCAN, | 13591 | .cmd = NL80211_CMD_START_SCHED_SCAN, |
13624 | .doit = nl80211_start_sched_scan, | 13592 | .doit = nl80211_start_sched_scan, |
13625 | .policy = nl80211_policy, | ||
13626 | .flags = GENL_UNS_ADMIN_PERM, | 13593 | .flags = GENL_UNS_ADMIN_PERM, |
13627 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13594 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13628 | NL80211_FLAG_NEED_RTNL, | 13595 | NL80211_FLAG_NEED_RTNL, |
@@ -13630,7 +13597,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13630 | { | 13597 | { |
13631 | .cmd = NL80211_CMD_STOP_SCHED_SCAN, | 13598 | .cmd = NL80211_CMD_STOP_SCHED_SCAN, |
13632 | .doit = nl80211_stop_sched_scan, | 13599 | .doit = nl80211_stop_sched_scan, |
13633 | .policy = nl80211_policy, | ||
13634 | .flags = GENL_UNS_ADMIN_PERM, | 13600 | .flags = GENL_UNS_ADMIN_PERM, |
13635 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13601 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13636 | NL80211_FLAG_NEED_RTNL, | 13602 | NL80211_FLAG_NEED_RTNL, |
@@ -13638,7 +13604,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13638 | { | 13604 | { |
13639 | .cmd = NL80211_CMD_AUTHENTICATE, | 13605 | .cmd = NL80211_CMD_AUTHENTICATE, |
13640 | .doit = nl80211_authenticate, | 13606 | .doit = nl80211_authenticate, |
13641 | .policy = nl80211_policy, | ||
13642 | .flags = GENL_UNS_ADMIN_PERM, | 13607 | .flags = GENL_UNS_ADMIN_PERM, |
13643 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13608 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13644 | NL80211_FLAG_NEED_RTNL | | 13609 | NL80211_FLAG_NEED_RTNL | |
@@ -13647,7 +13612,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13647 | { | 13612 | { |
13648 | .cmd = NL80211_CMD_ASSOCIATE, | 13613 | .cmd = NL80211_CMD_ASSOCIATE, |
13649 | .doit = nl80211_associate, | 13614 | .doit = nl80211_associate, |
13650 | .policy = nl80211_policy, | ||
13651 | .flags = GENL_UNS_ADMIN_PERM, | 13615 | .flags = GENL_UNS_ADMIN_PERM, |
13652 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13616 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13653 | NL80211_FLAG_NEED_RTNL, | 13617 | NL80211_FLAG_NEED_RTNL, |
@@ -13655,7 +13619,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13655 | { | 13619 | { |
13656 | .cmd = NL80211_CMD_DEAUTHENTICATE, | 13620 | .cmd = NL80211_CMD_DEAUTHENTICATE, |
13657 | .doit = nl80211_deauthenticate, | 13621 | .doit = nl80211_deauthenticate, |
13658 | .policy = nl80211_policy, | ||
13659 | .flags = GENL_UNS_ADMIN_PERM, | 13622 | .flags = GENL_UNS_ADMIN_PERM, |
13660 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13623 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13661 | NL80211_FLAG_NEED_RTNL, | 13624 | NL80211_FLAG_NEED_RTNL, |
@@ -13663,7 +13626,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13663 | { | 13626 | { |
13664 | .cmd = NL80211_CMD_DISASSOCIATE, | 13627 | .cmd = NL80211_CMD_DISASSOCIATE, |
13665 | .doit = nl80211_disassociate, | 13628 | .doit = nl80211_disassociate, |
13666 | .policy = nl80211_policy, | ||
13667 | .flags = GENL_UNS_ADMIN_PERM, | 13629 | .flags = GENL_UNS_ADMIN_PERM, |
13668 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13630 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13669 | NL80211_FLAG_NEED_RTNL, | 13631 | NL80211_FLAG_NEED_RTNL, |
@@ -13671,7 +13633,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13671 | { | 13633 | { |
13672 | .cmd = NL80211_CMD_JOIN_IBSS, | 13634 | .cmd = NL80211_CMD_JOIN_IBSS, |
13673 | .doit = nl80211_join_ibss, | 13635 | .doit = nl80211_join_ibss, |
13674 | .policy = nl80211_policy, | ||
13675 | .flags = GENL_UNS_ADMIN_PERM, | 13636 | .flags = GENL_UNS_ADMIN_PERM, |
13676 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13637 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13677 | NL80211_FLAG_NEED_RTNL, | 13638 | NL80211_FLAG_NEED_RTNL, |
@@ -13679,7 +13640,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13679 | { | 13640 | { |
13680 | .cmd = NL80211_CMD_LEAVE_IBSS, | 13641 | .cmd = NL80211_CMD_LEAVE_IBSS, |
13681 | .doit = nl80211_leave_ibss, | 13642 | .doit = nl80211_leave_ibss, |
13682 | .policy = nl80211_policy, | ||
13683 | .flags = GENL_UNS_ADMIN_PERM, | 13643 | .flags = GENL_UNS_ADMIN_PERM, |
13684 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13644 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13685 | NL80211_FLAG_NEED_RTNL, | 13645 | NL80211_FLAG_NEED_RTNL, |
@@ -13689,7 +13649,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13689 | .cmd = NL80211_CMD_TESTMODE, | 13649 | .cmd = NL80211_CMD_TESTMODE, |
13690 | .doit = nl80211_testmode_do, | 13650 | .doit = nl80211_testmode_do, |
13691 | .dumpit = nl80211_testmode_dump, | 13651 | .dumpit = nl80211_testmode_dump, |
13692 | .policy = nl80211_policy, | ||
13693 | .flags = GENL_UNS_ADMIN_PERM, | 13652 | .flags = GENL_UNS_ADMIN_PERM, |
13694 | .internal_flags = NL80211_FLAG_NEED_WIPHY | | 13653 | .internal_flags = NL80211_FLAG_NEED_WIPHY | |
13695 | NL80211_FLAG_NEED_RTNL, | 13654 | NL80211_FLAG_NEED_RTNL, |
@@ -13698,7 +13657,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13698 | { | 13657 | { |
13699 | .cmd = NL80211_CMD_CONNECT, | 13658 | .cmd = NL80211_CMD_CONNECT, |
13700 | .doit = nl80211_connect, | 13659 | .doit = nl80211_connect, |
13701 | .policy = nl80211_policy, | ||
13702 | .flags = GENL_UNS_ADMIN_PERM, | 13660 | .flags = GENL_UNS_ADMIN_PERM, |
13703 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13661 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13704 | NL80211_FLAG_NEED_RTNL, | 13662 | NL80211_FLAG_NEED_RTNL, |
@@ -13706,7 +13664,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13706 | { | 13664 | { |
13707 | .cmd = NL80211_CMD_UPDATE_CONNECT_PARAMS, | 13665 | .cmd = NL80211_CMD_UPDATE_CONNECT_PARAMS, |
13708 | .doit = nl80211_update_connect_params, | 13666 | .doit = nl80211_update_connect_params, |
13709 | .policy = nl80211_policy, | ||
13710 | .flags = GENL_ADMIN_PERM, | 13667 | .flags = GENL_ADMIN_PERM, |
13711 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13668 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13712 | NL80211_FLAG_NEED_RTNL, | 13669 | NL80211_FLAG_NEED_RTNL, |
@@ -13714,7 +13671,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13714 | { | 13671 | { |
13715 | .cmd = NL80211_CMD_DISCONNECT, | 13672 | .cmd = NL80211_CMD_DISCONNECT, |
13716 | .doit = nl80211_disconnect, | 13673 | .doit = nl80211_disconnect, |
13717 | .policy = nl80211_policy, | ||
13718 | .flags = GENL_UNS_ADMIN_PERM, | 13674 | .flags = GENL_UNS_ADMIN_PERM, |
13719 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13675 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13720 | NL80211_FLAG_NEED_RTNL, | 13676 | NL80211_FLAG_NEED_RTNL, |
@@ -13722,20 +13678,17 @@ static const struct genl_ops nl80211_ops[] = { | |||
13722 | { | 13678 | { |
13723 | .cmd = NL80211_CMD_SET_WIPHY_NETNS, | 13679 | .cmd = NL80211_CMD_SET_WIPHY_NETNS, |
13724 | .doit = nl80211_wiphy_netns, | 13680 | .doit = nl80211_wiphy_netns, |
13725 | .policy = nl80211_policy, | ||
13726 | .flags = GENL_UNS_ADMIN_PERM, | 13681 | .flags = GENL_UNS_ADMIN_PERM, |
13727 | .internal_flags = NL80211_FLAG_NEED_WIPHY | | 13682 | .internal_flags = NL80211_FLAG_NEED_WIPHY | |
13728 | NL80211_FLAG_NEED_RTNL, | 13683 | NL80211_FLAG_NEED_RTNL, |
13729 | }, | 13684 | }, |
13730 | { | 13685 | { |
13731 | .cmd = NL80211_CMD_GET_SURVEY, | 13686 | .cmd = NL80211_CMD_GET_SURVEY, |
13732 | .policy = nl80211_policy, | ||
13733 | .dumpit = nl80211_dump_survey, | 13687 | .dumpit = nl80211_dump_survey, |
13734 | }, | 13688 | }, |
13735 | { | 13689 | { |
13736 | .cmd = NL80211_CMD_SET_PMKSA, | 13690 | .cmd = NL80211_CMD_SET_PMKSA, |
13737 | .doit = nl80211_setdel_pmksa, | 13691 | .doit = nl80211_setdel_pmksa, |
13738 | .policy = nl80211_policy, | ||
13739 | .flags = GENL_UNS_ADMIN_PERM, | 13692 | .flags = GENL_UNS_ADMIN_PERM, |
13740 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13693 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13741 | NL80211_FLAG_NEED_RTNL, | 13694 | NL80211_FLAG_NEED_RTNL, |
@@ -13743,7 +13696,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13743 | { | 13696 | { |
13744 | .cmd = NL80211_CMD_DEL_PMKSA, | 13697 | .cmd = NL80211_CMD_DEL_PMKSA, |
13745 | .doit = nl80211_setdel_pmksa, | 13698 | .doit = nl80211_setdel_pmksa, |
13746 | .policy = nl80211_policy, | ||
13747 | .flags = GENL_UNS_ADMIN_PERM, | 13699 | .flags = GENL_UNS_ADMIN_PERM, |
13748 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13700 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13749 | NL80211_FLAG_NEED_RTNL, | 13701 | NL80211_FLAG_NEED_RTNL, |
@@ -13751,7 +13703,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13751 | { | 13703 | { |
13752 | .cmd = NL80211_CMD_FLUSH_PMKSA, | 13704 | .cmd = NL80211_CMD_FLUSH_PMKSA, |
13753 | .doit = nl80211_flush_pmksa, | 13705 | .doit = nl80211_flush_pmksa, |
13754 | .policy = nl80211_policy, | ||
13755 | .flags = GENL_UNS_ADMIN_PERM, | 13706 | .flags = GENL_UNS_ADMIN_PERM, |
13756 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13707 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13757 | NL80211_FLAG_NEED_RTNL, | 13708 | NL80211_FLAG_NEED_RTNL, |
@@ -13759,7 +13710,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13759 | { | 13710 | { |
13760 | .cmd = NL80211_CMD_REMAIN_ON_CHANNEL, | 13711 | .cmd = NL80211_CMD_REMAIN_ON_CHANNEL, |
13761 | .doit = nl80211_remain_on_channel, | 13712 | .doit = nl80211_remain_on_channel, |
13762 | .policy = nl80211_policy, | ||
13763 | .flags = GENL_UNS_ADMIN_PERM, | 13713 | .flags = GENL_UNS_ADMIN_PERM, |
13764 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | | 13714 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | |
13765 | NL80211_FLAG_NEED_RTNL, | 13715 | NL80211_FLAG_NEED_RTNL, |
@@ -13767,7 +13717,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13767 | { | 13717 | { |
13768 | .cmd = NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL, | 13718 | .cmd = NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL, |
13769 | .doit = nl80211_cancel_remain_on_channel, | 13719 | .doit = nl80211_cancel_remain_on_channel, |
13770 | .policy = nl80211_policy, | ||
13771 | .flags = GENL_UNS_ADMIN_PERM, | 13720 | .flags = GENL_UNS_ADMIN_PERM, |
13772 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | | 13721 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | |
13773 | NL80211_FLAG_NEED_RTNL, | 13722 | NL80211_FLAG_NEED_RTNL, |
@@ -13775,7 +13724,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13775 | { | 13724 | { |
13776 | .cmd = NL80211_CMD_SET_TX_BITRATE_MASK, | 13725 | .cmd = NL80211_CMD_SET_TX_BITRATE_MASK, |
13777 | .doit = nl80211_set_tx_bitrate_mask, | 13726 | .doit = nl80211_set_tx_bitrate_mask, |
13778 | .policy = nl80211_policy, | ||
13779 | .flags = GENL_UNS_ADMIN_PERM, | 13727 | .flags = GENL_UNS_ADMIN_PERM, |
13780 | .internal_flags = NL80211_FLAG_NEED_NETDEV | | 13728 | .internal_flags = NL80211_FLAG_NEED_NETDEV | |
13781 | NL80211_FLAG_NEED_RTNL, | 13729 | NL80211_FLAG_NEED_RTNL, |
@@ -13783,7 +13731,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13783 | { | 13731 | { |
13784 | .cmd = NL80211_CMD_REGISTER_FRAME, | 13732 | .cmd = NL80211_CMD_REGISTER_FRAME, |
13785 | .doit = nl80211_register_mgmt, | 13733 | .doit = nl80211_register_mgmt, |
13786 | .policy = nl80211_policy, | ||
13787 | .flags = GENL_UNS_ADMIN_PERM, | 13734 | .flags = GENL_UNS_ADMIN_PERM, |
13788 | .internal_flags = NL80211_FLAG_NEED_WDEV | | 13735 | .internal_flags = NL80211_FLAG_NEED_WDEV | |
13789 | NL80211_FLAG_NEED_RTNL, | 13736 | NL80211_FLAG_NEED_RTNL, |
@@ -13791,7 +13738,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13791 | { | 13738 | { |
13792 | .cmd = NL80211_CMD_FRAME, | 13739 | .cmd = NL80211_CMD_FRAME, |
13793 | .doit = nl80211_tx_mgmt, | 13740 | .doit = nl80211_tx_mgmt, |
13794 | .policy = nl80211_policy, | ||
13795 | .flags = GENL_UNS_ADMIN_PERM, | 13741 | .flags = GENL_UNS_ADMIN_PERM, |
13796 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | | 13742 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | |
13797 | NL80211_FLAG_NEED_RTNL, | 13743 | NL80211_FLAG_NEED_RTNL, |
@@ -13799,7 +13745,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13799 | { | 13745 | { |
13800 | .cmd = NL80211_CMD_FRAME_WAIT_CANCEL, | 13746 | .cmd = NL80211_CMD_FRAME_WAIT_CANCEL, |
13801 | .doit = nl80211_tx_mgmt_cancel_wait, | 13747 | .doit = nl80211_tx_mgmt_cancel_wait, |
13802 | .policy = nl80211_policy, | ||
13803 | .flags = GENL_UNS_ADMIN_PERM, | 13748 | .flags = GENL_UNS_ADMIN_PERM, |
13804 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | | 13749 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | |
13805 | NL80211_FLAG_NEED_RTNL, | 13750 | NL80211_FLAG_NEED_RTNL, |
@@ -13807,7 +13752,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13807 | { | 13752 | { |
13808 | .cmd = NL80211_CMD_SET_POWER_SAVE, | 13753 | .cmd = NL80211_CMD_SET_POWER_SAVE, |
13809 | .doit = nl80211_set_power_save, | 13754 | .doit = nl80211_set_power_save, |
13810 | .policy = nl80211_policy, | ||
13811 | .flags = GENL_UNS_ADMIN_PERM, | 13755 | .flags = GENL_UNS_ADMIN_PERM, |
13812 | .internal_flags = NL80211_FLAG_NEED_NETDEV | | 13756 | .internal_flags = NL80211_FLAG_NEED_NETDEV | |
13813 | NL80211_FLAG_NEED_RTNL, | 13757 | NL80211_FLAG_NEED_RTNL, |
@@ -13815,7 +13759,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13815 | { | 13759 | { |
13816 | .cmd = NL80211_CMD_GET_POWER_SAVE, | 13760 | .cmd = NL80211_CMD_GET_POWER_SAVE, |
13817 | .doit = nl80211_get_power_save, | 13761 | .doit = nl80211_get_power_save, |
13818 | .policy = nl80211_policy, | ||
13819 | /* can be retrieved by unprivileged users */ | 13762 | /* can be retrieved by unprivileged users */ |
13820 | .internal_flags = NL80211_FLAG_NEED_NETDEV | | 13763 | .internal_flags = NL80211_FLAG_NEED_NETDEV | |
13821 | NL80211_FLAG_NEED_RTNL, | 13764 | NL80211_FLAG_NEED_RTNL, |
@@ -13823,7 +13766,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13823 | { | 13766 | { |
13824 | .cmd = NL80211_CMD_SET_CQM, | 13767 | .cmd = NL80211_CMD_SET_CQM, |
13825 | .doit = nl80211_set_cqm, | 13768 | .doit = nl80211_set_cqm, |
13826 | .policy = nl80211_policy, | ||
13827 | .flags = GENL_UNS_ADMIN_PERM, | 13769 | .flags = GENL_UNS_ADMIN_PERM, |
13828 | .internal_flags = NL80211_FLAG_NEED_NETDEV | | 13770 | .internal_flags = NL80211_FLAG_NEED_NETDEV | |
13829 | NL80211_FLAG_NEED_RTNL, | 13771 | NL80211_FLAG_NEED_RTNL, |
@@ -13831,7 +13773,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13831 | { | 13773 | { |
13832 | .cmd = NL80211_CMD_SET_CHANNEL, | 13774 | .cmd = NL80211_CMD_SET_CHANNEL, |
13833 | .doit = nl80211_set_channel, | 13775 | .doit = nl80211_set_channel, |
13834 | .policy = nl80211_policy, | ||
13835 | .flags = GENL_UNS_ADMIN_PERM, | 13776 | .flags = GENL_UNS_ADMIN_PERM, |
13836 | .internal_flags = NL80211_FLAG_NEED_NETDEV | | 13777 | .internal_flags = NL80211_FLAG_NEED_NETDEV | |
13837 | NL80211_FLAG_NEED_RTNL, | 13778 | NL80211_FLAG_NEED_RTNL, |
@@ -13839,7 +13780,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13839 | { | 13780 | { |
13840 | .cmd = NL80211_CMD_SET_WDS_PEER, | 13781 | .cmd = NL80211_CMD_SET_WDS_PEER, |
13841 | .doit = nl80211_set_wds_peer, | 13782 | .doit = nl80211_set_wds_peer, |
13842 | .policy = nl80211_policy, | ||
13843 | .flags = GENL_UNS_ADMIN_PERM, | 13783 | .flags = GENL_UNS_ADMIN_PERM, |
13844 | .internal_flags = NL80211_FLAG_NEED_NETDEV | | 13784 | .internal_flags = NL80211_FLAG_NEED_NETDEV | |
13845 | NL80211_FLAG_NEED_RTNL, | 13785 | NL80211_FLAG_NEED_RTNL, |
@@ -13847,7 +13787,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13847 | { | 13787 | { |
13848 | .cmd = NL80211_CMD_JOIN_MESH, | 13788 | .cmd = NL80211_CMD_JOIN_MESH, |
13849 | .doit = nl80211_join_mesh, | 13789 | .doit = nl80211_join_mesh, |
13850 | .policy = nl80211_policy, | ||
13851 | .flags = GENL_UNS_ADMIN_PERM, | 13790 | .flags = GENL_UNS_ADMIN_PERM, |
13852 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13791 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13853 | NL80211_FLAG_NEED_RTNL, | 13792 | NL80211_FLAG_NEED_RTNL, |
@@ -13855,7 +13794,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13855 | { | 13794 | { |
13856 | .cmd = NL80211_CMD_LEAVE_MESH, | 13795 | .cmd = NL80211_CMD_LEAVE_MESH, |
13857 | .doit = nl80211_leave_mesh, | 13796 | .doit = nl80211_leave_mesh, |
13858 | .policy = nl80211_policy, | ||
13859 | .flags = GENL_UNS_ADMIN_PERM, | 13797 | .flags = GENL_UNS_ADMIN_PERM, |
13860 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13798 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13861 | NL80211_FLAG_NEED_RTNL, | 13799 | NL80211_FLAG_NEED_RTNL, |
@@ -13863,7 +13801,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13863 | { | 13801 | { |
13864 | .cmd = NL80211_CMD_JOIN_OCB, | 13802 | .cmd = NL80211_CMD_JOIN_OCB, |
13865 | .doit = nl80211_join_ocb, | 13803 | .doit = nl80211_join_ocb, |
13866 | .policy = nl80211_policy, | ||
13867 | .flags = GENL_UNS_ADMIN_PERM, | 13804 | .flags = GENL_UNS_ADMIN_PERM, |
13868 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13805 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13869 | NL80211_FLAG_NEED_RTNL, | 13806 | NL80211_FLAG_NEED_RTNL, |
@@ -13871,7 +13808,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13871 | { | 13808 | { |
13872 | .cmd = NL80211_CMD_LEAVE_OCB, | 13809 | .cmd = NL80211_CMD_LEAVE_OCB, |
13873 | .doit = nl80211_leave_ocb, | 13810 | .doit = nl80211_leave_ocb, |
13874 | .policy = nl80211_policy, | ||
13875 | .flags = GENL_UNS_ADMIN_PERM, | 13811 | .flags = GENL_UNS_ADMIN_PERM, |
13876 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13812 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13877 | NL80211_FLAG_NEED_RTNL, | 13813 | NL80211_FLAG_NEED_RTNL, |
@@ -13880,7 +13816,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13880 | { | 13816 | { |
13881 | .cmd = NL80211_CMD_GET_WOWLAN, | 13817 | .cmd = NL80211_CMD_GET_WOWLAN, |
13882 | .doit = nl80211_get_wowlan, | 13818 | .doit = nl80211_get_wowlan, |
13883 | .policy = nl80211_policy, | ||
13884 | /* can be retrieved by unprivileged users */ | 13819 | /* can be retrieved by unprivileged users */ |
13885 | .internal_flags = NL80211_FLAG_NEED_WIPHY | | 13820 | .internal_flags = NL80211_FLAG_NEED_WIPHY | |
13886 | NL80211_FLAG_NEED_RTNL, | 13821 | NL80211_FLAG_NEED_RTNL, |
@@ -13888,7 +13823,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13888 | { | 13823 | { |
13889 | .cmd = NL80211_CMD_SET_WOWLAN, | 13824 | .cmd = NL80211_CMD_SET_WOWLAN, |
13890 | .doit = nl80211_set_wowlan, | 13825 | .doit = nl80211_set_wowlan, |
13891 | .policy = nl80211_policy, | ||
13892 | .flags = GENL_UNS_ADMIN_PERM, | 13826 | .flags = GENL_UNS_ADMIN_PERM, |
13893 | .internal_flags = NL80211_FLAG_NEED_WIPHY | | 13827 | .internal_flags = NL80211_FLAG_NEED_WIPHY | |
13894 | NL80211_FLAG_NEED_RTNL, | 13828 | NL80211_FLAG_NEED_RTNL, |
@@ -13897,7 +13831,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13897 | { | 13831 | { |
13898 | .cmd = NL80211_CMD_SET_REKEY_OFFLOAD, | 13832 | .cmd = NL80211_CMD_SET_REKEY_OFFLOAD, |
13899 | .doit = nl80211_set_rekey_data, | 13833 | .doit = nl80211_set_rekey_data, |
13900 | .policy = nl80211_policy, | ||
13901 | .flags = GENL_UNS_ADMIN_PERM, | 13834 | .flags = GENL_UNS_ADMIN_PERM, |
13902 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13835 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13903 | NL80211_FLAG_NEED_RTNL | | 13836 | NL80211_FLAG_NEED_RTNL | |
@@ -13906,7 +13839,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13906 | { | 13839 | { |
13907 | .cmd = NL80211_CMD_TDLS_MGMT, | 13840 | .cmd = NL80211_CMD_TDLS_MGMT, |
13908 | .doit = nl80211_tdls_mgmt, | 13841 | .doit = nl80211_tdls_mgmt, |
13909 | .policy = nl80211_policy, | ||
13910 | .flags = GENL_UNS_ADMIN_PERM, | 13842 | .flags = GENL_UNS_ADMIN_PERM, |
13911 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13843 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13912 | NL80211_FLAG_NEED_RTNL, | 13844 | NL80211_FLAG_NEED_RTNL, |
@@ -13914,7 +13846,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13914 | { | 13846 | { |
13915 | .cmd = NL80211_CMD_TDLS_OPER, | 13847 | .cmd = NL80211_CMD_TDLS_OPER, |
13916 | .doit = nl80211_tdls_oper, | 13848 | .doit = nl80211_tdls_oper, |
13917 | .policy = nl80211_policy, | ||
13918 | .flags = GENL_UNS_ADMIN_PERM, | 13849 | .flags = GENL_UNS_ADMIN_PERM, |
13919 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13850 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13920 | NL80211_FLAG_NEED_RTNL, | 13851 | NL80211_FLAG_NEED_RTNL, |
@@ -13922,7 +13853,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13922 | { | 13853 | { |
13923 | .cmd = NL80211_CMD_UNEXPECTED_FRAME, | 13854 | .cmd = NL80211_CMD_UNEXPECTED_FRAME, |
13924 | .doit = nl80211_register_unexpected_frame, | 13855 | .doit = nl80211_register_unexpected_frame, |
13925 | .policy = nl80211_policy, | ||
13926 | .flags = GENL_UNS_ADMIN_PERM, | 13856 | .flags = GENL_UNS_ADMIN_PERM, |
13927 | .internal_flags = NL80211_FLAG_NEED_NETDEV | | 13857 | .internal_flags = NL80211_FLAG_NEED_NETDEV | |
13928 | NL80211_FLAG_NEED_RTNL, | 13858 | NL80211_FLAG_NEED_RTNL, |
@@ -13930,7 +13860,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13930 | { | 13860 | { |
13931 | .cmd = NL80211_CMD_PROBE_CLIENT, | 13861 | .cmd = NL80211_CMD_PROBE_CLIENT, |
13932 | .doit = nl80211_probe_client, | 13862 | .doit = nl80211_probe_client, |
13933 | .policy = nl80211_policy, | ||
13934 | .flags = GENL_UNS_ADMIN_PERM, | 13863 | .flags = GENL_UNS_ADMIN_PERM, |
13935 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13864 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
13936 | NL80211_FLAG_NEED_RTNL, | 13865 | NL80211_FLAG_NEED_RTNL, |
@@ -13938,7 +13867,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13938 | { | 13867 | { |
13939 | .cmd = NL80211_CMD_REGISTER_BEACONS, | 13868 | .cmd = NL80211_CMD_REGISTER_BEACONS, |
13940 | .doit = nl80211_register_beacons, | 13869 | .doit = nl80211_register_beacons, |
13941 | .policy = nl80211_policy, | ||
13942 | .flags = GENL_UNS_ADMIN_PERM, | 13870 | .flags = GENL_UNS_ADMIN_PERM, |
13943 | .internal_flags = NL80211_FLAG_NEED_WIPHY | | 13871 | .internal_flags = NL80211_FLAG_NEED_WIPHY | |
13944 | NL80211_FLAG_NEED_RTNL, | 13872 | NL80211_FLAG_NEED_RTNL, |
@@ -13946,7 +13874,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13946 | { | 13874 | { |
13947 | .cmd = NL80211_CMD_SET_NOACK_MAP, | 13875 | .cmd = NL80211_CMD_SET_NOACK_MAP, |
13948 | .doit = nl80211_set_noack_map, | 13876 | .doit = nl80211_set_noack_map, |
13949 | .policy = nl80211_policy, | ||
13950 | .flags = GENL_UNS_ADMIN_PERM, | 13877 | .flags = GENL_UNS_ADMIN_PERM, |
13951 | .internal_flags = NL80211_FLAG_NEED_NETDEV | | 13878 | .internal_flags = NL80211_FLAG_NEED_NETDEV | |
13952 | NL80211_FLAG_NEED_RTNL, | 13879 | NL80211_FLAG_NEED_RTNL, |
@@ -13954,7 +13881,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13954 | { | 13881 | { |
13955 | .cmd = NL80211_CMD_START_P2P_DEVICE, | 13882 | .cmd = NL80211_CMD_START_P2P_DEVICE, |
13956 | .doit = nl80211_start_p2p_device, | 13883 | .doit = nl80211_start_p2p_device, |
13957 | .policy = nl80211_policy, | ||
13958 | .flags = GENL_UNS_ADMIN_PERM, | 13884 | .flags = GENL_UNS_ADMIN_PERM, |
13959 | .internal_flags = NL80211_FLAG_NEED_WDEV | | 13885 | .internal_flags = NL80211_FLAG_NEED_WDEV | |
13960 | NL80211_FLAG_NEED_RTNL, | 13886 | NL80211_FLAG_NEED_RTNL, |
@@ -13962,7 +13888,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13962 | { | 13888 | { |
13963 | .cmd = NL80211_CMD_STOP_P2P_DEVICE, | 13889 | .cmd = NL80211_CMD_STOP_P2P_DEVICE, |
13964 | .doit = nl80211_stop_p2p_device, | 13890 | .doit = nl80211_stop_p2p_device, |
13965 | .policy = nl80211_policy, | ||
13966 | .flags = GENL_UNS_ADMIN_PERM, | 13891 | .flags = GENL_UNS_ADMIN_PERM, |
13967 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | | 13892 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | |
13968 | NL80211_FLAG_NEED_RTNL, | 13893 | NL80211_FLAG_NEED_RTNL, |
@@ -13970,7 +13895,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13970 | { | 13895 | { |
13971 | .cmd = NL80211_CMD_START_NAN, | 13896 | .cmd = NL80211_CMD_START_NAN, |
13972 | .doit = nl80211_start_nan, | 13897 | .doit = nl80211_start_nan, |
13973 | .policy = nl80211_policy, | ||
13974 | .flags = GENL_ADMIN_PERM, | 13898 | .flags = GENL_ADMIN_PERM, |
13975 | .internal_flags = NL80211_FLAG_NEED_WDEV | | 13899 | .internal_flags = NL80211_FLAG_NEED_WDEV | |
13976 | NL80211_FLAG_NEED_RTNL, | 13900 | NL80211_FLAG_NEED_RTNL, |
@@ -13978,7 +13902,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13978 | { | 13902 | { |
13979 | .cmd = NL80211_CMD_STOP_NAN, | 13903 | .cmd = NL80211_CMD_STOP_NAN, |
13980 | .doit = nl80211_stop_nan, | 13904 | .doit = nl80211_stop_nan, |
13981 | .policy = nl80211_policy, | ||
13982 | .flags = GENL_ADMIN_PERM, | 13905 | .flags = GENL_ADMIN_PERM, |
13983 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | | 13906 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | |
13984 | NL80211_FLAG_NEED_RTNL, | 13907 | NL80211_FLAG_NEED_RTNL, |
@@ -13986,7 +13909,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13986 | { | 13909 | { |
13987 | .cmd = NL80211_CMD_ADD_NAN_FUNCTION, | 13910 | .cmd = NL80211_CMD_ADD_NAN_FUNCTION, |
13988 | .doit = nl80211_nan_add_func, | 13911 | .doit = nl80211_nan_add_func, |
13989 | .policy = nl80211_policy, | ||
13990 | .flags = GENL_ADMIN_PERM, | 13912 | .flags = GENL_ADMIN_PERM, |
13991 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | | 13913 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | |
13992 | NL80211_FLAG_NEED_RTNL, | 13914 | NL80211_FLAG_NEED_RTNL, |
@@ -13994,7 +13916,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
13994 | { | 13916 | { |
13995 | .cmd = NL80211_CMD_DEL_NAN_FUNCTION, | 13917 | .cmd = NL80211_CMD_DEL_NAN_FUNCTION, |
13996 | .doit = nl80211_nan_del_func, | 13918 | .doit = nl80211_nan_del_func, |
13997 | .policy = nl80211_policy, | ||
13998 | .flags = GENL_ADMIN_PERM, | 13919 | .flags = GENL_ADMIN_PERM, |
13999 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | | 13920 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | |
14000 | NL80211_FLAG_NEED_RTNL, | 13921 | NL80211_FLAG_NEED_RTNL, |
@@ -14002,7 +13923,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
14002 | { | 13923 | { |
14003 | .cmd = NL80211_CMD_CHANGE_NAN_CONFIG, | 13924 | .cmd = NL80211_CMD_CHANGE_NAN_CONFIG, |
14004 | .doit = nl80211_nan_change_config, | 13925 | .doit = nl80211_nan_change_config, |
14005 | .policy = nl80211_policy, | ||
14006 | .flags = GENL_ADMIN_PERM, | 13926 | .flags = GENL_ADMIN_PERM, |
14007 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | | 13927 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | |
14008 | NL80211_FLAG_NEED_RTNL, | 13928 | NL80211_FLAG_NEED_RTNL, |
@@ -14010,7 +13930,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
14010 | { | 13930 | { |
14011 | .cmd = NL80211_CMD_SET_MCAST_RATE, | 13931 | .cmd = NL80211_CMD_SET_MCAST_RATE, |
14012 | .doit = nl80211_set_mcast_rate, | 13932 | .doit = nl80211_set_mcast_rate, |
14013 | .policy = nl80211_policy, | ||
14014 | .flags = GENL_UNS_ADMIN_PERM, | 13933 | .flags = GENL_UNS_ADMIN_PERM, |
14015 | .internal_flags = NL80211_FLAG_NEED_NETDEV | | 13934 | .internal_flags = NL80211_FLAG_NEED_NETDEV | |
14016 | NL80211_FLAG_NEED_RTNL, | 13935 | NL80211_FLAG_NEED_RTNL, |
@@ -14018,7 +13937,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
14018 | { | 13937 | { |
14019 | .cmd = NL80211_CMD_SET_MAC_ACL, | 13938 | .cmd = NL80211_CMD_SET_MAC_ACL, |
14020 | .doit = nl80211_set_mac_acl, | 13939 | .doit = nl80211_set_mac_acl, |
14021 | .policy = nl80211_policy, | ||
14022 | .flags = GENL_UNS_ADMIN_PERM, | 13940 | .flags = GENL_UNS_ADMIN_PERM, |
14023 | .internal_flags = NL80211_FLAG_NEED_NETDEV | | 13941 | .internal_flags = NL80211_FLAG_NEED_NETDEV | |
14024 | NL80211_FLAG_NEED_RTNL, | 13942 | NL80211_FLAG_NEED_RTNL, |
@@ -14026,7 +13944,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
14026 | { | 13944 | { |
14027 | .cmd = NL80211_CMD_RADAR_DETECT, | 13945 | .cmd = NL80211_CMD_RADAR_DETECT, |
14028 | .doit = nl80211_start_radar_detection, | 13946 | .doit = nl80211_start_radar_detection, |
14029 | .policy = nl80211_policy, | ||
14030 | .flags = GENL_UNS_ADMIN_PERM, | 13947 | .flags = GENL_UNS_ADMIN_PERM, |
14031 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13948 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
14032 | NL80211_FLAG_NEED_RTNL, | 13949 | NL80211_FLAG_NEED_RTNL, |
@@ -14034,12 +13951,10 @@ static const struct genl_ops nl80211_ops[] = { | |||
14034 | { | 13951 | { |
14035 | .cmd = NL80211_CMD_GET_PROTOCOL_FEATURES, | 13952 | .cmd = NL80211_CMD_GET_PROTOCOL_FEATURES, |
14036 | .doit = nl80211_get_protocol_features, | 13953 | .doit = nl80211_get_protocol_features, |
14037 | .policy = nl80211_policy, | ||
14038 | }, | 13954 | }, |
14039 | { | 13955 | { |
14040 | .cmd = NL80211_CMD_UPDATE_FT_IES, | 13956 | .cmd = NL80211_CMD_UPDATE_FT_IES, |
14041 | .doit = nl80211_update_ft_ies, | 13957 | .doit = nl80211_update_ft_ies, |
14042 | .policy = nl80211_policy, | ||
14043 | .flags = GENL_UNS_ADMIN_PERM, | 13958 | .flags = GENL_UNS_ADMIN_PERM, |
14044 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13959 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
14045 | NL80211_FLAG_NEED_RTNL, | 13960 | NL80211_FLAG_NEED_RTNL, |
@@ -14047,7 +13962,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
14047 | { | 13962 | { |
14048 | .cmd = NL80211_CMD_CRIT_PROTOCOL_START, | 13963 | .cmd = NL80211_CMD_CRIT_PROTOCOL_START, |
14049 | .doit = nl80211_crit_protocol_start, | 13964 | .doit = nl80211_crit_protocol_start, |
14050 | .policy = nl80211_policy, | ||
14051 | .flags = GENL_UNS_ADMIN_PERM, | 13965 | .flags = GENL_UNS_ADMIN_PERM, |
14052 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | | 13966 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | |
14053 | NL80211_FLAG_NEED_RTNL, | 13967 | NL80211_FLAG_NEED_RTNL, |
@@ -14055,7 +13969,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
14055 | { | 13969 | { |
14056 | .cmd = NL80211_CMD_CRIT_PROTOCOL_STOP, | 13970 | .cmd = NL80211_CMD_CRIT_PROTOCOL_STOP, |
14057 | .doit = nl80211_crit_protocol_stop, | 13971 | .doit = nl80211_crit_protocol_stop, |
14058 | .policy = nl80211_policy, | ||
14059 | .flags = GENL_UNS_ADMIN_PERM, | 13972 | .flags = GENL_UNS_ADMIN_PERM, |
14060 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | | 13973 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | |
14061 | NL80211_FLAG_NEED_RTNL, | 13974 | NL80211_FLAG_NEED_RTNL, |
@@ -14063,14 +13976,12 @@ static const struct genl_ops nl80211_ops[] = { | |||
14063 | { | 13976 | { |
14064 | .cmd = NL80211_CMD_GET_COALESCE, | 13977 | .cmd = NL80211_CMD_GET_COALESCE, |
14065 | .doit = nl80211_get_coalesce, | 13978 | .doit = nl80211_get_coalesce, |
14066 | .policy = nl80211_policy, | ||
14067 | .internal_flags = NL80211_FLAG_NEED_WIPHY | | 13979 | .internal_flags = NL80211_FLAG_NEED_WIPHY | |
14068 | NL80211_FLAG_NEED_RTNL, | 13980 | NL80211_FLAG_NEED_RTNL, |
14069 | }, | 13981 | }, |
14070 | { | 13982 | { |
14071 | .cmd = NL80211_CMD_SET_COALESCE, | 13983 | .cmd = NL80211_CMD_SET_COALESCE, |
14072 | .doit = nl80211_set_coalesce, | 13984 | .doit = nl80211_set_coalesce, |
14073 | .policy = nl80211_policy, | ||
14074 | .flags = GENL_UNS_ADMIN_PERM, | 13985 | .flags = GENL_UNS_ADMIN_PERM, |
14075 | .internal_flags = NL80211_FLAG_NEED_WIPHY | | 13986 | .internal_flags = NL80211_FLAG_NEED_WIPHY | |
14076 | NL80211_FLAG_NEED_RTNL, | 13987 | NL80211_FLAG_NEED_RTNL, |
@@ -14078,7 +13989,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
14078 | { | 13989 | { |
14079 | .cmd = NL80211_CMD_CHANNEL_SWITCH, | 13990 | .cmd = NL80211_CMD_CHANNEL_SWITCH, |
14080 | .doit = nl80211_channel_switch, | 13991 | .doit = nl80211_channel_switch, |
14081 | .policy = nl80211_policy, | ||
14082 | .flags = GENL_UNS_ADMIN_PERM, | 13992 | .flags = GENL_UNS_ADMIN_PERM, |
14083 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 13993 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
14084 | NL80211_FLAG_NEED_RTNL, | 13994 | NL80211_FLAG_NEED_RTNL, |
@@ -14087,7 +13997,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
14087 | .cmd = NL80211_CMD_VENDOR, | 13997 | .cmd = NL80211_CMD_VENDOR, |
14088 | .doit = nl80211_vendor_cmd, | 13998 | .doit = nl80211_vendor_cmd, |
14089 | .dumpit = nl80211_vendor_cmd_dump, | 13999 | .dumpit = nl80211_vendor_cmd_dump, |
14090 | .policy = nl80211_policy, | ||
14091 | .flags = GENL_UNS_ADMIN_PERM, | 14000 | .flags = GENL_UNS_ADMIN_PERM, |
14092 | .internal_flags = NL80211_FLAG_NEED_WIPHY | | 14001 | .internal_flags = NL80211_FLAG_NEED_WIPHY | |
14093 | NL80211_FLAG_NEED_RTNL, | 14002 | NL80211_FLAG_NEED_RTNL, |
@@ -14095,7 +14004,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
14095 | { | 14004 | { |
14096 | .cmd = NL80211_CMD_SET_QOS_MAP, | 14005 | .cmd = NL80211_CMD_SET_QOS_MAP, |
14097 | .doit = nl80211_set_qos_map, | 14006 | .doit = nl80211_set_qos_map, |
14098 | .policy = nl80211_policy, | ||
14099 | .flags = GENL_UNS_ADMIN_PERM, | 14007 | .flags = GENL_UNS_ADMIN_PERM, |
14100 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 14008 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
14101 | NL80211_FLAG_NEED_RTNL, | 14009 | NL80211_FLAG_NEED_RTNL, |
@@ -14103,7 +14011,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
14103 | { | 14011 | { |
14104 | .cmd = NL80211_CMD_ADD_TX_TS, | 14012 | .cmd = NL80211_CMD_ADD_TX_TS, |
14105 | .doit = nl80211_add_tx_ts, | 14013 | .doit = nl80211_add_tx_ts, |
14106 | .policy = nl80211_policy, | ||
14107 | .flags = GENL_UNS_ADMIN_PERM, | 14014 | .flags = GENL_UNS_ADMIN_PERM, |
14108 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 14015 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
14109 | NL80211_FLAG_NEED_RTNL, | 14016 | NL80211_FLAG_NEED_RTNL, |
@@ -14111,7 +14018,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
14111 | { | 14018 | { |
14112 | .cmd = NL80211_CMD_DEL_TX_TS, | 14019 | .cmd = NL80211_CMD_DEL_TX_TS, |
14113 | .doit = nl80211_del_tx_ts, | 14020 | .doit = nl80211_del_tx_ts, |
14114 | .policy = nl80211_policy, | ||
14115 | .flags = GENL_UNS_ADMIN_PERM, | 14021 | .flags = GENL_UNS_ADMIN_PERM, |
14116 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 14022 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
14117 | NL80211_FLAG_NEED_RTNL, | 14023 | NL80211_FLAG_NEED_RTNL, |
@@ -14119,7 +14025,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
14119 | { | 14025 | { |
14120 | .cmd = NL80211_CMD_TDLS_CHANNEL_SWITCH, | 14026 | .cmd = NL80211_CMD_TDLS_CHANNEL_SWITCH, |
14121 | .doit = nl80211_tdls_channel_switch, | 14027 | .doit = nl80211_tdls_channel_switch, |
14122 | .policy = nl80211_policy, | ||
14123 | .flags = GENL_UNS_ADMIN_PERM, | 14028 | .flags = GENL_UNS_ADMIN_PERM, |
14124 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 14029 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
14125 | NL80211_FLAG_NEED_RTNL, | 14030 | NL80211_FLAG_NEED_RTNL, |
@@ -14127,7 +14032,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
14127 | { | 14032 | { |
14128 | .cmd = NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH, | 14033 | .cmd = NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH, |
14129 | .doit = nl80211_tdls_cancel_channel_switch, | 14034 | .doit = nl80211_tdls_cancel_channel_switch, |
14130 | .policy = nl80211_policy, | ||
14131 | .flags = GENL_UNS_ADMIN_PERM, | 14035 | .flags = GENL_UNS_ADMIN_PERM, |
14132 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 14036 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
14133 | NL80211_FLAG_NEED_RTNL, | 14037 | NL80211_FLAG_NEED_RTNL, |
@@ -14135,7 +14039,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
14135 | { | 14039 | { |
14136 | .cmd = NL80211_CMD_SET_MULTICAST_TO_UNICAST, | 14040 | .cmd = NL80211_CMD_SET_MULTICAST_TO_UNICAST, |
14137 | .doit = nl80211_set_multicast_to_unicast, | 14041 | .doit = nl80211_set_multicast_to_unicast, |
14138 | .policy = nl80211_policy, | ||
14139 | .flags = GENL_UNS_ADMIN_PERM, | 14042 | .flags = GENL_UNS_ADMIN_PERM, |
14140 | .internal_flags = NL80211_FLAG_NEED_NETDEV | | 14043 | .internal_flags = NL80211_FLAG_NEED_NETDEV | |
14141 | NL80211_FLAG_NEED_RTNL, | 14044 | NL80211_FLAG_NEED_RTNL, |
@@ -14143,21 +14046,18 @@ static const struct genl_ops nl80211_ops[] = { | |||
14143 | { | 14046 | { |
14144 | .cmd = NL80211_CMD_SET_PMK, | 14047 | .cmd = NL80211_CMD_SET_PMK, |
14145 | .doit = nl80211_set_pmk, | 14048 | .doit = nl80211_set_pmk, |
14146 | .policy = nl80211_policy, | ||
14147 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 14049 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
14148 | NL80211_FLAG_NEED_RTNL, | 14050 | NL80211_FLAG_NEED_RTNL, |
14149 | }, | 14051 | }, |
14150 | { | 14052 | { |
14151 | .cmd = NL80211_CMD_DEL_PMK, | 14053 | .cmd = NL80211_CMD_DEL_PMK, |
14152 | .doit = nl80211_del_pmk, | 14054 | .doit = nl80211_del_pmk, |
14153 | .policy = nl80211_policy, | ||
14154 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 14055 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
14155 | NL80211_FLAG_NEED_RTNL, | 14056 | NL80211_FLAG_NEED_RTNL, |
14156 | }, | 14057 | }, |
14157 | { | 14058 | { |
14158 | .cmd = NL80211_CMD_EXTERNAL_AUTH, | 14059 | .cmd = NL80211_CMD_EXTERNAL_AUTH, |
14159 | .doit = nl80211_external_auth, | 14060 | .doit = nl80211_external_auth, |
14160 | .policy = nl80211_policy, | ||
14161 | .flags = GENL_ADMIN_PERM, | 14061 | .flags = GENL_ADMIN_PERM, |
14162 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 14062 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
14163 | NL80211_FLAG_NEED_RTNL, | 14063 | NL80211_FLAG_NEED_RTNL, |
@@ -14165,7 +14065,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
14165 | { | 14065 | { |
14166 | .cmd = NL80211_CMD_CONTROL_PORT_FRAME, | 14066 | .cmd = NL80211_CMD_CONTROL_PORT_FRAME, |
14167 | .doit = nl80211_tx_control_port, | 14067 | .doit = nl80211_tx_control_port, |
14168 | .policy = nl80211_policy, | ||
14169 | .flags = GENL_UNS_ADMIN_PERM, | 14068 | .flags = GENL_UNS_ADMIN_PERM, |
14170 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 14069 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
14171 | NL80211_FLAG_NEED_RTNL, | 14070 | NL80211_FLAG_NEED_RTNL, |
@@ -14173,14 +14072,12 @@ static const struct genl_ops nl80211_ops[] = { | |||
14173 | { | 14072 | { |
14174 | .cmd = NL80211_CMD_GET_FTM_RESPONDER_STATS, | 14073 | .cmd = NL80211_CMD_GET_FTM_RESPONDER_STATS, |
14175 | .doit = nl80211_get_ftm_responder_stats, | 14074 | .doit = nl80211_get_ftm_responder_stats, |
14176 | .policy = nl80211_policy, | ||
14177 | .internal_flags = NL80211_FLAG_NEED_NETDEV | | 14075 | .internal_flags = NL80211_FLAG_NEED_NETDEV | |
14178 | NL80211_FLAG_NEED_RTNL, | 14076 | NL80211_FLAG_NEED_RTNL, |
14179 | }, | 14077 | }, |
14180 | { | 14078 | { |
14181 | .cmd = NL80211_CMD_PEER_MEASUREMENT_START, | 14079 | .cmd = NL80211_CMD_PEER_MEASUREMENT_START, |
14182 | .doit = nl80211_pmsr_start, | 14080 | .doit = nl80211_pmsr_start, |
14183 | .policy = nl80211_policy, | ||
14184 | .flags = GENL_UNS_ADMIN_PERM, | 14081 | .flags = GENL_UNS_ADMIN_PERM, |
14185 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | | 14082 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | |
14186 | NL80211_FLAG_NEED_RTNL, | 14083 | NL80211_FLAG_NEED_RTNL, |
@@ -14188,7 +14085,6 @@ static const struct genl_ops nl80211_ops[] = { | |||
14188 | { | 14085 | { |
14189 | .cmd = NL80211_CMD_NOTIFY_RADAR, | 14086 | .cmd = NL80211_CMD_NOTIFY_RADAR, |
14190 | .doit = nl80211_notify_radar_detection, | 14087 | .doit = nl80211_notify_radar_detection, |
14191 | .policy = nl80211_policy, | ||
14192 | .flags = GENL_UNS_ADMIN_PERM, | 14088 | .flags = GENL_UNS_ADMIN_PERM, |
14193 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 14089 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
14194 | NL80211_FLAG_NEED_RTNL, | 14090 | NL80211_FLAG_NEED_RTNL, |
@@ -14200,6 +14096,7 @@ static struct genl_family nl80211_fam __ro_after_init = { | |||
14200 | .hdrsize = 0, /* no private header */ | 14096 | .hdrsize = 0, /* no private header */ |
14201 | .version = 1, /* no particular meaning now */ | 14097 | .version = 1, /* no particular meaning now */ |
14202 | .maxattr = NL80211_ATTR_MAX, | 14098 | .maxattr = NL80211_ATTR_MAX, |
14099 | .policy = nl80211_policy, | ||
14203 | .netnsok = true, | 14100 | .netnsok = true, |
14204 | .pre_doit = nl80211_pre_doit, | 14101 | .pre_doit = nl80211_pre_doit, |
14205 | .post_doit = nl80211_post_doit, | 14102 | .post_doit = nl80211_post_doit, |