Fix warning:
(XEN) UBSAN: Undefined behaviour in arch/x86/cpu/mwait-idle.c:1300:44
(XEN) left shift of 15 by 28 places cannot be represented in type 'int'
Signed-off-by: Tamas K Lengyel <tamas.lengyel@intel.com>
Fixes: 5a211704e88 ("mwait-idle: prevent SKL-H boot failure when C8+C9+C10 enabled")
---
xen/arch/x86/include/asm/mwait.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xen/arch/x86/include/asm/mwait.h b/xen/arch/x86/include/asm/mwait.h
index f377d9f..9298f98 100644
--- a/xen/arch/x86/include/asm/mwait.h
+++ b/xen/arch/x86/include/asm/mwait.h
@@ -4,7 +4,7 @@
#include <xen/types.h>
#define MWAIT_SUBSTATE_MASK 0xf
-#define MWAIT_CSTATE_MASK 0xf
+#define MWAIT_CSTATE_MASK 0xfU
#define MWAIT_SUBSTATE_SIZE 4
#define CPUID_MWAIT_LEAF 5
--
2.34.1
On 04.01.2024 18:13, Tamas K Lengyel wrote: > Fix warning: > (XEN) UBSAN: Undefined behaviour in arch/x86/cpu/mwait-idle.c:1300:44 > (XEN) left shift of 15 by 28 places cannot be represented in type 'int' > > Signed-off-by: Tamas K Lengyel <tamas.lengyel@intel.com> > Fixes: 5a211704e88 ("mwait-idle: prevent SKL-H boot failure when C8+C9+C10 enabled") No matter that I appreciate the change, I think this wants fixing by a patch to the (Linux) original, which we'd then import (like we do for other changes, including the one referenced by the Fixes: tag). Jan
On Fri, Jan 5, 2024 at 2:34 AM Jan Beulich <jbeulich@suse.com> wrote: > > On 04.01.2024 18:13, Tamas K Lengyel wrote: > > Fix warning: > > (XEN) UBSAN: Undefined behaviour in arch/x86/cpu/mwait-idle.c:1300:44 > > (XEN) left shift of 15 by 28 places cannot be represented in type 'int' > > > > Signed-off-by: Tamas K Lengyel <tamas.lengyel@intel.com> > > Fixes: 5a211704e88 ("mwait-idle: prevent SKL-H boot failure when C8+C9+C10 enabled") > > No matter that I appreciate the change, I think this wants fixing by a > patch to the (Linux) original, which we'd then import (like we do for > other changes, including the one referenced by the Fixes: tag). Feel free to submit it to other projects if the same issue applies to them. I only ran into this with Xen and can only test it with Xen. Tamas
On 05/01/2024 4:09 pm, Tamas K Lengyel wrote: > On Fri, Jan 5, 2024 at 2:34 AM Jan Beulich <jbeulich@suse.com> wrote: >> On 04.01.2024 18:13, Tamas K Lengyel wrote: >>> Fix warning: >>> (XEN) UBSAN: Undefined behaviour in arch/x86/cpu/mwait-idle.c:1300:44 >>> (XEN) left shift of 15 by 28 places cannot be represented in type 'int' >>> >>> Signed-off-by: Tamas K Lengyel <tamas.lengyel@intel.com> >>> Fixes: 5a211704e88 ("mwait-idle: prevent SKL-H boot failure when C8+C9+C10 enabled") >> No matter that I appreciate the change, I think this wants fixing by a >> patch to the (Linux) original, which we'd then import (like we do for >> other changes, including the one referenced by the Fixes: tag). > Feel free to submit it to other projects if the same issue applies to > them. I only ran into this with Xen and can only test it with Xen. Linux is affected by this, but a fix to Linux won't apply to Xen because Xen already diverged from Linux in this function. ~Andrew
On 04/01/2024 5:13 pm, Tamas K Lengyel wrote: > Fix warning: > (XEN) UBSAN: Undefined behaviour in arch/x86/cpu/mwait-idle.c:1300:44 > (XEN) left shift of 15 by 28 places cannot be represented in type 'int' > > Signed-off-by: Tamas K Lengyel <tamas.lengyel@intel.com> > Fixes: 5a211704e88 ("mwait-idle: prevent SKL-H boot failure when C8+C9+C10 enabled") Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com> It's perhaps worth saying this is in sklh_idle_state_table_update() which is why it only manifests on a single CPU. Happy to adjust on commit. All other uses of this constant shift right first, and then mask, hence why they don't trip UBSAN. ~Andrew
© 2016 - 2024 Red Hat, Inc.