On 10/12/22 8:47 AM, Borislav Petkov wrote: > On Wed, Sep 28, 2022 at 02:55:34PM -0700, Kuppuswamy Sathyanarayanan wrote: >> +static long tdx_get_report(void __user *argp) >> +{ >> + u8 *reportdata, *tdreport; >> + struct tdx_report_req req; >> + long ret; >> + >> + if (copy_from_user(&req, argp, sizeof(req))) >> + return -EFAULT; >> + >> + /* >> + * Per TDX Module 1.0 specification, section titled >> + * "TDG.MR.REPORT", REPORTDATA length is fixed as >> + * TDX_REPORTDATA_LEN, TDREPORT length is fixed as >> + * TDX_REPORT_LEN, and TDREPORT subtype is fixed as 0. >> + */ >> + if (req.subtype || req.rpd_len != TDX_REPORTDATA_LEN || >> + req.tdr_len != TDX_REPORT_LEN) >> + return -EINVAL; >> + >> + if (memchr_inv(req.reserved, 0, sizeof(req.reserved))) > > I'm guessing we should issue something here to userspace to let it know > why the it fails getting the report. I am fine with adding an error message here. What about the above -EINVAL case? Do you suggest adding it there as well? > > Otherwise it is starting to look good and boring. :) > > Thx. > -- Sathyanarayanan Kuppuswamy Linux Kernel Developer