Commit f17dc2b0 authored by James Morse's avatar James Morse Committed by Zeng Heng
Browse files

x86/resctrl: Drop __init/__exit on assorted symbols

maillist inclusion
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/I8T2RT

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git/log/?h=mpam/snapshot/v6.7-rc2



---------------------------

Because ARM's MPAM controls are probed using MMIO, resctrl can't be
initialised until enough CPUs are online to have determined the system-wide
supported num_closid.

To allow MPAM to initialise resctrl after __init text has been free'd,
remove all the __init markings from resctrl.

The existing __exit markings cause these functions to be removed by the
linker as it has never been possible to build resctrl as a module. MPAM
has an error interrupt which causes the driver to reset and disable
itself. Remove the __exit markings to allow the MPAM driver to tear down
resctrl.

Signed-off-by: default avatarJames Morse <james.morse@arm.com>
Signed-off-by: default avatarZeng Heng <zengheng4@huawei.com>
parent e1535134
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -481,7 +481,7 @@ void closid_free(int closid);
int alloc_rmid(u32 closid);
void free_rmid(u32 closid, u32 rmid);
int rdt_get_mon_l3_config(struct rdt_resource *r);
void __exit resctrl_mon_resource_exit(void);
void resctrl_mon_resource_exit(void);
void mon_event_count(void *info);
int rdtgroup_mondata_show(struct seq_file *m, void *arg);
void mon_event_read(struct rmid_read *rr, struct rdt_resource *r,
+2 −2
Original line number Diff line number Diff line
@@ -970,7 +970,7 @@ static int dom_data_init(struct rdt_resource *r)
	return err;
}

static void __exit dom_data_exit(struct rdt_resource *r)
static void dom_data_exit(struct rdt_resource *r)
{
	if (!r->mon_capable)
		return;
@@ -1084,7 +1084,7 @@ int __init rdt_get_mon_l3_config(struct rdt_resource *r)
	return 0;
}

void __exit resctrl_mon_resource_exit(void)
void resctrl_mon_resource_exit(void)
{
	struct rdt_resource *r = resctrl_arch_get_resource(RDT_RESOURCE_L3);

+3 −3
Original line number Diff line number Diff line
@@ -2068,7 +2068,7 @@ static struct rftype *rdtgroup_get_rftype_by_name(const char *name)
	return NULL;
}

static void __init thread_throttle_mode_init(void)
static void thread_throttle_mode_init(void)
{
	struct rdt_resource *r = resctrl_arch_get_resource(RDT_RESOURCE_MBA);
	struct rftype *rft;
@@ -4191,7 +4191,7 @@ void resctrl_offline_cpu(unsigned int cpu)
 *
 * Return: 0 on success or -errno
 */
int __init resctrl_init(void)
int resctrl_init(void)
{
	int ret = 0;

@@ -4245,7 +4245,7 @@ int __init resctrl_init(void)
	return ret;
}

void __exit resctrl_exit(void)
void resctrl_exit(void)
{
	debugfs_remove_recursive(debugfs_resctrl);
	unregister_filesystem(&rdt_fs_type);
+2 −2
Original line number Diff line number Diff line
@@ -400,7 +400,7 @@ void resctrl_arch_reset_rmid_all(struct rdt_resource *r, struct rdt_domain *d);
extern unsigned int resctrl_rmid_realloc_threshold;
extern unsigned int resctrl_rmid_realloc_limit;

int __init resctrl_init(void);
void __exit resctrl_exit(void);
int resctrl_init(void);
void resctrl_exit(void);

#endif /* _RESCTRL_H */