Module Name:    src
Committed By:   christos
Date:           Thu Jan 10 22:02:16 UTC 2019

Modified Files:
        src/sys/kern: sysv_ipc.c

Log Message:
handle errors from loading the syscalls and bail early. establish sysctl
later.


To generate a diff of this commit:
cvs rdiff -u -r1.33 -r1.34 src/sys/kern/sysv_ipc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/kern/sysv_ipc.c
diff -u src/sys/kern/sysv_ipc.c:1.33 src/sys/kern/sysv_ipc.c:1.34
--- src/sys/kern/sysv_ipc.c:1.33	Mon Sep  3 12:29:35 2018
+++ src/sys/kern/sysv_ipc.c	Thu Jan 10 17:02:16 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: sysv_ipc.c,v 1.33 2018/09/03 16:29:35 riastradh Exp $	*/
+/*	$NetBSD: sysv_ipc.c,v 1.34 2019/01/10 22:02:16 christos Exp $	*/
 
 /*-
  * Copyright (c) 1998, 2007 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sysv_ipc.c,v 1.33 2018/09/03 16:29:35 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sysv_ipc.c,v 1.34 2019/01/10 22:02:16 christos Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_sysv.h"
@@ -195,15 +195,12 @@ sysv_ipc_modcmd(modcmd_t cmd, void *arg)
 		/* Set up the kauth listener */
 		sysvipcinit();
 
-#ifdef _MODULE
-		/* Set up the common sysctl tree */
-		sysctl_ipc_setup(&sysctl_sysvipc_clog);
-#endif
-
 		/* Link the system calls */
 		error = syscall_establish(NULL, sysvipc_syscalls);
-		if (error)
+		if (error) {
 			sysvipcfini();
+			return error;
+		}
 
 		/*
 		 * Initialize each sub-component, including their
@@ -218,6 +215,11 @@ sysv_ipc_modcmd(modcmd_t cmd, void *arg)
 #ifdef SYSVMSG
 		msginit(&sysctl_sysvipc_clog);
 #endif
+
+#ifdef _MODULE
+		/* Set up the common sysctl tree */
+		sysctl_ipc_setup(&sysctl_sysvipc_clog);
+#endif
 		break;
 	case MODULE_CMD_FINI:
 		/*
@@ -253,16 +255,16 @@ sysv_ipc_modcmd(modcmd_t cmd, void *arg)
 		}
 #endif
 
-		/* Unlink the system calls. */
-		error = syscall_disestablish(NULL, sysvipc_syscalls);
-		if (error)
-			return error;
-
 #ifdef _MODULE
 		/* Remove the sysctl sub-trees */
 		sysctl_teardown(&sysctl_sysvipc_clog);
 #endif
 
+		/* Unlink the system calls. */
+		error = syscall_disestablish(NULL, sysvipc_syscalls);
+		if (error)
+			return error;
+
 		/* Remove the kauth listener */
 		sysvipcfini();
 		break;

Reply via email to