From: Yi Sun <yi.y....@linux.intel.com> Sent: Friday, September 21, 2018 12:25 AM > + > +#define pr_fmt(fmt) "hv: " fmt
Other Hyper-V messages use "Hyper-V: " as the prefix, not "hv: ". Take a quick look at 'dmesg' output for reference. > + > +#include <linux/kernel_stat.h> > +#include <linux/spinlock.h> > +#include <linux/debugfs.h> > +#include <linux/log2.h> > +#include <linux/gfp.h> Some of these #includes look like they might be leftovers from some other code. Please check and see whether kernel_stat.h, debugsfs.h, log2.h, and gfp.h are actually needed. > +static void hv_qlock_wait(u8 *byte, u8 val) > +{ > + unsigned long msr_val; > + > + if (READ_ONCE(*byte) != val) > + return; > + > + /* > + * Read HV_X64_MSR_GUEST_IDLE MSR can trigger the guest's > + * transition to the idle power state which can be exited > + * by an IPI even if IF flag is disabled. > + */ > + if (ms_hyperv.features & HV_X64_MSR_GUEST_IDLE_AVAILABLE) I can't see a case where this test is actually needed. hv_qlock_wait() can only get called if the flag is set when hv_init_spinlocks() is run, and the flag value doesn't change after it is set. > + rdmsrl(HV_X64_MSR_GUEST_IDLE, msr_val); > +} Michael