enigma2 20150309 -> 20150316
[opendreambox.git] / meta-bsp / common / recipes / linux / linux-dreambox-3.2 / 0008-The-ubi-maintained-flag-must-be-set-earlier-to-preve.patch
1 From fba157484336f1438f0cdb0f60a59a75b807235b Mon Sep 17 00:00:00 2001
2 From: Andreas Monzner <andreas.monzner@dream-property.net>
3 Date: Mon, 29 Jul 2013 11:36:00 +0200
4 Subject: [PATCH] The ubi maintained flag must be set earlier to prevent the
5  broadcom driver nand blocks refreshes that are actually managed by UBI
6  Hopefully this fixes the problem that UBIFS partitions are mounted in
7  read-only mode.
8
9 ---
10  drivers/mtd/ubi/build.c | 10 ++++++++--
11  1 file changed, 8 insertions(+), 2 deletions(-)
12
13 diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c
14 index 4f9ef05..4f3a1fd 100644
15 --- a/drivers/mtd/ubi/build.c
16 +++ b/drivers/mtd/ubi/build.c
17 @@ -876,6 +876,7 @@ int ubi_attach_mtd_dev(struct mtd_info *mtd, int ubi_num, int vid_hdr_offset)
18  {
19         struct ubi_device *ubi;
20         int i, err, ref = 0;
21 +       int was_ubi_maintained = mtd->flags & (1<<31); // DMM hack.. used in brcmand to detect mtd partitions used by UBI
22  
23         /*
24          * Check if we already have the same MTD device attached.
25 @@ -962,6 +963,8 @@ int ubi_attach_mtd_dev(struct mtd_info *mtd, int ubi_num, int vid_hdr_offset)
26         if (err)
27                 goto out_free;
28  
29 +       mtd->flags |= (1<<31); // DMM hack.. used in brcmand to detect mtd partitions used by UBI
30 +
31         err = attach_by_scanning(ubi);
32         if (err) {
33                 dbg_err("failed to attach by scanning, error %d", err);
34 @@ -1020,8 +1023,6 @@ int ubi_attach_mtd_dev(struct mtd_info *mtd, int ubi_num, int vid_hdr_offset)
35         ubi_devices[ubi_num] = ubi;
36         ubi_notify_all(ubi, UBI_VOLUME_ADDED, NULL);
37  
38 -       mtd->flags |= (1<<31); // DMM hack.. used in brcmand to detect mtd partitions used by UBI
39 -
40         return ubi_num;
41  
42  out_debugfs:
43 @@ -1043,6 +1044,11 @@ out_free:
44                 put_device(&ubi->dev);
45         else
46                 kfree(ubi);
47 +
48 +       // DMM hack.. used in brcmand to detect mtd partitions used by UBI
49 +       if (!was_ubi_maintained)
50 +               mtd->flags &= ~(1<<31);
51 +
52         return err;
53  }
54  
55 -- 
56 1.8.3.2
57