David Brownell <david-b@pacbell.net>: minor davinci_nand bugfix

Fix a bug that joined us at the last minute, when an efficient
alloca() call got swapped out for a more portable malloc().

Also log one error, to give a clue in case it appears "in the wild".


git-svn-id: svn://svn.berlios.de/openocd/trunk@1907 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
zwelch 2009-05-24 20:56:13 +00:00
parent 42c009e2be
commit e046954d53
1 changed files with 4 additions and 2 deletions

View File

@ -258,8 +258,10 @@ static int davinci_write_page(struct nand_device_s *nand, u32 page,
return ERROR_NAND_OPERATION_FAILED; return ERROR_NAND_OPERATION_FAILED;
/* Always write both data and OOB ... we are not "raw" I/O! */ /* Always write both data and OOB ... we are not "raw" I/O! */
if (!data) if (!data) {
LOG_ERROR("Missing NAND data; try 'nand raw_access enable'\n");
return ERROR_NAND_OPERATION_FAILED; return ERROR_NAND_OPERATION_FAILED;
}
/* If we're not given OOB, write 0xff where we don't write ECC codes. */ /* If we're not given OOB, write 0xff where we don't write ECC codes. */
switch (nand->page_size) { switch (nand->page_size) {
@ -277,7 +279,7 @@ static int davinci_write_page(struct nand_device_s *nand, u32 page,
} }
if (!oob) { if (!oob) {
ooballoc = malloc(oob_size); ooballoc = malloc(oob_size);
if (ooballoc) if (!ooballoc)
return ERROR_NAND_OPERATION_FAILED; return ERROR_NAND_OPERATION_FAILED;
oob = ooballoc; oob = ooballoc;
memset(oob, 0x0ff, oob_size); memset(oob, 0x0ff, oob_size);