Skip to contentSkip to conversation

mayday: Fix code setup for x86 and blackfin

PATCH New Jan Kiszka 1 participant 1 message Jan 25, 2012

lore
Share & tools
lore

Jan Kiszka

author
#0 lore raw

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.

---

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
index 3f7e4eb..58cfdc6 100644
@@ -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
index b7a0e87..43fc2d0 100644
@@ -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
index fc90b9e..3fa6473 100644
@@ -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