Hey,

I am running Fedora Core 22 which has a recent GCC:
gcc (GCC) 5.1.1 20150618 (Red Hat 5.1.1-4)

and I end up with bunch of compilation errors in ipxe:

LD] bin/ath9k_ar9003_phy.o
drivers/net/ath/ath9k/ath9k_ar9003_phy.c: In function ‘ar9003_hw_ani_control’:
drivers/net/ath/ath9k/ath9k_ar9003_phy.c:862:11: error: logical not is only 
applied to the left hand side of comparison [-Werror=logical-not-parentheses]
   if (!on != aniState->ofdmWeakSigDetectOff) {
           ^
drivers/net/ath/ath9k/ath9k_ar9003_phy.c:1016:14: error: logical not is only 
applied to the left hand side of comparison [-Werror=logical-not-parentheses]
   if (!is_on != aniState->mrcCCKOff) {
              ^
cc1: all warnings being treated as errors
bin/rules/drivers/net/ath/ath9k/ath9k_ar9003_phy.c.r:3: recipe for target 
'bin/ath9k_ar9003_phy.o' 


Looking at ipxe.git tree I see that we are 1307 patches behind!

And for example commit 1b56452121672e6408c38ac8926bdd6998a39004
ath9k] Remove confusing logic inversion in an ANI variable
fixes the build.

(attached)

I don't think we can rev ipxe.git to the latest in Xen 4.6 time-frame.
But having that patch should help with compile issues, like mine.

So how do we want to fix this in 4.6 time-frame? And 4.7 time-frame? Rev up
to ipxe.git master?

>From 1b56452121672e6408c38ac8926bdd6998a39004 Mon Sep 17 00:00:00 2001
From: Christian Hesse <m...@eworm.de>
Date: Thu, 23 Apr 2015 13:33:26 +0200
Subject: [PATCH] [ath9k] Remove confusing logic inversion in an ANI variable

This changed in Linux kernel the same way in commit 7067e701
("ath9k_hw: remove confusing logic inversion in an ANI variable") by
Felix Fietkau.

Additionally this fixes "error: logical not is only applied to the
left hand side of comparison" with GCC 5.1.0.

Signed-off-by: Christian Hesse <m...@eworm.de>
Signed-off-by: Michael Brown <mc...@ipxe.org>
---
 src/drivers/net/ath/ath9k/ani.h              |  2 +-
 src/drivers/net/ath/ath9k/ath9k_ani.c        | 16 ++++++++--------
 src/drivers/net/ath/ath9k/ath9k_ar5008_phy.c | 18 +++++++++---------
 src/drivers/net/ath/ath9k/ath9k_ar9003_phy.c | 12 ++++++------
 4 files changed, 24 insertions(+), 24 deletions(-)

diff --git a/src/drivers/net/ath/ath9k/ani.h b/src/drivers/net/ath/ath9k/ani.h
index dbd4d4d..ba87ba0 100644
--- a/src/drivers/net/ath/ath9k/ani.h
+++ b/src/drivers/net/ath/ath9k/ani.h
@@ -125,7 +125,7 @@ struct ar5416AniState {
        u8 mrcCCKOff;
        u8 spurImmunityLevel;
        u8 firstepLevel;
-       u8 ofdmWeakSigDetectOff;
+       u8 ofdmWeakSigDetect;
        u8 cckWeakSigThreshold;
        u32 listenTime;
        int32_t rssiThrLow;
diff --git a/src/drivers/net/ath/ath9k/ath9k_ani.c 
b/src/drivers/net/ath/ath9k/ath9k_ani.c
index ff7df49..76ca79c 100644
--- a/src/drivers/net/ath/ath9k/ath9k_ani.c
+++ b/src/drivers/net/ath/ath9k/ath9k_ani.c
@@ -177,7 +177,7 @@ static void ath9k_hw_ani_ofdm_err_trigger_old(struct ath_hw 
*ah)
 
        rssi = BEACON_RSSI(ah);
        if (rssi > aniState->rssiThrHigh) {
-               if (!aniState->ofdmWeakSigDetectOff) {
+               if (aniState->ofdmWeakSigDetect) {
                        if (ath9k_hw_ani_control(ah,
                                         ATH9K_ANI_OFDM_WEAK_SIGNAL_DETECTION,
                                         0)) {
@@ -192,7 +192,7 @@ static void ath9k_hw_ani_ofdm_err_trigger_old(struct ath_hw 
*ah)
                        return;
                }
        } else if (rssi > aniState->rssiThrLow) {
-               if (aniState->ofdmWeakSigDetectOff)
+               if (!aniState->ofdmWeakSigDetect)
                        ath9k_hw_ani_control(ah,
                                     ATH9K_ANI_OFDM_WEAK_SIGNAL_DETECTION,
                                     1);
@@ -202,7 +202,7 @@ static void ath9k_hw_ani_ofdm_err_trigger_old(struct ath_hw 
*ah)
                return;
        } else {
                if ((ah->dev->channels + ah->dev->channel)->band == 
NET80211_BAND_2GHZ) {
-                       if (!aniState->ofdmWeakSigDetectOff)
+                       if (aniState->ofdmWeakSigDetect)
                                ath9k_hw_ani_control(ah,
                                     ATH9K_ANI_OFDM_WEAK_SIGNAL_DETECTION,
                                     0);
@@ -360,7 +360,7 @@ static void ath9k_hw_ani_lower_immunity_old(struct ath_hw 
*ah)
        if (rssi > aniState->rssiThrHigh) {
                /* XXX: Handle me */
        } else if (rssi > aniState->rssiThrLow) {
-               if (aniState->ofdmWeakSigDetectOff) {
+               if (!aniState->ofdmWeakSigDetect) {
                        if (ath9k_hw_ani_control(ah,
                                 ATH9K_ANI_OFDM_WEAK_SIGNAL_DETECTION,
                                 1) == 1)
@@ -436,9 +436,9 @@ static void ath9k_ani_reset_old(struct ath_hw *ah)
        if (aniState->spurImmunityLevel != 0)
                ath9k_hw_ani_control(ah, ATH9K_ANI_SPUR_IMMUNITY_LEVEL,
                                     aniState->spurImmunityLevel);
-       if (aniState->ofdmWeakSigDetectOff)
+       if (!aniState->ofdmWeakSigDetect)
                ath9k_hw_ani_control(ah, ATH9K_ANI_OFDM_WEAK_SIGNAL_DETECTION,
-                                    !aniState->ofdmWeakSigDetectOff);
+                                    aniState->ofdmWeakSigDetect);
        if (aniState->cckWeakSigThreshold)
                ath9k_hw_ani_control(ah, ATH9K_ANI_CCK_WEAK_SIGNAL_THR,
                                     aniState->cckWeakSigThreshold);
@@ -709,8 +709,8 @@ void ath9k_hw_ani_init(struct ath_hw *ah)
 
                ani->rssiThrHigh = ATH9K_ANI_RSSI_THR_HIGH;
                ani->rssiThrLow = ATH9K_ANI_RSSI_THR_LOW;
-               ani->ofdmWeakSigDetectOff =
-                       !ATH9K_ANI_USE_OFDM_WEAK_SIG;
+               ani->ofdmWeakSigDetect =
+                       ATH9K_ANI_USE_OFDM_WEAK_SIG;
                ani->cckNoiseImmunityLevel = ATH9K_ANI_CCK_DEF_LEVEL;
        }
 
diff --git a/src/drivers/net/ath/ath9k/ath9k_ar5008_phy.c 
b/src/drivers/net/ath/ath9k/ath9k_ar5008_phy.c
index 60e87e9..2b6c133 100644
--- a/src/drivers/net/ath/ath9k/ath9k_ar5008_phy.c
+++ b/src/drivers/net/ath/ath9k/ath9k_ar5008_phy.c
@@ -1141,12 +1141,12 @@ static int ar5008_hw_ani_control_old(struct ath_hw *ah,
                        REG_CLR_BIT(ah, AR_PHY_SFCORR_LOW,
                                    AR_PHY_SFCORR_LOW_USE_SELF_CORR_LOW);
 
-               if (!on != aniState->ofdmWeakSigDetectOff) {
+               if (on != aniState->ofdmWeakSigDetect) {
                        if (on)
                                ah->stats.ast_ani_ofdmon++;
                        else
                                ah->stats.ast_ani_ofdmoff++;
-                       aniState->ofdmWeakSigDetectOff = !on;
+                       aniState->ofdmWeakSigDetect = on;
                }
                break;
        }
@@ -1215,10 +1215,10 @@ static int ar5008_hw_ani_control_old(struct ath_hw *ah,
 
        DBG2("ath9k: ANI parameters:\n");
        DBG2(
-               "noiseImmunityLevel=%d, spurImmunityLevel=%d, 
ofdmWeakSigDetectOff=%d\n",
+               "noiseImmunityLevel=%d, spurImmunityLevel=%d, 
ofdmWeakSigDetect=%d\n",
                aniState->noiseImmunityLevel,
                aniState->spurImmunityLevel,
-               !aniState->ofdmWeakSigDetectOff);
+               aniState->ofdmWeakSigDetect);
        DBG2(
                "cckWeakSigThreshold=%d, firstepLevel=%d, listenTime=%d\n",
                aniState->cckWeakSigThreshold,
@@ -1307,18 +1307,18 @@ static int ar5008_hw_ani_control_new(struct ath_hw *ah,
                        REG_CLR_BIT(ah, AR_PHY_SFCORR_LOW,
                                    AR_PHY_SFCORR_LOW_USE_SELF_CORR_LOW);
 
-               if (!on != aniState->ofdmWeakSigDetectOff) {
+               if (on != aniState->ofdmWeakSigDetect) {
                        DBG2("ath9k: "
                                "** ch %d: ofdm weak signal: %s=>%s\n",
                                chan->channel,
-                               !aniState->ofdmWeakSigDetectOff ?
+                               aniState->ofdmWeakSigDetect ?
                                "on" : "off",
                                on ? "on" : "off");
                        if (on)
                                ah->stats.ast_ani_ofdmon++;
                        else
                                ah->stats.ast_ani_ofdmoff++;
-                       aniState->ofdmWeakSigDetectOff = !on;
+                       aniState->ofdmWeakSigDetect = on;
                }
                break;
        }
@@ -1467,7 +1467,7 @@ static int ar5008_hw_ani_control_new(struct ath_hw *ah,
        DBG2("ath9k: "
                "ANI parameters: SI=%d, ofdmWS=%s FS=%d MRCcck=%s listenTime=%d 
ofdmErrs=%d cckErrs=%d\n",
                aniState->spurImmunityLevel,
-               !aniState->ofdmWeakSigDetectOff ? "on" : "off",
+               aniState->ofdmWeakSigDetect ? "on" : "off",
                aniState->firstepLevel,
                !aniState->mrcCCKOff ? "on" : "off",
                aniState->listenTime,
@@ -1554,7 +1554,7 @@ static void ar5008_hw_ani_cache_ini_regs(struct ath_hw 
*ah)
        /* these levels just got reset to defaults by the INI */
        aniState->spurImmunityLevel = ATH9K_ANI_SPUR_IMMUNE_LVL_NEW;
        aniState->firstepLevel = ATH9K_ANI_FIRSTEP_LVL_NEW;
-       aniState->ofdmWeakSigDetectOff = !ATH9K_ANI_USE_OFDM_WEAK_SIG;
+       aniState->ofdmWeakSigDetect = ATH9K_ANI_USE_OFDM_WEAK_SIG;
        aniState->mrcCCKOff = 1; /* not available on pre AR9003 */
 }
 
diff --git a/src/drivers/net/ath/ath9k/ath9k_ar9003_phy.c 
b/src/drivers/net/ath/ath9k/ath9k_ar9003_phy.c
index 6103040..2244b77 100644
--- a/src/drivers/net/ath/ath9k/ath9k_ar9003_phy.c
+++ b/src/drivers/net/ath/ath9k/ath9k_ar9003_phy.c
@@ -859,18 +859,18 @@ static int ar9003_hw_ani_control(struct ath_hw *ah,
                        REG_CLR_BIT(ah, AR_PHY_SFCORR_LOW,
                                    AR_PHY_SFCORR_LOW_USE_SELF_CORR_LOW);
 
-               if (!on != aniState->ofdmWeakSigDetectOff) {
+               if (on != aniState->ofdmWeakSigDetect) {
                        DBG2("ath9k: "
                                "** ch %d: ofdm weak signal: %s=>%s\n",
                                chan->channel,
-                               !aniState->ofdmWeakSigDetectOff ?
+                               aniState->ofdmWeakSigDetect ?
                                "on" : "off",
                                on ? "on" : "off");
                        if (on)
                                ah->stats.ast_ani_ofdmon++;
                        else
                                ah->stats.ast_ani_ofdmoff++;
-                       aniState->ofdmWeakSigDetectOff = !on;
+                       aniState->ofdmWeakSigDetect = on;
                }
                break;
        }
@@ -1013,7 +1013,7 @@ static int ar9003_hw_ani_control(struct ath_hw *ah,
                              AR_PHY_MRC_CCK_ENABLE, is_on);
                REG_RMW_FIELD(ah, AR_PHY_MRC_CCK_CTRL,
                              AR_PHY_MRC_CCK_MUX_REG, is_on);
-               if (!is_on != aniState->mrcCCKOff) {
+               if (!(is_on != aniState->mrcCCKOff)) {
                        DBG2("ath9k: "
                                "** ch %d: MRC CCK: %s=>%s\n",
                                chan->channel,
@@ -1037,7 +1037,7 @@ static int ar9003_hw_ani_control(struct ath_hw *ah,
        DBG2("ath9k: "
                "ANI parameters: SI=%d, ofdmWS=%s FS=%d MRCcck=%s listenTime=%d 
ofdmErrs=%d cckErrs=%d\n",
                aniState->spurImmunityLevel,
-               !aniState->ofdmWeakSigDetectOff ? "on" : "off",
+               aniState->ofdmWeakSigDetect ? "on" : "off",
                aniState->firstepLevel,
                !aniState->mrcCCKOff ? "on" : "off",
                aniState->listenTime,
@@ -1137,7 +1137,7 @@ static void ar9003_hw_ani_cache_ini_regs(struct ath_hw 
*ah)
        /* these levels just got reset to defaults by the INI */
        aniState->spurImmunityLevel = ATH9K_ANI_SPUR_IMMUNE_LVL_NEW;
        aniState->firstepLevel = ATH9K_ANI_FIRSTEP_LVL_NEW;
-       aniState->ofdmWeakSigDetectOff = !ATH9K_ANI_USE_OFDM_WEAK_SIG;
+       aniState->ofdmWeakSigDetect = ATH9K_ANI_USE_OFDM_WEAK_SIG;
        aniState->mrcCCKOff = !ATH9K_ANI_ENABLE_MRC_CCK;
 }
 
-- 
2.4.3

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to