[tip:x86/urgent] x86/intel_rdt: Fix incorrect returned value when creating rdgroup sub-directory in resctrl file system

From: tip-bot for Wang Hui
Date: Fri Feb 23 2018 - 02:20:22 EST


Commit-ID: 36e74d355297dde6e69a39c838d24710e442babe
Gitweb: https://git.kernel.org/tip/36e74d355297dde6e69a39c838d24710e442babe
Author: Wang Hui <john.wanghui@xxxxxxxxxx>
AuthorDate: Thu, 22 Feb 2018 19:26:03 -0800
Committer: Ingo Molnar <mingo@xxxxxxxxxx>
CommitDate: Fri, 23 Feb 2018 08:03:21 +0100

x86/intel_rdt: Fix incorrect returned value when creating rdgroup sub-directory in resctrl file system

If no monitoring feature is detected because all monitoring features are
disabled during boot time or there is no monitoring feature in hardware,
creating rdtgroup sub-directory by "mkdir" command reports error:

mkdir: cannot create directory â/sys/fs/resctrl/p1â: No such file or directory

But the sub-directory actually is generated and content is correct:

cpus cpus_list schemata tasks

The error is because rdtgroup_mkdir_ctrl_mon() returns non zero value after
the sub-directory is created and the returned value is reported as an error
to user.

Clear the returned value to report to user that the sub-directory is
actually created successfully.

Signed-off-by: Wang Hui <john.wanghui@xxxxxxxxxx>
Signed-off-by: Zhang Yanfei <yanfei.zhang@xxxxxxxxxx>
Signed-off-by: Fenghua Yu <fenghua.yu@xxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Ravi V Shankar <ravi.v.shankar@xxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Tony Luck <tony.luck@xxxxxxxxx>
Cc: Vikas <vikas.shivappa@xxxxxxxxx>
Cc: Xiaochen Shen <xiaochen.shen@xxxxxxxxx>
Link: http://lkml.kernel.org/r/1519356363-133085-1-git-send-email-fenghua.yu@xxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
---
arch/x86/kernel/cpu/intel_rdt_rdtgroup.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/arch/x86/kernel/cpu/intel_rdt_rdtgroup.c b/arch/x86/kernel/cpu/intel_rdt_rdtgroup.c
index bdab7d2f51af..fca759d272a1 100644
--- a/arch/x86/kernel/cpu/intel_rdt_rdtgroup.c
+++ b/arch/x86/kernel/cpu/intel_rdt_rdtgroup.c
@@ -1804,6 +1804,7 @@ static int rdtgroup_mkdir_ctrl_mon(struct kernfs_node *parent_kn,
goto out_common_fail;
}
closid = ret;
+ ret = 0;

rdtgrp->closid = closid;
list_add(&rdtgrp->rdtgroup_list, &rdt_all_groups);