| 57 | } |
| 58 | |
| 59 | static void _mask_out_cpu(struct rt_smp_event *event, int oncpu) |
| 60 | { |
| 61 | rt_base_t new_mask, old_mask; |
| 62 | rt_atomic_t *maskp = event->typed.calling_cpu_mask; |
| 63 | do |
| 64 | { |
| 65 | old_mask = rt_atomic_load(maskp); |
| 66 | new_mask = old_mask & ~(1ul << oncpu); |
| 67 | } while (!rt_atomic_compare_exchange_strong(maskp, &old_mask, new_mask)); |
| 68 | } |
| 69 | |
| 70 | static void _do_glob_request(struct rt_smp_call_req *req_global, |
| 71 | struct rt_smp_call_req *req_local) |