diff options
Diffstat (limited to 'packages/linux/openslug-kernel-2.6.9/alignment.patch')
| -rw-r--r-- | packages/linux/openslug-kernel-2.6.9/alignment.patch | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/packages/linux/openslug-kernel-2.6.9/alignment.patch b/packages/linux/openslug-kernel-2.6.9/alignment.patch deleted file mode 100644 index 19abca18f5..0000000000 --- a/packages/linux/openslug-kernel-2.6.9/alignment.patch +++ /dev/null @@ -1,85 +0,0 @@ ---- linux-2.6.10/arch/arm/mm/alignment.c.broken 2005-02-11 20:57:58.353668651 +0100 -+++ linux-2.6.10/arch/arm/mm/alignment.c 2005-02-11 20:58:02.141660877 +0100 -@@ -130,6 +130,18 @@ - #define TYPE_LDST 2 - #define TYPE_DONE 3 - -+#ifdef __ARMEB__ -+#define BE 1 -+#define FIRST_BYTE_16 "mov %1, %1, ror #8\n" -+#define FIRST_BYTE_32 "mov %1, %1, ror #24\n" -+#define NEXT_BYTE "ror #24" -+#else -+#define BE 0 -+#define FIRST_BYTE_16 -+#define FIRST_BYTE_32 -+#define NEXT_BYTE "lsr #8" -+#endif -+ - #define __get8_unaligned_check(ins,val,addr,err) \ - __asm__( \ - "1: "ins" %1, [%2], #1\n" \ -@@ -149,9 +161,10 @@ - #define __get16_unaligned_check(ins,val,addr) \ - do { \ - unsigned int err = 0, v, a = addr; \ -- __get8_unaligned_check(ins,val,a,err); \ - __get8_unaligned_check(ins,v,a,err); \ -- val |= v << 8; \ -+ val = v << ((BE) ? 8 : 0); \ -+ __get8_unaligned_check(ins,v,a,err); \ -+ val |= v << ((BE) ? 0 : 8); \ - if (err) \ - goto fault; \ - } while (0) -@@ -165,13 +178,14 @@ - #define __get32_unaligned_check(ins,val,addr) \ - do { \ - unsigned int err = 0, v, a = addr; \ -- __get8_unaligned_check(ins,val,a,err); \ - __get8_unaligned_check(ins,v,a,err); \ -- val |= v << 8; \ -+ val = v << ((BE) ? 24 : 0); \ -+ __get8_unaligned_check(ins,v,a,err); \ -+ val |= v << ((BE) ? 16 : 8); \ - __get8_unaligned_check(ins,v,a,err); \ -- val |= v << 16; \ -+ val |= v << ((BE) ? 8 : 16); \ - __get8_unaligned_check(ins,v,a,err); \ -- val |= v << 24; \ -+ val |= v << ((BE) ? 0 : 24); \ - if (err) \ - goto fault; \ - } while (0) -@@ -185,9 +199,9 @@ - #define __put16_unaligned_check(ins,val,addr) \ - do { \ - unsigned int err = 0, v = val, a = addr; \ -- __asm__( \ -+ __asm__( FIRST_BYTE_16 \ - "1: "ins" %1, [%2], #1\n" \ -- " mov %1, %1, lsr #8\n" \ -+ " mov %1, %1, "NEXT_BYTE"\n" \ - "2: "ins" %1, [%2]\n" \ - "3:\n" \ - " .section .fixup,\"ax\"\n" \ -@@ -215,13 +229,13 @@ - #define __put32_unaligned_check(ins,val,addr) \ - do { \ - unsigned int err = 0, v = val, a = addr; \ -- __asm__( \ -+ __asm__( FIRST_BYTE_32 \ - "1: "ins" %1, [%2], #1\n" \ -- " mov %1, %1, lsr #8\n" \ -+ " mov %1, %1, "NEXT_BYTE"\n" \ - "2: "ins" %1, [%2], #1\n" \ -- " mov %1, %1, lsr #8\n" \ -+ " mov %1, %1, "NEXT_BYTE"\n" \ - "3: "ins" %1, [%2], #1\n" \ -- " mov %1, %1, lsr #8\n" \ -+ " mov %1, %1, "NEXT_BYTE"\n" \ - "4: "ins" %1, [%2]\n" \ - "5:\n" \ - " .section .fixup,\"ax\"\n" \ - - |
