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

2014-10-12 Thread Al Viro
On Fri, Oct 10, 2014 at 11:21:16AM +0800, WANG Chao wrote:

 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.

Umm...  The real question seems to be whether iovec is the right type in
the first place.  Does -tx_iov ever contain a vector with _userland_
pointers?  If not, it ought to be struct kvec * instead.
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


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

2014-10-12 Thread WANG Chao
On 10/12/14 at 08:17pm, Al Viro wrote:
 On Fri, Oct 10, 2014 at 11:21:16AM +0800, WANG Chao wrote:
 
  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.
 
 Umm...  The real question seems to be whether iovec is the right type in
 the first place.  Does -tx_iov ever contain a vector with _userland_
 pointers?  If not, it ought to be struct kvec * instead.

I'm afraid I'm not familiar with lustre.

[CCing lustre maintainers]

Oleg and Andreas:

Could you answer the Al's question?

For your information, my original post was here:
https://lkml.org/lkml/2014/10/9/135

Thanks
WANG Chao
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


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

2014-10-09 Thread WANG Chao
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 wangchao19890...@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);
LASSERT(tx-tx_conn != NULL);
LASSERT(tx-tx_conn-ksnc_proto == ksocknal_protocol_v2x);
 
-- 
1.9.3

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


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

2014-10-09 Thread Sudip Mukherjee
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 wangchao19890...@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 *  

thanks
sudip

   LASSERT(tx-tx_conn != NULL);
   LASSERT(tx-tx_conn-ksnc_proto == ksocknal_protocol_v2x);
  
 -- 
 1.9.3
 
 --
 To unsubscribe from this list: send the line unsubscribe linux-kernel in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
 Please read the FAQ at  http://www.tux.org/lkml/
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


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

2014-10-09 Thread WANG Chao
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 wangchao19890...@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
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel