mirror of
https://git.yoctoproject.org/poky
synced 2026-02-09 02:03:04 +01:00
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. (From OE-Core rev: a31080021ad3ecfb92220dcb8c717928db268f1e) Signed-off-by: Yuanjie Huang <Yuanjie.Huang@windriver.com> Signed-off-by: Jackie Huang <jackie.huang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
45 lines
1.2 KiB
Diff
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/mkfs.ubifs/key.h
|
|
+++ b/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);
|
|
}
|
|
|
|
/**
|