static void __exit my_bus_exit(void) { kfree(zeke_ver); bus_remove_file(&my_bus_type, &my_bus_attribute); bus_unregister(&my_bus_type); }
static void __exit soundbus_exit(void) { bus_unregister(&soundbus_bus_type); }
void mmc_unregister_bus(void) { bus_unregister(&mmc_bus_type); }
static void __exit msm_pil_exit(void) { bus_unregister(&pil_bus_type); unregister_pm_notifier(&pil_pm_notifier); msm_pil_debugfs_exit(); }
static void __exit rpmsg_fini(void) { unregister_virtio_driver(&virtio_ipc_driver); bus_unregister(&rpmsg_bus); }
void scif_peer_bus_exit(void) { bus_unregister(&scif_peer_bus); }
static void __exit media_devnode_exit(void) { bus_unregister(&media_bus_type); unregister_chrdev_region(media_dev_t, MEDIA_NUM_DEVICES); }
static void __exit lcdctrl_exit(void) { pr_debug("%s()\n", __FUNCTION__); bus_unregister(&lcdctrl_bustype); }
static void __exit scbus_exit(void) { bus_remove_file(&scbus_type, &bus_attr_version); bus_unregister(&scbus_type); printk("Remove a scbus\n"); }
static void fmc_exit(void) { bus_unregister(&fmc_bus_type); }
static void __exit ac97_bus_exit(void) { bus_unregister(&ac97_bus_type); }
void edac_put_sysfs_subsys(void) { /* last user unregisters it */ if (atomic_dec_and_test(&edac_subsys_valid)) bus_unregister(&edac_subsys); }
void mdio_bus_exit(void) { bus_unregister(&mdio_bus_type); }
void pcie_port_bus_unregister(void) { bus_unregister(&pcie_port_bus_type); }
static void ldd_bus_exit(void) { device_unregister(&ldd_bus); bus_unregister(&ldd_bus_type); }
void edac_put_sysfs_subsys(void) { if (atomic_dec_and_test(&edac_subsys_valid)) bus_unregister(&edac_subsys); }
static void __exit mybus_exit(void) { pr_info("\nBUS (1) Unregister bus: \"%s\"\n",mybus_bus.name); bus_unregister(&mybus_bus); pr_info("BUS (2) Successfully unregister bus: \"%s\"\n", mybus_bus.name); }
static void omap_dss_bus_unregister(void) { device_unregister(&dss_bus); bus_unregister(&dss_bus_type); }
static void __exit cec_devnode_exit(void) { debugfs_remove_recursive(top_cec_dir); bus_unregister(&cec_bus_type); unregister_chrdev_region(cec_dev_t, CEC_NUM_DEVICES); }
static void __exit mcp_exit(void) { bus_unregister(&mcp_bus_type); }
static void __devexit vlynq_exit(void) { platform_driver_unregister(&vlynq_platform_driver); bus_unregister(&vlynq_bus_type); }
static void rtl_teardown_sysfs(void) { int i; for (i = 0; rtl_attributes[i]; i ++) device_remove_file(rtl_subsys.dev_root, rtl_attributes[i]); bus_unregister(&rtl_subsys); }
static void wb_exit(void) { device_unregister(&wb_dev); bus_unregister(&wb_bus_type); }
static void __exit cleanup_ccwgroup(void) { bus_unregister_notifier(&ccwgroup_bus_type, &ccwgroup_nb); bus_unregister(&ccwgroup_bus_type); }
static void __exit simple_exit(void) { device_unregister(&simple_bus.dev); bus_unregister(&simple_bus_type); }
/* *Unistall function */ static void __exit ex_bus_exit(void) { bus_remove_file(&ex10_bus, &bus_attr_example); bus_unregister(&ex10_bus); printk("bus is exit\n"); }
static void __exit virtio_exit(void) { bus_unregister(&virtio_bus); }
static int __init xenbus_probe_init(void) { int err = 0; DPRINTK(""); err = -ENODEV; if (!xen_domain()) goto out_error; /* Register ourselves with the kernel bus subsystem */ err = bus_register(&xenbus_frontend.bus); if (err) goto out_error; err = xenbus_backend_bus_register(); if (err) goto out_unreg_front; /* * Domain0 doesn't have a store_evtchn or store_mfn yet. */ if (xen_initial_domain()) { /* dom0 not yet supported */ } else { xenstored_ready = 1; xen_store_evtchn = xen_start_info->store_evtchn; xen_store_mfn = xen_start_info->store_mfn; } xen_store_interface = mfn_to_virt(xen_store_mfn); /* Initialize the interface to xenstore. */ err = xs_init(); if (err) { printk(KERN_WARNING "XENBUS: Error initializing xenstore comms: %i\n", err); goto out_unreg_back; } if (!xen_initial_domain()) xenbus_probe(NULL); #ifdef CONFIG_XEN_COMPAT_XENFS /* * Create xenfs mountpoint in /proc for compatibility with * utilities that expect to find "xenbus" under "/proc/xen". */ proc_mkdir("xen", NULL); #endif return 0; out_unreg_back: xenbus_backend_bus_unregister(); out_unreg_front: bus_unregister(&xenbus_frontend.bus); out_error: return err; }
/* * Create a new Memory Controller kobject instance, * mc<id> under the 'mc' directory * * Return: * 0 Success * !0 Failure */ int edac_create_sysfs_mci_device(struct mem_ctl_info *mci) { int i, err; /* * The memory controller needs its own bus, in order to avoid * namespace conflicts at /sys/bus/edac. */ mci->bus->name = kasprintf(GFP_KERNEL, "mc%d", mci->mc_idx); if (!mci->bus->name) return -ENOMEM; edac_dbg(0, "creating bus %s\n", mci->bus->name); err = bus_register(mci->bus); if (err < 0) return err; /* get the /sys/devices/system/edac subsys reference */ mci->dev.type = &mci_attr_type; device_initialize(&mci->dev); mci->dev.parent = mci_pdev; mci->dev.bus = mci->bus; dev_set_name(&mci->dev, "mc%d", mci->mc_idx); dev_set_drvdata(&mci->dev, mci); pm_runtime_forbid(&mci->dev); edac_dbg(0, "creating device %s\n", dev_name(&mci->dev)); err = device_add(&mci->dev); if (err < 0) { edac_dbg(1, "failure: create device %s\n", dev_name(&mci->dev)); bus_unregister(mci->bus); kfree(mci->bus->name); return err; } if (mci->set_sdram_scrub_rate || mci->get_sdram_scrub_rate) { if (mci->get_sdram_scrub_rate) { dev_attr_sdram_scrub_rate.attr.mode |= S_IRUGO; dev_attr_sdram_scrub_rate.show = &mci_sdram_scrub_rate_show; } if (mci->set_sdram_scrub_rate) { dev_attr_sdram_scrub_rate.attr.mode |= S_IWUSR; dev_attr_sdram_scrub_rate.store = &mci_sdram_scrub_rate_store; } err = device_create_file(&mci->dev, &dev_attr_sdram_scrub_rate); if (err) { edac_dbg(1, "failure: create sdram_scrub_rate\n"); goto fail2; } } /* * Create the dimm/rank devices */ for (i = 0; i < mci->tot_dimms; i++) { struct dimm_info *dimm = mci->dimms[i]; /* Only expose populated DIMMs */ if (dimm->nr_pages == 0) continue; #ifdef CONFIG_EDAC_DEBUG edac_dbg(1, "creating dimm%d, located at ", i); if (edac_debug_level >= 1) { int lay; for (lay = 0; lay < mci->n_layers; lay++) printk(KERN_CONT "%s %d ", edac_layer_name[mci->layers[lay].type], dimm->location[lay]); printk(KERN_CONT "\n"); } #endif err = edac_create_dimm_object(mci, dimm, i); if (err) { edac_dbg(1, "failure: create dimm %d obj\n", i); goto fail; } } #ifdef CONFIG_EDAC_LEGACY_SYSFS err = edac_create_csrow_objects(mci); if (err < 0) goto fail; #endif #ifdef CONFIG_EDAC_DEBUG edac_create_debug_nodes(mci); #endif return 0; fail: for (i--; i >= 0; i--) { struct dimm_info *dimm = mci->dimms[i]; if (dimm->nr_pages == 0) continue; device_unregister(&dimm->dev); } fail2: device_unregister(&mci->dev); bus_unregister(mci->bus); kfree(mci->bus->name); return err; }
static void __exit mmc_exit(void) { bus_unregister(&mmc_bus_type); }