Re: [PATCH v2 0/2] kdump: simplify code

From: Christophe Leroy
Date: Sat Dec 11 2021 - 14:32:24 EST




Le 11/12/2021 à 18:53, David Laight a écrit :
> From: Tiezhu Yang
>> Sent: 11 December 2021 03:33
>>
>> v2:
>> -- add copy_to_user_or_kernel() in lib/usercopy.c
>> -- define userbuf as bool type
>
> Instead of having a flag to indicate whether the buffer is user or kernel,
> would it be better to have two separate buffer pointers.
> One for a user space buffer, the other for a kernel space buffer.
> Exactly one of the buffers should always be NULL.
>
> That way the flag is never incorrectly set.
>

It's a very good idea.

I was worried about the casts forcing the __user property away and back.
With that approach we will preserve the __user tags on user buffers and
enable sparse checking.

The only little drawback I see is that apparently GCC doesn't consider
the NULL value as a constant and therefore doesn't perform constant
folding on pointers. Not sure if this is a problem here.

Christophe