git: b12c6876b429 - stable/14 - Fix geom build with clang 17 and KTR enabled

From: Dimitry Andric <dim_at_FreeBSD.org>
Date: Wed, 20 Sep 2023 07:04:32 UTC
The branch stable/14 has been updated by dim:

URL: https://cgit.FreeBSD.org/src/commit/?id=b12c6876b4294922175442c9206cd4e34819533b

commit b12c6876b4294922175442c9206cd4e34819533b
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2023-09-12 06:52:31 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2023-09-20 07:03:55 +0000

    Fix geom build with clang 17 and KTR enabled
    
    When building a kernel with clang 17 and KTR enabled, such as with the
    LINT configurations, a -Werror warning is emitted:
    
        sys/geom/geom_io.c:145:31: error: use of logical '&&' with constant operand [-Werror,-Wconstant-logical-operand]
          145 |         if ((KTR_COMPILE & KTR_GEOM) && (ktr_mask & KTR_GEOM)) {
              |             ~~~~~~~~~~~~~~~~~~~~~~~~ ^
        sys/geom/geom_io.c:145:31: note: use '&' for a bitwise operation
          145 |         if ((KTR_COMPILE & KTR_GEOM) && (ktr_mask & KTR_GEOM)) {
              |                                      ^~
              |                                      &
        sys/geom/geom_io.c:145:31: note: remove constant to silence this warning
    
    Replace the multiple uses of the expression with one macro, and in this
    macro use "!= 0" to get a logical operand instead of a bitwise one.
    
    Reviewed by:    jhb
    MFC after:      3 days
    Differential Revision: https://reviews.freebsd.org/D41823
    
    (cherry picked from commit 479d224efcbf0115f8cd84314fcc46cbac146a1d)
---
 sys/geom/geom_io.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/sys/geom/geom_io.c b/sys/geom/geom_io.c
index 2acf08517222..da8f917686ff 100644
--- a/sys/geom/geom_io.c
+++ b/sys/geom/geom_io.c
@@ -68,6 +68,9 @@
 #include <vm/vm_extern.h>
 #include <vm/vm_map.h>
 
+#define KTR_GEOM_ENABLED \
+    ((KTR_COMPILE & KTR_GEOM) != 0 && (ktr_mask & KTR_GEOM) != 0)
+
 static int	g_io_transient_map_bio(struct bio *bp);
 
 static struct g_bioq g_bio_run_down;
@@ -142,7 +145,7 @@ g_new_bio(void)
 
 	bp = uma_zalloc(biozone, M_NOWAIT | M_ZERO);
 #ifdef KTR
-	if ((KTR_COMPILE & KTR_GEOM) && (ktr_mask & KTR_GEOM)) {
+	if (KTR_GEOM_ENABLED) {
 		struct stack st;
 
 		CTR1(KTR_GEOM, "g_new_bio(): %p", bp);
@@ -160,7 +163,7 @@ g_alloc_bio(void)
 
 	bp = uma_zalloc(biozone, M_WAITOK | M_ZERO);
 #ifdef KTR
-	if ((KTR_COMPILE & KTR_GEOM) && (ktr_mask & KTR_GEOM)) {
+	if (KTR_GEOM_ENABLED) {
 		struct stack st;
 
 		CTR1(KTR_GEOM, "g_alloc_bio(): %p", bp);
@@ -175,7 +178,7 @@ void
 g_destroy_bio(struct bio *bp)
 {
 #ifdef KTR
-	if ((KTR_COMPILE & KTR_GEOM) && (ktr_mask & KTR_GEOM)) {
+	if (KTR_GEOM_ENABLED) {
 		struct stack st;
 
 		CTR1(KTR_GEOM, "g_destroy_bio(): %p", bp);
@@ -220,7 +223,7 @@ g_clone_bio(struct bio *bp)
 		bp->bio_children++;
 	}
 #ifdef KTR
-	if ((KTR_COMPILE & KTR_GEOM) && (ktr_mask & KTR_GEOM)) {
+	if (KTR_GEOM_ENABLED) {
 		struct stack st;
 
 		CTR2(KTR_GEOM, "g_clone_bio(%p): %p", bp, bp2);
@@ -249,7 +252,7 @@ g_duplicate_bio(struct bio *bp)
 	bp2->bio_attribute = bp->bio_attribute;
 	bp->bio_children++;
 #ifdef KTR
-	if ((KTR_COMPILE & KTR_GEOM) && (ktr_mask & KTR_GEOM)) {
+	if (KTR_GEOM_ENABLED) {
 		struct stack st;
 
 		CTR2(KTR_GEOM, "g_duplicate_bio(%p): %p", bp, bp2);