diff options
Diffstat (limited to 'drivers/mtd/ubi/debug.c')
| -rw-r--r-- | drivers/mtd/ubi/debug.c | 132 | 
1 files changed, 44 insertions, 88 deletions
diff --git a/drivers/mtd/ubi/debug.c b/drivers/mtd/ubi/debug.c index a1dff92ceedf..54646c2c2744 100644 --- a/drivers/mtd/ubi/debug.c +++ b/drivers/mtd/ubi/debug.c @@ -107,6 +107,7 @@ void ubi_dump_vol_info(const struct ubi_volume *vol)  	pr_err("\tlast_eb_bytes   %d\n", vol->last_eb_bytes);  	pr_err("\tcorrupted       %d\n", vol->corrupted);  	pr_err("\tupd_marker      %d\n", vol->upd_marker); +	pr_err("\tskip_check      %d\n", vol->skip_check);  	if (vol->name_len <= UBI_VOL_NAME_MAX &&  	    strnlen(vol->name, vol->name_len + 1) == vol->name_len) { @@ -509,11 +510,9 @@ static const struct file_operations eraseblk_count_fops = {   */  int ubi_debugfs_init_dev(struct ubi_device *ubi)  { -	int err, n;  	unsigned long ubi_num = ubi->ubi_num; -	const char *fname; -	struct dentry *dent;  	struct ubi_debug_info *d = &ubi->dbg; +	int n;  	if (!IS_ENABLED(CONFIG_DEBUG_FS))  		return 0; @@ -522,95 +521,52 @@ int ubi_debugfs_init_dev(struct ubi_device *ubi)  		     ubi->ubi_num);  	if (n == UBI_DFS_DIR_LEN) {  		/* The array size is too small */ -		fname = UBI_DFS_DIR_NAME; -		dent = ERR_PTR(-EINVAL); -		goto out; +		return -EINVAL;  	} -	fname = d->dfs_dir_name; -	dent = debugfs_create_dir(fname, dfs_rootdir); -	if (IS_ERR_OR_NULL(dent)) -		goto out; -	d->dfs_dir = dent; - -	fname = "chk_gen"; -	dent = debugfs_create_file(fname, S_IWUSR, d->dfs_dir, (void *)ubi_num, -				   &dfs_fops); -	if (IS_ERR_OR_NULL(dent)) -		goto out_remove; -	d->dfs_chk_gen = dent; - -	fname = "chk_io"; -	dent = debugfs_create_file(fname, S_IWUSR, d->dfs_dir, (void *)ubi_num, -				   &dfs_fops); -	if (IS_ERR_OR_NULL(dent)) -		goto out_remove; -	d->dfs_chk_io = dent; - -	fname = "chk_fastmap"; -	dent = debugfs_create_file(fname, S_IWUSR, d->dfs_dir, (void *)ubi_num, -				   &dfs_fops); -	if (IS_ERR_OR_NULL(dent)) -		goto out_remove; -	d->dfs_chk_fastmap = dent; - -	fname = "tst_disable_bgt"; -	dent = debugfs_create_file(fname, S_IWUSR, d->dfs_dir, (void *)ubi_num, -				   &dfs_fops); -	if (IS_ERR_OR_NULL(dent)) -		goto out_remove; -	d->dfs_disable_bgt = dent; - -	fname = "tst_emulate_bitflips"; -	dent = debugfs_create_file(fname, S_IWUSR, d->dfs_dir, (void *)ubi_num, -				   &dfs_fops); -	if (IS_ERR_OR_NULL(dent)) -		goto out_remove; -	d->dfs_emulate_bitflips = dent; - -	fname = "tst_emulate_io_failures"; -	dent = debugfs_create_file(fname, S_IWUSR, d->dfs_dir, (void *)ubi_num, -				   &dfs_fops); -	if (IS_ERR_OR_NULL(dent)) -		goto out_remove; -	d->dfs_emulate_io_failures = dent; - -	fname = "tst_emulate_power_cut"; -	dent = debugfs_create_file(fname, S_IWUSR, d->dfs_dir, (void *)ubi_num, -				   &dfs_fops); -	if (IS_ERR_OR_NULL(dent)) -		goto out_remove; -	d->dfs_emulate_power_cut = dent; - -	fname = "tst_emulate_power_cut_min"; -	dent = debugfs_create_file(fname, S_IWUSR, d->dfs_dir, (void *)ubi_num, -				   &dfs_fops); -	if (IS_ERR_OR_NULL(dent)) -		goto out_remove; -	d->dfs_power_cut_min = dent; - -	fname = "tst_emulate_power_cut_max"; -	dent = debugfs_create_file(fname, S_IWUSR, d->dfs_dir, (void *)ubi_num, -				   &dfs_fops); -	if (IS_ERR_OR_NULL(dent)) -		goto out_remove; -	d->dfs_power_cut_max = dent; - -	fname = "detailed_erase_block_info"; -	dent = debugfs_create_file(fname, S_IRUSR, d->dfs_dir, (void *)ubi_num, -				   &eraseblk_count_fops); -	if (IS_ERR_OR_NULL(dent)) -		goto out_remove; +	d->dfs_dir = debugfs_create_dir(d->dfs_dir_name, dfs_rootdir); -	return 0; +	d->dfs_chk_gen = debugfs_create_file("chk_gen", S_IWUSR, d->dfs_dir, +					     (void *)ubi_num, &dfs_fops); -out_remove: -	debugfs_remove_recursive(d->dfs_dir); -out: -	err = dent ? PTR_ERR(dent) : -ENODEV; -	ubi_err(ubi, "cannot create \"%s\" debugfs file or directory, error %d\n", -		fname, err); -	return err; +	d->dfs_chk_io = debugfs_create_file("chk_io", S_IWUSR, d->dfs_dir, +					    (void *)ubi_num, &dfs_fops); + +	d->dfs_chk_fastmap = debugfs_create_file("chk_fastmap", S_IWUSR, +						 d->dfs_dir, (void *)ubi_num, +						 &dfs_fops); + +	d->dfs_disable_bgt = debugfs_create_file("tst_disable_bgt", S_IWUSR, +						 d->dfs_dir, (void *)ubi_num, +						 &dfs_fops); + +	d->dfs_emulate_bitflips = debugfs_create_file("tst_emulate_bitflips", +						      S_IWUSR, d->dfs_dir, +						      (void *)ubi_num, +						      &dfs_fops); + +	d->dfs_emulate_io_failures = debugfs_create_file("tst_emulate_io_failures", +							 S_IWUSR, d->dfs_dir, +							 (void *)ubi_num, +							 &dfs_fops); + +	d->dfs_emulate_power_cut = debugfs_create_file("tst_emulate_power_cut", +						       S_IWUSR, d->dfs_dir, +						       (void *)ubi_num, +						       &dfs_fops); + +	d->dfs_power_cut_min = debugfs_create_file("tst_emulate_power_cut_min", +						   S_IWUSR, d->dfs_dir, +						   (void *)ubi_num, &dfs_fops); + +	d->dfs_power_cut_max = debugfs_create_file("tst_emulate_power_cut_max", +						   S_IWUSR, d->dfs_dir, +						   (void *)ubi_num, &dfs_fops); + +	debugfs_create_file("detailed_erase_block_info", S_IRUSR, d->dfs_dir, +			    (void *)ubi_num, &eraseblk_count_fops); + +	return 0;  }  /**  | 

