]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
pata_octeon_cf: avoid WARN_ON() in ata_host_activate()
authorSergey Shtylyov <s.shtylyov@omp.ru>
Tue, 18 May 2021 20:38:54 +0000 (23:38 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 20 Jul 2021 14:22:33 +0000 (16:22 +0200)
[ Upstream commit bfc1f378c8953e68ccdbfe0a8c20748427488b80 ]

Iff platform_get_irq() fails (or returns IRQ0) and thus the polling mode
has to be used, ata_host_activate() hits the WARN_ON() due to 'irq_handler'
parameter being non-NULL if the polling mode is selected.  Let's only set
the pointer to the driver's IRQ handler if platform_get_irq() returns a
valid IRQ # -- this should avoid the unnecessary WARN_ON()...

Fixes: 43f01da0f279 ("MIPS/OCTEON/ata: Convert pata_octeon_cf.c to use device tree.")
Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
Link: https://lore.kernel.org/r/3a241167-f84d-1d25-5b9b-be910afbe666@omp.ru
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/ata/pata_octeon_cf.c

index 27245957eee3cd906f546d67853d2ebd6ce54d30..909de33f91589843a49330409c78adeb80f6d574 100644 (file)
@@ -909,10 +909,11 @@ static int octeon_cf_probe(struct platform_device *pdev)
                                        return -EINVAL;
                                }
 
-                               irq_handler = octeon_cf_interrupt;
                                i = platform_get_irq(dma_dev, 0);
-                               if (i > 0)
+                               if (i > 0) {
                                        irq = i;
+                                       irq_handler = octeon_cf_interrupt;
+                               }
                        }
                        of_node_put(dma_node);
                }