All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] staging: lustre: lent: add missing __user __user annotation
@ 2015-10-08 21:30 Ioana Ciornei
  2015-10-08 21:34 ` [Outreachy kernel] " Arnd Bergmann
  2015-10-09  3:58 ` Greg KH
  0 siblings, 2 replies; 6+ messages in thread
From: Ioana Ciornei @ 2015-10-08 21:30 UTC (permalink / raw)
  To: outreachy-kernel; +Cc: Ioana Ciornei

Add missing __user annotation when using copy_{to/from}_user() to indicate that is
a pointer from userspace and that it should not be derefenced.
Also, remove sparse warnings such as:

drivers/staging/lustre/lnet/selftest/console.c:1474:26: warning: incorrect type in argument 1 (different address spaces)
  1 drivers/staging/lustre/lnet/selftest/console.c:1474:26:    expected void [noderef] <asn:1>*to
  2 drivers/staging/lustre/lnet/selftest/console.c:1474:26:    got struct sfw_counters_t [usertype] *[assigned] sfwk_stat

Signed-off-by: Ioana Ciornei <ciorneiioana@gmail.com>
---
 drivers/staging/lustre/lnet/selftest/console.c | 44 +++++++++++++-------------
 1 file changed, 22 insertions(+), 22 deletions(-)

diff --git a/drivers/staging/lustre/lnet/selftest/console.c b/drivers/staging/lustre/lnet/selftest/console.c
index 024aaee..7ba9022 100644
--- a/drivers/staging/lustre/lnet/selftest/console.c
+++ b/drivers/staging/lustre/lnet/selftest/console.c
@@ -384,9 +384,9 @@ lstcon_sesrpc_readent(int transop, srpc_msg_t *msg,
 	case LST_TRANS_SESQRY:
 		rep = &msg->msg_body.dbg_reply;
 
-		if (copy_to_user(&ent_up->rpe_priv[0],
+		if (copy_to_user((void __user *)&ent_up->rpe_priv[0],
 				     &rep->dbg_timeout, sizeof(int)) ||
-		    copy_to_user(&ent_up->rpe_payload[0],
+		    copy_to_user((void __user *)&ent_up->rpe_payload[0],
 				     &rep->dbg_name, LST_NAME_SIZE))
 			return -EFAULT;
 
@@ -418,7 +418,7 @@ lstcon_group_nodes_add(lstcon_group_t *grp,
 	}
 
 	for (i = 0 ; i < count; i++) {
-		if (copy_from_user(&id, &ids_up[i], sizeof(id))) {
+		if (copy_from_user(&id, (void __user *)&ids_up[i], sizeof(id))) {
 			rc = -EFAULT;
 			break;
 		}
@@ -487,7 +487,7 @@ lstcon_group_nodes_remove(lstcon_group_t *grp,
 	}
 
 	for (i = 0; i < count; i++) {
-		if (copy_from_user(&id, &ids_up[i], sizeof(id))) {
+		if (copy_from_user(&id, (void __user *)&ids_up[i], sizeof(id))) {
 			rc = -EFAULT;
 			goto error;
 		}
@@ -731,7 +731,7 @@ lstcon_group_list(int index, int len, char *name_up)
 
 	list_for_each_entry(grp, &console_session.ses_grp_list, grp_link) {
 		if (index-- == 0) {
-			return copy_to_user(name_up, grp->grp_name, len) ?
+			return copy_to_user((void __user *)name_up, grp->grp_name, len) ?
 			       -EFAULT : 0;
 		}
 	}
@@ -761,9 +761,9 @@ lstcon_nodes_getent(struct list_head *head, int *index_p,
 			break;
 
 		nd = ndl->ndl_node;
-		if (copy_to_user(&dents_up[count].nde_id,
+		if (copy_to_user((void __user *)&dents_up[count].nde_id,
 				     &nd->nd_id, sizeof(nd->nd_id)) ||
-		    copy_to_user(&dents_up[count].nde_state,
+		    copy_to_user((void __user *)&dents_up[count].nde_state,
 				     &nd->nd_state, sizeof(nd->nd_state)))
 			return -EFAULT;
 
@@ -815,7 +815,7 @@ lstcon_group_info(char *name, lstcon_ndlist_ent_t *gents_p,
 	list_for_each_entry(ndl, &grp->grp_ndl_list, ndl_link)
 		LST_NODE_STATE_COUNTER(ndl->ndl_node, gentp);
 
-	rc = copy_to_user(gents_p, gentp,
+	rc = copy_to_user((void __user *)gents_p, gentp,
 			      sizeof(lstcon_ndlist_ent_t)) ? -EFAULT : 0;
 
 	LIBCFS_FREE(gentp, sizeof(lstcon_ndlist_ent_t));
@@ -910,7 +910,7 @@ lstcon_batch_list(int index, int len, char *name_up)
 
 	list_for_each_entry(bat, &console_session.ses_bat_list, bat_link) {
 		if (index-- == 0) {
-			return copy_to_user(name_up, bat->bat_name, len) ?
+			return copy_to_user((void __user *)name_up, bat->bat_name, len) ?
 			       -EFAULT : 0;
 		}
 	}
@@ -983,7 +983,7 @@ lstcon_batch_info(char *name, lstcon_test_batch_ent_t *ent_up, int server,
 	list_for_each_entry(ndl, srvlst, ndl_link)
 		LST_NODE_STATE_COUNTER(ndl->ndl_node, &entp->tbe_srv_nle);
 
-	rc = copy_to_user(ent_up, entp,
+	rc = copy_to_user((void __user *)ent_up, entp,
 			      sizeof(lstcon_test_batch_ent_t)) ? -EFAULT : 0;
 
 	LIBCFS_FREE(entp, sizeof(lstcon_test_batch_ent_t));
@@ -1386,7 +1386,7 @@ lstcon_tsbrpc_readent(int transop, srpc_msg_t *msg,
 		 transop == LST_TRANS_TSBSRVQRY);
 
 	/* positive errno, framework error code */
-	if (copy_to_user(&ent_up->rpe_priv[0],
+	if (copy_to_user((void __user *)&ent_up->rpe_priv[0],
 			     &rep->bar_active, sizeof(rep->bar_active)))
 		return -EFAULT;
 
@@ -1471,9 +1471,9 @@ lstcon_statrpc_readent(int transop, srpc_msg_t *msg,
 	srpc_stat = (srpc_counters_t *)((char *)sfwk_stat + sizeof(*sfwk_stat));
 	lnet_stat = (lnet_counters_t *)((char *)srpc_stat + sizeof(*srpc_stat));
 
-	if (copy_to_user(sfwk_stat, &rep->str_fw, sizeof(*sfwk_stat)) ||
-	    copy_to_user(srpc_stat, &rep->str_rpc, sizeof(*srpc_stat)) ||
-	    copy_to_user(lnet_stat, &rep->str_lnet, sizeof(*lnet_stat)))
+	if (copy_to_user((void __user *)sfwk_stat, &rep->str_fw, sizeof(*sfwk_stat)) ||
+	    copy_to_user((void __user *)srpc_stat, &rep->str_rpc, sizeof(*srpc_stat)) ||
+	    copy_to_user((void __user *)lnet_stat, &rep->str_lnet, sizeof(*lnet_stat)))
 		return -EFAULT;
 
 	return 0;
@@ -1541,7 +1541,7 @@ lstcon_nodes_stat(int count, lnet_process_id_t *ids_up,
 	}
 
 	for (i = 0 ; i < count; i++) {
-		if (copy_from_user(&id, &ids_up[i], sizeof(id))) {
+		if (copy_from_user(&id, (void __user *)&ids_up[i], sizeof(id))) {
 			rc = -EFAULT;
 			break;
 		}
@@ -1653,7 +1653,7 @@ lstcon_nodes_debug(int timeout,
 	}
 
 	for (i = 0; i < count; i++) {
-		if (copy_from_user(&id, &ids_up[i], sizeof(id))) {
+		if (copy_from_user((void *)&id, (void __user *)&ids_up[i], sizeof(id))) {
 			rc = -EFAULT;
 			break;
 		}
@@ -1756,7 +1756,7 @@ lstcon_session_new(char *name, int key, unsigned feats,
 		return rc;
 	}
 
-	if (copy_to_user(sid_up, &console_session.ses_id,
+	if (copy_to_user((void __user *)sid_up, &console_session.ses_id,
 			     sizeof(lst_sid_t)) == 0)
 		return rc;
 
@@ -1783,14 +1783,14 @@ lstcon_session_info(lst_sid_t *sid_up, int *key_up, unsigned *featp,
 	list_for_each_entry(ndl, &console_session.ses_ndl_list, ndl_link)
 		LST_NODE_STATE_COUNTER(ndl->ndl_node, entp);
 
-	if (copy_to_user(sid_up, &console_session.ses_id,
+	if (copy_to_user((void __user *)sid_up, &console_session.ses_id,
 			     sizeof(lst_sid_t)) ||
-	    copy_to_user(key_up, &console_session.ses_key,
+	    copy_to_user((void __user *)key_up, &console_session.ses_key,
 			     sizeof(*key_up)) ||
-	    copy_to_user(featp, &console_session.ses_features,
+	    copy_to_user((void __user *)featp, &console_session.ses_features,
 			     sizeof(*featp)) ||
-	    copy_to_user(ndinfo_up, entp, sizeof(*entp)) ||
-	    copy_to_user(name_up, console_session.ses_name, len))
+	    copy_to_user((void __user *)ndinfo_up, entp, sizeof(*entp)) ||
+	    copy_to_user((void __user *)name_up, console_session.ses_name, len))
 		rc = -EFAULT;
 
 	LIBCFS_FREE(entp, sizeof(*entp));
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-10-09  8:38 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-08 21:30 [PATCH] staging: lustre: lent: add missing __user __user annotation Ioana Ciornei
2015-10-08 21:34 ` [Outreachy kernel] " Arnd Bergmann
2015-10-08 22:29   ` Ioana Ciornei
2015-10-09  8:38     ` Arnd Bergmann
2015-10-09  3:58 ` Greg KH
2015-10-09  6:06   ` Ioana Ciornei

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.