Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 fixes from Ingo Molnar: "Misc fixes: - two boot crash fixes - unwinder fixes - kexec related kernel direct mappings enhancements/fixes - more Clang support quirks - minor cleanups - Documentation fixes" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/intel_rdt: Fix a typo in Documentation x86/build: Don't add -maccumulate-outgoing-args w/o compiler support x86/boot/32: Fix UP boot on Quark and possibly other platforms x86/mm/32: Set the '__vmalloc_start_set' flag in initmem_init() x86/kexec/64: Use gbpages for identity mappings if available x86/mm: Add support for gbpages to kernel_ident_mapping_init() x86/boot: Declare error() as noreturn x86/mm/kaslr: Use the _ASM_MUL macro for multiplication to work around Clang incompatibility x86/mm: Fix boot crash caused by incorrect loop count calculation in sync_global_pgds() x86/asm: Don't use RBP as a temporary register in csum_partial_copy_generic() x86/microcode/AMD: Remove redundant NULL check on mc
Esse commit está contido em:
@@ -94,10 +94,10 @@ __setup("noexec32=", nonx32_setup);
|
||||
*/
|
||||
void sync_global_pgds(unsigned long start, unsigned long end)
|
||||
{
|
||||
unsigned long address;
|
||||
unsigned long addr;
|
||||
|
||||
for (address = start; address <= end; address += PGDIR_SIZE) {
|
||||
pgd_t *pgd_ref = pgd_offset_k(address);
|
||||
for (addr = start; addr <= end; addr = ALIGN(addr + 1, PGDIR_SIZE)) {
|
||||
pgd_t *pgd_ref = pgd_offset_k(addr);
|
||||
const p4d_t *p4d_ref;
|
||||
struct page *page;
|
||||
|
||||
@@ -106,7 +106,7 @@ void sync_global_pgds(unsigned long start, unsigned long end)
|
||||
* handle synchonization on p4d level.
|
||||
*/
|
||||
BUILD_BUG_ON(pgd_none(*pgd_ref));
|
||||
p4d_ref = p4d_offset(pgd_ref, address);
|
||||
p4d_ref = p4d_offset(pgd_ref, addr);
|
||||
|
||||
if (p4d_none(*p4d_ref))
|
||||
continue;
|
||||
@@ -117,8 +117,8 @@ void sync_global_pgds(unsigned long start, unsigned long end)
|
||||
p4d_t *p4d;
|
||||
spinlock_t *pgt_lock;
|
||||
|
||||
pgd = (pgd_t *)page_address(page) + pgd_index(address);
|
||||
p4d = p4d_offset(pgd, address);
|
||||
pgd = (pgd_t *)page_address(page) + pgd_index(addr);
|
||||
p4d = p4d_offset(pgd, addr);
|
||||
/* the pgt_lock only for Xen */
|
||||
pgt_lock = &pgd_page_get_mm(page)->page_table_lock;
|
||||
spin_lock(pgt_lock);
|
||||
|
Referência em uma nova issue
Block a user