diff options
author | Tristan Lelong <tristan@lelong.xyz> | 2014-12-05 22:43:20 -0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-01-17 15:26:22 -0800 |
commit | e84962e3afc1665756bd4854c63da662696fb687 (patch) | |
tree | c84018e41419c6c521249584b428834a876d7e7d /drivers/staging/lustre/lustre/ldlm/ldlm_internal.h | |
parent | 41f53d5739bd4d9b41688bd5532be4c489bd485e (diff) | |
download | op-kernel-dev-e84962e3afc1665756bd4854c63da662696fb687.zip op-kernel-dev-e84962e3afc1665756bd4854c63da662696fb687.tar.gz |
staging: lustre: fix sparse warning on LPROC_SEQ_FOPS macros
This patch fix a sparse warning in lustre sources
warning: incorrect type in argument 1 (different address spaces)
expected void [noderef] <asn:1>*to
got char *<noident>
This is done by adding the missing __user attribute on userland pointers inside the LPROC_SEQ_FOPS like macros:
- LPROC_SEQ_FOPS
- LPROC_SEQ_FOPS_RW_TYPE
- LPROC_SEQ_FOPS_WR_ONLY
- LDLM_POOL_PROC_WRITER
The patch also updates all the functions that are used by this macro:
- lprocfs_wr_*
- *_seq_write
as well as some helpers used by the previously modified functions (otherwise fixing the sparse warning add some new ones):
- lprocfs_write_frac_helper
- lprocfs_write_helper
- lprocfs_write_u64_helper
The patch also fixes one __user pointer direct dereference by strncmp in function fld_proc_hash_seq_write.
Signed-off-by: Tristan Lelong <tristan@lelong.xyz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/lustre/lustre/ldlm/ldlm_internal.h')
-rw-r--r-- | drivers/staging/lustre/lustre/ldlm/ldlm_internal.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h b/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h index 6c6c57c..20e64cd 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_internal.h @@ -249,8 +249,9 @@ typedef enum ldlm_policy_res ldlm_policy_res_t; struct __##var##__dummy_read {; } /* semicolon catcher */ #define LDLM_POOL_PROC_WRITER(var, type) \ - static int lprocfs_wr_##var(struct file *file, const char *buffer, \ - unsigned long count, void *data) \ + static int lprocfs_wr_##var(struct file *file, \ + const char __user *buffer, \ + unsigned long count, void *data) \ { \ struct ldlm_pool *pl = data; \ type tmp; \ |