PERFORCE change 102905 for review

Roman Divacky rdivacky at FreeBSD.org
Tue Aug 1 08:55:00 UTC 2006


http://perforce.freebsd.org/chv.cgi?CH=102905

Change 102905 by rdivacky at rdivacky_witten on 2006/08/01 08:54:21

	Install/deinstall ntpl-related stuff in module loading/unloading only in a case
	of previous success.

Affected files ...

.. //depot/projects/soc2006/rdivacky_linuxolator/i386/linux/linux_sysvec.c#12 edit

Differences ...

==== //depot/projects/soc2006/rdivacky_linuxolator/i386/linux/linux_sysvec.c#12 (text+ko) ====

@@ -916,20 +916,20 @@
 				linux_ioctl_register_handler(*lihp);
 			SET_FOREACH(ldhp, linux_device_handler_set)
 				linux_device_register_handler(*ldhp);
+			SLIST_INIT(&emuldata_head);
+			rw_init(&emul_lock, "emuldata lock");
+			LIST_INIT(&futex_list);
+			mtx_init(&futex_mtx, "futex protection lock", NULL, MTX_DEF);
+			linux_exit_tag = EVENTHANDLER_REGISTER(process_exit, linux_proc_exit,
+			      NULL, 1000);
+			linux_schedtail_tag = EVENTHANDLER_REGISTER(schedtail, linux_schedtail,
+			      NULL, 1000);
+			linux_exec_tag = EVENTHANDLER_REGISTER(process_exec, linux_proc_exec,
+			      NULL, 1000);
 			if (bootverbose)
 				printf("Linux ELF exec handler installed\n");
 		} else
 			printf("cannot insert Linux ELF brand handler\n");
-		SLIST_INIT(&emuldata_head);
-		rw_init(&emul_lock, "emuldata lock");
-		LIST_INIT(&futex_list);
-		mtx_init(&futex_mtx, "futex protection lock", NULL, MTX_DEF);
-		linux_exit_tag = EVENTHANDLER_REGISTER(process_exit, linux_proc_exit,
-		      NULL, 1000);
-		linux_schedtail_tag = EVENTHANDLER_REGISTER(schedtail, linux_schedtail,
-		      NULL, 1000);
-		linux_exec_tag = EVENTHANDLER_REGISTER(process_exec, linux_proc_exec,
-		      NULL, 1000);
 		break;
 	case MOD_UNLOAD:
 		for (brandinfo = &linux_brandlist[0]; *brandinfo != NULL;
@@ -947,17 +947,17 @@
 				linux_ioctl_unregister_handler(*lihp);
 			SET_FOREACH(ldhp, linux_device_handler_set)
 				linux_device_unregister_handler(*ldhp);
+			rw_destroy(&emul_lock);
+			mtx_destroy(&futex_mtx);
+			EVENTHANDLER_DEREGISTER(process_exit, linux_exit_tag);
+			EVENTHANDLER_DEREGISTER(schedtail, linux_schedtail_tag);
+			EVENTHANDLER_DEREGISTER(process_exec, linux_exec_tag);
+			printf("Emuldata slist empty: %i\n", SLIST_EMPTY(&emuldata_head));
+			printf("Futex slist empty: %i\n", LIST_EMPTY(&futex_list));
 			if (bootverbose)
 				printf("Linux ELF exec handler removed\n");
 		} else
 			printf("Could not deinstall ELF interpreter entry\n");
-		rw_destroy(&emul_lock);
-		mtx_destroy(&futex_mtx);
-		EVENTHANDLER_DEREGISTER(process_exit, linux_exit_tag);
-		EVENTHANDLER_DEREGISTER(schedtail, linux_schedtail_tag);
-		EVENTHANDLER_DEREGISTER(process_exec, linux_exec_tag);
-		printf("Emuldata slist empty: %i\n", SLIST_EMPTY(&emuldata_head));
-		printf("Futex slist empty: %i\n", LIST_EMPTY(&futex_list));
 		break;
 	default:
 		return EOPNOTSUPP;


More information about the p4-projects mailing list