lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Sun, 16 Jan 2022 12:54:04 +0100
From:   Laurent Vivier <>
To:     Arnd Bergmann <>
Cc:     Linux Kernel Mailing List <>,
        John Stultz <>,, Jiaxun Yang <>,
        Daniel Lezcano <>,
        Thomas Gleixner <>,
        Alessandro Zummo <>,
        Alexandre Belloni <>,
        Stephen Boyd <>,
        Geert Uytterhoeven <>,
        linux-m68k <>
Subject: Re: [PATCH v8 3/4] clocksource/drivers: Add a goldfish-timer

Le 16/01/2022 à 11:44, Arnd Bergmann a écrit :
> On Sat, Jan 15, 2022 at 8:32 PM Laurent Vivier <> wrote:
>> +
>> +/* goldfish endianness depends on CPU endianness */
>> +#define goldfish_ioread32 ioread32be
>> +#define goldfish_iowrite32 iowrite32be
>> +#else
>> +#define goldfish_ioread32 ioread32
>> +#define goldfish_iowrite32 iowrite32
>> +#endif
> This is not what I meant here, as you are breaking big-endian support
> for all other
> architectures in the process.
> On architectures that support both big-endian and little-endian kernels, devices
> (including emulated ones) can't know which type of kernel you are running, so
> this has to be fixed by architecture. Ideally this macro should be in
> an architecture
> specific header file, but you can also just make this a check for m68k and  hope
> that qemu doesn't duplicate this bug on architectures that gain support for this
> driver in the future.

Virtio has exactly the same problem in the past (prio to v1.0), and it uses __LITTLE_ENDIAN in 
virtio_legacy_is_little_endian() to know the endianness of the device.

So the code can become:

#define goldfish_ioread32 ioread32
#define goldfish_iowrite32 iowrite32
#define goldfish_ioread32 ioread32be
#define goldfish_iowrite32 iowrite32be

What do you prefer: CONFIG_M68K or __LITTLE_ENDIAN?


Powered by blists - more mailing lists