Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 53815
b: refs/heads/master
c: 2bff738
h: refs/heads/master
i:
  53813: de989d3
  53811: 0595453
  53807: 34b3927
v: v3
  • Loading branch information
Christoph Lameter authored and Andi Kleen committed May 2, 2007
1 parent 43891e1 commit c47f505
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 16 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 05f36927eddd83e2840a981ef4d9af754dcb86e9
refs/heads/master: 2bff73830c3df5f575d3bc21bf19df1a10bf7091
5 changes: 2 additions & 3 deletions trunk/arch/x86_64/mm/fault.c
Original file line number Diff line number Diff line change
Expand Up @@ -585,7 +585,7 @@ asmlinkage void __kprobes do_page_fault(struct pt_regs *regs,
}

DEFINE_SPINLOCK(pgd_lock);
struct page *pgd_list;
LIST_HEAD(pgd_list);

void vmalloc_sync_all(void)
{
Expand All @@ -605,8 +605,7 @@ void vmalloc_sync_all(void)
if (pgd_none(*pgd_ref))
continue;
spin_lock(&pgd_lock);
for (page = pgd_list; page;
page = (struct page *)page->index) {
list_for_each_entry(page, &pgd_list, lru) {
pgd_t *pgd;
pgd = (pgd_t *)page_address(page) + pgd_index(address);
if (pgd_none(*pgd))
Expand Down
14 changes: 3 additions & 11 deletions trunk/include/asm-x86_64/pgalloc.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,24 +44,16 @@ static inline void pgd_list_add(pgd_t *pgd)
struct page *page = virt_to_page(pgd);

spin_lock(&pgd_lock);
page->index = (pgoff_t)pgd_list;
if (pgd_list)
pgd_list->private = (unsigned long)&page->index;
pgd_list = page;
page->private = (unsigned long)&pgd_list;
list_add(&page->lru, &pgd_list);
spin_unlock(&pgd_lock);
}

static inline void pgd_list_del(pgd_t *pgd)
{
struct page *next, **pprev, *page = virt_to_page(pgd);
struct page *page = virt_to_page(pgd);

spin_lock(&pgd_lock);
next = (struct page *)page->index;
pprev = (struct page **)page->private;
*pprev = next;
if (next)
next->private = (unsigned long)pprev;
list_del(&page->lru);
spin_unlock(&pgd_lock);
}

Expand Down
2 changes: 1 addition & 1 deletion trunk/include/asm-x86_64/pgtable.h
Original file line number Diff line number Diff line change
Expand Up @@ -410,7 +410,7 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
#define __swp_entry_to_pte(x) ((pte_t) { (x).val })

extern spinlock_t pgd_lock;
extern struct page *pgd_list;
extern struct list_head pgd_list;
void vmalloc_sync_all(void);

extern int kern_addr_valid(unsigned long addr);
Expand Down

0 comments on commit c47f505

Please sign in to comment.