Pull locking fixes from Thomas Gleixner:
 "A set of locking related fixes and updates:
   - Two fixes for the futex syscall related to the timeout handling.
     FUTEX_LOCK_PI does not support the FUTEX_CLOCK_REALTIME bit and
     because it's not set the time namespace adjustment for clock
     MONOTONIC is applied wrongly.
     FUTEX_WAIT cannot support the FUTEX_CLOCK_REALTIME bit because its
     always a relative timeout.
   - Cleanups in the futex syscall entry points which became obvious
     when the two timeout handling bugs were fixed.
   - Cleanup of queued_write_lock_slowpath() as suggested by Linus
   - Fixup of the smp_call_function_single_async() prototype"
* tag 'locking-urgent-2021-05-09' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  futex: Make syscall entry points less convoluted
  futex: Get rid of the val2 conditional dance
  futex: Do not apply time namespace adjustment on FUTEX_LOCK_PI
  Revert 
337f13046ff0 ("futex: Allow FUTEX_CLOCK_REALTIME with FUTEX_WAIT op")
  locking/qrwlock: Cleanup queued_write_lock_slowpath()
  smp: Fix smp_call_function_single_async prototype
  void on_each_cpu_cond_mask(smp_cond_func_t cond_func, smp_call_func_t func,
                           void *info, bool wait, const struct cpumask *mask);
  
- int smp_call_function_single_async(int cpu, call_single_data_t *csd);
+ int smp_call_function_single_async(int cpu, struct __call_single_data *csd);
  
 +/*
 + * Cpus stopping functions in panic. All have default weak definitions.
 + * Architecture-dependent code may override them.
 + */
 +void panic_smp_self_stop(void);
 +void nmi_panic_self_stop(struct pt_regs *regs);
 +void crash_smp_send_stop(void);
 +
  /*
   * Call a function on all processors
   */