mayday: Fix code setup for x86 and blackfin
PATCH 1/1 mayday: Fix code setup for x86 and blackfin
The code structures on x86 were broken as the compiler aligned the internal layout. The same may have happened on blackfin. Fix it by applying a packed tag on the enclosing structures.
Signed-off-by Jan Kiszka <[email protected]>
---
Haven't checked Xenomai 3 yet, it may be affected as well.
include/asm-blackfin/bits/shadow.h | 2 +- include/asm-x86/bits/shadow_32.h | 4 ++-- include/asm-x86/bits/shadow_64.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-)
include/asm-blackfin/bits/shadow.h +1 -1
@@ -84,7 +84,7 @@ static inline void xnarch_setup_mayday_page(void *page)* We don't mess with ASTAT here, so no need to save/restore * it in handle/fixup code. */ - static const struct { + static const struct __attribute__ ((__packed__)) { struct __attribute__ ((__packed__)) { u16 op; u16 imm;
include/asm-x86/bits/shadow_32.h +2 -2
@@ -70,7 +70,7 @@ static inline void xnarch_setup_mayday_page(void *page)* Also note that if SEP is present, we always assume NPTL on * the user side. */ - static const struct { + static const struct __attribute__ ((__packed__)) { struct __attribute__ ((__packed__)) { u8 op; u32 imm;
@@ -94,7 +94,7 @@ static inline void xnarch_setup_mayday_page(void *page) .bug = 0x0b0f, }; - static const struct { + static const struct __attribute__ ((__packed__)) { struct __attribute__ ((__packed__)) { u8 op; u32 imm;
include/asm-x86/bits/shadow_64.h +1 -1
@@ -66,7 +66,7 @@ static inline void xnarch_setup_mayday_page(void *page)* We intentionally don't mess with EFLAGS here, so that we * don't have to save/restore it in handle/fixup code. */ - static const struct { + static const struct __attribute__ ((__packed__)) { struct __attribute__ ((__packed__)) { u8 op; u32 imm;
Signature · 1 line
1.7.3.4