From: "Guo Ren (Alibaba DAMO Academy)" <[email protected]>

The RV64ILP32 ABI linux kernel is based on CONFIG_64BIT, but
BITS_PER_LONG is 32. So, adapt bits to dword with BITS_PER_LONG.

Signed-off-by: Guo Ren (Alibaba DAMO Academy) <[email protected]>
---
 drivers/input/input.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/input/input.c b/drivers/input/input.c
index c9e3ac64bcd0..7af5e8c66f25 100644
--- a/drivers/input/input.c
+++ b/drivers/input/input.c
@@ -1006,7 +1006,11 @@ static int input_bits_to_string(char *buf, int buf_size,
        int len = 0;
 
        if (in_compat_syscall()) {
+#if BITS_PER_LONG == 64
                u32 dword = bits >> 32;
+#else
+               u32 dword = bits;
+#endif
                if (dword || !skip_empty)
                        len += snprintf(buf, buf_size, "%x ", dword);
 
-- 
2.40.1


Reply via email to