[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] minios: Fix incorrect {, un}likely() definitions



As identified in e5545fb6, likely() and unlikely() must convert their
expressions to booleans before comparing to 1 or 0, to avoid truncation
issues.

While editing this file, add inclusion guards.

Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
CC: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
CC: Samuel Thibault <samuel.thibault@xxxxxxxxxxxx>
---
 extras/mini-os/include/compiler.h |    9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/extras/mini-os/include/compiler.h 
b/extras/mini-os/include/compiler.h
index e35c9d5..4188277 100644
--- a/extras/mini-os/include/compiler.h
+++ b/extras/mini-os/include/compiler.h
@@ -1,5 +1,10 @@
+#ifndef __MINIOS_COMPILER_H_
+#define __MINIOS_COMPILER_H_
+
 #if __GNUC__ == 2 && __GNUC_MINOR__ < 96
 #define __builtin_expect(x, expected_value) (x)
 #endif
-#define unlikely(x)  __builtin_expect((x),0)
-#define likely(x)  __builtin_expect((x),1)
+#define unlikely(x)  __builtin_expect(!!(x),0)
+#define likely(x)    __builtin_expect(!!(x),1)
+
+#endif /* __MINIOS_COMPILER_H_ */
-- 
1.7.10.4


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.