.. | .. |
---|
33 | 33 | |
---|
34 | 34 | /** |
---|
35 | 35 | * synchronize_rcu_mult - Wait concurrently for multiple grace periods |
---|
36 | | - * @...: List of call_rcu() functions for the flavors to wait on. |
---|
| 36 | + * @...: List of call_rcu() functions for different grace periods to wait on |
---|
37 | 37 | * |
---|
38 | | - * This macro waits concurrently for multiple flavors of RCU grace periods. |
---|
39 | | - * For example, synchronize_rcu_mult(call_rcu, call_rcu_bh) would wait |
---|
40 | | - * on concurrent RCU and RCU-bh grace periods. Waiting on a give SRCU |
---|
| 38 | + * This macro waits concurrently for multiple types of RCU grace periods. |
---|
| 39 | + * For example, synchronize_rcu_mult(call_rcu, call_rcu_tasks) would wait |
---|
| 40 | + * on concurrent RCU and RCU-tasks grace periods. Waiting on a given SRCU |
---|
41 | 41 | * domain requires you to write a wrapper function for that SRCU domain's |
---|
42 | | - * call_srcu() function, supplying the corresponding srcu_struct. |
---|
| 42 | + * call_srcu() function, with this wrapper supplying the pointer to the |
---|
| 43 | + * corresponding srcu_struct. |
---|
43 | 44 | * |
---|
44 | | - * If Tiny RCU, tell _wait_rcu_gp() not to bother waiting for RCU |
---|
45 | | - * or RCU-bh, given that anywhere synchronize_rcu_mult() can be called |
---|
46 | | - * is automatically a grace period. |
---|
| 45 | + * The first argument tells Tiny RCU's _wait_rcu_gp() not to |
---|
| 46 | + * bother waiting for RCU. The reason for this is because anywhere |
---|
| 47 | + * synchronize_rcu_mult() can be called is automatically already a full |
---|
| 48 | + * grace period. |
---|
47 | 49 | */ |
---|
48 | 50 | #define synchronize_rcu_mult(...) \ |
---|
49 | 51 | _wait_rcu_gp(IS_ENABLED(CONFIG_TINY_RCU), __VA_ARGS__) |
---|