Merge branches 'x86/apic', 'x86/cleanups', 'x86/cpufeature', 'x86/crashdump', 'x86/debug', 'x86/defconfig', 'x86/detect-hyper', 'x86/doc', 'x86/dumpstack', 'x86/early-printk', 'x86/fpu', 'x86/idle', 'x86/io', 'x86/memory-corruption-check', 'x86/microcode', 'x86/mm', 'x86/mtrr', 'x86/nmi-watchdog', 'x86/pat2', 'x86/pci-ioapic-boot-irq-quirks', 'x86/ptrace', 'x86/quirks', 'x86/reboot', 'x86/setup-memory', 'x86/signal', 'x86/sparse-fixes', 'x86/time', 'x86/uv' and 'x86/xen' into x86/core
This commit is contained in:

parent
3d44cc3e01
1ccedb7cdb
34945ede31
d437797406
c415b3dce3
beeb4195cb
f269b07e86
4e42ebd57b
e1286f2c68
878719e831
fd28a5b58d
adf77bac05
8f2466f45f
93093d099e
bb5574608a
f34a10bd9f
b6fd6f2673
30604bb410
5b9a0e14eb
67bac792cd
7a9787e1eb
f4166c54bf
69b88afa8d
8daa19051e
3e1e9002aa
8403295e0f
4db646b1af
205516c12d
c8182f0016
ecbf29cdb3
commit
fa623d1b02
@@ -8,9 +8,17 @@
|
||||
#ifdef CONFIG_GENERIC_BUG
|
||||
#ifndef __ASSEMBLY__
|
||||
struct bug_entry {
|
||||
#ifndef CONFIG_GENERIC_BUG_RELATIVE_POINTERS
|
||||
unsigned long bug_addr;
|
||||
#else
|
||||
signed int bug_addr_disp;
|
||||
#endif
|
||||
#ifdef CONFIG_DEBUG_BUGVERBOSE
|
||||
#ifndef CONFIG_GENERIC_BUG_RELATIVE_POINTERS
|
||||
const char *file;
|
||||
#else
|
||||
signed int file_disp;
|
||||
#endif
|
||||
unsigned short line;
|
||||
#endif
|
||||
unsigned short flags;
|
||||
|
@@ -129,6 +129,10 @@ static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addres
|
||||
#define move_pte(pte, prot, old_addr, new_addr) (pte)
|
||||
#endif
|
||||
|
||||
#ifndef pgprot_writecombine
|
||||
#define pgprot_writecombine pgprot_noncached
|
||||
#endif
|
||||
|
||||
/*
|
||||
* When walking page tables, get the address of the next boundary,
|
||||
* or the end address of the range if that comes earlier. Although no
|
||||
@@ -289,6 +293,52 @@ static inline void ptep_modify_prot_commit(struct mm_struct *mm,
|
||||
#define arch_flush_lazy_cpu_mode() do {} while (0)
|
||||
#endif
|
||||
|
||||
#ifndef __HAVE_PFNMAP_TRACKING
|
||||
/*
|
||||
* Interface that can be used by architecture code to keep track of
|
||||
* memory type of pfn mappings (remap_pfn_range, vm_insert_pfn)
|
||||
*
|
||||
* track_pfn_vma_new is called when a _new_ pfn mapping is being established
|
||||
* for physical range indicated by pfn and size.
|
||||
*/
|
||||
static inline int track_pfn_vma_new(struct vm_area_struct *vma, pgprot_t prot,
|
||||
unsigned long pfn, unsigned long size)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Interface that can be used by architecture code to keep track of
|
||||
* memory type of pfn mappings (remap_pfn_range, vm_insert_pfn)
|
||||
*
|
||||
* track_pfn_vma_copy is called when vma that is covering the pfnmap gets
|
||||
* copied through copy_page_range().
|
||||
*/
|
||||
static inline int track_pfn_vma_copy(struct vm_area_struct *vma)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Interface that can be used by architecture code to keep track of
|
||||
* memory type of pfn mappings (remap_pfn_range, vm_insert_pfn)
|
||||
*
|
||||
* untrack_pfn_vma is called while unmapping a pfnmap for a region.
|
||||
* untrack can be called for a specific region indicated by pfn and size or
|
||||
* can be for the entire vma (in which case size can be zero).
|
||||
*/
|
||||
static inline void untrack_pfn_vma(struct vm_area_struct *vma,
|
||||
unsigned long pfn, unsigned long size)
|
||||
{
|
||||
}
|
||||
#else
|
||||
extern int track_pfn_vma_new(struct vm_area_struct *vma, pgprot_t prot,
|
||||
unsigned long pfn, unsigned long size);
|
||||
extern int track_pfn_vma_copy(struct vm_area_struct *vma);
|
||||
extern void untrack_pfn_vma(struct vm_area_struct *vma, unsigned long pfn,
|
||||
unsigned long size);
|
||||
#endif
|
||||
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
|
||||
#endif /* _ASM_GENERIC_PGTABLE_H */
|
||||
|
Reference in New Issue
Block a user