On Mon, 28 May 2018, Tobin C. Harding wrote: > Currently printing pointers early in the boot sequence can result in a > dummy string '(____ptrval____)' being printed. While resolving this > issue it was noticed that we can use the hw RNG if available for hashing > pointers. > > Patch one and two do the ground work to be able to use hw RNG removing > from get_random_bytes_arch() the call to get_random_bytes() and > returning the number of bytes of random material successfully returned. > > Patch three uses the hw RNG to get keying material if it is available. > > Patch four further assists debugging early in the boot sequence for > machines that do not have a hw RNG by adding a command line option > 'debug_boot_weak_hash'. If enabled, non-cryptographically secure hashing > is used instead of siphash so we can hash at any time. > > During the versions of this set I have been totally confused about which > patches go through which tree. This version again puts all 4 patches > together in the hope they will go through Andrew's tree. > > > Steve, > > Could you please take a quick squiz at the final 2 patches if you get a > chance. I assumed we are in preemptible context during early_init based > on your code (and code comment) and called static_branch_disable() > directly if hw RNG returned keying material. It's a pretty simple > change but I'd love to get someone else to check I've not noob'ed it.
early_initcalls() are not that early :) They run in thread context fully preemtible so calling static_branch_disable() is perfectly fine. Thanks, tglx