static void __exit nx842_exit(void) { struct nx842_devdata *old_devdata; unsigned long flags; pr_info("Exiting IBM Power 842 compression driver\n"); spin_lock_irqsave(&devdata_mutex, flags); old_devdata = rcu_dereference_check(devdata, lockdep_is_held(&devdata_mutex)); RCU_INIT_POINTER(devdata, NULL); spin_unlock_irqrestore(&devdata_mutex, flags); synchronize_rcu(); if (old_devdata) dev_set_drvdata(old_devdata->dev, NULL); kfree(old_devdata); vio_unregister_driver(&nx842_driver); }
static void __exit nx842_pseries_exit(void) { struct nx842_devdata *old_devdata; unsigned long flags; crypto_unregister_alg(&nx842_pseries_alg); spin_lock_irqsave(&devdata_mutex, flags); old_devdata = rcu_dereference_check(devdata, lockdep_is_held(&devdata_mutex)); RCU_INIT_POINTER(devdata, NULL); spin_unlock_irqrestore(&devdata_mutex, flags); synchronize_rcu(); if (old_devdata && old_devdata->dev) dev_set_drvdata(old_devdata->dev, NULL); kfree(old_devdata); vio_unregister_driver(&nx842_vio_driver); }
static void __exit ibmveth_module_exit(void) { vio_unregister_driver(&ibmveth_driver); ibmveth_proc_unregister_driver(); }
static void __exit rng_exit(void) { vio_unregister_driver(&pseries_rng_driver); }
static void __exit nx_fini(void) { vio_unregister_driver(&nx_driver.viodriver); }
static void __exit hvc_vio_exit(void) { vio_unregister_driver(&hvc_vio_driver); }
/** * ibmvtpm_module_exit - Teardown ibm vtpm module * * Return value: * Nothing */ static void __exit ibmvtpm_module_exit(void) { vio_unregister_driver(&ibmvtpm_driver); }