]> www.infradead.org Git - users/griffoul/linux.git/commitdiff
rds: Fix endianness annotations for RDS extension headers
authorUjwal Kundur <ujwal.kundur@gmail.com>
Wed, 20 Aug 2025 17:55:50 +0000 (23:25 +0530)
committerJakub Kicinski <kuba@kernel.org>
Fri, 22 Aug 2025 23:44:39 +0000 (16:44 -0700)
Per the RDS 3.1 spec [1], RDS extension headers EXTHDR_NPATHS and
EXTHDR_GEN_NUM are be16 and be32 values respectively, exchanged during
normal operations over-the-wire (RDS Ping/Pong). This contrasts their
declarations as host endian unsigned ints.

Fix the annotations across occurrences. Flagged by Sparse.

[1] https://oss.oracle.com/projects/rds/dist/documentation/rds-3.1-spec.html

Signed-off-by: Ujwal Kundur <ujwal.kundur@gmail.com>
Reviewed-by: Allison Henderson <allison.henderson@oracle.com>
Link: https://patch.msgid.link/20250820175550.498-5-ujwal.kundur@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/rds/message.c
net/rds/recv.c
net/rds/send.c

index 7af59d2443e5d139275d159e00e99fdabb4051b2..199a899a43e9cbfa3b92b1af975182e8b2999a24 100644 (file)
@@ -44,8 +44,8 @@ static unsigned int   rds_exthdr_size[__RDS_EXTHDR_MAX] = {
 [RDS_EXTHDR_VERSION]   = sizeof(struct rds_ext_header_version),
 [RDS_EXTHDR_RDMA]      = sizeof(struct rds_ext_header_rdma),
 [RDS_EXTHDR_RDMA_DEST] = sizeof(struct rds_ext_header_rdma_dest),
-[RDS_EXTHDR_NPATHS]    = sizeof(u16),
-[RDS_EXTHDR_GEN_NUM]   = sizeof(u32),
+[RDS_EXTHDR_NPATHS]    = sizeof(__be16),
+[RDS_EXTHDR_GEN_NUM]   = sizeof(__be32),
 };
 
 void rds_message_addref(struct rds_message *rm)
index 5627f80013f8b17d3de6284784fe3cbb02bba754..66205d6924bf3df8fae86d8a47a4cbfe57e10a55 100644 (file)
@@ -202,8 +202,8 @@ static void rds_recv_hs_exthdrs(struct rds_header *hdr,
        unsigned int pos = 0, type, len;
        union {
                struct rds_ext_header_version version;
-               u16 rds_npaths;
-               u32 rds_gen_num;
+               __be16 rds_npaths;
+               __be32 rds_gen_num;
        } buffer;
        u32 new_peer_gen_num = 0;
 
index 42d991bc8543c6e22cbe899eb2d9f87aec79547b..0b3d0ef2f008b6551d401c7513fd15589a66fa9d 100644 (file)
@@ -1454,8 +1454,8 @@ rds_send_probe(struct rds_conn_path *cp, __be16 sport,
 
        if (RDS_HS_PROBE(be16_to_cpu(sport), be16_to_cpu(dport)) &&
            cp->cp_conn->c_trans->t_mp_capable) {
-               u16 npaths = cpu_to_be16(RDS_MPATH_WORKERS);
-               u32 my_gen_num = cpu_to_be32(cp->cp_conn->c_my_gen_num);
+               __be16 npaths = cpu_to_be16(RDS_MPATH_WORKERS);
+               __be32 my_gen_num = cpu_to_be32(cp->cp_conn->c_my_gen_num);
 
                rds_message_add_extension(&rm->m_inc.i_hdr,
                                          RDS_EXTHDR_NPATHS, &npaths,