Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[XFRM]: Cleanup xfrm_msg_min and xfrm_dispatch

Converts xfrm_msg_min and xfrm_dispatch to use c99 designated
initializers to make greping a little bit easier. Also replaces
two hardcoded message type with meaningful names.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Thomas Graf and committed by
David S. Miller
492b558b 526bdb80

+38 -37
+2
include/linux/xfrm.h
··· 144 144 }; 145 145 #define XFRM_MSG_MAX (__XFRM_MSG_MAX - 1) 146 146 147 + #define XFRM_NR_MSGTYPES (XFRM_MSG_MAX + 1 - XFRM_MSG_BASE) 148 + 147 149 struct xfrm_user_tmpl { 148 150 struct xfrm_id id; 149 151 __u16 family;
+36 -37
net/xfrm/xfrm_user.c
··· 855 855 return 0; 856 856 } 857 857 858 - static const int xfrm_msg_min[(XFRM_MSG_MAX + 1 - XFRM_MSG_BASE)] = { 859 - NLMSG_LENGTH(sizeof(struct xfrm_usersa_info)), /* NEW SA */ 860 - NLMSG_LENGTH(sizeof(struct xfrm_usersa_id)), /* DEL SA */ 861 - NLMSG_LENGTH(sizeof(struct xfrm_usersa_id)), /* GET SA */ 862 - NLMSG_LENGTH(sizeof(struct xfrm_userpolicy_info)),/* NEW POLICY */ 863 - NLMSG_LENGTH(sizeof(struct xfrm_userpolicy_id)), /* DEL POLICY */ 864 - NLMSG_LENGTH(sizeof(struct xfrm_userpolicy_id)), /* GET POLICY */ 865 - NLMSG_LENGTH(sizeof(struct xfrm_userspi_info)), /* ALLOC SPI */ 866 - NLMSG_LENGTH(sizeof(struct xfrm_user_acquire)), /* ACQUIRE */ 867 - NLMSG_LENGTH(sizeof(struct xfrm_user_expire)), /* EXPIRE */ 868 - NLMSG_LENGTH(sizeof(struct xfrm_userpolicy_info)),/* UPD POLICY */ 869 - NLMSG_LENGTH(sizeof(struct xfrm_usersa_info)), /* UPD SA */ 870 - NLMSG_LENGTH(sizeof(struct xfrm_user_polexpire)), /* POLEXPIRE */ 871 - NLMSG_LENGTH(sizeof(struct xfrm_usersa_flush)), /* FLUSH SA */ 872 - NLMSG_LENGTH(0), /* FLUSH POLICY */ 858 + #define XMSGSIZE(type) NLMSG_LENGTH(sizeof(struct type)) 859 + 860 + static const int xfrm_msg_min[XFRM_NR_MSGTYPES] = { 861 + [XFRM_MSG_NEWSA - XFRM_MSG_BASE] = XMSGSIZE(xfrm_usersa_info), 862 + [XFRM_MSG_DELSA - XFRM_MSG_BASE] = XMSGSIZE(xfrm_usersa_id), 863 + [XFRM_MSG_GETSA - XFRM_MSG_BASE] = XMSGSIZE(xfrm_usersa_id), 864 + [XFRM_MSG_NEWPOLICY - XFRM_MSG_BASE] = XMSGSIZE(xfrm_userpolicy_info), 865 + [XFRM_MSG_DELPOLICY - XFRM_MSG_BASE] = XMSGSIZE(xfrm_userpolicy_id), 866 + [XFRM_MSG_GETPOLICY - XFRM_MSG_BASE] = XMSGSIZE(xfrm_userpolicy_id), 867 + [XFRM_MSG_ALLOCSPI - XFRM_MSG_BASE] = XMSGSIZE(xfrm_userspi_info), 868 + [XFRM_MSG_ACQUIRE - XFRM_MSG_BASE] = XMSGSIZE(xfrm_user_acquire), 869 + [XFRM_MSG_EXPIRE - XFRM_MSG_BASE] = XMSGSIZE(xfrm_user_expire), 870 + [XFRM_MSG_UPDPOLICY - XFRM_MSG_BASE] = XMSGSIZE(xfrm_userpolicy_info), 871 + [XFRM_MSG_UPDSA - XFRM_MSG_BASE] = XMSGSIZE(xfrm_usersa_info), 872 + [XFRM_MSG_POLEXPIRE - XFRM_MSG_BASE] = XMSGSIZE(xfrm_user_polexpire), 873 + [XFRM_MSG_FLUSHSA - XFRM_MSG_BASE] = XMSGSIZE(xfrm_usersa_flush), 874 + [XFRM_MSG_FLUSHPOLICY - XFRM_MSG_BASE] = NLMSG_LENGTH(0), 873 875 }; 876 + 877 + #undef XMSGSIZE 874 878 875 879 static struct xfrm_link { 876 880 int (*doit)(struct sk_buff *, struct nlmsghdr *, void **); 877 881 int (*dump)(struct sk_buff *, struct netlink_callback *); 878 - } xfrm_dispatch[] = { 879 - { .doit = xfrm_add_sa, }, 880 - { .doit = xfrm_del_sa, }, 881 - { 882 - .doit = xfrm_get_sa, 883 - .dump = xfrm_dump_sa, 884 - }, 885 - { .doit = xfrm_add_policy }, 886 - { .doit = xfrm_get_policy }, 887 - { 888 - .doit = xfrm_get_policy, 889 - .dump = xfrm_dump_policy, 890 - }, 891 - { .doit = xfrm_alloc_userspi }, 892 - {}, 893 - {}, 894 - { .doit = xfrm_add_policy }, 895 - { .doit = xfrm_add_sa, }, 896 - {}, 897 - { .doit = xfrm_flush_sa }, 898 - { .doit = xfrm_flush_policy }, 882 + } xfrm_dispatch[XFRM_NR_MSGTYPES] = { 883 + [XFRM_MSG_NEWSA - XFRM_MSG_BASE] = { .doit = xfrm_add_sa }, 884 + [XFRM_MSG_DELSA - XFRM_MSG_BASE] = { .doit = xfrm_del_sa }, 885 + [XFRM_MSG_GETSA - XFRM_MSG_BASE] = { .doit = xfrm_get_sa, 886 + .dump = xfrm_dump_sa }, 887 + [XFRM_MSG_NEWPOLICY - XFRM_MSG_BASE] = { .doit = xfrm_add_policy }, 888 + [XFRM_MSG_DELPOLICY - XFRM_MSG_BASE] = { .doit = xfrm_get_policy }, 889 + [XFRM_MSG_GETPOLICY - XFRM_MSG_BASE] = { .doit = xfrm_get_policy, 890 + .dump = xfrm_dump_policy }, 891 + [XFRM_MSG_ALLOCSPI - XFRM_MSG_BASE] = { .doit = xfrm_alloc_userspi }, 892 + [XFRM_MSG_UPDPOLICY - XFRM_MSG_BASE] = { .doit = xfrm_add_policy }, 893 + [XFRM_MSG_UPDSA - XFRM_MSG_BASE] = { .doit = xfrm_add_sa }, 894 + [XFRM_MSG_FLUSHSA - XFRM_MSG_BASE] = { .doit = xfrm_flush_sa }, 895 + [XFRM_MSG_FLUSHPOLICY - XFRM_MSG_BASE] = { .doit = xfrm_flush_policy }, 899 896 }; 900 897 901 898 static int xfrm_done(struct netlink_callback *cb) ··· 928 931 return -1; 929 932 } 930 933 931 - if ((type == 2 || type == 5) && (nlh->nlmsg_flags & NLM_F_DUMP)) { 934 + if ((type == (XFRM_MSG_GETSA - XFRM_MSG_BASE) || 935 + type == (XFRM_MSG_GETPOLICY - XFRM_MSG_BASE)) && 936 + (nlh->nlmsg_flags & NLM_F_DUMP)) { 932 937 u32 rlen; 933 938 934 939 if (link->dump == NULL)