瀏覽代碼

Merge branch 'for-linus' of git://git.infradead.org/~dedekind/ubi-2.6

* 'for-linus' of git://git.infradead.org/~dedekind/ubi-2.6:
  UBI: mtd/ubi/vtbl.c: fix memory leak
  UBI: fix sparse errors in ubi.h
  UBI: fix error message
  UBI: silence warning
Linus Torvalds 17 年之前
父節點
當前提交
d7fe321eeb
共有 4 個文件被更改,包括 11 次插入8 次删除
  1. 2 2
      drivers/mtd/ubi/build.c
  2. 5 5
      drivers/mtd/ubi/ubi.h
  3. 3 1
      drivers/mtd/ubi/vmt.c
  4. 1 0
      drivers/mtd/ubi/vtbl.c

+ 2 - 2
drivers/mtd/ubi/build.c

@@ -1000,8 +1000,8 @@ static int __init ubi_init(void)
 		mutex_unlock(&ubi_devices_mutex);
 		if (err < 0) {
 			put_mtd_device(mtd);
-			printk(KERN_ERR "UBI error: cannot attach %s\n",
-			       p->name);
+			printk(KERN_ERR "UBI error: cannot attach mtd%d\n",
+			       mtd->index);
 			goto out_detach;
 		}
 	}

+ 5 - 5
drivers/mtd/ubi/ubi.h

@@ -217,11 +217,11 @@ struct ubi_volume {
 	void *upd_buf;
 
 	int *eba_tbl;
-	int checked:1;
-	int corrupted:1;
-	int upd_marker:1;
-	int updating:1;
-	int changing_leb:1;
+	unsigned int checked:1;
+	unsigned int corrupted:1;
+	unsigned int upd_marker:1;
+	unsigned int updating:1;
+	unsigned int changing_leb:1;
 
 #ifdef CONFIG_MTD_UBI_GLUEBI
 	/*

+ 3 - 1
drivers/mtd/ubi/vmt.c

@@ -376,7 +376,9 @@ out_sysfs:
 	get_device(&vol->dev);
 	volume_sysfs_close(vol);
 out_gluebi:
-	ubi_destroy_gluebi(vol);
+	if (ubi_destroy_gluebi(vol))
+		dbg_err("cannot destroy gluebi for volume %d:%d",
+			ubi->ubi_num, vol_id);
 out_cdev:
 	cdev_del(&vol->cdev);
 out_mapping:

+ 1 - 0
drivers/mtd/ubi/vtbl.c

@@ -519,6 +519,7 @@ static int init_volumes(struct ubi_device *ubi, const struct ubi_scan_info *si,
 			if (ubi->autoresize_vol_id != -1) {
 				ubi_err("more then one auto-resize volume (%d "
 					"and %d)", ubi->autoresize_vol_id, i);
+				kfree(vol);
 				return -EINVAL;
 			}