public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v2] ext2: Cache line aligned partial sector bounce buffer
@ 2011-08-22 20:12 Anton Staaf
  2011-08-22 21:42 ` Wolfgang Denk
  0 siblings, 1 reply; 15+ messages in thread
From: Anton Staaf @ 2011-08-22 20:12 UTC (permalink / raw)
  To: u-boot

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 allocates a cache line size aligned sector sized bounce
buffer the first time that ext2fs_devread is called.

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>
---
v2: Remove C++ style comment

This patch depends on Lukasz Majewski's dcache line size patch sent to the
list in: http://patchwork.ozlabs.org/patch/110501/

 fs/ext2/dev.c |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/fs/ext2/dev.c b/fs/ext2/dev.c
index 78851d0..daac507 100644
--- a/fs/ext2/dev.c
+++ b/fs/ext2/dev.c
@@ -26,6 +26,7 @@
 
 #include <common.h>
 #include <config.h>
+#include <malloc.h>
 #include <ext2fs.h>
 
 static block_dev_desc_t *ext2fs_block_dev_desc;
@@ -52,9 +53,15 @@ 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];
+	static char *sec_buf;
 	unsigned sectors;
 
+	if (sec_buf == NULL)
+		sec_buf = memalign(get_dcache_line_size(), SECTOR_SIZE);
+
+	if (sec_buf == NULL)
+		return 0; /* -ENOMEM */
+
 	/*
 	 *  Check partition boundaries
 	 */
-- 
1.7.3.1

^ permalink raw reply related	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2011-08-23 20:24 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-22 20:12 [U-Boot] [PATCH v2] ext2: Cache line aligned partial sector bounce buffer Anton Staaf
2011-08-22 21:42 ` Wolfgang Denk
2011-08-22 21:48   ` Anton Staaf
2011-08-23 17:23     ` Mike Frysinger
2011-08-23 17:58       ` Anton Staaf
2011-08-23 18:32         ` Mike Frysinger
2011-08-23 18:48           ` Anton Staaf
2011-08-23 18:55             ` Mike Frysinger
2011-08-23 18:57               ` Anton Staaf
2011-08-23 20:18             ` Wolfgang Denk
2011-08-23 20:24               ` Anton Staaf
2011-08-23 18:39     ` Wolfgang Denk
2011-08-23 18:47       ` Mike Frysinger
2011-08-23 18:52         ` Anton Staaf
2011-08-23 20:16         ` Wolfgang Denk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox