On Tue, Dec 05, 2017 at 07:14:56PM +0100, Borislav Petkov wrote: > On Tue, Dec 05, 2017 at 06:48:44PM +0100, Peter Zijlstra wrote: > > This is broken right? You unlock and then return @desc, which afaict can > > at that point get freed by free_ldt_struct(). > > > > Something like the below ought to cure; although its not entirely > > pretty either. > > Right. > > Or, instead of introducing all the locking, we could also not do > anything because all that code runs inside fixup_umip_exception() so the > desc will be valid there.
Sorry what? So either this code is broken because it has IRQs enabled, or its broken because its trying to acquire a mutex with IRQs disabled. Which is it?