[PATCH] ppc32: fix CONFIG_TASK_SIZE handling on 44x
Eugene Surovegin
ebs at ebshome.net
Wed May 18 20:21:04 EST 2005
Hi!
This patch fixed CONFIG_TASK_SIZE handling on 44x. Currently
head_44x.S hardcodes 0x80000000, which breaks if user chooses to
change TASK_SIZE (e.g. for 3G user-space). Tested on Ocotea in 3G/1G
configuration.
Signed-off-by: Eugene Surovegin <ebs at ebshome.net>
Index: arch/ppc/kernel/head_44x.S
===================================================================
--- 59c3218467807e1793fb4fc5d90141e072ab2212/arch/ppc/kernel/head_44x.S (mode:100644)
+++ uncommitted/arch/ppc/kernel/head_44x.S (mode:100644)
@@ -330,8 +330,9 @@
/* If we are faulting a kernel address, we have to use the
* kernel page tables.
*/
- andis. r11, r10, 0x8000
- beq 3f
+ lis r11, TASK_SIZE at h
+ cmplw r10, r11
+ blt+ 3f
lis r11, swapper_pg_dir at h
ori r11, r11, swapper_pg_dir at l
@@ -464,8 +465,9 @@
/* If we are faulting a kernel address, we have to use the
* kernel page tables.
*/
- andis. r11, r10, 0x8000
- beq 3f
+ lis r11, TASK_SIZE at h
+ cmplw r10, r11
+ blt+ 3f
lis r11, swapper_pg_dir at h
ori r11, r11, swapper_pg_dir at l
@@ -533,8 +535,9 @@
/* If we are faulting a kernel address, we have to use the
* kernel page tables.
*/
- andis. r11, r10, 0x8000
- beq 3f
+ lis r11, TASK_SIZE at h
+ cmplw r10, r11
+ blt+ 3f
lis r11, swapper_pg_dir at h
ori r11, r11, swapper_pg_dir at l
More information about the Linuxppc-embedded
mailing list