You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge commit 'v2.6.29-rc2' into x86/mm
This commit is contained in:
@@ -47,6 +47,7 @@
|
||||
#include <asm/proto.h>
|
||||
#include <asm/apic.h>
|
||||
#include <asm/i8259.h>
|
||||
#include <asm/smp.h>
|
||||
|
||||
#include <mach_apic.h>
|
||||
#include <mach_apicdef.h>
|
||||
|
||||
@@ -150,9 +150,8 @@ struct drv_cmd {
|
||||
u32 val;
|
||||
};
|
||||
|
||||
static long do_drv_read(void *_cmd)
|
||||
static void do_drv_read(struct drv_cmd *cmd)
|
||||
{
|
||||
struct drv_cmd *cmd = _cmd;
|
||||
u32 h;
|
||||
|
||||
switch (cmd->type) {
|
||||
@@ -167,12 +166,10 @@ static long do_drv_read(void *_cmd)
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static long do_drv_write(void *_cmd)
|
||||
static void do_drv_write(struct drv_cmd *cmd)
|
||||
{
|
||||
struct drv_cmd *cmd = _cmd;
|
||||
u32 lo, hi;
|
||||
|
||||
switch (cmd->type) {
|
||||
@@ -189,23 +186,30 @@ static long do_drv_write(void *_cmd)
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void drv_read(struct drv_cmd *cmd)
|
||||
{
|
||||
cpumask_t saved_mask = current->cpus_allowed;
|
||||
cmd->val = 0;
|
||||
|
||||
work_on_cpu(cpumask_any(cmd->mask), do_drv_read, cmd);
|
||||
set_cpus_allowed_ptr(current, cmd->mask);
|
||||
do_drv_read(cmd);
|
||||
set_cpus_allowed_ptr(current, &saved_mask);
|
||||
}
|
||||
|
||||
static void drv_write(struct drv_cmd *cmd)
|
||||
{
|
||||
cpumask_t saved_mask = current->cpus_allowed;
|
||||
unsigned int i;
|
||||
|
||||
for_each_cpu(i, cmd->mask) {
|
||||
work_on_cpu(i, do_drv_write, cmd);
|
||||
set_cpus_allowed_ptr(current, cpumask_of(i));
|
||||
do_drv_write(cmd);
|
||||
}
|
||||
|
||||
set_cpus_allowed_ptr(current, &saved_mask);
|
||||
return;
|
||||
}
|
||||
|
||||
static u32 get_cur_val(const struct cpumask *mask)
|
||||
@@ -231,15 +235,10 @@ static u32 get_cur_val(const struct cpumask *mask)
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (unlikely(!alloc_cpumask_var(&cmd.mask, GFP_KERNEL)))
|
||||
return 0;
|
||||
|
||||
cpumask_copy(cmd.mask, mask);
|
||||
|
||||
drv_read(&cmd);
|
||||
|
||||
free_cpumask_var(cmd.mask);
|
||||
|
||||
dprintk("get_cur_val = %u\n", cmd.val);
|
||||
|
||||
return cmd.val;
|
||||
|
||||
@@ -1203,7 +1203,6 @@ nmi_stack_correct:
|
||||
pushl %eax
|
||||
CFI_ADJUST_CFA_OFFSET 4
|
||||
SAVE_ALL
|
||||
TRACE_IRQS_OFF
|
||||
xorl %edx,%edx # zero error code
|
||||
movl %esp,%eax # pt_regs pointer
|
||||
call do_nmi
|
||||
@@ -1244,7 +1243,6 @@ nmi_espfix_stack:
|
||||
pushl %eax
|
||||
CFI_ADJUST_CFA_OFFSET 4
|
||||
SAVE_ALL
|
||||
TRACE_IRQS_OFF
|
||||
FIXUP_ESPFIX_STACK # %eax == %esp
|
||||
xorl %edx,%edx # zero error code
|
||||
call do_nmi
|
||||
|
||||
@@ -446,7 +446,7 @@ void __kprobes arch_prepare_kretprobe(struct kretprobe_instance *ri,
|
||||
static void __kprobes setup_singlestep(struct kprobe *p, struct pt_regs *regs,
|
||||
struct kprobe_ctlblk *kcb)
|
||||
{
|
||||
#if !defined(CONFIG_PREEMPT) || defined(CONFIG_PM)
|
||||
#if !defined(CONFIG_PREEMPT) || defined(CONFIG_FREEZER)
|
||||
if (p->ainsn.boostable == 1 && !p->post_handler) {
|
||||
/* Boost up -- we can execute copied instructions directly */
|
||||
reset_current_kprobe();
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
#include <asm/e820.h>
|
||||
#include <asm/trampoline.h>
|
||||
#include <asm/setup.h>
|
||||
#include <asm/smp.h>
|
||||
|
||||
#include <mach_apic.h>
|
||||
#ifdef CONFIG_X86_32
|
||||
|
||||
@@ -88,7 +88,7 @@ ENTRY(sys_call_table)
|
||||
.long sys_uselib
|
||||
.long sys_swapon
|
||||
.long sys_reboot
|
||||
.long old_readdir
|
||||
.long sys_old_readdir
|
||||
.long old_mmap /* 90 */
|
||||
.long sys_munmap
|
||||
.long sys_truncate
|
||||
|
||||
Reference in New Issue
Block a user