aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Staaf <robotboy@chromium.org>2011-09-02 13:45:28 +0000
committerWolfgang Denk <wd@denx.de>2011-09-07 23:39:36 +0200
commit155cfb5ef18731a6d761edd2169699c67f0e1306 (patch)
treecabc780527139333e622b50ef0903efc672354fb
parent49ea2e342b6b9c35623915125e4e0af734cfa594 (diff)
common: fix behavior of ROUND macro when input is already rounded
Currently when you call ROUND with a value that is already a multiple of the second parameter it will return a value that is one multiple larger, instead of returning the value passed in. There are only two types of usage of ROUND currently, one in various config files to round CONFIG_SYS_MALLOC_LEN to a multiple of 4096 bytes. The other in cmd_sf.c where the incorrect behavior of ROUND is worked around be subtracting one from the length argument before passing it to ROUND. This patch fixes ROUND and removes the workaround from cmd_sf. It also results in all of the malloc pools that use ROUND to compute their size shrinking by 4KB. Cc: Lukasz Majewski <l.majewski@samsung.com> Cc: Mike Frysinger <vapier@gentoo.org>
-rw-r--r--common/cmd_sf.c2
-rw-r--r--include/common.h2
2 files changed, 2 insertions, 2 deletions
diff --git a/common/cmd_sf.c b/common/cmd_sf.c
index 11a491df7..27d6e39a1 100644
--- a/common/cmd_sf.c
+++ b/common/cmd_sf.c
@@ -53,7 +53,7 @@ static int sf_parse_len_arg(char *arg, ulong *len)
return -1;
if (round_up_len && flash->sector_size > 0)
- *len = ROUND(len_arg - 1, flash->sector_size);
+ *len = ROUND(len_arg, flash->sector_size);
else
*len = len_arg;
diff --git a/include/common.h b/include/common.h
index bd10f31f8..af8b154fd 100644
--- a/include/common.h
+++ b/include/common.h
@@ -760,7 +760,7 @@ int cpu_release(int nr, int argc, char * const argv[]);
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
-#define ROUND(a,b) (((a) + (b)) & ~((b) - 1))
+#define ROUND(a,b) (((a) + (b) - 1) & ~((b) - 1))
#define DIV_ROUND(n,d) (((n) + ((d)/2)) / (d))
#define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d))
#define roundup(x, y) ((((x) + ((y) - 1)) / (y)) * (y))