On Sun, Feb 08, 2015 at 10:27:23PM +0100, Adrian Remonda wrote:
Hello,
I'm cleaning the drivers/staging/lustre driver.
I have got the next warning from sparse:
drivers/staging/lustre/lnet/selftest//conctl.c:918:30: warning: incorrect type in
argument 1 (different address spaces)
drivers/staging/lustre/lnet/selftest//conctl.c:918:30: expected void [noderef]
<asn:1>*to
drivers/staging/lustre/lnet/selftest//conctl.c:918:30: got char *ioc_pbuf2
If I add the __user macro as next:
--- a/drivers/staging/lustre/lnet/selftest/conctl.c
+++ b/drivers/staging/lustre/lnet/selftest/conctl.c
@@ -46,7 +46,7 @@
#include "console.h"
static int
-lst_session_new_ioctl(lstio_session_new_args_t *args)
+lst_session_new_ioctl(lstio_session_new_args_t __user *args)
{
char *name;
int rc;
The warning turns to:
drivers/staging/lustre/lnet/selftest//conctl.c:825:13: warning: dereference of noderef
expression
Now the question:
Is this right or it is just a false warning from sparse?
Should the __user macro should be also inside the structure fields?
The user/kernel fields in lustre are a total mess, I wouldn't work on
them if you don't have to as they need an overhaul in some areas.
So I'd recommend just staying away :)
good luck!
greg k-h