diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/fork.c | 1 | ||||
-rw-r--r-- | kernel/irq/spurious.c | 6 |
2 files changed, 6 insertions, 1 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index 3da978eec791..4b4eab2a3161 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
@@ -687,6 +687,7 @@ static struct files_struct *dup_fd(struct files_struct *oldf, int *errorp) | |||
687 | * the latest pointer. | 687 | * the latest pointer. |
688 | */ | 688 | */ |
689 | spin_lock(&oldf->file_lock); | 689 | spin_lock(&oldf->file_lock); |
690 | open_files = count_open_files(old_fdt); | ||
690 | old_fdt = files_fdtable(oldf); | 691 | old_fdt = files_fdtable(oldf); |
691 | } | 692 | } |
692 | 693 | ||
diff --git a/kernel/irq/spurious.c b/kernel/irq/spurious.c index 543ea2e5ad93..9c7e2e4c1fe7 100644 --- a/kernel/irq/spurious.c +++ b/kernel/irq/spurious.c | |||
@@ -147,7 +147,11 @@ void note_interrupt(unsigned int irq, struct irq_desc *desc, | |||
147 | if (unlikely(irqfixup)) { | 147 | if (unlikely(irqfixup)) { |
148 | /* Don't punish working computers */ | 148 | /* Don't punish working computers */ |
149 | if ((irqfixup == 2 && irq == 0) || action_ret == IRQ_NONE) { | 149 | if ((irqfixup == 2 && irq == 0) || action_ret == IRQ_NONE) { |
150 | int ok = misrouted_irq(irq); | 150 | int ok; |
151 | |||
152 | spin_unlock(&desc->lock); | ||
153 | ok = misrouted_irq(irq); | ||
154 | spin_lock(&desc->lock); | ||
151 | if (action_ret == IRQ_NONE) | 155 | if (action_ret == IRQ_NONE) |
152 | desc->irqs_unhandled -= ok; | 156 | desc->irqs_unhandled -= ok; |
153 | } | 157 | } |