diff options
| -rw-r--r-- | drivers/hv/channel_mgmt.c | 2 | ||||
| -rw-r--r-- | drivers/hv/hv.c | 5 | ||||
| -rw-r--r-- | drivers/hv/vmbus_drv.c | 11 |
3 files changed, 10 insertions, 8 deletions
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c index 53a8600162a5..ff1be167eb04 100644 --- a/drivers/hv/channel_mgmt.c +++ b/drivers/hv/channel_mgmt.c | |||
| @@ -318,7 +318,7 @@ static u32 get_vp_index(uuid_le *type_guid) | |||
| 318 | return 0; | 318 | return 0; |
| 319 | } | 319 | } |
| 320 | cur_cpu = (++next_vp % max_cpus); | 320 | cur_cpu = (++next_vp % max_cpus); |
| 321 | return 0; | 321 | return cur_cpu; |
| 322 | } | 322 | } |
| 323 | 323 | ||
| 324 | /* | 324 | /* |
diff --git a/drivers/hv/hv.c b/drivers/hv/hv.c index 1c5481da6e4a..731158910c1e 100644 --- a/drivers/hv/hv.c +++ b/drivers/hv/hv.c | |||
| @@ -272,7 +272,7 @@ u16 hv_signal_event(void *con_id) | |||
| 272 | * retrieve the initialized message and event pages. Otherwise, we create and | 272 | * retrieve the initialized message and event pages. Otherwise, we create and |
| 273 | * initialize the message and event pages. | 273 | * initialize the message and event pages. |
| 274 | */ | 274 | */ |
| 275 | void hv_synic_init(void *irqarg) | 275 | void hv_synic_init(void *arg) |
| 276 | { | 276 | { |
| 277 | u64 version; | 277 | u64 version; |
| 278 | union hv_synic_simp simp; | 278 | union hv_synic_simp simp; |
| @@ -281,7 +281,6 @@ void hv_synic_init(void *irqarg) | |||
| 281 | union hv_synic_scontrol sctrl; | 281 | union hv_synic_scontrol sctrl; |
| 282 | u64 vp_index; | 282 | u64 vp_index; |
| 283 | 283 | ||
| 284 | u32 irq_vector = *((u32 *)(irqarg)); | ||
| 285 | int cpu = smp_processor_id(); | 284 | int cpu = smp_processor_id(); |
| 286 | 285 | ||
| 287 | if (!hv_context.hypercall_page) | 286 | if (!hv_context.hypercall_page) |
| @@ -335,7 +334,7 @@ void hv_synic_init(void *irqarg) | |||
| 335 | rdmsrl(HV_X64_MSR_SINT0 + VMBUS_MESSAGE_SINT, shared_sint.as_uint64); | 334 | rdmsrl(HV_X64_MSR_SINT0 + VMBUS_MESSAGE_SINT, shared_sint.as_uint64); |
| 336 | 335 | ||
| 337 | shared_sint.as_uint64 = 0; | 336 | shared_sint.as_uint64 = 0; |
| 338 | shared_sint.vector = irq_vector; /* HV_SHARED_SINT_IDT_VECTOR + 0x20; */ | 337 | shared_sint.vector = HYPERVISOR_CALLBACK_VECTOR; |
| 339 | shared_sint.masked = false; | 338 | shared_sint.masked = false; |
| 340 | shared_sint.auto_eoi = true; | 339 | shared_sint.auto_eoi = true; |
| 341 | 340 | ||
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c index cf19dfa5ead1..bf421e0efa1e 100644 --- a/drivers/hv/vmbus_drv.c +++ b/drivers/hv/vmbus_drv.c | |||
| @@ -36,6 +36,7 @@ | |||
| 36 | #include <linux/kernel_stat.h> | 36 | #include <linux/kernel_stat.h> |
| 37 | #include <asm/hyperv.h> | 37 | #include <asm/hyperv.h> |
| 38 | #include <asm/hypervisor.h> | 38 | #include <asm/hypervisor.h> |
| 39 | #include <asm/mshyperv.h> | ||
| 39 | #include "hyperv_vmbus.h" | 40 | #include "hyperv_vmbus.h" |
| 40 | 41 | ||
| 41 | 42 | ||
| @@ -528,7 +529,6 @@ static void vmbus_flow_handler(unsigned int irq, struct irq_desc *desc) | |||
| 528 | static int vmbus_bus_init(int irq) | 529 | static int vmbus_bus_init(int irq) |
| 529 | { | 530 | { |
| 530 | int ret; | 531 | int ret; |
| 531 | unsigned int vector; | ||
| 532 | 532 | ||
| 533 | /* Hypervisor initialization...setup hypercall page..etc */ | 533 | /* Hypervisor initialization...setup hypercall page..etc */ |
| 534 | ret = hv_init(); | 534 | ret = hv_init(); |
| @@ -558,13 +558,16 @@ static int vmbus_bus_init(int irq) | |||
| 558 | */ | 558 | */ |
| 559 | irq_set_handler(irq, vmbus_flow_handler); | 559 | irq_set_handler(irq, vmbus_flow_handler); |
| 560 | 560 | ||
| 561 | vector = IRQ0_VECTOR + irq; | 561 | /* |
| 562 | * Register our interrupt handler. | ||
| 563 | */ | ||
| 564 | hv_register_vmbus_handler(irq, vmbus_isr); | ||
| 562 | 565 | ||
| 563 | /* | 566 | /* |
| 564 | * Notify the hypervisor of our irq and | 567 | * Initialize the per-cpu interrupt state and |
| 565 | * connect to the host. | 568 | * connect to the host. |
| 566 | */ | 569 | */ |
| 567 | on_each_cpu(hv_synic_init, (void *)&vector, 1); | 570 | on_each_cpu(hv_synic_init, NULL, 1); |
| 568 | ret = vmbus_connect(); | 571 | ret = vmbus_connect(); |
| 569 | if (ret) | 572 | if (ret) |
| 570 | goto err_irq; | 573 | goto err_irq; |
