diff options
Diffstat (limited to 'tools/testing/shared/linux.c')
| -rw-r--r-- | tools/testing/shared/linux.c | 14 | 
1 files changed, 9 insertions, 5 deletions
diff --git a/tools/testing/shared/linux.c b/tools/testing/shared/linux.c index 17263696b5d8..66dbb362385f 100644 --- a/tools/testing/shared/linux.c +++ b/tools/testing/shared/linux.c @@ -96,10 +96,13 @@ void *kmem_cache_alloc_lru(struct kmem_cache *cachep, struct list_lru *lru,  		p = node;  	} else {  		pthread_mutex_unlock(&cachep->lock); -		if (cachep->align) -			posix_memalign(&p, cachep->align, cachep->size); -		else +		if (cachep->align) { +			if (posix_memalign(&p, cachep->align, cachep->size) < 0) +				return NULL; +		} else {  			p = malloc(cachep->size); +		} +  		if (cachep->ctor)  			cachep->ctor(p);  		else if (gfp & __GFP_ZERO) @@ -195,8 +198,9 @@ int kmem_cache_alloc_bulk(struct kmem_cache *cachep, gfp_t gfp, size_t size,  			}  			if (cachep->align) { -				posix_memalign(&p[i], cachep->align, -					       cachep->size); +				if (posix_memalign(&p[i], cachep->align, +					       cachep->size) < 0) +					break;  			} else {  				p[i] = malloc(cachep->size);  				if (!p[i])  | 
