File xen.6596412d59bcde3d1a2473f341851f4c476fc9df.patch of Package xen
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Date: Mon, 24 Aug 2015 15:48:58 -0400
Subject: 6596412d59bcde3d1a2473f341851f4c476fc9df
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@oracle.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
---
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
new file mode 100644
--- /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@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 <mail@eworm.de>
+Signed-off-by: Michael Brown <mcb30@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
+
--- a/tools/firmware/etherboot/patches/series
+++ b/tools/firmware/etherboot/patches/series
@@ -1,5 +1,6 @@
boot_prompt_option.patch
build_fix_1.patch
build_fix_2.patch
build_fix_3.patch
build-compare.patch
+build_fix_4.patch