On Tue, Jun 27, 2023 at 02:12:36AM +1200, Kai Huang wrote: > cpu = get_cpu(); > - sret = __seamcall(fn, rcx, rdx, r8, r9, out); > + > + /* > + * Certain SEAMCALL leaf functions may return error due to > + * running out of entropy, in which case the SEAMCALL should > + * be retried. Handle this in SEAMCALL common function. > + * > + * Mimic rdrand_long() retry behavior. Yeah, except that doesn't have preemption disabled.. you do. > + */ > + do { > + sret = __seamcall(fn, rcx, rdx, r8, r9, out); > + } while (sret == TDX_RND_NO_ENTROPY && --retry); > + > put_cpu();