From 838a418fc39fe48559c3e6b64ab439e79a7d95a3 Mon Sep 17 00:00:00 2001 From: Richard Weinberger Date: Mon, 9 Aug 2010 17:20:14 -0700 Subject: [PATCH] --- yaml --- r: 207287 b: refs/heads/master c: 47562277348da533f120acf2b0d4ff82a9444a1f h: refs/heads/master i: 207285: 8f54eedad720601d9f54f7377084048ed04bedbd 207283: e9e2904a13b39065009217b8c264e62217e71b41 207279: 5339eaad51d3b49475251691b8bfabc88d139930 v: v3 --- [refs] | 2 +- trunk/arch/um/drivers/chan_kern.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 5e1a90182de2..455693edd337 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 71abbbf856a0e70ca478782505c800891260ba84 +refs/heads/master: 47562277348da533f120acf2b0d4ff82a9444a1f diff --git a/trunk/arch/um/drivers/chan_kern.c b/trunk/arch/um/drivers/chan_kern.c index 6e51424745ab..25e1965df7ce 100644 --- a/trunk/arch/um/drivers/chan_kern.c +++ b/trunk/arch/um/drivers/chan_kern.c @@ -210,9 +210,9 @@ void free_irqs(void) list_for_each(ele, &list) { chan = list_entry(ele, struct chan, free_list); - if (chan->input) + if (chan->input && chan->enabled) free_irq(chan->line->driver->read_irq, chan); - if (chan->output) + if (chan->output && chan->enabled) free_irq(chan->line->driver->write_irq, chan); chan->enabled = 0; } @@ -231,9 +231,9 @@ static void close_one_chan(struct chan *chan, int delay_free_irq) spin_unlock_irqrestore(&irqs_to_free_lock, flags); } else { - if (chan->input) + if (chan->input && chan->enabled) free_irq(chan->line->driver->read_irq, chan); - if (chan->output) + if (chan->output && chan->enabled) free_irq(chan->line->driver->write_irq, chan); chan->enabled = 0; }