Rev 3011 | Rev 3424 | 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 | ||