* [PATCH] RISC-V: KVM: fix __le64 type assignments
@ 2026-01-06 16:28 Ben Dooks
2026-01-06 16:34 ` Anup Patel
0 siblings, 1 reply; 2+ messages in thread
From: Ben Dooks @ 2026-01-06 16:28 UTC (permalink / raw)
To: linux-kernel, linux-riscv, kvm-riscv
Cc: kvm, palmer, pjw, anup, atish.patra, Ben Dooks
The two swaps from le32/le64 in arch/riscv/include/asm/kvm_nacl.h
are generating a number of type assingment warnings in sparse, so
fix by using __force and assuming the code is correct.
Fixes a number of:
arch/riscv/kvm/vcpu.c:371:21: warning: cast to restricted __le64
arch/riscv/kvm/vcpu.c:374:16: warning: cast to restricted __le64
arch/riscv/kvm/vcpu.c:586:17: warning: incorrect type in assignment (different base types)
arch/riscv/kvm/vcpu.c:586:17: expected unsigned long
arch/riscv/kvm/vcpu.c:586:17: got restricted __le64 [usertype]
Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
---
arch/riscv/include/asm/kvm_nacl.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/riscv/include/asm/kvm_nacl.h b/arch/riscv/include/asm/kvm_nacl.h
index 4124d5e06a0f..2483738029cb 100644
--- a/arch/riscv/include/asm/kvm_nacl.h
+++ b/arch/riscv/include/asm/kvm_nacl.h
@@ -58,11 +58,11 @@ void kvm_riscv_nacl_exit(void);
int kvm_riscv_nacl_init(void);
#ifdef CONFIG_32BIT
-#define lelong_to_cpu(__x) le32_to_cpu(__x)
-#define cpu_to_lelong(__x) cpu_to_le32(__x)
+#define lelong_to_cpu(__x) le32_to_cpu((__force __le32)__x)
+#define cpu_to_lelong(__x) (__force unsigned long)cpu_to_le32(__x)
#else
-#define lelong_to_cpu(__x) le64_to_cpu(__x)
-#define cpu_to_lelong(__x) cpu_to_le64(__x)
+#define lelong_to_cpu(__x) le64_to_cpu((__force __le64)__x)
+#define cpu_to_lelong(__x) (__force unsigned long)cpu_to_le64(__x)
#endif
#define nacl_shmem() \
--
2.37.2.352.g3c44437643
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] RISC-V: KVM: fix __le64 type assignments
2026-01-06 16:28 [PATCH] RISC-V: KVM: fix __le64 type assignments Ben Dooks
@ 2026-01-06 16:34 ` Anup Patel
0 siblings, 0 replies; 2+ messages in thread
From: Anup Patel @ 2026-01-06 16:34 UTC (permalink / raw)
To: Ben Dooks
Cc: linux-kernel, linux-riscv, kvm-riscv, kvm, palmer, pjw,
atish.patra
On Tue, Jan 6, 2026 at 9:59 PM Ben Dooks <ben.dooks@codethink.co.uk> wrote:
>
> The two swaps from le32/le64 in arch/riscv/include/asm/kvm_nacl.h
> are generating a number of type assingment warnings in sparse, so
s/assingment/assignment/
> fix by using __force and assuming the code is correct.
>
> Fixes a number of:
s/... number of:/... number of sparse warnings:/
>
> arch/riscv/kvm/vcpu.c:371:21: warning: cast to restricted __le64
> arch/riscv/kvm/vcpu.c:374:16: warning: cast to restricted __le64
> arch/riscv/kvm/vcpu.c:586:17: warning: incorrect type in assignment (different base types)
> arch/riscv/kvm/vcpu.c:586:17: expected unsigned long
> arch/riscv/kvm/vcpu.c:586:17: got restricted __le64 [usertype]
>
Please add a Fixes tag.
> Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
> ---
> arch/riscv/include/asm/kvm_nacl.h | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/arch/riscv/include/asm/kvm_nacl.h b/arch/riscv/include/asm/kvm_nacl.h
> index 4124d5e06a0f..2483738029cb 100644
> --- a/arch/riscv/include/asm/kvm_nacl.h
> +++ b/arch/riscv/include/asm/kvm_nacl.h
> @@ -58,11 +58,11 @@ void kvm_riscv_nacl_exit(void);
> int kvm_riscv_nacl_init(void);
>
> #ifdef CONFIG_32BIT
> -#define lelong_to_cpu(__x) le32_to_cpu(__x)
> -#define cpu_to_lelong(__x) cpu_to_le32(__x)
> +#define lelong_to_cpu(__x) le32_to_cpu((__force __le32)__x)
> +#define cpu_to_lelong(__x) (__force unsigned long)cpu_to_le32(__x)
> #else
> -#define lelong_to_cpu(__x) le64_to_cpu(__x)
> -#define cpu_to_lelong(__x) cpu_to_le64(__x)
> +#define lelong_to_cpu(__x) le64_to_cpu((__force __le64)__x)
> +#define cpu_to_lelong(__x) (__force unsigned long)cpu_to_le64(__x)
> #endif
>
> #define nacl_shmem() \
> --
> 2.37.2.352.g3c44437643
>
Regards,
Anup
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-01-06 16:35 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-06 16:28 [PATCH] RISC-V: KVM: fix __le64 type assignments Ben Dooks
2026-01-06 16:34 ` Anup Patel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox