On Wed, 2022-09-07 at 17:27 -0700, Kuppuswamy Sathyanarayanan wrote: > +TEST(verify_report) > +{ > + __u8 reportdata[TDX_REPORTDATA_LEN]; > + struct tdreport tdreport; > + struct tdx_report_req req; > + int devfd, i; > + > + devfd = open(TDX_GUEST_DEVNAME, O_RDWR | O_SYNC); > + > + ASSERT_LT(0, devfd); > + > + /* Generate sample report data */ > + for (i = 0; i < TDX_REPORTDATA_LEN; i++) > + reportdata[i] = i; > + > + /* Initialize IOCTL request */ > + req.subtype = 0; > + req.reportdata = (__u64)reportdata; > + req.rpd_len = TDX_REPORTDATA_LEN; > + req.tdreport = (__u64)&tdreport; > + req.tdr_len = sizeof(tdreport); > + 'req' is a local variable, which isn't guaranteed to be zero. Looks you need to explicitly clear 'req' otherwise the req.reserved[7] may not be zero. -- Thanks, -Kai