Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
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;
}