summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Mamonov <pmamonov@gmail.com>2018-05-22 18:33:33 +0300
committerSascha Hauer <s.hauer@pengutronix.de>2018-05-24 12:45:10 +0200
commitf1ef09542d2dfaccb7d10e94b9d165eb40d1d19b (patch)
tree409d1e1b8593ce26520d09d804f2d862a35a4138
parent360b9fd79d3670806d8c3aa8b7cbc86548eaa676 (diff)
downloadbarebox-f1ef09542d2dfaccb7d10e94b9d165eb40d1d19b.tar.gz
barebox-f1ef09542d2dfaccb7d10e94b9d165eb40d1d19b.tar.xz
mtd: cfi-flash: fix write_buff() for 64 bit systems
write_buff() uses ~(flash_info.portwidth - 1) to mask lower bits of addr. This causes higher 32 bits of addr to be discarded on a 64 bit system, since flash_info.portwidth is 32 bits long (unsigned int) and addr is 64 bits long (unsigned long). Signed-off-by: Peter Mamonov <pmamonov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--drivers/mtd/nor/cfi_flash.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/mtd/nor/cfi_flash.c b/drivers/mtd/nor/cfi_flash.c
index 5bdcccae18..01ab1aa274 100644
--- a/drivers/mtd/nor/cfi_flash.c
+++ b/drivers/mtd/nor/cfi_flash.c
@@ -515,7 +515,7 @@ static int write_buff(struct flash_info *info, const u8 *src,
int buffered_size;
#endif
/* get lower aligned address */
- wp = addr & ~(info->portwidth - 1);
+ wp = addr & ~((unsigned long)info->portwidth - 1);
/* handle unaligned start */
aln = addr - wp;