Re: [PATCH v11 06/20] x86/virt/tdx: Handle SEAMCALL running out of entropy error

From: David Hildenbrand
Date: Tue Jun 20 2023 - 07:15:29 EST


On 20.06.23 12:39, Huang, Kai wrote:

@@ -33,12 +34,24 @@ static int __always_unused seamcall(u64 fn, u64 rcx, u64 rdx, u64 r8, u64 r9,
struct tdx_module_output *out)
{
int cpu, ret = 0;
+ int retry;
u64 sret;
/* Need a stable CPU id for printing error message */
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 the existing rdrand_long() to retry
+ * RDRAND_RETRY_LOOPS times.
+ */
+ retry = RDRAND_RETRY_LOOPS;

Nit: I'd just do a "int retry = RDRAND_RETRY_LOOPS" and simplify this
comment to "Mimic rdrand_long() retry behavior."

OK will do.

But I think you are talking about replacing the second paragraph but not the
entire comment?


Yes.

--
Cheers,

David / dhildenb