Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1323727 > unrolled thread

[PATCH v2 06/17] drivers:mtd:ubi:add bakvol function define in ubi layer

Started byBean Huo <jackyard88@gmail.com>
First post2016-02-02 03:40 +0100
Last post2016-02-02 04:20 +0100
Articles 3 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [PATCH v2 06/17] drivers:mtd:ubi:add bakvol function define in ubi layer Bean Huo <jackyard88@gmail.com> - 2016-02-02 03:40 +0100
    Re: [PATCH v2 06/17] drivers:mtd:ubi:add bakvol function define in  ubi layer kbuild test robot <lkp@intel.com> - 2016-02-02 04:10 +0100
    Re: [PATCH v2 06/17] drivers:mtd:ubi:add bakvol function define in  ubi layer kbuild test robot <lkp@intel.com> - 2016-02-02 04:20 +0100

#1323727 — [PATCH v2 06/17] drivers:mtd:ubi:add bakvol function define in ubi layer

FromBean Huo <jackyard88@gmail.com>
Date2016-02-02 03:40 +0100
Subject[PATCH v2 06/17] drivers:mtd:ubi:add bakvol function define in ubi layer
Message-ID<qXz2P-3Wf-37@gated-at.bofh.it>
From: Bean Huo <beanhuo@micron.com>

This file patch is to add bakvol function define in ubi layer and
add bakvol point in ubi_device structure. Add one new parameter for ubi layer write
function, in order to indicate if this time programming data should be protected.

Signed-off-by: BeanHuo <beanhuo@micron.com>
---
 drivers/mtd/ubi/ubi.h | 23 ++++++++++++++++++++---
 1 file changed, 20 insertions(+), 3 deletions(-)

diff --git a/drivers/mtd/ubi/ubi.h b/drivers/mtd/ubi/ubi.h
index 2974b67..4a80359 100644
--- a/drivers/mtd/ubi/ubi.h
+++ b/drivers/mtd/ubi/ubi.h
@@ -438,6 +438,7 @@ struct ubi_debug_info {
  * @vtbl_slots: how many slots are available in the volume table
  * @vtbl_size: size of the volume table in bytes
  * @vtbl: in-RAM volume table copy
+ * @bkblk_tbl: backup block table
  * @device_mutex: protects on-flash volume table and serializes volume
  *                creation, deletion, update, re-size, re-name and set
  *                property
@@ -547,6 +548,7 @@ struct ubi_device {
 	int vtbl_slots;
 	int vtbl_size;
 	struct ubi_vtbl_record *vtbl;
+	struct ubi_bkblk_tbl *bkblk_tbl;
 	struct mutex device_mutex;
 
 	int max_ec;
@@ -797,6 +799,20 @@ int ubi_vtbl_rename_volumes(struct ubi_device *ubi,
 			    struct list_head *rename_list);
 int ubi_read_volume_table(struct ubi_device *ubi, struct ubi_attach_info *ai);
 
+/* bakvol.c*/
+int ubi_check_bakvol_module(struct ubi_device *ubi);
+int ubi_duplicate_data_to_bakvol(struct ubi_device *ubi, loff_t addr,
+		size_t len, size_t *retlen, const void *buf);
+int ubi_bakvol_module_init(struct ubi_device *ubi);
+int ubi_bakvol_peb_scan(struct ubi_device *ubi,
+			struct ubi_vid_hdr *vidh, int pnum);
+int ubi_bakvol_module_init_tail(struct ubi_device *ubi,
+				struct ubi_attach_info *si);
+int ubi_corrupted_data_recovery(struct ubi_volume_desc *desc);
+int is_backup_need(struct ubi_device *ubi, loff_t addr);
+void init_bakvol(struct ubi_volume_desc *desc, uint8_t choice);
+void clear_bakvol(struct ubi_device *ubi);
+
 /* vmt.c */
 int ubi_create_volume(struct ubi_device *ubi, struct ubi_mkvol_req *req);
 int ubi_remove_volume(struct ubi_volume_desc *desc, int no_vtbl);
@@ -846,6 +862,7 @@ int self_check_eba(struct ubi_device *ubi, struct ubi_attach_info *ai_fastmap,
 
 /* wl.c */
 int ubi_wl_get_peb(struct ubi_device *ubi);
+int ubi_wl_get_plane_peb(struct ubi_device *ubi, int plane);
 int ubi_wl_put_peb(struct ubi_device *ubi, int vol_id, int lnum,
 		   int pnum, int torture);
 int ubi_wl_flush(struct ubi_device *ubi, int vol_id, int lnum);
@@ -864,7 +881,7 @@ int ubi_ensure_anchor_pebs(struct ubi_device *ubi);
 int ubi_io_read(const struct ubi_device *ubi, void *buf, int pnum, int offset,
 		int len);
 int ubi_io_write(struct ubi_device *ubi, const void *buf, int pnum, int offset,
-		 int len);
+		 int len, int safeguard);
 int ubi_io_sync_erase(struct ubi_device *ubi, int pnum, int torture);
 int ubi_io_is_bad(const struct ubi_device *ubi, int pnum);
 int ubi_io_mark_bad(const struct ubi_device *ubi, int pnum);
@@ -1054,10 +1071,10 @@ static inline int ubi_io_read_data(const struct ubi_device *ubi, void *buf,
  * physical eraseblock.
  */
 static inline int ubi_io_write_data(struct ubi_device *ubi, const void *buf,
-				    int pnum, int offset, int len)
+				    int pnum, int offset, int len, int safeguard)
 {
 	ubi_assert(offset >= 0);
-	return ubi_io_write(ubi, buf, pnum, offset + ubi->leb_start, len);
+	return ubi_io_write(ubi, buf, pnum, offset + ubi->leb_start, len, safeguard);
 }
 
 /**
-- 
1.9.1

[toc] | [next] | [standalone]


#1323754 — Re: [PATCH v2 06/17] drivers:mtd:ubi:add bakvol function define in ubi layer

Fromkbuild test robot <lkp@intel.com>
Date2016-02-02 04:10 +0100
SubjectRe: [PATCH v2 06/17] drivers:mtd:ubi:add bakvol function define in ubi layer
Message-ID<qXzvQ-4pr-15@gated-at.bofh.it>
In reply to#1323727

[Multipart message — attachments visible in raw view] — view raw

Hi Bean,

[auto build test ERROR on v4.5-rc2]
[also build test ERROR on next-20160201]
[if your patch is applied to the wrong git tree, please drop us a note to help improving the system]

url:    https://github.com/0day-ci/linux/commits/Bean-Huo/Add-a-bakvol-module-in-UBI-layer-for-MLC-paired-page-power-loss-issue/20160202-104450
config: x86_64-randconfig-x012-201605 (attached as .config)
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

Note: the linux-review/Bean-Huo/Add-a-bakvol-module-in-UBI-layer-for-MLC-paired-page-power-loss-issue/20160202-104450 HEAD 2078d3920abf1d89be7eaf087100b4482dd532dc builds fine.
      It only hurts bisectibility.

All errors (new ones prefixed by >>):

   drivers/mtd/ubi/eba.c: In function 'recover_peb':
>> drivers/mtd/ubi/eba.c:607:8: error: too few arguments to function 'ubi_io_write_data'
     err = ubi_io_write_data(ubi, ubi->peb_buf, new_pnum, 0, data_size);
           ^
   In file included from drivers/mtd/ubi/eba.c:47:0:
   drivers/mtd/ubi/ubi.h:1073:19: note: declared here
    static inline int ubi_io_write_data(struct ubi_device *ubi, const void *buf,
                      ^
   drivers/mtd/ubi/eba.c: In function 'ubi_eba_write_leb':
   drivers/mtd/ubi/eba.c:678:9: error: too few arguments to function 'ubi_io_write_data'
      err = ubi_io_write_data(ubi, buf, pnum, offset, len);
            ^
   In file included from drivers/mtd/ubi/eba.c:47:0:
   drivers/mtd/ubi/ubi.h:1073:19: note: declared here
    static inline int ubi_io_write_data(struct ubi_device *ubi, const void *buf,
                      ^
   drivers/mtd/ubi/eba.c:729:9: error: too few arguments to function 'ubi_io_write_data'
      err = ubi_io_write_data(ubi, buf, pnum, offset, len);
            ^
   In file included from drivers/mtd/ubi/eba.c:47:0:
   drivers/mtd/ubi/ubi.h:1073:19: note: declared here
    static inline int ubi_io_write_data(struct ubi_device *ubi, const void *buf,
                      ^
   drivers/mtd/ubi/eba.c: In function 'ubi_eba_write_leb_st':
   drivers/mtd/ubi/eba.c:851:8: error: too few arguments to function 'ubi_io_write_data'
     err = ubi_io_write_data(ubi, buf, pnum, 0, len);
           ^
   In file included from drivers/mtd/ubi/eba.c:47:0:
   drivers/mtd/ubi/ubi.h:1073:19: note: declared here
    static inline int ubi_io_write_data(struct ubi_device *ubi, const void *buf,
                      ^
   drivers/mtd/ubi/eba.c: In function 'ubi_eba_atomic_leb_change':
   drivers/mtd/ubi/eba.c:971:8: error: too few arguments to function 'ubi_io_write_data'
     err = ubi_io_write_data(ubi, buf, pnum, 0, len);
           ^
   In file included from drivers/mtd/ubi/eba.c:47:0:
   drivers/mtd/ubi/ubi.h:1073:19: note: declared here
    static inline int ubi_io_write_data(struct ubi_device *ubi, const void *buf,
                      ^
   drivers/mtd/ubi/eba.c: In function 'ubi_eba_copy_leb':
   drivers/mtd/ubi/eba.c:1197:9: error: too few arguments to function 'ubi_io_write_data'
      err = ubi_io_write_data(ubi, ubi->peb_buf, to, 0, aldata_size);
            ^
   In file included from drivers/mtd/ubi/eba.c:47:0:
   drivers/mtd/ubi/ubi.h:1073:19: note: declared here
    static inline int ubi_io_write_data(struct ubi_device *ubi, const void *buf,
                      ^
--
>> drivers/mtd/ubi/io.c:235:5: error: conflicting types for 'ubi_io_write'
    int ubi_io_write(struct ubi_device *ubi, const void *buf, int pnum, int offset,
        ^
   In file included from drivers/mtd/ubi/io.c:92:0:
   drivers/mtd/ubi/ubi.h:883:5: note: previous declaration of 'ubi_io_write' was here
    int ubi_io_write(struct ubi_device *ubi, const void *buf, int pnum, int offset,
        ^

vim +/ubi_io_write_data +607 drivers/mtd/ubi/eba.c

4df581f3 Artem Bityutskiy    2008-12-04  601  			goto out_unlock;
801c135c Artem B. Bityutskiy 2006-06-27  602  		}
8fb2a514 Richard Weinberger  2014-11-10  603  	}
801c135c Artem B. Bityutskiy 2006-06-27  604  
0ca39d74 Artem Bityutskiy    2012-03-08  605  	memcpy(ubi->peb_buf + offset, buf, len);
801c135c Artem B. Bityutskiy 2006-06-27  606  
0ca39d74 Artem Bityutskiy    2012-03-08 @607  	err = ubi_io_write_data(ubi, ubi->peb_buf, new_pnum, 0, data_size);
4df581f3 Artem Bityutskiy    2008-12-04  608  	if (err) {
4df581f3 Artem Bityutskiy    2008-12-04  609  		mutex_unlock(&ubi->buf_mutex);
111ab0b2 Richard Weinberger  2014-11-10  610  		up_read(&ubi->fm_eba_sem);

:::::: The code at line 607 was first introduced by commit
:::::: 0ca39d74de8b269fb61eac11b75bd6c3fc887c28 UBI: rename peb_buf1 to peb_buf

:::::: TO: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
:::::: CC: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[toc] | [prev] | [next] | [standalone]


#1323757 — Re: [PATCH v2 06/17] drivers:mtd:ubi:add bakvol function define in ubi layer

Fromkbuild test robot <lkp@intel.com>
Date2016-02-02 04:20 +0100
SubjectRe: [PATCH v2 06/17] drivers:mtd:ubi:add bakvol function define in ubi layer
Message-ID<qXzFw-4xb-7@gated-at.bofh.it>
In reply to#1323727

[Multipart message — attachments visible in raw view] — view raw

Hi Bean,

[auto build test ERROR on v4.5-rc2]
[also build test ERROR on next-20160201]
[if your patch is applied to the wrong git tree, please drop us a note to help improving the system]

url:    https://github.com/0day-ci/linux/commits/Bean-Huo/Add-a-bakvol-module-in-UBI-layer-for-MLC-paired-page-power-loss-issue/20160202-104450
config: x86_64-randconfig-x018-201605 (attached as .config)
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

Note: the linux-review/Bean-Huo/Add-a-bakvol-module-in-UBI-layer-for-MLC-paired-page-power-loss-issue/20160202-104450 HEAD 2078d3920abf1d89be7eaf087100b4482dd532dc builds fine.
      It only hurts bisectibility.

All errors (new ones prefixed by >>):

   drivers/mtd/ubi/fastmap.c: In function 'ubi_write_fastmap':
>> drivers/mtd/ubi/fastmap.c:1315:9: error: too few arguments to function 'ubi_io_write'
      ret = ubi_io_write(ubi, fm_raw + (i * ubi->leb_size),
            ^
   In file included from drivers/mtd/ubi/fastmap.c:18:0:
   drivers/mtd/ubi/ubi.h:883:5: note: declared here
    int ubi_io_write(struct ubi_device *ubi, const void *buf, int pnum, int offset,
        ^

vim +/ubi_io_write +1315 drivers/mtd/ubi/fastmap.c

dbb7d2a88 Richard Weinberger 2012-09-26  1309  				new_fm->e[i]->pnum);
dbb7d2a88 Richard Weinberger 2012-09-26  1310  			goto out_kfree;
dbb7d2a88 Richard Weinberger 2012-09-26  1311  		}
dbb7d2a88 Richard Weinberger 2012-09-26  1312  	}
dbb7d2a88 Richard Weinberger 2012-09-26  1313  
dbb7d2a88 Richard Weinberger 2012-09-26  1314  	for (i = 0; i < new_fm->used_blocks; i++) {
dbb7d2a88 Richard Weinberger 2012-09-26 @1315  		ret = ubi_io_write(ubi, fm_raw + (i * ubi->leb_size),
dbb7d2a88 Richard Weinberger 2012-09-26  1316  			new_fm->e[i]->pnum, ubi->leb_start, ubi->leb_size);
dbb7d2a88 Richard Weinberger 2012-09-26  1317  		if (ret) {
326087033 Tanya Brokhman     2014-10-20  1318  			ubi_err(ubi, "unable to write fastmap to PEB %i!",

:::::: The code at line 1315 was first introduced by commit
:::::: dbb7d2a88d2a7bd3624e090bee42cdee048d9290 UBI: Add fastmap core

:::::: TO: Richard Weinberger <richard@nod.at>
:::::: CC: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web