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

Commit 6218a761 authored by Paul Mackerras's avatar Paul Mackerras
Browse files

powerpc: add context.vdso_base for 32-bit too



This adds a vdso_base element to the mm_context_t for 32-bit compiles
(both for ARCH=powerpc and ARCH=ppc).  This fixes the compile errors
that have been reported in arch/powerpc/kernel/signal_32.c.

Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent 05061354
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -30,7 +30,7 @@
#include <asm/mmu_context.h>
#include <asm/mmu_context.h>
#include <asm/tlbflush.h>
#include <asm/tlbflush.h>


mm_context_t next_mmu_context;
unsigned long next_mmu_context;
unsigned long context_map[LAST_CONTEXT / BITS_PER_LONG + 1];
unsigned long context_map[LAST_CONTEXT / BITS_PER_LONG + 1];
#ifdef FEW_CONTEXTS
#ifdef FEW_CONTEXTS
atomic_t nr_free_contexts;
atomic_t nr_free_contexts;
+1 −1
Original line number Original line Diff line number Diff line
@@ -190,7 +190,7 @@ void hash_preload(struct mm_struct *mm, unsigned long ea,
		return;
		return;
	pmd = pmd_offset(pgd_offset(mm, ea), ea);
	pmd = pmd_offset(pgd_offset(mm, ea), ea);
	if (!pmd_none(*pmd))
	if (!pmd_none(*pmd))
		add_hash_page(mm->context, ea, pmd_val(*pmd));
		add_hash_page(mm->context.id, ea, pmd_val(*pmd));
}
}


/*
/*
+3 −3
Original line number Original line Diff line number Diff line
@@ -42,7 +42,7 @@ void flush_hash_entry(struct mm_struct *mm, pte_t *ptep, unsigned long addr)


	if (Hash != 0) {
	if (Hash != 0) {
		ptephys = __pa(ptep) & PAGE_MASK;
		ptephys = __pa(ptep) & PAGE_MASK;
		flush_hash_pages(mm->context, addr, ptephys, 1);
		flush_hash_pages(mm->context.id, addr, ptephys, 1);
	}
	}
}
}


@@ -102,7 +102,7 @@ static void flush_range(struct mm_struct *mm, unsigned long start,
	pmd_t *pmd;
	pmd_t *pmd;
	unsigned long pmd_end;
	unsigned long pmd_end;
	int count;
	int count;
	unsigned int ctx = mm->context;
	unsigned int ctx = mm->context.id;


	if (Hash == 0) {
	if (Hash == 0) {
		_tlbia();
		_tlbia();
@@ -172,7 +172,7 @@ void flush_tlb_page(struct vm_area_struct *vma, unsigned long vmaddr)
	mm = (vmaddr < TASK_SIZE)? vma->vm_mm: &init_mm;
	mm = (vmaddr < TASK_SIZE)? vma->vm_mm: &init_mm;
	pmd = pmd_offset(pgd_offset(mm, vmaddr), vmaddr);
	pmd = pmd_offset(pgd_offset(mm, vmaddr), vmaddr);
	if (!pmd_none(*pmd))
	if (!pmd_none(*pmd))
		flush_hash_pages(mm->context, vmaddr, pmd_val(*pmd), 1);
		flush_hash_pages(mm->context.id, vmaddr, pmd_val(*pmd), 1);
	FINISH_FLUSH;
	FINISH_FLUSH;
}
}


+1 −1
Original line number Original line Diff line number Diff line
@@ -314,7 +314,7 @@ static int pmu_set_cpu_speed(int low_speed)
 		_set_L3CR(save_l3cr);
 		_set_L3CR(save_l3cr);


	/* Restore userland MMU context */
	/* Restore userland MMU context */
	set_context(current->active_mm->context, current->active_mm->pgd);
	set_context(current->active_mm->context.id, current->active_mm->pgd);


#ifdef DEBUG_FREQ
#ifdef DEBUG_FREQ
	printk(KERN_DEBUG "HID1, after: %x\n", mfspr(SPRN_HID1));
	printk(KERN_DEBUG "HID1, after: %x\n", mfspr(SPRN_HID1));
+1 −1
Original line number Original line Diff line number Diff line
@@ -458,7 +458,7 @@ static int pmac_pm_finish(suspend_state_t state)
	printk(KERN_DEBUG "%s(%d)\n", __FUNCTION__, state);
	printk(KERN_DEBUG "%s(%d)\n", __FUNCTION__, state);


	/* Restore userland MMU context */
	/* Restore userland MMU context */
	set_context(current->active_mm->context, current->active_mm->pgd);
	set_context(current->active_mm->context.id, current->active_mm->pgd);


	return 0;
	return 0;
}
}
Loading