> -----Original Message----- > From: Vitaly Kuznetsov [mailto:vkuznets@xxxxxxxxxx] > Sent: Monday, April 20, 2015 7:17 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 > > 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. Thank you; I will resend the patch with your fix. Regards, K. Y > > -- > Vitaly _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel