mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-14 09:11:27 +00:00
iscsi-scst: Rework sparse annotations
Do not declare kernel pointers as __user but instead cast these to __user just before assigning these to iov_base. Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com> git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6156 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
@@ -1406,7 +1406,7 @@ static void cmnd_prepare_get_rejected_immed_data(struct iscsi_cmnd *cmnd)
|
||||
{
|
||||
struct iscsi_conn *conn = cmnd->conn;
|
||||
struct scatterlist *sg = cmnd->sg;
|
||||
char __user *addr;
|
||||
char *addr;
|
||||
u32 size;
|
||||
unsigned int i;
|
||||
|
||||
@@ -1440,15 +1440,15 @@ static void cmnd_prepare_get_rejected_immed_data(struct iscsi_cmnd *cmnd)
|
||||
cmnd->own_sg = 1;
|
||||
}
|
||||
|
||||
addr = (char __force __user *)(page_address(sg_page(&sg[0])));
|
||||
addr = page_address(sg_page(&sg[0]));
|
||||
conn->read_size = size;
|
||||
for (i = 0; size > PAGE_SIZE; i++, size -= PAGE_SIZE) {
|
||||
/* We already checked pdu.datasize in check_segment_length() */
|
||||
sBUG_ON(i >= ISCSI_CONN_IOV_MAX);
|
||||
conn->read_iov[i].iov_base = addr;
|
||||
conn->read_iov[i].iov_base = (void __force __user *)addr;
|
||||
conn->read_iov[i].iov_len = PAGE_SIZE;
|
||||
}
|
||||
conn->read_iov[i].iov_base = addr;
|
||||
conn->read_iov[i].iov_base = (void __force __user *)addr;
|
||||
conn->read_iov[i].iov_len = size;
|
||||
conn->read_msg.msg_iov = conn->read_iov;
|
||||
conn->read_msg.msg_iovlen = ++i;
|
||||
@@ -1552,7 +1552,7 @@ static int cmnd_prepare_recv_pdu(struct iscsi_conn *conn,
|
||||
i = 0;
|
||||
while (1) {
|
||||
unsigned int sg_len;
|
||||
char __user *addr;
|
||||
char *addr;
|
||||
|
||||
if (unlikely(buff_offs >= bufflen)) {
|
||||
TRACE_DBG("Residual overflow (cmd %p, buff_offs %d, "
|
||||
@@ -1562,11 +1562,11 @@ static int cmnd_prepare_recv_pdu(struct iscsi_conn *conn,
|
||||
offset = 0;
|
||||
}
|
||||
|
||||
addr = (char __force __user *)(page_address(sg_page(&sg[idx])));
|
||||
addr = page_address(sg_page(&sg[idx]));
|
||||
EXTRACHECKS_BUG_ON(addr == NULL);
|
||||
sg_len = sg[idx].offset + sg[idx].length - offset;
|
||||
|
||||
conn->read_iov[i].iov_base = addr + offset;
|
||||
conn->read_iov[i].iov_base = (void __force __user *)addr + offset;
|
||||
|
||||
if (size <= sg_len) {
|
||||
TRACE_DBG("idx=%d, i=%d, offset=%u, size=%d, addr=%p",
|
||||
|
||||
@@ -613,9 +613,9 @@ static void start_close_conn(struct iscsi_conn *conn)
|
||||
}
|
||||
|
||||
static inline void iscsi_conn_init_read(struct iscsi_conn *conn,
|
||||
void __user *data, size_t len)
|
||||
void *data, size_t len)
|
||||
{
|
||||
conn->read_iov[0].iov_base = data;
|
||||
conn->read_iov[0].iov_base = (void __force __user *)data;
|
||||
conn->read_iov[0].iov_len = len;
|
||||
conn->read_msg.msg_iov = conn->read_iov;
|
||||
conn->read_msg.msg_iovlen = 1;
|
||||
@@ -631,7 +631,7 @@ static void iscsi_conn_prepare_read_ahs(struct iscsi_conn *conn,
|
||||
/* ToDo: __GFP_NOFAIL ?? */
|
||||
cmnd->pdu.ahs = kmalloc(asize, __GFP_NOFAIL|GFP_KERNEL);
|
||||
sBUG_ON(cmnd->pdu.ahs == NULL);
|
||||
iscsi_conn_init_read(conn, (void __force __user *)cmnd->pdu.ahs, asize);
|
||||
iscsi_conn_init_read(conn, cmnd->pdu.ahs, asize);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -833,9 +833,8 @@ static int process_read_io(struct iscsi_conn *conn, int *closed)
|
||||
EXTRACHECKS_BUG_ON(conn->read_cmnd != NULL);
|
||||
cmnd = cmnd_alloc(conn, NULL);
|
||||
conn->read_cmnd = cmnd;
|
||||
iscsi_conn_init_read(cmnd->conn,
|
||||
(void __force __user *)&cmnd->pdu.bhs,
|
||||
sizeof(cmnd->pdu.bhs));
|
||||
iscsi_conn_init_read(cmnd->conn, &cmnd->pdu.bhs,
|
||||
sizeof(cmnd->pdu.bhs));
|
||||
conn->read_state = RX_BHS;
|
||||
/* go through */
|
||||
|
||||
@@ -900,7 +899,7 @@ static int process_read_io(struct iscsi_conn *conn, int *closed)
|
||||
if (psz != 0) {
|
||||
TRACE_DBG("padding %d bytes", psz);
|
||||
iscsi_conn_init_read(conn,
|
||||
(void __force __user *)&conn->rpadding, psz);
|
||||
&conn->rpadding, psz);
|
||||
conn->read_state = RX_PADDING;
|
||||
} else if ((conn->ddigest_type & DIGEST_NONE) != 0)
|
||||
conn->read_state = RX_END;
|
||||
@@ -932,8 +931,7 @@ static int process_read_io(struct iscsi_conn *conn, int *closed)
|
||||
goto out;
|
||||
|
||||
case RX_INIT_HDIGEST:
|
||||
iscsi_conn_init_read(conn,
|
||||
(void __force __user *)&cmnd->hdigest, sizeof(u32));
|
||||
iscsi_conn_init_read(conn, &cmnd->hdigest, sizeof(u32));
|
||||
conn->read_state = RX_CHECK_HDIGEST;
|
||||
/* go through */
|
||||
|
||||
@@ -953,9 +951,7 @@ static int process_read_io(struct iscsi_conn *conn, int *closed)
|
||||
break;
|
||||
|
||||
case RX_INIT_DDIGEST:
|
||||
iscsi_conn_init_read(conn,
|
||||
(void __force __user *)&cmnd->ddigest,
|
||||
sizeof(u32));
|
||||
iscsi_conn_init_read(conn, &cmnd->ddigest, sizeof(u32));
|
||||
conn->read_state = RX_CHECK_DDIGEST;
|
||||
/* go through */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user