OSDN Git Service

genetlink: reorg struct genl_family
authorJakub Kicinski <kuba@kernel.org>
Fri, 2 Oct 2020 21:49:52 +0000 (14:49 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sat, 3 Oct 2020 02:11:11 +0000 (19:11 -0700)
commite5086736969880478abb2ac85ef8757ac6ce45bf
tree4bf1efbc717d0aaee850322aeab00e608c013dd3
parent5a38b4fc010412beda7e6e4284401559356f5827
genetlink: reorg struct genl_family

There are holes and oversized members in struct genl_family.

Before: /* size: 104, cachelines: 2, members: 16 */
After:  /* size:  88, cachelines: 2, members: 16 */

The command field in struct genlmsghdr is a u8, so no point
in the operation count being 32 bit. Also operation 0 is
usually undefined, so we only need 255 entries.

netnsok and parallel_ops are only ever initialized to true.

We can grow the fields as needed, compiler should warn us
if someone tries to assign larger constants.

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Reviewed-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/genetlink.h