[ERD][NEUS7920-76] [COMMON] lib: dss: add null check before refer to desc->action
authorHyunki Koo <hyunki00.koo@samsung.com>
Thu, 11 Oct 2018 10:27:21 +0000 (19:27 +0900)
committerCosmin Tanislav <demonsingur@gmail.com>
Mon, 22 Apr 2024 17:23:33 +0000 (20:23 +0300)
Change-Id: I9f5211c8a08b94ce5430cb49995e5be79d3ab567
Signed-off-by: Hyunki Koo <hyunki00.koo@samsung.com>
kernel/irq/irqdesc.c

index 51b7b79374e47c9d6b0b38adaa3300dce2860534..1b24da4043750844e0063250a1cb37fd18dafa16 100644 (file)
@@ -615,20 +615,25 @@ void irq_init_desc(unsigned int irq)
 int generic_handle_irq(unsigned int irq)
 {
        struct irq_desc *desc = irq_to_desc(irq);
-       struct irqaction *action;
+       irq_handler_t handler;
        unsigned long long start_time;
 
        if (!desc)
                return -EINVAL;
 
-       action = desc->action;
        dbg_snapshot_irq_var(start_time);
-       dbg_snapshot_irq(irq, (void *)action->handler, (void *)desc,
+
+       if (likely(desc->action))
+               handler = desc->action->handler;
+       else
+               handler = NULL;
+
+       dbg_snapshot_irq(irq, (void *)handler, (void *)desc,
                                0, DSS_FLAG_IN);
 
        generic_handle_irq_desc(desc);
 
-       dbg_snapshot_irq(irq, (void *)action->handler, (void *)desc,
+       dbg_snapshot_irq(irq, (void *)handler, (void *)desc,
                                start_time, DSS_FLAG_OUT);
 
        return 0;