On Thu, Jan 20, 2022 at 9:03 AM Laurent Vivier <laurent@xxxxxxxxx> wrote:
Revert commit da31de35cd2f ("tty: goldfish: use __raw_writel()/__raw_readl()") to use accessors defined by the architecture. Define by default the accessor to be little-endian as we have only little-endian architectures using goldfish devices. Signed-off-by: Laurent Vivier <laurent@xxxxxxxxx>
The patch looks good, but the description seems wrong to me: Talking about "little-endian architectures" makes no sense here, the point is that the device was clearly defined as having little-endian registers, and your earlier patch broke this driver when running on big-endian kernels (if anyone ever tried this). This means you should also add Cc: stable@xxxxxxxxxxxxxxx # v5.11+ Fixes: da31de35cd2f ("tty: goldfish: use __raw_writel()/__raw_readl()") The fact that m68k gets this wrong is just a bug in qemu, but it's probably impossible to fix that since there is no way of knowing which other operating systems have started relying on that bug over the years. It might be a good idea to revisit the qemu implementation and make sure that the extra byteswap is only inserted on m68k and not on other targets, but hopefully there are no new targets based on goldfish anymore and we don't need to care. Arnd