Loading arch/arc/include/asm/processor.h +16 −19 Original line number Diff line number Diff line Loading @@ -100,29 +100,26 @@ extern unsigned int get_wchan(struct task_struct *p); #endif /* !__ASSEMBLY__ */ /* Kernels Virtual memory area. * Unlike other architectures(MIPS, sh, cris ) ARC 700 does not have a * "kernel translated" region (like KSEG2 in MIPS). So we use a upper part * of the translated bottom 2GB for kernel virtual memory and protect * these pages from user accesses by disabling Ru, Eu and Wu. /* * System Memory Map on ARC * * ---------------------------- (lower 2G, Translated) ------------------------- * 0x0000_0000 0x5FFF_FFFF (user vaddr: TASK_SIZE) * 0x6000_0000 0x6FFF_FFFF (reserved gutter between U/K) * 0x7000_0000 0x7FFF_FFFF (kvaddr: vmalloc/modules/pkmap..) * * PAGE_OFFSET ---------------- (Upper 2G, Untranslated) ----------------------- * 0x8000_0000 0xBFFF_FFFF (kernel direct mapped) * 0xC000_0000 0xFFFF_FFFF (peripheral uncached space) * ----------------------------------------------------------------------------- */ #define VMALLOC_SIZE (0x10000000) /* 256M */ #define VMALLOC_START (PAGE_OFFSET - VMALLOC_SIZE) #define VMALLOC_END (PAGE_OFFSET) #define VMALLOC_START 0x70000000 #define VMALLOC_SIZE (PAGE_OFFSET - VMALLOC_START) #define VMALLOC_END (VMALLOC_START + VMALLOC_SIZE) /* Most of the architectures seem to be keeping some kind of padding between * userspace TASK_SIZE and PAGE_OFFSET. i.e TASK_SIZE != PAGE_OFFSET. */ #define USER_KERNEL_GUTTER 0x10000000 /* User address space: * On ARC700, CPU allows the entire lower half of 32 bit address space to be * translated. Thus potentially 2G (0:0x7FFF_FFFF) could be User vaddr space. * However we steal 256M for kernel addr (0x7000_0000:0x7FFF_FFFF) and another * 256M (0x6000_0000:0x6FFF_FFFF) is gutter between user/kernel spaces * Thus total User vaddr space is (0:0x5FFF_FFFF) */ #define TASK_SIZE (PAGE_OFFSET - VMALLOC_SIZE - USER_KERNEL_GUTTER) #define TASK_SIZE (VMALLOC_START - USER_KERNEL_GUTTER) #define STACK_TOP TASK_SIZE #define STACK_TOP_MAX STACK_TOP Loading arch/arc/include/uapi/asm/page.h +1 −1 File changed.Contains only whitespace changes. Show changes Loading
arch/arc/include/asm/processor.h +16 −19 Original line number Diff line number Diff line Loading @@ -100,29 +100,26 @@ extern unsigned int get_wchan(struct task_struct *p); #endif /* !__ASSEMBLY__ */ /* Kernels Virtual memory area. * Unlike other architectures(MIPS, sh, cris ) ARC 700 does not have a * "kernel translated" region (like KSEG2 in MIPS). So we use a upper part * of the translated bottom 2GB for kernel virtual memory and protect * these pages from user accesses by disabling Ru, Eu and Wu. /* * System Memory Map on ARC * * ---------------------------- (lower 2G, Translated) ------------------------- * 0x0000_0000 0x5FFF_FFFF (user vaddr: TASK_SIZE) * 0x6000_0000 0x6FFF_FFFF (reserved gutter between U/K) * 0x7000_0000 0x7FFF_FFFF (kvaddr: vmalloc/modules/pkmap..) * * PAGE_OFFSET ---------------- (Upper 2G, Untranslated) ----------------------- * 0x8000_0000 0xBFFF_FFFF (kernel direct mapped) * 0xC000_0000 0xFFFF_FFFF (peripheral uncached space) * ----------------------------------------------------------------------------- */ #define VMALLOC_SIZE (0x10000000) /* 256M */ #define VMALLOC_START (PAGE_OFFSET - VMALLOC_SIZE) #define VMALLOC_END (PAGE_OFFSET) #define VMALLOC_START 0x70000000 #define VMALLOC_SIZE (PAGE_OFFSET - VMALLOC_START) #define VMALLOC_END (VMALLOC_START + VMALLOC_SIZE) /* Most of the architectures seem to be keeping some kind of padding between * userspace TASK_SIZE and PAGE_OFFSET. i.e TASK_SIZE != PAGE_OFFSET. */ #define USER_KERNEL_GUTTER 0x10000000 /* User address space: * On ARC700, CPU allows the entire lower half of 32 bit address space to be * translated. Thus potentially 2G (0:0x7FFF_FFFF) could be User vaddr space. * However we steal 256M for kernel addr (0x7000_0000:0x7FFF_FFFF) and another * 256M (0x6000_0000:0x6FFF_FFFF) is gutter between user/kernel spaces * Thus total User vaddr space is (0:0x5FFF_FFFF) */ #define TASK_SIZE (PAGE_OFFSET - VMALLOC_SIZE - USER_KERNEL_GUTTER) #define TASK_SIZE (VMALLOC_START - USER_KERNEL_GUTTER) #define STACK_TOP TASK_SIZE #define STACK_TOP_MAX STACK_TOP Loading