yaffsfs.c: Fix NULL dereference in yaffs_unmount2_reldev()
[yaffs2.git] / patches / yaffs_mtdif2.c
index 019142b4e1e475f952825dcd315050946ee4bde3..c817a3ad32a33c39d0fb6cdf5f207d742fdf1ed0 100644 (file)
@@ -1,8 +1,7 @@
 /*
  * YAFFS: Yet another FFS. A NAND-flash specific file system. 
  *
- * Copyright (C) 2002-2010 Aleph One Ltd.
- *   for Toby Churchill Ltd and Brightstar Engineering
+ * Copyright (C) 2002-2018 Aleph One Ltd.
  *
  * Created by Charles Manning <charles@aleph1.co.uk>
  *
@@ -28,7 +27,7 @@ const char *yaffs_mtdif2_c_version =
 #include "yaffs_packedtags2.h"
 
 
-void nandmtd2_pt2buf(yaffs_dev_t *dev, yaffs_PackedTags2 *pt, int is_raw)
+void nandmtd2_pt2buf(struct yaffs_dev *dev, yaffs_PackedTags2 *pt, int is_raw)
 {
        struct mtd_info *mtd = (struct mtd_info *)(dev->genericDevice);
        u8 *ptab = (u8 *)pt; /* packed tags as bytes */
@@ -48,7 +47,7 @@ void nandmtd2_pt2buf(yaffs_dev_t *dev, yaffs_PackedTags2 *pt, int is_raw)
 
                if (n == 0) {
                        T(YAFFS_TRACE_ERROR, (TSTR("No OOB space for tags" TENDSTR)));
-                       YBUG();
+                       BUG();
                }
 
                for (i = 0; i < sizeof(yaffs_PackedTags2); i++) {
@@ -58,7 +57,7 @@ void nandmtd2_pt2buf(yaffs_dev_t *dev, yaffs_PackedTags2 *pt, int is_raw)
                                n = mtd->oobinfo.oobfree[j][1];
                                if (n == 0) {
                                        T(YAFFS_TRACE_ERROR, (TSTR("No OOB space for tags" TENDSTR)));
-                                       YBUG();
+                                       BUG();
                                }
                        }
                        dev->spareBuffer[k] = ptab[i];
@@ -69,7 +68,7 @@ void nandmtd2_pt2buf(yaffs_dev_t *dev, yaffs_PackedTags2 *pt, int is_raw)
 
 }
 
-void nandmtd2_buf2pt(yaffs_dev_t *dev, yaffs_PackedTags2 *pt, int is_raw)
+void nandmtd2_buf2pt(struct yaffs_dev *dev, yaffs_PackedTags2 *pt, int is_raw)
 {
        struct mtd_info *mtd = (struct mtd_info *)(dev->genericDevice);
        int     i, j = 0, k, n;
@@ -86,7 +85,7 @@ void nandmtd2_buf2pt(yaffs_dev_t *dev, yaffs_PackedTags2 *pt, int is_raw)
 
                if (n == 0) {
                        T(YAFFS_TRACE_ERROR, (TSTR("No space in OOB for tags" TENDSTR)));
-                       YBUG();
+                       BUG();
                }
 
                for (i = 0; i < sizeof(yaffs_PackedTags2); i++) {
@@ -96,7 +95,7 @@ void nandmtd2_buf2pt(yaffs_dev_t *dev, yaffs_PackedTags2 *pt, int is_raw)
                                n = mtd->oobinfo.oobfree[j][1];
                                if (n == 0) {
                                        T(YAFFS_TRACE_ERROR, (TSTR("No space in OOB for tags" TENDSTR)));
-                                       YBUG();
+                                       BUG();
                                }
                        }
                        ptab[i] = dev->spareBuffer[k];
@@ -107,9 +106,9 @@ void nandmtd2_buf2pt(yaffs_dev_t *dev, yaffs_PackedTags2 *pt, int is_raw)
                
 }
 
-int nandmtd2_WriteChunkWithTagsToNAND(yaffs_dev_t * dev, int nand_chunk,
+int nandmtd2_WriteChunkWithTagsToNAND(struct yaffs_dev * dev, int nand_chunk,
                                      const u8 * data,
-                                     const yaffs_ext_tags * tags)
+                                     const struct yaffs_ext_tags * tags)
 {
        struct mtd_info *mtd = (struct mtd_info *)(dev->genericDevice);
        size_t dummy;
@@ -140,7 +139,7 @@ int nandmtd2_WriteChunkWithTagsToNAND(yaffs_dev_t * dev, int nand_chunk,
                T(YAFFS_TRACE_ALWAYS,
                  (TSTR
                  ("Write chunk with null tags or data!" TENDSTR)));
-               YBUG();
+               BUG();
        }
 
        if (retval == 0)
@@ -149,8 +148,8 @@ int nandmtd2_WriteChunkWithTagsToNAND(yaffs_dev_t * dev, int nand_chunk,
                return YAFFS_FAIL;
 }
 
-int nandmtd2_ReadChunkWithTagsFromNAND(yaffs_dev_t * dev, int nand_chunk,
-                                      u8 * data, yaffs_ext_tags * tags)
+int nandmtd2_ReadChunkWithTagsFromNAND(struct yaffs_dev * dev, int nand_chunk,
+                                      u8 * data, struct yaffs_ext_tags * tags)
 {
        struct mtd_info *mtd = (struct mtd_info *)(dev->genericDevice);
        size_t dummy;
@@ -193,7 +192,7 @@ int nandmtd2_ReadChunkWithTagsFromNAND(yaffs_dev_t * dev, int nand_chunk,
                return YAFFS_FAIL;
 }
 
-int nandmtd2_MarkNANDBlockBad(struct yaffs_dev_s *dev, int block_no)
+int nandmtd2_MarkNANDBlockBad(struct yaffs_dev *dev, int block_no)
 {
        struct mtd_info *mtd = (struct mtd_info *)(dev->genericDevice);
        int retval;
@@ -212,8 +211,8 @@ int nandmtd2_MarkNANDBlockBad(struct yaffs_dev_s *dev, int block_no)
 
 }
 
-int nandmtd2_QueryNANDBlock(struct yaffs_dev_s *dev, int block_no,
-                           yaffs_block_state_t * state, int *seq_number)
+int nandmtd2_QueryNANDBlock(struct yaffs_dev *dev, int block_no,
+                           enum yaffs_block_state * state, int *seq_number)
 {
        struct mtd_info *mtd = (struct mtd_info *)(dev->genericDevice);
        int retval;
@@ -231,7 +230,7 @@ int nandmtd2_QueryNANDBlock(struct yaffs_dev_s *dev, int block_no,
                *state = YAFFS_BLOCK_STATE_DEAD;
                *seq_number = 0;
        } else {
-               yaffs_ext_tags t;
+               struct yaffs_ext_tags t;
                nandmtd2_ReadChunkWithTagsFromNAND(dev,
                                                   block_no *
                                                   dev->chunks_per_block, NULL,