mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-22 07:01:39 +00:00
tools/env: pass bad block offset by value
the offset is not modified by linux ioctl call see mtd_ioctl{drivers/mtd/mtdchar.c} Makes the interface less ambiguous, since the caller can now exclude a modification of blockstart Signed-off-by: Andreas Fenkart <andreas.fenkart@digitalstrom.com>
This commit is contained in:
parent
e2c9351d5a
commit
c6012bbce6
1 changed files with 5 additions and 5 deletions
10
tools/env/fw_env.c
vendored
10
tools/env/fw_env.c
vendored
|
@ -661,10 +661,10 @@ off_t environment_end(int dev)
|
||||||
* > 0 - block is bad
|
* > 0 - block is bad
|
||||||
* < 0 - failed to test
|
* < 0 - failed to test
|
||||||
*/
|
*/
|
||||||
static int flash_bad_block (int fd, uint8_t mtd_type, loff_t *blockstart)
|
static int flash_bad_block(int fd, uint8_t mtd_type, loff_t blockstart)
|
||||||
{
|
{
|
||||||
if (mtd_type == MTD_NANDFLASH) {
|
if (mtd_type == MTD_NANDFLASH) {
|
||||||
int badblock = ioctl (fd, MEMGETBADBLOCK, blockstart);
|
int badblock = ioctl(fd, MEMGETBADBLOCK, &blockstart);
|
||||||
|
|
||||||
if (badblock < 0) {
|
if (badblock < 0) {
|
||||||
perror ("Cannot read bad block mark");
|
perror ("Cannot read bad block mark");
|
||||||
|
@ -674,7 +674,7 @@ static int flash_bad_block (int fd, uint8_t mtd_type, loff_t *blockstart)
|
||||||
if (badblock) {
|
if (badblock) {
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
fprintf (stderr, "Bad block at 0x%llx, skipping\n",
|
fprintf (stderr, "Bad block at 0x%llx, skipping\n",
|
||||||
(unsigned long long) *blockstart);
|
(unsigned long long)blockstart);
|
||||||
#endif
|
#endif
|
||||||
return badblock;
|
return badblock;
|
||||||
}
|
}
|
||||||
|
@ -722,7 +722,7 @@ static int flash_read_buf (int dev, int fd, void *buf, size_t count,
|
||||||
|
|
||||||
/* This only runs once on NOR flash */
|
/* This only runs once on NOR flash */
|
||||||
while (processed < count) {
|
while (processed < count) {
|
||||||
rc = flash_bad_block (fd, mtd_type, &blockstart);
|
rc = flash_bad_block(fd, mtd_type, blockstart);
|
||||||
if (rc < 0) /* block test failed */
|
if (rc < 0) /* block test failed */
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
@ -876,7 +876,7 @@ static int flash_write_buf (int dev, int fd, void *buf, size_t count,
|
||||||
|
|
||||||
/* This only runs once on NOR flash and SPI-dataflash */
|
/* This only runs once on NOR flash and SPI-dataflash */
|
||||||
while (processed < write_total) {
|
while (processed < write_total) {
|
||||||
rc = flash_bad_block (fd, mtd_type, &blockstart);
|
rc = flash_bad_block(fd, mtd_type, blockstart);
|
||||||
if (rc < 0) /* block test failed */
|
if (rc < 0) /* block test failed */
|
||||||
return rc;
|
return rc;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue