diff -ur -X /home/bame/build-tools/dontdiff linux-2.6/arch/x86_64/kernel/head.S linux-2.6.10-rc1/arch/x86_64/kernel/head.S --- linux-2.6/arch/x86_64/kernel/head.S 2004-02-27 18:50:29.000000000 -0700 +++ linux-2.6.10-rc1/arch/x86_64/kernel/head.S 2004-10-22 15:39:44.000000000 -0600 @@ -324,24 +324,13 @@ #endif ENTRY(gdt_table32) - .quad 0rsp,%rdi /* &pt_regs */ - call do_notify_resume - jmp paranoid_exit - CFI_ENDPROC + .quad 0x0000000000000000 /* This one is magic */ + .quad 0x0000000000000000 /* unused */ + .quad 0x00af9a000000ffff /* __KERNEL_CS */ +gdt32_end: -ENTRY(int3) - zeroentry do_int3 - -ENTRY(overflow) - zeroentry do_overflow - -ENTRY(bounds) - zeroentry do_bounds - -ENTRY(invalid_op) - zeroentry do_invalid_op - -ENTRY(coprocessor_seg10/28 +/* We need valid kernel segments for data and code in long mode too + * IRET will check the segment types kkeil 2000/10/28 * Also sysret mandates a special GDT layout */ @@ -352,32 +341,19 @@ ENTRY(cpu_gdt_table) .quad 0x0000000000000000 /* NULL descriptor */ - .quad 0x008f9a000000ffff /o_invalid_TSS - -ENTRY(segment_not_present) - errorentry do_segment_not_present - - /* runs on exception stack */ -ENTRY(stack_segment) - CFI_STARTPROC - paranoidentry do_stack_segment - movq %rax,%rsp - testl $3,CS(%rsp) - jnz paranoid_userspace - jmp paranoid_exit - CFI_ENDPROC - -ENTRY(general_protection) - errorentry do_general_pr TSS */ + .quad 0x008f9a000000ffff /* __KERNEL_COMPAT32_CS */ + .quad 0x00af9a000000ffff /* __KERNEL_CS */ + .quad 0x00cf92000000ffff /* __KERNEL_DS */ + .quad 0x00cffe000000ffff /* __USER32_CS */ + .quad 0x00cff2000000ffff /* __USER_DS, __USER32_DS */ + .quad 0x00affa000000ffff /* __USER_CS */ + .quad 0x00cf9a000000ffff /* __KERNEL32_CS */ + .quad 0,0 /* TSS */ .quad 0 /* LDT */ - .quad 0,0,0 /* three TLS descr -ENTRY(divide_error) - zeroentry do_divide_error - -ENTRY(spurious_interrupt_bug) - zeroentry do_spurious_interrupt_bug - - /* runs on be patched for real base address. */ + .quad 0,0,0 /* three TLS descriptors */ + .quad 0 /* unused now */ + .quad 0x00009a000000ffff /* __KERNEL16_CS - 16bit PM for S3 wakeup. */ + /* base must be patched for real base address. */ gdt_end: /* asm/segment.h:GDT_ENTRIES must match this */ /* This should be a multiple of the cache line size */