diff options
Diffstat (limited to 'arch/x86/kernel/irqinit.c')
| -rw-r--r-- | arch/x86/kernel/irqinit.c | 36 |
1 files changed, 6 insertions, 30 deletions
diff --git a/arch/x86/kernel/irqinit.c b/arch/x86/kernel/irqinit.c index ccf8ab54f31a..300883112e3d 100644 --- a/arch/x86/kernel/irqinit.c +++ b/arch/x86/kernel/irqinit.c | |||
| @@ -116,7 +116,7 @@ int vector_used_by_percpu_irq(unsigned int vector) | |||
| 116 | return 0; | 116 | return 0; |
| 117 | } | 117 | } |
| 118 | 118 | ||
| 119 | static void __init init_ISA_irqs(void) | 119 | void __init init_ISA_irqs(void) |
| 120 | { | 120 | { |
| 121 | int i; | 121 | int i; |
| 122 | 122 | ||
| @@ -140,8 +140,10 @@ static void __init init_ISA_irqs(void) | |||
| 140 | } | 140 | } |
| 141 | } | 141 | } |
| 142 | 142 | ||
| 143 | /* Overridden in paravirt.c */ | 143 | void __init init_IRQ(void) |
| 144 | void init_IRQ(void) __attribute__((weak, alias("native_init_IRQ"))); | 144 | { |
| 145 | x86_init.irqs.intr_init(); | ||
| 146 | } | ||
| 145 | 147 | ||
| 146 | static void __init smp_intr_init(void) | 148 | static void __init smp_intr_init(void) |
| 147 | { | 149 | { |
| @@ -213,32 +215,12 @@ static void __init apic_intr_init(void) | |||
| 213 | #endif | 215 | #endif |
| 214 | } | 216 | } |
| 215 | 217 | ||
| 216 | /** | ||
| 217 | * x86_quirk_pre_intr_init - initialisation prior to setting up interrupt vectors | ||
| 218 | * | ||
| 219 | * Description: | ||
| 220 | * Perform any necessary interrupt initialisation prior to setting up | ||
| 221 | * the "ordinary" interrupt call gates. For legacy reasons, the ISA | ||
| 222 | * interrupts should be initialised here if the machine emulates a PC | ||
| 223 | * in any way. | ||
| 224 | **/ | ||
| 225 | static void __init x86_quirk_pre_intr_init(void) | ||
| 226 | { | ||
| 227 | #ifdef CONFIG_X86_32 | ||
| 228 | if (x86_quirks->arch_pre_intr_init) { | ||
| 229 | if (x86_quirks->arch_pre_intr_init()) | ||
| 230 | return; | ||
| 231 | } | ||
| 232 | #endif | ||
| 233 | init_ISA_irqs(); | ||
| 234 | } | ||
| 235 | |||
| 236 | void __init native_init_IRQ(void) | 218 | void __init native_init_IRQ(void) |
| 237 | { | 219 | { |
| 238 | int i; | 220 | int i; |
| 239 | 221 | ||
| 240 | /* Execute any quirks before the call gates are initialised: */ | 222 | /* Execute any quirks before the call gates are initialised: */ |
| 241 | x86_quirk_pre_intr_init(); | 223 | x86_init.irqs.pre_vector_init(); |
| 242 | 224 | ||
| 243 | apic_intr_init(); | 225 | apic_intr_init(); |
| 244 | 226 | ||
| @@ -258,12 +240,6 @@ void __init native_init_IRQ(void) | |||
| 258 | 240 | ||
| 259 | #ifdef CONFIG_X86_32 | 241 | #ifdef CONFIG_X86_32 |
| 260 | /* | 242 | /* |
| 261 | * Call quirks after call gates are initialised (usually add in | ||
| 262 | * the architecture specific gates): | ||
| 263 | */ | ||
| 264 | x86_quirk_intr_init(); | ||
| 265 | |||
| 266 | /* | ||
| 267 | * External FPU? Set up irq13 if so, for | 243 | * External FPU? Set up irq13 if so, for |
| 268 | * original braindamaged IBM FERR coupling. | 244 | * original braindamaged IBM FERR coupling. |
| 269 | */ | 245 | */ |
