26 Sep, 2006

1 commit

  • 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: Dave McCracken
    Cc: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave McCracken
     

23 Aug, 2006

1 commit

  • The "%uhi" needs to be "%%uhi" because we want a real
    "%" character in the assembler here, instead of an
    assembler variable expansion.

    Aparently older GCCs were more liberal and interpreted
    this %-letter as a literal "%" for whatever reason.

    Based upon a build failure report from Meelis Roos.

    Signed-off-by: David S. Miller

    David S. Miller
     

28 Jul, 2006

1 commit


24 Jun, 2006

1 commit

  • On some sun4v systems, after netboot the ethernet controller and it's
    DMA mappings can be left active. The net result is that the kernel
    can end up using memory the ethernet controller will continue to DMA
    into, resulting in corruption.

    To deal with this, we are more careful about importing IOMMU
    translations which OBP has left in the IO-TLB. If the mapping maps
    into an area the firmware claimed was free and available memory for
    the kernel to use, we demap instead of import that IOMMU entry.

    This is going to cause the network chip to take a PCI master abort on
    the next DMA it attempts, if it has been left going like this. All
    tests show that this is handled properly by the PCI layer and the e1000
    drivers.

    Signed-off-by: David S. Miller

    David S. Miller
     

21 Jun, 2006

1 commit

  • * git://git.infradead.org/hdrcleanup-2.6: (63 commits)
    [S390] __FD_foo definitions.
    Switch to __s32 types in joystick.h instead of C99 types for consistency.
    Add to headers included for userspace in
    Move inclusion of out of user scope in asm-x86_64/mtrr.h
    Remove struct fddi_statistics from user view in
    Move user-visible parts of drivers/s390/crypto/z90crypt.h to include/asm-s390
    Revert include/media changes: Mauro says those ioctls are only used in-kernel(!)
    Include and use __uXX types in
    Use __uXX types in , include too
    Remove private struct dx_hash_info from public view in
    Include and use __uXX types in
    Use __uXX types in for struct divert_blk et al.
    Use __u32 for elf_addr_t in , not u32. It's user-visible.
    Remove PPP_FCS from user view in , remove __P mess entirely
    Use __uXX types in user-visible structures in
    Don't use 'u32' in user-visible struct ip_conntrack_old_tuple.
    Use __uXX types for S390 DASD volume label definitions which are user-visible
    S390 BIODASDREADCMB ioctl should use __u64 not u64 type.
    Remove unneeded inclusion of from
    Fix private integer types used in V4L2 ioctls.
    ...

    Manually resolve conflict in include/linux/mtd/physmap.h

    Linus Torvalds
     

02 Jun, 2006

1 commit

  • If we move a mapping from one virtual address to another,
    and this changes the virtual color of the mapping to those
    pages, we can see corrupt data due to D-cache aliasing.

    Check for and deal with this by overriding the move_pte()
    macro. Set things up so that other platforms can cleanly
    override the move_pte() macro too.

    Signed-off-by: David S. Miller

    David S. Miller
     

26 Apr, 2006

1 commit


22 Mar, 2006

1 commit


20 Mar, 2006

14 commits


29 Nov, 2005

1 commit


31 Oct, 2005

1 commit

  • 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: Tejun Heo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tejun Heo
     

29 Sep, 2005

2 commits


28 Sep, 2005

1 commit


26 Sep, 2005

1 commit

  • The trick is that we do the kernel linear mapping TLB miss starting
    with an instruction sequence like this:

    ba,pt %xcc, kvmap_load
    xor %g2, %g4, %g5

    succeeded by an instruction sequence which performs a full page table
    walk starting at swapper_pg_dir.

    We first take over the trap table from the firmware. Then, using this
    constant PTE generation for the linear mapping area above, we build
    the kernel page tables for the linear mapping.

    After this is setup, we patch that branch above into a "nop", which
    will cause TLB misses to fall through to the full page table walk.

    With this, the page unmapping for CONFIG_DEBUG_PAGEALLOC is trivial.

    Signed-off-by: David S. Miller

    David S. Miller
     

21 Sep, 2005

1 commit


02 Sep, 2005

1 commit


22 Jun, 2005

1 commit

  • A lot of the code in arch/*/mm/hugetlbpage.c is quite similar. This patch
    attempts to consolidate a lot of the code across the arch's, putting the
    combined version in mm/hugetlb.c. There are a couple of uglyish hacks in
    order to covert all the hugepage archs, but the result is a very large
    reduction in the total amount of code. It also means things like hugepage
    lazy allocation could be implemented in one place, instead of six.

    Tested, at least a little, on ppc64, i386 and x86_64.

    Notes:
    - this patch changes the meaning of set_huge_pte() to be more
    analagous to set_pte()
    - does SH4 need s special huge_ptep_get_and_clear()??

    Acked-by: William Lee Irwin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Gibson
     

22 Apr, 2005

1 commit


20 Apr, 2005

2 commits

  • Replace misleading definition of FIRST_USER_PGD_NR 0 by definition of
    FIRST_USER_ADDRESS 0 in all the MMU architectures beyond arm and arm26.

    Signed-off-by: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     
  • ia64 and sparc64 hurriedly had to introduce their own variants of
    pgd_addr_end, to leapfrog over the holes in their virtual address spaces which
    the final clear_page_range suddenly presented when converted from pgd_index to
    pgd_addr_end. But now that free_pgtables respects the vma list, those holes
    are never presented, and the arch variants can go.

    Signed-off-by: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     

17 Apr, 2005

1 commit

  • 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!

    Linus Torvalds