Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1647397

Re: [PATCH 1/1] futex: remove duplicated code

From Thomas Gleixner <tglx@linutronix.de>
Newsgroups linux.kernel
Subject Re: [PATCH 1/1] futex: remove duplicated code
Date 2017-05-22 23:20 +0200
Message-ID <tK2U9-2m2-9@gated-at.bofh.it> (permalink)
References <tHnV8-cB-39@gated-at.bofh.it> <tHo4O-fL-9@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Mon, 15 May 2017, Will Deacon wrote:
> Hi Jiri,
> 
> On Mon, May 15, 2017 at 03:07:42PM +0200, Jiri Slaby wrote:
> > There is code duplicated over all architecture's headers for
> > futex_atomic_op_inuser. Namely op decoding, access_ok check for uaddr,
> > and comparison of the result.
> > 
> > Remove this duplication and leave up to the arches only the needed
> > assembly which is now in arch_futex_atomic_op_inuser.
> > 
> > Note that s390 removed access_ok check in d12a29703 ("s390/uaccess:
> > remove pointless access_ok() checks") as access_ok there returns true.
> > We introduce it back to the helper for the sake of simplicity (it gets
> > optimized away anyway).
> 
> Whilst I think this is a good idea, the code in question actually results
> in undefined behaviour per the C spec and is reported by UBSAN. See my
> patch fixing arm64 here (which I'd forgotten about):
> 
> https://www.spinics.net/lists/linux-arch/msg38564.html
> 
> But, as stated in the thread above, I think we should go a step further
> and remove FUTEX_OP_{OR,ANDN,XOR,OPARG_SHIFT} altogether. They don't
> appear to be used by userspace, and this whole thing is a total mess.

You wish. The constants are not used, but FUTEX_WAKE_OP _IS_ used by
glibc. They only have one argument it seems:

   #define FUTEX_OP_CLEAR_WAKE_IF_GT_ONE      ((4 << 24) | 1)

but I'm pretty sure that there is enough (probably horrible) code (think
java) out there using FUTEX_WAKE_OP for whatever (non)sensical reasons in
any available combination.

Thanks,

	tglx

Back to linux.kernel | Previous | NextPrevious in thread | Find similar | Unroll thread


Thread

[PATCH 1/1] futex: remove duplicated code Jiri Slaby <jslaby@suse.cz> - 2017-05-15 15:10 +0200
  Re: [PATCH 1/1] futex: remove duplicated code Will Deacon <will.deacon@arm.com> - 2017-05-15 15:20 +0200
    Re: [PATCH 1/1] futex: remove duplicated code Jiri Slaby <jslaby@suse.cz> - 2017-05-17 10:10 +0200
      Re: [PATCH 1/1] futex: remove duplicated code Will Deacon <will.deacon@arm.com> - 2017-05-18 19:40 +0200
    Re: [PATCH 1/1] futex: remove duplicated code Thomas Gleixner <tglx@linutronix.de> - 2017-05-22 23:20 +0200

csiph-web