File fix-pointer-to-int.patch of Package valkey

From eb6da581e73a0f0deae2e2b40def2d535cf3c738 Mon Sep 17 00:00:00 2001
From: stydxm <stydxm@outlook.com>
Date: Wed, 11 Feb 2026 05:48:20 +0800
Subject: [PATCH] Fix pointer-to-int-cast warnings for RDMA address handling

Signed-off-by: stydxm <stydxm@outlook.com>
---
 deps/libvalkey/src/rdma.c |  8 ++++----
 src/rdma.c                | 22 +++++++++++-----------
 tests/rdma/rdma-test.c    | 22 +++++++++++-----------
 3 files changed, 26 insertions(+), 26 deletions(-)

diff --git a/deps/libvalkey/src/rdma.c b/deps/libvalkey/src/rdma.c
index b0deba72531..eddefbeb787 100644
--- a/deps/libvalkey/src/rdma.c
+++ b/deps/libvalkey/src/rdma.c
@@ -161,7 +161,7 @@ static int rdmaPostRecv(RdmaContext *ctx, struct rdma_cm_id *cm_id, valkeyRdmaCm
     sge.length = length;
     sge.lkey = ctx->cmd_mr->lkey;
 
-    recv_wr.wr_id = (uint64_t)cmd;
+    recv_wr.wr_id = (uint64_t)(uintptr_t)cmd;
     recv_wr.sg_list = &sge;
     recv_wr.num_sge = 1;
     recv_wr.next = NULL;
@@ -302,7 +302,7 @@ static int rdmaSendCommand(valkeyContext *c, struct rdma_cm_id *cm_id, valkeyRdm
 
     send_wr.sg_list = &sge;
     send_wr.num_sge = 1;
-    send_wr.wr_id = (uint64_t)_cmd;
+    send_wr.wr_id = (uint64_t)(uintptr_t)_cmd;
     send_wr.opcode = IBV_WR_SEND;
     send_wr.send_flags = IBV_SEND_SIGNALED;
     send_wr.next = NULL;
@@ -320,7 +320,7 @@ static int connRdmaRegisterRx(valkeyContext *c, struct rdma_cm_id *cm_id) {
     valkeyRdmaCmd cmd = {0};
 
     cmd.memory.opcode = htons(RegisterXferMemory);
-    cmd.memory.addr = htobe64((uint64_t)ctx->recv_buf);
+    cmd.memory.addr = htobe64((uint64_t)(uintptr_t)ctx->recv_buf);
     cmd.memory.length = htonl(ctx->recv_length);
     cmd.memory.key = htonl(ctx->recv_mr->rkey);
 
@@ -338,7 +338,7 @@ static int connRdmaHandleRecv(valkeyContext *c, RdmaContext *ctx, struct rdma_cm
 
     switch (ntohs(cmd->keepalive.opcode)) {
     case RegisterXferMemory:
-        ctx->tx_addr = (char *)be64toh(cmd->memory.addr);
+        ctx->tx_addr = (char *)(uintptr_t)be64toh(cmd->memory.addr);
         ctx->tx_length = ntohl(cmd->memory.length);
         ctx->tx_key = ntohl(cmd->memory.key);
         ctx->tx_offset = 0;
diff --git a/src/rdma.c b/src/rdma.c
index 864cca4de4f..2d4cc498c25 100644
--- a/src/rdma.c
+++ b/src/rdma.c
@@ -180,11 +180,11 @@ static int rdmaPostRecv(RdmaContext *ctx, struct rdma_cm_id *cm_id, ValkeyRdmaCm
         return C_ERR;
     }
 
-    sge.addr = (uint64_t)cmd;
+    sge.addr = (uint64_t)(uintptr_t)cmd;
     sge.length = length;
     sge.lkey = ctx->cmd_mr->lkey;
 
-    recv_wr.wr_id = (uint64_t)cmd;
+    recv_wr.wr_id = (uint64_t)(uintptr_t)cmd;
     recv_wr.sg_list = &sge;
     recv_wr.num_sge = 1;
     recv_wr.next = NULL;
@@ -451,13 +451,13 @@ static int rdmaSendCommand(RdmaContext *ctx, struct rdma_cm_id *cm_id, ValkeyRdm
     assert(i < 2 * VALKEY_RDMA_MAX_WQE);
 
     memcpy(_cmd, cmd, sizeof(ValkeyRdmaCmd));
-    sge.addr = (uint64_t)_cmd;
+    sge.addr = (uint64_t)(uintptr_t)_cmd;
     sge.length = sizeof(ValkeyRdmaCmd);
     sge.lkey = ctx->cmd_mr->lkey;
 
     send_wr.sg_list = &sge;
     send_wr.num_sge = 1;
-    send_wr.wr_id = (uint64_t)_cmd;
+    send_wr.wr_id = (uint64_t)(uintptr_t)_cmd;
     send_wr.opcode = IBV_WR_SEND;
     send_wr.send_flags = IBV_SEND_SIGNALED;
     send_wr.next = NULL;
@@ -474,7 +474,7 @@ static int connRdmaRegisterRx(RdmaContext *ctx, struct rdma_cm_id *cm_id) {
     ValkeyRdmaCmd cmd = {0};
 
     cmd.memory.opcode = htons(RegisterXferMemory);
-    cmd.memory.addr = htonu64((uint64_t)ctx->rx.addr);
+    cmd.memory.addr = htonu64((uint64_t)(uintptr_t)ctx->rx.addr);
     cmd.memory.length = htonl(ctx->rx.length);
     cmd.memory.key = htonl(ctx->rx.mr->rkey);
 
@@ -552,7 +552,7 @@ static int connRdmaHandleRecv(RdmaContext *ctx, struct rdma_cm_id *cm_id, Valkey
     case Keepalive: break;
 
     case RegisterXferMemory:
-        ctx->tx_addr = (char *)ntohu64(cmd->memory.addr);
+        ctx->tx_addr = (char *)(uintptr_t)ntohu64(cmd->memory.addr);
         ctx->tx.length = ntohl(cmd->memory.length);
         ctx->tx_key = ntohl(cmd->memory.key);
         ctx->tx.offset = 0;
@@ -632,14 +632,14 @@ static int connRdmaHandleCq(rdma_connection *rdma_conn) {
 
     switch (wc.opcode) {
     case IBV_WC_RECV:
-        cmd = (ValkeyRdmaCmd *)wc.wr_id;
+        cmd = (ValkeyRdmaCmd *)(uintptr_t)wc.wr_id;
         if (connRdmaHandleRecv(ctx, cm_id, cmd, wc.byte_len) == C_ERR) {
             return C_ERR;
         }
         break;
 
     case IBV_WC_RECV_RDMA_WITH_IMM:
-        cmd = (ValkeyRdmaCmd *)wc.wr_id;
+        cmd = (ValkeyRdmaCmd *)(uintptr_t)wc.wr_id;
         if (connRdmaHandleRecvImm(ctx, cm_id, cmd, ntohl(wc.imm_data)) == C_ERR) {
             rdma_conn->c.state = CONN_STATE_ERROR;
             return C_ERR;
@@ -654,7 +654,7 @@ static int connRdmaHandleCq(rdma_connection *rdma_conn) {
         break;
 
     case IBV_WC_SEND:
-        cmd = (ValkeyRdmaCmd *)wc.wr_id;
+        cmd = (ValkeyRdmaCmd *)(uintptr_t)wc.wr_id;
         if (connRdmaHandleSend(cmd) == C_ERR) {
             return C_ERR;
         }
@@ -1300,7 +1300,7 @@ static size_t connRdmaSend(connection *conn, const void *data, size_t data_len)
 
     memcpy(addr, data, data_len);
 
-    sge.addr = (uint64_t)addr;
+    sge.addr = (uint64_t)(uintptr_t)addr;
     sge.lkey = ctx->tx.mr->lkey;
     sge.length = data_len;
 
@@ -1309,7 +1309,7 @@ static size_t connRdmaSend(connection *conn, const void *data, size_t data_len)
     send_wr.opcode = IBV_WR_RDMA_WRITE_WITH_IMM;
     send_wr.send_flags = (++ctx->tx_ops % (VALKEY_RDMA_MAX_WQE / 2)) ? 0 : IBV_SEND_SIGNALED;
     send_wr.imm_data = htonl(data_len);
-    send_wr.wr.rdma.remote_addr = (uint64_t)remote_addr;
+    send_wr.wr.rdma.remote_addr = (uint64_t)(uintptr_t)remote_addr;
     send_wr.wr.rdma.rkey = ctx->tx_key;
     send_wr.wr_id = 0;
     send_wr.next = NULL;
diff --git a/tests/rdma/rdma-test.c b/tests/rdma/rdma-test.c
index 6d39522f8ae..19288012c33 100644
--- a/tests/rdma/rdma-test.c
+++ b/tests/rdma/rdma-test.c
@@ -150,11 +150,11 @@ static int rdmaPostRecv(RdmaContext *ctx, struct rdma_cm_id *cm_id, valkeyRdmaCm
     struct ibv_recv_wr recv_wr, *bad_wr;
 
 
-    sge.addr = (uint64_t)cmd;
+    sge.addr = (uint64_t)(uintptr_t)cmd;
     sge.length = length;
     sge.lkey = ctx->cmd_mr->lkey;
 
-    recv_wr.wr_id = (uint64_t)cmd;
+    recv_wr.wr_id = (uint64_t)(uintptr_t)cmd;
     recv_wr.sg_list = &sge;
     recv_wr.num_sge = 1;
     recv_wr.next = NULL;
@@ -286,13 +286,13 @@ static int rdmaSendCommand(RdmaContext *ctx, struct rdma_cm_id *cm_id, valkeyRdm
     assert(i < 2 * VALKEY_RDMA_MAX_WQE);
 
     memcpy(_cmd, cmd, sizeof(valkeyRdmaCmd));
-    sge.addr = (uint64_t)_cmd;
+    sge.addr = (uint64_t)(uintptr_t)_cmd;
     sge.length = sizeof(valkeyRdmaCmd);
     sge.lkey = ctx->cmd_mr->lkey;
 
     send_wr.sg_list = &sge;
     send_wr.num_sge = 1;
-    send_wr.wr_id = (uint64_t)_cmd;
+    send_wr.wr_id = (uint64_t)(uintptr_t)_cmd;
     send_wr.opcode = IBV_WR_SEND;
     send_wr.send_flags = IBV_SEND_SIGNALED;
     send_wr.next = NULL;
@@ -308,7 +308,7 @@ static int connRdmaRegisterRx(RdmaContext *ctx, struct rdma_cm_id *cm_id) {
     valkeyRdmaCmd cmd = { 0 };
 
     cmd.memory.opcode = htons(RegisterXferMemory);
-    cmd.memory.addr = htobe64((uint64_t)ctx->recv_buf);
+    cmd.memory.addr = htobe64((uint64_t)(uintptr_t)ctx->recv_buf);
     cmd.memory.length = htonl(ctx->recv_length);
     cmd.memory.key = htonl(ctx->recv_mr->rkey);
 
@@ -326,7 +326,7 @@ static int connRdmaHandleRecv(RdmaContext *ctx, struct rdma_cm_id *cm_id, valkey
 
     switch (ntohs(cmd->keepalive.opcode)) {
     case RegisterXferMemory:
-        ctx->tx_addr = (char *)be64toh(cmd->memory.addr);
+        ctx->tx_addr = (char *)(uintptr_t)be64toh(cmd->memory.addr);
         ctx->tx_length = ntohl(cmd->memory.length);
         ctx->tx_key = ntohl(cmd->memory.key);
         ctx->tx_offset = 0;
@@ -405,7 +405,7 @@ static int connRdmaHandleCq(RdmaContext *ctx) {
 
     switch (wc.opcode) {
     case IBV_WC_RECV:
-        cmd = (valkeyRdmaCmd *)wc.wr_id;
+        cmd = (valkeyRdmaCmd *)(uintptr_t)wc.wr_id;
         if (connRdmaHandleRecv(ctx, cm_id, cmd, wc.byte_len) == -1) {
             return -1;
         }
@@ -413,7 +413,7 @@ static int connRdmaHandleCq(RdmaContext *ctx) {
         break;
 
     case IBV_WC_RECV_RDMA_WITH_IMM:
-        cmd = (valkeyRdmaCmd *)wc.wr_id;
+        cmd = (valkeyRdmaCmd *)(uintptr_t)wc.wr_id;
         if (connRdmaHandleRecvImm(ctx, cm_id, cmd, ntohl(wc.imm_data)) == -1) {
             return -1;
         }
@@ -426,7 +426,7 @@ static int connRdmaHandleCq(RdmaContext *ctx) {
 
         break;
     case IBV_WC_SEND:
-        cmd = (valkeyRdmaCmd *)wc.wr_id;
+        cmd = (valkeyRdmaCmd *)(uintptr_t)wc.wr_id;
         if (connRdmaHandleSend(cmd) == -1) {
             return -1;
         }
@@ -510,7 +510,7 @@ static size_t connRdmaSend(RdmaContext *ctx, struct rdma_cm_id *cm_id, const voi
     assert(data_len <= ctx->tx_length);
     memcpy(addr, data, data_len);
 
-    sge.addr = (uint64_t)addr;
+    sge.addr = (uint64_t)(uintptr_t)addr;
     sge.lkey = ctx->send_mr->lkey;
     sge.length = data_len;
 
@@ -519,7 +519,7 @@ static size_t connRdmaSend(RdmaContext *ctx, struct rdma_cm_id *cm_id, const voi
     send_wr.opcode = IBV_WR_RDMA_WRITE_WITH_IMM;
     send_wr.send_flags = (++ctx->send_ops % VALKEY_RDMA_MAX_WQE) ? 0 : IBV_SEND_SIGNALED;
     send_wr.imm_data = htonl(data_len);
-    send_wr.wr.rdma.remote_addr = (uint64_t)remote_addr;
+    send_wr.wr.rdma.remote_addr = (uint64_t)(uintptr_t)remote_addr;
     send_wr.wr.rdma.rkey = ctx->tx_key;
     send_wr.next = NULL;
     ret = ibv_post_send(cm_id->qp, &send_wr, &bad_wr);
openSUSE Build Service is sponsored by