x86: single_step segment macros
This cleans up the single-step code to use the asm/segment.h macros for segment selector magic bits, rather than its own constant. Signed-off-by: Roland McGrath <roland@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
Родитель
fa1e03eae2
Коммит
3f80c1adc9
|
@ -5,8 +5,6 @@
|
||||||
#include <linux/mm.h>
|
#include <linux/mm.h>
|
||||||
#include <linux/ptrace.h>
|
#include <linux/ptrace.h>
|
||||||
|
|
||||||
#define LDT_SEGMENT 4
|
|
||||||
|
|
||||||
unsigned long convert_rip_to_linear(struct task_struct *child, struct pt_regs *regs)
|
unsigned long convert_rip_to_linear(struct task_struct *child, struct pt_regs *regs)
|
||||||
{
|
{
|
||||||
unsigned long addr, seg;
|
unsigned long addr, seg;
|
||||||
|
@ -20,7 +18,7 @@ unsigned long convert_rip_to_linear(struct task_struct *child, struct pt_regs *r
|
||||||
* TLS segments are used for data, and the PNPBIOS
|
* TLS segments are used for data, and the PNPBIOS
|
||||||
* and APM bios ones we just ignore here.
|
* and APM bios ones we just ignore here.
|
||||||
*/
|
*/
|
||||||
if (seg & LDT_SEGMENT) {
|
if ((seg & SEGMENT_TI_MASK) == SEGMENT_LDT) {
|
||||||
u32 *desc;
|
u32 *desc;
|
||||||
unsigned long base;
|
unsigned long base;
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче