diff options
| -rw-r--r-- | drivers/mtd/nand/nand_base.c | 3 | ||||
| -rw-r--r-- | include/linux/mtd/nand.h | 7 | 
2 files changed, 6 insertions, 4 deletions
| diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c index bfd668fa0..891af1f2e 100644 --- a/drivers/mtd/nand/nand_base.c +++ b/drivers/mtd/nand/nand_base.c @@ -2936,7 +2936,8 @@ int nand_scan_tail(struct mtd_info *mtd)  	struct nand_chip *chip = mtd->priv;  	if (!(chip->options & NAND_OWN_BUFFERS)) -		chip->buffers = kmalloc(sizeof(*chip->buffers), GFP_KERNEL); +		chip->buffers = memalign(ARCH_DMA_MINALIGN, +					 sizeof(*chip->buffers));  	if (!chip->buffers)  		return -ENOMEM; diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h index 82704de08..dc839e715 100644 --- a/include/linux/mtd/nand.h +++ b/include/linux/mtd/nand.h @@ -391,9 +391,10 @@ struct nand_ecc_ctrl {   * consecutive order.   */  struct nand_buffers { -	uint8_t	ecccalc[NAND_MAX_OOBSIZE]; -	uint8_t	ecccode[NAND_MAX_OOBSIZE]; -	uint8_t databuf[NAND_MAX_PAGESIZE + NAND_MAX_OOBSIZE]; +	uint8_t	ecccalc[ALIGN(NAND_MAX_OOBSIZE, ARCH_DMA_MINALIGN)]; +	uint8_t	ecccode[ALIGN(NAND_MAX_OOBSIZE, ARCH_DMA_MINALIGN)]; +	uint8_t databuf[ALIGN(NAND_MAX_PAGESIZE + NAND_MAX_OOBSIZE, +			      ARCH_DMA_MINALIGN)];  };  /** |