Michael Kelley (LINUX)
2022-Apr-15 14:30 UTC
[RFC PATCH 4/6] hv_sock: Initialize send_buf in hvs_stream_enqueue()
From: Andrea Parri <parri.andrea at gmail.com> Sent: Thursday, April 14, 2022 11:51 PM> > > > @@ -655,7 +655,7 @@ static ssize_t hvs_stream_enqueue(struct vsock_sock *vsk, > > > struct msghdr *msg, > > > > > > BUILD_BUG_ON(sizeof(*send_buf) != HV_HYP_PAGE_SIZE); > > > > > > - send_buf = kmalloc(sizeof(*send_buf), GFP_KERNEL); > > > + send_buf = kzalloc(sizeof(*send_buf), GFP_KERNEL); > > > > Is this change really needed? > > The idea was... > > > > All fields are explicitly initialized, and in the data > > array, only the populated bytes are copied to the ring buffer. There should not > > be any uninitialized values sent to the host. Zeroing the memory ahead of > > time certainly provides an extra protection (particularly against padding bytes, > > but there can't be any since the layout of the data is part of the protocol with > > Hyper-V). > > Rather than keeping checking that...The extra protection might be obtained by just zero'ing the header (i.e., the bytes up to the 16 Kbyte data array). I don't have a strong preference either way, so up to you. Michael> > > > It is expensive protection to zero out 16K+ bytes every time we send > > out a small message. > > Do this. ;-) > > Will drop the patch. > > Thanks, > Andrea