From d599f4ba1eb7534933e5371228b5883e9c2c5d9c Mon Sep 17 00:00:00 2001 From: ian Date: Fri, 25 Jul 2014 23:12:22 +0000 Subject: MFC r261530 Set the malloc alignment to 64 bytes on platforms that use the U-Boot API device drivers. Recent versions of u-boot run with the MMU enabled, and require DMA-based I/O to be aligned to cache line boundaries. --- lib/libstand/zalloc.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'lib/libstand/zalloc.c') diff --git a/lib/libstand/zalloc.c b/lib/libstand/zalloc.c index 41aef0d..4d1ec62 100644 --- a/lib/libstand/zalloc.c +++ b/lib/libstand/zalloc.c @@ -71,6 +71,15 @@ __FBSDID("$FreeBSD$"); #include "zalloc_defs.h" /* + * Objects in the pool must be aligned to at least the size of struct MemNode. + * They must also be aligned to MALLOCALIGN, which should normally be larger + * than the struct, so assert that to be so at compile time. + */ +typedef char assert_align[(sizeof(struct MemNode) <= MALLOCALIGN) ? 1 : -1]; + +#define MEMNODE_SIZE_MASK MALLOCALIGN_MASK + +/* * znalloc() - allocate memory (without zeroing) from pool. Call reclaim * and retry if appropriate, return NULL if unable to allocate * memory. -- cgit v1.1