From 98912ee8cc9017b6a85f32e58229cbdf91b05d0e Mon Sep 17 00:00:00 2001 From: Greg Lehey Date: Sun, 27 Jan 2002 04:20:52 +0000 Subject: [PATCH] vinumioctl: Fix a double fault caused by calling setjmp() without holding the config lock. The call was in fact superfluous. --- sys/dev/vinum/vinumconfig.c | 2 ++ sys/dev/vinum/vinumioctl.c | 3 --- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/sys/dev/vinum/vinumconfig.c b/sys/dev/vinum/vinumconfig.c index fea3c2fc89a..e1d7d0efeaa 100644 --- a/sys/dev/vinum/vinumconfig.c +++ b/sys/dev/vinum/vinumconfig.c @@ -99,6 +99,8 @@ throw_rude_remark(int error, char *msg,...) static int finishing; /* don't recurse */ int was_finishing; + if ((vinum_conf.flags & VF_LOCKED) == 0) /* bug catcher */ + panic ("throw_rude_remark: called without config lock"); va_start(ap, msg); if ((ioctl_reply != NULL) /* we're called from the user */ &&(!(vinum_conf.flags & VF_READING_CONFIG))) { /* and not reading from disk: return msg */ diff --git a/sys/dev/vinum/vinumioctl.c b/sys/dev/vinum/vinumioctl.c index 7abfe115c26..94a9790b4cb 100644 --- a/sys/dev/vinum/vinumioctl.c +++ b/sys/dev/vinum/vinumioctl.c @@ -82,9 +82,6 @@ vinumioctl(dev_t dev, switch (DEVTYPE(dev)) { case VINUM_SUPERDEV_TYPE: /* ordinary super device */ ioctl_reply = (struct _ioctl_reply *) data; /* save the address to reply to */ - error = setjmp(command_fail); /* come back here on error */ - if (error) /* bombed out */ - return 0; /* the reply will contain meaningful info */ switch (cmd) { #ifdef VINUMDEBUG case VINUM_DEBUG: