X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=yaffs_guts.c;h=14ab47219674ff8f5abf3fd4cb3e3228f0a5a4d8;hp=66e8c5ec41a4326e2f932aad6d6aa861b6d4ec00;hb=6c0b1f629b813db703ceac9e35822380d7f73f1f;hpb=f2515386664a31de3dd220a7d5d30145c1cd5070 diff --git a/yaffs_guts.c b/yaffs_guts.c index 66e8c5e..14ab472 100644 --- a/yaffs_guts.c +++ b/yaffs_guts.c @@ -2798,7 +2798,8 @@ static int yaffs_check_gc(struct yaffs_dev *dev, int background) int erased_chunks; int checkpt_block_adjust; - if (dev->param.gc_control && (dev->param.gc_control(dev) & 1) == 0) + if (dev->param.gc_control_fn && + (dev->param.gc_control_fn(dev) & 1) == 0) return YAFFS_OK; if (dev->gc_disable) @@ -4537,12 +4538,15 @@ static int yaffs_check_dev_fns(struct yaffs_dev *dev) struct yaffs_param *param = &dev->param; /* Common functions, gotta have */ - if (!param->drv_initialise_fn || - !param->drv_read_chunk_fn || + if (!param->drv_read_chunk_fn || !param->drv_write_chunk_fn || !param->drv_erase_fn) return 0; + if (param->is_yaffs2 && + (!param->drv_mark_bad_fn || !param->drv_check_bad_fn)) + return 0; + /* Install the default tags marshalling functions if needed. */ yaffs_tags_compat_install(dev); yaffs_tags_marshall_install(dev); @@ -4924,8 +4928,7 @@ void yaffs_deinitialise(struct yaffs_dev *dev) dev->is_mounted = 0; - if (dev->param.drv_deinitialise_fn) - dev->param.drv_deinitialise_fn(dev); + yaffs_deinit_nand(dev); } }