linux/drivers/hv
Vitaly Kuznetsov 2517281d63 Drivers: hv: vmbus: add special kexec handler
When general-purpose kexec (not kdump) is being performed in Hyper-V guest
the newly booted kernel fails with an MCE error coming from the host. It
is the same error which was fixed in the "Drivers: hv: vmbus: Implement
the protocol for tearing down vmbus state" commit - monitor pages remain
special and when they're being written to (as the new kernel doesn't know
these pages are special) bad things happen. We need to perform some
minimalistic cleanup before booting a new kernel on kexec. To do so we
need to register a special machine_ops.shutdown handler to be executed
before the native_machine_shutdown(). Registering a shutdown notification
handler via the register_reboot_notifier() call is not sufficient as it
happens to early for our purposes. machine_ops is not being exported to
modules (and I don't think we want to export it) so let's do this in
mshyperv.c

The minimalistic cleanup consists of cleaning up clockevents, synic MSRs,
guest os id MSR, and hypercall MSR.

Kdump doesn't require all this stuff as it lives in a separate memory
space.

Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-08-04 22:25:29 -07:00
..
channel_mgmt.c Drivers: hv: vmbus: Implement NUMA aware CPU affinity for channels 2015-06-01 10:56:31 +09:00
channel.c Drivers: hv: vmbus: Allocate ring buffer memory in NUMA aware fashion 2015-06-12 16:58:33 -07:00
connection.c Drivers: hv: vmbus:Update preferred vmbus protocol version to windows 10. 2015-06-01 06:38:21 +09:00
hv_balloon.c Drivers: hv: balloon: check if ha_region_mutex was acquired in MEM_CANCEL_ONLINE case 2015-06-01 06:38:21 +09:00
hv_fcopy.c Drivers: hv: utils: unify driver registration reporting 2015-05-24 12:17:42 -07:00
hv_kvp.c Drivers: hv: utils: unify driver registration reporting 2015-05-24 12:17:42 -07:00
hv_snapshot.c Drivers: hv: utils: unify driver registration reporting 2015-05-24 12:17:42 -07:00
hv_util.c Drivers: hv: util: On device remove, close the channel after de-initializing the service 2015-03-01 19:31:02 -08:00
hv_utils_transport.c Drivers: hv: util: introduce hv_utils_transport abstraction 2015-05-24 12:17:41 -07:00
hv_utils_transport.h Drivers: hv: util: introduce hv_utils_transport abstraction 2015-05-24 12:17:41 -07:00
hv.c Drivers: hv: vmbus: remove hv_synic_free_cpu() call from hv_synic_cleanup() 2015-08-04 22:25:28 -07:00
hyperv_vmbus.h Drivers: hv: vmbus: Implement the protocol for tearing down vmbus state 2015-05-24 12:18:24 -07:00
Kconfig x86: Make Linux guest support optional 2013-03-04 13:14:25 -08:00
Makefile Drivers: hv: util: introduce hv_utils_transport abstraction 2015-05-24 12:17:41 -07:00
ring_buffer.c Drivers: hv: vmbus: Enable interrupt driven flow control 2014-09-23 23:31:22 -07:00
vmbus_drv.c Drivers: hv: vmbus: add special kexec handler 2015-08-04 22:25:29 -07:00