1. 13 Jan, 2019 1 commit
  2. 01 Apr, 2015 1 commit
  3. 10 Feb, 2015 1 commit
  4. 01 Feb, 2013 1 commit
  5. 23 Jan, 2013 1 commit
  6. 12 Dec, 2012 1 commit
  7. 16 Oct, 2012 1 commit
  8. 11 Oct, 2012 1 commit
  9. 29 Oct, 2010 1 commit
    • David Daney's avatar
      MIPS: Make TASK_SIZE reflect proper size for both 32 and 64 bit processes. · 949e51be
      David Daney authored
      The TASK_SIZE macro should reflect the size of a user process virtual
      address space.  Previously for 64-bit kernels, this was not the case.
      The immediate cause of pain was in
      hugetlbfs/inode.c:hugetlb_get_unmapped_area() where 32-bit processes
      trying to mmap a huge page would be served a page with an address
      outside of the 32-bit address range.  But there are other uses of
      TASK_SIZE in the kernel as well that would like an accurate value.
      
      The new definition is nice because it now makes TASK_SIZE and
      TASK_SIZE_OF() yield the same value for any given process.
      
      For 32-bit kernels there should be no change, although I did factor
      out some code in asm/processor.h that became identical for the 32-bit and
      64-bit cases.
      
      __UA_LIMIT is now set to ~((1 << SEGBITS) - 1) for 64-bit kernels.
      This should eliminate the possibility of getting a
      AddressErrorException in the kernel for addresses that pass the
      access_ok() test.
      
      With the patch applied, I can still run o32, n32 and n64 processes,
      and have an o32 shell fork/exec both n32 and n64 processes.
      Signed-off-by: default avatarDavid Daney <ddaney@caviumnetworks.com>
      To: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/1701/
      949e51be
  10. 26 Oct, 2010 1 commit
  11. 30 Apr, 2010 1 commit
    • David Daney's avatar
      MIPS: Don't vmap things at address zero. · c8f3cc0b
      David Daney authored
      In the 64-bit kernel we use swapper_pg_dir for three different things.
      
      1) xuseg mappings for kernel threads.
      
      2) vmap mappings for all kernel-space accesses in xkseg.
      
      3) vmap mappings for kernel modules in ksseg (kseg2).
      
      Due to how the TLB refill handlers work, any mapping established in
      xkseg or ksseg will also establish a xuseg mapping that should never
      be used by the kernel.
      
      In order to be able to use exceptions to trap NULL pointer
      dereferences, we need to ensure that nothing is mapped at address
      zero.  Since vmap mappings in xkseg are reflected in xuseg, this means
      we need to ensure that there are no vmap mappings established at the
      start of xkseg.  So we move back VMALLOC_START to avoid establishing
      vmap mappings at the start of xkseg.
      Signed-off-by: default avatarDavid Daney <ddaney@caviumnetworks.com>
      To: linux-mips@linux-mips.org
      Patchwork: http://patchwork.linux-mips.org/patch/1129/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      c8f3cc0b
  12. 27 Feb, 2010 2 commits
  13. 02 Feb, 2010 1 commit
  14. 17 Sep, 2009 1 commit
    • Wu Fei's avatar
      MIPS: Shrink the size of tlb handler · e0cc87f5
      Wu Fei authored
      By combining swapper_pg_dir and module_pg_dir, several if conditions
      can be eliminated from the tlb exception handler. The reason they
      can be combined is that, the effective virtual address of vmalloc
      returned is at the bottom, and of module_alloc returned is at the
      top. It also fixes the bug in vmalloc(), which happens when its
      return address is not covered by the first pgd.
      Signed-off-by: default avatarWu Fei <at.wufei@gmail.com>
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      e0cc87f5
  15. 14 May, 2009 1 commit
  16. 11 Oct, 2008 1 commit
  17. 11 Oct, 2007 2 commits
  18. 24 Mar, 2007 1 commit
  19. 06 Dec, 2006 1 commit
  20. 30 Nov, 2006 1 commit
    • Atsushi Nemoto's avatar
      [MIPS] Load modules to CKSEG0 if CONFIG_BUILD_ELF64=n · 656be92f
      Atsushi Nemoto authored
      This is a patch to load 64-bit modules to CKSEG0 so that can be
      compiled with -msym32 option.  This makes each module ~10% smaller.
      
      * introduce MODULE_START and MODULE_END
      * custom module_alloc()
      * PGD for modules
      * change XTLB refill handler synthesizer
      * enable -msym32 for modules again
        (revert ca78b1a5c6a6e70e052d3ea253828e49b5d07c8a)
      
      New XTLB refill handler looks like this:
      
      80000080 dmfc0   k0,C0_BADVADDR
      80000084 bltz    k0,800000e4			# goto l_module_alloc
      80000088 lui     k1,0x8046			# %high(pgd_current)
      8000008c ld      k1,24600(k1)			# %low(pgd_current)
      80000090 dsrl    k0,k0,0x1b			# l_vmalloc_done:
      80000094 andi    k0,k0,0x1ff8
      80000098 daddu   k1,k1,k0
      8000009c dmfc0   k0,C0_BADVADDR
      800000a0 ld      k1,0(k1)
      800000a4 dsrl    k0,k0,0x12
      800000a8 andi    k0,k0,0xff8
      800000ac daddu   k1,k1,k0
      800000b0 dmfc0   k0,C0_XCONTEXT
      800000b4 ld      k1,0(k1)
      800000b8 andi    k0,k0,0xff0
      800000bc daddu   k1,k1,k0
      800000c0 ld      k0,0(k1)
      800000c4 ld      k1,8(k1)
      800000c8 dsrl    k0,k0,0x6
      800000cc mtc0    k0,C0_ENTRYLO0
      800000d0 dsrl    k1,k1,0x6
      800000d4 mtc0    k1,C0_ENTRYL01
      800000d8 nop
      800000dc tlbwr
      800000e0 eret
      800000e4 dsll    k1,k0,0x2			# l_module_alloc:
      800000e8 bgez    k1,80000008			# goto l_vmalloc
      800000ec lui     k1,0xc000
      800000f0 dsubu   k0,k0,k1
      800000f4 lui     k1,0x8046			# %high(module_pg_dir)
      800000f8 beq     zero,zero,80000000
      800000fc nop
      80000000 beq     zero,zero,80000090		# goto l_vmalloc_done
      80000004 daddiu  k1,k1,0x4000
      80000008 dsll32  k1,k1,0x0			# l_vmalloc:
      8000000c dsubu   k0,k0,k1
      80000010 beq     zero,zero,80000090		# goto l_vmalloc_done
      80000014 lui     k1,0x8046			# %high(swapper_pg_dir)
      Signed-off-by: default avatarAtsushi Nemoto <anemo@mba.ocn.ne.jp>
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      656be92f
  21. 01 Nov, 2006 1 commit
  22. 27 Sep, 2006 1 commit
  23. 26 Sep, 2006 1 commit
    • Dave McCracken's avatar
      [PATCH] Standardize pxx_page macros · 46a82b2d
      Dave McCracken authored
      One of the changes necessary for shared page tables is to standardize the
      pxx_page macros.  pte_page and pmd_page have always returned the struct
      page associated with their entry, while pte_page_kernel and pmd_page_kernel
      have returned the kernel virtual address.  pud_page and pgd_page, on the
      other hand, return the kernel virtual address.
      
      Shared page tables needs pud_page and pgd_page to return the actual page
      structures.  There are very few actual users of these functions, so it is
      simple to standardize their usage.
      
      Since this is basic cleanup, I am submitting these changes as a standalone
      patch.  Per Hugh Dickins' comments about it, I am also changing the
      pxx_page_kernel macros to pxx_page_vaddr to clarify their meaning.
      Signed-off-by: default avatarDave McCracken <dmccr@us.ibm.com>
      Cc: Hugh Dickins <hugh@veritas.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      46a82b2d
  24. 05 Jun, 2006 1 commit
  25. 26 Apr, 2006 1 commit
  26. 31 Oct, 2005 1 commit
    • Tejun Heo's avatar
      [PATCH] vm: remove unused/broken page_pte[_prot] macros · 1426d7a8
      Tejun Heo authored
      This patch removes page_pte_prot and page_pte macros from all
      architectures.  Some architectures define both, some only page_pte (broken)
      and others none.  These macros are not used anywhere.
      
      page_pte_prot(page, prot) is identical to mk_pte(page, prot) and
      page_pte(page) is identical to page_pte_prot(page, __pgprot(0)).
      
      * The following architectures define both page_pte_prot and page_pte
      
        arm, arm26, ia64, sh64, sparc, sparc64
      
      * The following architectures define only page_pte (broken)
      
        frv, i386, m32r, mips, sh, x86-64
      
      * All other architectures define neither
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      1426d7a8
  27. 29 Oct, 2005 3 commits
  28. 19 Apr, 2005 1 commit
  29. 16 Apr, 2005 1 commit
    • Linus Torvalds's avatar
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds authored
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4