lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 22 Apr 2015 15:31:46 +0200
From:	Borislav Petkov <bp@...en8.de>
To:	Oleg Nesterov <oleg@...hat.com>
Cc:	Dave Hansen <dave@...1.net>, linux-kernel@...r.kernel.org,
	x86@...nel.org, tglx@...utronix.de, dave.hansen@...ux.intel.com,
	riel@...hat.com, sbsiddha@...il.com, luto@...capital.net,
	mingo@...hat.com, hpa@...or.com, fenghua.yu@...el.com
Subject: Re: [PATCH 01/16] x86, fpu: wrap get_xsave_addr() to make it safer

On Wed, Apr 22, 2015 at 03:16:18PM +0200, Oleg Nesterov wrote:
> I agree, tsk_used_math(tsk) looks better, simpy because we have this
> argument.
> 
> But this "tsk" should be always current, otherwise this code is wrong

This is exactly what I'm asking: is that always the case?...

> anyway. Say, unlazy_fpu(tsk) can't work if tsk != current.
> 
> So perhaps the comment should be updated...
> 
> > Because used_math() is looking at current, maybe even in
> > preemption-enabled paths - I'm eyeing task_get_bounds_dir() - and
> > that current might get changed from under us and it might happen that
> > current != tsk. Yes, no?
> 
> Not sure I understand... "current" can't change from under us?

... I'm not sure all tsk_get_xsave_field() callers disable preemption.
If not, then current can change from under us...

> Even if this CPU switches to another thread which executes the same code,
> that thread will obviously see another "current", but its "tsk" variable
> will still match its "current".

Well, we want to see if @tsk used math, not necessarily if current used
math, especially if it is another task, right?

I read tsk_get_xsave_field(@tsk, ) as give me the xsave field of @tsk
but doing used_math() we're querying current and I'm not sure

	tsk == current

in all the call sites of tsk_get_xsave_field().

Does that make more sense?

-- 
Regards/Gruss,
    Boris.

ECO tip #101: Trim your mails when you reply.
--
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ