step.c (95cf00fa5d5e2a200a2c044c84bde8389a237e02) step.c (9bd1190a11c9d2c59d35cb999b8d170ad52aab5f)
1/*
2 * x86 single-step support code, common to 32-bit and 64-bit.
3 */
4#include <linux/sched.h>
5#include <linux/mm.h>
6#include <linux/ptrace.h>
7#include <asm/desc.h>
8

--- 143 unchanged lines hidden (view full) ---

152 if (oflags & X86_EFLAGS_TF)
153 return test_tsk_thread_flag(child, TIF_FORCED_TF);
154
155 set_tsk_thread_flag(child, TIF_FORCED_TF);
156
157 return 1;
158}
159
1/*
2 * x86 single-step support code, common to 32-bit and 64-bit.
3 */
4#include <linux/sched.h>
5#include <linux/mm.h>
6#include <linux/ptrace.h>
7#include <asm/desc.h>
8

--- 143 unchanged lines hidden (view full) ---

152 if (oflags & X86_EFLAGS_TF)
153 return test_tsk_thread_flag(child, TIF_FORCED_TF);
154
155 set_tsk_thread_flag(child, TIF_FORCED_TF);
156
157 return 1;
158}
159
160static void set_task_blockstep(struct task_struct *task, bool on)
160void set_task_blockstep(struct task_struct *task, bool on)
161{
162 unsigned long debugctl;
163
164 /*
165 * Ensure irq/preemption can't change debugctl in between.
166 * Note also that both TIF_BLOCKSTEP and debugctl should
167 * be changed atomically wrt preemption.
168 * FIXME: this means that set/clear TIF_BLOCKSTEP is simply

--- 61 unchanged lines hidden ---
161{
162 unsigned long debugctl;
163
164 /*
165 * Ensure irq/preemption can't change debugctl in between.
166 * Note also that both TIF_BLOCKSTEP and debugctl should
167 * be changed atomically wrt preemption.
168 * FIXME: this means that set/clear TIF_BLOCKSTEP is simply

--- 61 unchanged lines hidden ---