Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F143489362
D14227.id39123.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D14227.id39123.diff
View Options
Index: sys/kgssapi/gss_impl.c
===================================================================
--- sys/kgssapi/gss_impl.c
+++ sys/kgssapi/gss_impl.c
@@ -56,39 +56,33 @@
/*
* Syscall hooks
*/
-static int gssd_syscall_offset = SYS_gssd_syscall;
-static struct sysent gssd_syscall_prev_sysent;
-MAKE_SYSENT(gssd_syscall);
-static bool_t gssd_syscall_registered = FALSE;
+static struct syscall_helper_data gssd_syscalls[] = {
+ SYSCALL_INIT_HELPER(gssd_syscall),
+ SYSCALL_INIT_LAST
+};
struct kgss_mech_list kgss_mechs;
CLIENT *kgss_gssd_handle;
struct mtx kgss_gssd_lock;
-static void
-kgss_init(void *dummy)
+static int
+kgss_load(void)
{
int error;
LIST_INIT(&kgss_mechs);
- error = syscall_register(&gssd_syscall_offset, &gssd_syscall_sysent,
- &gssd_syscall_prev_sysent, SY_THR_STATIC_KLD);
- if (error)
- printf("Can't register GSSD syscall\n");
- else
- gssd_syscall_registered = TRUE;
+ error = syscall_helper_register(gssd_syscalls, SY_THR_STATIC_KLD);
+ if (error != 0)
+ return (error);
+ return (0);
}
-SYSINIT(kgss_init, SI_SUB_LOCK, SI_ORDER_FIRST, kgss_init, NULL);
static void
-kgss_uninit(void *dummy)
+kgss_unload(void)
{
- if (gssd_syscall_registered)
- syscall_deregister(&gssd_syscall_offset,
- &gssd_syscall_prev_sysent);
+ syscall_helper_unregister(gssd_syscalls);
}
-SYSUNINIT(kgss_uninit, SI_SUB_LOCK, SI_ORDER_FIRST, kgss_uninit, NULL);
int
sys_gssd_syscall(struct thread *td, struct gssd_syscall_args *uap)
@@ -293,6 +287,8 @@
switch (type) {
case MOD_LOAD:
+ if (error != 0)
+ return (error);
rpc_gss_entries.rpc_gss_refresh_auth = rpc_gss_refresh_auth;
rpc_gss_entries.rpc_gss_secfind = rpc_gss_secfind;
rpc_gss_entries.rpc_gss_secpurge = rpc_gss_secpurge;
@@ -317,8 +313,11 @@
rpc_gss_entries.rpc_gss_svc_max_data_length =
rpc_gss_svc_max_data_length;
mtx_init(&kgss_gssd_lock, "kgss_gssd_lock", NULL, MTX_DEF);
+ error = kgss_load();
break;
case MOD_UNLOAD:
+ kgss_unload();
+ mtx_destroy(&kgss_gssd_lock);
/*
* Unloading of the kgssapi module is not currently supported.
* If somebody wants this, we would need to keep track of
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Jan 31, 6:07 PM (13 h, 35 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28147713
Default Alt Text
D14227.id39123.diff (2 KB)
Attached To
Mode
D14227: Use syscall_helper_register() rather than syscall_register().
Attached
Detach File
Event Timeline
Log In to Comment