Rev 735 | Rev 762 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 735 | Rev 759 | ||
---|---|---|---|
Line 121... | Line 121... | ||
121 | * TODO: Sleep until frames are available again. |
121 | * TODO: Sleep until frames are available again. |
122 | */ |
122 | */ |
123 | spinlock_unlock(&zone_head_lock); |
123 | spinlock_unlock(&zone_head_lock); |
124 | interrupts_restore(ipl); |
124 | interrupts_restore(ipl); |
125 | 125 | ||
126 | if (flags & FRAME_NON_BLOCKING) { |
126 | if (flags & FRAME_ATOMIC) { |
127 | ASSERT(status != NULL); |
127 | ASSERT(status != NULL); |
128 | *status = FRAME_NO_MEMORY; |
128 | *status = FRAME_NO_MEMORY; |
129 | return NULL; |
129 | return NULL; |
130 | } |
130 | } |
131 | 131 | ||
Line 155... | Line 155... | ||
155 | ASSERT(v == ALIGN_UP(v, FRAME_SIZE << order)); |
155 | ASSERT(v == ALIGN_UP(v, FRAME_SIZE << order)); |
156 | 156 | ||
157 | if (flags & FRAME_KA) |
157 | if (flags & FRAME_KA) |
158 | v = PA2KA(v); |
158 | v = PA2KA(v); |
159 | 159 | ||
160 | if (flags & FRAME_NON_BLOCKING) { |
160 | if (flags & FRAME_ATOMIC) { |
161 | ASSERT(status != NULL); |
161 | ASSERT(status != NULL); |
162 | *status = FRAME_OK; |
162 | *status = FRAME_OK; |
163 | } |
163 | } |
164 | return v; |
164 | return v; |
165 | } |
165 | } |