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 PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 15 Sep 2014 01:00:25 +0100 From: One Thousand Gnomes <gnomes@...rguk.ukuu.org.uk> To: Qiaowei Ren <qiaowei.ren@...el.com> Cc: "H. Peter Anvin" <hpa@...or.com>, Thomas Gleixner <tglx@...utronix.de>, Ingo Molnar <mingo@...hat.com>, Dave Hansen <dave.hansen@...el.com>, x86@...nel.org, linux-mm@...ck.org, linux-kernel@...r.kernel.org Subject: Re: [PATCH v8 08/10] x86, mpx: add prctl commands PR_MPX_REGISTER, PR_MPX_UNREGISTER > The base of the bounds directory is set into mm_struct during > PR_MPX_REGISTER command execution. This member can be used to > check whether one application is mpx enabled. Not really because by the time you ask the question another thread might have decided to unregister it. > +int mpx_register(struct task_struct *tsk) > +{ > + struct mm_struct *mm = tsk->mm; > + > + if (!cpu_has_mpx) > + return -EINVAL; > + > + /* > + * runtime in the userspace will be responsible for allocation of > + * the bounds directory. Then, it will save the base of the bounds > + * directory into XSAVE/XRSTOR Save Area and enable MPX through > + * XRSTOR instruction. > + * > + * fpu_xsave() is expected to be very expensive. In order to do > + * performance optimization, here we get the base of the bounds > + * directory and then save it into mm_struct to be used in future. > + */ > + mm->bd_addr = task_get_bounds_dir(tsk); > + if (!mm->bd_addr) > + return -EINVAL; What stops two threads calling this in parallel ? > + > + return 0; > +} > + > +int mpx_unregister(struct task_struct *tsk) > +{ > + struct mm_struct *mm = current->mm; > + > + if (!cpu_has_mpx) > + return -EINVAL; > + > + mm->bd_addr = NULL; or indeed calling this in parallel What are the semantics across execve() ? Alan -- 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