+}
+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.