• Linus Torvalds's avatar
    Merge tag 'tsm-for-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/linux · 5e2cb28d
    Linus Torvalds authored
    Pull unified attestation reporting from Dan Williams:
     "In an ideal world there would be a cross-vendor standard attestation
      report format for confidential guests along with a common device
      definition to act as the transport.
    
      In the real world the situation ended up with multiple platform
      vendors inventing their own attestation report formats with the
      SEV-SNP implementation being a first mover to define a custom
      sev-guest character device and corresponding ioctl(). Later, this
      configfs-tsm proposal intercepted an attempt to add a tdx-guest
      character device and a corresponding new ioctl(). It also anticipated
      ARM and RISC-V showing up with more chardevs and more ioctls().
    
      The proposal takes for granted that Linux tolerates the vendor report
      format differentiation until a standard arrives. From talking with
      folks involved, it sounds like that standardization work is unlikely
      to resolve anytime soon. It also takes the position that kernfs ABIs
      are easier to maintain than ioctl(). The result is a shared configfs
      mechanism to return per-vendor report-blobs with the option to later
      support a standard when that arrives.
    
      Part of the goal here also is to get the community into the
      "uncomfortable, but beneficial to the long term maintainability of the
      kernel" state of talking to each other about their differentiation and
      opportunities to collaborate. Think of this like the device-driver
      equivalent of the common memory-management infrastructure for
      confidential-computing being built up in KVM.
    
      As for establishing an "upstream path for cross-vendor
      confidential-computing device driver infrastructure" this is something
      I want to discuss at Plumbers. At present, the multiple vendor
      proposals for assigning devices to confidential computing VMs likely
      needs a new dedicated repository and maintainer team, but that is a
      discussion for v6.8.
    
      For now, Greg and Thomas have acked this approach and this is passing
      is AMD, Intel, and Google tests.
    
      Summary:
    
       - Introduce configfs-tsm as a shared ABI for confidential computing
         attestation reports
    
       - Convert sev-guest to additionally support configfs-tsm alongside
         its vendor specific ioctl()
    
       - Added signed attestation report retrieval to the tdx-guest driver
         forgoing a new vendor specific ioctl()
    
       - Misc cleanups and a new __free() annotation for kvfree()"
    
    * tag 'tsm-for-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/linux:
      virt: tdx-guest: Add Quote generation support using TSM_REPORTS
      virt: sevguest: Add TSM_REPORTS support for SNP_GET_EXT_REPORT
      mm/slab: Add __free() support for kvfree
      virt: sevguest: Prep for kernel internal get_ext_report()
      configfs-tsm: Introduce a shared ABI for attestation reports
      virt: coco: Add a coco/Makefile and coco/Kconfig
      virt: sevguest: Fix passing a stack buffer as a scatterlist target
    5e2cb28d
tdx.h 3.22 KB