فهرست منبع

Merge branch 'linux-next' of git://git.infradead.org/~dedekind/ubi-2.6

* 'linux-next' of git://git.infradead.org/~dedekind/ubi-2.6:
  UBI: Don't exit from ubi_thread until kthread_should_stop() is true
  UBI: fix EBADMSG handling
Linus Torvalds 16 سال پیش
والد
کامیت
e2a2444a90
3فایلهای تغییر یافته به همراه4 افزوده شده و 3 حذف شده
  1. 1 1
      drivers/mtd/ubi/eba.c
  2. 1 1
      drivers/mtd/ubi/scan.c
  3. 2 1
      drivers/mtd/ubi/wl.c

+ 1 - 1
drivers/mtd/ubi/eba.c

@@ -1022,7 +1022,7 @@ int ubi_eba_copy_leb(struct ubi_device *ubi, int from, int to,
 	}
 
 	/*
-	 * OK, now the LEB is locked and we can safely start moving iy. Since
+	 * OK, now the LEB is locked and we can safely start moving it. Since
 	 * this function utilizes thie @ubi->peb1_buf buffer which is shared
 	 * with some other functions, so lock the buffer by taking the
 	 * @ubi->buf_mutex.

+ 1 - 1
drivers/mtd/ubi/scan.c

@@ -320,7 +320,7 @@ static int compare_lebs(struct ubi_device *ubi, const struct ubi_scan_leb *seb,
 	}
 
 	err = ubi_io_read_data(ubi, buf, pnum, 0, len);
-	if (err && err != UBI_IO_BITFLIPS)
+	if (err && err != UBI_IO_BITFLIPS && err != -EBADMSG)
 		goto out_free_buf;
 
 	data_crc = be32_to_cpu(vid_hdr->data_crc);

+ 2 - 1
drivers/mtd/ubi/wl.c

@@ -1396,7 +1396,8 @@ int ubi_thread(void *u)
 				ubi_msg("%s: %d consecutive failures",
 					ubi->bgt_name, WL_MAX_FAILURES);
 				ubi_ro_mode(ubi);
-				break;
+				ubi->thread_enabled = 0;
+				continue;
 			}
 		} else
 			failures = 0;