Use atomic operations to get and set the IPI pending flag to ensure that if an IPI is observed, the IPI arguments are also observed. Using atomics makes this requirement explicit to the compiler. Without this change there is a race between setting up an IPI and another core checking for ipi == 1. This can happen before IPI_MEM_BARRIER has been executed. Found by Yanyan Shen. Signed-off-by: Indan Zupancic <indan@nul.nu> |
||
|---|---|---|
| .. | ||
| ipi.h | ||
| lock.h | ||