@@ -50,7 +50,7 @@ void __iomem *mips_gic_base;
50
50
51
51
static DEFINE_PER_CPU_READ_MOSTLY (unsigned long [GIC_MAX_LONGS ], pcpu_masks ) ;
52
52
53
- static DEFINE_SPINLOCK (gic_lock );
53
+ static DEFINE_RAW_SPINLOCK (gic_lock );
54
54
static struct irq_domain * gic_irq_domain ;
55
55
static int gic_shared_intrs ;
56
56
static unsigned int gic_cpu_pin ;
@@ -210,7 +210,7 @@ static int gic_set_type(struct irq_data *d, unsigned int type)
210
210
211
211
irq = GIC_HWIRQ_TO_SHARED (d -> hwirq );
212
212
213
- spin_lock_irqsave (& gic_lock , flags );
213
+ raw_spin_lock_irqsave (& gic_lock , flags );
214
214
switch (type & IRQ_TYPE_SENSE_MASK ) {
215
215
case IRQ_TYPE_EDGE_FALLING :
216
216
pol = GIC_POL_FALLING_EDGE ;
@@ -250,7 +250,7 @@ static int gic_set_type(struct irq_data *d, unsigned int type)
250
250
else
251
251
irq_set_chip_handler_name_locked (d , & gic_level_irq_controller ,
252
252
handle_level_irq , NULL );
253
- spin_unlock_irqrestore (& gic_lock , flags );
253
+ raw_spin_unlock_irqrestore (& gic_lock , flags );
254
254
255
255
return 0 ;
256
256
}
@@ -268,7 +268,7 @@ static int gic_set_affinity(struct irq_data *d, const struct cpumask *cpumask,
268
268
return - EINVAL ;
269
269
270
270
/* Assumption : cpumask refers to a single CPU */
271
- spin_lock_irqsave (& gic_lock , flags );
271
+ raw_spin_lock_irqsave (& gic_lock , flags );
272
272
273
273
/* Re-route this IRQ */
274
274
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,
279
279
set_bit (irq , per_cpu_ptr (pcpu_masks , cpu ));
280
280
281
281
irq_data_update_effective_affinity (d , cpumask_of (cpu ));
282
- spin_unlock_irqrestore (& gic_lock , flags );
282
+ raw_spin_unlock_irqrestore (& gic_lock , flags );
283
283
284
284
return IRQ_SET_MASK_OK ;
285
285
}
@@ -357,12 +357,12 @@ static void gic_mask_local_irq_all_vpes(struct irq_data *d)
357
357
cd = irq_data_get_irq_chip_data (d );
358
358
cd -> mask = false;
359
359
360
- spin_lock_irqsave (& gic_lock , flags );
360
+ raw_spin_lock_irqsave (& gic_lock , flags );
361
361
for_each_online_cpu (cpu ) {
362
362
write_gic_vl_other (mips_cm_vp_id (cpu ));
363
363
write_gic_vo_rmask (BIT (intr ));
364
364
}
365
- spin_unlock_irqrestore (& gic_lock , flags );
365
+ raw_spin_unlock_irqrestore (& gic_lock , flags );
366
366
}
367
367
368
368
static 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)
375
375
cd = irq_data_get_irq_chip_data (d );
376
376
cd -> mask = true;
377
377
378
- spin_lock_irqsave (& gic_lock , flags );
378
+ raw_spin_lock_irqsave (& gic_lock , flags );
379
379
for_each_online_cpu (cpu ) {
380
380
write_gic_vl_other (mips_cm_vp_id (cpu ));
381
381
write_gic_vo_smask (BIT (intr ));
382
382
}
383
- spin_unlock_irqrestore (& gic_lock , flags );
383
+ raw_spin_unlock_irqrestore (& gic_lock , flags );
384
384
}
385
385
386
386
static void gic_all_vpes_irq_cpu_online (void )
@@ -393,7 +393,7 @@ static void gic_all_vpes_irq_cpu_online(void)
393
393
unsigned long flags ;
394
394
int i ;
395
395
396
- spin_lock_irqsave (& gic_lock , flags );
396
+ raw_spin_lock_irqsave (& gic_lock , flags );
397
397
398
398
for (i = 0 ; i < ARRAY_SIZE (local_intrs ); i ++ ) {
399
399
unsigned int intr = local_intrs [i ];
@@ -407,7 +407,7 @@ static void gic_all_vpes_irq_cpu_online(void)
407
407
write_gic_vl_smask (BIT (intr ));
408
408
}
409
409
410
- spin_unlock_irqrestore (& gic_lock , flags );
410
+ raw_spin_unlock_irqrestore (& gic_lock , flags );
411
411
}
412
412
413
413
static 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,
437
437
438
438
data = irq_get_irq_data (virq );
439
439
440
- spin_lock_irqsave (& gic_lock , flags );
440
+ raw_spin_lock_irqsave (& gic_lock , flags );
441
441
write_gic_map_pin (intr , GIC_MAP_PIN_MAP_TO_PIN | gic_cpu_pin );
442
442
write_gic_map_vp (intr , BIT (mips_cm_vp_id (cpu )));
443
443
irq_data_update_effective_affinity (data , cpumask_of (cpu ));
444
- spin_unlock_irqrestore (& gic_lock , flags );
444
+ raw_spin_unlock_irqrestore (& gic_lock , flags );
445
445
446
446
return 0 ;
447
447
}
@@ -533,12 +533,12 @@ static int gic_irq_domain_map(struct irq_domain *d, unsigned int virq,
533
533
if (!gic_local_irq_is_routable (intr ))
534
534
return - EPERM ;
535
535
536
- spin_lock_irqsave (& gic_lock , flags );
536
+ raw_spin_lock_irqsave (& gic_lock , flags );
537
537
for_each_online_cpu (cpu ) {
538
538
write_gic_vl_other (mips_cm_vp_id (cpu ));
539
539
write_gic_vo_map (mips_gic_vx_map_reg (intr ), map );
540
540
}
541
- spin_unlock_irqrestore (& gic_lock , flags );
541
+ raw_spin_unlock_irqrestore (& gic_lock , flags );
542
542
543
543
return 0 ;
544
544
}
0 commit comments