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: Borislav Petkov <borislav.petkov@amd.com>
 
 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);
 
 struct microcode_ops * __init init_amd_microcode(void)
 {
+       patch = (void *)get_zeroed_page(GFP_KERNEL);
+       if (!patch)
+               return NULL;
+
        return µcode_amd_ops;
 }
 
 void __exit exit_amd_microcode(void)
 {
+       free_page((unsigned long)patch);
 }