UBI: reduce memory consumption

Remove the pre-allocated 'peb_buf2' buffer because we do not really need it.
The only reason UBI has it is to check that the data were written correctly.
But we do not have to have 2 buffers for this and waste RAM - we can just
compare CRC checksums instead. This reduces UBI memory consumption.

Artem bityutskiy: massaged the patch and commit message

Signed-off-by: Josselin Costanzi <josselin.costanzi@mobile-devices.fr>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
This commit is contained in:
Josselin Costanzi
2012-02-22 16:37:05 +01:00
committed by Artem Bityutskiy
parent 7eb3aa6585
commit 43b043e78b
3 changed files with 4 additions and 12 deletions

View File

@@ -1134,8 +1134,8 @@ int ubi_eba_copy_leb(struct ubi_device *ubi, int from, int to,
* We've written the data and are going to read it back to make
* sure it was written correctly.
*/
err = ubi_io_read_data(ubi, ubi->peb_buf2, to, 0, aldata_size);
memset(ubi->peb_buf1, 0xFF, aldata_size);
err = ubi_io_read_data(ubi, ubi->peb_buf1, to, 0, aldata_size);
if (err) {
if (err != UBI_IO_BITFLIPS) {
ubi_warn("error %d while reading data back "
@@ -1149,7 +1149,7 @@ int ubi_eba_copy_leb(struct ubi_device *ubi, int from, int to,
cond_resched();
if (memcmp(ubi->peb_buf1, ubi->peb_buf2, aldata_size)) {
if (crc != crc32(UBI_CRC32_INIT, ubi->peb_buf1, data_size)) {
ubi_warn("read data back from PEB %d and it is "
"different", to);
err = -EINVAL;