Commit f7586a5
committed
idc: zephyr: Fix race between IDC p4wq worker and new msg submission
A race exists between submitting a new IDC message and completion
of a IDC previous message. The completion is handled on another
core in the core's p4wq worker thread.
Add a check to idc_send_msg() to check whether previous message
to target core has been completed, and if it's not done, add a blocking
wait even for nonblocking messages.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>1 parent 72e31f3 commit f7586a5
1 file changed
Lines changed: 23 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
59 | 59 | | |
60 | 60 | | |
61 | 61 | | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
62 | 68 | | |
63 | 69 | | |
64 | 70 | | |
| 71 | + | |
65 | 72 | | |
66 | 73 | | |
67 | 74 | | |
| |||
101 | 108 | | |
102 | 109 | | |
103 | 110 | | |
| 111 | + | |
| 112 | + | |
104 | 113 | | |
105 | 114 | | |
106 | 115 | | |
| |||
120 | 129 | | |
121 | 130 | | |
122 | 131 | | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
123 | 144 | | |
124 | 145 | | |
125 | 146 | | |
| |||
128 | 149 | | |
129 | 150 | | |
130 | 151 | | |
131 | | - | |
132 | | - | |
133 | | - | |
134 | | - | |
| 152 | + | |
| 153 | + | |
135 | 154 | | |
136 | 155 | | |
137 | 156 | | |
| |||
0 commit comments