Linux compat broken??

John Baldwin jhb at FreeBSD.org
Fri Apr 25 09:07:38 PDT 2003


On 25-Apr-2003 Jeff Utter wrote:
> 
>> This is current.  People running current are expected to not do updates
>> completely blind.  That said, you can try reverting revision 1.42 of
>> sys/compat/linux/linux_signal.c and see if it fixes your problem?
> 
>       Thanks!... that fixed most of my problems, vmware works now... However
> my nvidia drivers have started to mess up (they use linux compat right?)
> When i try to start X using them, my screen flashes once and returns to
> console locking up my system. Any idea what file(s) could have changed
> to do this?

Can you try putting revision 1.42 back and trying the attached patch
instead?

-- 

John Baldwin <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/
-------------- next part --------------
Index: linux_signal.c
===================================================================
RCS file: /usr/cvs/src/sys/compat/linux/linux_signal.c,v
retrieving revision 1.42
diff -u -r1.42 linux_signal.c
--- linux_signal.c	22 Apr 2003 18:23:47 -0000	1.42
+++ linux_signal.c	25 Apr 2003 15:03:02 -0000
@@ -233,14 +233,25 @@
 
 	td->td_retval[0] = 0;
 
+	switch (how) {
+	case LINUX_SIG_BLOCK:
+		how = SIG_BLOCK;
+		break;
+	case LINUX_SIG_UNBLOCK:
+		how = SIG_UNBLOCK;
+		break;
+	case LINUX_SIG_SETMASK:
+		how = SIG_SETMASK;
+		break;
+	default:
+		return (EINVAL);
+	}
 	if (new != NULL) {
 		linux_to_bsd_sigset(new, &nmask);
 		nmaskp = &nmask;
 	} else
 		nmaskp = NULL;
-
-	/* Linux sigprocmask flag values are one less than FreeBSD values. */
-	error = kern_sigprocmask(td, how + 1, nmaskp, &omask, 0);
+	error = kern_sigprocmask(td, how, nmaskp, &omask, 0);
 	if (error != 0 && old != NULL)
 		bsd_to_linux_sigset(&omask, old);
 


More information about the freebsd-current mailing list