Re: [PATCH] ubifs: Fix build errors as symbol undefined

From: Richard Weinberger
Date: Mon Nov 21 2022 - 03:00:16 EST


----- Ursprüngliche Mail -----
> Von: "Lihua" <hucool.lihua@xxxxxxxxxx>
> An: "richard" <richard@xxxxxx>
> CC: "Sascha Hauer" <s.hauer@xxxxxxxxxxxxxx>, "linux-mtd" <linux-mtd@xxxxxxxxxxxxxxxxxxx>, "linux-kernel"
> <linux-kernel@xxxxxxxxxxxxxxx>, "Wei Yongjun" <weiyongjun1@xxxxxxxxxx>, "yusongping" <yusongping@xxxxxxxxxx>
> 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.

Thanks,
//richard