diff options
Diffstat (limited to 'kernel/smp.c')
| -rw-r--r-- | kernel/smp.c | 9 | 
1 files changed, 9 insertions, 0 deletions
diff --git a/kernel/smp.c b/kernel/smp.c index 80c33f8de14f..487653b5844f 100644 --- a/kernel/smp.c +++ b/kernel/smp.c @@ -3,6 +3,7 @@   *   * (C) Jens Axboe <jens.axboe@oracle.com> 2008   */ +#include <linux/irq_work.h>  #include <linux/rcupdate.h>  #include <linux/rculist.h>  #include <linux/kernel.h> @@ -251,6 +252,14 @@ static void flush_smp_call_function_queue(bool warn_cpu_offline)  		csd->func(csd->info);  		csd_unlock(csd);  	} + +	/* +	 * Handle irq works queued remotely by irq_work_queue_on(). +	 * Smp functions above are typically synchronous so they +	 * better run first since some other CPUs may be busy waiting +	 * for them. +	 */ +	irq_work_run();  }  /*  | 
