Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset f9bd2e3 in mainline


Ignore:
Timestamp:
2012-08-17T10:47:38Z (9 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master
Children:
d891cba
Parents:
525e91b
Message:

Handle phones that got slammed during IPC cleanup.

File:
1 edited

Legend:

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

    r525e91b rf9bd2e3  
    637637
    638638                /*
    639                  * Just for sure, we might have had some IPC_PHONE_CONNECTING
    640                  * phones
     639                 * We might have had some IPC_PHONE_CONNECTING phones at the
     640                 * beginning of ipc_cleanup(). Depending on whether these were
     641                 * forgotten or answered, they will eventually enter the
     642                 * IPC_PHONE_FREE or IPC_PHONE_CONNECTED states, respectively.
     643                 * In the latter case, the other side may slam the open phones
     644                 * at any time, in which case we will get an IPC_PHONE_SLAMMED
     645                 * phone.
    641646                 */
    642                 if (TASK->phones[i].state == IPC_PHONE_CONNECTED) {
     647                if ((TASK->phones[i].state == IPC_PHONE_CONNECTED) ||
     648                    (TASK->phones[i].state == IPC_PHONE_SLAMMED)) {
    643649                        ipc_phone_hangup(&TASK->phones[i]);
    644650                        /*
    645                          * Now there is one extra active call, which needs to be
    646                          * forgotten.
     651                         * Now there may be one extra active call, which needs
     652                         * to be forgotten.
    647653                         */
    648654                        ipc_forget_all_active_calls();
Note: See TracChangeset for help on using the changeset viewer.