sparc: Kill custom io_remap_pfn_range().
To handle the large physical addresses, just make a simple wrapper around remap_pfn_range() like MIPS does. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -431,10 +431,6 @@ extern unsigned long *sparc_valid_addr_bitmap;
|
||||
#define kern_addr_valid(addr) \
|
||||
(test_bit(__pa((unsigned long)(addr))>>20, sparc_valid_addr_bitmap))
|
||||
|
||||
extern int io_remap_pfn_range(struct vm_area_struct *vma,
|
||||
unsigned long from, unsigned long pfn,
|
||||
unsigned long size, pgprot_t prot);
|
||||
|
||||
/*
|
||||
* For sparc32&64, the pfn in io_remap_pfn_range() carries <iospace> in
|
||||
* its high 4 bits. These macros/functions put it there or get it from there.
|
||||
@@ -443,6 +439,22 @@ extern int io_remap_pfn_range(struct vm_area_struct *vma,
|
||||
#define GET_IOSPACE(pfn) (pfn >> (BITS_PER_LONG - 4))
|
||||
#define GET_PFN(pfn) (pfn & 0x0fffffffUL)
|
||||
|
||||
extern int remap_pfn_range(struct vm_area_struct *, unsigned long, unsigned long,
|
||||
unsigned long, pgprot_t);
|
||||
|
||||
static inline int io_remap_pfn_range(struct vm_area_struct *vma,
|
||||
unsigned long from, unsigned long pfn,
|
||||
unsigned long size, pgprot_t prot)
|
||||
{
|
||||
unsigned long long offset, space, phys_base;
|
||||
|
||||
offset = ((unsigned long long) GET_PFN(pfn)) << PAGE_SHIFT;
|
||||
space = GET_IOSPACE(pfn);
|
||||
phys_base = offset | (space << 32ULL);
|
||||
|
||||
return remap_pfn_range(vma, from, phys_base >> PAGE_SHIFT, size, prot);
|
||||
}
|
||||
|
||||
#define __HAVE_ARCH_PTEP_SET_ACCESS_FLAGS
|
||||
#define ptep_set_access_flags(__vma, __address, __ptep, __entry, __dirty) \
|
||||
({ \
|
||||
|
Reference in New Issue
Block a user