mirror of
https://github.com/torvalds/linux.git
synced 2026-05-24 15:12:13 +02:00
iommu/amd: Refactor AMD IOMMU debugfs initial setup
Rearrange initial setup of AMD IOMMU debugfs to segregate per IOMMU setup and setup which is common for all IOMMUs. This ensures that common debugfs paths (introduced in subsequent patches) are created only once instead of being created for each IOMMU. With the change, there is no need to use lock as amd_iommu_debugfs_setup() will be called only once during AMD IOMMU initialization. So remove lock acquisition in amd_iommu_debugfs_setup(). Signed-off-by: Dheeraj Kumar Srivastava <dheerajkumar.srivastava@amd.com> Reviewed-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com> Reviewed-by: Vasant Hegde <vasant.hegde@amd.com> Link: https://lore.kernel.org/r/20250702093804.849-2-dheerajkumar.srivastava@amd.com Signed-off-by: Will Deacon <will@kernel.org>
This commit is contained in:
parent
c694bc8b61
commit
ad48b1dd14
|
|
@ -28,9 +28,9 @@ void *__init iommu_alloc_4k_pages(struct amd_iommu *iommu,
|
|||
gfp_t gfp, size_t size);
|
||||
|
||||
#ifdef CONFIG_AMD_IOMMU_DEBUGFS
|
||||
void amd_iommu_debugfs_setup(struct amd_iommu *iommu);
|
||||
void amd_iommu_debugfs_setup(void);
|
||||
#else
|
||||
static inline void amd_iommu_debugfs_setup(struct amd_iommu *iommu) {}
|
||||
static inline void amd_iommu_debugfs_setup(void) {}
|
||||
#endif
|
||||
|
||||
/* Needed for interrupt remapping */
|
||||
|
|
|
|||
|
|
@ -13,20 +13,18 @@
|
|||
#include "amd_iommu.h"
|
||||
|
||||
static struct dentry *amd_iommu_debugfs;
|
||||
static DEFINE_MUTEX(amd_iommu_debugfs_lock);
|
||||
|
||||
#define MAX_NAME_LEN 20
|
||||
|
||||
void amd_iommu_debugfs_setup(struct amd_iommu *iommu)
|
||||
void amd_iommu_debugfs_setup(void)
|
||||
{
|
||||
struct amd_iommu *iommu;
|
||||
char name[MAX_NAME_LEN + 1];
|
||||
|
||||
mutex_lock(&amd_iommu_debugfs_lock);
|
||||
if (!amd_iommu_debugfs)
|
||||
amd_iommu_debugfs = debugfs_create_dir("amd",
|
||||
iommu_debugfs_dir);
|
||||
mutex_unlock(&amd_iommu_debugfs_lock);
|
||||
amd_iommu_debugfs = debugfs_create_dir("amd", iommu_debugfs_dir);
|
||||
|
||||
snprintf(name, MAX_NAME_LEN, "iommu%02d", iommu->index);
|
||||
iommu->debugfs = debugfs_create_dir(name, amd_iommu_debugfs);
|
||||
for_each_iommu(iommu) {
|
||||
snprintf(name, MAX_NAME_LEN, "iommu%02d", iommu->index);
|
||||
iommu->debugfs = debugfs_create_dir(name, amd_iommu_debugfs);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3419,7 +3419,6 @@ int amd_iommu_enable_faulting(unsigned int cpu)
|
|||
*/
|
||||
static int __init amd_iommu_init(void)
|
||||
{
|
||||
struct amd_iommu *iommu;
|
||||
int ret;
|
||||
|
||||
ret = iommu_go_to_state(IOMMU_INITIALIZED);
|
||||
|
|
@ -3433,8 +3432,8 @@ static int __init amd_iommu_init(void)
|
|||
}
|
||||
#endif
|
||||
|
||||
for_each_iommu(iommu)
|
||||
amd_iommu_debugfs_setup(iommu);
|
||||
if (!ret)
|
||||
amd_iommu_debugfs_setup();
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user