diff mbox

[U-Boot,v2,1/2] Move malloc_cache_aligned() to its own header

Message ID 1441236298-24506-1-git-send-email-sjg@chromium.org
State Accepted
Delegated to: Tom Rini
Headers show

Commit Message

Simon Glass Sept. 2, 2015, 11:24 p.m. UTC
At present malloc.h is included everywhere since it recently was added to
common.h in this commit:

   4519668 mtd/nand/ubi: assortment of alignment fixes

This seems wasteful and unnecessary. We have been trying to trim down
common.h and put separate functions into separate header files and that
change goes in the opposite direction.

Move malloc_cache_aligned() to a new header so that this can be avoided.
The header would perhaps be better named as alignmem.h but it needs to be
included after common.h and people might be confused by this. With the name
memalign.h it fits nicely after malloc() in most cases.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

Changes in v2: None

 common/cmd_ubi.c             |  2 +-
 drivers/mtd/nand/nand_util.c |  1 +
 fs/ubifs/super.c             |  3 +++
 fs/ubifs/ubifs.c             |  2 ++
 include/common.h             |  9 ---------
 include/memalign.h           | 25 +++++++++++++++++++++++++
 lib/gzip.c                   |  1 +
 lib/zlib/zutil.c             |  4 +++-
 8 files changed, 36 insertions(+), 11 deletions(-)
 create mode 100644 include/memalign.h

Comments

Marcel Ziswiler Sept. 3, 2015, 11:08 a.m. UTC | #1
On Wed, 2015-09-02 at 17:24 -0600, Simon Glass wrote:
> At present malloc.h is included everywhere since it recently was
> added to
> common.h in this commit:
> 
>    4519668 mtd/nand/ubi: assortment of alignment fixes
> 
> This seems wasteful and unnecessary. We have been trying to trim down
> common.h and put separate functions into separate header files and
> that
> change goes in the opposite direction.
> 
> Move malloc_cache_aligned() to a new header so that this can be
> avoided.
> The header would perhaps be better named as alignmem.h but it needs
> to be
> included after common.h and people might be confused by this. With
> the name
> memalign.h it fits nicely after malloc() in most cases.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>

The series successfully NAND boot tested on Colibri T20 512MB V1.2A
therefore

Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Tom Rini Sept. 12, 2015, 12:50 p.m. UTC | #2
On Wed, Sep 02, 2015 at 05:24:57PM -0600, Simon Glass wrote:

> At present malloc.h is included everywhere since it recently was added to
> common.h in this commit:
> 
>    4519668 mtd/nand/ubi: assortment of alignment fixes
> 
> This seems wasteful and unnecessary. We have been trying to trim down
> common.h and put separate functions into separate header files and that
> change goes in the opposite direction.
> 
> Move malloc_cache_aligned() to a new header so that this can be avoided.
> The header would perhaps be better named as alignmem.h but it needs to be
> included after common.h and people might be confused by this. With the name
> memalign.h it fits nicely after malloc() in most cases.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>

Applied to u-boot/master, thanks!
diff mbox

Patch

diff --git a/common/cmd_ubi.c b/common/cmd_ubi.c
index 10eea65..0460b4c 100644
--- a/common/cmd_ubi.c
+++ b/common/cmd_ubi.c
@@ -14,7 +14,7 @@ 
 #include <common.h>
 #include <command.h>
 #include <exports.h>
-
+#include <memalign.h>
 #include <nand.h>
 #include <onenand_uboot.h>
 #include <linux/mtd/mtd.h>
diff --git a/drivers/mtd/nand/nand_util.c b/drivers/mtd/nand/nand_util.c
index 21b4a61..71285b6 100644
--- a/drivers/mtd/nand/nand_util.c
+++ b/drivers/mtd/nand/nand_util.c
@@ -23,6 +23,7 @@ 
 #include <command.h>
 #include <watchdog.h>
 #include <malloc.h>
+#include <memalign.h>
 #include <div64.h>
 
 #include <asm/errno.h>
diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c
index 0bf52db..41763a1 100644
--- a/fs/ubifs/super.c
+++ b/fs/ubifs/super.c
@@ -28,6 +28,9 @@ 
 #include <linux/writeback.h>
 #else
 
+#include <common.h>
+#include <malloc.h>
+#include <memalign.h>
 #include <linux/compat.h>
 #include <linux/stat.h>
 #include <linux/err.h>
diff --git a/fs/ubifs/ubifs.c b/fs/ubifs/ubifs.c
index 4daa7fa..f7a0847 100644
--- a/fs/ubifs/ubifs.c
+++ b/fs/ubifs/ubifs.c
@@ -23,6 +23,8 @@ 
  *          Adrian Hunter
  */
 
+#include <common.h>
+#include <memalign.h>
 #include "ubifs.h"
 #include <u-boot/zlib.h>
 
diff --git a/include/common.h b/include/common.h
index c12f402..c48e5bc 100644
--- a/include/common.h
+++ b/include/common.h
@@ -1060,15 +1060,6 @@  int cpu_release(int nr, int argc, char * const argv[]);
 #define DEFINE_CACHE_ALIGN_BUFFER(type, name, size)			\
 	DEFINE_ALIGN_BUFFER(type, name, size, ARCH_DMA_MINALIGN)
 
-#ifndef __ASSEMBLY__
-#include <malloc.h>
-
-static inline void *malloc_cache_aligned(size_t size)
-{
-	return memalign(ARCH_DMA_MINALIGN, ALIGN(size, ARCH_DMA_MINALIGN));
-}
-#endif
-
 /*
  * check_member() - Check the offset of a structure member
  *
diff --git a/include/memalign.h b/include/memalign.h
new file mode 100644
index 0000000..f78b9dd
--- /dev/null
+++ b/include/memalign.h
@@ -0,0 +1,25 @@ 
+/*
+ * Copyright (c) 2015 Google, Inc
+ *
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+
+#ifndef __ALIGNMEM_H
+#define __ALIGNMEM_H
+
+/*
+ * ARCH_DMA_MINALIGN is defined in asm/cache.h for each architecture.  It
+ * is used to align DMA buffers.
+ */
+#ifndef __ASSEMBLY__
+#include <asm/cache.h>
+
+#include <malloc.h>
+
+static inline void *malloc_cache_aligned(size_t size)
+{
+	return memalign(ARCH_DMA_MINALIGN, ALIGN(size, ARCH_DMA_MINALIGN));
+}
+#endif
+
+#endif /* __ALIGNMEM_H */
diff --git a/lib/gzip.c b/lib/gzip.c
index cd8e9fe..2c49e4e 100644
--- a/lib/gzip.c
+++ b/lib/gzip.c
@@ -10,6 +10,7 @@ 
 #include <command.h>
 #include <image.h>
 #include <malloc.h>
+#include <memalign.h>
 #include <u-boot/zlib.h>
 #include "zlib/zutil.h"
 
diff --git a/lib/zlib/zutil.c b/lib/zlib/zutil.c
index 173a81d..227343e 100644
--- a/lib/zlib/zutil.c
+++ b/lib/zlib/zutil.c
@@ -43,7 +43,9 @@  void z_error (m)
  */
 #ifndef MY_ZCALLOC /* Any system without a special alloc function */
 
-#ifndef __UBOOT__
+#ifdef __UBOOT__
+#include <malloc.h>
+#else
 #ifndef STDC
 extern voidp    malloc OF((uInt size));
 extern voidp    calloc OF((uInt items, uInt size));