Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 96b0ee45 authored by Borislav Petkov's avatar Borislav Petkov Committed by Borislav Petkov
Browse files

x86, microcode, AMD: Add a reusable buffer



Add a simple 4K page which gets allocated on driver init and freed on
driver exit instead of vmalloc'ing small buffers for each ucode patch.

Signed-off-by: default avatarBorislav Petkov <borislav.petkov@amd.com>
parent f72c1a57
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -71,6 +71,9 @@ struct microcode_amd {

static struct equiv_cpu_entry *equiv_cpu_table;

/* page-sized ucode patch buffer */
void *patch;

static int collect_cpu_info_amd(int cpu, struct cpu_signature *csig)
{
	struct cpuinfo_x86 *c = &cpu_data(cpu);
@@ -351,9 +354,14 @@ static struct microcode_ops microcode_amd_ops = {

struct microcode_ops * __init init_amd_microcode(void)
{
	patch = (void *)get_zeroed_page(GFP_KERNEL);
	if (!patch)
		return NULL;

	return &microcode_amd_ops;
}

void __exit exit_amd_microcode(void)
{
	free_page((unsigned long)patch);
}