summaryrefslogtreecommitdiffstats
path: root/kernel/irq
diff options
context:
space:
mode:
authorJesse Brandeburg <jesse.brandeburg@intel.com>2015-01-28 19:57:39 +0100
committerIngo Molnar <mingo@kernel.org>2015-02-09 18:47:42 +0100
commit4fe7ffb7e17ca6ad9173b8de35f260c9c8fc2f79 (patch)
treecd4bf3e96e474ae0e2f99e54dc9d6f9343542a92 /kernel/irq
parentirqchip: gic: Allow interrupt level to be set for PPIs (diff)
downloadlinux-4fe7ffb7e17ca6ad9173b8de35f260c9c8fc2f79.tar.xz
linux-4fe7ffb7e17ca6ad9173b8de35f260c9c8fc2f79.zip
genirq: Fix null pointer reference in irq_set_affinity_hint()
The recent set_affinity commit by me introduced some null pointer dereferences on driver unload, because some drivers call this function with a NULL argument. This fixes the issue by just checking for null before setting the affinity mask. Fixes: e2e64a932556 ("genirq: Set initial affinity in irq_set_affinity_hint()") Reported-by: Yinghai Lu <yinghai@kernel.org> Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> CC: netdev@vger.kernel.org Link: http://lkml.kernel.org/r/20150128185739.9689.84588.stgit@jbrandeb-cp2.jf.intel.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/irq')
-rw-r--r--kernel/irq/manage.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index f038e586a4b9..196a06fbc122 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -244,7 +244,8 @@ int irq_set_affinity_hint(unsigned int irq, const struct cpumask *m)
desc->affinity_hint = m;
irq_put_desc_unlock(desc, flags);
/* set the initial affinity to prevent every interrupt being on CPU0 */
- __irq_set_affinity(irq, m, false);
+ if (m)
+ __irq_set_affinity(irq, m, false);
return 0;
}
EXPORT_SYMBOL_GPL(irq_set_affinity_hint);