]> git.sur5r.net Git - u-boot/blobdiff - drivers/mtd/mtdpart.c
Merge branch 'master' of git://git.denx.de/u-boot-spi
[u-boot] / drivers / mtd / mtdpart.c
index cfbaa3d9a0cbbfda3e6dda66dd889a20c95aca31..f87c962205371c6491b1e992f8961027355be12f 100644 (file)
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0+
 /*
  * Simple MTD partitioning layer
  *
@@ -5,8 +6,6 @@
  * Copyright © 2002 Thomas Gleixner <gleixner@linutronix.de>
  * Copyright © 2000-2010 David Woodhouse <dwmw2@infradead.org>
  *
- * SPDX-License-Identifier:    GPL-2.0+
- *
  */
 
 #ifndef __UBOOT__
@@ -20,7 +19,7 @@
 
 #include <common.h>
 #include <malloc.h>
-#include <asm/errno.h>
+#include <linux/errno.h>
 #include <linux/compat.h>
 #include <ubi_uboot.h>
 
@@ -321,6 +320,13 @@ static void part_resume(struct mtd_info *mtd)
 }
 #endif
 
+static int part_block_isreserved(struct mtd_info *mtd, loff_t ofs)
+{
+       struct mtd_part *part = PART(mtd);
+       ofs += part->offset;
+       return part->master->_block_isreserved(part->master, ofs);
+}
+
 static int part_block_isbad(struct mtd_info *mtd, loff_t ofs)
 {
        struct mtd_part *part = PART(mtd);
@@ -459,6 +465,8 @@ static struct mtd_part *allocate_partition(struct mtd_info *master,
                slave->mtd._unlock = part_unlock;
        if (master->_is_locked)
                slave->mtd._is_locked = part_is_locked;
+       if (master->_block_isreserved)
+               slave->mtd._block_isreserved = part_block_isreserved;
        if (master->_block_isbad)
                slave->mtd._block_isbad = part_block_isbad;
        if (master->_block_markbad)