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