Index: i386/i386/exception.s =================================================================== RCS file: /home/ncvs/src/sys/i386/i386/exception.s,v retrieving revision 1.90 diff -u -r1.90 exception.s --- i386/i386/exception.s 24 Aug 2001 16:46:15 -0000 1.90 +++ i386/i386/exception.s 22 Dec 2001 05:10:42 -0000 @@ -191,7 +191,20 @@ pushfl /* save eflags */ popl 8(%esp) /* shuffle into tf_eflags */ pushl $7 /* sizeof "lcall 7,0" */ - jmp syscall_with_err_pushed + subl $4,%esp /* skip over tf_trapno */ + pushal + pushl %ds + pushl %es + pushl %fs + mov $KDSEL,%ax /* switch to kernel segments */ + mov %ax,%ds + mov %ax,%es + mov $KPSEL,%ax + mov %ax,%fs + FAKE_MCOUNT(13*4(%esp)) + call syscall + MEXITCOUNT + jmp doreti /* * Call gate entry for FreeBSD ELF and Linux/NetBSD syscall (int 0x80) @@ -203,7 +216,6 @@ SUPERALIGN_TEXT IDTVEC(int0x80_syscall) pushl $2 /* sizeof "int 0x80" */ -syscall_with_err_pushed: subl $4,%esp /* skip over tf_trapno */ pushal pushl %ds