Files
poky/meta/recipes-devtools/mtd/mtd-utils/fix-armv7-neon-alignment.patch
Mike Crowe 780033d5c4 mtd-utils: Upgrade to 2.0.0
Upstream has started using automake which means that the recipe must now
inherit from autotools and pkgconfig.

The source tree has been reorganised too which requires the paths in the
patches to be modified. None of the patches appear to have been applied
upstream.

(From OE-Core rev: dacf6ab5aaf8cc588280b92d64db2e28c6c07a22)

Signed-off-by: Mike Crowe <mac@mcrowe.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-09 13:39:12 +00:00

45 lines
1.2 KiB
Diff

Upstream-Status: Pending
NEON instruction VLD1.64 was used to copy 64 bits data after type
casting, and they will trigger alignment trap.
This patch uses memcpy to avoid alignment problem.
Signed-off-by: Yuanjie Huang <Yuanjie.Huang@windriver.com>
diff --git a/mkfs.ubifs/key.h b/mkfs.ubifs/key.h
index d3a02d4..e7e9218 100644
--- a/ubifs-utils/mkfs.ubifs/key.h
+++ b/ubifs-utils/mkfs.ubifs/key.h
@@ -141,10 +141,12 @@ static inline void data_key_init(union ubifs_key *key, ino_t inum,
*/
static inline void key_write(const union ubifs_key *from, void *to)
{
- union ubifs_key *t = to;
+ __le32 x[2];
- t->j32[0] = cpu_to_le32(from->u32[0]);
- t->j32[1] = cpu_to_le32(from->u32[1]);
+ x[0] = cpu_to_le32(from->u32[0]);
+ x[1] = cpu_to_le32(from->u32[1]);
+
+ memcpy(to, &x, 8);
memset(to + 8, 0, UBIFS_MAX_KEY_LEN - 8);
}
@@ -156,10 +158,12 @@ static inline void key_write(const union ubifs_key *from, void *to)
*/
static inline void key_write_idx(const union ubifs_key *from, void *to)
{
- union ubifs_key *t = to;
+ __le32 x[2];
+
+ x[0] = cpu_to_le32(from->u32[0]);
+ x[1] = cpu_to_le32(from->u32[1]);
- t->j32[0] = cpu_to_le32(from->u32[0]);
- t->j32[1] = cpu_to_le32(from->u32[1]);
+ memcpy(to, &x, 8);
}
/**