Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 267711 Details for
Bug 361159
=sys-kernel/gentoo-sources-2.6.38-r1: resuming from hibernate fails
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
reverts commit ff518ea26654e05d325d996f6e3a7f5f569cc2d5
revert-ff518ea26654e05d325d996f6e3a7f5f569cc2d5.patch (text/plain), 3.27 KB, created by
Stefan Huber
on 2011-03-29 19:52:28 UTC
(
hide
)
Description:
reverts commit ff518ea26654e05d325d996f6e3a7f5f569cc2d5
Filename:
MIME Type:
Creator:
Stefan Huber
Created:
2011-03-29 19:52:28 UTC
Size:
3.27 KB
patch
obsolete
>diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c >index 5655c22..2d2673c 100644 >--- a/arch/x86/kernel/head64.c >+++ b/arch/x86/kernel/head64.c >@@ -77,6 +77,9 @@ void __init x86_64_start_kernel(char * real_mode_data) > /* Make NULL pointers segfault */ > zap_identity_mappings(); > >+ /* Cleanup the over mapped high alias */ >+ cleanup_highmap(); >+ > max_pfn_mapped = KERNEL_IMAGE_SIZE >> PAGE_SHIFT; > > for (i = 0; i < NUM_EXCEPTION_VECTORS; i++) { >diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c >index e543fe9..d3cfe26 100644 >--- a/arch/x86/kernel/setup.c >+++ b/arch/x86/kernel/setup.c >@@ -297,9 +297,6 @@ static void __init init_gbpages(void) > static inline void init_gbpages(void) > { > } >-static void __init cleanup_highmap(void) >-{ >-} > #endif > > static void __init reserve_brk(void) >@@ -925,8 +922,6 @@ void __init setup_arch(char **cmdline_p) > */ > reserve_brk(); > >- cleanup_highmap(); >- > memblock.current_limit = get_max_mapped(); > memblock_x86_fill(); > >diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c >index f13ff3a..947f42a 100644 >--- a/arch/x86/mm/init.c >+++ b/arch/x86/mm/init.c >@@ -279,6 +279,25 @@ unsigned long __init_refok init_memory_mapping(unsigned long start, > load_cr3(swapper_pg_dir); > #endif > >+#ifdef CONFIG_X86_64 >+ if (!after_bootmem && !start) { >+ pud_t *pud; >+ pmd_t *pmd; >+ >+ mmu_cr4_features = read_cr4(); >+ >+ /* >+ * _brk_end cannot change anymore, but it and _end may be >+ * located on different 2M pages. cleanup_highmap(), however, >+ * can only consider _end when it runs, so destroy any >+ * mappings beyond _brk_end here. >+ */ >+ pud = pud_offset(pgd_offset_k(_brk_end), _brk_end); >+ pmd = pmd_offset(pud, _brk_end - 1); >+ while (++pmd <= pmd_offset(pud, (unsigned long)_end - 1)) >+ pmd_clear(pmd); >+ } >+#endif > __flush_tlb_all(); > > if (!after_bootmem && e820_table_end > e820_table_start) >diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c >index 68f9921..c14a542 100644 >--- a/arch/x86/mm/init_64.c >+++ b/arch/x86/mm/init_64.c >@@ -51,7 +51,6 @@ > #include <asm/numa.h> > #include <asm/cacheflush.h> > #include <asm/init.h> >-#include <asm/setup.h> > > static int __init parse_direct_gbpages_off(char *arg) > { >@@ -294,18 +293,18 @@ void __init init_extra_mapping_uc(unsigned long phys, unsigned long size) > * to the compile time generated pmds. This results in invalid pmds up > * to the point where we hit the physaddr 0 mapping. > * >- * We limit the mappings to the region from _text to _brk_end. _brk_end >- * is rounded up to the 2MB boundary. This catches the invalid pmds as >+ * We limit the mappings to the region from _text to _end. _end is >+ * rounded up to the 2MB boundary. This catches the invalid pmds as > * well, as they are located before _text: > */ > void __init cleanup_highmap(void) > { > unsigned long vaddr = __START_KERNEL_map; >- unsigned long vaddr_end = __START_KERNEL_map + (max_pfn_mapped << PAGE_SHIFT); >- unsigned long end = roundup((unsigned long)_brk_end, PMD_SIZE) - 1; >+ unsigned long end = roundup((unsigned long)_end, PMD_SIZE) - 1; > pmd_t *pmd = level2_kernel_pgt; >+ pmd_t *last_pmd = pmd + PTRS_PER_PMD; > >- for (; vaddr + PMD_SIZE - 1 < vaddr_end; pmd++, vaddr += PMD_SIZE) { >+ for (; pmd < last_pmd; pmd++, vaddr += PMD_SIZE) { > if (pmd_none(*pmd)) > continue; > if (vaddr < (unsigned long) _text || vaddr > end)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 361159
: 267711 |
269849