[v2 5/7] x86: Add emulation code for UMIP instructions

Andy Lutomirski luto at amacapital.net
Fri Dec 30 20:07:44 CST 2016


On Thu, Dec 29, 2016 at 9:23 PM, Ricardo Neri
<ricardo.neri-calderon at linux.intel.com> wrote:
> On Tue, 2016-12-27 at 16:48 -0800, Andy Lutomirski wrote:
>>
>> >> > +               if (nr_copied  > 0)
>> >> > +                       return -EFAULT;
>> >>
>> >> This should be the only EFAULT case.
>> > Should this be EFAULT event if the caller cares only about successful
>> > (return 0) vs failed (return non-0) emulation?
>>
>> In theory this particular error would be a page fault not a general
>> protection fault (in the UMIP off case).  If you were emulating it
>> extra carefully, you could change the signal accordingly.  But, as I
>> said, I really doubt this matters.
>
> If simple enough and for the sake of accuracy, I could try to issue the
> page fault. It seems to me that this entitles calling
> force_sig_info_fault in this particular case as opposed to the
> force_sig_info(SIGSEGV, SEND_SIG_PRIV, tsk) that do_general_protection
> calls.

Sure.  You could even do it by sending the signal in the emulation
code and returning true.

--Andy



More information about the wine-devel mailing list