diff options
author | Krzysztof Halasa <khc@pm.waw.pl> | 2011-01-06 16:23:01 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2011-01-07 10:21:22 +0100 |
commit | c5baa0edc4a70c2f44cb7422e2b47ab5c96570ed (patch) | |
tree | d45c280198754e96276f6a633a206233504790b3 /lib/xfuncs.c | |
parent | c99d28ca568a6e0d713c42bfbb9cd5310588d857 (diff) | |
download | barebox-c5baa0edc4a70c2f44cb7422e2b47ab5c96570ed.tar.gz barebox-c5baa0edc4a70c2f44cb7422e2b47ab5c96570ed.tar.xz |
Fix error handling with malloc, memalign etc. Introduce xmemalign().
The idea is to panic() when there is no memory available for normal
operation. Exception: code which can consume arbitrary amount of RAM
(example: files allocated in ramfs) must report error instead of panic().
This patch also fixes code which didn't check for NULL from malloc() etc.
Usage: malloc(), memalign() return NULL when out of RAM.
xmalloc(), xmemalign() always return non-NULL or panic().
Signed-off-by: Krzysztof HaĆasa <khc@pm.waw.pl>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'lib/xfuncs.c')
-rw-r--r-- | lib/xfuncs.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/xfuncs.c b/lib/xfuncs.c index 01a64cf5eb..71394fff29 100644 --- a/lib/xfuncs.c +++ b/lib/xfuncs.c @@ -70,3 +70,11 @@ char *xstrdup(const char *s) } EXPORT_SYMBOL(xstrdup); +void* xmemalign(size_t alignment, size_t bytes) +{ + void *p = memalign(alignment, bytes); + if (!p) + panic("ERROR: out of memory\n"); + return p; +} +EXPORT_SYMBOL(xmemalign); |