Merge branches 'core-ipi-for-linus', 'core-locking-for-linus', 'tracing-fixes-for-linus', 'x86-debug-for-linus', 'x86-doc-for-linus', 'x86-gpu-for-linus' and 'x86-rlimit-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'core-ipi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: generic-ipi: Optimize accesses by using DEFINE_PER_CPU_SHARED_ALIGNED for IPI data * 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: plist: Fix grammar mistake, and c-style mistake * 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: kprobes: Add mcount to the kprobes blacklist * 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86_64: Print modules like i386 does * 'x86-doc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86: Put 'nopat' in kernel-parameters * 'x86-gpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86-64: Allow fbdev primary video code * 'x86-rlimit-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86: Use helpers for rlimits
This commit is contained in:
commit
f91b22c35f
|
@ -1738,6 +1738,9 @@ and is between 256 and 4096 characters. It is defined in the file
|
||||||
nomfgpt [X86-32] Disable Multi-Function General Purpose
|
nomfgpt [X86-32] Disable Multi-Function General Purpose
|
||||||
Timer usage (for AMD Geode machines).
|
Timer usage (for AMD Geode machines).
|
||||||
|
|
||||||
|
nopat [X86] Disable PAT (page attribute table extension of
|
||||||
|
pagetables) support.
|
||||||
|
|
||||||
norandmaps Don't use address space randomization. Equivalent to
|
norandmaps Don't use address space randomization. Equivalent to
|
||||||
echo 0 > /proc/sys/kernel/randomize_va_space
|
echo 0 > /proc/sys/kernel/randomize_va_space
|
||||||
|
|
||||||
|
|
|
@ -135,9 +135,7 @@ drivers-$(CONFIG_OPROFILE) += arch/x86/oprofile/
|
||||||
# suspend and hibernation support
|
# suspend and hibernation support
|
||||||
drivers-$(CONFIG_PM) += arch/x86/power/
|
drivers-$(CONFIG_PM) += arch/x86/power/
|
||||||
|
|
||||||
ifeq ($(CONFIG_X86_32),y)
|
|
||||||
drivers-$(CONFIG_FB) += arch/x86/video/
|
drivers-$(CONFIG_FB) += arch/x86/video/
|
||||||
endif
|
|
||||||
|
|
||||||
####
|
####
|
||||||
# boot loader support. Several targets are kept for legacy purposes
|
# boot loader support. Several targets are kept for legacy purposes
|
||||||
|
|
|
@ -297,7 +297,7 @@ static int load_aout_binary(struct linux_binprm *bprm, struct pt_regs *regs)
|
||||||
* size limits imposed on them by creating programs with large
|
* size limits imposed on them by creating programs with large
|
||||||
* arrays in the data or bss.
|
* arrays in the data or bss.
|
||||||
*/
|
*/
|
||||||
rlim = current->signal->rlim[RLIMIT_DATA].rlim_cur;
|
rlim = rlimit(RLIMIT_DATA);
|
||||||
if (rlim >= RLIM_INFINITY)
|
if (rlim >= RLIM_INFINITY)
|
||||||
rlim = ~0;
|
rlim = ~0;
|
||||||
if (ex.a_data + ex.a_bss > rlim)
|
if (ex.a_data + ex.a_bss > rlim)
|
||||||
|
|
|
@ -12,10 +12,6 @@ static inline void fb_pgprotect(struct file *file, struct vm_area_struct *vma,
|
||||||
pgprot_val(vma->vm_page_prot) |= _PAGE_PCD;
|
pgprot_val(vma->vm_page_prot) |= _PAGE_PCD;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_X86_32
|
|
||||||
extern int fb_is_primary_device(struct fb_info *info);
|
extern int fb_is_primary_device(struct fb_info *info);
|
||||||
#else
|
|
||||||
static inline int fb_is_primary_device(struct fb_info *info) { return 0; }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* _ASM_X86_FB_H */
|
#endif /* _ASM_X86_FB_H */
|
||||||
|
|
|
@ -291,6 +291,7 @@ void show_registers(struct pt_regs *regs)
|
||||||
|
|
||||||
sp = regs->sp;
|
sp = regs->sp;
|
||||||
printk("CPU %d ", cpu);
|
printk("CPU %d ", cpu);
|
||||||
|
print_modules();
|
||||||
__show_regs(regs, 1);
|
__show_regs(regs, 1);
|
||||||
printk("Process %s (pid: %d, threadinfo %p, task %p)\n",
|
printk("Process %s (pid: %d, threadinfo %p, task %p)\n",
|
||||||
cur->comm, cur->pid, task_thread_info(cur), cur);
|
cur->comm, cur->pid, task_thread_info(cur), cur);
|
||||||
|
|
|
@ -71,7 +71,7 @@ static int mmap_is_legacy(void)
|
||||||
if (current->personality & ADDR_COMPAT_LAYOUT)
|
if (current->personality & ADDR_COMPAT_LAYOUT)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
if (current->signal->rlim[RLIMIT_STACK].rlim_cur == RLIM_INFINITY)
|
if (rlimit(RLIMIT_STACK) == RLIM_INFINITY)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
return sysctl_legacy_va_layout;
|
return sysctl_legacy_va_layout;
|
||||||
|
@ -96,7 +96,7 @@ static unsigned long mmap_rnd(void)
|
||||||
|
|
||||||
static unsigned long mmap_base(void)
|
static unsigned long mmap_base(void)
|
||||||
{
|
{
|
||||||
unsigned long gap = current->signal->rlim[RLIMIT_STACK].rlim_cur;
|
unsigned long gap = rlimit(RLIMIT_STACK);
|
||||||
|
|
||||||
if (gap < MIN_GAP)
|
if (gap < MIN_GAP)
|
||||||
gap = MIN_GAP;
|
gap = MIN_GAP;
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
* the insertion of new nodes. There are no nodes with duplicate
|
* the insertion of new nodes. There are no nodes with duplicate
|
||||||
* priorites on the list.
|
* priorites on the list.
|
||||||
*
|
*
|
||||||
* The nodes on the node_list is ordered by priority and can contain
|
* The nodes on the node_list are ordered by priority and can contain
|
||||||
* entries which have the same priority. Those entries are ordered
|
* entries which have the same priority. Those entries are ordered
|
||||||
* FIFO
|
* FIFO
|
||||||
*
|
*
|
||||||
|
@ -265,7 +265,7 @@ static inline int plist_node_empty(const struct plist_node *node)
|
||||||
*
|
*
|
||||||
* Assumes the plist is _not_ empty.
|
* Assumes the plist is _not_ empty.
|
||||||
*/
|
*/
|
||||||
static inline struct plist_node* plist_first(const struct plist_head *head)
|
static inline struct plist_node *plist_first(const struct plist_head *head)
|
||||||
{
|
{
|
||||||
return list_entry(head->node_list.next,
|
return list_entry(head->node_list.next,
|
||||||
struct plist_node, plist.node_list);
|
struct plist_node, plist.node_list);
|
||||||
|
|
|
@ -93,6 +93,7 @@ static struct kprobe_blackpoint kprobe_blacklist[] = {
|
||||||
{"native_get_debugreg",},
|
{"native_get_debugreg",},
|
||||||
{"irq_entries_start",},
|
{"irq_entries_start",},
|
||||||
{"common_interrupt",},
|
{"common_interrupt",},
|
||||||
|
{"mcount",}, /* mcount can be called from everywhere */
|
||||||
{NULL} /* Terminator */
|
{NULL} /* Terminator */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -12,8 +12,6 @@
|
||||||
#include <linux/smp.h>
|
#include <linux/smp.h>
|
||||||
#include <linux/cpu.h>
|
#include <linux/cpu.h>
|
||||||
|
|
||||||
static DEFINE_PER_CPU(struct call_single_queue, call_single_queue);
|
|
||||||
|
|
||||||
static struct {
|
static struct {
|
||||||
struct list_head queue;
|
struct list_head queue;
|
||||||
raw_spinlock_t lock;
|
raw_spinlock_t lock;
|
||||||
|
@ -33,12 +31,14 @@ struct call_function_data {
|
||||||
cpumask_var_t cpumask;
|
cpumask_var_t cpumask;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static DEFINE_PER_CPU_SHARED_ALIGNED(struct call_function_data, cfd_data);
|
||||||
|
|
||||||
struct call_single_queue {
|
struct call_single_queue {
|
||||||
struct list_head list;
|
struct list_head list;
|
||||||
raw_spinlock_t lock;
|
raw_spinlock_t lock;
|
||||||
};
|
};
|
||||||
|
|
||||||
static DEFINE_PER_CPU(struct call_function_data, cfd_data);
|
static DEFINE_PER_CPU_SHARED_ALIGNED(struct call_single_queue, call_single_queue);
|
||||||
|
|
||||||
static int
|
static int
|
||||||
hotplug_cfd(struct notifier_block *nfb, unsigned long action, void *hcpu)
|
hotplug_cfd(struct notifier_block *nfb, unsigned long action, void *hcpu)
|
||||||
|
@ -256,7 +256,7 @@ void generic_smp_call_function_single_interrupt(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static DEFINE_PER_CPU(struct call_single_data, csd_data);
|
static DEFINE_PER_CPU_SHARED_ALIGNED(struct call_single_data, csd_data);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* smp_call_function_single - Run a function on a specific CPU
|
* smp_call_function_single - Run a function on a specific CPU
|
||||||
|
|
Loading…
Reference in New Issue