Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 31 Jan 2020 13:13:45 -0800
From:      Conrad Meyer <cem@freebsd.org>
To:        Dimitry Andric <dim@freebsd.org>
Cc:        src-committers <src-committers@freebsd.org>, svn-src-all <svn-src-all@freebsd.org>,  svn-src-head <svn-src-head@freebsd.org>
Subject:   Re: svn commit: r357349 - in head/sys: conf modules/tpm
Message-ID:  <CAG6CVpWy%2BA3MN47GyLoL5jvdT7pMABevg-L9w0o7HpZF9Vq5oQ@mail.gmail.com>
In-Reply-To: <202001311936.00VJaEDP056807@repo.freebsd.org>
References:  <202001311936.00VJaEDP056807@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi Dimitry,

Do you think maybe the intent is to use ~TPM_CRB_CTRL_CANCEL_CMD
instead?  Plain "0" might also make sense.  But I think the compiler
is right here and the warning should not be disabled =E2=80=94 !BIT(foo)
doesn't really make sense for a register.  It happens to affect the
right bit only because CANCEL_CMD is BIT(0).

Thanks,
Conrad

On Fri, Jan 31, 2020 at 11:36 AM Dimitry Andric <dim@freebsd.org> wrote:
>
> Author: dim
> Date: Fri Jan 31 19:36:14 2020
> New Revision: 357349
> URL: https://svnweb.freebsd.org/changeset/base/357349
>
> Log:
>   Merge r357348 from the clang 10.0.0 import branch:
>
>   Disable new clang 10.0.0 warnings about converting the result of shift
>   operations to a boolean in tpm(4):
>
>   sys/dev/tpm/tpm_crb.c:301:32: error: converting the result of '<<' to a=
 boolean; did you mean '(1 << (0)) !=3D 0'? [-Werror,-Wint-in-bool-context]
>           WR4(sc, TPM_CRB_CTRL_CANCEL, !TPM_CRB_CTRL_CANCEL_CMD);
>                                         ^
>   sys/dev/tpm/tpm_crb.c:73:34: note: expanded from macro 'TPM_CRB_CTRL_CA=
NCEL_CMD'
>   #define TPM_CRB_CTRL_CANCEL_CMD         BIT(0)
>                                           ^
>   sys/dev/tpm/tpm20.h:60:19: note: expanded from macro 'BIT'
>   #define BIT(x) (1 << (x))
>                     ^
>
>   Such warnings can be useful in C++ contexts, but not so much in kernel
>   drivers, where this type of bit twiddling is commonplace.  So disable i=
t
>   for this case.
>
>   MFC after:    3 days
>
> Modified:
>   head/sys/conf/files.amd64
>   head/sys/conf/kern.mk
>   head/sys/modules/tpm/Makefile
> Directory Properties:
>   head/   (props changed)
>
> Modified: head/sys/conf/files.amd64
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/sys/conf/files.amd64   Fri Jan 31 19:35:21 2020        (r357348)
> +++ head/sys/conf/files.amd64   Fri Jan 31 19:36:14 2020        (r357349)
> @@ -323,7 +323,8 @@ dev/syscons/scvesactl.c             optional        s=
c vga vesa
>  dev/syscons/scvgarndr.c                optional        sc vga
>  dev/tpm/tpm.c                  optional        tpm
>  dev/tpm/tpm20.c                optional        tpm
> -dev/tpm/tpm_crb.c              optional        tpm acpi
> +dev/tpm/tpm_crb.c              optional        tpm acpi \
> +       compile-with "${NORMAL_C} ${NO_WINT_IN_BOOL_CONTEXT}"
>  dev/tpm/tpm_tis.c              optional        tpm acpi
>  dev/tpm/tpm_acpi.c             optional        tpm acpi
>  dev/tpm/tpm_isa.c              optional        tpm isa
>
> Modified: head/sys/conf/kern.mk
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/sys/conf/kern.mk       Fri Jan 31 19:35:21 2020        (r357348)
> +++ head/sys/conf/kern.mk       Fri Jan 31 19:36:14 2020        (r357349)
> @@ -37,6 +37,9 @@ CWARNEXTRA+=3D  -Wno-error-shift-negative-value
>  .if ${COMPILER_VERSION} >=3D 40000
>  CWARNEXTRA+=3D   -Wno-address-of-packed-member
>  .endif
> +.if ${COMPILER_VERSION} >=3D 100000
> +NO_WINT_IN_BOOL_CONTEXT=3D       -Wno-int-in-bool-context
> +.endif
>  .endif
>
>  .if ${COMPILER_TYPE} =3D=3D "gcc"
>
> Modified: head/sys/modules/tpm/Makefile
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/sys/modules/tpm/Makefile       Fri Jan 31 19:35:21 2020        (=
r357348)
> +++ head/sys/modules/tpm/Makefile       Fri Jan 31 19:36:14 2020        (=
r357349)
> @@ -11,3 +11,5 @@ SRCS+=3D        tpm_isa.c tpm_acpi.c isa_if.h opt_acpi.=
h acpi_i
>  SRCS+=3D tpm20.c tpm_crb.c tpm_tis.c opt_tpm.h
>
>  .include <bsd.kmod.mk>
> +
> +CWARNFLAGS.tpm_crb.c+=3D ${NO_WINT_IN_BOOL_CONTEXT}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAG6CVpWy%2BA3MN47GyLoL5jvdT7pMABevg-L9w0o7HpZF9Vq5oQ>