Changeset 645d9ed2 in mainline for kernel/generic/src/ipc/ipc.c


Ignore:
Timestamp:
2008-08-24T18:19:21Z (17 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
74965d2
Parents:
088ab05
Message:

Fix processing of answers to forwarded masqueraded calls.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/ipc/ipc.c

    r088ab05 r645d9ed2  
    348348        spinlock_unlock(&oldbox->lock);
    349349
    350         if (mode & IPC_FF_ROUTE_FROM_ME)
     350        if (mode & IPC_FF_ROUTE_FROM_ME) {
     351                if (!call->data.caller_phone)
     352                        call->data.caller_phone = call->data.phone;
    351353                call->data.phone = newphone;
     354        }
    352355
    353356        return ipc_call(newphone, call);
     
    393396                request = list_get_instance(box->answers.next, call_t, link);
    394397                list_remove(&request->link);
    395                 atomic_dec(&request->data.phone->active_calls);
     398                if (request->data.caller_phone)
     399                        atomic_dec(&request->data.caller_phone->active_calls);
     400                else
     401                        atomic_dec(&request->data.phone->active_calls);
    396402        } else if (!list_empty(&box->calls)) {
    397403                /* Handle requests */
Note: See TracChangeset for help on using the changeset viewer.