|
@@ -8,7 +8,11 @@
|
|
|
#include <linux/thread_info.h>
|
|
|
|
|
|
#define __TYPE_IS_PTR(t) (!__builtin_types_compatible_p(typeof(0?(t)0:0ULL), u64))
|
|
|
-#define __SC_DELOUSE(t,v) (t)(__TYPE_IS_PTR(t) ? ((v) & 0x7fffffff) : (v))
|
|
|
+
|
|
|
+#define __SC_DELOUSE(t,v) ({ \
|
|
|
+ BUILD_BUG_ON(sizeof(t) > 4 && !__TYPE_IS_PTR(t)); \
|
|
|
+ (t)(__TYPE_IS_PTR(t) ? ((v) & 0x7fffffff) : (v)); \
|
|
|
+})
|
|
|
|
|
|
#define PSW32_MASK_PER 0x40000000UL
|
|
|
#define PSW32_MASK_DAT 0x04000000UL
|