Fork us on GitHub Follow us on Facebook Follow us on Twitter

Ignore:
Timestamp:
2018-11-09T22:04:01Z (3 years ago)
Author:
Jiří Zárevúcky <zarevucky.jiri@…>
Branches:
lfn, master
Children:
95d45482
Parents:
88e43bc (diff), abf6c01 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

(merge) Reduce the number of blocking allocations in the kernel

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/sparc64/src/proc/thread.c

    r88e43bc r436a0a5  
    6262}
    6363
    64 void thread_create_arch(thread_t *t)
     64errno_t thread_create_arch(thread_t *t, thread_flags_t flags)
    6565{
    66         if ((t->uspace) && (!t->arch.uspace_window_buffer)) {
     66        if ((flags & THREAD_FLAG_USPACE) && (!t->arch.uspace_window_buffer)) {
    6767                /*
    6868                 * The thread needs userspace window buffer and the object
    6969                 * returned from the slab allocator doesn't have any.
    7070                 */
    71                 t->arch.uspace_window_buffer = slab_alloc(uwb_cache, 0);
     71                t->arch.uspace_window_buffer = slab_alloc(uwb_cache, FRAME_ATOMIC);
     72                if (!t->arch.uspace_window_buffer)
     73                        return ENOMEM;
    7274        } else {
    7375                uintptr_t uw_buf = (uintptr_t) t->arch.uspace_window_buffer;
     
    8082                    UWB_ALIGNMENT);
    8183        }
     84        return EOK;
    8285}
    8386
Note: See TracChangeset for help on using the changeset viewer.