Rev 1428 | Rev 1461 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1428 | Rev 1434 | ||
---|---|---|---|
Line 149... | Line 149... | ||
149 | } |
149 | } |
150 | } else if (IPC_GET_METHOD(*olddata) == IPC_M_AS_AREA_RECV) { |
150 | } else if (IPC_GET_METHOD(*olddata) == IPC_M_AS_AREA_RECV) { |
151 | if (!IPC_GET_RETVAL(answer->data)) { |
151 | if (!IPC_GET_RETVAL(answer->data)) { |
152 | ipl_t ipl; |
152 | ipl_t ipl; |
153 | as_t *as; |
153 | as_t *as; |
- | 154 | int rc; |
|
154 | 155 | ||
155 | ipl = interrupts_disable(); |
156 | ipl = interrupts_disable(); |
156 | spinlock_lock(&answer->sender->lock); |
157 | spinlock_lock(&answer->sender->lock); |
157 | as = answer->sender->as; |
158 | as = answer->sender->as; |
158 | spinlock_unlock(&answer->sender->lock); |
159 | spinlock_unlock(&answer->sender->lock); |
159 | interrupts_restore(ipl); |
160 | interrupts_restore(ipl); |
160 | 161 | ||
161 | return as_area_share(AS, IPC_GET_ARG1(answer->data), IPC_GET_ARG2(*olddata), |
162 | rc = as_area_share(AS, IPC_GET_ARG1(answer->data), IPC_GET_ARG2(*olddata), |
162 | as, IPC_GET_ARG1(*olddata), IPC_GET_ARG3(*olddata)); |
163 | as, IPC_GET_ARG1(*olddata), IPC_GET_ARG3(*olddata)); |
- | 164 | IPC_SET_RETVAL(answer->data, rc); |
|
163 | } |
165 | } |
164 | } |
166 | } |
165 | return 0; |
167 | return 0; |
166 | } |
168 | } |
167 | 169 |