Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 fixes and cleanups from Thomas Gleixner: "This set of updates contains: - Robustification for the logical package managment. Cures the AMD and virtualization issues. - Put the correct start_cpu() return address on the stack of the idle task. - Fixups for the fallout of the nodeid <-> cpuid persistent mapping modifciations - Move the x86/MPX specific mm_struct member to the arch specific mm_context where it belongs - Cleanups for C89 struct initializers and useless function arguments" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/floppy: Use designated initializers x86/mpx: Move bd_addr to mm_context_t x86/mm: Drop unused argument 'removed' from sync_global_pgds() ACPI/NUMA: Do not map pxm to node when NUMA is turned off x86/acpi: Use proper macro for invalid node x86/smpboot: Prevent false positive out of bounds cpumask access warning x86/boot/64: Push correct start_cpu() return address x86/boot/64: Use 'push' instead of 'call' in start_cpu() x86/smpboot: Make logical package management more robust
This commit is contained in:
@@ -229,18 +229,18 @@ static struct fd_routine_l {
|
||||
int (*_dma_setup)(char *addr, unsigned long size, int mode, int io);
|
||||
} fd_routine[] = {
|
||||
{
|
||||
request_dma,
|
||||
free_dma,
|
||||
get_dma_residue,
|
||||
dma_mem_alloc,
|
||||
hard_dma_setup
|
||||
._request_dma = request_dma,
|
||||
._free_dma = free_dma,
|
||||
._get_dma_residue = get_dma_residue,
|
||||
._dma_mem_alloc = dma_mem_alloc,
|
||||
._dma_setup = hard_dma_setup
|
||||
},
|
||||
{
|
||||
vdma_request_dma,
|
||||
vdma_nop,
|
||||
vdma_get_dma_residue,
|
||||
vdma_mem_alloc,
|
||||
vdma_dma_setup
|
||||
._request_dma = vdma_request_dma,
|
||||
._free_dma = vdma_nop,
|
||||
._get_dma_residue = vdma_get_dma_residue,
|
||||
._dma_mem_alloc = vdma_mem_alloc,
|
||||
._dma_setup = vdma_dma_setup
|
||||
}
|
||||
};
|
||||
|
||||
|
@@ -31,6 +31,10 @@ typedef struct {
|
||||
u16 pkey_allocation_map;
|
||||
s16 execute_only_pkey;
|
||||
#endif
|
||||
#ifdef CONFIG_X86_INTEL_MPX
|
||||
/* address of the bounds directory */
|
||||
void __user *bd_addr;
|
||||
#endif
|
||||
} mm_context_t;
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
|
@@ -59,7 +59,7 @@ siginfo_t *mpx_generate_siginfo(struct pt_regs *regs);
|
||||
int mpx_handle_bd_fault(void);
|
||||
static inline int kernel_managing_mpx_tables(struct mm_struct *mm)
|
||||
{
|
||||
return (mm->bd_addr != MPX_INVALID_BOUNDS_DIR);
|
||||
return (mm->context.bd_addr != MPX_INVALID_BOUNDS_DIR);
|
||||
}
|
||||
static inline void mpx_mm_init(struct mm_struct *mm)
|
||||
{
|
||||
@@ -67,7 +67,7 @@ static inline void mpx_mm_init(struct mm_struct *mm)
|
||||
* NULL is theoretically a valid place to put the bounds
|
||||
* directory, so point this at an invalid address.
|
||||
*/
|
||||
mm->bd_addr = MPX_INVALID_BOUNDS_DIR;
|
||||
mm->context.bd_addr = MPX_INVALID_BOUNDS_DIR;
|
||||
}
|
||||
void mpx_notify_unmap(struct mm_struct *mm, struct vm_area_struct *vma,
|
||||
unsigned long start, unsigned long end);
|
||||
|
@@ -116,8 +116,7 @@ static inline void native_pgd_clear(pgd_t *pgd)
|
||||
native_set_pgd(pgd, native_make_pgd(0));
|
||||
}
|
||||
|
||||
extern void sync_global_pgds(unsigned long start, unsigned long end,
|
||||
int removed);
|
||||
extern void sync_global_pgds(unsigned long start, unsigned long end);
|
||||
|
||||
/*
|
||||
* Conversion functions: convert a page and protection to a page entry,
|
||||
|
Reference in New Issue
Block a user