git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
arch
/
arm
/
kernel
/
irq.c
diff --git
a/arch/arm/kernel/irq.c
b/arch/arm/kernel/irq.c
index
4b9757f
..
ec01f08
100644
(file)
--- a/
arch/arm/kernel/irq.c
+++ b/
arch/arm/kernel/irq.c
@@
-37,7
+37,6
@@
#include <linux/list.h>
#include <linux/kallsyms.h>
#include <linux/proc_fs.h>
#include <linux/list.h>
#include <linux/kallsyms.h>
#include <linux/proc_fs.h>
-#include <linux/vs_context.h>
#include <asm/system.h>
#include <asm/mach/time.h>
#include <asm/system.h>
#include <asm/mach/time.h>
@@
-112,8
+111,8
@@
static struct irq_desc bad_irq_desc = {
*/
asmlinkage void asm_do_IRQ(unsigned int irq, struct pt_regs *regs)
{
*/
asmlinkage void asm_do_IRQ(unsigned int irq, struct pt_regs *regs)
{
- struct
irqdesc *desc = irq_desc + irq
;
- struct
vx_info_save vxis
;
+ struct
pt_regs *old_regs = set_irq_regs(regs)
;
+ struct
irq_desc *desc = irq_desc + irq
;
/*
* Some hardware gives randomly wrong interrupts. Rather
/*
* Some hardware gives randomly wrong interrupts. Rather
@@
-123,18
+122,19
@@
asmlinkage void asm_do_IRQ(unsigned int irq, struct pt_regs *regs)
desc = &bad_irq_desc;
irq_enter();
desc = &bad_irq_desc;
irq_enter();
- __enter_vx_admin(&vxis);
- desc_handle_irq(irq, desc
, regs
);
+
+ desc_handle_irq(irq, desc);
/* AT91 specific workaround */
irq_finish(irq);
/* AT91 specific workaround */
irq_finish(irq);
- __leave_vx_admin(&vxis);
+
irq_exit();
irq_exit();
+ set_irq_regs(old_regs);
}
void set_irq_flags(unsigned int irq, unsigned int iflags)
{
}
void set_irq_flags(unsigned int irq, unsigned int iflags)
{
- struct irqdesc *desc;
+ struct irq
_
desc *desc;
unsigned long flags;
if (irq >= NR_IRQS) {
unsigned long flags;
if (irq >= NR_IRQS) {
@@
-171,7
+171,7
@@
void __init init_IRQ(void)
#ifdef CONFIG_HOTPLUG_CPU
#ifdef CONFIG_HOTPLUG_CPU
-static void route_irq(struct irqdesc *desc, unsigned int irq, unsigned int cpu)
+static void route_irq(struct irq
_
desc *desc, unsigned int irq, unsigned int cpu)
{
pr_debug("IRQ%u: moving from cpu%u to cpu%u\n", irq, desc->cpu, cpu);
{
pr_debug("IRQ%u: moving from cpu%u to cpu%u\n", irq, desc->cpu, cpu);
@@
-190,7
+190,7
@@
void migrate_irqs(void)
unsigned int i, cpu = smp_processor_id();
for (i = 0; i < NR_IRQS; i++) {
unsigned int i, cpu = smp_processor_id();
for (i = 0; i < NR_IRQS; i++) {
- struct irqdesc *desc = irq_desc + i;
+ struct irq
_
desc *desc = irq_desc + i;
if (desc->cpu == cpu) {
unsigned int newcpu = any_online_cpu(desc->affinity);
if (desc->cpu == cpu) {
unsigned int newcpu = any_online_cpu(desc->affinity);