diff options
author | Ravikiran G Thirumalai <kiran@scalex86.org> | 2008-03-20 03:43:16 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-04-17 11:41:08 -0400 |
commit | 9f6d8552a9cb49dc556777bbdf7ac8b3d7e18edb (patch) | |
tree | cb659037f8391656804ab972033de1352fa0b22e | |
parent | aa7d8e25eca5deb33eb08013bc78a80514349b40 (diff) |
x86: vSMP: use pvops only if platform has the capability to support it
Re-arrange set_vsmp_pv_ops so that pv_ops are set only if
the platform has capability to support paravirtualized irq ops
Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r-- | arch/x86/kernel/vsmp_64.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/arch/x86/kernel/vsmp_64.c b/arch/x86/kernel/vsmp_64.c index 4a790a5f61b7..13bd82453e4b 100644 --- a/arch/x86/kernel/vsmp_64.c +++ b/arch/x86/kernel/vsmp_64.c | |||
@@ -78,12 +78,6 @@ static void __init set_vsmp_pv_ops(void) | |||
78 | void *address; | 78 | void *address; |
79 | unsigned int cap, ctl, cfg; | 79 | unsigned int cap, ctl, cfg; |
80 | 80 | ||
81 | pv_irq_ops.irq_disable = vsmp_irq_disable; | ||
82 | pv_irq_ops.irq_enable = vsmp_irq_enable; | ||
83 | pv_irq_ops.save_fl = vsmp_save_fl; | ||
84 | pv_irq_ops.restore_fl = vsmp_restore_fl; | ||
85 | pv_init_ops.patch = vsmp_patch; | ||
86 | |||
87 | /* set vSMP magic bits to indicate vSMP capable kernel */ | 81 | /* set vSMP magic bits to indicate vSMP capable kernel */ |
88 | cfg = read_pci_config(0, 0x1f, 0, PCI_BASE_ADDRESS_0); | 82 | cfg = read_pci_config(0, 0x1f, 0, PCI_BASE_ADDRESS_0); |
89 | address = early_ioremap(cfg, 8); | 83 | address = early_ioremap(cfg, 8); |
@@ -92,7 +86,13 @@ static void __init set_vsmp_pv_ops(void) | |||
92 | printk(KERN_INFO "vSMP CTL: capabilities:0x%08x control:0x%08x\n", | 86 | printk(KERN_INFO "vSMP CTL: capabilities:0x%08x control:0x%08x\n", |
93 | cap, ctl); | 87 | cap, ctl); |
94 | if (cap & ctl & (1 << 4)) { | 88 | if (cap & ctl & (1 << 4)) { |
95 | /* Turn on vSMP IRQ fastpath handling (see system.h) */ | 89 | /* Setup irq ops and turn on vSMP IRQ fastpath handling */ |
90 | pv_irq_ops.irq_disable = vsmp_irq_disable; | ||
91 | pv_irq_ops.irq_enable = vsmp_irq_enable; | ||
92 | pv_irq_ops.save_fl = vsmp_save_fl; | ||
93 | pv_irq_ops.restore_fl = vsmp_restore_fl; | ||
94 | pv_init_ops.patch = vsmp_patch; | ||
95 | |||
96 | ctl &= ~(1 << 4); | 96 | ctl &= ~(1 << 4); |
97 | writel(ctl, address + 4); | 97 | writel(ctl, address + 4); |
98 | ctl = readl(address + 4); | 98 | ctl = readl(address + 4); |