Hi, I'd like to know a bit more.
This basic use of the msr device has worked for a very long time. I'm not saying there is not a problem, but if there is, it might be best to change the struct than to add this code.
Do you have some assembly code showing how it failed?
For example ... certainly, in user mode, why isn't the msr_t just a 64-bit number?
ron