Re: [v6 PATCH 00/21] x86: Enable User-Mode Instruction Prevention

Stas Sergeev <[email protected]>
Newsgroups gmane.linux.msdos.general,gmane.linux.kernel,gmane.comp.emulators.wine.devel
Message-ID <[email protected]>
11.03.2017 02:59, Ricardo Neri пишет:
> On Fri, 2017-03-10 at 14:33 +0300, Stas Sergeev wrote:
>
>> Why would you need one?
>> Or do you really want to allow these instructions
>> in v86 by the means of emulation? If so - this wasn't
>> clearly stated in the patch description, neither it was
>> properly discussed, it seems.
> It str and sldt can be emulated in vm86 but as Andy mention, the
> behavior sould be the same with and without emulation.
Why would you do that?
I looked up the dosemu2 CPU simulator code that
is used under x86-64. It says this:
---
                                     CODE_FLUSH();
                                     if (REALMODE()) goto illegal_op;
                                     PC += ModRMSim(PC+1, mode) + 1;
                                     error("SLDT not implemented\n");
                                     break;
                                 case 1: /* STR */
                                     /* Store Task Register */
                                     CODE_FLUSH();
                                     if (REALMODE()) goto illegal_op;
                                     PC += ModRMSim(PC+1, mode) + 1;
                                     error("STR not implemented\n");
                                     break;
...
                                 case 0: /* SGDT */
                                     /* Store Global Descriptor Table 
Register */
                                     PC++; PC += ModRM(opc, PC, 
mode|DATA16|MSTORE);
                                     error("SGDT not implemented\n");
                                     break;
                                 case 1: /* SIDT */
                                     /* Store Interrupt Descriptor Table 
Register */
                                     PC++; PC += ModRM(opc, PC, 
mode|DATA16|MSTORE);
                                     error("SIDT not implemented\n");
                                     break;
---

It only implements smsw.
So maybe you can make your code much
simpler and remove the unneeded emulation?
Same is for prot mode. You know the wine's
requirements now - they are very small. And
dosemu doesn't need anything at all but smsw.
And even smsw is very rare.
--
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.