diff options
| author | Takashi Iwai <tiwai@suse.de> | 2012-01-31 15:13:14 +0100 | 
|---|---|---|
| committer | Takashi Iwai <tiwai@suse.de> | 2012-01-31 15:13:14 +0100 | 
| commit | ea51e5040e24eefe44d70bc654a237ca1f0225b0 (patch) | |
| tree | df2e5922dcdfafae62a10d8cd97f98121064fc23 /kernel/irq/manage.c | |
| parent | 3422a47041b8cb8f14ac1e3926bcf711121df6dc (diff) | |
| parent | 8dbd52daee38adaae4d5a674bcca837e694a4f4c (diff) | |
Merge branch 'fix/asoc' into for-linus
Diffstat (limited to 'kernel/irq/manage.c')
| -rw-r--r-- | kernel/irq/manage.c | 9 | 
1 files changed, 6 insertions, 3 deletions
| diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index 67ce837ae52c..a9a9dbe49fea 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c @@ -623,8 +623,9 @@ static irqreturn_t irq_nested_primary_handler(int irq, void *dev_id)  static int irq_wait_for_interrupt(struct irqaction *action)  { +	set_current_state(TASK_INTERRUPTIBLE); +  	while (!kthread_should_stop()) { -		set_current_state(TASK_INTERRUPTIBLE);  		if (test_and_clear_bit(IRQTF_RUNTHREAD,  				       &action->thread_flags)) { @@ -632,7 +633,9 @@ static int irq_wait_for_interrupt(struct irqaction *action)  			return 0;  		}  		schedule(); +		set_current_state(TASK_INTERRUPTIBLE);  	} +	__set_current_state(TASK_RUNNING);  	return -1;  } @@ -1289,7 +1292,7 @@ EXPORT_SYMBOL(free_irq);   *	and to set up the interrupt handler in the right order.   *   *	If you want to set up a threaded irq handler for your device - *	then you need to supply @handler and @thread_fn. @handler ist + *	then you need to supply @handler and @thread_fn. @handler is   *	still called in hard interrupt context and has to check   *	whether the interrupt originates from the device. If yes it   *	needs to disable the interrupt on the device and return @@ -1596,7 +1599,7 @@ int request_percpu_irq(unsigned int irq, irq_handler_t handler,  		return -ENOMEM;  	action->handler = handler; -	action->flags = IRQF_PERCPU; +	action->flags = IRQF_PERCPU | IRQF_NO_SUSPEND;  	action->name = devname;  	action->percpu_dev_id = dev_id; | 
