Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 288751 Details for
Bug 294811
kernel BUG at mm/rmap.c:590 during suspend/resume testing
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
xen-unstable 12402:ade94aa072c5 ported to 2.6.9-67.EL
xen-unstable-12402-ade94aa072c5 (text/plain), 5.20 KB, created by
Ian Campbell
on 2007-12-14 09:06:09 UTC
(
hide
)
Description:
xen-unstable 12402:ade94aa072c5 ported to 2.6.9-67.EL
Filename:
MIME Type:
Creator:
Ian Campbell
Created:
2007-12-14 09:06:09 UTC
Size:
5.20 KB
patch
obsolete
># HG changeset patch ># User kfraser@localhost.localdomain ># Node ID ade94aa072c51e7b0834405569436ab1eb334d9a ># Parent 9d88f224b7f1c655515765e8cf483951ac1a1ad3 >[LINUX] Preserve flags when converting PTEs from machine to phys. >Signed-off-by: John Byrne <john.l.byrne@hp.com> >xen-unstable changeset: 12402:ade94aa072c51e7b0834405569436ab1eb334d9a >xen-unstable date: Tue Nov 14 11:57:53 2006 +0000 > >Index: linux-2.6.9-67.EL/include/asm-i386/mach-xen/asm/maddr.h >=================================================================== >--- linux-2.6.9-67.EL.orig/include/asm-i386/mach-xen/asm/maddr.h 2007-11-26 10:52:23.000000000 +0000 >+++ linux-2.6.9-67.EL/include/asm-i386/mach-xen/asm/maddr.h 2007-11-29 12:05:57.000000000 +0000 >@@ -127,6 +127,7 @@ > machine = (machine << PAGE_SHIFT) | (phys & ~PAGE_MASK); > return machine; > } >+ > static inline paddr_t machine_to_phys(maddr_t machine) > { > paddr_t phys = mfn_to_pfn(machine >> PAGE_SHIFT); >@@ -134,6 +135,19 @@ > return phys; > } > >+static inline paddr_t pte_machine_to_phys(maddr_t machine) >+{ >+ /* >+ * In PAE mode, the NX bit needs to be dealt with in the value >+ * passed to mfn_to_pfn(). On x86_64, we need to mask it off, >+ * but for i386 the conversion to ulong for the argument will >+ * clip it off. >+ */ >+ paddr_t phys = mfn_to_pfn(machine >> PAGE_SHIFT); >+ phys = (phys << PAGE_SHIFT) | (machine & ~PHYSICAL_PAGE_MASK); >+ return phys; >+} >+ > /* VIRT <-> MACHINE conversion */ > #define virt_to_machine(v) (phys_to_machine(__pa(v))) > #define virt_to_mfn(v) (pfn_to_mfn(__pa(v) >> PAGE_SHIFT)) >Index: linux-2.6.9-67.EL/include/asm-i386/mach-xen/asm/page.h >=================================================================== >--- linux-2.6.9-67.EL.orig/include/asm-i386/mach-xen/asm/page.h 2007-11-26 10:52:23.000000000 +0000 >+++ linux-2.6.9-67.EL/include/asm-i386/mach-xen/asm/page.h 2007-11-29 12:05:57.000000000 +0000 >@@ -8,6 +8,16 @@ > #define PAGE_SIZE (1UL << PAGE_SHIFT) > #define PAGE_MASK (~(PAGE_SIZE-1)) > >+#ifdef CONFIG_X86_PAE >+#define __PHYSICAL_MASK_SHIFT 36 >+#define __PHYSICAL_MASK ((1ULL << __PHYSICAL_MASK_SHIFT) - 1) >+#define PHYSICAL_PAGE_MASK (~((1ULL << PAGE_SHIFT) - 1) & __PHYSICAL_MASK) >+#else >+#define __PHYSICAL_MASK_SHIFT 32 >+#define __PHYSICAL_MASK (~0UL) >+#define PHYSICAL_PAGE_MASK (PAGE_MASK & __PHYSICAL_MASK) >+#endif >+ > #define LARGE_PAGE_MASK (~(LARGE_PAGE_SIZE-1)) > #define LARGE_PAGE_SIZE (1UL << PMD_SHIFT) > >@@ -82,7 +92,7 @@ > > if (x.pte_low) { > ret = x.pte_low | (unsigned long long)x.pte_high << 32; >- ret = machine_to_phys(ret) | 1; >+ ret = pte_machine_to_phys(ret) | 1; > } else { > ret = 0; > } >@@ -91,13 +101,13 @@ > static inline unsigned long long pmd_val(pmd_t x) > { > unsigned long long ret = x.pmd; >- if (ret) ret = machine_to_phys(ret) | 1; >+ if (ret) ret = pte_machine_to_phys(ret) | 1; > return ret; > } > static inline unsigned long long pgd_val(pgd_t x) > { > unsigned long long ret = x.pgd; >- if (ret) ret = machine_to_phys(ret) | 1; >+ if (ret) ret = pte_machine_to_phys(ret) | 1; > return ret; > } > static inline unsigned long long pte_val_ma(pte_t x) >@@ -114,7 +124,8 @@ > #define pgprot_val(x) ((x).pgprot) > #include <asm/maddr.h> > #define boot_pte_t pte_t /* or would you rather have a typedef */ >-#define pte_val(x) (((x).pte_low & 1) ? machine_to_phys((x).pte_low) : \ >+#define pte_val(x) (((x).pte_low & 1) ? \ >+ pte_machine_to_phys((x).pte_low) : \ > (x).pte_low) > #define pte_val_ma(x) ((x).pte_low) > #define __pte(x) ({ unsigned long _x = (x); \ >@@ -124,7 +135,7 @@ > static inline unsigned long pgd_val(pgd_t x) > { > unsigned long ret = x.pgd; >- if (ret) ret = machine_to_phys(ret) | 1; >+ if (ret) ret = pte_machine_to_phys(ret) | 1; > return ret; > } > #define HPAGE_SHIFT 22 >Index: linux-2.6.9-67.EL/include/asm-x86_64/mach-xen/asm/maddr.h >=================================================================== >--- linux-2.6.9-67.EL.orig/include/asm-x86_64/mach-xen/asm/maddr.h 2007-11-26 10:52:23.000000000 +0000 >+++ linux-2.6.9-67.EL/include/asm-x86_64/mach-xen/asm/maddr.h 2007-11-29 12:05:57.000000000 +0000 >@@ -127,6 +127,14 @@ > return phys; > } > >+static inline paddr_t pte_machine_to_phys(maddr_t machine) >+{ >+ paddr_t phys; >+ phys = mfn_to_pfn((machine & PHYSICAL_PAGE_MASK) >> PAGE_SHIFT); >+ phys = (phys << PAGE_SHIFT) | (machine & ~PHYSICAL_PAGE_MASK); >+ return phys; >+} >+ > /* VIRT <-> MACHINE conversion */ > #define virt_to_machine(v) (phys_to_machine(__pa(v))) > #define virt_to_mfn(v) (pfn_to_mfn(__pa(v) >> PAGE_SHIFT)) >Index: linux-2.6.9-67.EL/include/asm-x86_64/mach-xen/asm/page.h >=================================================================== >--- linux-2.6.9-67.EL.orig/include/asm-x86_64/mach-xen/asm/page.h 2007-11-26 10:52:23.000000000 +0000 >+++ linux-2.6.9-67.EL/include/asm-x86_64/mach-xen/asm/page.h 2007-11-29 12:08:39.000000000 +0000 >@@ -34,11 +34,13 @@ > #define PAGE_SIZE (1UL << PAGE_SHIFT) > #endif > #define PAGE_MASK (~(PAGE_SIZE-1)) >+ > /* See Documentation/x86_64/mm.txt for a description of the memory map. */ > #define __PHYSICAL_MASK_SHIFT 40 > #define __PHYSICAL_MASK ((1UL << __PHYSICAL_MASK_SHIFT) - 1) > #define __VIRTUAL_MASK_SHIFT 48 /* P3: Incorrect, we use 39 in RHEL 4 */ > #define __VIRTUAL_MASK ((1UL << __VIRTUAL_MASK_SHIFT) - 1) >+ > #define PHYSICAL_PAGE_MASK (~(PAGE_SIZE-1) & (__PHYSICAL_MASK << PAGE_SHIFT)) > #define PTE_MASK PHYSICAL_PAGE_MASK >
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 294811
:
198411
|
288051
| 288751 |
288761
|
288771
|
288781
|
288791
|
288801