Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 87030
b: refs/heads/master
c: 810b381
h: refs/heads/master
v: v3
  • Loading branch information
Peter Zijlstra authored and Ingo Molnar committed Mar 7, 2008
1 parent 4d5d80e commit 322a9ab
Show file tree
Hide file tree
Showing 13 changed files with 42 additions and 17 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 0a9e0703497013cf7a21455e51face5f048a187f
refs/heads/master: 810b38179e9e4d4f57b4b733767bb08f8291a965
9 changes: 8 additions & 1 deletion trunk/arch/x86/boot/vesa.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,17 @@ struct vesa_general_info {
far_ptr video_mode_ptr; /* 14 */
u16 total_memory; /* 18 */

u8 reserved[236]; /* 20 */
u16 oem_software_rev; /* 20 */
far_ptr oem_vendor_name_ptr; /* 22 */
far_ptr oem_product_name_ptr; /* 26 */
far_ptr oem_product_rev_ptr; /* 30 */

u8 reserved[222]; /* 34 */
u8 oem_data[256]; /* 256 */
} __attribute__ ((packed));

#define VESA_MAGIC ('V' + ('E' << 8) + ('S' << 16) + ('A' << 24))
#define VBE2_MAGIC ('V' + ('B' << 8) + ('E' << 16) + ('2' << 24))

struct vesa_mode_info {
u16 mode_attr; /* 0 */
Expand Down
2 changes: 2 additions & 0 deletions trunk/arch/x86/boot/video-vesa.c
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ static int vesa_probe(void)

video_vesa.modes = GET_HEAP(struct mode_info, 0);

vginfo.signature = VBE2_MAGIC;

ax = 0x4f00;
di = (size_t)&vginfo;
asm(INT10
Expand Down
4 changes: 2 additions & 2 deletions trunk/arch/x86/ia32/ia32_signal.c
Original file line number Diff line number Diff line change
Expand Up @@ -500,7 +500,7 @@ int ia32_setup_frame(int sig, struct k_sigaction *ka,
regs->ss = __USER32_DS;

set_fs(USER_DS);
regs->flags &= ~(X86_EFLAGS_TF | X86_EFLAGS_DF);
regs->flags &= ~X86_EFLAGS_TF;
if (test_thread_flag(TIF_SINGLESTEP))
ptrace_notify(SIGTRAP);

Expand Down Expand Up @@ -600,7 +600,7 @@ int ia32_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
regs->ss = __USER32_DS;

set_fs(USER_DS);
regs->flags &= ~(X86_EFLAGS_TF | X86_EFLAGS_DF);
regs->flags &= ~X86_EFLAGS_TF;
if (test_thread_flag(TIF_SINGLESTEP))
ptrace_notify(SIGTRAP);

Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/x86/kernel/i387.c
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,7 @@ static void convert_from_fxsr(struct user_i387_ia32_struct *env,
}
#else
env->fip = fxsave->fip;
env->fcs = (u16) fxsave->fcs | ((u32) fxsave->fop << 16);
env->fcs = fxsave->fcs;
env->foo = fxsave->foo;
env->fos = fxsave->fos;
#endif
Expand Down
6 changes: 0 additions & 6 deletions trunk/arch/x86/kernel/reboot.c
Original file line number Diff line number Diff line change
Expand Up @@ -326,10 +326,6 @@ static inline void kb_wait(void)
}
}

void __attribute__((weak)) mach_reboot_fixups(void)
{
}

static void native_machine_emergency_restart(void)
{
int i;
Expand All @@ -341,8 +337,6 @@ static void native_machine_emergency_restart(void)
/* Could also try the reset bit in the Hammer NB */
switch (reboot_type) {
case BOOT_KBD:
mach_reboot_fixups(); /* for board specific fixups */

for (i = 0; i < 10; i++) {
kb_wait();
udelay(50);
Expand Down
4 changes: 2 additions & 2 deletions trunk/arch/x86/kernel/signal_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -407,7 +407,7 @@ static int setup_frame(int sig, struct k_sigaction *ka,
* The tracer may want to single-step inside the
* handler too.
*/
regs->flags &= ~(TF_MASK | X86_EFLAGS_DF);
regs->flags &= ~TF_MASK;
if (test_thread_flag(TIF_SINGLESTEP))
ptrace_notify(SIGTRAP);

Expand Down Expand Up @@ -500,7 +500,7 @@ static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
* The tracer may want to single-step inside the
* handler too.
*/
regs->flags &= ~(TF_MASK | X86_EFLAGS_DF);
regs->flags &= ~TF_MASK;
if (test_thread_flag(TIF_SINGLESTEP))
ptrace_notify(SIGTRAP);

Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/x86/kernel/signal_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,7 @@ static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
see include/asm-x86_64/uaccess.h for details. */
set_fs(USER_DS);

regs->flags &= ~(X86_EFLAGS_TF | X86_EFLAGS_DF);
regs->flags &= ~X86_EFLAGS_TF;
if (test_thread_flag(TIF_SINGLESTEP))
ptrace_notify(SIGTRAP);
#ifdef DEBUG_SIG
Expand Down
4 changes: 2 additions & 2 deletions trunk/arch/x86/kernel/step.c
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ static void enable_step(struct task_struct *child, bool block)
child->thread.debugctlmsr | DEBUGCTLMSR_BTF);
} else {
write_debugctlmsr(child,
child->thread.debugctlmsr & ~DEBUGCTLMSR_BTF);
child->thread.debugctlmsr & ~TIF_DEBUGCTLMSR);

if (!child->thread.debugctlmsr)
clear_tsk_thread_flag(child, TIF_DEBUGCTLMSR);
Expand All @@ -189,7 +189,7 @@ void user_disable_single_step(struct task_struct *child)
* Make sure block stepping (BTF) is disabled.
*/
write_debugctlmsr(child,
child->thread.debugctlmsr & ~DEBUGCTLMSR_BTF);
child->thread.debugctlmsr & ~TIF_DEBUGCTLMSR);

if (!child->thread.debugctlmsr)
clear_tsk_thread_flag(child, TIF_DEBUGCTLMSR);
Expand Down
1 change: 0 additions & 1 deletion trunk/drivers/char/esp.c
Original file line number Diff line number Diff line change
Expand Up @@ -2484,7 +2484,6 @@ static int __init espserial_init(void)
return 0;
}

spin_lock_init(&info->lock);
/* rx_trigger, tx_trigger are needed by autoconfig */
info->config.rx_trigger = rx_trigger;
info->config.tx_trigger = tx_trigger;
Expand Down
4 changes: 4 additions & 0 deletions trunk/include/linux/sched.h
Original file line number Diff line number Diff line change
Expand Up @@ -899,6 +899,10 @@ struct sched_class {
int running);
void (*prio_changed) (struct rq *this_rq, struct task_struct *task,
int oldprio, int running);

#ifdef CONFIG_FAIR_GROUP_SCHED
void (*moved_group) (struct task_struct *p);
#endif
};

struct load_weight {
Expand Down
5 changes: 5 additions & 0 deletions trunk/kernel/sched.c
Original file line number Diff line number Diff line change
Expand Up @@ -7625,6 +7625,11 @@ void sched_move_task(struct task_struct *tsk)

set_task_rq(tsk, task_cpu(tsk));

#ifdef CONFIG_FAIR_GROUP_SCHED
if (tsk->sched_class->moved_group)
tsk->sched_class->moved_group(tsk);
#endif

if (on_rq) {
if (unlikely(running))
tsk->sched_class->set_curr_task(rq);
Expand Down
14 changes: 14 additions & 0 deletions trunk/kernel/sched_fair.c
Original file line number Diff line number Diff line change
Expand Up @@ -1353,6 +1353,16 @@ static void set_curr_task_fair(struct rq *rq)
set_next_entity(cfs_rq_of(se), se);
}

#ifdef CONFIG_FAIR_GROUP_SCHED
static void moved_group_fair(struct task_struct *p)
{
struct cfs_rq *cfs_rq = task_cfs_rq(p);

update_curr(cfs_rq);
place_entity(cfs_rq, &p->se, 1);
}
#endif

/*
* All the scheduling class methods:
*/
Expand Down Expand Up @@ -1381,6 +1391,10 @@ static const struct sched_class fair_sched_class = {

.prio_changed = prio_changed_fair,
.switched_to = switched_to_fair,

#ifdef CONFIG_FAIR_GROUP_SCHED
.moved_group = moved_group_fair,
#endif
};

#ifdef CONFIG_SCHED_DEBUG
Expand Down

0 comments on commit 322a9ab

Please sign in to comment.