[PATCH] mtd: Replace the expert mode symbols with a single helper

Geert Uytterhoeven geert at linux-m68k.org
Thu Jan 27 04:01:18 PST 2022


Hi Miquel,

On Thu, Jan 27, 2022 at 12:08 PM Miquel Raynal
<miquel.raynal at bootlin.com> wrote:
> Reduce the number of exported symbols by replacing:
> - mtd_expert_analysis_warning (the error string)
> - mtd_expert_analysis_mode (the boolean)
> with a single helper:
> - mtd_check_expert_analysis_mode
>
> Calling this helper will both check/return the content of the internal
> boolean -which is not exported anymore- and as well WARN_ONCE() the
> user.
>
> While on this function, make the error string local to the helper and
> set it const.
>
> Update all the consumers.
>
> Suggested-by: Geert Uytterhoeven <geert at linux-m68k.org>
> Signed-off-by: Miquel Raynal <miquel.raynal at bootlin.com>

Thanks for your patch!

> --- a/drivers/mtd/mtdcore.c
> +++ b/drivers/mtd/mtdcore.c
> @@ -358,6 +358,19 @@ static int mtd_partname_debug_show(struct seq_file *s, void *p)
>
>  DEFINE_SHOW_ATTRIBUTE(mtd_partname_debug);
>
> +static bool mtd_expert_analysis_mode;
> +
> +bool mtd_check_expert_analysis_mode(void)
> +{
> +       const char *mtd_expert_analysis_warning =
> +               "Bad block checks have been entirely disabled.\n"
> +               "This is only reserved for post-mortem forensics and debug purposes.\n"
> +               "Never enable this mode if you do not know what you are doing!\n";
> +
> +       return WARN_ONCE(mtd_expert_analysis_mode, mtd_expert_analysis_warning);
> +}
> +EXPORT_SYMBOL_GPL(mtd_check_expert_analysis_mode);

Please put this inside #ifndef CONFIG_DEBUG_FS, as it wastes
176 bytes for the message, and probably the same for the WARN_ONCE(),
for production kernels.

> +
>  static struct dentry *dfs_dir_mtd;
>
>  static void mtd_debugfs_populate(struct mtd_info *mtd)

> --- a/include/linux/mtd/mtd.h
> +++ b/include/linux/mtd/mtd.h
> @@ -711,7 +711,6 @@ static inline int mtd_is_bitflip_or_eccerr(int err) {
>
>  unsigned mtd_mmap_capabilities(struct mtd_info *mtd);
>
> -extern char *mtd_expert_analysis_warning;
> -extern bool mtd_expert_analysis_mode;
> +bool mtd_check_expert_analysis_mode(void);

#ifdef CONFIG_DEBUG_FS
bool mtd_check_expert_analysis_mode(void);
#else
static inline bool mtd_check_expert_analysis_mode(void) { return false; }
#endif

>
>  #endif /* __MTD_MTD_H__ */

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds



More information about the linux-mtd mailing list