Received: by 10.192.165.148 with SMTP id m20csp1026208imm; Wed, 25 Apr 2018 11:20:23 -0700 (PDT) X-Google-Smtp-Source: AIpwx4+4FkXTd2FILKeLlvS8GMbmiQYReT0P3yjE2il41JGIf07TLGG2V/pJWiQJpM43SrCTo7gD X-Received: by 10.101.85.11 with SMTP id f11mr24849713pgr.252.1524680423515; Wed, 25 Apr 2018 11:20:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524680423; cv=none; d=google.com; s=arc-20160816; b=etWNboxu9MZ07/ANYT40ptI1ZbeALTry+Ke3u2fBH9Yk0m5P+5/PmefNqZ+QNrHkVI AhH2/bWJVD3GEtzJTKKOapcJYU+5b4IpznQIvCm6IS5OlTdFDhmsyIDQClymlG/TfmBr SqgPjxRVBK8D0hV0zV5SEuxxWv8+1NwKirfeXBNCQxxNWvtK18BjH/wMHv1b0+XQ/k5J Pn3PAnC/iya9lOpYI6ZSqL9wdWVJ+LG9c8tCHPyixAFPzjfX0pqFvtPTLgk/C3vuMa6J +4XEpd4DbDEhsXrHQQUXUB+8wGAikwmiSEU2TsJdiQmDRfAgRJUVz8cPvPM4wdApEexu LC7Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=eMToYdNG6f2arFxZHIla/jOoQst+zVW86mhzlDf5QOs=; b=n/fHQy3pqNjnZucwhgPIH45AdnPl3/A1Lti/j3FKiffDitMerZmcF8j4IQWNMPVxHK wV4JwY790W54OdT9F7I4W91LIfCNQlYBSWA42ulX1rDbts2YR9Zt79hTUeC6d01h+RpF aU3lYkHjB/GOyerKtc7/IyFO0NeD86KYuOGzHGbxuCuw8Top8CNdVWDEz4AEsgzm9JuZ 9wogRoqjRqnhvTKD/Me7uOmLltgU7YNvyxiS2lLIa2n8M117j75C1NHBQxh7oB8vtx4l cSJ1mlVt7J9X4RWcm3iG8pgtY87azB7yckc5Lkr9vn46c40WZmHBW4w6jc0g2HCGjtjn fh8w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p12-v6si17904636plr.131.2018.04.25.11.20.09; Wed, 25 Apr 2018 11:20:23 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756266AbeDYSSc (ORCPT + 99 others); Wed, 25 Apr 2018 14:18:32 -0400 Received: from mga06.intel.com ([134.134.136.31]:34634 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932251AbeDYSMz (ORCPT ); Wed, 25 Apr 2018 14:12:55 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Apr 2018 11:12:54 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,327,1520924400"; d="scan'208";a="35243760" Received: from rchatre-s.jf.intel.com ([10.54.70.76]) by fmsmga008.fm.intel.com with ESMTP; 25 Apr 2018 11:12:53 -0700 From: Reinette Chatre To: tglx@linutronix.de, fenghua.yu@intel.com, tony.luck@intel.com, vikas.shivappa@linux.intel.com Cc: gavin.hindman@intel.com, jithu.joseph@intel.com, dave.hansen@intel.com, mingo@redhat.com, hpa@zytor.com, x86@kernel.org, linux-kernel@vger.kernel.org, Reinette Chatre Subject: [PATCH V3 32/39] x86/intel_rdt: Ensure RDT cleanup on exit Date: Wed, 25 Apr 2018 03:10:08 -0700 Message-Id: <78d06bcfa6e51a8fb2d03ca2d1ffdea5d89e24af.1524649902.git.reinette.chatre@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: References: In-Reply-To: References: Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The RDT system's initialization does not have the corresponding exit handling to ensure everything initialized on load is cleaned up also. Introduce the cleanup routines that complement all initialization. This includes the removal of a duplicate rdtgroup_init() declaration. Signed-off-by: Reinette Chatre --- arch/x86/kernel/cpu/intel_rdt.c | 11 +++++++++++ arch/x86/kernel/cpu/intel_rdt.h | 3 +-- arch/x86/kernel/cpu/intel_rdt_rdtgroup.c | 7 +++++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/arch/x86/kernel/cpu/intel_rdt.c b/arch/x86/kernel/cpu/intel_rdt.c index 410629f10ad3..e80e58058cc0 100644 --- a/arch/x86/kernel/cpu/intel_rdt.c +++ b/arch/x86/kernel/cpu/intel_rdt.c @@ -833,6 +833,8 @@ static __init bool get_rdt_resources(void) return (rdt_mon_capable || rdt_alloc_capable); } +static enum cpuhp_state rdt_online; + static int __init intel_rdt_late_init(void) { struct rdt_resource *r; @@ -854,6 +856,7 @@ static int __init intel_rdt_late_init(void) cpuhp_remove_state(state); return ret; } + rdt_online = state; for_each_alloc_capable_rdt_resource(r) pr_info("Intel RDT %s allocation detected\n", r->name); @@ -865,3 +868,11 @@ static int __init intel_rdt_late_init(void) } late_initcall(intel_rdt_late_init); + +static void __exit intel_rdt_exit(void) +{ + cpuhp_remove_state(rdt_online); + rdtgroup_exit(); +} + +__exitcall(intel_rdt_exit); diff --git a/arch/x86/kernel/cpu/intel_rdt.h b/arch/x86/kernel/cpu/intel_rdt.h index c33bad31bf9f..ecbded448685 100644 --- a/arch/x86/kernel/cpu/intel_rdt.h +++ b/arch/x86/kernel/cpu/intel_rdt.h @@ -208,6 +208,7 @@ extern struct list_head rdt_all_groups; extern int max_name_width, max_data_width; int __init rdtgroup_init(void); +void __exit rdtgroup_exit(void); /** * struct rftype - describe each file in the resctrl file system @@ -416,8 +417,6 @@ extern struct rdt_resource rdt_resources_all[]; extern struct rdtgroup rdtgroup_default; DECLARE_STATIC_KEY_FALSE(rdt_alloc_enable_key); -int __init rdtgroup_init(void); - enum { RDT_RESOURCE_L3, RDT_RESOURCE_L3DATA, diff --git a/arch/x86/kernel/cpu/intel_rdt_rdtgroup.c b/arch/x86/kernel/cpu/intel_rdt_rdtgroup.c index 00467f9edb27..00b125e5562f 100644 --- a/arch/x86/kernel/cpu/intel_rdt_rdtgroup.c +++ b/arch/x86/kernel/cpu/intel_rdt_rdtgroup.c @@ -2739,3 +2739,10 @@ int __init rdtgroup_init(void) return ret; } + +void __exit rdtgroup_exit(void) +{ + unregister_filesystem(&rdt_fs_type); + sysfs_remove_mount_point(fs_kobj, "resctrl"); + kernfs_destroy_root(rdt_root); +} -- 2.13.6