[PATCH resend] staging, lustre: fix a sparse error

WANG Chao wangchao19890207 at gmail.com
Fri Oct 10 03:21:16 UTC 2014


On 10/09/14 at 05:58pm, Sudip Mukherjee wrote:
> On Thu, Oct 09, 2014 at 06:25:10PM +0800, WANG Chao wrote:
> > This fixes the following sparse error:
> > 
> > drivers/staging/lustre/lnet/klnds/socklnd/socklnd_lib-linux.c:393:9: error:
> > incompatible types in comparison expression (different address spaces)
> > 
> > Signed-off-by: WANG Chao <wangchao19890207 at gmail.com>
> > ---
> >  drivers/staging/lustre/lnet/klnds/socklnd/socklnd_lib-linux.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_lib-linux.c b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_lib-linux.c
> > index 245c9d7..1510594 100644
> > --- a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_lib-linux.c
> > +++ b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_lib-linux.c
> > @@ -390,7 +390,7 @@ ksocknal_lib_csum_tx(ksock_tx_t *tx)
> >  	__u32	csum;
> >  	void	*base;
> >  
> > -	LASSERT(tx->tx_iov[0].iov_base == (void *)&tx->tx_msg);
> > +	LASSERT((void __force *) tx->tx_iov[0].iov_base == (void *)&tx->tx_msg);
> is it ok? are you not just suppressing the sparse error?
> iov_base is void __user *  

I think __user annotation is for no dereferencing in kernel space. In
this case, I think it's fine to override this error by __force. Because
they're pointers with identical target types.

Thanks
WANG Chao


More information about the devel mailing list