rds: ib: force endiannes annotation [Linux 5.1]

rds: ib: force endiannes annotation [Linux 5.1]

This Linux kernel change "rds: ib: force endiannes annotation" is included in the Linux 5.1 release. This change is authored by Nicholas Mc Guire <hofrat [at] osadl.org> on Tue Apr 30 05:12:57 2019 +0200. The commit for this change in Linux stable tree is f350574 (patch).

rds: ib: force endiannes annotation

While the endiannes is being handled correctly as indicated by the comment
above the offending line - sparse was unhappy with the missing annotation
as be64_to_cpu() expects a __be64 argument. To mitigate this annotation
all involved variables are changed to a consistent __le64 and the
 conversion to uint64_t delayed to the call to rds_cong_map_updated().

Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

There are 8 lines of Linux source code added/deleted in this change. Code changes to Linux kernel are as follows.

 net/rds/ib_recv.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/net/rds/ib_recv.c b/net/rds/ib_recv.c
index 7055985..8946c89 100644
--- a/net/rds/ib_recv.c
+++ b/net/rds/ib_recv.c
@@ -772,7 +772,7 @@ static void rds_ib_cong_recv(struct rds_connection *conn,
    unsigned long frag_off;
    unsigned long to_copy;
    unsigned long copied;
-   uint64_t uncongested = 0;
+   __le64 uncongested = 0;
    void *addr;

    /* catch completely corrupt packets */
@@ -789,7 +789,7 @@ static void rds_ib_cong_recv(struct rds_connection *conn,
    copied = 0;

    while (copied < RDS_CONG_MAP_BYTES) {
-       uint64_t *src, *dst;
+       __le64 *src, *dst;
        unsigned int k;

        to_copy = min(RDS_FRAG_SIZE - frag_off, PAGE_SIZE - map_off);
@@ -824,9 +824,7 @@ static void rds_ib_cong_recv(struct rds_connection *conn,
    }

    /* the congestion map is in little endian order */
-   uncongested = le64_to_cpu(uncongested);
-
-   rds_cong_map_updated(map, uncongested);
+   rds_cong_map_updated(map, le64_to_cpu(uncongested));
 }

 static void rds_ib_process_recv(struct rds_connection *conn,

Leave a Reply

Your email address will not be published. Required fields are marked *