> +} > +EXPORT_SYMBOL_GPL(hv_do_fast_hypercall8); > + > + nit: Extra line, here and few other places > +u64 hv_get_vpreg(u32 msr) > +{ > + struct hv_get_vp_registers_input *input; > + struct hv_get_vp_registers_output *output; > + u64 result; It seems like the code is using both spaces and tabs to align variable names. Can we stick to one or the other, preferably spaces. > + > + /* > + * Allocate a power of 2 size so alignment to that size is > + * guaranteed, since the hypercall input and output areas > + * must not cross a page boundary. > + */ > + input = kzalloc(roundup_pow_of_two(sizeof(input->header) + > + sizeof(input->element[0])), GFP_ATOMIC); > + output = kmalloc(roundup_pow_of_two(sizeof(*output)), GFP_ATOMIC); > + Check for null from these malloc routines? Here and in other places. > + __hv_get_vpreg_128(msr, input, output); + * Linux-specific definitions for managing interactions with Microsoft's + * Hyper-V hypervisor. The definitions in this file are specific to + * the ARM64 architecture. See include/asm-generic/mshyperv.h for nit: Two space before 'See'. Here and in couple of other places.