Message ID | 20230718085119.3885747-3-wangzhaolong1@huawei.com |
---|---|
State | Superseded |
Headers | show |
Series | ubi: Enhanced fault injection capability for the UBI driver | expand |
在 2023/7/18 16:51, ZhaoLong Wang 写道: > The emulate_io_failures debugfs entry controls both write > failure and erase failure. This patch split io_failures > to write_failure and erase_failure. > > Signed-off-by: ZhaoLong Wang <wangzhaolong1@huawei.com> > --- > drivers/mtd/ubi/debug.c | 13 +++++++++---- > drivers/mtd/ubi/debug.h | 14 ++++++++------ > 2 files changed, 17 insertions(+), 10 deletions(-) > > diff --git a/drivers/mtd/ubi/debug.c b/drivers/mtd/ubi/debug.c > index 9ca584da32c6..7826bc8166e8 100644 > --- a/drivers/mtd/ubi/debug.c > +++ b/drivers/mtd/ubi/debug.c > @@ -14,7 +14,8 @@ > > #ifdef CONFIG_MTD_UBI_FAULT_INJECTION > static DECLARE_FAULT_ATTR(fault_bitflips_attr); > -static DECLARE_FAULT_ATTR(fault_io_failures_attr); > +static DECLARE_FAULT_ATTR(fault_write_failure_attr); > +static DECLARE_FAULT_ATTR(fault_erase_failure_attr); > static DECLARE_FAULT_ATTR(fault_power_cut_attr); > > #define FAIL_ACTION(name, fault_attr) \ > @@ -24,7 +25,8 @@ bool should_fail_##name(void) \ > } > > FAIL_ACTION(bitflips, fault_bitflips_attr) > -FAIL_ACTION(io_failures, fault_io_failures_attr) > +FAIL_ACTION(write_failure, fault_write_failure_attr) > +FAIL_ACTION(erase_failure, fault_erase_failure_attr) > FAIL_ACTION(power_cut, fault_power_cut_attr) > #endif > > @@ -245,8 +247,11 @@ static void dfs_create_fault_entry(struct dentry *parent) > fault_create_debugfs_attr("emulate_bitflips", dir, > &fault_bitflips_attr); > > - fault_create_debugfs_attr("emulate_io_failures", dir, > - &fault_io_failures_attr); > + fault_create_debugfs_attr("emulate_write_failure", dir, > + &fault_write_failure_attr); > + > + fault_create_debugfs_attr("emulate_erase_failure", dir, > + &fault_erase_failure_attr); > > fault_create_debugfs_attr("emulate_power_cut", dir, > &fault_power_cut_attr); > diff --git a/drivers/mtd/ubi/debug.h b/drivers/mtd/ubi/debug.h > index fc4234c9a90a..6bc698b38e35 100644 > --- a/drivers/mtd/ubi/debug.h > +++ b/drivers/mtd/ubi/debug.h > @@ -92,10 +92,12 @@ static inline int ubi_dbg_erase_failure(const struct ubi_device *ubi) > /* Emulate bit-flips */ > #define MASK_BITFLIPS (1 << 3) > /* Emulates -EIO during write/erase */ > -#define MASK_IO_FAILURE (1 << 4) > +#define MASK_WRITE_FAILURE (1 << 4) > +#define MASK_ERASE_FAILURE (1 << 5) > > extern bool should_fail_bitflips(void); > -extern bool should_fail_io_failures(void); > +extern bool should_fail_write_failure(void); > +extern bool should_fail_erase_failure(void); > extern bool should_fail_power_cut(void); > > static inline bool ubi_dbg_fail_bitflip(const struct ubi_device *ubi) > @@ -107,15 +109,15 @@ static inline bool ubi_dbg_fail_bitflip(const struct ubi_device *ubi) > > static inline bool ubi_dbg_fail_write(const struct ubi_device *ubi) > { > - if (ubi->dbg.emulate_failures & MASK_IO_FAILURE) > - return should_fail_io_failures(); > + if (ubi->dbg.emulate_failures & MASK_WRITE_FAILURE) > + return should_fail_write_failure(); > return false; > } > > static inline bool ubi_dbg_fail_erase(const struct ubi_device *ubi) > { > - if (ubi->dbg.emulate_failures & MASK_IO_FAILURE) > - return should_fail_io_failures(); > + if (ubi->dbg.emulate_failures & MASK_ERASE_FAILURE) > + return should_fail_erase_failure(); > return false; > } > > Reviewed-by: Zhihao Cheng <chengzhihao1@huawei.com>
diff --git a/drivers/mtd/ubi/debug.c b/drivers/mtd/ubi/debug.c index 9ca584da32c6..7826bc8166e8 100644 --- a/drivers/mtd/ubi/debug.c +++ b/drivers/mtd/ubi/debug.c @@ -14,7 +14,8 @@ #ifdef CONFIG_MTD_UBI_FAULT_INJECTION static DECLARE_FAULT_ATTR(fault_bitflips_attr); -static DECLARE_FAULT_ATTR(fault_io_failures_attr); +static DECLARE_FAULT_ATTR(fault_write_failure_attr); +static DECLARE_FAULT_ATTR(fault_erase_failure_attr); static DECLARE_FAULT_ATTR(fault_power_cut_attr); #define FAIL_ACTION(name, fault_attr) \ @@ -24,7 +25,8 @@ bool should_fail_##name(void) \ } FAIL_ACTION(bitflips, fault_bitflips_attr) -FAIL_ACTION(io_failures, fault_io_failures_attr) +FAIL_ACTION(write_failure, fault_write_failure_attr) +FAIL_ACTION(erase_failure, fault_erase_failure_attr) FAIL_ACTION(power_cut, fault_power_cut_attr) #endif @@ -245,8 +247,11 @@ static void dfs_create_fault_entry(struct dentry *parent) fault_create_debugfs_attr("emulate_bitflips", dir, &fault_bitflips_attr); - fault_create_debugfs_attr("emulate_io_failures", dir, - &fault_io_failures_attr); + fault_create_debugfs_attr("emulate_write_failure", dir, + &fault_write_failure_attr); + + fault_create_debugfs_attr("emulate_erase_failure", dir, + &fault_erase_failure_attr); fault_create_debugfs_attr("emulate_power_cut", dir, &fault_power_cut_attr); diff --git a/drivers/mtd/ubi/debug.h b/drivers/mtd/ubi/debug.h index fc4234c9a90a..6bc698b38e35 100644 --- a/drivers/mtd/ubi/debug.h +++ b/drivers/mtd/ubi/debug.h @@ -92,10 +92,12 @@ static inline int ubi_dbg_erase_failure(const struct ubi_device *ubi) /* Emulate bit-flips */ #define MASK_BITFLIPS (1 << 3) /* Emulates -EIO during write/erase */ -#define MASK_IO_FAILURE (1 << 4) +#define MASK_WRITE_FAILURE (1 << 4) +#define MASK_ERASE_FAILURE (1 << 5) extern bool should_fail_bitflips(void); -extern bool should_fail_io_failures(void); +extern bool should_fail_write_failure(void); +extern bool should_fail_erase_failure(void); extern bool should_fail_power_cut(void); static inline bool ubi_dbg_fail_bitflip(const struct ubi_device *ubi) @@ -107,15 +109,15 @@ static inline bool ubi_dbg_fail_bitflip(const struct ubi_device *ubi) static inline bool ubi_dbg_fail_write(const struct ubi_device *ubi) { - if (ubi->dbg.emulate_failures & MASK_IO_FAILURE) - return should_fail_io_failures(); + if (ubi->dbg.emulate_failures & MASK_WRITE_FAILURE) + return should_fail_write_failure(); return false; } static inline bool ubi_dbg_fail_erase(const struct ubi_device *ubi) { - if (ubi->dbg.emulate_failures & MASK_IO_FAILURE) - return should_fail_io_failures(); + if (ubi->dbg.emulate_failures & MASK_ERASE_FAILURE) + return should_fail_erase_failure(); return false; }
The emulate_io_failures debugfs entry controls both write failure and erase failure. This patch split io_failures to write_failure and erase_failure. Signed-off-by: ZhaoLong Wang <wangzhaolong1@huawei.com> --- drivers/mtd/ubi/debug.c | 13 +++++++++---- drivers/mtd/ubi/debug.h | 14 ++++++++------ 2 files changed, 17 insertions(+), 10 deletions(-)