All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Staging: lustre: Added missing __user keyword to several struct fields
@ 2015-02-09 22:56 Adrian Remonda
  2015-02-09 23:37 ` Greg Kroah-Hartman
  0 siblings, 1 reply; 2+ messages in thread
From: Adrian Remonda @ 2015-02-09 22:56 UTC (permalink / raw)
  Cc: Adrian Remonda, Oleg Drokin, Andreas Dilger, Greg Kroah-Hartman,
	Ashley Smith, Paul E. McKenney, Josh Triplett, Darshana Padmadas,
	Masanari Iida, Greg Donald, Dan Carpenter, Heena Sirwani,
	Joe Perches, Himangi Saraogi, Vitaly Osipov,
	moderated list:STAGING - LUSTRE...,
	open list:STAGING SUBSYSTEM, open list

This is a patch that fixes up missing __user warnings found by the sparse

	modified:   drivers/staging/lustre/include/linux/libcfs/libcfs_ioctl.h
	modified:   drivers/staging/lustre/include/linux/lnet/lnetst.h
	modified:   drivers/staging/lustre/lnet/selftest/conctl.c
	modified:   drivers/staging/lustre/lnet/selftest/console.c
	modified:   drivers/staging/lustre/lnet/selftest/console.h

	modified:   drivers/staging/lustre/include/linux/libcfs/libcfs_ioctl.h
	modified:   drivers/staging/lustre/lnet/selftest/console.h

Signed-off-by: Adrian Remonda <adrianremonda@gmail.com>
---
 .../lustre/include/linux/libcfs/libcfs_ioctl.h     |  4 +--
 drivers/staging/lustre/include/linux/lnet/lnetst.h | 36 +++++++++++-----------
 drivers/staging/lustre/lnet/selftest/console.c     |  2 +-
 drivers/staging/lustre/lnet/selftest/console.h     |  4 ++-
 4 files changed, 24 insertions(+), 22 deletions(-)

diff --git a/drivers/staging/lustre/include/linux/libcfs/libcfs_ioctl.h b/drivers/staging/lustre/include/linux/libcfs/libcfs_ioctl.h
index 3ee38782ad8c..aa687b79384b 100644
--- a/drivers/staging/lustre/include/linux/libcfs/libcfs_ioctl.h
+++ b/drivers/staging/lustre/include/linux/libcfs/libcfs_ioctl.h
@@ -61,9 +61,9 @@ struct libcfs_ioctl_data {
 	char *ioc_inlbuf2;
 
 	__u32 ioc_plen1; /* buffers in userspace */
-	char *ioc_pbuf1;
+	char __user *ioc_pbuf1;
 	__u32 ioc_plen2; /* buffers in userspace */
-	char *ioc_pbuf2;
+	char __user *ioc_pbuf2;
 
 	char ioc_bulk[0];
 };
diff --git a/drivers/staging/lustre/include/linux/lnet/lnetst.h b/drivers/staging/lustre/include/linux/lnet/lnetst.h
index 885f708d4031..846cddc11a81 100644
--- a/drivers/staging/lustre/include/linux/lnet/lnetst.h
+++ b/drivers/staging/lustre/include/linux/lnet/lnetst.h
@@ -277,7 +277,7 @@ typedef struct {
 	int		     lstio_dbg_timeout;      /* IN: timeout of debug */
 
 	int		     lstio_dbg_nmlen;	/* IN: len of name */
-	char		   *lstio_dbg_namep;	/* IN: name of group|batch */
+	char __user	   *lstio_dbg_namep;	/* IN: name of group|batch */
 	int		     lstio_dbg_count;	/* IN: # of test nodes to debug */
 	lnet_process_id_t      *lstio_dbg_idsp;	 /* IN: id of test nodes */
 	struct list_head	     *lstio_dbg_resultp;      /* OUT: list head of result buffer */
@@ -286,13 +286,13 @@ typedef struct {
 typedef struct {
 	int		     lstio_grp_key;	  /* IN: session key */
 	int		     lstio_grp_nmlen;	/* IN: name length */
-	char		   *lstio_grp_namep;	/* IN: group name */
+	char __user	   *lstio_grp_namep;	/* IN: group name */
 } lstio_group_add_args_t;
 
 typedef struct {
 	int		     lstio_grp_key;	  /* IN: session key */
 	int		     lstio_grp_nmlen;	/* IN: name length */
-	char		   *lstio_grp_namep;	/* IN: group name */
+	char __user	   *lstio_grp_namep;	/* IN: group name */
 } lstio_group_del_args_t;
 
 #define LST_GROUP_CLEAN	 1		       /* remove inactive nodes in the group */
@@ -316,7 +316,7 @@ typedef struct {
 	char		   *lstio_grp_namep;	/* IN: group name */
 	int		     lstio_grp_count;	/* IN: # of nodes */
 	/** OUT: session features */
-	unsigned	       *lstio_grp_featp;
+	unsigned __user	       *lstio_grp_featp;
 	lnet_process_id_t      *lstio_grp_idsp;	 /* IN: nodes */
 	struct list_head	     *lstio_grp_resultp;      /* OUT: list head of result buffer */
 } lstio_group_nodes_args_t;
@@ -344,21 +344,21 @@ typedef struct {
 typedef struct {
 	int		     lstio_bat_key;	  /* IN: session key */
 	int		     lstio_bat_nmlen;	/* IN: name length */
-	char		   *lstio_bat_namep;	/* IN: batch name */
+	char __user	   *lstio_bat_namep;	/* IN: batch name */
 } lstio_batch_add_args_t;
 
 typedef struct {
 	int		     lstio_bat_key;	  /* IN: session key */
 	int		     lstio_bat_nmlen;	/* IN: name length */
-	char		   *lstio_bat_namep;	/* IN: batch name */
+	char __user	   *lstio_bat_namep;	/* IN: batch name */
 } lstio_batch_del_args_t;
 
 typedef struct {
 	int		     lstio_bat_key;	  /* IN: session key */
 	int		     lstio_bat_timeout;      /* IN: timeout for the batch */
 	int		     lstio_bat_nmlen;	/* IN: name length */
-	char		   *lstio_bat_namep;	/* IN: batch name */
-	struct list_head	     *lstio_bat_resultp;      /* OUT: list head of result buffer */
+	char __user	   *lstio_bat_namep;	/* IN: batch name */
+	struct list_head __user *lstio_bat_resultp;      /* OUT: list head of result buffer */
 } lstio_batch_run_args_t;
 
 typedef struct {
@@ -375,7 +375,7 @@ typedef struct {
 	int		     lstio_bat_client;       /* IN: is test client? */
 	int		     lstio_bat_timeout;      /* IN: timeout for waiting */
 	int		     lstio_bat_nmlen;	/* IN: name length */
-	char		   *lstio_bat_namep;	/* IN: batch name */
+	char __user	   *lstio_bat_namep;	/* IN: batch name */
 	struct list_head	     *lstio_bat_resultp;      /* OUT: list head of result buffer */
 } lstio_batch_query_args_t;
 
@@ -389,13 +389,13 @@ typedef struct {
 typedef struct {
 	int		     lstio_bat_key;	  /* IN: session key */
 	int		     lstio_bat_nmlen;	/* IN: name length */
-	char		   *lstio_bat_namep;	/* IN: name */
+	char __user	   *lstio_bat_namep;	/* IN: name */
 	int		     lstio_bat_server;       /* IN: query server or not */
 	int		     lstio_bat_testidx;      /* IN: test index */
 	lstcon_test_batch_ent_t *lstio_bat_entp;	/* OUT: batch ent */
 
-	int		    *lstio_bat_idxp;	 /* IN/OUT: index of node */
-	int		    *lstio_bat_ndentp;       /* IN/OUT: # of nodent */
+	int __user	    *lstio_bat_idxp;	 /* IN/OUT: index of node */
+	int __user	    *lstio_bat_ndentp;       /* IN/OUT: # of nodent */
 	lstcon_node_ent_t      *lstio_bat_dentsp;       /* array of nodent */
 } lstio_batch_info_args_t;
 
@@ -404,7 +404,7 @@ typedef struct {
 	int		     lstio_sta_key;	  /* IN: session key */
 	int		     lstio_sta_timeout;      /* IN: timeout for stat request */
 	int		     lstio_sta_nmlen;	/* IN: group name length */
-	char		   *lstio_sta_namep;	/* IN: group name */
+	char __user	   *lstio_sta_namep;	/* IN: group name */
 	int		     lstio_sta_count;	/* IN: # of pid */
 	lnet_process_id_t      *lstio_sta_idsp;	 /* IN: pid */
 	struct list_head	     *lstio_sta_resultp;      /* OUT: list head of result buffer */
@@ -421,7 +421,7 @@ typedef enum {
 typedef struct {
 	int		     lstio_tes_key;	  /* IN: session key */
 	int		     lstio_tes_bat_nmlen;    /* IN: batch name len */
-	char		   *lstio_tes_bat_name;     /* IN: batch name */
+	char __user	   *lstio_tes_bat_name;     /* IN: batch name */
 	int		     lstio_tes_type;	 /* IN: test type */
 	int		     lstio_tes_oneside;      /* IN: one sided test */
 	int		     lstio_tes_loop;	 /* IN: loop count */
@@ -430,16 +430,16 @@ typedef struct {
 	int		     lstio_tes_dist;	 /* IN: node distribution in destination groups */
 	int		     lstio_tes_span;	 /* IN: node span in destination groups */
 	int		     lstio_tes_sgrp_nmlen;   /* IN: source group name length */
-	char		   *lstio_tes_sgrp_name;    /* IN: group name */
+	char __user	   *lstio_tes_sgrp_name;    /* IN: group name */
 	int		     lstio_tes_dgrp_nmlen;   /* IN: destination group name length */
-	char		   *lstio_tes_dgrp_name;    /* IN: group name */
+	char __user	   *lstio_tes_dgrp_name;    /* IN: group name */
 
 	int		     lstio_tes_param_len;    /* IN: param buffer len */
-	void		   *lstio_tes_param;	/* IN: parameter for specified test:
+	void __user	   *lstio_tes_param;	/* IN: parameter for specified test:
 							       lstio_bulk_param_t,
 							       lstio_ping_param_t,
 							       ... more */
-	int		    *lstio_tes_retp;	 /* OUT: private returned value */
+	int __user	    *lstio_tes_retp;	 /* OUT: private returned value */
 	struct list_head	     *lstio_tes_resultp;      /* OUT: list head of result buffer */
 } lstio_test_args_t;
 
diff --git a/drivers/staging/lustre/lnet/selftest/console.c b/drivers/staging/lustre/lnet/selftest/console.c
index 3bb47fa5d5c3..129a4df6ca7c 100644
--- a/drivers/staging/lustre/lnet/selftest/console.c
+++ b/drivers/staging/lustre/lnet/selftest/console.c
@@ -1767,7 +1767,7 @@ lstcon_session_new(char *name, int key, unsigned feats,
 
 int
 lstcon_session_info(lst_sid_t *sid_up, int *key_up, unsigned *featp,
-		    lstcon_ndlist_ent_t *ndinfo_up, char *name_up, int len)
+		    lstcon_ndlist_ent_t *ndinfo_up, char __user *name_up, int len)
 {
 	lstcon_ndlist_ent_t *entp;
 	lstcon_ndlink_t     *ndl;
diff --git a/drivers/staging/lustre/lnet/selftest/console.h b/drivers/staging/lustre/lnet/selftest/console.h
index f960174ceff8..a9c26d4b5be0 100644
--- a/drivers/staging/lustre/lnet/selftest/console.h
+++ b/drivers/staging/lustre/lnet/selftest/console.h
@@ -186,7 +186,7 @@ extern int lstcon_session_match(lst_sid_t sid);
 extern int lstcon_session_new(char *name, int key, unsigned version,
 			      int timeout, int flags, lst_sid_t *sid_up);
 extern int lstcon_session_info(lst_sid_t *sid_up, int *key, unsigned *verp,
-			       lstcon_ndlist_ent_t *entp, char *name_up, int len);
+			       lstcon_ndlist_ent_t *entp, __user char *name_up, int len);
 extern int lstcon_session_end(void);
 extern int lstcon_session_debug(int timeout, struct list_head *result_up);
 extern int lstcon_session_feats_check(unsigned feats);
@@ -229,4 +229,6 @@ extern int lstcon_test_add(char *batch_name, int type, int loop,
 			   char *src_name, char *dst_name,
 			   void *param, int paramlen, int *retp,
 			   struct list_head *result_up);
+extern int lstcon_ioctl_entry(unsigned int cmd, struct libcfs_ioctl_data *data);
 #endif
-- 
2.1.4


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

* Re: [PATCH] Staging: lustre: Added missing __user keyword to several struct fields
  2015-02-09 22:56 [PATCH] Staging: lustre: Added missing __user keyword to several struct fields Adrian Remonda
@ 2015-02-09 23:37 ` Greg Kroah-Hartman
  0 siblings, 0 replies; 2+ messages in thread
From: Greg Kroah-Hartman @ 2015-02-09 23:37 UTC (permalink / raw)
  To: Adrian Remonda
  Cc: open list:STAGING SUBSYSTEM, Andreas Dilger, Josh Triplett,
	open list, Oleg Drokin, Greg Donald, Himangi Saraogi,
	moderated list:STAGING - LUSTRE...,
	Heena Sirwani, Joe Perches, Paul E. McKenney, Darshana Padmadas,
	Dan Carpenter, Ashley Smith

On Mon, Feb 09, 2015 at 11:56:58PM +0100, Adrian Remonda wrote:
> This is a patch that fixes up missing __user warnings found by the sparse
> 
> 	modified:   drivers/staging/lustre/include/linux/libcfs/libcfs_ioctl.h
> 	modified:   drivers/staging/lustre/include/linux/lnet/lnetst.h
> 	modified:   drivers/staging/lustre/lnet/selftest/conctl.c
> 	modified:   drivers/staging/lustre/lnet/selftest/console.c
> 	modified:   drivers/staging/lustre/lnet/selftest/console.h
> 
> 	modified:   drivers/staging/lustre/include/linux/libcfs/libcfs_ioctl.h
> 	modified:   drivers/staging/lustre/lnet/selftest/console.h
> 
> Signed-off-by: Adrian Remonda <adrianremonda@gmail.com>
> ---
>  .../lustre/include/linux/libcfs/libcfs_ioctl.h     |  4 +--
>  drivers/staging/lustre/include/linux/lnet/lnetst.h | 36 +++++++++++-----------
>  drivers/staging/lustre/lnet/selftest/console.c     |  2 +-
>  drivers/staging/lustre/lnet/selftest/console.h     |  4 ++-
>  4 files changed, 24 insertions(+), 22 deletions(-)
> 
> diff --git a/drivers/staging/lustre/include/linux/libcfs/libcfs_ioctl.h b/drivers/staging/lustre/include/linux/libcfs/libcfs_ioctl.h
> index 3ee38782ad8c..aa687b79384b 100644
> --- a/drivers/staging/lustre/include/linux/libcfs/libcfs_ioctl.h
> +++ b/drivers/staging/lustre/include/linux/libcfs/libcfs_ioctl.h
> @@ -61,9 +61,9 @@ struct libcfs_ioctl_data {
>  	char *ioc_inlbuf2;
>  
>  	__u32 ioc_plen1; /* buffers in userspace */
> -	char *ioc_pbuf1;
> +	char __user *ioc_pbuf1;
>  	__u32 ioc_plen2; /* buffers in userspace */
> -	char *ioc_pbuf2;
> +	char __user *ioc_pbuf2;
>  
>  	char ioc_bulk[0];
>  };
> diff --git a/drivers/staging/lustre/include/linux/lnet/lnetst.h b/drivers/staging/lustre/include/linux/lnet/lnetst.h
> index 885f708d4031..846cddc11a81 100644
> --- a/drivers/staging/lustre/include/linux/lnet/lnetst.h
> +++ b/drivers/staging/lustre/include/linux/lnet/lnetst.h
> @@ -277,7 +277,7 @@ typedef struct {
>  	int		     lstio_dbg_timeout;      /* IN: timeout of debug */
>  
>  	int		     lstio_dbg_nmlen;	/* IN: len of name */
> -	char		   *lstio_dbg_namep;	/* IN: name of group|batch */
> +	char __user	   *lstio_dbg_namep;	/* IN: name of group|batch */
>  	int		     lstio_dbg_count;	/* IN: # of test nodes to debug */
>  	lnet_process_id_t      *lstio_dbg_idsp;	 /* IN: id of test nodes */
>  	struct list_head	     *lstio_dbg_resultp;      /* OUT: list head of result buffer */
> @@ -286,13 +286,13 @@ typedef struct {
>  typedef struct {
>  	int		     lstio_grp_key;	  /* IN: session key */
>  	int		     lstio_grp_nmlen;	/* IN: name length */
> -	char		   *lstio_grp_namep;	/* IN: group name */
> +	char __user	   *lstio_grp_namep;	/* IN: group name */
>  } lstio_group_add_args_t;
>  
>  typedef struct {
>  	int		     lstio_grp_key;	  /* IN: session key */
>  	int		     lstio_grp_nmlen;	/* IN: name length */
> -	char		   *lstio_grp_namep;	/* IN: group name */
> +	char __user	   *lstio_grp_namep;	/* IN: group name */
>  } lstio_group_del_args_t;
>  
>  #define LST_GROUP_CLEAN	 1		       /* remove inactive nodes in the group */
> @@ -316,7 +316,7 @@ typedef struct {
>  	char		   *lstio_grp_namep;	/* IN: group name */
>  	int		     lstio_grp_count;	/* IN: # of nodes */
>  	/** OUT: session features */
> -	unsigned	       *lstio_grp_featp;
> +	unsigned __user	       *lstio_grp_featp;
>  	lnet_process_id_t      *lstio_grp_idsp;	 /* IN: nodes */
>  	struct list_head	     *lstio_grp_resultp;      /* OUT: list head of result buffer */
>  } lstio_group_nodes_args_t;
> @@ -344,21 +344,21 @@ typedef struct {
>  typedef struct {
>  	int		     lstio_bat_key;	  /* IN: session key */
>  	int		     lstio_bat_nmlen;	/* IN: name length */
> -	char		   *lstio_bat_namep;	/* IN: batch name */
> +	char __user	   *lstio_bat_namep;	/* IN: batch name */
>  } lstio_batch_add_args_t;
>  
>  typedef struct {
>  	int		     lstio_bat_key;	  /* IN: session key */
>  	int		     lstio_bat_nmlen;	/* IN: name length */
> -	char		   *lstio_bat_namep;	/* IN: batch name */
> +	char __user	   *lstio_bat_namep;	/* IN: batch name */
>  } lstio_batch_del_args_t;
>  
>  typedef struct {
>  	int		     lstio_bat_key;	  /* IN: session key */
>  	int		     lstio_bat_timeout;      /* IN: timeout for the batch */
>  	int		     lstio_bat_nmlen;	/* IN: name length */
> -	char		   *lstio_bat_namep;	/* IN: batch name */
> -	struct list_head	     *lstio_bat_resultp;      /* OUT: list head of result buffer */
> +	char __user	   *lstio_bat_namep;	/* IN: batch name */
> +	struct list_head __user *lstio_bat_resultp;      /* OUT: list head of result buffer */
>  } lstio_batch_run_args_t;
>  
>  typedef struct {
> @@ -375,7 +375,7 @@ typedef struct {
>  	int		     lstio_bat_client;       /* IN: is test client? */
>  	int		     lstio_bat_timeout;      /* IN: timeout for waiting */
>  	int		     lstio_bat_nmlen;	/* IN: name length */
> -	char		   *lstio_bat_namep;	/* IN: batch name */
> +	char __user	   *lstio_bat_namep;	/* IN: batch name */
>  	struct list_head	     *lstio_bat_resultp;      /* OUT: list head of result buffer */
>  } lstio_batch_query_args_t;
>  
> @@ -389,13 +389,13 @@ typedef struct {
>  typedef struct {
>  	int		     lstio_bat_key;	  /* IN: session key */
>  	int		     lstio_bat_nmlen;	/* IN: name length */
> -	char		   *lstio_bat_namep;	/* IN: name */
> +	char __user	   *lstio_bat_namep;	/* IN: name */
>  	int		     lstio_bat_server;       /* IN: query server or not */
>  	int		     lstio_bat_testidx;      /* IN: test index */
>  	lstcon_test_batch_ent_t *lstio_bat_entp;	/* OUT: batch ent */
>  
> -	int		    *lstio_bat_idxp;	 /* IN/OUT: index of node */
> -	int		    *lstio_bat_ndentp;       /* IN/OUT: # of nodent */
> +	int __user	    *lstio_bat_idxp;	 /* IN/OUT: index of node */
> +	int __user	    *lstio_bat_ndentp;       /* IN/OUT: # of nodent */
>  	lstcon_node_ent_t      *lstio_bat_dentsp;       /* array of nodent */
>  } lstio_batch_info_args_t;
>  
> @@ -404,7 +404,7 @@ typedef struct {
>  	int		     lstio_sta_key;	  /* IN: session key */
>  	int		     lstio_sta_timeout;      /* IN: timeout for stat request */
>  	int		     lstio_sta_nmlen;	/* IN: group name length */
> -	char		   *lstio_sta_namep;	/* IN: group name */
> +	char __user	   *lstio_sta_namep;	/* IN: group name */
>  	int		     lstio_sta_count;	/* IN: # of pid */
>  	lnet_process_id_t      *lstio_sta_idsp;	 /* IN: pid */
>  	struct list_head	     *lstio_sta_resultp;      /* OUT: list head of result buffer */
> @@ -421,7 +421,7 @@ typedef enum {
>  typedef struct {
>  	int		     lstio_tes_key;	  /* IN: session key */
>  	int		     lstio_tes_bat_nmlen;    /* IN: batch name len */
> -	char		   *lstio_tes_bat_name;     /* IN: batch name */
> +	char __user	   *lstio_tes_bat_name;     /* IN: batch name */
>  	int		     lstio_tes_type;	 /* IN: test type */
>  	int		     lstio_tes_oneside;      /* IN: one sided test */
>  	int		     lstio_tes_loop;	 /* IN: loop count */
> @@ -430,16 +430,16 @@ typedef struct {
>  	int		     lstio_tes_dist;	 /* IN: node distribution in destination groups */
>  	int		     lstio_tes_span;	 /* IN: node span in destination groups */
>  	int		     lstio_tes_sgrp_nmlen;   /* IN: source group name length */
> -	char		   *lstio_tes_sgrp_name;    /* IN: group name */
> +	char __user	   *lstio_tes_sgrp_name;    /* IN: group name */
>  	int		     lstio_tes_dgrp_nmlen;   /* IN: destination group name length */
> -	char		   *lstio_tes_dgrp_name;    /* IN: group name */
> +	char __user	   *lstio_tes_dgrp_name;    /* IN: group name */
>  
>  	int		     lstio_tes_param_len;    /* IN: param buffer len */
> -	void		   *lstio_tes_param;	/* IN: parameter for specified test:
> +	void __user	   *lstio_tes_param;	/* IN: parameter for specified test:
>  							       lstio_bulk_param_t,
>  							       lstio_ping_param_t,
>  							       ... more */
> -	int		    *lstio_tes_retp;	 /* OUT: private returned value */
> +	int __user	    *lstio_tes_retp;	 /* OUT: private returned value */
>  	struct list_head	     *lstio_tes_resultp;      /* OUT: list head of result buffer */
>  } lstio_test_args_t;
>  
> diff --git a/drivers/staging/lustre/lnet/selftest/console.c b/drivers/staging/lustre/lnet/selftest/console.c
> index 3bb47fa5d5c3..129a4df6ca7c 100644
> --- a/drivers/staging/lustre/lnet/selftest/console.c
> +++ b/drivers/staging/lustre/lnet/selftest/console.c
> @@ -1767,7 +1767,7 @@ lstcon_session_new(char *name, int key, unsigned feats,
>  
>  int
>  lstcon_session_info(lst_sid_t *sid_up, int *key_up, unsigned *featp,
> -		    lstcon_ndlist_ent_t *ndinfo_up, char *name_up, int len)
> +		    lstcon_ndlist_ent_t *ndinfo_up, char __user *name_up, int len)
>  {
>  	lstcon_ndlist_ent_t *entp;
>  	lstcon_ndlink_t     *ndl;
> diff --git a/drivers/staging/lustre/lnet/selftest/console.h b/drivers/staging/lustre/lnet/selftest/console.h
> index f960174ceff8..a9c26d4b5be0 100644
> --- a/drivers/staging/lustre/lnet/selftest/console.h
> +++ b/drivers/staging/lustre/lnet/selftest/console.h
> @@ -186,7 +186,7 @@ extern int lstcon_session_match(lst_sid_t sid);
>  extern int lstcon_session_new(char *name, int key, unsigned version,
>  			      int timeout, int flags, lst_sid_t *sid_up);
>  extern int lstcon_session_info(lst_sid_t *sid_up, int *key, unsigned *verp,
> -			       lstcon_ndlist_ent_t *entp, char *name_up, int len);
> +			       lstcon_ndlist_ent_t *entp, __user char *name_up, int len);
>  extern int lstcon_session_end(void);
>  extern int lstcon_session_debug(int timeout, struct list_head *result_up);
>  extern int lstcon_session_feats_check(unsigned feats);
> @@ -229,4 +229,6 @@ extern int lstcon_test_add(char *batch_name, int type, int loop,
>  			   char *src_name, char *dst_name,
>  			   void *param, int paramlen, int *retp,
>  			   struct list_head *result_up);
> +extern int lstcon_ioctl_entry(unsigned int cmd, struct libcfs_ioctl_data *data);

This change doesn't look correct for this patch.

Also, I really don't want to take these as-is, as we don't have any way
to properly test them, and the whole user/kernel api is horribly
convoluted right now, hopefully it will get cleaned up eventually before
we merge it out of staging.

thanks,

greg k-h

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

end of thread, other threads:[~2015-02-09 23:37 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-02-09 22:56 [PATCH] Staging: lustre: Added missing __user keyword to several struct fields Adrian Remonda
2015-02-09 23:37 ` Greg Kroah-Hartman

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.