]> xenbits.xensource.com Git - people/aperard/xen-unstable.git/commitdiff
xen/riscv: fix type mismatch in read_atomic_size()
authorOleksii Kurochko <oleksii.kurochko@gmail.com>
Mon, 9 Sep 2024 11:42:57 +0000 (13:42 +0200)
committerJan Beulich <jbeulich@suse.com>
Mon, 9 Sep 2024 11:42:57 +0000 (13:42 +0200)
Correct a typo in read_atomic_size() where a 64-bit result
was incorrectly cast to a `uint32_t` instead of `uint64_t`
in the case of 8-byte reads.

Fixes: 3cd46d4ec8b9 ("xen/riscv: introduce atomic.h")
Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
xen/arch/riscv/include/asm/atomic.h

index 31b91a79c8335e21da456b6d68324e54841d1bc1..41f03b2e0c51d0d211c794ecaf0c84e4a9cbfaf8 100644 (file)
@@ -45,7 +45,7 @@ static always_inline void read_atomic_size(const volatile void *p,
     case 2: *(uint16_t *)res = readw(p); break;
     case 4: *(uint32_t *)res = readl(p); break;
 #ifndef CONFIG_RISCV_32
-    case 8: *(uint32_t *)res = readq(p); break;
+    case 8: *(uint64_t *)res = readq(p); break;
 #endif
     default: __bad_atomic_size(); break;
     }