Commit 71a18745 authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] rmap 13 include/asm deletions

From: Hugh Dickins <hugh@veritas.com>

Delete include/asm*/rmap.h
Delete pte_addr_t typedef from include/asm*/pgtable.h
Delete KM_PTE2 from subset of include/asm*/kmap_types.h
Beware when 4G/4G returns to -mm: i386 may need KM_FILLER for 8K stack.
parent 865fadf0
......@@ -349,6 +349,4 @@ extern void paging_init(void);
/* We have our own get_unmapped_area to cope with ADDR_LIMIT_32BIT. */
#define HAVE_ARCH_UNMAPPED_AREA
typedef pte_t *pte_addr_t;
#endif /* _ALPHA_PGTABLE_H */
#ifndef _ALPHA_RMAP_H
#define _ALPHA_RMAP_H
/* nothing to see, move along */
#include <asm-generic/rmap.h>
#endif
......@@ -14,7 +14,6 @@ enum km_type {
KM_BIO_DST_IRQ,
KM_PTE0,
KM_PTE1,
KM_PTE2,
KM_IRQ0,
KM_IRQ1,
KM_SOFTIRQ0,
......
......@@ -407,8 +407,6 @@ extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
#define io_remap_page_range(vma,from,phys,size,prot) \
remap_page_range(vma,from,phys,size,prot)
typedef pte_t *pte_addr_t;
#define pgtable_cache_init() do { } while (0)
#endif /* !__ASSEMBLY__ */
......
#ifndef _ARM_RMAP_H
#define _ARM_RMAP_H
#include <asm-generic/rmap.h>
#endif /* _ARM_RMAP_H */
......@@ -290,8 +290,6 @@ static inline pte_t mk_pte_phys(unsigned long physpage, pgprot_t pgprot)
#define io_remap_page_range(vma,from,phys,size,prot) \
remap_page_range(vma,from,phys,size,prot)
typedef pte_t *pte_addr_t;
#endif /* !__ASSEMBLY__ */
#endif /* _ASMARM_PGTABLE_H */
#ifndef _ARM_RMAP_H
#define _ARM_RMAP_H
/*
* linux/include/asm-arm26/proc-armv/rmap.h
*
* Architecture dependant parts of the reverse mapping code,
*
* ARM is different since hardware page tables are smaller than
* the page size and Linux uses a "duplicate" one with extra info.
* For rmap this means that the first 2 kB of a page are the hardware
* page tables and the last 2 kB are the software page tables.
*/
static inline void pgtable_add_rmap(struct page *page, struct mm_struct * mm, unsigned long address)
{
page->mapping = (void *)mm;
page->index = address & ~((PTRS_PER_PTE * PAGE_SIZE) - 1);
inc_page_state(nr_page_table_pages);
}
static inline void pgtable_remove_rmap(struct page *page)
{
page->mapping = NULL;
page->index = 0;
dec_page_state(nr_page_table_pages);
}
static inline struct mm_struct * ptep_to_mm(pte_t * ptep)
{
struct page * page = virt_to_page(ptep);
return (struct mm_struct *)page->mapping;
}
/* The page table takes half of the page */
#define PTE_MASK ((PAGE_SIZE / 2) - 1)
static inline unsigned long ptep_to_address(pte_t * ptep)
{
struct page * page = virt_to_page(ptep);
unsigned long low_bits;
low_bits = ((unsigned long)ptep & PTE_MASK) * PTRS_PER_PTE;
return page->index + low_bits;
}
//FIXME!!! IS these correct?
static inline pte_addr_t ptep_to_paddr(pte_t *ptep)
{
return (pte_addr_t)ptep;
}
static inline pte_t *rmap_ptep_map(pte_addr_t pte_paddr)
{
return (pte_t *)pte_paddr;
}
static inline void rmap_ptep_unmap(pte_t *pte)
{
return;
}
//#include <asm-generic/rmap.h>
#endif /* _ARM_RMAP_H */
......@@ -337,6 +337,4 @@ extern inline void update_mmu_cache(struct vm_area_struct * vma,
#define pte_to_pgoff(x) (pte_val(x) >> 6)
#define pgoff_to_pte(x) __pte(((x) << 6) | _PAGE_FILE)
typedef pte_t *pte_addr_t;
#endif /* _CRIS_PGTABLE_H */
#ifndef _CRIS_RMAP_H
#define _CRIS_RMAP_H
/* nothing to see, move along :) */
#include <asm-generic/rmap.h>
#endif
#ifndef _GENERIC_RMAP_H
#define _GENERIC_RMAP_H
/*
* linux/include/asm-generic/rmap.h
*
* Architecture dependent parts of the reverse mapping code,
* this version should work for most architectures with a
* 'normal' page table layout.
*
* We use the struct page of the page table page to find out
* the process and full address of a page table entry:
* - page->mapping points to the process' mm_struct
* - page->index has the high bits of the address
* - the lower bits of the address are calculated from the
* offset of the page table entry within the page table page
*
* For CONFIG_HIGHPTE, we need to represent the address of a pte in a
* scalar pte_addr_t. The pfn of the pte's page is shifted left by PAGE_SIZE
* bits and is then ORed with the byte offset of the pte within its page.
*
* For CONFIG_HIGHMEM4G, the pte_addr_t is 32 bits. 20 for the pfn, 12 for
* the offset.
*
* For CONFIG_HIGHMEM64G, the pte_addr_t is 64 bits. 52 for the pfn, 12 for
* the offset.
*/
#include <linux/mm.h>
static inline void pgtable_add_rmap(struct page * page, struct mm_struct * mm, unsigned long address)
{
#ifdef BROKEN_PPC_PTE_ALLOC_ONE
/* OK, so PPC calls pte_alloc() before mem_map[] is setup ... ;( */
extern int mem_init_done;
if (!mem_init_done)
return;
#endif
page->mapping = (void *)mm;
page->index = address & ~((PTRS_PER_PTE * PAGE_SIZE) - 1);
inc_page_state(nr_page_table_pages);
}
static inline void pgtable_remove_rmap(struct page * page)
{
page->mapping = NULL;
page->index = 0;
dec_page_state(nr_page_table_pages);
}
static inline struct mm_struct * ptep_to_mm(pte_t * ptep)
{
struct page * page = kmap_atomic_to_page(ptep);
return (struct mm_struct *) page->mapping;
}
static inline unsigned long ptep_to_address(pte_t * ptep)
{
struct page * page = kmap_atomic_to_page(ptep);
unsigned long low_bits;
low_bits = ((unsigned long)ptep & (PTRS_PER_PTE*sizeof(pte_t) - 1))
* (PAGE_SIZE/sizeof(pte_t));
return page->index + low_bits;
}
#ifdef CONFIG_HIGHPTE
static inline pte_addr_t ptep_to_paddr(pte_t *ptep)
{
pte_addr_t paddr;
paddr = ((pte_addr_t)page_to_pfn(kmap_atomic_to_page(ptep))) << PAGE_SHIFT;
return paddr + (pte_addr_t)((unsigned long)ptep & ~PAGE_MASK);
}
#else
static inline pte_addr_t ptep_to_paddr(pte_t *ptep)
{
return (pte_addr_t)ptep;
}
#endif
#ifndef CONFIG_HIGHPTE
static inline pte_t *rmap_ptep_map(pte_addr_t pte_paddr)
{
return (pte_t *)pte_paddr;
}
static inline void rmap_ptep_unmap(pte_t *pte)
{
return;
}
#endif
#endif /* _GENERIC_RMAP_H */
......@@ -7,8 +7,6 @@
#include <asm/page.h>
#include <asm/io.h>
typedef pte_t *pte_addr_t;
#define pgd_present(pgd) (1) /* pages are always present on NO_MM */
#define pgd_none(pgd) (0)
#define pgd_bad(pgd) (0)
......
......@@ -19,12 +19,11 @@ D(5) KM_BIO_SRC_IRQ,
D(6) KM_BIO_DST_IRQ,
D(7) KM_PTE0,
D(8) KM_PTE1,
D(9) KM_PTE2,
D(10) KM_IRQ0,
D(11) KM_IRQ1,
D(12) KM_SOFTIRQ0,
D(13) KM_SOFTIRQ1,
D(14) KM_TYPE_NR
D(9) KM_IRQ0,
D(10) KM_IRQ1,
D(11) KM_SOFTIRQ0,
D(12) KM_SOFTIRQ1,
D(13) KM_TYPE_NR
};
#undef D
......
......@@ -314,18 +314,6 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
#define pte_unmap_nested(pte) do { } while (0)
#endif
#if defined(CONFIG_HIGHPTE) && defined(CONFIG_HIGHMEM4G)
typedef u32 pte_addr_t;
#endif
#if defined(CONFIG_HIGHPTE) && defined(CONFIG_HIGHMEM64G)
typedef u64 pte_addr_t;
#endif
#if !defined(CONFIG_HIGHPTE)
typedef pte_t *pte_addr_t;
#endif
/*
* The i386 doesn't have any external MMU info: the kernel page
* tables contain all the necessary information.
......
#ifndef _I386_RMAP_H
#define _I386_RMAP_H
/* nothing to see, move along */
#include <asm-generic/rmap.h>
#ifdef CONFIG_HIGHPTE
static inline pte_t *rmap_ptep_map(pte_addr_t pte_paddr)
{
unsigned long pfn = (unsigned long)(pte_paddr >> PAGE_SHIFT);
unsigned long off = ((unsigned long)pte_paddr) & ~PAGE_MASK;
return (pte_t *)((char *)kmap_atomic(pfn_to_page(pfn), KM_PTE2) + off);
}
static inline void rmap_ptep_unmap(pte_t *pte)
{
kunmap_atomic(pte, KM_PTE2);
}
#endif
#endif
......@@ -469,8 +469,6 @@ extern void hugetlb_free_pgtables(struct mmu_gather *tlb,
struct vm_area_struct * prev, unsigned long start, unsigned long end);
#endif
typedef pte_t *pte_addr_t;
/*
* IA-64 doesn't have any external MMU info: the page tables contain all the necessary
* information. However, we use this routine to take care of any (delayed) i-cache
......
#ifndef _ASM_IA64_RMAP_H
#define _ASM_IA64_RMAP_H
/* nothing to see, move along */
#include <asm-generic/rmap.h>
#endif /* _ASM_IA64_RMAP_H */
......@@ -168,8 +168,6 @@ static inline void update_mmu_cache(struct vm_area_struct *vma,
? (__pgprot((pgprot_val(prot) & _CACHEMASK040) | _PAGE_NOCACHE_S)) \
: (prot)))
typedef pte_t *pte_addr_t;
#endif /* !__ASSEMBLY__ */
/*
......
#ifndef _M68K_RMAP_H
#define _M68K_RMAP_H
/* nothing to see, move along */
#include <asm-generic/rmap.h>
#endif
......@@ -11,8 +11,6 @@
#include <asm/page.h>
#include <asm/io.h>
typedef pte_t *pte_addr_t;
/*
* Trivial page table functions.
*/
......
/* Do not need anything here */
......@@ -19,12 +19,11 @@ D(5) KM_BIO_SRC_IRQ,
D(6) KM_BIO_DST_IRQ,
D(7) KM_PTE0,
D(8) KM_PTE1,
D(9) KM_PTE2,
D(10) KM_IRQ0,
D(11) KM_IRQ1,
D(12) KM_SOFTIRQ0,
D(13) KM_SOFTIRQ1,
D(14) KM_TYPE_NR
D(9) KM_IRQ0,
D(10) KM_IRQ1,
D(11) KM_SOFTIRQ0,
D(12) KM_SOFTIRQ1,
D(13) KM_TYPE_NR
};
#undef D
......
......@@ -216,10 +216,4 @@ static inline pmd_t *pmd_offset(pgd_t *dir, unsigned long address)
#define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) })
#define __swp_entry_to_pte(x) ((pte_t) { (x).val })
#ifdef CONFIG_64BIT_PHYS_ADDR
typedef u64 pte_addr_t;
#else
typedef pte_t *pte_addr_t;
#endif
#endif /* _ASM_PGTABLE_32_H */
......@@ -214,8 +214,6 @@ static inline pte_t mk_swap_pte(unsigned long type, unsigned long offset)
#define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) })
#define __swp_entry_to_pte(x) ((pte_t) { (x).val })
typedef pte_t *pte_addr_t;
/*
* Used for the b0rked handling of kernel pagetables on the 64-bit kernel.
*/
......
#ifndef __ASM_RMAP_H
#define __ASM_RMAP_H
/* nothing to see, move along */
#include <asm-generic/rmap.h>
#endif /* __ASM_RMAP_H */
......@@ -488,8 +488,6 @@ static inline void ptep_mkdirty(pte_t *ptep)
#define pte_same(A,B) (pte_val(A) == pte_val(B))
typedef pte_t *pte_addr_t;
#endif /* !__ASSEMBLY__ */
#define io_remap_page_range remap_page_range
......
#ifndef _PARISC_RMAP_H
#define _PARISC_RMAP_H
/* nothing to see, move along */
#include <asm-generic/rmap.h>
#endif
......@@ -670,8 +670,6 @@ extern void kernel_set_cachemode (unsigned long address, unsigned long size,
*/
#define pgtable_cache_init() do { } while (0)
typedef pte_t *pte_addr_t;
extern int get_pteptr(struct mm_struct *mm, unsigned long addr, pte_t **ptep);
#endif /* !__ASSEMBLY__ */
......
#ifndef _PPC_RMAP_H
#define _PPC_RMAP_H
/* PPC calls pte_alloc() before mem_map[] is setup ... */
#define BROKEN_PPC_PTE_ALLOC_ONE
#include <asm-generic/rmap.h>
#endif
......@@ -471,8 +471,6 @@ extern struct vm_struct * im_get_area(unsigned long v_addr, unsigned long size,
int region_type);
unsigned long im_free(void *addr);
typedef pte_t *pte_addr_t;
long pSeries_lpar_hpte_insert(unsigned long hpte_group,
unsigned long va, unsigned long prpn,
int secondary, unsigned long hpteflags,
......
#ifndef _PPC64_RMAP_H
#define _PPC64_RMAP_H
/* PPC64 calls pte_alloc() before mem_map[] is setup ... */
#define BROKEN_PPC_PTE_ALLOC_ONE
#include <asm-generic/rmap.h>
#endif
......@@ -760,8 +760,6 @@ extern inline pte_t mk_swap_pte(unsigned long type, unsigned long offset)
#define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) })
#define __swp_entry_to_pte(x) ((pte_t) { (x).val })
typedef pte_t *pte_addr_t;
#ifndef __s390x__
# define PTE_FILE_MAX_BITS 26
#else /* __s390x__ */
......
#ifndef _S390_RMAP_H
#define _S390_RMAP_H
/* nothing to see, move along */
#include <asm-generic/rmap.h>
#endif
......@@ -274,8 +274,6 @@ extern void update_mmu_cache(struct vm_area_struct * vma,
#define pte_same(A,B) (pte_val(A) == pte_val(B))
typedef pte_t *pte_addr_t;
#endif /* !__ASSEMBLY__ */
#define kern_addr_valid(addr) (1)
......
#ifndef _SH_RMAP_H
#define _SH_RMAP_H
/* nothing to see, move along */
#include <asm-generic/rmap.h>
#endif
......@@ -11,7 +11,6 @@ enum km_type {
KM_BIO_DST_IRQ,
KM_PTE0,
KM_PTE1,
KM_PTE2,
KM_IRQ0,
KM_IRQ1,
KM_SOFTIRQ0,
......
......@@ -497,8 +497,6 @@ extern int io_remap_page_range(struct vm_area_struct *vma, unsigned long from, u
#include <asm-generic/pgtable.h>
typedef pte_t *pte_addr_t;
#endif /* !(__ASSEMBLY__) */
/* We provide our own get_unmapped_area to cope with VA holes for userland */
......
#ifndef _SPARC_RMAP_H
#define _SPARC_RMAP_H
/* nothing to see, move along */
#include <asm-generic/rmap.h>
#endif
......@@ -386,8 +386,6 @@ extern unsigned long get_fb_unmapped_area(struct file *filp, unsigned long, unsi
extern void check_pgt_cache(void);
typedef pte_t *pte_addr_t;
#endif /* !(__ASSEMBLY__) */
#endif /* !(_SPARC64_PGTABLE_H) */
#ifndef _SPARC64_RMAP_H
#define _SPARC64_RMAP_H
/* nothing to see, move along */
#include <asm-generic/rmap.h>
#endif
......@@ -384,18 +384,6 @@ static inline pmd_t * pmd_offset(pgd_t * dir, unsigned long address)
#define pte_unmap(pte) kunmap_atomic((pte), KM_PTE0)
#define pte_unmap_nested(pte) kunmap_atomic((pte), KM_PTE1)
#if defined(CONFIG_HIGHPTE) && defined(CONFIG_HIGHMEM4G)
typedef u32 pte_addr_t;
#endif
#if defined(CONFIG_HIGHPTE) && defined(CONFIG_HIGHMEM64G)
typedef u64 pte_addr_t;
#endif
#if !defined(CONFIG_HIGHPTE)
typedef pte_t *pte_addr_t;
#endif
#define update_mmu_cache(vma,address,pte) do ; while (0)
/* Encode and de-code a swap entry */
......
#ifndef __UM_RMAP_H
#define __UM_RMAP_H
#include "asm/arch/rmap.h"
#endif
......@@ -5,8 +5,6 @@
#include <asm/page.h>
typedef pte_t *pte_addr_t;
#define pgd_present(pgd) (1) /* pages are always present on NO_MM */
#define pgd_none(pgd) (0)
#define pgd_bad(pgd) (0)
......
/* Do not need anything here */
......@@ -390,8 +390,6 @@ extern inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
#define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) })
#define __swp_entry_to_pte(x) ((pte_t) { (x).val })
typedef pte_t *pte_addr_t;
#endif /* !__ASSEMBLY__ */
extern int kern_addr_valid(unsigned long addr);
......
#ifndef _X8664_RMAP_H
#define _X8664_RMAP_H
/* nothing to see, move along */
#include <asm-generic/rmap.h>
#endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment