mirror of
https://github.com/torvalds/linux.git
synced 2024-11-02 18:21:49 +00:00
x86: Add NMI types for kmap_atomic
Two new kmap_atomic slots for NMI context. And teach pte_offset_map() about NMI context. Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> CC: Nick Piggin <npiggin@suse.de> Cc: Mike Galbraith <efault@gmx.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
465a454f25
commit
3ff0141aa3
@ -21,7 +21,9 @@ D(9) KM_IRQ0,
|
||||
D(10) KM_IRQ1,
|
||||
D(11) KM_SOFTIRQ0,
|
||||
D(12) KM_SOFTIRQ1,
|
||||
D(13) KM_TYPE_NR
|
||||
D(13) KM_NMI,
|
||||
D(14) KM_NMI_PTE,
|
||||
D(15) KM_TYPE_NR
|
||||
};
|
||||
|
||||
#undef D
|
||||
|
@ -49,13 +49,14 @@ extern void set_pmd_pfn(unsigned long, unsigned long, pgprot_t);
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_HIGHPTE)
|
||||
#define __KM_PTE (in_nmi() ? KM_NMI_PTE : KM_PTE0)
|
||||
#define pte_offset_map(dir, address) \
|
||||
((pte_t *)kmap_atomic_pte(pmd_page(*(dir)), KM_PTE0) + \
|
||||
((pte_t *)kmap_atomic_pte(pmd_page(*(dir)), __KM_PTE) + \
|
||||
pte_index((address)))
|
||||
#define pte_offset_map_nested(dir, address) \
|
||||
((pte_t *)kmap_atomic_pte(pmd_page(*(dir)), KM_PTE1) + \
|
||||
pte_index((address)))
|
||||
#define pte_unmap(pte) kunmap_atomic((pte), KM_PTE0)
|
||||
#define pte_unmap(pte) kunmap_atomic((pte), __KM_PTE)
|
||||
#define pte_unmap_nested(pte) kunmap_atomic((pte), KM_PTE1)
|
||||
#else
|
||||
#define pte_offset_map(dir, address) \
|
||||
|
Loading…
Reference in New Issue
Block a user