diff options
Diffstat (limited to 'kernel/time/tick-common.c')
| -rw-r--r-- | kernel/time/tick-common.c | 14 | 
1 files changed, 6 insertions, 8 deletions
| diff --git a/kernel/time/tick-common.c b/kernel/time/tick-common.c index 4f3886562b8c..80c4336f4188 100644 --- a/kernel/time/tick-common.c +++ b/kernel/time/tick-common.c @@ -135,7 +135,7 @@ void tick_setup_periodic(struct clock_event_device *dev, int broadcast)   */  static void tick_setup_device(struct tick_device *td,  			      struct clock_event_device *newdev, int cpu, -			      cpumask_t cpumask) +			      const cpumask_t *cpumask)  {  	ktime_t next_event;  	void (*handler)(struct clock_event_device *) = NULL; @@ -169,8 +169,8 @@ static void tick_setup_device(struct tick_device *td,  	 * When the device is not per cpu, pin the interrupt to the  	 * current cpu:  	 */ -	if (!cpus_equal(newdev->cpumask, cpumask)) -		irq_set_affinity(newdev->irq, cpumask); +	if (!cpus_equal(newdev->cpumask, *cpumask)) +		irq_set_affinity(newdev->irq, *cpumask);  	/*  	 * When global broadcasting is active, check if the current @@ -196,7 +196,6 @@ static int tick_check_new_device(struct clock_event_device *newdev)  	struct tick_device *td;  	int cpu, ret = NOTIFY_OK;  	unsigned long flags; -	cpumask_t cpumask;  	spin_lock_irqsave(&tick_device_lock, flags); @@ -206,10 +205,9 @@ static int tick_check_new_device(struct clock_event_device *newdev)  	td = &per_cpu(tick_cpu_device, cpu);  	curdev = td->evtdev; -	cpumask = cpumask_of_cpu(cpu);  	/* cpu local device ? */ -	if (!cpus_equal(newdev->cpumask, cpumask)) { +	if (!cpus_equal(newdev->cpumask, cpumask_of_cpu(cpu))) {  		/*  		 * If the cpu affinity of the device interrupt can not @@ -222,7 +220,7 @@ static int tick_check_new_device(struct clock_event_device *newdev)  		 * If we have a cpu local device already, do not replace it  		 * by a non cpu local device  		 */ -		if (curdev && cpus_equal(curdev->cpumask, cpumask)) +		if (curdev && cpus_equal(curdev->cpumask, cpumask_of_cpu(cpu)))  			goto out_bc;  	} @@ -254,7 +252,7 @@ static int tick_check_new_device(struct clock_event_device *newdev)  		curdev = NULL;  	}  	clockevents_exchange_device(curdev, newdev); -	tick_setup_device(td, newdev, cpu, cpumask); +	tick_setup_device(td, newdev, cpu, &cpumask_of_cpu(cpu));  	if (newdev->features & CLOCK_EVT_FEAT_ONESHOT)  		tick_oneshot_notify(); | 
