[PATCH] genirq:Dereference desc after null pointer check

From: RAGHU Halharvi
Date: Tue Jul 17 2018 - 02:58:04 EST


* Remove unchecked dereferencing of *desc & assigning it local irq
variable

* Move the assignement after proper check of *desc for NULL pointer.

Signed-off-by: RAGHU Halharvi <raghuhack78@xxxxxxxxx>
---
kernel/irq/manage.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index facfecfc543c..064d98e5ae32 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -1557,7 +1557,7 @@ EXPORT_SYMBOL_GPL(setup_irq);
*/
static struct irqaction *__free_irq(struct irq_desc *desc, void *dev_id)
{
- unsigned irq = desc->irq_data.irq;
+ unsigned int irq;
struct irqaction *action, **action_ptr;
unsigned long flags;

@@ -1566,6 +1566,7 @@ static struct irqaction *__free_irq(struct irq_desc *desc, void *dev_id)
if (!desc)
return NULL;

+ irq = desc->irq_data.irq;
mutex_lock(&desc->request_mutex);
chip_bus_lock(desc);
raw_spin_lock_irqsave(&desc->lock, flags);
--
2.17.1