Merge branch 'x86-microcode-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 microcode loader updates from Ingo Molnar: "There are two main changes in this tree: - AMD microcode early loading fixes - some microcode loader source files reorganization" * 'x86-microcode-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86, microcode: Move to a proper location x86, microcode, AMD: Fix early ucode loading x86, microcode: Share native MSR accessing variants x86, ramdisk: Export relocated ramdisk VA
This commit is contained in:
@@ -295,6 +295,8 @@ static void __init reserve_brk(void)
|
||||
_brk_start = 0;
|
||||
}
|
||||
|
||||
u64 relocated_ramdisk;
|
||||
|
||||
#ifdef CONFIG_BLK_DEV_INITRD
|
||||
|
||||
static u64 __init get_ramdisk_image(void)
|
||||
@@ -321,25 +323,24 @@ static void __init relocate_initrd(void)
|
||||
u64 ramdisk_image = get_ramdisk_image();
|
||||
u64 ramdisk_size = get_ramdisk_size();
|
||||
u64 area_size = PAGE_ALIGN(ramdisk_size);
|
||||
u64 ramdisk_here;
|
||||
unsigned long slop, clen, mapaddr;
|
||||
char *p, *q;
|
||||
|
||||
/* We need to move the initrd down into directly mapped mem */
|
||||
ramdisk_here = memblock_find_in_range(0, PFN_PHYS(max_pfn_mapped),
|
||||
area_size, PAGE_SIZE);
|
||||
relocated_ramdisk = memblock_find_in_range(0, PFN_PHYS(max_pfn_mapped),
|
||||
area_size, PAGE_SIZE);
|
||||
|
||||
if (!ramdisk_here)
|
||||
if (!relocated_ramdisk)
|
||||
panic("Cannot find place for new RAMDISK of size %lld\n",
|
||||
ramdisk_size);
|
||||
ramdisk_size);
|
||||
|
||||
/* Note: this includes all the mem currently occupied by
|
||||
the initrd, we rely on that fact to keep the data intact. */
|
||||
memblock_reserve(ramdisk_here, area_size);
|
||||
initrd_start = ramdisk_here + PAGE_OFFSET;
|
||||
memblock_reserve(relocated_ramdisk, area_size);
|
||||
initrd_start = relocated_ramdisk + PAGE_OFFSET;
|
||||
initrd_end = initrd_start + ramdisk_size;
|
||||
printk(KERN_INFO "Allocated new RAMDISK: [mem %#010llx-%#010llx]\n",
|
||||
ramdisk_here, ramdisk_here + ramdisk_size - 1);
|
||||
relocated_ramdisk, relocated_ramdisk + ramdisk_size - 1);
|
||||
|
||||
q = (char *)initrd_start;
|
||||
|
||||
@@ -363,7 +364,7 @@ static void __init relocate_initrd(void)
|
||||
printk(KERN_INFO "Move RAMDISK from [mem %#010llx-%#010llx] to"
|
||||
" [mem %#010llx-%#010llx]\n",
|
||||
ramdisk_image, ramdisk_image + ramdisk_size - 1,
|
||||
ramdisk_here, ramdisk_here + ramdisk_size - 1);
|
||||
relocated_ramdisk, relocated_ramdisk + ramdisk_size - 1);
|
||||
}
|
||||
|
||||
static void __init early_reserve_initrd(void)
|
||||
|
Reference in New Issue
Block a user