mirror of
https://github.com/adulau/aha.git
synced 2024-12-27 19:26:25 +00:00
pxa3xx_nand: fix memory out of bound
When fetch nand data with non-DMA mode, we should align info->data_size to 32bit, not 8bit. Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com> Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
This commit is contained in:
parent
70c7d2dd27
commit
a88bdbb54a
1 changed files with 3 additions and 2 deletions
|
@ -9,6 +9,7 @@
|
|||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
@ -489,7 +490,7 @@ static int handle_data_pio(struct pxa3xx_nand_info *info)
|
|||
switch (info->state) {
|
||||
case STATE_PIO_WRITING:
|
||||
__raw_writesl(info->mmio_base + NDDB, info->data_buff,
|
||||
info->data_size << 2);
|
||||
DIV_ROUND_UP(info->data_size, 4));
|
||||
|
||||
enable_int(info, NDSR_CS0_BBD | NDSR_CS0_CMDD);
|
||||
|
||||
|
@ -501,7 +502,7 @@ static int handle_data_pio(struct pxa3xx_nand_info *info)
|
|||
break;
|
||||
case STATE_PIO_READING:
|
||||
__raw_readsl(info->mmio_base + NDDB, info->data_buff,
|
||||
info->data_size << 2);
|
||||
DIV_ROUND_UP(info->data_size, 4));
|
||||
break;
|
||||
default:
|
||||
printk(KERN_ERR "%s: invalid state %d\n", __func__,
|
||||
|
|
Loading…
Reference in a new issue