Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

x86/msr: Standardize on 'u32' MSR indices in <asm/msr.h>

This is the customary type used for hardware ABIs.

Suggested-by: Xin Li <xin@zytor.com>
Suggested-by: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Juergen Gross <jgross@suse.com>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>

+16 -17
+14 -15
arch/x86/include/asm/msr.h
··· 63 63 DECLARE_TRACEPOINT(read_msr); 64 64 DECLARE_TRACEPOINT(write_msr); 65 65 DECLARE_TRACEPOINT(rdpmc); 66 - extern void do_trace_write_msr(unsigned int msr, u64 val, int failed); 67 - extern void do_trace_read_msr(unsigned int msr, u64 val, int failed); 66 + extern void do_trace_write_msr(u32 msr, u64 val, int failed); 67 + extern void do_trace_read_msr(u32 msr, u64 val, int failed); 68 68 extern void do_trace_rdpmc(u32 msr, u64 val, int failed); 69 69 #else 70 - static inline void do_trace_write_msr(unsigned int msr, u64 val, int failed) {} 71 - static inline void do_trace_read_msr(unsigned int msr, u64 val, int failed) {} 70 + static inline void do_trace_write_msr(u32 msr, u64 val, int failed) {} 71 + static inline void do_trace_read_msr(u32 msr, u64 val, int failed) {} 72 72 static inline void do_trace_rdpmc(u32 msr, u64 val, int failed) {} 73 73 #endif 74 74 ··· 79 79 * think of extending them - you will be slapped with a stinking trout or a frozen 80 80 * shark will reach you, wherever you are! You've been warned. 81 81 */ 82 - static __always_inline u64 __rdmsr(unsigned int msr) 82 + static __always_inline u64 __rdmsr(u32 msr) 83 83 { 84 84 DECLARE_ARGS(val, low, high); 85 85 ··· 91 91 return EAX_EDX_VAL(val, low, high); 92 92 } 93 93 94 - static __always_inline void __wrmsr(unsigned int msr, u32 low, u32 high) 94 + static __always_inline void __wrmsr(u32 msr, u32 low, u32 high) 95 95 { 96 96 asm volatile("1: wrmsr\n" 97 97 "2:\n" ··· 113 113 __wrmsr((msr), (u32)((u64)(val)), \ 114 114 (u32)((u64)(val) >> 32)) 115 115 116 - static inline u64 native_read_msr(unsigned int msr) 116 + static inline u64 native_read_msr(u32 msr) 117 117 { 118 118 u64 val; 119 119 ··· 125 125 return val; 126 126 } 127 127 128 - static inline u64 native_read_msr_safe(unsigned int msr, 129 - int *err) 128 + static inline u64 native_read_msr_safe(u32 msr, int *err) 130 129 { 131 130 DECLARE_ARGS(val, low, high); 132 131 ··· 141 142 142 143 /* Can be uninlined because referenced by paravirt */ 143 144 static inline void notrace 144 - native_write_msr(unsigned int msr, u32 low, u32 high) 145 + native_write_msr(u32 msr, u32 low, u32 high) 145 146 { 146 147 __wrmsr(msr, low, high); 147 148 ··· 151 152 152 153 /* Can be uninlined because referenced by paravirt */ 153 154 static inline int notrace 154 - native_write_msr_safe(unsigned int msr, u32 low, u32 high) 155 + native_write_msr_safe(u32 msr, u32 low, u32 high) 155 156 { 156 157 int err; 157 158 ··· 250 251 (void)((high) = (u32)(__val >> 32)); \ 251 252 } while (0) 252 253 253 - static inline void wrmsr(unsigned int msr, u32 low, u32 high) 254 + static inline void wrmsr(u32 msr, u32 low, u32 high) 254 255 { 255 256 native_write_msr(msr, low, high); 256 257 } ··· 258 259 #define rdmsrl(msr, val) \ 259 260 ((val) = native_read_msr((msr))) 260 261 261 - static inline void wrmsrl(unsigned int msr, u64 val) 262 + static inline void wrmsrl(u32 msr, u64 val) 262 263 { 263 264 native_write_msr(msr, (u32)(val & 0xffffffffULL), (u32)(val >> 32)); 264 265 } 265 266 266 267 /* wrmsr with exception handling */ 267 - static inline int wrmsr_safe(unsigned int msr, u32 low, u32 high) 268 + static inline int wrmsr_safe(u32 msr, u32 low, u32 high) 268 269 { 269 270 return native_write_msr_safe(msr, low, high); 270 271 } ··· 279 280 __err; \ 280 281 }) 281 282 282 - static inline int rdmsrl_safe(unsigned int msr, u64 *p) 283 + static inline int rdmsrl_safe(u32 msr, u64 *p) 283 284 { 284 285 int err; 285 286
+2 -2
arch/x86/lib/msr.c
··· 122 122 EXPORT_SYMBOL_GPL(msr_clear_bit); 123 123 124 124 #ifdef CONFIG_TRACEPOINTS 125 - void do_trace_write_msr(unsigned int msr, u64 val, int failed) 125 + void do_trace_write_msr(u32 msr, u64 val, int failed) 126 126 { 127 127 trace_write_msr(msr, val, failed); 128 128 } 129 129 EXPORT_SYMBOL(do_trace_write_msr); 130 130 EXPORT_TRACEPOINT_SYMBOL(write_msr); 131 131 132 - void do_trace_read_msr(unsigned int msr, u64 val, int failed) 132 + void do_trace_read_msr(u32 msr, u64 val, int failed) 133 133 { 134 134 trace_read_msr(msr, val, failed); 135 135 }