From a2b2209ea5ec43ffba2bf519fb7aeb2bc537df46 Mon Sep 17 00:00:00 2001 From: Idan Horowitz Date: Mon, 22 Apr 2024 16:21:42 +0300 Subject: [PATCH] Kernel: Fix definition of CAP_TO_MASK The default type for integer literals is signed int, so we were accidentally smearing those bits to the upper 32 bit of the result. This resulted in extremely unreasonable timeouts. --- Kernel/Devices/Storage/NVMe/NVMeDefinitions.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Kernel/Devices/Storage/NVMe/NVMeDefinitions.h b/Kernel/Devices/Storage/NVMe/NVMeDefinitions.h index 8e541e263ec..b97387fcf4e 100644 --- a/Kernel/Devices/Storage/NVMe/NVMeDefinitions.h +++ b/Kernel/Devices/Storage/NVMe/NVMeDefinitions.h @@ -53,7 +53,7 @@ static constexpr u16 ID_CTRL_SHADOW_DBBUF_MASK = 0x0100; static constexpr u8 CAP_DBL_SHIFT = 32; static constexpr u8 CAP_DBL_MASK = 0xf; static constexpr u8 CAP_TO_SHIFT = 24; -static constexpr u64 CAP_TO_MASK = 0xff << CAP_TO_SHIFT; +static constexpr u64 CAP_TO_MASK = 0xffu << CAP_TO_SHIFT; static constexpr u32 MQES(u64 cap) { return (cap & 0xffff) + 1;