Subject: Re: [PATCH net-next] tcp: remove unused hash_size from struct tcp_out_options

From: Jakub Sitnicki <[email-masked]>
Date: Thu, 05 Mar 2026 11:40:27 +0100

On Thu, Mar 05, 2026 at 11:27 AM +09, Keita Morisaki wrote:
> hash_size is declared but never read. The MD5 path always uses a
> fixed size of 16, and the TCP-AO path uses tcp_ao_maclen().
>
> Suggested-by: Jakub Sitnicki <[email-masked]>
> Signed-off-by: Keita Morisaki <[email-masked]>
> ---
>  net/ipv4/tcp_output.c | 1 -
>  1 file changed, 1 deletion(-)
>
> diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
> index 63ee037f46e50..f0e04ebd8b723 100644
> --- a/net/ipv4/tcp_output.c
> +++ b/net/ipv4/tcp_output.c
> @@ -441,7 +441,6 @@ struct tcp_out_options {
>  	u8 ws;			/* window scale, 0 to disable */
>  	u8 num_accecn_fields:7,	/* number of AccECN fields needed */
>  	   use_synack_ecn_bytes:1; /* Use synack_ecn_bytes or not */
> -	u8 hash_size;		/* bytes in hash_location */
>  	__u8 *hash_location;	/* temporary pointer, overloaded */
>  	__u32 tsval, tsecr;	/* need to include OPTION_TS */
>  	struct tcp_fastopen_cookie *fastopen_cookie;	/* Fast open cookie */
>
> base-commit: 21fc6b53f12379f3f9b29830be3597a322261df8

Worth noting that this closes a 7-byte hole we had there:

        u8                         num_accecn_fields:7;  /*     7: 0  1 */
        u8                         use_synack_ecn_bytes:1; /*     7: 7  1 */
        u8                         hash_size;            /*     8     1 */

        /* XXX 7 bytes hole, try to pack */

        __u8 *                     hash_location;        /*    16     8 */

Struct size went down from 96B to 88B.