Re: On the correctness of dbe3ed1c078c193be34326728d494c5c4bc115e2

From: H. Peter Anvin
Date: Sun Sep 01 2013 - 12:14:36 EST


On 09/01/2013 09:12 AM, Linus Torvalds wrote:
> On Sun, Sep 1, 2013 at 9:00 AM, H. Peter Anvin <hpa@xxxxxxxxx> wrote:
>> On 09/01/2013 08:58 AM, Linus Torvalds wrote:
>>>
>>> Not necessarily. Don't we basically do exactly that for the F00F bug
>>> workaround, for example?
>>
>> We do, but only after matching on an exact address (is_f00f_bug()).
>> Note also that is_f00f_bug() isn't conditional on PF_USER.
>
> Right. But I'm wondering why you care? There's nothing we can do about
> spurious page faults if they dp happen. The PF_USER thing we do means
> that bad_area_nosemaphore will go through the "send signal" path.
>
> I guess we can remove the setting of PF_USER, but that would just mean
> that then we have to test for "is_user_vm()" in bad_area_semaphore
> instead. So the end result would be exactly the same.
>
> And my point was that we actually do have this "users can cause page
> faults on IDT etc accesses" as a real thing.
>
> So basically: what do you propose to do? You basically can't remove
> the line without adding it somewhere else.
>

is_f00f_bug() already contains:

if (nr == 6) {
do_invalid_op(regs, 0);
return 1;
}

... that's where we're supposed to issue SIGILL.

-hpa

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/