static void cn_test_fini(void) { del_timer_sync(&cn_test_timer); cn_del_callback(&cn_test_id); cn_test_id.val--; cn_del_callback(&cn_test_id); if (nls && nls->sk_socket) sock_release(nls->sk_socket); }
static int cn_test_init(void) { int err; err = cn_add_callback(&cn_test_id, cn_test_name, cn_test_callback); if (err) goto err_out; cn_test_id.val++; err = cn_add_callback(&cn_test_id, cn_test_name, cn_test_callback); if (err) { cn_del_callback(&cn_test_id); goto err_out; } init_timer(&cn_test_timer); cn_test_timer.function = cn_test_timer_func; cn_test_timer.expires = jiffies + HZ; cn_test_timer.data = 0; add_timer(&cn_test_timer); return 0; err_out: if (nls && nls->sk_socket) sock_release(nls->sk_socket); return err; }
static int cn_test_init(void) { int err; err = cn_add_callback(&cn_test_id, cn_test_name, cn_test_callback); if (err) goto err_out; cn_test_id.val++; err = cn_add_callback(&cn_test_id, cn_test_name, cn_test_callback); if (err) { cn_del_callback(&cn_test_id); goto err_out; } setup_timer(&cn_test_timer, cn_test_timer_func, 0); mod_timer(&cn_test_timer, jiffies + msecs_to_jiffies(1000)); pr_info("initialized with id={%u.%u}\n", cn_test_id.idx, cn_test_id.val); return 0; err_out: if (nls && nls->sk_socket) sock_release(nls->sk_socket); return err; }
void hv_vss_deinit(void) { cn_del_callback(&vss_id); cancel_delayed_work_sync(&vss_timeout_work); cancel_work_sync(&vss_send_op_work); }
void hv_kvp_deinit(void) { cn_del_callback(&kvp_id); cancel_delayed_work_sync(&kvp_work); cancel_work_sync(&kvp_sendkey_work); }
void hv_kvp_deinit(void) { cn_del_callback(&kvp_id); cancel_delayed_work_sync(&kvp_work); kfree(recv_buffer); }
void missile_tenx_netlink_exit(struct cb_id *id) { cn_del_callback(id); }