Patch "IB/iser: Fix sparse warnings" has been added to the 3.18-stable tree
This is a note to let you know that I've just added the patch titled
IB/iser: Fix sparse warnings
to the 3.18-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
ib-iser-fix-sparse-warnings.patch
and it can be found in the queue-3.18 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
49df2781b101a729e9f46eddc845a587fc5665a8Mon Sep 17 00:00:00 2001
From: Sagi Grimberg <[email protected]>
Date: Sun, 7 Dec 2014 16:09:57 +0200
Subject: IB/iser: Fix sparse warnings
From: Sagi Grimberg <[email protected]>
commit 49df2781b101a729e9f46eddc845a587fc5665a8 upstream.
Use uintptr_t to handle wr_id casting, which was found by Kbuild test robot and smatch. Also remove an internal definition of variable which potentially shadows an external one (and make sparse happy).
--- drivers/infiniband/ulp/iser/iser_memory.c | 1 - drivers/infiniband/ulp/iser/iser_verbs.c | 15 ++++++++------- 2 files changed, 8 insertions(+), 8 deletions(-)
drivers/infiniband/ulp/iser/iser_memory.c +0 -1
@@ -73,7 +73,6 @@ static int iser_start_rdma_unaligned_sg(if (cmd_dir ==ISER_DIR_OUT ) {/* copy the unaligned sg the buffer which is used for RDMA */ -int i;char *p, *from; sgl = (struct scatterlist *)data->buf;
drivers/infiniband/ulp/iser/iser_verbs.c +8 -7
@@ -1052,7 +1052,7 @@ int iser_post_recvl(struct iser_conn *is sge.length =ISER_RX_LOGIN_SIZE ; sge.lkey = ib_conn->device->mr->lkey; - rx_wr.wr_id = (unsigned long )iser_conn->login_resp_buf; + rx_wr.wr_id = (uintptr_t )iser_conn->login_resp_buf; rx_wr.sg_list = &sge; rx_wr.num_sge =1 ; rx_wr.next =NULL ;
@@ -1076,7 +1076,7 @@ int iser_post_recvm(struct iser_conn *isfor (rx_wr = ib_conn->rx_wr, i =0 ; i < count; i++, rx_wr++) { rx_desc = &iser_conn->rx_descs[my_rx_head]; - rx_wr->wr_id = (unsigned long )rx_desc; + rx_wr->wr_id = (uintptr_t )rx_desc; rx_wr->sg_list = &rx_desc->rx_sg; rx_wr->num_sge =1 ; rx_wr->next = rx_wr +1 ;
@@ -1113,7 +1113,7 @@ int iser_post_send(struct ib_conn *ib_co DMA_TO_DEVICE); send_wr.next =NULL ; - send_wr.wr_id = (unsigned long )tx_desc; + send_wr.wr_id = (uintptr_t )tx_desc; send_wr.sg_list = tx_desc->tx_sg; send_wr.num_sge = tx_desc->num_sge; send_wr.opcode =IB_WR_SEND ;
@@ -1163,6 +1163,7 @@ static void iser_handle_comp_error(struct ib_conn *ib_conn, struct ib_wc *wc) { + void *wr_id = (void *)(uintptr_t)wc->wr_id; struct iser_conn *iser_conn = container_of(ib_conn, struct iser_conn, ib_conn);
@@ -1171,8 +1172,8 @@ iser_handle_comp_error(struct ib_conn *iiscsi_conn_failure (iser_conn->iscsi_conn,ISCSI_ERR_CONN_FAILED ); -if (is_iser_tx_desc (iser_conn, (void *)wc->wr_id)) { -struct iser_tx_desc *desc = (struct iser_tx_desc *)wc->wr_id; +if (is_iser_tx_desc (iser_conn, wr_id)) { +struct iser_tx_desc *desc = wr_id;if (desc->type ==ISCSI_TX_DATAOUT )kmem_cache_free (ig.desc_cache, desc);
@@ -1198,12 +1199,12 @@ static void iser_handle_wc(struct ib_wc ib_conn = wc->qp->qp_context;if (wc->status ==IB_WC_SUCCESS ) {if (wc->opcode ==IB_WC_RECV ) { - rx_desc = (struct iser_rx_desc *)wc->wr_id; + rx_desc = (struct iser_rx_desc *)(uintptr_t )wc->wr_id;iser_rcv_completion (rx_desc, wc->byte_len, ib_conn); }else if (wc->opcode ==IB_WC_SEND ) { - tx_desc = (struct iser_tx_desc *)wc->wr_id; + tx_desc = (struct iser_tx_desc *)(uintptr_t )wc->wr_id;iser_snd_completion (tx_desc, ib_conn); }else {iser_err ("Unknown wc opcode %d\n" , wc->opcode);
Patches currently in stable-queue which might be from [email protected] are
queue-3.18/ib-iser-fix-sparse-warnings.patch