lkml.org 
[lkml]   [2017]   [Jun]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [lustre-devel] [PATCH] drivers: staging/lustre: conrpc.c - fix sparse error: incompatible types in comparison expression (different address spaces)
From
Date
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

\
 
 \ /
  Last update: 2017-06-05 00:07    [W:1.865 / U:0.092 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site