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@xxxxxxxxx> --- .../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 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel