Messages in this thread | | | Date | Mon, 31 Aug 2009 17:27:32 -0700 | From | "H. Peter Anvin" <> | Subject | Re: The msr_safe functions and returning -EFAULT |
| |
On 08/31/2009 05:24 PM, Jeremy Fitzhardinge wrote: > On 08/30/09 14:05, H. Peter Anvin wrote: >> Right now, the *msr_safe() functions are returning -EFAULT. As far as I >> can tell, this makes absolutely no sense -- EFAULT is a nonsensical >> error (it means a pointer into user memory given to a system call is >> invalid), and the only user that seems to use this as anything other >> than a boolean is the MSR driver, which wants EIO. >> >> Sending out an email in case I have missed any instances, but I'm >> inclined to just change this to EIO globally. >> >> Anyone has objections? >> > > I think the only rationale for EFAULT is that the *msr will fail with > GP, and a GPing instruction will send a SIGSEGV to usermode, and EFAULT > is the synchronous error-code equiv of SIGSEGV. Sorta. > > EIO makes more sense overall. Or ENXIO.
Well, EIO is what we want for the MSR driver, so I have just switched it to EIO across the board. As far as I can tell, there were no other users that didn't just test for error or no error.
-hpa
| |