OpenWrt – Diff between revs 2 and 3
?pathlinks?
Rev 2 | Rev 3 | |||
---|---|---|---|---|
Line 17... | Line 17... | |||
17 | +#define MTD_ERASE_PARTIAL 0x8000 /* partition only covers parts of an erase block */ |
17 | +#define MTD_ERASE_PARTIAL 0x8000 /* partition only covers parts of an erase block */ |
|
18 | + |
18 | + |
|
19 | /* Our partition linked list */ |
19 | /* Our partition linked list */ |
|
20 | static LIST_HEAD(mtd_partitions); |
20 | static LIST_HEAD(mtd_partitions); |
|
21 | static DEFINE_MUTEX(mtd_partitions_mutex); |
21 | static DEFINE_MUTEX(mtd_partitions_mutex); |
|
22 | @@ -246,13 +248,61 @@ static int part_erase(struct mtd_info *m |
22 | @@ -242,13 +244,61 @@ static int part_erase(struct mtd_info *m |
|
23 | struct mtd_part *part = mtd_to_part(mtd); |
23 | struct mtd_part *part = mtd_to_part(mtd); |
|
24 | int ret; |
24 | int ret; |
|
Line 25... | Line 25... | |||
25 | |
25 | |
|
26 | + |
26 | + |
|
Line 79... | Line 79... | |||
79 | } |
79 | } |
|
80 | + |
80 | + |
|
81 | return ret; |
81 | return ret; |
|
82 | } |
82 | } |
|
Line 83... | Line 83... | |||
83 | |
83 | |
|
84 | @@ -260,6 +310,25 @@ void mtd_erase_callback(struct erase_inf |
84 | @@ -256,6 +306,25 @@ void mtd_erase_callback(struct erase_inf |
|
85 | { |
85 | { |
|
86 | if (instr->mtd->_erase == part_erase) { |
86 | if (instr->mtd->_erase == part_erase) { |
|
87 | struct mtd_part *part = mtd_to_part(instr->mtd); |
87 | struct mtd_part *part = mtd_to_part(instr->mtd); |
|
88 | + size_t wrlen = 0; |
88 | + size_t wrlen = 0; |
|
Line 105... | Line 105... | |||
105 | + kfree(instr->erase_buf); |
105 | + kfree(instr->erase_buf); |
|
106 | + } |
106 | + } |
|
Line 107... | Line 107... | |||
107 | |
107 | |
|
108 | if (instr->fail_addr != MTD_FAIL_ADDR_UNKNOWN) |
108 | if (instr->fail_addr != MTD_FAIL_ADDR_UNKNOWN) |
|
109 | instr->fail_addr -= part->offset; |
109 | instr->fail_addr -= part->offset; |
|
110 | @@ -566,19 +635,22 @@ static struct mtd_part *allocate_partiti |
110 | @@ -562,19 +631,22 @@ static struct mtd_part *allocate_partiti |
|
111 | remainder = do_div(tmp, wr_alignment); |
111 | remainder = do_div(tmp, wr_alignment); |
|
112 | if ((slave->mtd.flags & MTD_WRITEABLE) && remainder) { |
112 | if ((slave->mtd.flags & MTD_WRITEABLE) && remainder) { |
|
113 | /* Doesn't start on a boundary of major erase size */ |
113 | /* Doesn't start on a boundary of major erase size */ |
|
114 | - /* FIXME: Let it be writable if it is on a boundary of |
114 | - /* FIXME: Let it be writable if it is on a boundary of |