disk: part: align buffer so it can be used with DMA enabled drivers
authorStefan Agner <stefan.agner@toradex.com>
Wed, 23 Aug 2017 16:46:17 +0000 (09:46 -0700)
committerTom Rini <trini@konsulko.com>
Sat, 26 Aug 2017 18:56:15 +0000 (14:56 -0400)
When using ISO partitions with a DMA enabled block device driver
reading the ISO partition leads to unaligned DMA operations:
  CACHE: Misaligned operation at range [bffb7da8bffb85a8]

Align the buffer to make sure we pass a buffer which works for
DMA operations.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
disk/part_iso.c

index bb8ed658f22538a64dfd1643cd37ed821313dc99..8aef251f4eb245f6345d2496046cf32183fdb184 100644 (file)
@@ -24,7 +24,7 @@
 #undef CHECK_FOR_POWERPC_PLATTFORM
 #define CD_SECTSIZE 2048
 
-static unsigned char tmpbuf[CD_SECTSIZE];
+static unsigned char tmpbuf[CD_SECTSIZE] __aligned(ARCH_DMA_MINALIGN);
 
 unsigned long iso_dread(struct blk_desc *block_dev, lbaint_t start,
                         lbaint_t blkcnt, void *buffer)