On Wed, Feb 13, 2019 at 02:20:29AM +0000, Michael Kelley wrote: > From: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx> Sent: Tuesday, February 12, 2019 8:35 AM > > > > On Mon, Jan 28, 2019 at 09:49:32PM -0800, Maya Nakamura wrote: > > > On Sun, Jan 27, 2019 at 05:11:48AM +0000, Michael Kelley wrote: > > > > From: Maya Nakamura <m.maya.nakamura@xxxxxxxxx> Sent: Saturday, January 26, > > 2019 12:52 AM > > > > > > > > > > Remove a duplicate definition of VP set (hv_vp_set) and use the common > > > > > definition (hv_vpset) that is used in other places. > > > > > > > > > > Change the order of the members in struct hv_pcibus_device so that the > > > > > declaration of retarget_msi_interrupt_params is the last member. Struct > > > > > hv_vpset, which contains a flexible array, is nested two levels deep in > > > > > struct hv_pcibus_device via retarget_msi_interrupt_params. > > > > > > > > > > Add a comment that retarget_msi_interrupt_params should be the last member > > > > > of struct hv_pcibus_device. > > > > > > > > > > Signed-off-by: Maya Nakamura <m.maya.nakamura@xxxxxxxxx> > > > > > --- > > > > > Change in v2: > > > > > - None > > > > > > > > > > > > > Right -- there was no code change. But it's customary to note that > > > > you updated the commit message. > > > > > > > Thank you for your feedback. I will edit the change log in v3. > > > > > > > Reviewed-by: Michael Kelley <mikelley@xxxxxxxxxxxxx> > > > > Are you really sure there is no behavioural change ? What piece of > > code allocates hv_vpset.bank_contents[] memory with this patch applied ? > > > > I suspect the current code does not use hv_vpset for this specific > > reason, ie allocate struct hv_vp_set.masks array memory statically. > > > > There is indeed no behavior change. A full page of memory is > allocated in hv_pci_probe() so that we can be sure that the Hyper-V > hypercall arguments don't cross a page boundary. This page allows > more than enough space for the hv_vpset.bank_contents[] to grow > as needed (with one bit allocated in the masks for up to the limit > of 8192 CPUs allowed by Linux). A flexible array is used because > the hv_vpset structure is also used in some MMU hypercalls that > have two variable size arrays. I see, thanks for explaining. Lorenzo