genirq/timings: Fix error return code in irq_timings_test_irqs()
authorZhen Lei <thunder.leizhen@huawei.com>
Wed, 11 Aug 2021 09:33:32 +0000 (17:33 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 15 Sep 2021 07:50:29 +0000 (09:50 +0200)
[ Upstream commit 290fdc4b7ef14e33d0e30058042b0e9bfd02b89b ]

Return a negative error code from the error handling case instead of 0, as
done elsewhere in this function.

Fixes: f52da98d900e ("genirq/timings: Add selftest for irqs circular buffer")
Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20210811093333.2376-1-thunder.leizhen@huawei.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
kernel/irq/timings.c

index 6990490..1f98116 100644 (file)
@@ -799,12 +799,14 @@ static int __init irq_timings_test_irqs(struct timings_intervals *ti)
 
                __irq_timings_store(irq, irqs, ti->intervals[i]);
                if (irqs->circ_timings[i & IRQ_TIMINGS_MASK] != index) {
+                       ret = -EBADSLT;
                        pr_err("Failed to store in the circular buffer\n");
                        goto out;
                }
        }
 
        if (irqs->count != ti->count) {
+               ret = -ERANGE;
                pr_err("Count differs\n");
                goto out;
        }