fs: btrfs: Fix unaligned memory accesses

Loading files stored with lzo compression from a btrfs filesystem was
producing unaligned memory accesses, which were causing a data abort
and a reset on an Orange Pi Zero.

The change in hash.c is not triggered by any error but follows the
same pattern. Please confirm.

Fixed according to doc/README.unaligned-memory-access.txt

Signed-off-by: Alberto Sánchez Molero <alsamolero@gmail.com>
Tested-by: Robert Nelson <robertcnelson@gmail.com>
diff --git a/fs/btrfs/hash.c b/fs/btrfs/hash.c
index f8a50e5..cde3abd 100644
--- a/fs/btrfs/hash.c
+++ b/fs/btrfs/hash.c
@@ -8,6 +8,7 @@
 
 #include "btrfs.h"
 #include <u-boot/crc.h>
+#include <asm/unaligned.h>
 
 static u32 btrfs_crc32c_table[256];
 
@@ -34,5 +35,5 @@
 
 void btrfs_csum_final(u32 crc, void *result)
 {
-	*((u32 *) result) = cpu_to_le32(~crc);
+	put_unaligned(cpu_to_le32(~crc), (u32 *)result);
 }