[PATCH] ubifs: Fix build errors as symbol undefined

Richard Weinberger richard at nod.at
Mon Nov 21 00:00:02 PST 2022

----- Ursprüngliche Mail -----
> Von: "Lihua" <hucool.lihua at huawei.com>
> An: "richard" <richard at nod.at>
> CC: "Sascha Hauer" <s.hauer at pengutronix.de>, "linux-mtd" <linux-mtd at lists.infradead.org>, "linux-kernel"
> <linux-kernel at vger.kernel.org>, "Wei Yongjun" <weiyongjun1 at huawei.com>, "yusongping" <yusongping at huawei.com>
> Gesendet: Montag, 21. November 2022 02:54:53
> Betreff: Re: [PATCH] ubifs: Fix build errors as symbol undefined

> You can verify it with the config in the attachment. TKS :D

Thanks for your .config, I was able to identify the problem.
When CONFIG_CC_OPTIMIZE_FOR_SIZE is set the compiler does not optimize this construct:

        err = ubifs_node_check_hash(c, buf, zbr->hash);
        if (err) {
                ubifs_bad_hash(c, buf, zbr->hash, lnum, offs);
                return 0;

With CONFIG_UBIFS_FS_AUTHENTICATION not set, the compiler can assume that
ubifs_node_check_hash() is never true and drops the call to ubifs_bad_hash().
Is CONFIG_CC_OPTIMIZE_FOR_SIZE enabled this optimization does not happen anymore.

So we need a no-op ubifs_bad_hash() for the CONFIG_UBIFS_FS_AUTHENTICATION=n case.


More information about the linux-mtd mailing list