diff --git a/commands/nand.c b/commands/nand.c index 34aa07b..6124dae 100644 --- a/commands/nand.c +++ b/commands/nand.c @@ -79,6 +79,7 @@ if (command & NAND_MARKBAD) { if (optind < argc) { int ret = 0, fd; + loff_t __badblock = badblock; printf("marking block at 0x%08x on %s as bad\n", badblock, argv[optind]); @@ -88,7 +89,7 @@ return 1; } - ret = ioctl(fd, MEMSETBADBLOCK, (void *)badblock); + ret = ioctl(fd, MEMSETBADBLOCK, &__badblock); if (ret) perror("ioctl"); diff --git a/commands/nandtest.c b/commands/nandtest.c index d923e42..06b7f94 100644 --- a/commands/nandtest.c +++ b/commands/nandtest.c @@ -307,11 +307,11 @@ for (test_ofs = flash_offset; test_ofs < flash_offset+length; test_ofs += meminfo.erasesize) { - + loff_t __test_ofs = test_ofs; srand(seed); seed = rand(); - if (ioctl(fd, MEMGETBADBLOCK, (void *)test_ofs)) { + if (ioctl(fd, MEMGETBADBLOCK, &__test_ofs)) { printf("\rBad block at 0x%08x\n", (unsigned)(test_ofs + memregion.offset)); diff --git a/drivers/mtd/nand/nand-bb.c b/drivers/mtd/nand/nand-bb.c index d272749..5b06a9e 100644 --- a/drivers/mtd/nand/nand-bb.c +++ b/drivers/mtd/nand/nand-bb.c @@ -216,7 +216,7 @@ static loff_t nand_bb_lseek(struct cdev *cdev, loff_t __offset) { struct nand_bb *bb = cdev->priv; - unsigned long raw_pos = 0; + loff_t raw_pos = 0; uint32_t offset = __offset; int ret; @@ -226,7 +226,7 @@ while (raw_pos < bb->raw_size) { off_t now = min(offset, bb->info.erasesize); - ret = cdev_ioctl(bb->cdev_parent, MEMGETBADBLOCK, (void *)raw_pos); + ret = cdev_ioctl(bb->cdev_parent, MEMGETBADBLOCK, &raw_pos); if (ret < 0) return ret; if (!ret) {