Thanks, Dexuan.

Reading the specification I believe I found the problem. The original
implementation is assuming the entire hv_vp_set structure is variable
and it's passing `nr_bank + 2` as variable header size for
hv_do_rep_hypercall().

However the specification states:

"Since the fixed header size is implicit, instead of supplying the total
header size, only the variable portion is supplied in the input
controls."

Based on that, the first two fields in hv_vp_set should not be
considered for the variable header size and `nr_bank` should be used
instead of `nr_bank + 2`.

I'm attaching the backport for the 3 upstream commits plus a forth patch
with that fix. I also built a kernel with those patches for testing
purposes and it can be downloaded from:

http://kernel.ubuntu.com/~mhcerri/azure/lp1719045-fix/

I was able to restart dockerd with this kernel hundred of times without
any problem.

Let me know if the solution seems reasonable for you. Once that is
tested I will submit the fix upstream.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1719045

Title:
  [Hyper-V] Docker failures with linux-azure 4.11.0-1011

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-azure/+bug/1719045/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to