Commit 57df636c authored by Juergen Gross's avatar Juergen Gross Committed by Borislav Petkov
Browse files

x86/mtrr: Remove set_all callback from struct mtrr_ops



Instead of using an indirect call to mtrr_if->set_all just call the only
possible target cache_cpu_init() directly. Remove the set_all function
pointer from struct mtrr_ops.

Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
Link: https://lore.kernel.org/r/20221102074713.21493-9-jgross@suse.com


Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
parent 7d71db53
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -843,7 +843,6 @@ int positive_have_wrcomb(void)
 * Generic structure...
 */
const struct mtrr_ops generic_mtrr_ops = {
	.set_all		= cache_cpu_init,
	.get			= generic_get_mtrr,
	.get_free_region	= generic_get_free_region,
	.set			= generic_set_mtrr,
+5 −5
Original line number Diff line number Diff line
@@ -170,15 +170,15 @@ static int mtrr_rendezvous_handler(void *info)
	 * saved, and we want to replicate that across all the cpus that come
	 * online (either at the end of boot or resume or during a runtime cpu
	 * online). If we're doing that, @reg is set to something special and on
	 * all the cpu's we do mtrr_if->set_all() (On the logical cpu that
	 * all the CPUs we do cache_cpu_init() (On the logical CPU that
	 * started the boot/resume sequence, this might be a duplicate
	 * set_all()).
	 * cache_cpu_init()).
	 */
	if (data->smp_reg != ~0U) {
		mtrr_if->set(data->smp_reg, data->smp_base,
			     data->smp_size, data->smp_type);
	} else if (mtrr_aps_delayed_init || !cpu_online(smp_processor_id())) {
		mtrr_if->set_all();
		cache_cpu_init();
	}
	return 0;
}
@@ -770,7 +770,7 @@ void __init mtrr_bp_init(void)

			if (mtrr_cleanup(phys_addr)) {
				changed_by_mtrr_cleanup = 1;
				mtrr_if->set_all();
				cache_cpu_init();
			}
		}
	}
@@ -856,7 +856,7 @@ void mtrr_bp_restore(void)
	if (!memory_caching_control)
		return;

	mtrr_if->set_all();
	cache_cpu_init();
}

static int __init mtrr_init_finialize(void)
+0 −2
Original line number Diff line number Diff line
@@ -16,8 +16,6 @@ struct mtrr_ops {
	u32	vendor;
	void	(*set)(unsigned int reg, unsigned long base,
		       unsigned long size, mtrr_type type);
	void	(*set_all)(void);

	void	(*get)(unsigned int reg, unsigned long *base,
		       unsigned long *size, mtrr_type *type);
	int	(*get_free_region)(unsigned long base, unsigned long size,