FreeBSD src
Go to file
Ned Bass 8f813bb168 Proposed fix for oops on SIGINT in splat atomic:64-bit test.
The threads in the splat atomic:64-bit test share the data structure
atomic_priv_t ap, which lives on the kernel stack of the splat user-space
utility.  If splat terminates before the threads, accesses to that memory
location by the other threads become invalid.  Splat synchronizes with
the threads with the call:

wait_event_interruptible(ap.ap_waitq, splat_atomic_test1_cond(&ap, i));

Apparently, the SIGINT wakes and terminates splat prematurely, so that
GPFs or other bad things happen when the threads subsequently access ap.
This commit prevents this by using the uninterruptible form:

wait_event(ap.ap_waitq, splat_atomic_test1_cond(&ap, i));
2010-07-15 12:50:15 -07:00
cmd Only make compiler warnings fatal with --enable-debug 2010-06-30 17:05:36 -07:00
config Linux 2.6.35 compat: filp_fsync() dropped 'stuct dentry *' 2010-07-14 11:40:55 -07:00
include Linux 2.6.35 compat: filp_fsync() dropped 'stuct dentry *' 2010-07-14 11:40:55 -07:00
lib Only make compiler warnings fatal with --enable-debug 2010-06-30 17:05:36 -07:00
module Proposed fix for oops on SIGINT in splat atomic:64-bit test. 2010-07-15 12:50:15 -07:00
patches Reimplement rwlocks for Linux lock profiling/analysis. 2009-09-18 16:09:47 -07:00
scripts Only make compiler warnings fatal with --enable-debug 2010-06-30 17:05:36 -07:00
.gitignore Ignore unsigned module build products 2010-03-11 14:29:17 -08:00
AUTHORS Public Release Prep 2010-05-17 15:18:00 -07:00
autogen.sh Public Release Prep 2010-05-17 15:18:00 -07:00
ChangeLog Re-Prep for 0.4.9 tag with a few more fixes and updated ChangeLog 2010-05-21 14:17:44 -07:00
configure Linux 2.6.35 compat: filp_fsync() dropped 'stuct dentry *' 2010-07-14 11:40:55 -07:00
configure.ac Public Release Prep 2010-05-17 15:18:00 -07:00
COPYING Public Release Prep 2010-05-17 15:18:00 -07:00
DISCLAIMER Public Release Prep 2010-05-17 15:18:00 -07:00
INSTALL Public Release Prep 2010-05-17 15:18:00 -07:00
Makefile.am Allow spl_config.h to be included by dependant packages (updated) 2010-03-22 14:45:33 -07:00
Makefile.in Only make compiler warnings fatal with --enable-debug 2010-06-30 17:05:36 -07:00
META Update META to version 0.5.0 2010-06-11 15:57:25 -07:00
README.markdown Add basic README 2010-06-29 14:18:18 -07:00
spl_config.h.in Linux 2.6.35 compat: filp_fsync() dropped 'stuct dentry *' 2010-07-14 11:40:55 -07:00
spl-modules.spec.in Minor spec file cleanup for RHEL6 package dependency. 2010-05-21 11:53:49 -07:00
spl.spec.in Remove usage of the __id_u macro for portability. 2009-10-05 12:51:58 -07:00

The Solaris Porting Layer (SPL) is a Linux kernel module which provides many of the Solaris kernel APIs. This shim layer makes it possible to run Solaris kernel code in the Linux kernel with relatively minimal modification. This can be particularly useful when you want to track upstream Solaris development closely and dont want the overhead of maintaining a large patch which converts Solaris primitives to Linux primitives.

Documentation for building, configuring, and using the SPL can be found at: http://wiki.github.com/behlendorf/spl/