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);
|
||
|
}
|
||
|
|
||
|
/**
|