@@ -41,22 +41,35 @@ static struct irq_chip fake_irq_chip = {
4141 .flags = IRQCHIP_SKIP_SET_WAKE ,
4242};
4343
44- static void irq_disable_depth_test (struct kunit * test )
44+ static int irq_test_setup_fake_irq (struct kunit * test , struct irq_affinity_desc * affd )
4545{
4646 struct irq_desc * desc ;
47- int virq , ret ;
47+ int virq ;
4848
49- virq = irq_domain_alloc_descs (-1 , 1 , 0 , NUMA_NO_NODE , NULL );
49+ virq = irq_domain_alloc_descs (-1 , 1 , 0 , NUMA_NO_NODE , affd );
5050 KUNIT_ASSERT_GE (test , virq , 0 );
5151
52- irq_set_chip_and_handler (virq , & dummy_irq_chip , handle_simple_irq );
52+ irq_set_chip_and_handler (virq , & fake_irq_chip , handle_simple_irq );
5353
5454 desc = irq_to_desc (virq );
5555 KUNIT_ASSERT_PTR_NE (test , desc , NULL );
5656
5757 /* On some architectures, IRQs are NOREQUEST | NOPROBE by default. */
5858 irq_settings_clr_norequest (desc );
5959
60+ return virq ;
61+ }
62+
63+ static void irq_disable_depth_test (struct kunit * test )
64+ {
65+ struct irq_desc * desc ;
66+ int virq , ret ;
67+
68+ virq = irq_test_setup_fake_irq (test , NULL );
69+
70+ desc = irq_to_desc (virq );
71+ KUNIT_ASSERT_PTR_NE (test , desc , NULL );
72+
6073 ret = request_irq (virq , noop_handler , 0 , "test_irq" , NULL );
6174 KUNIT_EXPECT_EQ (test , ret , 0 );
6275
@@ -76,17 +89,11 @@ static void irq_free_disabled_test(struct kunit *test)
7689 struct irq_desc * desc ;
7790 int virq , ret ;
7891
79- virq = irq_domain_alloc_descs (-1 , 1 , 0 , NUMA_NO_NODE , NULL );
80- KUNIT_ASSERT_GE (test , virq , 0 );
81-
82- irq_set_chip_and_handler (virq , & dummy_irq_chip , handle_simple_irq );
92+ virq = irq_test_setup_fake_irq (test , NULL );
8393
8494 desc = irq_to_desc (virq );
8595 KUNIT_ASSERT_PTR_NE (test , desc , NULL );
8696
87- /* On some architectures, IRQs are NOREQUEST | NOPROBE by default. */
88- irq_settings_clr_norequest (desc );
89-
9097 ret = request_irq (virq , noop_handler , 0 , "test_irq" , NULL );
9198 KUNIT_EXPECT_EQ (test , ret , 0 );
9299
@@ -118,17 +125,11 @@ static void irq_shutdown_depth_test(struct kunit *test)
118125 if (!IS_ENABLED (CONFIG_SMP ))
119126 kunit_skip (test , "requires CONFIG_SMP for managed shutdown" );
120127
121- virq = irq_domain_alloc_descs (-1 , 1 , 0 , NUMA_NO_NODE , & affinity );
122- KUNIT_ASSERT_GE (test , virq , 0 );
123-
124- irq_set_chip_and_handler (virq , & dummy_irq_chip , handle_simple_irq );
128+ virq = irq_test_setup_fake_irq (test , & affinity );
125129
126130 desc = irq_to_desc (virq );
127131 KUNIT_ASSERT_PTR_NE (test , desc , NULL );
128132
129- /* On some architectures, IRQs are NOREQUEST | NOPROBE by default. */
130- irq_settings_clr_norequest (desc );
131-
132133 data = irq_desc_get_irq_data (desc );
133134 KUNIT_ASSERT_PTR_NE (test , data , NULL );
134135
@@ -181,17 +182,11 @@ static void irq_cpuhotplug_test(struct kunit *test)
181182
182183 cpumask_copy (& affinity .mask , cpumask_of (1 ));
183184
184- virq = irq_domain_alloc_descs (-1 , 1 , 0 , NUMA_NO_NODE , & affinity );
185- KUNIT_ASSERT_GE (test , virq , 0 );
186-
187- irq_set_chip_and_handler (virq , & fake_irq_chip , handle_simple_irq );
185+ virq = irq_test_setup_fake_irq (test , & affinity );
188186
189187 desc = irq_to_desc (virq );
190188 KUNIT_ASSERT_PTR_NE (test , desc , NULL );
191189
192- /* On some architectures, IRQs are NOREQUEST | NOPROBE by default. */
193- irq_settings_clr_norequest (desc );
194-
195190 data = irq_desc_get_irq_data (desc );
196191 KUNIT_ASSERT_PTR_NE (test , data , NULL );
197192
0 commit comments