linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] drivers: staging/lustre: conrpc.c - fix sparse error: incompatible types in comparison expression (different address spaces)
@ 2017-05-05 13:51 Guillermo O. Freschi
  2017-05-05 13:53 ` Tordek
  0 siblings, 1 reply; 7+ messages in thread
From: Guillermo O. Freschi @ 2017-05-05 13:51 UTC (permalink / raw)
  To: Oleg Drokin, lustre-devel, linux-kernel; +Cc: Guillermo O. Freschi

Signed-off-by: Guillermo O. Freschi <kedrot@gmail.com>
---
 drivers/staging/lustre/lnet/selftest/conrpc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/lustre/lnet/selftest/conrpc.c b/drivers/staging/lustre/lnet/selftest/conrpc.c
index da36c55b86d3..f4578200994f 100644
--- a/drivers/staging/lustre/lnet/selftest/conrpc.c
+++ b/drivers/staging/lustre/lnet/selftest/conrpc.c
@@ -487,7 +487,7 @@ lstcon_rpc_trans_interpreter(struct lstcon_rpc_trans *trans,
 				   sizeof(struct list_head)))
 			return -EFAULT;
 
-		if (tmp.next == head_up)
+		if ((struct list_head __user *)tmp.next == head_up)
 			return 0;
 
 		next = tmp.next;
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] drivers: staging/lustre: conrpc.c - fix sparse error: incompatible types in comparison expression (different address spaces)
  2017-05-05 13:51 [PATCH] drivers: staging/lustre: conrpc.c - fix sparse error: incompatible types in comparison expression (different address spaces) Guillermo O. Freschi
@ 2017-05-05 13:53 ` Tordek
  2017-06-01 21:42   ` Tordek
       [not found]   ` <CAKUXR6NiUCFbJjWdQYPU_CQ-wJovXR255ZnOwHRtU6OSrm5PZg@mail.gmail.com>
  0 siblings, 2 replies; 7+ messages in thread
From: Tordek @ 2017-05-05 13:53 UTC (permalink / raw)
  To: Oleg Drokin, lustre-devel, linux-kernel

This patch makes a lot of new warnings pop up, because the error is
blocking the rest of the file from being processed.

On 5 May 2017 at 10:51, Guillermo O. Freschi <kedrot@gmail.com> wrote:
> Signed-off-by: Guillermo O. Freschi <kedrot@gmail.com>
> ---
>  drivers/staging/lustre/lnet/selftest/conrpc.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/staging/lustre/lnet/selftest/conrpc.c b/drivers/staging/lustre/lnet/selftest/conrpc.c
> index da36c55b86d3..f4578200994f 100644
> --- a/drivers/staging/lustre/lnet/selftest/conrpc.c
> +++ b/drivers/staging/lustre/lnet/selftest/conrpc.c
> @@ -487,7 +487,7 @@ lstcon_rpc_trans_interpreter(struct lstcon_rpc_trans *trans,
>                                    sizeof(struct list_head)))
>                         return -EFAULT;
>
> -               if (tmp.next == head_up)
> +               if ((struct list_head __user *)tmp.next == head_up)
>                         return 0;
>
>                 next = tmp.next;
> --
> 2.11.0
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] drivers: staging/lustre: conrpc.c - fix sparse error: incompatible types in comparison expression (different address spaces)
  2017-05-05 13:53 ` Tordek
@ 2017-06-01 21:42   ` Tordek
       [not found]   ` <CAKUXR6NiUCFbJjWdQYPU_CQ-wJovXR255ZnOwHRtU6OSrm5PZg@mail.gmail.com>
  1 sibling, 0 replies; 7+ messages in thread
From: Tordek @ 2017-06-01 21:42 UTC (permalink / raw)
  To: Oleg Drokin, lustre-devel, linux-kernel

This is fairly minor but it reveals a few hidden warnings, could I get
some feedback on it?

Thanks
--
Guillermo

On 5 May 2017 at 10:53, Tordek <kedrot@gmail.com> wrote:
> This patch makes a lot of new warnings pop up, because the error is
> blocking the rest of the file from being processed.
>
> On 5 May 2017 at 10:51, Guillermo O. Freschi <kedrot@gmail.com> wrote:
>> Signed-off-by: Guillermo O. Freschi <kedrot@gmail.com>
>> ---
>>  drivers/staging/lustre/lnet/selftest/conrpc.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/staging/lustre/lnet/selftest/conrpc.c b/drivers/staging/lustre/lnet/selftest/conrpc.c
>> index da36c55b86d3..f4578200994f 100644
>> --- a/drivers/staging/lustre/lnet/selftest/conrpc.c
>> +++ b/drivers/staging/lustre/lnet/selftest/conrpc.c
>> @@ -487,7 +487,7 @@ lstcon_rpc_trans_interpreter(struct lstcon_rpc_trans *trans,
>>                                    sizeof(struct list_head)))
>>                         return -EFAULT;
>>
>> -               if (tmp.next == head_up)
>> +               if ((struct list_head __user *)tmp.next == head_up)
>>                         return 0;
>>
>>                 next = tmp.next;
>> --
>> 2.11.0
>>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [lustre-devel] [PATCH] drivers: staging/lustre: conrpc.c - fix sparse error: incompatible types in comparison expression (different address spaces)
       [not found]   ` <CAKUXR6NiUCFbJjWdQYPU_CQ-wJovXR255ZnOwHRtU6OSrm5PZg@mail.gmail.com>
@ 2017-06-02  4:08     ` Dilger, Andreas
  2017-06-02  5:15       ` Tordek
  2017-06-07  9:15       ` [PATCH 1/2] " Guillermo O. Freschi
  0 siblings, 2 replies; 7+ messages in thread
From: Dilger, Andreas @ 2017-06-02  4:08 UTC (permalink / raw)
  To: Tordek
  Cc: Lustre Development List, James Simmons,
	Linux Kernel Mailing List, Drokin, Oleg

On Jun 1, 2017, at 14:56, Tordek <kedrot@gmail.com> wrote:
> This is fairly minor but it reveals a few hidden warnings, could I get some feedback on it?

This is a known problem, but can't immediately be fixed because it affects the interface with
userspace tools.  The correct solution is to not use struct list_head in the user interface
at all, and we are looking into that.

In the meantime, feel free to look at the warnings that are now visible after this patch is
applied (locally on your system).

Thanks, Andreas

> 
> On 5 May 2017 10:53, "Tordek" <kedrot@gmail.com> wrote:
> This patch makes a lot of new warnings pop up, because the error is
> blocking the rest of the file from being processed.
> 
> On 5 May 2017 at 10:51, Guillermo O. Freschi <kedrot@gmail.com> wrote:
>> Signed-off-by: Guillermo O. Freschi <kedrot@gmail.com>
>> ---
>> drivers/staging/lustre/lnet/selftest/conrpc.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>> 
>> diff --git a/drivers/staging/lustre/lnet/selftest/conrpc.c b/drivers/staging/lustre/lnet/selftest/conrpc.c
>> index da36c55b86d3..f4578200994f 100644
>> --- a/drivers/staging/lustre/lnet/selftest/conrpc.c
>> +++ b/drivers/staging/lustre/lnet/selftest/conrpc.c
>> @@ -487,7 +487,7 @@ lstcon_rpc_trans_interpreter(struct lstcon_rpc_trans *trans,
>>                                   sizeof(struct list_head)))
>>                        return -EFAULT;
>> 
>> -               if (tmp.next == head_up)
>> +               if ((struct list_head __user *)tmp.next == head_up)
>>                        return 0;
>> 
>>                next = tmp.next;
>> --
>> 2.11.0
>> 
> _______________________________________________
> lustre-devel mailing list
> lustre-devel@lists.lustre.org
> http://lists.lustre.org/listinfo.cgi/lustre-devel-lustre.org

Cheers, Andreas
--
Andreas Dilger
Lustre Principal Architect
Intel Corporation

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [lustre-devel] [PATCH] drivers: staging/lustre: conrpc.c - fix sparse error: incompatible types in comparison expression (different address spaces)
  2017-06-02  4:08     ` [lustre-devel] " Dilger, Andreas
@ 2017-06-02  5:15       ` Tordek
  2017-06-07  9:15       ` [PATCH 1/2] " Guillermo O. Freschi
  1 sibling, 0 replies; 7+ messages in thread
From: Tordek @ 2017-06-02  5:15 UTC (permalink / raw)
  To: Dilger, Andreas
  Cc: Lustre Development List, James Simmons,
	Linux Kernel Mailing List, Drokin, Oleg

On 02/06/17 01:08, Dilger, Andreas wrote:
> On Jun 1, 2017, at 14:56, Tordek <kedrot@gmail.com> wrote:
>> This is fairly minor but it reveals a few hidden warnings, could I get some feedback on it?
> 
> This is a known problem, but can't immediately be fixed because it affects the interface with
> userspace tools.  The correct solution is to not use struct list_head in the user interface
> at all, and we are looking into that.
> 
> In the meantime, feel free to look at the warnings that are now visible after this patch is
> applied (locally on your system).

Well, changing

struct lstcon_rpc_ent *ent;

to

struct lstcon_rpc_ent __user *ent;

makes most of the post-patch warnings disappear (and it... makes sense? we're calling `copy_to_user(&ent...` a lot, so I assume ent would be pointing to userspace memory).

But if this is meant to change, maybe it's a moot point to look at it at all.

Thanks!


> 
> Thanks, Andreas
> 
>> 
>> On 5 May 2017 10:53, "Tordek" <kedrot@gmail.com> wrote:
>> This patch makes a lot of new warnings pop up, because the error is
>> blocking the rest of the file from being processed.
>> 
>> On 5 May 2017 at 10:51, Guillermo O. Freschi <kedrot@gmail.com> wrote:
>>> Signed-off-by: Guillermo O. Freschi <kedrot@gmail.com>
>>> ---
>>> drivers/staging/lustre/lnet/selftest/conrpc.c | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>> 
>>> diff --git a/drivers/staging/lustre/lnet/selftest/conrpc.c b/drivers/staging/lustre/lnet/selftest/conrpc.c
>>> index da36c55b86d3..f4578200994f 100644
>>> --- a/drivers/staging/lustre/lnet/selftest/conrpc.c
>>> +++ b/drivers/staging/lustre/lnet/selftest/conrpc.c
>>> @@ -487,7 +487,7 @@ lstcon_rpc_trans_interpreter(struct lstcon_rpc_trans *trans,
>>>                                   sizeof(struct list_head)))
>>>                        return -EFAULT;
>>> 
>>> -               if (tmp.next == head_up)
>>> +               if ((struct list_head __user *)tmp.next == head_up)
>>>                        return 0;
>>> 
>>>                next = tmp.next;
>>> --
>>> 2.11.0
>>> 
>> _______________________________________________
>> lustre-devel mailing list
>> lustre-devel@lists.lustre.org
>> http://lists.lustre.org/listinfo.cgi/lustre-devel-lustre.org
> 
> Cheers, Andreas
> --
> Andreas Dilger
> Lustre Principal Architect
> Intel Corporation
> 
> 
> 
> 
> 
> 
> 

--
Tordek

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/2] drivers: staging/lustre: conrpc.c - fix sparse error: incompatible types in comparison expression (different address spaces)
  2017-06-02  4:08     ` [lustre-devel] " Dilger, Andreas
  2017-06-02  5:15       ` Tordek
@ 2017-06-07  9:15       ` Guillermo O. Freschi
  2017-06-07  9:15         ` [PATCH 2/2] drivers: staging/lustre: conrpc.c - fix sparse warning: warning: incorrect type in argument * " Guillermo O. Freschi
  1 sibling, 1 reply; 7+ messages in thread
From: Guillermo O. Freschi @ 2017-06-07  9:15 UTC (permalink / raw)
  To: Oleg Drokin, lustre-devel, linux-kernel; +Cc: Guillermo O. Freschi

This patch reveals hidden warnings after this line.

(This is a stepping-stone patch for the following one, it should be
ignored as per Andreas Dilger.)

Signed-off-by: Guillermo O. Freschi <kedrot@gmail.com>
---
 drivers/staging/lustre/lnet/selftest/conrpc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/lustre/lnet/selftest/conrpc.c b/drivers/staging/lustre/lnet/selftest/conrpc.c
index da36c55b86d3..f4578200994f 100644
--- a/drivers/staging/lustre/lnet/selftest/conrpc.c
+++ b/drivers/staging/lustre/lnet/selftest/conrpc.c
@@ -487,7 +487,7 @@ lstcon_rpc_trans_interpreter(struct lstcon_rpc_trans *trans,
 				   sizeof(struct list_head)))
 			return -EFAULT;
 
-		if (tmp.next == head_up)
+		if ((struct list_head __user *)tmp.next == head_up)
 			return 0;
 
 		next = tmp.next;
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/2] drivers: staging/lustre: conrpc.c - fix sparse warning: warning: incorrect type in argument * (different address spaces)
  2017-06-07  9:15       ` [PATCH 1/2] " Guillermo O. Freschi
@ 2017-06-07  9:15         ` Guillermo O. Freschi
  0 siblings, 0 replies; 7+ messages in thread
From: Guillermo O. Freschi @ 2017-06-07  9:15 UTC (permalink / raw)
  To: Oleg Drokin, lustre-devel, linux-kernel; +Cc: Guillermo O. Freschi

The calls to `copy_to_user` suggest that `ent` is pointing to userspace
memory, but `ent` is missing the `__user` qualifier.

Signed-off-by: Guillermo O. Freschi <kedrot@gmail.com>
---
 drivers/staging/lustre/lnet/selftest/conrpc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/lustre/lnet/selftest/conrpc.c b/drivers/staging/lustre/lnet/selftest/conrpc.c
index f4578200994f..04a5d7e80151 100644
--- a/drivers/staging/lustre/lnet/selftest/conrpc.c
+++ b/drivers/staging/lustre/lnet/selftest/conrpc.c
@@ -469,7 +469,7 @@ lstcon_rpc_trans_interpreter(struct lstcon_rpc_trans *trans,
 {
 	struct list_head tmp;
 	struct list_head __user *next;
-	struct lstcon_rpc_ent *ent;
+	struct lstcon_rpc_ent __user *ent;
 	struct srpc_generic_reply *rep;
 	struct lstcon_rpc *crpc;
 	struct srpc_msg *msg;
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2017-06-07  9:15 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-05 13:51 [PATCH] drivers: staging/lustre: conrpc.c - fix sparse error: incompatible types in comparison expression (different address spaces) Guillermo O. Freschi
2017-05-05 13:53 ` Tordek
2017-06-01 21:42   ` Tordek
     [not found]   ` <CAKUXR6NiUCFbJjWdQYPU_CQ-wJovXR255ZnOwHRtU6OSrm5PZg@mail.gmail.com>
2017-06-02  4:08     ` [lustre-devel] " Dilger, Andreas
2017-06-02  5:15       ` Tordek
2017-06-07  9:15       ` [PATCH 1/2] " Guillermo O. Freschi
2017-06-07  9:15         ` [PATCH 2/2] drivers: staging/lustre: conrpc.c - fix sparse warning: warning: incorrect type in argument * " Guillermo O. Freschi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).