In case anybody missed it, the Linux kernel side to make use of this has also been finished meanwhile. Of course it can not be accepted without compiler support; and this feature patch is much more versatile than just Linux kernel live patching on a single architecture.
How is this supposed to be exploited atomically in RISC arches such as sparc? In such architectures you usually need to patch several instructions to load an absolute address into a register. If a general mechanism is what is intended I would suggest to offer the possibility of extending the nops _before_ the function entry point, like in: (a) nop ! Load address nop ! Load address nop ! Load address nop ! Load address nop ! Jump to loaded address. entry: (b) nop ! PC-relative jump to (a) save %sp, bleh, %sp ... So after the live-patcher patches the loading of the destination address and the jump, it can atomically patch (b) to effectively replace the implementation of `entry'. Wdyt?