diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2015-09-11 11:49:47 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2015-09-11 11:50:44 +0200 |
commit | 495a768f99c8fe4cf3a8e7bb71095a866b182c8e (patch) | |
tree | 4a8e031958edcff87111d41fe3c1e2e352e5615d /freebsd/sys/vm/uma_core.c | |
parent | ZONE(9): Disable unused field (diff) | |
download | rtems-libbsd-495a768f99c8fe4cf3a8e7bb71095a866b182c8e.tar.bz2 |
ZONE(9): Fix slab flag handling
Disable unused slab flags.
Diffstat (limited to 'freebsd/sys/vm/uma_core.c')
-rw-r--r-- | freebsd/sys/vm/uma_core.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/freebsd/sys/vm/uma_core.c b/freebsd/sys/vm/uma_core.c index 593e7f32..845c4339 100644 --- a/freebsd/sys/vm/uma_core.c +++ b/freebsd/sys/vm/uma_core.c @@ -722,11 +722,13 @@ keg_drain(uma_keg_t keg) while (slab) { n = LIST_NEXT(slab, us_link); +#ifndef __rtems__ /* We have no where to free these to */ if (slab->us_flags & UMA_SLAB_BOOT) { slab = n; continue; } +#endif /* __rtems__ */ LIST_REMOVE(slab, us_link); keg->uk_pages -= keg->uk_ppera; @@ -1023,10 +1025,11 @@ page_alloc(uma_zone_t zone, int bytes, u_int8_t *pflag, int wait) { void *p; /* Returned page */ - *pflag = UMA_SLAB_KMEM; #ifndef __rtems__ + *pflag = UMA_SLAB_KMEM; p = (void *) kmem_malloc(kmem_map, bytes, wait); #else /* __rtems__ */ + *pflag = 0; p = rtems_bsd_page_alloc(bytes, wait); #endif /* __rtems__ */ @@ -1121,7 +1124,10 @@ page_free(void *mem, int size, u_int8_t flags) kmem_free(map, (vm_offset_t)mem, size); #else /* __rtems__ */ - rtems_bsd_page_free(mem); + if (flags & UMA_SLAB_KERNEL) + free(mem, M_TEMP); + else + rtems_bsd_page_free(mem); #endif /* __rtems__ */ } |