09.12.2021 22:51, Nicolin Chen пишет: > On Thu, Dec 09, 2021 at 10:40:42PM +0300, Dmitry Osipenko wrote: >> External email: Use caution opening links or attachments >> >> >> 09.12.2021 22:32, Nicolin Chen пишет: >>> On Thu, Dec 09, 2021 at 05:47:18PM +0300, Dmitry Osipenko wrote: >>>> External email: Use caution opening links or attachments >>>> >>>> >>>> 09.12.2021 10:38, Nicolin Chen пишет: >>>>> @@ -545,6 +719,15 @@ static void tegra_smmu_detach_as(struct tegra_smmu *smmu, >>>>> if (group->swgrp != swgrp) >>>>> continue; >>>>> group->as = NULL; >>>>> + >>>>> + if (smmu->debugfs_mappings) { >>>> Do we really need this check? >>>> >>>> Looks like all debugfs_create_dir() usages in this driver are incorrect, >>>> that function never returns NULL. Please fix this. >>> debugfs_create_dir returns ERR_PTR on failure. So here should be >>> to check !IS_ERR. Thanks for pointing it out! >>> >> >> All debugfs functions handle IS_ERR(). GregKH removes all such checks >> all over the kernel. So the check shouldn't be needed at all, please >> remove it if it's unneeded or prove that it's needed. > > debugfs_create_file can handle a NULL parent, but not ERR_PTR one, > and then it puts the new node under the root. So either passing an > ERR_PTR parent or creating orphan nodes here doesn't sound good... > What makes you say so? Please show the exact source code that will cause the problem. The smmu->debugfs_mappings can't ever be NULL and debugfs_create_file handles the ERR_PTR [1][2]. [1] https://elixir.bootlin.com/linux/latest/source/fs/debugfs/inode.c#L397 [2] https://elixir.bootlin.com/linux/latest/source/fs/debugfs/inode.c#L330