On Tue, 28 Mar 2017, kan.li...@intel.com wrote: > From: Kan Liang <kan.li...@intel.com> > > There is no exported kernel interfaces which can flip a MSR bit. It has > to do read-modify-write operation on the MSR through rd/wrmsr* > interfaces. But the method is not atomic. > > There is already __flip_bit support. Just rename and expose it.
This function is not atomic either. Protection has to be provided by the caller. > -static inline int __flip_bit(u32 msr, u8 bit, bool set) > +int msr_flip_bit(u32 msr, u8 bit, bool set) > { > struct msr m, m1; > int err = -EINVAL; > @@ -85,6 +85,7 @@ static inline int __flip_bit(u32 msr, u8 bit, bool set) > > return 1; > } > +EXPORT_SYMBOL_GPL(msr_flip_bit); That export is not required. The call site is always built in. Thanks, tglx