summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorAnton staaf <robotboy@chromium.org>2011-10-03 13:55:00 +0000
committerWolfgang Denk <wd@denx.de>2011-10-25 09:25:41 +0200
commit4c1cd721d89d4b694dd018736007a97b5cdb04da (patch)
tree53940ed15f0f49f5034ced2ae20f3c89ad759242 /fs
parentf781dd383a0a28930612d48df11ccb2f3bca4eaa (diff)
ext2: Cache line aligned partial sector bounce buffer
Currently, if a device read request is done that does not begin or end on a sector boundary a stack allocated bounce buffer is used to perform the read, and then just the part of the sector that is needed is copied into the users buffer. This stack allocation can mean that the bounce buffer will not be aligned to the dcache line size. This is a problem when caches are enabled because unaligned cache invalidates are not safe. This patch uses ALLOC_CACHE_ALIGN_BUFFER to create a stack allocated cache line size aligned bounce buffer. Signed-off-by: Anton Staaf <robotboy@chromium.org> Cc: Lukasz Majewski <l.majewski@samsung.com> Cc: Mike Frysinger <vapier@gentoo.org> Cc: Dave Liu <r63238@freescale.com> Cc: Andy Fleming <afleming@gmail.com> Cc: Albert ARIBAUD <albert.u.boot@aribaud.net> Change-Id: I32e1594d90ef039137bb219b0f7ced55768744ff Acked-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'fs')
-rw-r--r--fs/ext2/dev.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/ext2/dev.c b/fs/ext2/dev.c
index 78851d0a5d0..874e21161e6 100644
--- a/fs/ext2/dev.c
+++ b/fs/ext2/dev.c
@@ -52,7 +52,7 @@ int ext2fs_set_blk_dev(block_dev_desc_t *rbdd, int part)
int ext2fs_devread(int sector, int byte_offset, int byte_len, char *buf)
{
- char sec_buf[SECTOR_SIZE];
+ ALLOC_CACHE_ALIGN_BUFFER(char, sec_buf, SECTOR_SIZE);
unsigned sectors;
/*