On Thu, May 14, 2020 at 09:00:40PM +1000, Balbir Singh wrote: > I wonder if the right thing to do is also to disable pre-emption, just so that the thread does not linger on with sensitive data. > > void kvfree_sensitive(const void *addr, size_t len) > { > preempt_disable(); > if (likely(!ZERO_OR_NULL_PTR(addr))) { > memzero_explicit((void *)addr, len); > kvfree(addr); > } > preempt_enable(); > } > EXPORT_SYMBOL(kvfree_sensitive); If it's _that_ sensitive then the caller should have disabled preemption. Because preemption could otherwise have occurred immediately before kvfree_sensitive() was called.