int wl1271_debugfs_init(struct wl1271 *wl) { int ret; wl->debugfs.rootdir = debugfs_create_dir(KBUILD_MODNAME, NULL); if (IS_ERR(wl->debugfs.rootdir)) { ret = PTR_ERR(wl->debugfs.rootdir); wl->debugfs.rootdir = NULL; goto err; } wl->debugfs.fw_statistics = debugfs_create_dir("fw-statistics", wl->debugfs.rootdir); if (IS_ERR(wl->debugfs.fw_statistics)) { ret = PTR_ERR(wl->debugfs.fw_statistics); wl->debugfs.fw_statistics = NULL; goto err_root; } wl->stats.fw_stats = kzalloc(sizeof(*wl->stats.fw_stats), GFP_KERNEL); if (!wl->stats.fw_stats) { ret = -ENOMEM; goto err_fw; } wl->stats.fw_stats_update = jiffies; ret = wl1271_debugfs_add_files(wl); if (ret < 0) goto err_file; return 0; err_file: kfree(wl->stats.fw_stats); wl->stats.fw_stats = NULL; err_fw: debugfs_remove(wl->debugfs.fw_statistics); wl->debugfs.fw_statistics = NULL; err_root: debugfs_remove(wl->debugfs.rootdir); wl->debugfs.rootdir = NULL; err: return ret; }
int wl1271_debugfs_init(struct wl1271 *wl) { int ret; struct dentry *rootdir; rootdir = debugfs_create_dir(KBUILD_MODNAME, wl->hw->wiphy->debugfsdir); if (IS_ERR(rootdir)) { ret = PTR_ERR(rootdir); goto err; } wl->stats.fw_stats = kzalloc(sizeof(*wl->stats.fw_stats), GFP_KERNEL); if (!wl->stats.fw_stats) { ret = -ENOMEM; goto err_fw; } wl->stats.fw_stats_update = jiffies; ret = wl1271_debugfs_add_files(wl, rootdir); if (ret < 0) goto err_file; return 0; err_file: kfree(wl->stats.fw_stats); wl->stats.fw_stats = NULL; err_fw: debugfs_remove_recursive(rootdir); err: return ret; }