sctp: deduplicate identical skb_checksum_ops
The same skb_checksum_ops struct is defined twice in two different places, leading to code duplication. Declare it as a global variable into a common header instead of allocating it on the stack on each function call. bloat-o-meter reports a slight code shrink. add/remove: 1/1 grow/shrink: 0/10 up/down: 128/-1282 (-1154) Function old new delta sctp_csum_ops - 128 +128 crc32c_csum_ops 16 - -16 sctp_rcv 6616 6583 -33 sctp_packet_pack 4542 4504 -38 nf_conntrack_sctp_packet 4980 4926 -54 execute_masked_set_action 6453 6389 -64 tcf_csum_sctp 575 428 -147 sctp_gso_segment 1292 1126 -166 sctp_csum_check 579 412 -167 sctp_snat_handler 957 772 -185 sctp_dnat_handler 1321 1132 -189 l4proto_manip_pkt 2536 2313 -223 Total: Before=359297613, After=359296459, chg -0.00% Reviewed-by: Xin Long <lucien.xin@gmail.com> Signed-off-by: Matteo Croce <mcroce@redhat.com> Acked-by: Neil Horman <nhorman@tuxdriver.com> Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
2544af0344
commit
c3e933a5b8
@@ -103,11 +103,6 @@ static const struct net_offload sctp6_offload = {
|
||||
},
|
||||
};
|
||||
|
||||
static const struct skb_checksum_ops crc32c_csum_ops = {
|
||||
.update = sctp_csum_update,
|
||||
.combine = sctp_csum_combine,
|
||||
};
|
||||
|
||||
int __init sctp_offload_init(void)
|
||||
{
|
||||
int ret;
|
||||
@@ -120,7 +115,7 @@ int __init sctp_offload_init(void)
|
||||
if (ret)
|
||||
goto ipv4;
|
||||
|
||||
crc32c_csum_stub = &crc32c_csum_ops;
|
||||
crc32c_csum_stub = &sctp_csum_ops;
|
||||
return ret;
|
||||
|
||||
ipv4:
|
||||
|
Reference in New Issue
Block a user