https://lwn.net/Articles/504744/ Ugh.
TLDR: multi-threaded cpu's need to be told in non-atomic context (i.e. no sleeping allowed).
Old kernel code in Linux, did not work that way, a patch was issued to fix, but since leap seconds are rare (years), not everybody patched.