All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@suse.de>
To: linux-kernel@vger.kernel.org, stable@kernel.org, jejb@kernel.org
Cc: Justin Forbes <jmforbes@linuxtx.org>,
	Zwane Mwaikambo <zwane@arm.linux.org.uk>,
	"Theodore Ts'o" <tytso@mit.edu>,
	Randy Dunlap <rdunlap@xenotime.net>,
	Dave Jones <davej@redhat.com>,
	Chuck Wolber <chuckw@quantumlinux.com>,
	Chris Wedgwood <reviews@ml.cw.f00f.org>,
	Michael Krufky <mkrufky@linuxtv.org>,
	Chuck Ebbert <cebbert@redhat.com>,
	Domenico Andreoli <cavokz@gmail.com>, Willy Tarreau <w@1wt.eu>,
	Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
	torvalds@linux-foundation.org, akpm@linux-foundation.org,
	alan@lxorguk.ukuu.org.uk,
	Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>,
	Jan Beulich <jbeulich@novell.com>, Ingo Molnar <mingo@elte.hu>
Subject: [patch 05/10] x86: set PAE PHYSICAL_MASK_SHIFT to 44 bits.
Date: Mon, 23 Jun 2008 16:04:55 -0700	[thread overview]
Message-ID: <20080623230455.GE29853@suse.de> (raw)
In-Reply-To: <20080623230417.GA29853@suse.de>

[-- Attachment #1: x86-set-pae-physical_mask_shift-to-44-bits.patch --]
[-- Type: text/plain, Size: 1697 bytes --]

2.6.25.9-stable review patch.  If anyone has any objections, please let
us know.

------------------ 
From: Jeremy Fitzhardinge <jeremy@goop.org>

commit ad524d46f36bbc32033bb72ba42958f12bf49b06 upstream

When a 64-bit x86 processor runs in 32-bit PAE mode, a pte can
potentially have the same number of physical address bits as the
64-bit host ("Enhanced Legacy PAE Paging").  This means, in theory,
we could have up to 52 bits of physical address in a pte.

The 32-bit kernel uses a 32-bit unsigned long to represent a pfn.
This means that it can only represent physical addresses up to 32+12=44
bits wide.  Rather than widening pfns everywhere, just set 2^44 as the
Linux x86_32-PAE architectural limit for physical address size.

This is a bugfix for two cases:
1. running a 32-bit PAE kernel on a machine with
  more than 64GB RAM.
2. running a 32-bit PAE Xen guest on a host machine with
  more than 64GB RAM

In both cases, a pte could need to have more than 36 bits of physical,
and masking it to 36-bits will cause fairly severe havoc.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Cc: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
 include/asm-x86/page_32.h |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/include/asm-x86/page_32.h
+++ b/include/asm-x86/page_32.h
@@ -14,7 +14,8 @@
 #define __PAGE_OFFSET		_AC(CONFIG_PAGE_OFFSET, UL)
 
 #ifdef CONFIG_X86_PAE
-#define __PHYSICAL_MASK_SHIFT	36
+/* 44=32+12, the limit we can fit into an unsigned long pfn */
+#define __PHYSICAL_MASK_SHIFT	44
 #define __VIRTUAL_MASK_SHIFT	32
 #define PAGETABLE_LEVELS	3
 

-- 

  parent reply	other threads:[~2008-06-23 23:08 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20080623225737.837265824@mini.kroah.org>
2008-06-23 23:04 ` [patch 00/10] 2.6.28.9-rc2 review Greg KH
2008-06-23 23:04   ` [patch 08/10] hwmon: (lm85) Fix function RANGE_TO_REG() Greg KH
2008-06-23 23:04   ` [patch 09/10] hwmon: (adt7473) Initialize max_duty_at_overheat before use Greg KH
2008-06-23 23:04   ` [patch 10/10] Fix ZERO_PAGE breakage with vmware Greg KH
2008-06-23 23:28     ` Linus Torvalds
2008-06-24  6:04       ` Greg KH
2008-06-23 23:04   ` Greg KH [this message]
2008-06-23 23:04   ` [patch 06/10] Add return value to reserve_bootmem_node() Greg KH
2008-06-24 11:06     ` Adrian Bunk
2008-06-24 21:07       ` Greg KH
2008-06-23 23:05   ` [patch 07/10] watchdog: hpwdt: fix use of inline assembly Greg KH
2008-06-23 23:05   ` [patch 01/10] atl1: relax eeprom mac address error check Greg KH
2008-06-23 23:05   ` [patch 02/10] Reinstate ZERO_PAGE optimization in get_user_pages() and fix XIP Greg KH
2008-06-23 23:05   ` [patch 03/10] sctp: Make sure N * sizeof(union sctp_addr) does not overflow Greg KH
2008-06-23 23:05   ` [patch 04/10] x86: use BOOTMEM_EXCLUSIVE on 32-bit Greg KH
2008-06-23 23:22   ` [patch 00/10] 2.6.28.9-rc2 review Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080623230455.GE29853@suse.de \
    --to=gregkh@suse.de \
    --cc=akpm@linux-foundation.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=cavokz@gmail.com \
    --cc=cebbert@redhat.com \
    --cc=chuckw@quantumlinux.com \
    --cc=davej@redhat.com \
    --cc=jbeulich@novell.com \
    --cc=jejb@kernel.org \
    --cc=jeremy.fitzhardinge@citrix.com \
    --cc=jmforbes@linuxtx.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=mkrufky@linuxtv.org \
    --cc=rbranco@la.checkpoint.com \
    --cc=rdunlap@xenotime.net \
    --cc=reviews@ml.cw.f00f.org \
    --cc=stable@kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=tytso@mit.edu \
    --cc=w@1wt.eu \
    --cc=zwane@arm.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.