mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-18 15:09:53 +00:00
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86: x86-boot: don't request VBE2 information x86: re-add reboot fixups x86: fix typo in step.c x86: fix merge mistake in i387.c x86: clear DF before calling signal handler
This commit is contained in:
commit
0a9e070349
@ -26,17 +26,10 @@ struct vesa_general_info {
|
||||
far_ptr video_mode_ptr; /* 14 */
|
||||
u16 total_memory; /* 18 */
|
||||
|
||||
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 */
|
||||
u8 reserved[236]; /* 20 */
|
||||
} __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 */
|
||||
|
@ -37,8 +37,6 @@ 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
|
||||
|
@ -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;
|
||||
regs->flags &= ~(X86_EFLAGS_TF | X86_EFLAGS_DF);
|
||||
if (test_thread_flag(TIF_SINGLESTEP))
|
||||
ptrace_notify(SIGTRAP);
|
||||
|
||||
@ -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;
|
||||
regs->flags &= ~(X86_EFLAGS_TF | X86_EFLAGS_DF);
|
||||
if (test_thread_flag(TIF_SINGLESTEP))
|
||||
ptrace_notify(SIGTRAP);
|
||||
|
||||
|
@ -261,7 +261,7 @@ static void convert_from_fxsr(struct user_i387_ia32_struct *env,
|
||||
}
|
||||
#else
|
||||
env->fip = fxsave->fip;
|
||||
env->fcs = fxsave->fcs;
|
||||
env->fcs = (u16) fxsave->fcs | ((u32) fxsave->fop << 16);
|
||||
env->foo = fxsave->foo;
|
||||
env->fos = fxsave->fos;
|
||||
#endif
|
||||
|
@ -326,6 +326,10 @@ static inline void kb_wait(void)
|
||||
}
|
||||
}
|
||||
|
||||
void __attribute__((weak)) mach_reboot_fixups(void)
|
||||
{
|
||||
}
|
||||
|
||||
static void native_machine_emergency_restart(void)
|
||||
{
|
||||
int i;
|
||||
@ -337,6 +341,8 @@ 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);
|
||||
|
@ -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;
|
||||
regs->flags &= ~(TF_MASK | X86_EFLAGS_DF);
|
||||
if (test_thread_flag(TIF_SINGLESTEP))
|
||||
ptrace_notify(SIGTRAP);
|
||||
|
||||
@ -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;
|
||||
regs->flags &= ~(TF_MASK | X86_EFLAGS_DF);
|
||||
if (test_thread_flag(TIF_SINGLESTEP))
|
||||
ptrace_notify(SIGTRAP);
|
||||
|
||||
|
@ -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;
|
||||
regs->flags &= ~(X86_EFLAGS_TF | X86_EFLAGS_DF);
|
||||
if (test_thread_flag(TIF_SINGLESTEP))
|
||||
ptrace_notify(SIGTRAP);
|
||||
#ifdef DEBUG_SIG
|
||||
|
@ -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 & ~TIF_DEBUGCTLMSR);
|
||||
child->thread.debugctlmsr & ~DEBUGCTLMSR_BTF);
|
||||
|
||||
if (!child->thread.debugctlmsr)
|
||||
clear_tsk_thread_flag(child, TIF_DEBUGCTLMSR);
|
||||
@ -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 & ~TIF_DEBUGCTLMSR);
|
||||
child->thread.debugctlmsr & ~DEBUGCTLMSR_BTF);
|
||||
|
||||
if (!child->thread.debugctlmsr)
|
||||
clear_tsk_thread_flag(child, TIF_DEBUGCTLMSR);
|
||||
|
Loading…
Reference in New Issue
Block a user