Date: Fri, 28 Jun 2002 18:49:34 -0700 (PDT) From: Julian Elischer <julian@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 13554 for review Message-ID: <200206290149.g5T1nYAV065861@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://people.freebsd.org/~peter/p4db/chv.cgi?CH=13554 Change 13554 by julian@julian_ref on 2002/06/28 18:49:16 Move userret in syscall for the other architectures where that makes sense. (to not have Giant SOMETIMES set) Affected files ... .. //depot/projects/kse/sys/alpha/alpha/trap.c#29 edit .. //depot/projects/kse/sys/i386/i386/trap.c#56 edit .. //depot/projects/kse/sys/ia64/ia64/trap.c#24 edit .. //depot/projects/kse/sys/powerpc/powerpc/trap.c#16 edit .. //depot/projects/kse/sys/sparc64/sparc64/trap.c#32 edit Differences ... ==== //depot/projects/kse/sys/alpha/alpha/trap.c#29 (text+ko) ==== ==== //depot/projects/kse/sys/i386/i386/trap.c#56 (text+ko) ==== ==== //depot/projects/kse/sys/ia64/ia64/trap.c#24 (text+ko) ==== @@ -872,14 +872,14 @@ break; } - userret(td, framep, sticks); - /* * Release Giant if we had to get it. */ if ((callp->sy_narg & SYF_MPSAFE) == 0) mtx_unlock(&Giant); + userret(td, framep, sticks); + #ifdef KTRACE if (KTRPOINT(td, KTR_SYSRET)) ktrsysret(code, error, td->td_retval[0]); @@ -1043,15 +1043,15 @@ } /* - * Handle reschedule and other end-of-syscall issues + * Release Giant if we previously set it. */ - userret(td, framep, sticks); + if ((callp->sy_narg & SYF_MPSAFE) == 0) + mtx_unlock(&Giant); /* - * Release Giant if we previously set it. + * Handle reschedule and other end-of-syscall issues */ - if ((callp->sy_narg & SYF_MPSAFE) == 0) - mtx_unlock(&Giant); + userret(td, framep, sticks); #ifdef KTRACE if (KTRPOINT(td, KTR_SYSRET)) ==== //depot/projects/kse/sys/powerpc/powerpc/trap.c#16 (text+ko) ==== ==== //depot/projects/kse/sys/sparc64/sparc64/trap.c#32 (text+ko) ==== @@ -657,17 +657,17 @@ } /* - * Handle reschedule and other end-of-syscall issues - */ - userret(td, tf, sticks); - - /* * Release Giant if we had to get it. Don't use mtx_owned(), * we want to catch broken syscalls. */ if ((callp->sy_narg & SYF_MPSAFE) == 0) mtx_unlock(&Giant); + /* + * Handle reschedule and other end-of-syscall issues + */ + userret(td, tf, sticks); + #ifdef KTRACE if (KTRPOINT(td, KTR_SYSRET)) ktrsysret(code, error, td->td_retval[0]); To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe p4-projects" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200206290149.g5T1nYAV065861>