diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-02-06 16:54:09 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-02-06 16:54:09 -0500 |
commit | 3e6bdf473f489664dac4d7511d26c7ac3dfdc748 (patch) | |
tree | 10cb2e928830b9de8bbc3f6dd47c18c24cd2affa /include/asm-x86 | |
parent | 3d4d4582e5b3f67a68f2cf32fd5b70d8d80f119d (diff) | |
parent | 58d5d0d8dd52cbca988af24b5692a20b00285543 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86
* git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86:
x86: fix deadlock, make pgd_lock irq-safe
virtio: fix trivial build bug
x86: fix mttr trimming
x86: delay CPA self-test and repeat it
x86: fix 64-bit sections
generic: add __FINITDATA
x86: remove suprious ifdefs from pageattr.c
x86: mark the .rodata section also NX
x86: fix iret exception recovery on 64-bit
cpuidle: dubious one-bit signed bitfield in cpuidle.h
x86: fix sparse warnings in powernow-k8.c
x86: fix sparse error in traps_32.c
x86: trivial sparse/checkpatch in quirks.c
x86 ptrace: disallow null cs/ss
MAINTAINERS: RDC R-321x SoC maintainer
brk randomization: introduce CONFIG_COMPAT_BRK
brk: check the lower bound properly
x86: remove X2 workaround
x86: make spurious fault handler aware of large mappings
x86: make traps on entry code be debuggable in user space, 64-bit
Diffstat (limited to 'include/asm-x86')
-rw-r--r-- | include/asm-x86/pgalloc_64.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/include/asm-x86/pgalloc_64.h b/include/asm-x86/pgalloc_64.h index 315314ce4bfb..4f6220db22b1 100644 --- a/include/asm-x86/pgalloc_64.h +++ b/include/asm-x86/pgalloc_64.h | |||
@@ -42,19 +42,21 @@ static inline void pud_free(struct mm_struct *mm, pud_t *pud) | |||
42 | static inline void pgd_list_add(pgd_t *pgd) | 42 | static inline void pgd_list_add(pgd_t *pgd) |
43 | { | 43 | { |
44 | struct page *page = virt_to_page(pgd); | 44 | struct page *page = virt_to_page(pgd); |
45 | unsigned long flags; | ||
45 | 46 | ||
46 | spin_lock(&pgd_lock); | 47 | spin_lock_irqsave(&pgd_lock, flags); |
47 | list_add(&page->lru, &pgd_list); | 48 | list_add(&page->lru, &pgd_list); |
48 | spin_unlock(&pgd_lock); | 49 | spin_unlock_irqrestore(&pgd_lock, flags); |
49 | } | 50 | } |
50 | 51 | ||
51 | static inline void pgd_list_del(pgd_t *pgd) | 52 | static inline void pgd_list_del(pgd_t *pgd) |
52 | { | 53 | { |
53 | struct page *page = virt_to_page(pgd); | 54 | struct page *page = virt_to_page(pgd); |
55 | unsigned long flags; | ||
54 | 56 | ||
55 | spin_lock(&pgd_lock); | 57 | spin_lock_irqsave(&pgd_lock, flags); |
56 | list_del(&page->lru); | 58 | list_del(&page->lru); |
57 | spin_unlock(&pgd_lock); | 59 | spin_unlock_irqrestore(&pgd_lock, flags); |
58 | } | 60 | } |
59 | 61 | ||
60 | static inline pgd_t *pgd_alloc(struct mm_struct *mm) | 62 | static inline pgd_t *pgd_alloc(struct mm_struct *mm) |