Re: [x86] 45fc8757d1: BUG:unable_to_handle_kernel

From: Andy Lutomirski
Date: Fri Mar 17 2017 - 16:19:16 EST


On Fri, Mar 17, 2017 at 12:36 PM, Linus Torvalds
<torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
> On Fri, Mar 17, 2017 at 11:20 AM, Andy Lutomirski <luto@xxxxxxxxxx> wrote:
>>
>> I can easily imagine that breaking WINE or DOSEMU because it'll affect
>> the LDT, too.
>
> Can they even *read* the LDT contents, though? The whole accessed bit
> doesn't show up in 'struct user_desc', so you can neither set it nor
> read it.

LAR. I've learned to never underestimate the absurdity of the games
played by 16-bit apps. (See, for example, the fact that some of them
apparently use SGDT just to find a page that's guaranteed not to be
accessible.)

>
>> How about this:
>
> I don't think that's _wrong_, but..
>
> I'd really rather just do it in fill_ldt() itself, unless you can
> explain how it would be visible to anybody..

See above :(

(Also, your approach would probably break some selftests.)

--Andy