mm: bring sparc pte_index() semantics inline with other platforms
pte_index() on platforms other than sparc return a numerical index. On sparc, it returns a pte_t*. This presents an issue for vm_insert_pages(), which relies on pte_index() to find the offset for a pte within a pmd, for batched inserts. This patch: 1. Modifies pte_index() for sparc to return a numerical index, like other platforms, 2. Defines pte_entry() for sparc which returns a pte_t* (as pte_index() used to), 3. Converts existing sparc callers for pte_index() to use pte_entry(). [sfr@canb.auug.org.au: remove pte_entry and just directly modified pte_offset_kernel instead] Signed-off-by: Arjun Roy <arjunroy@google.com> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Reviewed-by: Mike Rapoport <rppt@linux.ibm.com> Cc: Eric Dumazet <edumazet@google.com> Cc: Soheil Hassas Yeganeh <soheil@google.com> Cc: David Miller <davem@davemloft.net> Cc: Matthew Wilcox <willy@infradead.org> Cc: Arjun Roy <arjunroy.kdev@gmail.com> Cc: Jason Gunthorpe <jgg@ziepe.ca> Link: http://lkml.kernel.org/r/20200227105045.6b421d9f@canb.auug.org.au Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
8efd6f5b17
commit
251a0ffeae
|
@ -907,11 +907,11 @@ static inline unsigned long pud_pfn(pud_t pud)
|
|||
(((address) >> PMD_SHIFT) & (PTRS_PER_PMD-1)))
|
||||
|
||||
/* Find an entry in the third-level page table.. */
|
||||
#define pte_index(dir, address) \
|
||||
((pte_t *) __pmd_page(*(dir)) + \
|
||||
((address >> PAGE_SHIFT) & (PTRS_PER_PTE - 1)))
|
||||
#define pte_offset_kernel pte_index
|
||||
#define pte_offset_map pte_index
|
||||
#define pte_index(address) \
|
||||
((address >> PAGE_SHIFT) & (PTRS_PER_PTE - 1))
|
||||
#define pte_offset_kernel(dir, address) \
|
||||
((pte_t *) __pmd_page(*(dir)) + pte_index(address))
|
||||
#define pte_offset_map(dir, address) pte_offset_kernel((dir), (address))
|
||||
#define pte_unmap(pte) do { } while (0)
|
||||
|
||||
/* We cannot include <linux/mm_types.h> at this point yet: */
|
||||
|
|
Loading…
Reference in New Issue