Question regarding sparse warning in staging/lustre

AdrianRemonda adrianremonda at gmail.com
Mon Feb 9 23:07:17 UTC 2015


On Mon, Feb 09, 2015 at 07:40:23AM +0800, Greg Kroah-Hartman wrote:
> 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

Ok. I had already done some modifications anyway. I sent you the patch
of the few I did

Regards,
Adrian


More information about the devel mailing list