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
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 01 May 2020 22:28:49 +0200
From:   Peter Zijlstra <>
Subject: [PATCH v4 00/18] Add static_call()

static_call(), is the idea of static_branch() applied to indirect function
calls. Remove a data load (indirection) by modifying the text.

The inline implementation still relies on objtool to generate the
.static_call_sites section, mostly because this is a natural place for x86_64
and works for both GCC and LLVM.  Other architectures can pick other means
if/when they implement the inline patching. The out-of-line (aka. trampoline)
variant doesn't require this.

Patches go on top of tip/objtool/core.

Patches can also be found here:

  git:// x86/static_call

Changes since the last time:

 - Fixed the inline variant; the previous version relied on the section of
   symbols to detect the static call sites, but undefined symbols do not
   have a section, so it basically ended up not patching many sites. IOW
   inline mostly behaved in the out-of-line variant.

 - Fixed an issue with modules

 - Clarified static_cond_call() has 'void' return.

 - Clarified DEFINE_STATIC_COND_CALL() (ab)use.

 - Tracing no longer adds an indirect call for !HAVE_STATIC_CALL

Powered by blists - more mailing lists