Messages in this thread | | | Subject | Re: [PATCH v2 1/6] x86/tdx: Add TDREPORT TDX Module call support | From | Hans de Goede <> | Date | Thu, 8 Jul 2021 16:20:28 +0200 |
| |
Hi,
On 7/8/21 4:07 PM, Kuppuswamy, Sathyanarayanan wrote: > > > On 7/8/21 1:16 AM, Xiaoyao Li wrote: >> >> Sorry I guess I didn't state it clearly during internal review. >> >> I suggest something like this >> >> if (ret != TDCALL_SUCCESS) { >> if (TDCALL_RETURN_CODE(ret) == TDCALL_INVALID_OPERAND) >> return -EINVAL; >> else if (TDCALL_RETURN_CODE(ret) == TDCALL_OPERAND_BUSY) >> return -EBUSY; >> else >> return -EFAULT; //I'm not sure if -EFAULT is proper. >> } > > As per current spec, TDCALL_INVALID_OPERAND, TDCALL_OPERAND_BUSY and > 0 are the only possible return values. So I have checked for failure case > in if condition and returned success by default. Any reason for specifically > checking for success code ?
Yes, new error codes might be introduced and you might forget to update this (or other) checks.
Checking for errors really MUST always be done by checking for ret != success (typically ret != 0 or ret < 0).
Only checking for known error codes means that if somehow an unknown error code gets thrown this gets treated as success, which is not acceptable behavior.
Regards,
Hans
| |