[PATCH] adjust BAT mapping according to max_low_mem
Val Henson
val at nmt.edu
Sat Feb 9 07:36:04 EST 2002
I'm testing highmem by setting max_low_mem to 64MB and using 256MB RAM
total (this does not trigger my SCSI bug). I had to change a few
things in adjust_total_lowmem to force it to _not_ BAT map of all the
RAM. I think the printout of residual is wrong but I'm not sure.
-VAL
# This is a BitKeeper generated patch for the following project:
# Project Name: Linux 2.4 for PowerPC development tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
# ChangeSet 1.201 -> 1.202
# arch/ppc/mm/pgtable.c 1.15 -> 1.16
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/02/08 val at evilcat.fsmlabs.com 1.202
# Fix bat calculations to take into account max_low_mem. This maps only the
# max_low_mem RAM with BATs, so you can test the highmem code on machines with
# less ram. The printout of "residual" is probably wrong, since it now only
# lists the residual lowmem, rather than all residual mem.
# --------------------------------------------
#
diff -Nru a/arch/ppc/mm/pgtable.c b/arch/ppc/mm/pgtable.c
--- a/arch/ppc/mm/pgtable.c Fri Feb 8 13:29:29 2002
+++ b/arch/ppc/mm/pgtable.c Fri Feb 8 13:29:29 2002
@@ -205,7 +205,7 @@
#ifdef HAVE_BATS
unsigned long bat_max = 0x10000000;
unsigned long align;
- unsigned long ram = total_lowmem;
+ unsigned long ram;
int is601 = 0;
/* 601s have smaller BATs */
@@ -213,6 +213,16 @@
bat_max = 0x00800000;
is601 = 1;
}
+
+ /* adjust BAT block size to max_low_mem */
+ if (max_low_mem < bat_max)
+ bat_max = max_low_mem;
+
+ /* adjust lowmem size to max_low_mem */
+ if (max_low_mem < total_lowmem)
+ total_lowmem = max_low_mem;
+
+ ram = total_lowmem;
/* Make sure we don't map a block larger than the
smallest alignment of the physical address. */
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
More information about the Linuxppc-dev
mailing list