Re: [PATCH resend] staging, lustre: fix a sparse error
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
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
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
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
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