Changes in kernel/generic/src/mm/as.c [5071f8a:6785b88b] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/mm/as.c
r5071f8a r6785b88b 141 141 if (!AS_KERNEL) 142 142 panic("Cannot create kernel address space."); 143 144 /* 145 * Make sure the kernel address space 146 * reference count never drops to zero. 147 */ 148 as_hold(AS_KERNEL); 143 149 } 144 150 … … 151 157 as_t *as_create(unsigned int flags) 152 158 { 153 as_t *as = (as_t *) slab_alloc(as_cache, FRAME_ATOMIC); 154 if (!as) 155 return NULL; 156 159 as_t *as = (as_t *) slab_alloc(as_cache, 0); 157 160 (void) as_create_arch(as, 0); 158 161 … … 1465 1468 1466 1469 page_fault: 1467 if (THREAD && THREAD->in_copy_from_uspace) {1470 if (THREAD->in_copy_from_uspace) { 1468 1471 THREAD->in_copy_from_uspace = false; 1469 1472 istate_set_retaddr(istate, 1470 1473 (uintptr_t) &memcpy_from_uspace_failover_address); 1471 } else if (THREAD && THREAD->in_copy_to_uspace) {1474 } else if (THREAD->in_copy_to_uspace) { 1472 1475 THREAD->in_copy_to_uspace = false; 1473 1476 istate_set_retaddr(istate, … … 2240 2243 * 2241 2244 */ 2242 as_area_info_t *as_get_area_info(as_t *as, size_t *osize)2245 void as_get_area_info(as_t *as, as_area_info_t **obuf, size_t *osize) 2243 2246 { 2244 2247 mutex_lock(&as->lock); … … 2248 2251 2249 2252 size_t isize = area_cnt * sizeof(as_area_info_t); 2250 as_area_info_t *info = malloc(isize); 2251 if (!info) { 2252 mutex_unlock(&as->lock); 2253 return NULL; 2254 } 2253 as_area_info_t *info = nfmalloc(isize); 2255 2254 2256 2255 /* Record area data. */ … … 2274 2273 mutex_unlock(&as->lock); 2275 2274 2275 *obuf = info; 2276 2276 *osize = isize; 2277 return info;2278 2277 } 2279 2278
Note:
See TracChangeset
for help on using the changeset viewer.