Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0b2b6e1d authored by Heiko Carstens's avatar Heiko Carstens Committed by Martin Schwidefsky
Browse files

[S390] Remove open-coded mem_map usage.



Use page_to_phys and pfn_to_page to avoid open-coded mem_map usage.

Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
parent 7676bef9
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -62,19 +62,21 @@ void show_mem(void)
{
        int i, total = 0, reserved = 0;
        int shared = 0, cached = 0;
	struct page *page;

        printk("Mem-info:\n");
        show_free_areas();
        printk("Free swap:       %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10));
        i = max_mapnr;
        while (i-- > 0) {
		page = pfn_to_page(i);
                total++;
                if (PageReserved(mem_map+i))
		if (PageReserved(page))
                        reserved++;
                else if (PageSwapCache(mem_map+i))
		else if (PageSwapCache(page))
                        cached++;
                else if (page_count(mem_map+i))
                        shared += page_count(mem_map+i) - 1;
		else if (page_count(page))
			shared += page_count(page) - 1;
        }
        printk("%d pages of RAM\n",total);
        printk("%d reserved pages\n",reserved);
+0 −5
Original line number Diff line number Diff line
@@ -45,11 +45,6 @@ static inline void * phys_to_virt(unsigned long address)
        return __io_virt(address);
}

/*
 * Change "struct page" to physical address.
 */
#define page_to_phys(page)	((page - mem_map) << PAGE_SHIFT)

extern void * __ioremap(unsigned long offset, unsigned long size, unsigned long flags);

static inline void * ioremap (unsigned long offset, unsigned long size)
+1 −0
Original line number Diff line number Diff line
@@ -137,6 +137,7 @@ page_get_storage_key(unsigned long addr)
#define __pa(x)                 (unsigned long)(x)
#define __va(x)                 (void *)(unsigned long)(x)
#define virt_to_page(kaddr)	pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
#define page_to_phys(page)	(page_to_pfn(page) << PAGE_SHIFT)

#define pfn_valid(pfn)		((pfn) < max_mapnr)
#define virt_addr_valid(kaddr)	pfn_valid(__pa(kaddr) >> PAGE_SHIFT)
+1 −1
Original line number Diff line number Diff line
@@ -116,7 +116,7 @@ pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, pte_t *pte)
static inline void
pmd_populate(struct mm_struct *mm, pmd_t *pmd, struct page *page)
{
	pmd_populate_kernel(mm, pmd, (pte_t *)((page-mem_map) << PAGE_SHIFT));
	pmd_populate_kernel(mm, pmd, (pte_t *)page_to_phys(page));
}

/*
+9 −9
Original line number Diff line number Diff line
@@ -599,7 +599,7 @@ ptep_establish(struct vm_area_struct *vma,
 */
static inline int page_test_and_clear_dirty(struct page *page)
{
	unsigned long physpage = __pa((page - mem_map) << PAGE_SHIFT);
	unsigned long physpage = page_to_phys(page);
	int skey = page_get_storage_key(physpage);

	if (skey & _PAGE_CHANGED)
@@ -612,7 +612,7 @@ static inline int page_test_and_clear_dirty(struct page *page)
 */
static inline int page_test_and_clear_young(struct page *page)
{
	unsigned long physpage = __pa((page - mem_map) << PAGE_SHIFT);
	unsigned long physpage = page_to_phys(page);
	int ccode;

	asm volatile(
@@ -636,7 +636,7 @@ static inline pte_t mk_pte_phys(unsigned long physpage, pgprot_t pgprot)

static inline pte_t mk_pte(struct page *page, pgprot_t pgprot)
{
	unsigned long physpage = __pa((page - mem_map) << PAGE_SHIFT);
	unsigned long physpage = page_to_phys(page);

	return mk_pte_phys(physpage, pgprot);
}
@@ -664,11 +664,11 @@ static inline pmd_t pfn_pmd(unsigned long pfn, pgprot_t pgprot)

#define pmd_page_vaddr(pmd) (pmd_val(pmd) & PAGE_MASK)

#define pmd_page(pmd) (mem_map+(pmd_val(pmd) >> PAGE_SHIFT))
#define pmd_page(pmd) pfn_to_page(pmd_val(pmd) >> PAGE_SHIFT)

#define pgd_page_vaddr(pgd) (pgd_val(pgd) & PAGE_MASK)

#define pgd_page(pgd) (mem_map+(pgd_val(pgd) >> PAGE_SHIFT))
#define pgd_page(pgd) pfn_to_page(pgd_val(pgd) >> PAGE_SHIFT)

/* to find an entry in a page-table-directory */
#define pgd_index(address) (((address) >> PGDIR_SHIFT) & (PTRS_PER_PGD-1))