diff options
author | Ned Bass <[email protected]> | 2010-07-15 09:49:38 -0700 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2010-07-15 12:50:15 -0700 |
commit | 8f813bb168eb21cd5d64b930ee015dcf93575331 (patch) | |
tree | 9f11a78fa2f527f64cef7a8e97147ade87823898 /module/spl/spl-xdr.c | |
parent | d0bd694ca93b7e43dc6aa87a2dd39d51ee3478ea (diff) |
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));
Diffstat (limited to 'module/spl/spl-xdr.c')
0 files changed, 0 insertions, 0 deletions