On Thu, Jan 20, 2022 at 04:20:52AM +0800, Yanming Liu wrote: > Commit adae1e931acd ("Drivers: hv: vmbus: Copy packets sent by Hyper-V > out of the ring buffer") introduced a notion of maximum packet size in > vmbus channel and used that size to initialize a buffer holding all > incoming packet along with their vmbus packet header. hv_balloon uses > the default maximum packet size VMBUS_DEFAULT_MAX_PKT_SIZE which matches > its maximum message size, however vmbus_open expects this size to also > include vmbus packet header. This leads to 4096 bytes > dm_unballoon_request messages being truncated to 4080 bytes. When the > driver tries to read next packet it starts from a wrong read_index, > receives garbage and prints a lot of "Unhandled message: type: > <garbage>" in dmesg. > > Allocate the buffer with HV_HYP_PAGE_SIZE more bytes to make room for > the header. > > Fixes: adae1e931acd ("Drivers: hv: vmbus: Copy packets sent by Hyper-V out of the ring buffer") > Suggested-by: Michael Kelley (LINUX) <mikelley@xxxxxxxxxxxxx> > Suggested-by: Andrea Parri (Microsoft) <parri.andrea@xxxxxxxxx> > Signed-off-by: Yanming Liu <yanminglr@xxxxxxxxx> Applied to hyperv-fixes. Thanks.