aboutsummaryrefslogtreecommitdiff
path: root/libdiskfs/disk-pager.c
diff options
context:
space:
mode:
Diffstat (limited to 'libdiskfs/disk-pager.c')
-rw-r--r--libdiskfs/disk-pager.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/libdiskfs/disk-pager.c b/libdiskfs/disk-pager.c
index 1a5d8bf2..7af0e3ba 100644
--- a/libdiskfs/disk-pager.c
+++ b/libdiskfs/disk-pager.c
@@ -29,7 +29,6 @@ struct pager_requests *diskfs_disk_pager_requests;
static void fault_handler (int sig, long int sigcode, struct sigcontext *scp);
static struct hurd_signal_preemptor preemptor =
{
- signals: sigmask (SIGSEGV) | sigmask (SIGBUS),
preemptor: NULL,
handler: (sighandler_t) &fault_handler,
};
@@ -73,6 +72,9 @@ diskfs_start_disk_pager (struct user_pager_info *upi,
/* Set up the signal preemptor to catch faults on the disk image. */
preemptor.first = (vm_address_t) *image;
preemptor.last = ((vm_address_t) *image + size);
+ sigemptyset (&preemptor.signals);
+ sigaddset (&preemptor.signals, SIGSEGV);
+ sigaddset (&preemptor.signals, SIGBUS);
hurd_preempt_signals (&preemptor);
/* We have the mapping; we no longer need the send right. */