Re: [PATCH] zstd: Fix definition of assert()

From: Nick Terrell
Date: Fri Mar 03 2023 - 01:31:29 EST




> On Jan 29, 2023, at 5:14 AM, Jonathan Neuschäfer <j.neuschaefer@xxxxxxx> wrote:
>
> !-------------------------------------------------------------------|
> This Message Is From an External Sender
>
> |-------------------------------------------------------------------!
>
> assert(x) should emit a warning if x is false. WARN_ON(x) emits a
> warning if x is true. Thus, assert(x) should be defined as WARN_ON(!x)
> rather than WARN_ON(x).
>
> Signed-off-by: Jonathan Neuschäfer <j.neuschaefer@xxxxxxx>

Hi Jonathan,

I have to apologize, I just submitted my branch for a PR and I realize that
while I intended to take your patch, I took a different equivalent patch. So
I wanted to say thanks for sending the patch!

> ---
>
> Commit e0c1b49f5b674 ("lib: zstd: Upgrade to latest upstream zstd
> version 1.4.10") mentions that the zstd code was generated from the
> upstream version of zstd, so perhaps the definition of assert based on
> WARN_ON should be fixed in the conversion script and/or upstream zstd
> source code.

Yeah, we need to fix it upstream, so if you would like to submit the upstream PR
the file is contrib/linux-kernel/zstd_deps.h [0]. Otherwise, I will update it before
the next import.

Best,
Nick Terrell

[0] https://github.com/facebook/zstd/blob/dev/contrib/linux-kernel/zstd_deps.h

> ---
> lib/zstd/common/zstd_deps.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lib/zstd/common/zstd_deps.h b/lib/zstd/common/zstd_deps.h
> index 7a5bf44839c9c..f06df065dec01 100644
> --- a/lib/zstd/common/zstd_deps.h
> +++ b/lib/zstd/common/zstd_deps.h
> @@ -84,7 +84,7 @@ static uint64_t ZSTD_div64(uint64_t dividend, uint32_t divisor) {
>
> #include <linux/kernel.h>
>
> -#define assert(x) WARN_ON((x))
> +#define assert(x) WARN_ON(!(x))
>
> #endif /* ZSTD_DEPS_ASSERT */
> #endif /* ZSTD_DEPS_NEED_ASSERT */
> --
> 2.39.0
>

<<attachment: winmail.dat>>