On 02/01/2013 23:52, David Decotigny wrote:
In some cases, free_irq_cpu_rmap() is called while holding a lock
(eg. rtnl). This can lead to deadlocks, because it invokes
flush_scheduled_work() which ends up waiting for whole system
workqueue to flush, but some pending works might try to acquire the
lock we are already holding.

This commit uses reference-counting to replace
irq_run_affinity_notifiers(). It also removes
irq_run_affinity_notifiers() altogether.

Signed-off-by: David Decotigny<de...@googlers.com>
---
  include/linux/cpu_rmap.h  |   13 +++-------
  include/linux/interrupt.h |    5 ----
  lib/cpu_rmap.c            |   63 +++++++++++++++++++++++++++++++++++++++++----
  3 files changed, 62 insertions(+), 19 deletions(-)


Acked-by: Amir Vadai <am...@mellano.com>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to