@@ -5,21 +5,16 @@
#define pr_fmt(fmt) "tdx: " fmt
#include <linux/cpufeature.h>
-#include <linux/miscdevice.h>
-#include <linux/mm.h>
-#include <linux/io.h>
#include <asm/coco.h>
#include <asm/tdx.h>
#include <asm/vmx.h>
#include <asm/insn.h>
#include <asm/insn-eval.h>
#include <asm/pgtable.h>
-#include <uapi/asm/tdx.h>
/* TDX module Call Leaf IDs */
#define TDX_GET_INFO 1
#define TDX_GET_VEINFO 3
-#define TDX_GET_REPORT 4
#define TDX_ACCEPT_PAGE 6
/* TDX hypercall Leaf IDs */
@@ -39,10 +34,6 @@
#define VE_GET_PORT_NUM(e) ((e) >> 16)
#define VE_IS_IO_STRING(e) ((e) & BIT(4))
-#define DRIVER_NAME "tdx-guest"
-
-static struct miscdevice tdx_misc_dev;
-
#define ATTR_SEPT_VE_DISABLE BIT(28)
/*
@@ -795,111 +786,3 @@ void __init tdx_early_init(void)
pr_info("Guest detected\n");
}
-
-static long tdx_get_report(void __user *argp)
-{
- u8 *reportdata = NULL, *tdreport = NULL;
- struct tdx_report_req req;
- long ret;
-
- /* Copy request struct from the user buffer */
- if (copy_from_user(&req, argp, sizeof(req)))
- return -EFAULT;
-
- /*
- * Per TDX Module 1.0 specification, section titled
- * "TDG.MR.REPORT", REPORTDATA and TDREPORT length
- * is fixed as TDX_REPORTDATA_LEN and TDX_REPORT_LEN.
- */
- if (req.rpd_len != TDX_REPORTDATA_LEN || req.tdr_len != TDX_REPORT_LEN)
- return -EINVAL;
-
- /* Allocate kernel buffers for REPORTDATA and TDREPORT */
- reportdata = kzalloc(req.rpd_len, GFP_KERNEL);
- if (!reportdata) {
- ret = -ENOMEM;
- goto out;
- }
-
- tdreport = kzalloc(req.tdr_len, GFP_KERNEL);
- if (!tdreport) {
- ret = -ENOMEM;
- goto out;
- }
-
-
- /* Copy REPORTDATA from user to kernel buffer */
- if (copy_from_user(reportdata, (void *)req.reportdata, req.rpd_len)) {
- ret = -EFAULT;
- goto out;
- }
-
- /*
- * Generate TDREPORT using "TDG.MR.REPORT" TDCALL.
- *
- * Get the TDREPORT using REPORTDATA as input. Refer to
- * section 22.3.3 TDG.MR.REPORT leaf in the TDX Module 1.0
- * Specification for detailed information.
- */
- ret = __tdx_module_call(TDX_GET_REPORT, virt_to_phys(tdreport),
- virt_to_phys(reportdata), req.subtype,
- 0, NULL);
- if (ret) {
- ret = -EIO;
- goto out;
- }
-
- /* Copy TDREPORT data back to the user buffer */
- if (copy_to_user((void *)req.tdreport, tdreport, req.tdr_len))
- ret = -EFAULT;
-
-out:
- kfree(reportdata);
- kfree(tdreport);
- return ret;
-}
-static long tdx_guest_ioctl(struct file *file, unsigned int cmd,
- unsigned long arg)
-{
- void __user *argp = (void __user *)arg;
- long ret = -EINVAL;
-
- switch (cmd) {
- case TDX_CMD_GET_REPORT:
- ret = tdx_get_report(argp);
- break;
- default:
- pr_debug("cmd %d not supported\n", cmd);
- break;
- }
-
- return ret;
-}
-
-static const struct file_operations tdx_guest_fops = {
- .owner = THIS_MODULE,
- .unlocked_ioctl = tdx_guest_ioctl,
- .llseek = no_llseek,
-};
-
-static int __init tdx_guest_init(void)
-{
- int ret;
-
- /* Make sure we are in a valid TDX platform */
- if (!cpu_feature_enabled(X86_FEATURE_TDX_GUEST))
- return -EIO;
-
- tdx_misc_dev.name = DRIVER_NAME;
- tdx_misc_dev.minor = MISC_DYNAMIC_MINOR;
- tdx_misc_dev.fops = &tdx_guest_fops;
-
- ret = misc_register(&tdx_misc_dev);
- if (ret) {
- pr_err("misc device registration failed\n");
- return ret;
- }
-
- return 0;
-}
-device_initcall(tdx_guest_init)
deleted file mode 100644
@@ -1,51 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-#ifndef _UAPI_ASM_X86_TDX_H
-#define _UAPI_ASM_X86_TDX_H
-
-#include <linux/types.h>
-#include <linux/ioctl.h>
-
-/* Length of the REPORTDATA used in TDG.MR.REPORT TDCALL */
-#define TDX_REPORTDATA_LEN 64
-
-/* Length of TDREPORT used in TDG.MR.REPORT TDCALL */
-#define TDX_REPORT_LEN 1024
-
-/**
- * struct tdx_report_req: Get TDREPORT using REPORTDATA as input.
- *
- * @subtype : Subtype of TDREPORT (fixed as 0 by TDX Module
- * specification, but added a parameter to handle
- * future extension).
- * @reportdata : User-defined REPORTDATA to be included into
- * TDREPORT. Typically it can be some nonce
- * provided by attestation service, so the
- * generated TDREPORT can be uniquely verified.
- * @rpd_len : Length of the REPORTDATA (fixed as 64 bytes by
- * the TDX Module specification, but parameter is
- * added to handle future extension).
- * @tdreport : TDREPORT output from TDCALL[TDG.MR.REPORT].
- * @tdr_len : Length of the TDREPORT (fixed as 1024 bytes by
- * the TDX Module specification, but a parameter
- * is added to accommodate future extension).
- *
- * Used in TDX_CMD_GET_REPORT IOCTL request.
- */
-struct tdx_report_req {
- __u8 subtype;
- __u64 reportdata;
- __u32 rpd_len;
- __u64 tdreport;
- __u32 tdr_len;
-};
-
-/*
- * TDX_CMD_GET_REPORT - Get TDREPORT using TDCALL[TDG.MR.REPORT]
- *
- * Return 0 on success, -EIO on TDCALL execution failure, and
- * standard errno on other general error cases.
- *
- */
-#define TDX_CMD_GET_REPORT _IOWR('T', 0x01, __u64)
-
-#endif /* _UAPI_ASM_X86_TDX_H */
BugLink: https://bugs.launchpad.net/bugs/2009437 This reverts the following commit, that will be replaced by a new TDX patch set: 285d6d8136eb ("UBUNTU: SAUCE: x86/tdx: Add TDX Guest attestation interface driver") Signed-off-by: Andrea Righi <andrea.righi@canonical.com> --- arch/x86/coco/tdx/tdx.c | 117 -------------------------------- arch/x86/include/uapi/asm/tdx.h | 51 -------------- 2 files changed, 168 deletions(-) delete mode 100644 arch/x86/include/uapi/asm/tdx.h