Re: [lustre-devel] [PATCH] drivers: staging/lustre: conrpc.c - fix sparse error: incompatible types in comparison expression (different address spaces)
From: Tordek
Date: Fri Jun 02 2017 - 01:15:47 EST
On 02/06/17 01:08, Dilger, Andreas wrote:
> On Jun 1, 2017, at 14:56, Tordek <kedrot@xxxxxxxxx> 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@xxxxxxxxx> 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@xxxxxxxxx> wrote:
>>> Signed-off-by: Guillermo O. Freschi <kedrot@xxxxxxxxx>
>>> ---
>>> 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@xxxxxxxxxxxxxxxx
>> http://lists.lustre.org/listinfo.cgi/lustre-devel-lustre.org
>
> Cheers, Andreas
> --
> Andreas Dilger
> Lustre Principal Architect
> Intel Corporation
>
>
>
>
>
>
>
--
Tordek