Re: [PATCH v3 02/10] include: Move compat_timespec/ timeval to compat_time.h

From: Arnd Bergmann
Date: Tue Mar 06 2018 - 07:46:38 EST


On Mon, Mar 5, 2018 at 10:30 AM, Christian Borntraeger
<borntraeger@xxxxxxxxxx> wrote:
> On 01/16/2018 03:18 AM, Deepa Dinamani wrote:
>> All the current architecture specific defines for these
>> are the same. Refactor these common defines to a common
>> header file.
>>
>> The new common linux/compat_time.h is also useful as it
>> will eventually be used to hold all the defines that
>> are needed for compat time types that support non y2038
>> safe types. New architectures need not have to define these
>> new types as they will only use new y2038 safe syscalls.
>> This file can be deleted after y2038 when we stop supporting
>> non y2038 safe syscalls.
>
> You are now include a <linux/*.h> from several asm files
> (
> arch/arm64/include/asm/stat.h
> arch/s390/include/asm/elf.h
> arch/x86/include/asm/ftrace.h
> arch/x86/include/asm/sys_ia32.h
> )
> It works, and it is done in many places, but it looks somewhat weird.
> Would it make sense to have an asm-generic/compate-time.h instead? Asking for
> opinions here.

I don't think we have such a rule. If a header file is common to all
architectures (i.e. no architecture uses a different implementation),
it should be in include/linux rather than include/asm-generic, regardless
of whether it can be used by assembler files or not.

>> --- a/drivers/s390/net/qeth_core_main.c
>> +++ b/drivers/s390/net/qeth_core_main.c
>> @@ -32,7 +32,7 @@
>> #include <asm/chpid.h>
>> #include <asm/io.h>
>> #include <asm/sysinfo.h>
>> -#include <asm/compat.h>
>> +#include <linux/compat.h>
>> #include <asm/diag.h>
>> #include <asm/cio.h>
>> #include <asm/ccwdev.h>
>
> Can you move that into the other includes (where all the other <linux/*> includes are.

Good catch, this is definitely a rule we have ;-)

Arnd