staging/lustre: Add __user annotations in lnetselftest code
authorFrank Zago <fzago@cray.com>
Sun, 3 Jan 2016 17:06:00 +0000 (12:06 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 3 Feb 2016 22:38:00 +0000 (14:38 -0800)
This fixes a bunch of sparse warnings.

There is no code change.

Signed-off-by: frank zago <fzago@cray.com>
Reviewed-on: http://review.whamcloud.com/11819
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-5396
Reviewed-by: James Simmons <uja.ornl@gmail.com>
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Signed-off-by: Oleg Drokin <green@linuxhacker.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/lustre/include/linux/lnet/lnetst.h
drivers/staging/lustre/lnet/selftest/conrpc.c
drivers/staging/lustre/lnet/selftest/conrpc.h
drivers/staging/lustre/lnet/selftest/console.c
drivers/staging/lustre/lnet/selftest/console.h

index fd1e0fd..4170445 100644 (file)
@@ -245,20 +245,20 @@ typedef struct {
        int              lstio_ses_force;       /* IN: force create ? */
        /** IN: session features */
        unsigned         lstio_ses_feats;
-       lst_sid_t       *lstio_ses_idp;         /* OUT: session id */
+       lst_sid_t __user *lstio_ses_idp;        /* OUT: session id */
        int              lstio_ses_nmlen;       /* IN: name length */
-       char            *lstio_ses_namep;       /* IN: session name */
+       char __user      *lstio_ses_namep;      /* IN: session name */
 } lstio_session_new_args_t;
 
 /* query current session */
 typedef struct {
-       lst_sid_t               *lstio_ses_idp;         /* OUT: session id */
-       int                     *lstio_ses_keyp;        /* OUT: local key */
+       lst_sid_t __user        *lstio_ses_idp;         /* OUT: session id */
+       int __user              *lstio_ses_keyp;        /* OUT: local key */
        /** OUT: session features */
-       unsigned                *lstio_ses_featp;
-       lstcon_ndlist_ent_t     *lstio_ses_ndinfo;      /* OUT: */
+       unsigned __user         *lstio_ses_featp;
+       lstcon_ndlist_ent_t __user *lstio_ses_ndinfo;   /* OUT: */
        int                      lstio_ses_nmlen;       /* IN: name length */
-       char                    *lstio_ses_namep;       /* OUT: session name */
+       char __user             *lstio_ses_namep;       /* OUT: session name */
 } lstio_session_info_args_t;
 
 /* delete a session */
@@ -283,26 +283,26 @@ 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
+       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
+       lnet_process_id_t __user *lstio_dbg_idsp;       /* IN: id of test
                                                               nodes */
-       struct list_head        *lstio_dbg_resultp;     /* OUT: list head of
+       struct list_head __user *lstio_dbg_resultp;     /* OUT: list head of
                                                                result buffer */
 } lstio_debug_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 */
+       int              lstio_grp_key;         /* IN: session key */
+       int              lstio_grp_nmlen;       /* IN: name length */
+       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 */
+       int              lstio_grp_key;         /* IN: session key */
+       int              lstio_grp_nmlen;       /* IN: name length */
+       char __user     *lstio_grp_namep;       /* IN: group name */
 } lstio_group_del_args_t;
 
 #define LST_GROUP_CLEAN                1       /* remove inactive nodes in the group */
@@ -315,22 +315,22 @@ typedef struct {
        int                      lstio_grp_opc;         /* IN: OPC */
        int                      lstio_grp_args;        /* IN: arguments */
        int                      lstio_grp_nmlen;       /* IN: name length */
-       char                    *lstio_grp_namep;       /* IN: group name */
+       char __user             *lstio_grp_namep;       /* IN: group name */
        int                      lstio_grp_count;       /* IN: # of nodes id */
-       lnet_process_id_t       *lstio_grp_idsp;        /* IN: array of nodes */
-       struct list_head        *lstio_grp_resultp;     /* OUT: list head of
+       lnet_process_id_t __user *lstio_grp_idsp;       /* IN: array of nodes */
+       struct list_head __user *lstio_grp_resultp;     /* OUT: list head of
                                                                result buffer */
 } lstio_group_update_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 */
        int                      lstio_grp_count;       /* IN: # of nodes */
        /** OUT: session features */
-       unsigned                *lstio_grp_featp;
-       lnet_process_id_t       *lstio_grp_idsp;        /* IN: nodes */
-       struct list_head        *lstio_grp_resultp;     /* OUT: list head of
+       unsigned __user         *lstio_grp_featp;
+       lnet_process_id_t __user *lstio_grp_idsp;       /* IN: nodes */
+       struct list_head __user *lstio_grp_resultp;     /* OUT: list head of
                                                                result buffer */
 } lstio_group_nodes_args_t;
 
@@ -338,18 +338,18 @@ typedef struct {
        int      lstio_grp_key;         /* IN: session key */
        int      lstio_grp_idx;         /* IN: group idx */
        int      lstio_grp_nmlen;       /* IN: name len */
-       char    *lstio_grp_namep;       /* OUT: name */
+       char __user *lstio_grp_namep;   /* OUT: name */
 } lstio_group_list_args_t;
 
 typedef struct {
        int                      lstio_grp_key;         /* IN: session key */
        int                      lstio_grp_nmlen;       /* IN: name len */
-       char                    *lstio_grp_namep;       /* IN: name */
-       lstcon_ndlist_ent_t     *lstio_grp_entp;        /* OUT: description of
+       char __user             *lstio_grp_namep;       /* IN: name */
+       lstcon_ndlist_ent_t __user *lstio_grp_entp;     /* OUT: description of
                                                                group */
-       int                     *lstio_grp_idxp;        /* IN/OUT: node index */
-       int                     *lstio_grp_ndentp;      /* IN/OUT: # of nodent */
-       lstcon_node_ent_t       *lstio_grp_dentsp;      /* OUT: nodent array */
+       int __user              *lstio_grp_idxp;        /* IN/OUT: node index */
+       int __user              *lstio_grp_ndentp;      /* IN/OUT: # of nodent */
+       lstcon_node_ent_t __user *lstio_grp_dentsp;     /* OUT: nodent array */
 } lstio_group_info_args_t;
 
 #define LST_DEFAULT_BATCH      "batch"                 /* default batch name */
@@ -357,13 +357,13 @@ 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 {
@@ -371,8 +371,8 @@ typedef struct {
        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
+       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;
 
@@ -381,8 +381,8 @@ typedef struct {
        int                      lstio_bat_force;       /* IN: abort unfinished
                                                               test RPC */
        int                      lstio_bat_nmlen;       /* IN: name length */
-       char                    *lstio_bat_namep;       /* IN: batch name */
-       struct list_head        *lstio_bat_resultp;     /* OUT: list head of
+       char __user             *lstio_bat_namep;       /* IN: batch name */
+       struct list_head __user *lstio_bat_resultp;     /* OUT: list head of
                                                                result buffer */
 } lstio_batch_stop_args_t;
 
@@ -394,8 +394,8 @@ typedef struct {
        int                      lstio_bat_timeout;     /* IN: timeout for
                                                               waiting */
        int                      lstio_bat_nmlen;       /* IN: name length */
-       char                    *lstio_bat_namep;       /* IN: batch name */
-       struct list_head        *lstio_bat_resultp;     /* OUT: list head of
+       char __user             *lstio_bat_namep;       /* IN: batch name */
+       struct list_head __user *lstio_bat_resultp;     /* OUT: list head of
                                                                result buffer */
 } lstio_batch_query_args_t;
 
@@ -403,21 +403,21 @@ typedef struct {
        int      lstio_bat_key;         /* IN: session key */
        int      lstio_bat_idx;         /* IN: index */
        int      lstio_bat_nmlen;       /* IN: name length */
-       char    *lstio_bat_namep;       /* IN: batch name */
+       char __user *lstio_bat_namep;   /* IN: batch name */
 } lstio_batch_list_args_t;
 
 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 */
+       lstcon_test_batch_ent_t __user *lstio_bat_entp; /* OUT: batch ent */
 
-       int                     *lstio_bat_idxp;        /* IN/OUT: index of node */
-       int                     *lstio_bat_ndentp;      /* IN/OUT: # of nodent */
-       lstcon_node_ent_t       *lstio_bat_dentsp;      /* array 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 __user *lstio_bat_dentsp;     /* array of nodent */
 } lstio_batch_info_args_t;
 
 /* add stat in session */
@@ -427,10 +427,10 @@ typedef struct {
                                                               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
+       lnet_process_id_t __user *lstio_sta_idsp;       /* IN: pid */
+       struct list_head __user *lstio_sta_resultp;     /* OUT: list head of
                                                                result buffer */
 } lstio_stat_args_t;
 
@@ -445,7 +445,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 */
@@ -457,20 +457,20 @@ typedef struct {
                                                       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
+       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
+       int __user       *lstio_tes_retp;       /* OUT: private returned
                                                        value */
-       struct list_head *lstio_tes_resultp;    /* OUT: list head of
+       struct list_head __user *lstio_tes_resultp;/* OUT: list head of
                                                        result buffer */
 } lstio_test_args_t;
 
index 1066c70..15a61de 100644 (file)
@@ -466,11 +466,11 @@ lstcon_rpc_trans_stat(lstcon_rpc_trans_t *trans, lstcon_trans_stat_t *stat)
 
 int
 lstcon_rpc_trans_interpreter(lstcon_rpc_trans_t *trans,
-                            struct list_head *head_up,
+                            struct list_head __user *head_up,
                             lstcon_rpc_readent_func_t readent)
 {
        struct list_head tmp;
-       struct list_head *next;
+       struct list_head __user *next;
        lstcon_rpc_ent_t *ent;
        srpc_generic_reply_t *rep;
        lstcon_rpc_t *crpc;
index 95c832f..d2133bc 100644 (file)
@@ -106,7 +106,8 @@ typedef struct lstcon_rpc_trans {
 #define LST_TRANS_STATQRY       0x21
 
 typedef int (*lstcon_rpc_cond_func_t)(int, struct lstcon_node *, void *);
-typedef int (*lstcon_rpc_readent_func_t)(int, srpc_msg_t *, lstcon_rpc_ent_t *);
+typedef int (*lstcon_rpc_readent_func_t)(int, srpc_msg_t *,
+                                        lstcon_rpc_ent_t __user *);
 
 int  lstcon_sesrpc_prep(struct lstcon_node *nd, int transop,
                        unsigned version, lstcon_rpc_t **crpc);
@@ -128,7 +129,7 @@ int  lstcon_rpc_trans_ndlist(struct list_head *ndlist,
 void lstcon_rpc_trans_stat(lstcon_rpc_trans_t *trans,
                           lstcon_trans_stat_t *stat);
 int  lstcon_rpc_trans_interpreter(lstcon_rpc_trans_t *trans,
-                                 struct list_head *head_up,
+                                 struct list_head __user *head_up,
                                  lstcon_rpc_readent_func_t readent);
 void lstcon_rpc_trans_abort(lstcon_rpc_trans_t *trans, int error);
 void lstcon_rpc_trans_destroy(lstcon_rpc_trans_t *trans);
index 5619fc4..366211e 100644 (file)
@@ -363,7 +363,7 @@ lstcon_sesrpc_condition(int transop, lstcon_node_t *nd, void *arg)
 
 static int
 lstcon_sesrpc_readent(int transop, srpc_msg_t *msg,
-                     lstcon_rpc_ent_t *ent_up)
+                     lstcon_rpc_ent_t __user *ent_up)
 {
        srpc_debug_reply_t *rep;
 
@@ -392,8 +392,8 @@ lstcon_sesrpc_readent(int transop, srpc_msg_t *msg,
 
 static int
 lstcon_group_nodes_add(lstcon_group_t *grp,
-                      int count, lnet_process_id_t *ids_up,
-                      unsigned *featp, struct list_head *result_up)
+                      int count, lnet_process_id_t __user *ids_up,
+                      unsigned *featp, struct list_head __user *result_up)
 {
        lstcon_rpc_trans_t *trans;
        lstcon_ndlink_t *ndl;
@@ -459,8 +459,8 @@ lstcon_group_nodes_add(lstcon_group_t *grp,
 
 static int
 lstcon_group_nodes_remove(lstcon_group_t *grp,
-                         int count, lnet_process_id_t *ids_up,
-                         struct list_head *result_up)
+                         int count, lnet_process_id_t __user *ids_up,
+                         struct list_head __user *result_up)
 {
        lstcon_rpc_trans_t *trans;
        lstcon_ndlink_t *ndl;
@@ -537,8 +537,8 @@ lstcon_group_add(char *name)
 }
 
 int
-lstcon_nodes_add(char *name, int count, lnet_process_id_t *ids_up,
-                unsigned *featp, struct list_head *result_up)
+lstcon_nodes_add(char *name, int count, lnet_process_id_t __user *ids_up,
+                unsigned *featp, struct list_head __user *result_up)
 {
        lstcon_group_t *grp;
        int rc;
@@ -641,8 +641,8 @@ lstcon_group_clean(char *name, int args)
 }
 
 int
-lstcon_nodes_remove(char *name, int count,
-                   lnet_process_id_t *ids_up, struct list_head *result_up)
+lstcon_nodes_remove(char *name, int count, lnet_process_id_t __user *ids_up,
+                   struct list_head __user *result_up)
 {
        lstcon_group_t *grp = NULL;
        int rc;
@@ -671,7 +671,7 @@ lstcon_nodes_remove(char *name, int count,
 }
 
 int
-lstcon_group_refresh(char *name, struct list_head *result_up)
+lstcon_group_refresh(char *name, struct list_head __user *result_up)
 {
        lstcon_rpc_trans_t *trans;
        lstcon_group_t *grp;
@@ -713,7 +713,7 @@ lstcon_group_refresh(char *name, struct list_head *result_up)
 }
 
 int
-lstcon_group_list(int index, int len, char *name_up)
+lstcon_group_list(int index, int len, char __user *name_up)
 {
        lstcon_group_t *grp;
 
@@ -732,7 +732,7 @@ lstcon_group_list(int index, int len, char *name_up)
 
 static int
 lstcon_nodes_getent(struct list_head *head, int *index_p,
-                   int *count_p, lstcon_node_ent_t *dents_up)
+                   int *count_p, lstcon_node_ent_t __user *dents_up)
 {
        lstcon_ndlink_t *ndl;
        lstcon_node_t *nd;
@@ -771,8 +771,9 @@ lstcon_nodes_getent(struct list_head *head, int *index_p,
 }
 
 int
-lstcon_group_info(char *name, lstcon_ndlist_ent_t *gents_p,
-                 int *index_p, int *count_p, lstcon_node_ent_t *dents_up)
+lstcon_group_info(char *name, lstcon_ndlist_ent_t __user *gents_p,
+                 int *index_p, int *count_p,
+                 lstcon_node_ent_t __user *dents_up)
 {
        lstcon_ndlist_ent_t *gentp;
        lstcon_group_t *grp;
@@ -892,7 +893,7 @@ lstcon_batch_add(char *name)
 }
 
 int
-lstcon_batch_list(int index, int len, char *name_up)
+lstcon_batch_list(int index, int len, char __user *name_up)
 {
        lstcon_batch_t *bat;
 
@@ -910,9 +911,9 @@ lstcon_batch_list(int index, int len, char *name_up)
 }
 
 int
-lstcon_batch_info(char *name, lstcon_test_batch_ent_t *ent_up, int server,
-                 int testidx, int *index_p, int *ndent_p,
-                 lstcon_node_ent_t *dents_up)
+lstcon_batch_info(char *name, lstcon_test_batch_ent_t __user *ent_up,
+                 int server, int testidx, int *index_p, int *ndent_p,
+                 lstcon_node_ent_t __user *dents_up)
 {
        lstcon_test_batch_ent_t *entp;
        struct list_head *clilst;
@@ -1006,7 +1007,7 @@ lstcon_batrpc_condition(int transop, lstcon_node_t *nd, void *arg)
 
 static int
 lstcon_batch_op(lstcon_batch_t *bat, int transop,
-               struct list_head *result_up)
+               struct list_head __user *result_up)
 {
        lstcon_rpc_trans_t *trans;
        int rc;
@@ -1029,7 +1030,7 @@ lstcon_batch_op(lstcon_batch_t *bat, int transop,
 }
 
 int
-lstcon_batch_run(char *name, int timeout, struct list_head *result_up)
+lstcon_batch_run(char *name, int timeout, struct list_head __user *result_up)
 {
        lstcon_batch_t *bat;
        int rc;
@@ -1051,7 +1052,7 @@ lstcon_batch_run(char *name, int timeout, struct list_head *result_up)
 }
 
 int
-lstcon_batch_stop(char *name, int force, struct list_head *result_up)
+lstcon_batch_stop(char *name, int force, struct list_head __user *result_up)
 {
        lstcon_batch_t *bat;
        int rc;
@@ -1170,7 +1171,7 @@ lstcon_testrpc_condition(int transop, lstcon_node_t *nd, void *arg)
 }
 
 static int
-lstcon_test_nodes_add(lstcon_test_t *test, struct list_head *result_up)
+lstcon_test_nodes_add(lstcon_test_t *test, struct list_head __user *result_up)
 {
        lstcon_rpc_trans_t *trans;
        lstcon_group_t *grp;
@@ -1266,7 +1267,7 @@ lstcon_test_add(char *batch_name, int type, int loop,
                int concur, int dist, int span,
                char *src_name, char *dst_name,
                void *param, int paramlen, int *retp,
-               struct list_head *result_up)
+               struct list_head __user *result_up)
 {
        lstcon_test_t    *test   = NULL;
        int              rc;
@@ -1369,7 +1370,7 @@ lstcon_test_find(lstcon_batch_t *batch, int idx, lstcon_test_t **testpp)
 
 static int
 lstcon_tsbrpc_readent(int transop, srpc_msg_t *msg,
-                     lstcon_rpc_ent_t *ent_up)
+                     lstcon_rpc_ent_t __user *ent_up)
 {
        srpc_batch_reply_t *rep = &msg->msg_body.bat_reply;
 
@@ -1386,7 +1387,7 @@ lstcon_tsbrpc_readent(int transop, srpc_msg_t *msg,
 
 int
 lstcon_test_batch_query(char *name, int testidx, int client,
-                       int timeout, struct list_head *result_up)
+                       int timeout, struct list_head __user *result_up)
 {
        lstcon_rpc_trans_t *trans;
        struct list_head *translist;
@@ -1448,19 +1449,21 @@ lstcon_test_batch_query(char *name, int testidx, int client,
 
 static int
 lstcon_statrpc_readent(int transop, srpc_msg_t *msg,
-                      lstcon_rpc_ent_t *ent_up)
+                      lstcon_rpc_ent_t __user *ent_up)
 {
        srpc_stat_reply_t *rep = &msg->msg_body.stat_reply;
-       sfw_counters_t *sfwk_stat;
-       srpc_counters_t *srpc_stat;
-       lnet_counters_t *lnet_stat;
+       sfw_counters_t __user *sfwk_stat;
+       srpc_counters_t __user *srpc_stat;
+       lnet_counters_t __user *lnet_stat;
 
        if (rep->str_status != 0)
                return 0;
 
-       sfwk_stat = (sfw_counters_t *)&ent_up->rpe_payload[0];
-       srpc_stat = (srpc_counters_t *)((char *)sfwk_stat + sizeof(*sfwk_stat));
-       lnet_stat = (lnet_counters_t *)((char *)srpc_stat + sizeof(*srpc_stat));
+       sfwk_stat = (sfw_counters_t __user *)&ent_up->rpe_payload[0];
+       srpc_stat = (srpc_counters_t __user *)
+                                     ((char *)sfwk_stat + sizeof(*sfwk_stat));
+       lnet_stat = (lnet_counters_t __user *)
+                                     ((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)) ||
@@ -1472,7 +1475,7 @@ lstcon_statrpc_readent(int transop, srpc_msg_t *msg,
 
 static int
 lstcon_ndlist_stat(struct list_head *ndlist,
-                  int timeout, struct list_head *result_up)
+                  int timeout, struct list_head __user *result_up)
 {
        struct list_head head;
        lstcon_rpc_trans_t *trans;
@@ -1497,7 +1500,8 @@ lstcon_ndlist_stat(struct list_head *ndlist,
 }
 
 int
-lstcon_group_stat(char *grp_name, int timeout, struct list_head *result_up)
+lstcon_group_stat(char *grp_name, int timeout,
+                 struct list_head __user *result_up)
 {
        lstcon_group_t *grp;
        int rc;
@@ -1516,8 +1520,8 @@ lstcon_group_stat(char *grp_name, int timeout, struct list_head *result_up)
 }
 
 int
-lstcon_nodes_stat(int count, lnet_process_id_t *ids_up,
-                 int timeout, struct list_head *result_up)
+lstcon_nodes_stat(int count, lnet_process_id_t __user *ids_up,
+                 int timeout, struct list_head __user *result_up)
 {
        lstcon_ndlink_t *ndl;
        lstcon_group_t *tmp;
@@ -1562,7 +1566,7 @@ lstcon_nodes_stat(int count, lnet_process_id_t *ids_up,
 static int
 lstcon_debug_ndlist(struct list_head *ndlist,
                    struct list_head *translist,
-                   int timeout, struct list_head *result_up)
+                   int timeout, struct list_head __user *result_up)
 {
        lstcon_rpc_trans_t *trans;
        int              rc;
@@ -1584,7 +1588,7 @@ lstcon_debug_ndlist(struct list_head *ndlist,
 }
 
 int
-lstcon_session_debug(int timeout, struct list_head *result_up)
+lstcon_session_debug(int timeout, struct list_head __user *result_up)
 {
        return lstcon_debug_ndlist(&console_session.ses_ndl_list,
                                   NULL, timeout, result_up);
@@ -1592,7 +1596,7 @@ lstcon_session_debug(int timeout, struct list_head *result_up)
 
 int
 lstcon_batch_debug(int timeout, char *name,
-                  int client, struct list_head *result_up)
+                  int client, struct list_head __user *result_up)
 {
        lstcon_batch_t *bat;
        int rc;
@@ -1610,7 +1614,7 @@ lstcon_batch_debug(int timeout, char *name,
 
 int
 lstcon_group_debug(int timeout, char *name,
-                  struct list_head *result_up)
+                  struct list_head __user *result_up)
 {
        lstcon_group_t *grp;
        int rc;
@@ -1628,8 +1632,8 @@ lstcon_group_debug(int timeout, char *name,
 
 int
 lstcon_nodes_debug(int timeout,
-                  int count, lnet_process_id_t *ids_up,
-                  struct list_head *result_up)
+                  int count, lnet_process_id_t __user *ids_up,
+                  struct list_head __user *result_up)
 {
        lnet_process_id_t id;
        lstcon_ndlink_t *ndl;
@@ -1693,7 +1697,7 @@ extern srpc_service_t lstcon_acceptor_service;
 
 int
 lstcon_session_new(char *name, int key, unsigned feats,
-                  int timeout, int force, lst_sid_t *sid_up)
+                  int timeout, int force, lst_sid_t __user *sid_up)
 {
        int rc = 0;
        int i;
@@ -1758,8 +1762,10 @@ 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_session_info(lst_sid_t __user *sid_up, int __user *key_up,
+                   unsigned __user *featp,
+                   lstcon_ndlist_ent_t __user *ndinfo_up,
+                   char __user *name_up, int len)
 {
        lstcon_ndlist_ent_t *entp;
        lstcon_ndlink_t *ndl;
index 3f3286c..f7ccaeb 100644 (file)
@@ -188,47 +188,51 @@ int lstcon_ioctl_entry(unsigned int cmd, struct libcfs_ioctl_data *data);
 int lstcon_console_fini(void);
 int lstcon_session_match(lst_sid_t sid);
 int lstcon_session_new(char *name, int key, unsigned version,
-                      int timeout, int flags, lst_sid_t *sid_up);
-int lstcon_session_info(lst_sid_t *sid_up, int *key, unsigned *verp,
-                       lstcon_ndlist_ent_t *entp, char *name_up, int len);
+                      int timeout, int flags, lst_sid_t __user *sid_up);
+int lstcon_session_info(lst_sid_t __user *sid_up, int __user *key,
+                       unsigned __user *verp, lstcon_ndlist_ent_t __user *entp,
+                       char __user *name_up, int len);
 int lstcon_session_end(void);
-int lstcon_session_debug(int timeout, struct list_head *result_up);
+int lstcon_session_debug(int timeout, struct list_head __user *result_up);
 int lstcon_session_feats_check(unsigned feats);
 int lstcon_batch_debug(int timeout, char *name,
-                      int client, struct list_head *result_up);
+                      int client, struct list_head __user *result_up);
 int lstcon_group_debug(int timeout, char *name,
-                      struct list_head *result_up);
-int lstcon_nodes_debug(int timeout, int nnd, lnet_process_id_t *nds_up,
-                      struct list_head *result_up);
+                      struct list_head __user *result_up);
+int lstcon_nodes_debug(int timeout, int nnd, lnet_process_id_t __user *nds_up,
+                      struct list_head __user *result_up);
 int lstcon_group_add(char *name);
 int lstcon_group_del(char *name);
 int lstcon_group_clean(char *name, int args);
-int lstcon_group_refresh(char *name, struct list_head *result_up);
-int lstcon_nodes_add(char *name, int nnd, lnet_process_id_t *nds_up,
-                    unsigned *featp, struct list_head *result_up);
-int lstcon_nodes_remove(char *name, int nnd, lnet_process_id_t *nds_up,
-                       struct list_head *result_up);
-int lstcon_group_info(char *name, lstcon_ndlist_ent_t *gent_up,
-                     int *index_p, int *ndent_p, lstcon_node_ent_t *ndents_up);
-int lstcon_group_list(int idx, int len, char *name_up);
+int lstcon_group_refresh(char *name, struct list_head __user *result_up);
+int lstcon_nodes_add(char *name, int nnd, lnet_process_id_t __user *nds_up,
+                    unsigned *featp, struct list_head __user *result_up);
+int lstcon_nodes_remove(char *name, int nnd, lnet_process_id_t __user *nds_up,
+                       struct list_head __user *result_up);
+int lstcon_group_info(char *name, lstcon_ndlist_ent_t __user *gent_up,
+                     int *index_p, int *ndent_p,
+                     lstcon_node_ent_t __user *ndents_up);
+int lstcon_group_list(int idx, int len, char __user *name_up);
 int lstcon_batch_add(char *name);
-int lstcon_batch_run(char *name, int timeout, struct list_head *result_up);
-int lstcon_batch_stop(char *name, int force, struct list_head *result_up);
+int lstcon_batch_run(char *name, int timeout,
+                    struct list_head __user *result_up);
+int lstcon_batch_stop(char *name, int force,
+                     struct list_head __user *result_up);
 int lstcon_test_batch_query(char *name, int testidx,
                            int client, int timeout,
-                           struct list_head *result_up);
+                           struct list_head __user *result_up);
 int lstcon_batch_del(char *name);
-int lstcon_batch_list(int idx, int namelen, char *name_up);
-int lstcon_batch_info(char *name, lstcon_test_batch_ent_t *ent_up,
+int lstcon_batch_list(int idx, int namelen, char __user *name_up);
+int lstcon_batch_info(char *name, lstcon_test_batch_ent_t __user *ent_up,
                      int server, int testidx, int *index_p,
-                     int *ndent_p, lstcon_node_ent_t *dents_up);
+                     int *ndent_p, lstcon_node_ent_t __user *dents_up);
 int lstcon_group_stat(char *grp_name, int timeout,
-                     struct list_head *result_up);
-int lstcon_nodes_stat(int count, lnet_process_id_t *ids_up,
-                     int timeout, struct list_head *result_up);
+                     struct list_head __user *result_up);
+int lstcon_nodes_stat(int count, lnet_process_id_t __user *ids_up,
+                     int timeout, struct list_head __user *result_up);
 int lstcon_test_add(char *batch_name, int type, int loop,
                    int concur, int dist, int span,
                    char *src_name, char *dst_name,
                    void *param, int paramlen, int *retp,
-                   struct list_head *result_up);
+                   struct list_head __user *result_up);
 #endif