From a1e36bc8bceefe218ba3411a02f589148222febb Mon Sep 17 00:00:00 2001 From: Vatsal Bucha Date: Tue, 30 Jun 2020 14:58:11 +0530 Subject: [PATCH] soc: swr-mstr: Fix KW issue in swrm_remove irq_set_irq_data is used as argument to irq_set_trigger_type which can be NULL. Check if irq_set_irq_data is NULL before access. Change-Id: I4832d65da22327d184b8a0927e84ff0ca4d40fad Signed-off-by: Vatsal Bucha --- soc/swr-mstr-ctrl.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/soc/swr-mstr-ctrl.c b/soc/swr-mstr-ctrl.c index 0207a9e3fcde..0dc56b353c67 100644 --- a/soc/swr-mstr-ctrl.c +++ b/soc/swr-mstr-ctrl.c @@ -2734,9 +2734,10 @@ err_mstr_fail: swrm->reg_irq(swrm->handle, swr_mstr_interrupt, swrm, SWR_IRQ_FREE); } else if (swrm->irq) { - irqd_set_trigger_type( - irq_get_irq_data(swrm->irq), - IRQ_TYPE_NONE); + if (irq_get_irq_data(swrm->irq) != NULL) + irqd_set_trigger_type( + irq_get_irq_data(swrm->irq), + IRQ_TYPE_NONE); if (swrm->swr_irq_wakeup_capable) irq_set_irq_wake(swrm->irq, 0); free_irq(swrm->irq, swrm); @@ -2764,9 +2765,10 @@ static int swrm_remove(struct platform_device *pdev) swrm->reg_irq(swrm->handle, swr_mstr_interrupt, swrm, SWR_IRQ_FREE); } else if (swrm->irq) { - irqd_set_trigger_type( - irq_get_irq_data(swrm->irq), - IRQ_TYPE_NONE); + if (irq_get_irq_data(swrm->irq) != NULL) + irqd_set_trigger_type( + irq_get_irq_data(swrm->irq), + IRQ_TYPE_NONE); if (swrm->swr_irq_wakeup_capable) irq_set_irq_wake(swrm->irq, 0); free_irq(swrm->irq, swrm);