@@ -50,7 +50,7 @@ void __iomem *mips_gic_base;
5050
5151static DEFINE_PER_CPU_READ_MOSTLY (unsigned long [GIC_MAX_LONGS ], pcpu_masks ) ;
5252
53- static DEFINE_SPINLOCK (gic_lock );
53+ static DEFINE_RAW_SPINLOCK (gic_lock );
5454static struct irq_domain * gic_irq_domain ;
5555static int gic_shared_intrs ;
5656static unsigned int gic_cpu_pin ;
@@ -210,7 +210,7 @@ static int gic_set_type(struct irq_data *d, unsigned int type)
210210
211211 irq = GIC_HWIRQ_TO_SHARED (d -> hwirq );
212212
213- spin_lock_irqsave (& gic_lock , flags );
213+ raw_spin_lock_irqsave (& gic_lock , flags );
214214 switch (type & IRQ_TYPE_SENSE_MASK ) {
215215 case IRQ_TYPE_EDGE_FALLING :
216216 pol = GIC_POL_FALLING_EDGE ;
@@ -250,7 +250,7 @@ static int gic_set_type(struct irq_data *d, unsigned int type)
250250 else
251251 irq_set_chip_handler_name_locked (d , & gic_level_irq_controller ,
252252 handle_level_irq , NULL );
253- spin_unlock_irqrestore (& gic_lock , flags );
253+ raw_spin_unlock_irqrestore (& gic_lock , flags );
254254
255255 return 0 ;
256256}
@@ -268,7 +268,7 @@ static int gic_set_affinity(struct irq_data *d, const struct cpumask *cpumask,
268268 return - EINVAL ;
269269
270270 /* Assumption : cpumask refers to a single CPU */
271- spin_lock_irqsave (& gic_lock , flags );
271+ raw_spin_lock_irqsave (& gic_lock , flags );
272272
273273 /* Re-route this IRQ */
274274 write_gic_map_vp (irq , BIT (mips_cm_vp_id (cpu )));
@@ -279,7 +279,7 @@ static int gic_set_affinity(struct irq_data *d, const struct cpumask *cpumask,
279279 set_bit (irq , per_cpu_ptr (pcpu_masks , cpu ));
280280
281281 irq_data_update_effective_affinity (d , cpumask_of (cpu ));
282- spin_unlock_irqrestore (& gic_lock , flags );
282+ raw_spin_unlock_irqrestore (& gic_lock , flags );
283283
284284 return IRQ_SET_MASK_OK ;
285285}
@@ -357,12 +357,12 @@ static void gic_mask_local_irq_all_vpes(struct irq_data *d)
357357 cd = irq_data_get_irq_chip_data (d );
358358 cd -> mask = false;
359359
360- spin_lock_irqsave (& gic_lock , flags );
360+ raw_spin_lock_irqsave (& gic_lock , flags );
361361 for_each_online_cpu (cpu ) {
362362 write_gic_vl_other (mips_cm_vp_id (cpu ));
363363 write_gic_vo_rmask (BIT (intr ));
364364 }
365- spin_unlock_irqrestore (& gic_lock , flags );
365+ raw_spin_unlock_irqrestore (& gic_lock , flags );
366366}
367367
368368static void gic_unmask_local_irq_all_vpes (struct irq_data * d )
@@ -375,12 +375,12 @@ static void gic_unmask_local_irq_all_vpes(struct irq_data *d)
375375 cd = irq_data_get_irq_chip_data (d );
376376 cd -> mask = true;
377377
378- spin_lock_irqsave (& gic_lock , flags );
378+ raw_spin_lock_irqsave (& gic_lock , flags );
379379 for_each_online_cpu (cpu ) {
380380 write_gic_vl_other (mips_cm_vp_id (cpu ));
381381 write_gic_vo_smask (BIT (intr ));
382382 }
383- spin_unlock_irqrestore (& gic_lock , flags );
383+ raw_spin_unlock_irqrestore (& gic_lock , flags );
384384}
385385
386386static void gic_all_vpes_irq_cpu_online (void )
@@ -393,7 +393,7 @@ static void gic_all_vpes_irq_cpu_online(void)
393393 unsigned long flags ;
394394 int i ;
395395
396- spin_lock_irqsave (& gic_lock , flags );
396+ raw_spin_lock_irqsave (& gic_lock , flags );
397397
398398 for (i = 0 ; i < ARRAY_SIZE (local_intrs ); i ++ ) {
399399 unsigned int intr = local_intrs [i ];
@@ -407,7 +407,7 @@ static void gic_all_vpes_irq_cpu_online(void)
407407 write_gic_vl_smask (BIT (intr ));
408408 }
409409
410- spin_unlock_irqrestore (& gic_lock , flags );
410+ raw_spin_unlock_irqrestore (& gic_lock , flags );
411411}
412412
413413static struct irq_chip gic_all_vpes_local_irq_controller = {
@@ -437,11 +437,11 @@ static int gic_shared_irq_domain_map(struct irq_domain *d, unsigned int virq,
437437
438438 data = irq_get_irq_data (virq );
439439
440- spin_lock_irqsave (& gic_lock , flags );
440+ raw_spin_lock_irqsave (& gic_lock , flags );
441441 write_gic_map_pin (intr , GIC_MAP_PIN_MAP_TO_PIN | gic_cpu_pin );
442442 write_gic_map_vp (intr , BIT (mips_cm_vp_id (cpu )));
443443 irq_data_update_effective_affinity (data , cpumask_of (cpu ));
444- spin_unlock_irqrestore (& gic_lock , flags );
444+ raw_spin_unlock_irqrestore (& gic_lock , flags );
445445
446446 return 0 ;
447447}
@@ -533,12 +533,12 @@ static int gic_irq_domain_map(struct irq_domain *d, unsigned int virq,
533533 if (!gic_local_irq_is_routable (intr ))
534534 return - EPERM ;
535535
536- spin_lock_irqsave (& gic_lock , flags );
536+ raw_spin_lock_irqsave (& gic_lock , flags );
537537 for_each_online_cpu (cpu ) {
538538 write_gic_vl_other (mips_cm_vp_id (cpu ));
539539 write_gic_vo_map (mips_gic_vx_map_reg (intr ), map );
540540 }
541- spin_unlock_irqrestore (& gic_lock , flags );
541+ raw_spin_unlock_irqrestore (& gic_lock , flags );
542542
543543 return 0 ;
544544}
0 commit comments