static int __init vmcp_init(void) { int ret; if (!MACHINE_IS_VM) { pr_warning("The z/VM CP interface device driver cannot be " "loaded without z/VM\n"); return -ENODEV; } vmcp_debug = debug_register("vmcp", 1, 1, 240); if (!vmcp_debug) return -ENOMEM; ret = debug_register_view(vmcp_debug, &debug_hex_ascii_view); if (ret) { debug_unregister(vmcp_debug); return ret; } ret = misc_register(&vmcp_dev); if (ret) { debug_unregister(vmcp_debug); return ret; } return 0; }
static int __init vmcp_init(void) { int ret; if (!MACHINE_IS_VM) { PRINT_WARN("z/VM CP interface is only available under z/VM\n"); return -ENODEV; } vmcp_debug = debug_register("vmcp", 1, 1, 240); if (!vmcp_debug) return -ENOMEM; ret = debug_register_view(vmcp_debug, &debug_hex_ascii_view); if (ret) { debug_unregister(vmcp_debug); return ret; } ret = misc_register(&vmcp_dev); if (ret) { debug_unregister(vmcp_debug); return ret; } return 0; }
/* * Function: cio_debug_init * Initializes three debug logs (under /proc/s390dbf) for common I/O: * - cio_msg logs the messages which are printk'ed when CONFIG_DEBUG_IO is on * - cio_trace logs the calling of different functions * - cio_crw logs the messages which are printk'ed when CONFIG_DEBUG_CRW is on * debug levels depend on CONFIG_DEBUG_IO resp. CONFIG_DEBUG_CRW */ static int __init cio_debug_init (void) { cio_debug_msg_id = debug_register ("cio_msg", 4, 4, 16*sizeof (long)); if (!cio_debug_msg_id) goto out_unregister; debug_register_view (cio_debug_msg_id, &debug_sprintf_view); debug_set_level (cio_debug_msg_id, 2); cio_debug_trace_id = debug_register ("cio_trace", 4, 4, 8); if (!cio_debug_trace_id) goto out_unregister; debug_register_view (cio_debug_trace_id, &debug_hex_ascii_view); debug_set_level (cio_debug_trace_id, 2); cio_debug_crw_id = debug_register ("cio_crw", 2, 4, 16*sizeof (long)); if (!cio_debug_crw_id) goto out_unregister; debug_register_view (cio_debug_crw_id, &debug_sprintf_view); debug_set_level (cio_debug_crw_id, 2); pr_debug("debugging initialized\n"); return 0; out_unregister: if (cio_debug_msg_id) debug_unregister (cio_debug_msg_id); if (cio_debug_trace_id) debug_unregister (cio_debug_trace_id); if (cio_debug_crw_id) debug_unregister (cio_debug_crw_id); pr_debug("could not initialize debugging\n"); return -1; }
/* * Function: cio_debug_init * Initializes three debug logs for common I/O: * - cio_msg logs generic cio messages * - cio_trace logs the calling of different functions * - cio_crw logs machine check related cio messages */ static int __init cio_debug_init(void) { cio_debug_msg_id = debug_register("cio_msg", 16, 1, 11 * sizeof(long)); if (!cio_debug_msg_id) goto out_unregister; debug_register_view(cio_debug_msg_id, &debug_sprintf_view); debug_set_level(cio_debug_msg_id, 2); cio_debug_trace_id = debug_register("cio_trace", 16, 1, 16); if (!cio_debug_trace_id) goto out_unregister; debug_register_view(cio_debug_trace_id, &debug_hex_ascii_view); debug_set_level(cio_debug_trace_id, 2); cio_debug_crw_id = debug_register("cio_crw", 8, 1, 8 * sizeof(long)); if (!cio_debug_crw_id) goto out_unregister; debug_register_view(cio_debug_crw_id, &debug_sprintf_view); debug_set_level(cio_debug_crw_id, 4); return 0; out_unregister: debug_unregister(cio_debug_msg_id); debug_unregister(cio_debug_trace_id); debug_unregister(cio_debug_crw_id); return -1; }
void qdio_debug_exit(void) { debugfs_remove(debugfs_root); if (qdio_dbf_setup) debug_unregister(qdio_dbf_setup); if (qdio_dbf_error) debug_unregister(qdio_dbf_error); }
void zpci_debug_exit(void) { if (pci_debug_msg_id) debug_unregister(pci_debug_msg_id); if (pci_debug_err_id) debug_unregister(pci_debug_err_id); debugfs_remove(debugfs_root); }
void zfcp_dbf_adapter_unregister(struct zfcp_dbf *dbf) { debug_unregister(dbf->scsi); debug_unregister(dbf->san); debug_unregister(dbf->hba); debug_unregister(dbf->rec); dbf->adapter->dbf = NULL; kfree(dbf); }
/** * zfcp_adapter_debug_unregister - unregisters debug feature for an adapter * @adapter: pointer to adapter for which debug features should be unregistered */ void zfcp_adapter_debug_unregister(struct zfcp_adapter *adapter) { debug_unregister(adapter->scsi_dbf); debug_unregister(adapter->san_dbf); debug_unregister(adapter->hba_dbf); debug_unregister(adapter->erp_dbf); adapter->scsi_dbf = NULL; adapter->san_dbf = NULL; adapter->hba_dbf = NULL; adapter->erp_dbf = NULL; }
static void zfcp_dbf_unregister(struct zfcp_dbf *dbf) { if (!dbf) return; debug_unregister(dbf->scsi); debug_unregister(dbf->san); debug_unregister(dbf->hba); debug_unregister(dbf->pay); debug_unregister(dbf->rec); kfree(dbf); }
/* Initialize the counter set PMU to generate complete counter set data as * event raw data. This relies on the CPU Measurement Counter Facility device * already being loaded and initialized. */ static int __init cf_diag_init(void) { struct cpumf_ctr_info info; size_t need; int rc; if (!kernel_cpumcf_avail() || !stccm_avail() || qctri(&info)) return -ENODEV; cf_diag_get_cpu_speed(); /* Make sure the counter set data fits into predefined buffer. */ need = cf_diag_ctrset_maxsize(&info); if (need > sizeof(((struct cf_diag_csd *)0)->start)) { pr_err("Insufficient memory for PMU(cpum_cf_diag) need=%zu\n", need); return -ENOMEM; } /* Setup s390dbf facility */ cf_diag_dbg = debug_register(KMSG_COMPONENT, 2, 1, 128); if (!cf_diag_dbg) { pr_err("Registration of s390dbf(cpum_cf_diag) failed\n"); return -ENOMEM; } debug_register_view(cf_diag_dbg, &debug_sprintf_view); rc = perf_pmu_register(&cf_diag, "cpum_cf_diag", PERF_TYPE_RAW); if (rc) { debug_unregister_view(cf_diag_dbg, &debug_sprintf_view); debug_unregister(cf_diag_dbg); pr_err("Registration of PMU(cpum_cf_diag) failed with rc=%i\n", rc); } return rc; }
void ctcm_unregister_dbf_views(void) { int x; for (x = 0; x < CTCM_DBF_INFOS; x++) { debug_unregister(ctcm_dbf[x].id); ctcm_dbf[x].id = NULL; } }
static int __init vmcp_init(void) { int ret; if (!MACHINE_IS_VM) return 0; vmcp_debug = debug_register("vmcp", 1, 1, 240); if (!vmcp_debug) return -ENOMEM; ret = debug_register_view(vmcp_debug, &debug_hex_ascii_view); if (ret) { debug_unregister(vmcp_debug); return ret; } ret = misc_register(&vmcp_dev); if (ret) debug_unregister(vmcp_debug); return ret; }
void ccwcache_cleanup (void) { int cachind; /* Shrink the caches, if available */ for ( cachind = 0; cachind < CCW_NUMBER_CACHES; cachind ++ ) { if ( ccw_cache[cachind] ) { if ( kmem_cache_shrink(ccw_cache[cachind]) == 0 ) { ccw_cache[cachind] = NULL; } kmem_cache_destroy(ccw_cache[cachind]); } } debug_unregister( debug_area ); }
void ccwcache_cleanup (void) { int cachind; /* Shrink the caches, if available */ for ( cachind = 0; cachind < CCW_NUMBER_CACHES; cachind ++ ) { if ( ccw_cache[cachind] ) { #if 0 /* this is useless and could cause an OOPS in the worst case */ if ( kmem_cache_shrink(ccw_cache[cachind]) == 0 ) { ccw_cache[cachind] = NULL; } #endif kmem_cache_destroy(ccw_cache[cachind]); } } debug_unregister( debug_area ); }
static void __exit vmcp_exit(void) { misc_deregister(&vmcp_dev); debug_unregister(vmcp_debug); }
static void __exit vmcp_exit(void) { WARN_ON(misc_deregister(&vmcp_dev) != 0); debug_unregister(vmcp_debug); printk(KERN_INFO "z/VM CP interface unloaded.\n"); }
static void __exit pkey_debug_exit(void) { debug_unregister(debug_info); }
void __exit sclp_sdias_exit(void) { debug_unregister(sdias_dbf); sclp_unregister(&sclp_sdias_register); }