Rev 3011 | Rev 3425 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3011 | Rev 3042 | ||
---|---|---|---|
Line 167... | Line 167... | ||
167 | 167 | ||
168 | if ((native_t) IPC_GET_RETVAL(answer->data) == EHANGUP) { |
168 | if ((native_t) IPC_GET_RETVAL(answer->data) == EHANGUP) { |
169 | /* In case of forward, hangup the forwared phone, |
169 | /* In case of forward, hangup the forwared phone, |
170 | * not the originator |
170 | * not the originator |
171 | */ |
171 | */ |
172 | spinlock_lock(&answer->data.phone->lock); |
172 | mutex_lock(&answer->data.phone->lock); |
173 | spinlock_lock(&TASK->answerbox.lock); |
173 | spinlock_lock(&TASK->answerbox.lock); |
174 | if (answer->data.phone->state == IPC_PHONE_CONNECTED) { |
174 | if (answer->data.phone->state == IPC_PHONE_CONNECTED) { |
175 | list_remove(&answer->data.phone->link); |
175 | list_remove(&answer->data.phone->link); |
176 | answer->data.phone->state = IPC_PHONE_SLAMMED; |
176 | answer->data.phone->state = IPC_PHONE_SLAMMED; |
177 | } |
177 | } |
178 | spinlock_unlock(&TASK->answerbox.lock); |
178 | spinlock_unlock(&TASK->answerbox.lock); |
179 | spinlock_unlock(&answer->data.phone->lock); |
179 | mutex_unlock(&answer->data.phone->lock); |
180 | } |
180 | } |
181 | 181 | ||
182 | if (!olddata) |
182 | if (!olddata) |
183 | return 0; |
183 | return 0; |
184 | 184 |