From: Marek Vasut <marex@denx.de>
Date: Mon, 17 May 2021 22:39:39 +0000 (+0200)
Subject: fs: btrfs: Add missing cache aligned allocation
X-Git-Tag: v2025.01-rc5-pxa1908~1861^2~4
X-Git-Url: http://git.dujemihanovic.xyz/html/index.html?a=commitdiff_plain;h=9e8bb078859a559b17effdb21bafdb050b859b6e;p=u-boot.git

fs: btrfs: Add missing cache aligned allocation

The superblock buffer must be cache aligned, since it might be used
in DMA context, allocate it using ALLOC_CACHE_ALIGN_BUFFER() just
like it was done in btrfs_read_superblock() and read_tree_node().

This fixes this output on boot and non-working btrfs on iMX53:
CACHE: Misaligned operation at range [ced299d0, ced2a9d0]

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Marek BehĂșn <marek.behun@nic.cz>
Cc: Qu Wenruo <wqu@suse.com>
Reviewed-by: Marek BehĂșn <marek.behun@nic.cz>
---

diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index c6fdec95c1..349411c3cc 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -291,7 +291,7 @@ error_out:
 int btrfs_read_dev_super(struct blk_desc *desc, struct disk_partition *part,
 			 struct btrfs_super_block *sb)
 {
-	char tmp[BTRFS_SUPER_INFO_SIZE];
+	ALLOC_CACHE_ALIGN_BUFFER(char, tmp, BTRFS_SUPER_INFO_SIZE);
 	struct btrfs_super_block *buf = (struct btrfs_super_block *)tmp;
 	int ret;