kernel-fxtec-pro1x/drivers/hv
Vitaly Kuznetsov 415719160d Drivers: hv: vmbus: avoid scheduling in interrupt context in vmbus_initiate_unload()
We have to call vmbus_initiate_unload() on crash to make kdump work but
the crash can also be happening in interrupt (e.g. Sysrq + c results in
such) where we can't schedule or the following will happen:

[  314.905786] bad: scheduling from the idle thread!

Just skipping the wait (and even adding some random wait here) won't help:
to make host-side magic working we're supposed to receive CHANNELMSG_UNLOAD
(and actually confirm the fact that we received it) but we can't use
interrupt-base path (vmbus_isr()-> vmbus_on_msg_dpc()). Implement a simple
busy wait ignoring all the other messages and use it if we're in an
interrupt context.

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>
2016-02-07 21:34:12 -08:00
..
channel.c Drivers: hv: ring_buffer: eliminate hv_ringbuffer_peek() 2015-12-14 19:27:30 -08:00
channel_mgmt.c Drivers: hv: vmbus: avoid scheduling in interrupt context in vmbus_initiate_unload() 2016-02-07 21:34:12 -08:00
connection.c Drivers: hv: vmbus: Cleanup vmbus_set_event() 2016-02-07 21:32:57 -08:00
hv.c Drivers: hv: vmbus: Cleanup vmbus_set_event() 2016-02-07 21:32:57 -08:00
hv_balloon.c Drivers: hv: balloon: Enable dynamic memory protocol negotiation with Windows 10 hosts 2015-08-04 22:28:39 -07:00
hv_fcopy.c Drivers: hv: utils: run polling callback always in interrupt context 2015-12-14 19:12:21 -08:00
hv_kvp.c Drivers: hv: utils: Invoke the poll function after handshake 2015-12-14 19:15:05 -08:00
hv_snapshot.c Drivers: hv: utils: Invoke the poll function after handshake 2015-12-14 19:15:05 -08: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: utils: fix hvt_op_poll() return value on transport destroy 2015-12-21 13:14:56 -08:00
hv_utils_transport.h Drivers: hv: utils: introduce HVUTIL_TRANSPORT_DESTROY mode 2015-12-14 19:27:30 -08:00
hyperv_vmbus.h Drivers: hv: vmbus: Cleanup vmbus_set_event() 2016-02-07 21:32:57 -08:00
Kconfig
Makefile Drivers: hv: util: introduce hv_utils_transport abstraction 2015-05-24 12:17:41 -07:00
ring_buffer.c Drivers: hv: ring_buffer: eliminate hv_ringbuffer_peek() 2015-12-14 19:27:30 -08:00
vmbus_drv.c Drivers: hv: vmbus: Add vendor and device atttributes 2016-02-07 21:32:57 -08:00