memory: emif: Add check for setup_interrupts
authorJiasheng Jiang <jiasheng@iscas.ac.cn>
Thu, 24 Feb 2022 02:54:44 +0000 (10:54 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Apr 2022 07:08:15 +0000 (09:08 +0200)
[ Upstream commit fd7bd80b46373887b390852f490f21b07e209498 ]

As the potential failure of the devm_request_threaded_irq(),
it should be better to check the return value of the
setup_interrupts() and return error if fails.

Fixes: 68b4aee35d1f ("memory: emif: add interrupt and temperature handling")
Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
Link: https://lore.kernel.org/r/20220224025444.3256530-1-jiasheng@iscas.ac.cn
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/memory/emif.c

index 88c32b8dc88a11c4806d0bfc7d764c425bcdf55c..ed6c5fcb136f0d0a4b23101eeb957767e3c89431 100644 (file)
@@ -1517,7 +1517,7 @@ static int __init_or_module emif_probe(struct platform_device *pdev)
 {
        struct emif_data        *emif;
        struct resource         *res;
-       int                     irq;
+       int                     irq, ret;
 
        if (pdev->dev.of_node)
                emif = of_get_memory_device_details(pdev->dev.of_node, &pdev->dev);
@@ -1551,7 +1551,9 @@ static int __init_or_module emif_probe(struct platform_device *pdev)
        emif_onetime_settings(emif);
        emif_debugfs_init(emif);
        disable_and_clear_all_interrupts(emif);
-       setup_interrupts(emif, irq);
+       ret = setup_interrupts(emif, irq);
+       if (ret)
+               goto error;
 
        /* One-time actions taken on probing the first device */
        if (!emif1) {