genirq/test: Drop CONFIG_GENERIC_IRQ_MIGRATION assumptions
authorBrian Norris <briannorris@chromium.org>
Fri, 22 Aug 2025 18:59:06 +0000 (11:59 -0700)
committerThomas Gleixner <tglx@linutronix.de>
Wed, 3 Sep 2025 15:04:52 +0000 (17:04 +0200)
Not all platforms use the generic IRQ migration code, even if they select
GENERIC_IRQ_MIGRATION. (See, for example, powerpc / pseries_cpu_disable().)

If such platforms don't perform managed shutdown the same way, the interrupt
may not actually shut down, and these tests fail:

[    4.357022][  T101]     # irq_cpuhotplug_test: EXPECTATION FAILED at kernel/irq/irq_test.c:211
[    4.357022][  T101]     Expected irqd_is_activated(data) to be false, but is true
[    4.358128][  T101]     # irq_cpuhotplug_test: EXPECTATION FAILED at kernel/irq/irq_test.c:212
[    4.358128][  T101]     Expected irqd_is_started(data) to be false, but is true
[    4.375558][  T101]     # irq_cpuhotplug_test: EXPECTATION FAILED at kernel/irq/irq_test.c:216
[    4.375558][  T101]     Expected irqd_is_activated(data) to be false, but is true
[    4.376088][  T101]     # irq_cpuhotplug_test: EXPECTATION FAILED at kernel/irq/irq_test.c:217
[    4.376088][  T101]     Expected irqd_is_started(data) to be false, but is true
[    4.377851][    T1]     # irq_cpuhotplug_test: pass:0 fail:1 skip:0 total:1
[    4.377901][    T1]     not ok 4 irq_cpuhotplug_test
[    4.378073][    T1] # irq_test_cases: pass:3 fail:1 skip:0 total:4

Rather than test that PowerPC performs migration the same way as the
unterrupt core, just drop the state checks. The point of the test was to
ensure that the code kept |depth| balanced, which still can be tested for.

Fixes: 66067c3c8a1e ("genirq: Add kunit tests for depth counts")
Reported-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Brian Norris <briannorris@chromium.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Guenter Roeck <linux@roeck-us.net>
Reviewed-by: David Gow <davidgow@google.com>
Link: https://lore.kernel.org/all/20250822190140.2154646-6-briannorris@chromium.org
kernel/irq/irq_test.c

index 56baeb5..bbb89a3 100644 (file)
@@ -203,13 +203,9 @@ static void irq_cpuhotplug_test(struct kunit *test)
        KUNIT_EXPECT_EQ(test, desc->depth, 1);
 
        KUNIT_EXPECT_EQ(test, remove_cpu(1), 0);
-       KUNIT_EXPECT_FALSE(test, irqd_is_activated(data));
-       KUNIT_EXPECT_FALSE(test, irqd_is_started(data));
        KUNIT_EXPECT_GE(test, desc->depth, 1);
        KUNIT_EXPECT_EQ(test, add_cpu(1), 0);
 
-       KUNIT_EXPECT_FALSE(test, irqd_is_activated(data));
-       KUNIT_EXPECT_FALSE(test, irqd_is_started(data));
        KUNIT_EXPECT_EQ(test, desc->depth, 1);
 
        enable_irq(virq);