|
@@ -330,8 +330,9 @@ interrupt_base:
|
|
/* If we are faulting a kernel address, we have to use the
|
|
/* If we are faulting a kernel address, we have to use the
|
|
* kernel page tables.
|
|
* kernel page tables.
|
|
*/
|
|
*/
|
|
- andis. r11, r10, 0x8000
|
|
|
|
- beq 3f
|
|
|
|
|
|
+ lis r11, TASK_SIZE@h
|
|
|
|
+ cmplw r10, r11
|
|
|
|
+ blt+ 3f
|
|
lis r11, swapper_pg_dir@h
|
|
lis r11, swapper_pg_dir@h
|
|
ori r11, r11, swapper_pg_dir@l
|
|
ori r11, r11, swapper_pg_dir@l
|
|
|
|
|
|
@@ -464,8 +465,9 @@ interrupt_base:
|
|
/* If we are faulting a kernel address, we have to use the
|
|
/* If we are faulting a kernel address, we have to use the
|
|
* kernel page tables.
|
|
* kernel page tables.
|
|
*/
|
|
*/
|
|
- andis. r11, r10, 0x8000
|
|
|
|
- beq 3f
|
|
|
|
|
|
+ lis r11, TASK_SIZE@h
|
|
|
|
+ cmplw r10, r11
|
|
|
|
+ blt+ 3f
|
|
lis r11, swapper_pg_dir@h
|
|
lis r11, swapper_pg_dir@h
|
|
ori r11, r11, swapper_pg_dir@l
|
|
ori r11, r11, swapper_pg_dir@l
|
|
|
|
|
|
@@ -533,8 +535,9 @@ interrupt_base:
|
|
/* If we are faulting a kernel address, we have to use the
|
|
/* If we are faulting a kernel address, we have to use the
|
|
* kernel page tables.
|
|
* kernel page tables.
|
|
*/
|
|
*/
|
|
- andis. r11, r10, 0x8000
|
|
|
|
- beq 3f
|
|
|
|
|
|
+ lis r11, TASK_SIZE@h
|
|
|
|
+ cmplw r10, r11
|
|
|
|
+ blt+ 3f
|
|
lis r11, swapper_pg_dir@h
|
|
lis r11, swapper_pg_dir@h
|
|
ori r11, r11, swapper_pg_dir@l
|
|
ori r11, r11, swapper_pg_dir@l
|
|
|
|
|