NAK: [SRU][K][PATCH 0/1] new TDX attestation driver from Intel

Andrea Righi andrea.righi at canonical.com
Mon Mar 6 14:45:01 UTC 2023


On Mon, Mar 06, 2023 at 07:41:20AM -0700, Tim Gardner wrote:
> On 3/6/23 2:20 AM, Andrea Righi wrote:
> > BugLink: https://bugs.launchpad.net/bugs/2009437
> > 
> > [Impact]
> > 
> > TDX guest attestation has been merged as SAUCE patches in the kinetic
> > kernel with the following commits:
> > 
> > https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/kinetic/commit/?h=master-next&id=285d6d8136ebadcee7fd6452b9e4223996a2a0af
> > https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/kinetic/commit/?h=master-next&id=0b78a71c7d7630ab7c3c8a03cbe4f78f1361fb45
> > 
> > However, Intel released a new TDX attestation driver that will be
> > submitted upstream. We should align with the new version that will
> > likely end upstream.
> > 
> > See also LP: #1971027
> > 
> > [Test case]
> > 
> > Testing this feature requires a special hardware in the host, special
> > firmware and special configuration of a guest.
> > 
> > Right now it can only be tested by Intel.
> > 
> > [Fix]
> > 
> > Apply the new driver provided by Intel in LP: #1971027.
> > 
> > [Regression potential]
> > 
> > The new driver can potentially break user-space applications that are
> > relying on the TDX attestation feature. This is because of this struct
> > (used in the user-space/kernel communication, via ioctl):
> > 
> > + * Used in TDX_CMD_GET_REPORT IOCTL request.
> > + */
> > +struct tdx_report_req {
> > + __u8 subtype;
> > + __u64 reportdata;
> > + __u32 rpd_len;
> > + __u64 tdreport;
> > + __u32 tdr_len;
> > +};
> > 
> > The new patch changed the struct as following:
> > 
> > +struct tdx_report_req {
> > + __u8 reportdata[TDX_REPORTDATA_LEN];
> > + __u8 tdreport[TDX_REPORT_LEN];
> > +};
> > 
> > In general we should never apply changes that are breaking user-space
> > like this (especially for non-devel kernels), but realistically we can
> > probably say that nobody is using this feature yet, so nobody has any
> > user-space program that is relying on the old struct (and if they do,
> > they're probably in touch with Intel, so they're aware of this change).
> > 
> > In conclusion, this change should be considered pretty safe, despite the
> > potential user-space brekage.
> > 
> > ----------------------------------------------------------------
> > Andrea Righi (3):
> >        Revert "UBUNTU: SAUCE: selftests: tdx: Test GetReport TDX attestation feature"
> >        Revert "UBUNTU: SAUCE: x86/tdx: Add TDX Guest attestation interface driver"
> >        UBUNTU: [Config] enable TDX attestation driver as module by default
> > 
> > Kuppuswamy Sathyanarayanan (3):
> >        UBUNTU: SAUCE: x86/tdx: Add a wrapper to get TDREPORT0 from the TDX Module
> >        UBUNTU: SAUCE: virt: Add TDX guest driver
> >        UBUNTU: SAUCE: selftests/tdx: Test TDX attestation GetReport support
> > 
> >   Documentation/virt/coco/tdx-guest.rst         |  52 ++++++++
> >   Documentation/virt/index.rst                  |   1 +
> >   Documentation/x86/tdx.rst                     |  43 +++++++
> >   arch/x86/coco/tdx/tdx.c                       | 151 ++++++------------------
> >   arch/x86/include/asm/tdx.h                    |   2 +
> >   arch/x86/include/uapi/asm/tdx.h               |  51 --------
> >   debian.master/config/annotations              |   3 +
> >   debian.master/config/config.common.ubuntu     |   1 +
> >   drivers/virt/Kconfig                          |   2 +
> >   drivers/virt/Makefile                         |   1 +
> >   drivers/virt/coco/tdx-guest/Kconfig           |  10 ++
> >   drivers/virt/coco/tdx-guest/Makefile          |   2 +
> >   drivers/virt/coco/tdx-guest/tdx-guest.c       | 102 ++++++++++++++++
> >   include/uapi/linux/tdx-guest.h                |  42 +++++++
> >   tools/arch/x86/include/uapi/asm/tdx.h         |  51 --------
> >   tools/testing/selftests/tdx/Makefile          |   8 +-
> >   tools/testing/selftests/tdx/config            |   2 +-
> >   tools/testing/selftests/tdx/tdx_attest_test.c | 156 ------------------------
> >   tools/testing/selftests/tdx/tdx_guest_test.c  | 163 ++++++++++++++++++++++++++
> >   19 files changed, 464 insertions(+), 379 deletions(-)
> >   create mode 100644 Documentation/virt/coco/tdx-guest.rst
> >   delete mode 100644 arch/x86/include/uapi/asm/tdx.h
> >   create mode 100644 drivers/virt/coco/tdx-guest/Kconfig
> >   create mode 100644 drivers/virt/coco/tdx-guest/Makefile
> >   create mode 100644 drivers/virt/coco/tdx-guest/tdx-guest.c
> >   create mode 100644 include/uapi/linux/tdx-guest.h
> >   delete mode 100644 tools/arch/x86/include/uapi/asm/tdx.h
> >   delete mode 100644 tools/testing/selftests/tdx/tdx_attest_test.c
> >   create mode 100644 tools/testing/selftests/tdx/tdx_guest_test.c
> > 
> > 
> 
> Patches 3-5 are upstream. Shouldn't they be cherry picks (or backports) ?

Definitely. Will send a v2 with the proper cherry pick / backport line.

Thanks,
-Andrea



More information about the kernel-team mailing list