Messages in this thread | | | Date | Wed, 22 Apr 2015 15:31:46 +0200 | From | Borislav Petkov <> | 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. --
| |