]> www.infradead.org Git - users/jedix/linux-maple.git/commit
Drivers: hv: kvp: fix IP Failover
authorVitaly Kuznetsov <vkuznets@redhat.com>
Sun, 1 May 2016 02:21:33 +0000 (19:21 -0700)
committerJack Vogel <jack.vogel@oracle.com>
Wed, 31 May 2017 02:49:58 +0000 (19:49 -0700)
commitffaaee927d91a58554bff1cf05c92dbd0aba741a
treed6697f00c9d30eadd8073a17f0265f85922483c3
parenta6541a5f8db07f1520855ef08f49651a58dbffaa
Drivers: hv: kvp: fix IP Failover

Hyper-V VMs can be replicated to another hosts and there is a feature to
set different IP for replicas, it is called 'Failover TCP/IP'. When
such guest starts Hyper-V host sends it KVP_OP_SET_IP_INFO message as soon
as we finish negotiation procedure. The problem is that it can happen (and
it actually happens) before userspace daemon connects and we reply with
HV_E_FAIL to the message. As there are no repetitions we fail to set the
requested IP.

Solve the issue by postponing our reply to the negotiation message till
userspace daemon is connected. We can't wait too long as there is a
host-side timeout (cca. 75 seconds) and if we fail to reply in this time
frame the whole KVP service will become inactive. The solution is not
ideal - if it takes userspace daemon more than 60 seconds to connect
IP Failover will still fail but I don't see a solution with our current
separation between kernel and userspace parts.

Other two modules (VSS and FCOPY) don't require such delay, leave them
untouched.

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>
Orabug: 25970637
(cherry picked from commit 4dbfc2e68004c60edab7e8fd26784383dd3ee9bc)
Signed-off-by: Jack Vogel <jack.vogel@oracle.com>
drivers/hv/hv_kvp.c
drivers/hv/hyperv_vmbus.h