// SPDX-License-Identifier: GPL-2.0 /* * IOMMU debugfs core infrastructure * * Copyright (C) 2018 Advanced Micro Devices, Inc. * * Author: Gary R Hook <gary.hook@amd.com> */ #include <linux/pci.h> #include <linux/iommu.h> #include <linux/debugfs.h> struct dentry *iommu_debugfs_dir; EXPORT_SYMBOL_GPL(iommu_debugfs_dir); /** * iommu_debugfs_setup - create the top-level iommu directory in debugfs * * Provide base enablement for using debugfs to expose internal data of an * IOMMU driver. When called, this function creates the * /sys/kernel/debug/iommu directory. * * Emit a strong warning at boot time to indicate that this feature is * enabled. * * This function is called from iommu_init; drivers may then use * iommu_debugfs_dir to instantiate a vendor-specific directory to be used * to expose internal data. */ void iommu_debugfs_setup(void) { if (!iommu_debugfs_dir) { iommu_debugfs_dir = debugfs_create_dir("iommu", NULL); pr_warn("\n"); pr_warn("*************************************************************\n"); pr_warn("** NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE **\n"); pr_warn("** **\n"); pr_warn("** IOMMU DebugFS SUPPORT HAS BEEN ENABLED IN THIS KERNEL **\n"); pr_warn("** **\n"); pr_warn("** This means that this kernel is built to expose internal **\n"); pr_warn("** IOMMU data structures, which may compromise security on **\n"); pr_warn("** your system. **\n"); pr_warn("** **\n"); pr_warn("** If you see this message and you are not debugging the **\n"); pr_warn("** kernel, report this immediately to your vendor! **\n"); pr_warn("** **\n"); pr_warn("** NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE **\n"); pr_warn("*************************************************************\n"); } }