]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
hv: change clockevents unbind tactics
authorVitaly Kuznetsov <vkuznets@redhat.com>
Sat, 3 Dec 2016 20:34:35 +0000 (12:34 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 6 Dec 2016 10:10:54 +0000 (11:10 +0100)
commit6ffc4b85358f6b7d252420cfa5862312cf5f83d8
tree9bc986f48eda08bc03c8e7f54a29090c727748d5
parentabd1026da4a7700a8db370947f75cd17b6ae6f76
hv: change clockevents unbind tactics

To get prepared to CPU offlining support we need co change the way how we
unbind clockevent devices. As one CPU may go online/offline multiple times
we need to bind it in hv_synic_init() and unbind it in hv_synic_cleanup().
There is an additional corner case: when we unload the module completely we
need to switch to some other clockevent mechanism before stopping VMBus or
we will hang. We can't call hv_synic_cleanup() before unloading VMBus as
we won't be able to send UNLOAD request and get a response so
hv_synic_clockevents_cleanup() has to live. Luckily, we can always call
clockevents_unbind_device(), even if it wasn't bound before and there is
no issue if we call it twice.

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>
drivers/hv/hv.c