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