From: Shalin Mehta <shalinmeht...@gmail.com>

This issue is showed up while compiling with sparse. The iov_base in struct 
iovec struct explicitly declares that the assigned value should be user space 
pointer with __user macro. Where as here, the __user macro isn't used while 
casting.

Signed-off-by: Shalin Mehta <shalinmeht...@gmail.com>
---
 drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c 
b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c
index d29f5f1..c40b7e0 100644
--- a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c
+++ b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c
@@ -131,7 +131,7 @@ ksocknal_send_iov (ksock_conn_t *conn, ksock_tx_t *tx)
                LASSERT (tx->tx_niov > 0);
 
                if (nob < (int) iov->iov_len) {
-                       iov->iov_base = (void *)((char *)iov->iov_base + nob);
+                       iov->iov_base = (void __user *)((char __user 
*)iov->iov_base + nob);
                        iov->iov_len -= nob;
                        return rc;
                }
@@ -1052,7 +1052,7 @@ ksocknal_new_packet (ksock_conn_t *conn, int nob_to_skip)
                case  KSOCK_PROTO_V3:
                        conn->ksnc_rx_state = SOCKNAL_RX_KSM_HEADER;
                        conn->ksnc_rx_iov = (struct iovec 
*)&conn->ksnc_rx_iov_space;
-                       conn->ksnc_rx_iov[0].iov_base = (char *)&conn->ksnc_msg;
+                       conn->ksnc_rx_iov[0].iov_base = (char __user 
*)&conn->ksnc_msg;
 
                        conn->ksnc_rx_nob_wanted = offsetof(ksock_msg_t, ksm_u);
                        conn->ksnc_rx_nob_left = offsetof(ksock_msg_t, ksm_u);
@@ -1066,7 +1066,7 @@ ksocknal_new_packet (ksock_conn_t *conn, int nob_to_skip)
                        conn->ksnc_rx_nob_left = sizeof(lnet_hdr_t);
 
                        conn->ksnc_rx_iov = (struct iovec 
*)&conn->ksnc_rx_iov_space;
-                       conn->ksnc_rx_iov[0].iov_base = (char 
*)&conn->ksnc_msg.ksm_u.lnetmsg;
+                       conn->ksnc_rx_iov[0].iov_base = (char __user 
*)&conn->ksnc_msg.ksm_u.lnetmsg;
                        conn->ksnc_rx_iov[0].iov_len  = sizeof (lnet_hdr_t);
                        break;
 
@@ -1093,7 +1093,7 @@ ksocknal_new_packet (ksock_conn_t *conn, int nob_to_skip)
        do {
                nob = MIN (nob_to_skip, sizeof (ksocknal_slop_buffer));
 
-               conn->ksnc_rx_iov[niov].iov_base = ksocknal_slop_buffer;
+               conn->ksnc_rx_iov[niov].iov_base = (void __user 
*)ksocknal_slop_buffer;
                conn->ksnc_rx_iov[niov].iov_len  = nob;
                niov++;
                skipped += nob;
@@ -1218,7 +1218,7 @@ ksocknal_process_receive (ksock_conn_t *conn)
                conn->ksnc_rx_nob_left = sizeof(ksock_lnet_msg_t);
 
                conn->ksnc_rx_iov = (struct iovec *)&conn->ksnc_rx_iov_space;
-               conn->ksnc_rx_iov[0].iov_base = (char 
*)&conn->ksnc_msg.ksm_u.lnetmsg;
+               conn->ksnc_rx_iov[0].iov_base = (char __user 
*)&conn->ksnc_msg.ksm_u.lnetmsg;
                conn->ksnc_rx_iov[0].iov_len  = sizeof(ksock_lnet_msg_t);
 
                conn->ksnc_rx_niov = 1;
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to