iommu-debugfs.c 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // SPDX-License-Identifier: GPL-2.0
  2. /*
  3. * IOMMU debugfs core infrastructure
  4. *
  5. * Copyright (C) 2018 Advanced Micro Devices, Inc.
  6. *
  7. * Author: Gary R Hook <gary.hook@amd.com>
  8. */
  9. #include <linux/pci.h>
  10. #include <linux/iommu.h>
  11. #include <linux/debugfs.h>
  12. struct dentry *iommu_debugfs_dir;
  13. EXPORT_SYMBOL_GPL(iommu_debugfs_dir);
  14. /**
  15. * iommu_debugfs_setup - create the top-level iommu directory in debugfs
  16. *
  17. * Provide base enablement for using debugfs to expose internal data of an
  18. * IOMMU driver. When called, this function creates the
  19. * /sys/kernel/debug/iommu directory.
  20. *
  21. * Emit a strong warning at boot time to indicate that this feature is
  22. * enabled.
  23. *
  24. * This function is called from iommu_init; drivers may then use
  25. * iommu_debugfs_dir to instantiate a vendor-specific directory to be used
  26. * to expose internal data.
  27. */
  28. void iommu_debugfs_setup(void)
  29. {
  30. if (!iommu_debugfs_dir) {
  31. iommu_debugfs_dir = debugfs_create_dir("iommu", NULL);
  32. pr_warn("\n");
  33. pr_warn("*************************************************************\n");
  34. pr_warn("** NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE **\n");
  35. pr_warn("** **\n");
  36. pr_warn("** IOMMU DebugFS SUPPORT HAS BEEN ENABLED IN THIS KERNEL **\n");
  37. pr_warn("** **\n");
  38. pr_warn("** This means that this kernel is built to expose internal **\n");
  39. pr_warn("** IOMMU data structures, which may compromise security on **\n");
  40. pr_warn("** your system. **\n");
  41. pr_warn("** **\n");
  42. pr_warn("** If you see this message and you are not debugging the **\n");
  43. pr_warn("** kernel, report this immediately to your vendor! **\n");
  44. pr_warn("** **\n");
  45. pr_warn("** NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE **\n");
  46. pr_warn("*************************************************************\n");
  47. }
  48. }