1. 25 9月, 2008 3 次提交
    • K
      powerpc/mm: Implement _PAGE_SPECIAL & pte_special() for 32-bit · 9a62c051
      Kumar Gala 提交于
      Implement _PAGE_SPECIAL and pte_special() for 32-bit powerpc. This bit will
      be used by the fast get_user_pages() to differenciate PTEs that correspond
      to a valid struct page from special mappings that don't such as IO mappings
      obtained via io_remap_pfn_ranges().
      
      We currently only implement this on sub-arch that support SMP or will so
      in the future (6xx, 44x, FSL-BookE) and not (8xx, 40x).
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      Acked-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      9a62c051
    • K
      powerpc: Fixes for CONFIG_PTE_64BIT for SMP support · 9bf2b5cd
      Kumar Gala 提交于
      There are some minor issues with support 64-bit PTEs on a 32-bit processor
      when dealing with SMP.
      
      * We need to order the stores in set_pte_at to make sure the flag word
        is set second.
      * Change pte_clear to use pte_update so only the flag word is cleared
      * Added a WARN_ON to set_pte_at to ensure the pte isn't present for
        the 64-bit pte/SMP case (to ensure our assumption of this fact).
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      Acked-by: NBecky Bruce <becky.bruce@freescale.com>
      9bf2b5cd
    • K
      powerpc: Introduce local (non-broadcast) forms of tlb invalidates · 0ba3418b
      Kumar Gala 提交于
      Introduced a new set of low level tlb invalidate functions that do not
      broadcast invalidates on the bus:
      
      _tlbil_all - invalidate all
      _tlbil_pid - invalidate based on process id (or mm context)
      _tlbil_va  - invalidate based on virtual address (ea + pid)
      
      On non-SMP configs _tlbil_all should be functionally equivalent to _tlbia and
      _tlbil_va should be functionally equivalent to _tlbie.
      
      The intent of this change is to handle SMP based invalidates via IPIs instead
      of broadcasts as the mechanism scales better for larger number of cores.
      
      On e500 (fsl-booke mmu) based cores move to using MMUCSR for invalidate alls
      and tlbsx/tlbwe for invalidate virtual address.
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      0ba3418b
  2. 22 9月, 2008 2 次提交
  3. 20 9月, 2008 2 次提交
  4. 19 9月, 2008 1 次提交
  5. 18 9月, 2008 1 次提交
  6. 17 9月, 2008 1 次提交
  7. 16 9月, 2008 26 次提交
  8. 10 9月, 2008 4 次提交
    • P
      Merge branch 'linux-2.6' · 7e392f8c
      Paul Mackerras 提交于
      7e392f8c
    • L
      Merge branch 'x86-fixes-for-linus' of... · 93811d94
      Linus Torvalds 提交于
      Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        x86: fix memmap=exactmap boot argument
        x86: disable static NOPLs on 32 bits
        xen: fix 2.6.27-rc5 xen balloon driver warnings
      93811d94
    • P
      x86: fix memmap=exactmap boot argument · d6be118a
      Prarit Bhargava 提交于
      When using kdump modifying the e820 map is yielding strange results.
      
      For example starting with
      
       BIOS-provided physical RAM map:
       BIOS-e820: 0000000000000100 - 0000000000093400 (usable)
       BIOS-e820: 0000000000093400 - 00000000000a0000 (reserved)
       BIOS-e820: 0000000000100000 - 000000003fee0000 (usable)
       BIOS-e820: 000000003fee0000 - 000000003fef3000 (ACPI data)
       BIOS-e820: 000000003fef3000 - 000000003ff80000 (ACPI NVS)
       BIOS-e820: 000000003ff80000 - 0000000040000000 (reserved)
       BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
       BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
       BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
       BIOS-e820: 00000000ff000000 - 0000000100000000 (reserved)
      
      and booting with args
      
      memmap=exactmap memmap=640K@0K memmap=5228K@16384K memmap=125188K@22252K memmap=76K#1047424K memmap=564K#1047500K
      
      resulted in:
      
       user-defined physical RAM map:
       user: 0000000000000000 - 0000000000093400 (usable)
       user: 0000000000093400 - 00000000000a0000 (reserved)
       user: 0000000000100000 - 000000003fee0000 (usable)
       user: 000000003fee0000 - 000000003fef3000 (ACPI data)
       user: 000000003fef3000 - 000000003ff80000 (ACPI NVS)
       user: 000000003ff80000 - 0000000040000000 (reserved)
       user: 00000000e0000000 - 00000000f0000000 (reserved)
       user: 00000000fec00000 - 00000000fec10000 (reserved)
       user: 00000000fee00000 - 00000000fee01000 (reserved)
       user: 00000000ff000000 - 0000000100000000 (reserved)
      
      But should have resulted in:
      
       user-defined physical RAM map:
       user: 0000000000000000 - 00000000000a0000 (usable)
       user: 0000000001000000 - 000000000151b000 (usable)
       user: 00000000015bb000 - 0000000008ffc000 (usable)
       user: 000000003fee0000 - 000000003ff80000 (ACPI data)
      
      This is happening because of an improper usage of strcmp() in the
      e820 parsing code.  The strcmp() always returns !0 and never resets the
      value for e820.nr_map and returns an incorrect user-defined map.
      
      This patch fixes the problem.
      Signed-off-by: NPrarit Bhargava <prarit@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      d6be118a
    • L
      Merge branch 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6 · ea81e272
      Linus Torvalds 提交于
      * 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6:
        [S390] cio: allow offline processing for disconnected devices
        [S390] cio: handle ssch() return codes correctly.
        [S390] cio: Correct cleanup on error.
        [S390] CVE-2008-1514: prevent ptrace padding area read/write in 31-bit mode
      ea81e272