Changeset e7ac23d0 in mainline for kernel/generic/src/ipc/ipc.c
- Timestamp:
- 2017-08-20T14:53:21Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 3f74275
- Parents:
- 49115ac
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/ipc/ipc.c
r49115ac re7ac23d0 735 735 { 736 736 call_t *call; 737 size_t i;737 bool all_clean; 738 738 739 739 restart: … … 742 742 * Locking is needed as there may be connection handshakes in progress. 743 743 */ 744 for (i = 0; i < MAX_KERNEL_OBJECTS; i++) { 745 phone_t *phone = phone_get_current(i); 746 if (!phone) 747 continue; 744 all_clean = true; 745 for_each_kobject_current(kobj, KOBJECT_TYPE_PHONE) { 746 phone_t *phone = &kobj->phone; 748 747 749 748 mutex_lock(&phone->lock); … … 781 780 if (phone->state != IPC_PHONE_FREE) { 782 781 mutex_unlock(&phone->lock); 782 all_clean = false; 783 783 break; 784 784 } … … 788 788 789 789 /* Got into cleanup */ 790 if ( i == MAX_KERNEL_OBJECTS)790 if (all_clean) 791 791 return; 792 792 … … 820 820 821 821 /* Disconnect all our phones ('ipc_phone_hangup') */ 822 for (int i = 0; i < MAX_KERNEL_OBJECTS; i++) { 823 phone_t *phone = phone_get_current(i); 824 if (!phone) 825 continue; 822 for_each_kobject_current(kobj, KOBJECT_TYPE_PHONE) { 823 phone_t *phone = &kobj->phone; 826 824 ipc_phone_hangup(phone); 827 825 } … … 913 911 printf("[phone cap] [calls] [state\n"); 914 912 915 size_t i; 916 for (i = 0; i < MAX_KERNEL_OBJECTS; i++) { 917 phone_t *phone = phone_get(task, i); 918 if (!phone) 913 for_each_kobject(task, kobj, KOBJECT_TYPE_PHONE) { 914 phone_t *phone = &kobj->phone; 915 int cap = kobject_to_cap(task, kobj); 916 917 if (SYNCH_FAILED(mutex_trylock(&phone->lock))) { 918 printf("%-11d (mutex busy)\n", cap); 919 919 continue; 920 921 if (SYNCH_FAILED(mutex_trylock(&phone->lock))) {922 printf("%-10zu (mutex busy)\n", i);923 continue;924 920 } 925 921 926 922 if (phone->state != IPC_PHONE_FREE) { 927 printf("%-11 zu %7" PRIun " ", i,923 printf("%-11d %7" PRIun " ", cap, 928 924 atomic_get(&phone->active_calls)); 929 925
Note:
See TracChangeset
for help on using the changeset viewer.