Re: [PATCH 1/3] Drivers: hv: Make portions of Hyper-V init code be arch neutral

From: Wei Liu
Date: Mon Jul 12 2021 - 14:51:15 EST


On Mon, Jul 12, 2021 at 06:41:21PM +0000, Michael Kelley wrote:
> From: Wei Liu <wei.liu@xxxxxxxxxx> Sent: Monday, July 12, 2021 11:24 AM
> >
> > On Sun, Jul 11, 2021 at 08:25:14PM -0700, Michael Kelley wrote:
> > [...]
> > > +int hv_common_cpu_init(unsigned int cpu)
> > > +{
> > > + void **inputarg, **outputarg;
> > > + u64 msr_vp_index;
> > > + gfp_t flags;
> > > + int pgcount = hv_root_partition ? 2 : 1;
> > > +
> > > + /* hv_cpu_init() can be called with IRQs disabled from hv_resume() */
> > > + flags = irqs_disabled() ? GFP_ATOMIC : GFP_KERNEL;
> > > +
> > > + inputarg = (void **)this_cpu_ptr(hyperv_pcpu_input_arg);
> > > + *inputarg = kmalloc(pgcount * HV_HYP_PAGE_SIZE, flags);
> >
> > This is changed from alloc_pages to kmalloc. Does it ensure the
> > alignment is still correct?
> >
> > Wei.
>
> It does. The alignment guarantee made by kmalloc() was changed a
> couple of years ago. See commit 59bb47985c1d. Here's the current text
> from the comments preceding kmalloc():
>
> * The allocated object address is aligned to at least ARCH_KMALLOC_MINALIGN
> * bytes. For @size of power of two bytes, the alignment is also guaranteed
> * to be at least to the size.

OK. That's good.

Wei.

>
> Michael
>