On Thu, Dec 29, 2016 at 9:23 PM, Ricardo Neri ricardo.neri-calderon@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