]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
geneve: fix hint header definition wrt endianness
authorAntoine Tenart <atenart@kernel.org>
Thu, 9 Jul 2026 12:48:00 +0000 (14:48 +0200)
committerJakub Kicinski <kuba@kernel.org>
Tue, 21 Jul 2026 17:13:52 +0000 (10:13 -0700)
Bitfields are packed differently depending on the endianness, take it into
account in the GRO hint header definition.

Fixes: e0a12cbf262b ("geneve: add GRO hint output path")
Reported-by: Sashiko <sashiko-bot@kernel.org>
Closes: https://sashiko.dev/#/patchset/20260529144713.780938-1-atenart%40kernel.org
Signed-off-by: Antoine Tenart <atenart@kernel.org>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20260709124801.140632-1-atenart@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/geneve.c

index 396e1a113cd49e9a43bfe6c7cd78f15ca8963906..bed1c9713e0a1725ca3c298778d934a206a79ecd 100644 (file)
@@ -43,8 +43,17 @@ MODULE_PARM_DESC(log_ecn_error, "Log packets received with corrupted ECN");
 #define GENEVE_OPT_GRO_HINT_LEN                1
 
 struct geneve_opt_gro_hint {
+#if defined(__LITTLE_ENDIAN_BITFIELD)
        u8      inner_proto_id:2,
-               nested_is_v6:1;
+               nested_is_v6:1,
+               rsvd:5;
+#elif defined(__BIG_ENDIAN_BITFIELD)
+       u8      rsvd:5,
+               nested_is_v6:1,
+               inner_proto_id:2;
+#else
+#error "Please fix <asm/byteorder.h>"
+#endif
        u8      nested_nh_offset;
        u8      nested_tp_offset;
        u8      nested_hdr_len;