diff options
Diffstat (limited to 'arch/x86/kernel/apb_timer.c')
| -rw-r--r-- | arch/x86/kernel/apb_timer.c | 14 | 
1 files changed, 8 insertions, 6 deletions
diff --git a/arch/x86/kernel/apb_timer.c b/arch/x86/kernel/apb_timer.c index 7c9ab59653e8..51ef31a89be9 100644 --- a/arch/x86/kernel/apb_timer.c +++ b/arch/x86/kernel/apb_timer.c @@ -313,14 +313,16 @@ static void apbt_setup_irq(struct apbt_dev *adev)  	if (adev->irq == 0)  		return; +	irq_modify_status(adev->irq, 0, IRQ_MOVE_PCNTXT); +	irq_set_affinity(adev->irq, cpumask_of(adev->cpu)); +	/* APB timer irqs are set up as mp_irqs, timer is edge type */ +	__set_irq_handler(adev->irq, handle_edge_irq, 0, "edge"); +  	if (system_state == SYSTEM_BOOTING) { -		irq_modify_status(adev->irq, 0, IRQ_MOVE_PCNTXT); -		irq_set_affinity(adev->irq, cpumask_of(adev->cpu)); -		/* APB timer irqs are set up as mp_irqs, timer is edge type */ -		__set_irq_handler(adev->irq, handle_edge_irq, 0, "edge");  		if (request_irq(adev->irq, apbt_interrupt_handler, -				IRQF_TIMER | IRQF_DISABLED | IRQF_NOBALANCING, -				adev->name, adev)) { +					IRQF_TIMER | IRQF_DISABLED | +					IRQF_NOBALANCING, +					adev->name, adev)) {  			printk(KERN_ERR "Failed request IRQ for APBT%d\n",  			       adev->num);  		}  | 
