um: kill pfn_t
The core has developed a need for a "pfn_t" type [1]. Convert the usage of pfn_t by usermode-linux to an unsigned long, and update pfn_to_phys() to drop its expectation of a typed pfn. [1]: https://lists.01.org/pipermail/linux-nvdimm/2015-September/002199.html Signed-off-by: Dan Williams <dan.j.williams@intel.com> Cc: Dave Hansen <dave.hansen@linux.intel.com> Cc: Jeff Dike <jdike@addtoit.com> Cc: Richard Weinberger <richard@nod.at> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
59bf4fb9d3
commit
16da306849
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
struct page;
|
struct page;
|
||||||
|
|
||||||
|
#include <linux/pfn.h>
|
||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
#include <asm/vm-flags.h>
|
#include <asm/vm-flags.h>
|
||||||
|
|
||||||
|
@ -52,7 +53,6 @@ typedef struct { unsigned long pgd; } pgd_t;
|
||||||
#define pmd_val(x) ((x).pmd)
|
#define pmd_val(x) ((x).pmd)
|
||||||
#define __pmd(x) ((pmd_t) { (x) } )
|
#define __pmd(x) ((pmd_t) { (x) } )
|
||||||
|
|
||||||
typedef unsigned long long pfn_t;
|
|
||||||
typedef unsigned long long phys_t;
|
typedef unsigned long long phys_t;
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
@ -76,7 +76,6 @@ typedef struct { unsigned long pmd; } pmd_t;
|
||||||
#define pte_is_zero(p) (!((p).pte & ~_PAGE_NEWPAGE))
|
#define pte_is_zero(p) (!((p).pte & ~_PAGE_NEWPAGE))
|
||||||
#define pte_set_val(p, phys, prot) (p).pte = (phys | pgprot_val(prot))
|
#define pte_set_val(p, phys, prot) (p).pte = (phys | pgprot_val(prot))
|
||||||
|
|
||||||
typedef unsigned long pfn_t;
|
|
||||||
typedef unsigned long phys_t;
|
typedef unsigned long phys_t;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -109,8 +108,8 @@ extern unsigned long uml_physmem;
|
||||||
#define __pa(virt) to_phys((void *) (unsigned long) (virt))
|
#define __pa(virt) to_phys((void *) (unsigned long) (virt))
|
||||||
#define __va(phys) to_virt((unsigned long) (phys))
|
#define __va(phys) to_virt((unsigned long) (phys))
|
||||||
|
|
||||||
#define phys_to_pfn(p) ((pfn_t) ((p) >> PAGE_SHIFT))
|
#define phys_to_pfn(p) ((p) >> PAGE_SHIFT)
|
||||||
#define pfn_to_phys(pfn) ((phys_t) ((pfn) << PAGE_SHIFT))
|
#define pfn_to_phys(pfn) PFN_PHYS(pfn)
|
||||||
|
|
||||||
#define pfn_valid(pfn) ((pfn) < max_mapnr)
|
#define pfn_valid(pfn) ((pfn) < max_mapnr)
|
||||||
#define virt_addr_valid(v) pfn_valid(phys_to_pfn(__pa(v)))
|
#define virt_addr_valid(v) pfn_valid(phys_to_pfn(__pa(v)))
|
||||||
|
|
|
@ -98,7 +98,7 @@ static inline unsigned long pte_pfn(pte_t pte)
|
||||||
return phys_to_pfn(pte_val(pte));
|
return phys_to_pfn(pte_val(pte));
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline pte_t pfn_pte(pfn_t page_nr, pgprot_t pgprot)
|
static inline pte_t pfn_pte(unsigned long page_nr, pgprot_t pgprot)
|
||||||
{
|
{
|
||||||
pte_t pte;
|
pte_t pte;
|
||||||
phys_t phys = pfn_to_phys(page_nr);
|
phys_t phys = pfn_to_phys(page_nr);
|
||||||
|
@ -107,7 +107,7 @@ static inline pte_t pfn_pte(pfn_t page_nr, pgprot_t pgprot)
|
||||||
return pte;
|
return pte;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline pmd_t pfn_pmd(pfn_t page_nr, pgprot_t pgprot)
|
static inline pmd_t pfn_pmd(unsigned long page_nr, pgprot_t pgprot)
|
||||||
{
|
{
|
||||||
return __pmd((page_nr << PAGE_SHIFT) | pgprot_val(pgprot));
|
return __pmd((page_nr << PAGE_SHIFT) | pgprot_val(pgprot));
|
||||||
}
|
}
|
||||||
|
|
|
@ -271,7 +271,7 @@ static inline int pte_same(pte_t pte_a, pte_t pte_b)
|
||||||
|
|
||||||
#define phys_to_page(phys) pfn_to_page(phys_to_pfn(phys))
|
#define phys_to_page(phys) pfn_to_page(phys_to_pfn(phys))
|
||||||
#define __virt_to_page(virt) phys_to_page(__pa(virt))
|
#define __virt_to_page(virt) phys_to_page(__pa(virt))
|
||||||
#define page_to_phys(page) pfn_to_phys((pfn_t) page_to_pfn(page))
|
#define page_to_phys(page) pfn_to_phys(page_to_pfn(page))
|
||||||
#define virt_to_page(addr) __virt_to_page((const unsigned long) addr)
|
#define virt_to_page(addr) __virt_to_page((const unsigned long) addr)
|
||||||
|
|
||||||
#define mk_pte(page, pgprot) \
|
#define mk_pte(page, pgprot) \
|
||||||
|
|
Loading…
Reference in New Issue