Re: [PATCH 5/5] Drivers: hv: vmbus: Implement the protocol for tearing down vmbus state

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



KY Srinivasan <kys@xxxxxxxxxxxxx> writes:

>> -----Original Message-----
>> From: Vitaly Kuznetsov [mailto:vkuznets@xxxxxxxxxx]
>> Sent: Monday, April 20, 2015 2:40 AM
>> To: KY Srinivasan
>> Cc: gregkh@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
>> devel@xxxxxxxxxxxxxxxxxxxxxx; olaf@xxxxxxxxx; apw@xxxxxxxxxxxxx;
>> jasowang@xxxxxxxxxx
>> Subject: Re: [PATCH 5/5] Drivers: hv: vmbus: Implement the protocol for
>> tearing down vmbus state
>> 
>> "K. Y. Srinivasan" <kys@xxxxxxxxxxxxx> writes:
>> 
>> > Implement the protocol for tearing down the monitor state established
>> with
>> > the host.
>> >
>> > Signed-off-by: K. Y. Srinivasan <kys@xxxxxxxxxxxxx>
>> 
>> Unfortunatelly this patch leads to the following crash:
>
> Thanks for testing Vitaly. The unload handling is what we want, maybe I need to
> Invoke unload a little earlier.

I actually sent two letters this morning :-) The other was:

The problem is that we call vmbus_disconnect() too late in
vmbus_exit(). We need to call it:
1) Before hv_cleanup() call as we free hypercall page there (that's what
you see in my crash)
2) Before hv_remove_vmbus_irq() as we're waiting for the hypervisor to
reply.

This simple patch fixes the issue:
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
index 7870a90..2b56260 100644
--- a/drivers/hv/vmbus_drv.c
+++ b/drivers/hv/vmbus_drv.c
@@ -1106,6 +1106,7 @@ static void __exit vmbus_exit(void)

        vmbus_connection.conn_state = DISCONNECTED;
        hv_synic_clockevents_cleanup();
+       vmbus_disconnect();
        hv_remove_vmbus_irq();
        vmbus_free_channels();
        if (ms_hyperv.features & HV_FEATURE_GUEST_CRASH_MSR_AVAILABLE) {
@@ -1118,7 +1119,6 @@ static void __exit vmbus_exit(void)
                smp_call_function_single(cpu, hv_synic_cleanup, NULL,
        1);
        acpi_bus_unregister_driver(&vmbus_acpi_driver);
        hv_cpu_hotplug_quirk(false);
-       vmbus_disconnect();
 }

I suggest we incorporate it into your PATCH 5/5.

-- 
  Vitaly
_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel




[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux