[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH v1 for v4.6] etherboot: Build fix for GCC 5.1.1



Specificially we are pulling in the upstream patch (commit
1b56452121672e6408c38ac8926bdd6998a39004)):
[ath9k] Remove confusing logic inversion in an ANI variable

Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
---
 tools/firmware/etherboot/patches/build_fix_4.patch | 225 +++++++++++++++++++++
 tools/firmware/etherboot/patches/series            |   1 +
 2 files changed, 226 insertions(+)
 create mode 100644 tools/firmware/etherboot/patches/build_fix_4.patch

diff --git a/tools/firmware/etherboot/patches/build_fix_4.patch 
b/tools/firmware/etherboot/patches/build_fix_4.patch
new file mode 100644
index 0000000..9271c8c
--- /dev/null
+++ b/tools/firmware/etherboot/patches/build_fix_4.patch
@@ -0,0 +1,225 @@
+From 1b56452121672e6408c38ac8926bdd6998a39004 Mon Sep 17 00:00:00 2001
+From: Christian Hesse <mail@xxxxxxxx>
+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 <mail@xxxxxxxx>
+Signed-off-by: Michael Brown <mcb30@xxxxxxxx>
+---
+ 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
+
diff --git a/tools/firmware/etherboot/patches/series 
b/tools/firmware/etherboot/patches/series
index 7512c14..2c39853 100644
--- a/tools/firmware/etherboot/patches/series
+++ b/tools/firmware/etherboot/patches/series
@@ -3,3 +3,4 @@ build_fix_1.patch
 build_fix_2.patch
 build_fix_3.patch
 build-compare.patch
+build_fix_4.patch
-- 
2.1.0


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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.