2018-06-13 00:41:21 +03:00
// 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 ;
2019-02-20 16:05:05 +03:00
EXPORT_SYMBOL_GPL ( iommu_debugfs_dir ) ;
2018-06-13 00:41:21 +03:00
/**
* 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 .
*
2019-02-20 16:05:05 +03:00
* 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 .
2018-06-13 00:41:21 +03:00
*/
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 " ) ;
}
}