sparc32: centralize all mmu context handling in srmmu.c
Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
59b00c792f
commit
b585e8551b
@@ -9,14 +9,12 @@ static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk)
|
||||
{
|
||||
}
|
||||
|
||||
/*
|
||||
* Initialize a new mmu context. This is invoked when a new
|
||||
/* Initialize a new mmu context. This is invoked when a new
|
||||
* address space instance (unique or shared) is instantiated.
|
||||
*/
|
||||
#define init_new_context(tsk, mm) (((mm)->context = NO_CONTEXT), 0)
|
||||
int init_new_context(struct task_struct *tsk, struct mm_struct *mm);
|
||||
|
||||
/*
|
||||
* Destroy a dead context. This occurs when mmput drops the
|
||||
/* Destroy a dead context. This occurs when mmput drops the
|
||||
* mm_users count to zero, the mmaps have been released, and
|
||||
* all the page tables have been flushed. Our job is to destroy
|
||||
* any remaining processor-specific state.
|
||||
|
@@ -79,8 +79,6 @@ extern unsigned long ptr_in_current_pgd;
|
||||
#define __S110 PAGE_SHARED
|
||||
#define __S111 PAGE_SHARED
|
||||
|
||||
extern int num_contexts;
|
||||
|
||||
/* First physical page can be anywhere, the following is needed so that
|
||||
* va-->pa and vice versa conversions work properly without performance
|
||||
* hit for all __pa()/__va() operations.
|
||||
@@ -399,36 +397,6 @@ static inline pte_t pgoff_to_pte(unsigned long pgoff)
|
||||
*/
|
||||
#define PTE_FILE_MAX_BITS 24
|
||||
|
||||
/*
|
||||
*/
|
||||
struct ctx_list {
|
||||
struct ctx_list *next;
|
||||
struct ctx_list *prev;
|
||||
unsigned int ctx_number;
|
||||
struct mm_struct *ctx_mm;
|
||||
};
|
||||
|
||||
extern struct ctx_list *ctx_list_pool; /* Dynamically allocated */
|
||||
extern struct ctx_list ctx_free; /* Head of free list */
|
||||
extern struct ctx_list ctx_used; /* Head of used contexts list */
|
||||
|
||||
#define NO_CONTEXT -1
|
||||
|
||||
static inline void remove_from_ctx_list(struct ctx_list *entry)
|
||||
{
|
||||
entry->next->prev = entry->prev;
|
||||
entry->prev->next = entry->next;
|
||||
}
|
||||
|
||||
static inline void add_to_ctx_list(struct ctx_list *head, struct ctx_list *entry)
|
||||
{
|
||||
entry->next = head;
|
||||
(entry->prev = head->prev)->next = entry;
|
||||
head->prev = entry;
|
||||
}
|
||||
#define add_to_free_ctxlist(entry) add_to_ctx_list(&ctx_free, entry)
|
||||
#define add_to_used_ctxlist(entry) add_to_ctx_list(&ctx_used, entry)
|
||||
|
||||
static inline unsigned long
|
||||
__get_phys (unsigned long addr)
|
||||
{
|
||||
|
Reference in New Issue
Block a user