: Shrink the genl-ops registration code.
Subsystems (3)
PATCH 1/2 : Shrink the genl-ops registration code.
Turning them to array and registration in a loop saves 80 lines of code and ~300 bytes from text section.
--- net/netlabel/netlabel_cipso_v4.c | 43 +++++++------------ net/netlabel/netlabel_mgmt.c | 79 ++++++++++----------------------- net/netlabel/netlabel_unlabeled.c | 86 ++++++++++-------------------------- 3 files changed, 64 insertions(+), 144 deletions(-)
net/netlabel/netlabel_cipso_v4.c +16 -27
@@ -718,36 +718,35 @@ static int netlbl_cipsov4_remove(struct sk_buff *skb, struct genl_info *info)* NetLabel Generic NETLINK Command Definitions */ -static struct genl_ops netlbl_cipsov4_genl_c_add = { +static struct genl_ops netlbl_cipsov4_ops[] = { + { .cmd =NLBL_CIPSOV4_C_ADD , .flags =GENL_ADMIN_PERM , .policy = netlbl_cipsov4_genl_policy, .doit = netlbl_cipsov4_add, .dumpit =NULL , -}; - -static struct genl_ops netlbl_cipsov4_genl_c_remove = { + }, + { .cmd =NLBL_CIPSOV4_C_REMOVE , .flags =GENL_ADMIN_PERM , .policy = netlbl_cipsov4_genl_policy, .doit = netlbl_cipsov4_remove, .dumpit =NULL , -}; - -static struct genl_ops netlbl_cipsov4_genl_c_list = { + }, + { .cmd =NLBL_CIPSOV4_C_LIST , .flags =0 , .policy = netlbl_cipsov4_genl_policy, .doit = netlbl_cipsov4_list, .dumpit =NULL , -}; - -static struct genl_ops netlbl_cipsov4_genl_c_listall = { + }, + { .cmd =NLBL_CIPSOV4_C_LISTALL , .flags =0 , .policy = netlbl_cipsov4_genl_policy, .doit =NULL , .dumpit = netlbl_cipsov4_listall, + }, };/*
@@ -764,28 +763,18 @@ static struct genl_ops netlbl_cipsov4_genl_c_listall = {*/ int netlbl_cipsov4_genl_init (void ) { -int ret_val; +int ret_val, i; ret_val =genl_register_family (&netlbl_cipsov4_gnl_family);if (ret_val !=0 )return ret_val; - ret_val =genl_register_ops (&netlbl_cipsov4_gnl_family, - &netlbl_cipsov4_genl_c_add); -if (ret_val !=0 ) -return ret_val; - ret_val =genl_register_ops (&netlbl_cipsov4_gnl_family, - &netlbl_cipsov4_genl_c_remove); -if (ret_val !=0 ) -return ret_val; - ret_val =genl_register_ops (&netlbl_cipsov4_gnl_family, - &netlbl_cipsov4_genl_c_list); -if (ret_val !=0 ) -return ret_val; - ret_val =genl_register_ops (&netlbl_cipsov4_gnl_family, - &netlbl_cipsov4_genl_c_listall); -if (ret_val !=0 ) -return ret_val; +for (i =0 ; i <ARRAY_SIZE (netlbl_cipsov4_ops); i++) { + ret_val =genl_register_ops (&netlbl_cipsov4_gnl_family, + &netlbl_cipsov4_ops[i]); +if (ret_val !=0 ) +return ret_val; + }return 0 ; }
net/netlabel/netlabel_mgmt.c +24 -55
136 lines not on this page · raw message
net/netlabel/netlabel_unlabeled.c +24 -62
143 lines not on this page · raw message
Signature · 1 line
1.5.3.4
Quoted 4 lines · Pavel Emelyanov
Turning them to array and registration in a loop saves 80 lines of code and ~300 bytes from text section.
Signed-off-by Pavel Emelyanov <[email protected]>
Definitely an improvement, thank you.
Quoted 384 lines
--- net/netlabel/netlabel_cipso_v4.c | 43 +++++++------------ net/netlabel/netlabel_mgmt.c | 79 ++++++++++----------------------- net/netlabel/netlabel_unlabeled.c | 86++++++++++-------------------------- 3 files changed, 64 insertions(+), 144 deletions(-)
(quoted diff) +0
-0
b/net/netlabel/netlabel_cipso_v4.cindex c7ad64d..283ff4a 100644net/netlabel/netlabel_cipso_v4.c +0
-0@@ -718,36 +718,35 @@ static int netlbl_cipsov4_remove(struct sk_buff *skb,struct
genl_info*info) * NetLabel Generic NETLINK Command Definitions
*/net/netlabel/netlabel_cipso_v4.c +9
-10-static struct genl_ops netlbl_cipsov4_genl_c_add = { +static struct genl_ops netlbl_cipsov4_ops[] = { + { .cmd =NLBL_CIPSOV4_C_ADD , .flags =GENL_ADMIN_PERM , .policy = netlbl_cipsov4_genl_policy, .doit = netlbl_cipsov4_add, .dumpit =NULL , -}; - -static struct genl_ops netlbl_cipsov4_genl_c_remove = { + }, + { .cmd =NLBL_CIPSOV4_C_REMOVE , .flags =GENL_ADMIN_PERM , .policy = netlbl_cipsov4_genl_policy, .doit = netlbl_cipsov4_remove, .dumpit =NULL , -}; - -static struct genl_ops netlbl_cipsov4_genl_c_list = { + }, + { .cmd =NLBL_CIPSOV4_C_LIST , .flags =0 , .policy = netlbl_cipsov4_genl_policy, .doit = netlbl_cipsov4_list, .dumpit =NULL , -}; - -static struct genl_ops netlbl_cipsov4_genl_c_listall = { + }, + { .cmd =NLBL_CIPSOV4_C_LISTALL , .flags =0 , .policy = netlbl_cipsov4_genl_policy, .doit =NULL , .dumpit = netlbl_cipsov4_listall, + }, };/* @@ -764,28 +763,18 @@ static struct genl_ops netlbl_cipsov4_genl_c_listall= { */
intnetlbl_cipsov4_genl_init(void)
{net/netlabel/netlabel_cipso_v4.c +7
-17-int ret_val; +int ret_val, i; ret_val =genl_register_family (&netlbl_cipsov4_gnl_family);if (ret_val !=0 )return ret_val; - ret_val =genl_register_ops (&netlbl_cipsov4_gnl_family, - &netlbl_cipsov4_genl_c_add); -if (ret_val !=0 ) -return ret_val; - ret_val =genl_register_ops (&netlbl_cipsov4_gnl_family, - &netlbl_cipsov4_genl_c_remove); -if (ret_val !=0 ) -return ret_val; - ret_val =genl_register_ops (&netlbl_cipsov4_gnl_family, - &netlbl_cipsov4_genl_c_list); -if (ret_val !=0 ) -return ret_val; - ret_val =genl_register_ops (&netlbl_cipsov4_gnl_family, - &netlbl_cipsov4_genl_c_listall); -if (ret_val !=0 ) -return ret_val; +for (i =0 ; i <ARRAY_SIZE (netlbl_cipsov4_ops); i++) { + ret_val =genl_register_ops (&netlbl_cipsov4_gnl_family, + &netlbl_cipsov4_ops[i]); +if (ret_val !=0 ) +return ret_val; + }return 0 ; }net/netlabel/netlabel_mgmt.c +24
-55@@ -517,68 +517,63 @@ version_failure:* NetLabel Generic NETLINK Command Definitions */ -static struct genl_ops netlbl_mgmt_genl_c_add = { +static struct genl_ops netlbl_mgmt_genl_ops[] = { + { .cmd =NLBL_MGMT_C_ADD , .flags =GENL_ADMIN_PERM , .policy = netlbl_mgmt_genl_policy, .doit = netlbl_mgmt_add, .dumpit =NULL , -}; - -static struct genl_ops netlbl_mgmt_genl_c_remove = { + }, + { .cmd =NLBL_MGMT_C_REMOVE , .flags =GENL_ADMIN_PERM , .policy = netlbl_mgmt_genl_policy, .doit = netlbl_mgmt_remove, .dumpit =NULL , -}; - -static struct genl_ops netlbl_mgmt_genl_c_listall = { + }, + { .cmd =NLBL_MGMT_C_LISTALL , .flags =0 , .policy = netlbl_mgmt_genl_policy, .doit =NULL , .dumpit = netlbl_mgmt_listall, -}; - -static struct genl_ops netlbl_mgmt_genl_c_adddef = { + }, + { .cmd =NLBL_MGMT_C_ADDDEF , .flags =GENL_ADMIN_PERM , .policy = netlbl_mgmt_genl_policy, .doit = netlbl_mgmt_adddef, .dumpit =NULL , -}; - -static struct genl_ops netlbl_mgmt_genl_c_removedef = { + }, + { .cmd =NLBL_MGMT_C_REMOVEDEF , .flags =GENL_ADMIN_PERM , .policy = netlbl_mgmt_genl_policy, .doit = netlbl_mgmt_removedef, .dumpit =NULL , -}; - -static struct genl_ops netlbl_mgmt_genl_c_listdef = { + }, + { .cmd =NLBL_MGMT_C_LISTDEF , .flags =0 , .policy = netlbl_mgmt_genl_policy, .doit = netlbl_mgmt_listdef, .dumpit =NULL , -}; - -static struct genl_ops netlbl_mgmt_genl_c_protocols = { + }, + { .cmd =NLBL_MGMT_C_PROTOCOLS , .flags =0 , .policy = netlbl_mgmt_genl_policy, .doit =NULL , .dumpit = netlbl_mgmt_protocols, -}; - -static struct genl_ops netlbl_mgmt_genl_c_version = { + }, + { .cmd =NLBL_MGMT_C_VERSION , .flags =0 , .policy = netlbl_mgmt_genl_policy, .doit = netlbl_mgmt_version, .dumpit =NULL , + }, };/* @@ -595,44 +590,18 @@ static struct genl_ops netlbl_mgmt_genl_c_version = {*/ int netlbl_mgmt_genl_init (void ) { -int ret_val; +int ret_val, i; ret_val =genl_register_family (&netlbl_mgmt_gnl_family);if (ret_val !=0 )return ret_val; - ret_val =genl_register_ops (&netlbl_mgmt_gnl_family, - &netlbl_mgmt_genl_c_add); -if (ret_val !=0 ) -return ret_val; - ret_val =genl_register_ops (&netlbl_mgmt_gnl_family, - &netlbl_mgmt_genl_c_remove); -if (ret_val !=0 ) -return ret_val; - ret_val =genl_register_ops (&netlbl_mgmt_gnl_family, - &netlbl_mgmt_genl_c_listall); -if (ret_val !=0 ) -return ret_val; - ret_val =genl_register_ops (&netlbl_mgmt_gnl_family, - &netlbl_mgmt_genl_c_adddef); -if (ret_val !=0 ) -return ret_val; - ret_val =genl_register_ops (&netlbl_mgmt_gnl_family, - &netlbl_mgmt_genl_c_removedef); -if (ret_val !=0 ) -return ret_val; - ret_val =genl_register_ops (&netlbl_mgmt_gnl_family, - &netlbl_mgmt_genl_c_listdef); -if (ret_val !=0 ) -return ret_val; - ret_val =genl_register_ops (&netlbl_mgmt_gnl_family, - &netlbl_mgmt_genl_c_protocols); -if (ret_val !=0 ) -return ret_val; - ret_val =genl_register_ops (&netlbl_mgmt_gnl_family, - &netlbl_mgmt_genl_c_version); -if (ret_val !=0 ) -return ret_val; +for (i =0 ; i <ARRAY_SIZE (netlbl_mgmt_genl_ops); i++) { + ret_val =genl_register_ops (&netlbl_mgmt_gnl_family, + &netlbl_mgmt_genl_ops[i]); +if (ret_val !=0 ) +return ret_val; + }return 0 ; }(quoted diff) +0
-0
b/net/netlabel/netlabel_unlabeled.cindex 3e745b7..f0f1322 100644net/netlabel/netlabel_unlabeled.c +17
-22@@ -1553,68 +1553,63 @@ unlabel_staticlistdef_return:* NetLabel Generic NETLINK Command Definitions */ -static struct genl_ops netlbl_unlabel_genl_c_staticadd = { +static struct genl_ops netlbl_unlabel_genl_ops[] = { + { .cmd =NLBL_UNLABEL_C_STATICADD , .flags =GENL_ADMIN_PERM , .policy = netlbl_unlabel_genl_policy, .doit = netlbl_unlabel_staticadd, .dumpit =NULL , -}; - -static struct genl_ops netlbl_unlabel_genl_c_staticremove = { + }, + { .cmd =NLBL_UNLABEL_C_STATICREMOVE , .flags =GENL_ADMIN_PERM , .policy = netlbl_unlabel_genl_policy, .doit = netlbl_unlabel_staticremove, .dumpit =NULL , -}; - -static struct genl_ops netlbl_unlabel_genl_c_staticlist = { + }, + { .cmd =NLBL_UNLABEL_C_STATICLIST , .flags =0 , .policy = netlbl_unlabel_genl_policy, .doit =NULL , .dumpit = netlbl_unlabel_staticlist, -}; - -static struct genl_ops netlbl_unlabel_genl_c_staticadddef = { + }, + { .cmd =NLBL_UNLABEL_C_STATICADDDEF , .flags =GENL_ADMIN_PERM , .policy = netlbl_unlabel_genl_policy, .doit = netlbl_unlabel_staticadddef, .dumpit =NULL , -}; - -static struct genl_ops netlbl_unlabel_genl_c_staticremovedef = { + }, + { .cmd =NLBL_UNLABEL_C_STATICREMOVEDEF , .flags =GENL_ADMIN_PERM , .policy = netlbl_unlabel_genl_policy, .doit = netlbl_unlabel_staticremovedef, .dumpit =NULL , -}; - -static struct genl_ops netlbl_unlabel_genl_c_staticlistdef = { + }, + { .cmd =NLBL_UNLABEL_C_STATICLISTDEF , .flags =0 , .policy = netlbl_unlabel_genl_policy, .doit =NULL , .dumpit = netlbl_unlabel_staticlistdef, -}; - -static struct genl_ops netlbl_unlabel_genl_c_accept = { + }, + { .cmd =NLBL_UNLABEL_C_ACCEPT , .flags =GENL_ADMIN_PERM , .policy = netlbl_unlabel_genl_policy, .doit = netlbl_unlabel_accept, .dumpit =NULL , -}; - -static struct genl_ops netlbl_unlabel_genl_c_list = { + }, + { .cmd =NLBL_UNLABEL_C_LIST , .flags =0 , .policy = netlbl_unlabel_genl_policy, .doit = netlbl_unlabel_list, .dumpit =NULL , + }, };/* @@ -1631,51 +1626,18 @@ static struct genl_ops netlbl_unlabel_genl_c_list ={ */
intnetlbl_unlabel_genl_init(void)
{net/netlabel/netlabel_unlabeled.c +7
-40-int ret_val; +int ret_val, i; ret_val =genl_register_family (&netlbl_unlabel_gnl_family);if (ret_val !=0 )return ret_val; - ret_val =genl_register_ops (&netlbl_unlabel_gnl_family, - &netlbl_unlabel_genl_c_staticadd); -if (ret_val !=0 ) -return ret_val; - - ret_val =genl_register_ops (&netlbl_unlabel_gnl_family, - &netlbl_unlabel_genl_c_staticremove); -if (ret_val !=0 ) -return ret_val; - - ret_val =genl_register_ops (&netlbl_unlabel_gnl_family, - &netlbl_unlabel_genl_c_staticlist); -if (ret_val !=0 ) -return ret_val; - - ret_val =genl_register_ops (&netlbl_unlabel_gnl_family, - &netlbl_unlabel_genl_c_staticadddef); -if (ret_val !=0 ) -return ret_val; - - ret_val =genl_register_ops (&netlbl_unlabel_gnl_family, - &netlbl_unlabel_genl_c_staticremovedef); -if (ret_val !=0 ) -return ret_val; - - ret_val =genl_register_ops (&netlbl_unlabel_gnl_family, - &netlbl_unlabel_genl_c_staticlistdef); -if (ret_val !=0 ) -return ret_val; - - ret_val =genl_register_ops (&netlbl_unlabel_gnl_family, - &netlbl_unlabel_genl_c_accept); -if (ret_val !=0 ) -return ret_val; - - ret_val =genl_register_ops (&netlbl_unlabel_gnl_family, - &netlbl_unlabel_genl_c_list); -if (ret_val !=0 ) -return ret_val; +for (i =0 ; i <ARRAY_SIZE (netlbl_unlabel_genl_ops); i++) { + ret_val =genl_register_ops (&netlbl_unlabel_gnl_family, + &netlbl_unlabel_genl_ops[i]); +if (ret_val !=0 ) +return ret_val; + }return 0 ; }
Signature · 2 lines
paul moore linux security @ hp
From: Paul Moore <[email protected]>
Date: Wed, 13 Feb 2008 08:33:08 -0500
Quoted 9 lines · Pavel Emelyanov
Quoted 4 lines
Turning them to array and registration in a loop saves 80 lines of code and ~300 bytes from text section.
Signed-off-by Pavel Emelyanov <[email protected]>Definitely an improvement, thank you.
Acked-by Paul Moore <[email protected]>
Applied.