diff options
Diffstat (limited to 'arch/mn10300/kernel/irq.c')
| -rw-r--r-- | arch/mn10300/kernel/irq.c | 16 | 
1 files changed, 9 insertions, 7 deletions
diff --git a/arch/mn10300/kernel/irq.c b/arch/mn10300/kernel/irq.c index 86af0d7d077..2623d19f4f4 100644 --- a/arch/mn10300/kernel/irq.c +++ b/arch/mn10300/kernel/irq.c @@ -87,7 +87,7 @@ static void mn10300_cpupic_mask_ack(struct irq_data *d)  		tmp2 = GxICR(irq);  		irq_affinity_online[irq] = -			any_online_cpu(*d->affinity); +			cpumask_any_and(d->affinity, cpu_online_mask);  		CROSS_GxICR(irq, irq_affinity_online[irq]) =  			(tmp & (GxICR_LEVEL | GxICR_ENABLE)) | GxICR_DETECT;  		tmp = CROSS_GxICR(irq, irq_affinity_online[irq]); @@ -124,7 +124,8 @@ static void mn10300_cpupic_unmask_clear(struct irq_data *d)  	} else {  		tmp = GxICR(irq); -		irq_affinity_online[irq] = any_online_cpu(*d->affinity); +		irq_affinity_online[irq] = cpumask_any_and(d->affinity, +							   cpu_online_mask);  		CROSS_GxICR(irq, irq_affinity_online[irq]) = (tmp & GxICR_LEVEL) | GxICR_ENABLE | GxICR_DETECT;  		tmp = CROSS_GxICR(irq, irq_affinity_online[irq]);  	} @@ -366,11 +367,11 @@ void migrate_irqs(void)  		if (irqd_is_per_cpu(data))  			continue; -		if (cpu_isset(self, data->affinity) && -		    !cpus_intersects(irq_affinity[irq], cpu_online_map)) { +		if (cpumask_test_cpu(self, &data->affinity) && +		    !cpumask_intersects(&irq_affinity[irq], cpu_online_mask)) {  			int cpu_id; -			cpu_id = first_cpu(cpu_online_map); -			cpu_set(cpu_id, data->affinity); +			cpu_id = cpumask_first(cpu_online_mask); +			cpumask_set_cpu(cpu_id, &data->affinity);  		}  		/* We need to operate irq_affinity_online atomically. */  		arch_local_cli_save(flags); @@ -381,7 +382,8 @@ void migrate_irqs(void)  			GxICR(irq) = x & GxICR_LEVEL;  			tmp = GxICR(irq); -			new = any_online_cpu(data->affinity); +			new = cpumask_any_and(&data->affinity, +					      cpu_online_mask);  			irq_affinity_online[irq] = new;  			CROSS_GxICR(irq, new) =  |