Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e1ca87bb authored by David S. Miller's avatar David S. Miller
Browse files


John W. Linville says:

====================
Please pull this batch of fixes intende for the 3.13 stream!

For the mac80211 bits, Johannes says:

"For now I have various fixes all over, mostly for issues introduced in
relatively recent patches. There's no real pattern to it. Some of the
issues like go back longer, but still seemed 3.13 material."

And...

"These are just two patches disabling the broken CSA code. Once this
goes into your tree I'll merge it into mac80211-next and revert there
(since we fixed the bugs there)."

For the iwlwifi bits, Emmanuel says:

"I have here a few fixes for BT Coex. One of them is a NULL pointer
dereference. Another one avoids to enable a feature that can make the
firmware unhappy since the firmware isn't ready for it yet. WE also
avoid a WARNING that can be triggered upon association in not-so-bad
cases even if the association succeeded. We add support for new NICs
(not yet on the market) and bump the API so that 3.13 will be able to
work with the new firmware that will be out soon hopefully.
I also have a boundary check from Johannes."

In addition to those...

- Arend van Spriel fixes a brcmfmac problem that could use an
uninitialized variable in an error path.

- Borislav Petkov fixes a Kconfig-based build breakage problem for
brcmsmac.

- Michal Nazarewicz fixes a couple of NULL pointer dereference problems
in ath9k and wcn36xx.

- Sujith Manoharan fixes a couple of ath9k problems related to
incorrect interpretation of EEPROM configuration data.

- Ujjal Roy fixes a memory leak in mwifiex.
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 988bf4f0 aa489f0f
Loading
Loading
Loading
Loading
+12 −10
Original line number Diff line number Diff line
@@ -3984,12 +3984,13 @@ static void ar9003_hw_quick_drop_apply(struct ath_hw *ah, u16 freq)
	int quick_drop;
	s32 t[3], f[3] = {5180, 5500, 5785};

	if (!(pBase->miscConfiguration & BIT(1)))
	if (!(pBase->miscConfiguration & BIT(4)))
		return;

	if (freq < 4000)
	if (AR_SREV_9300(ah) || AR_SREV_9580(ah) || AR_SREV_9340(ah)) {
		if (freq < 4000) {
			quick_drop = eep->modalHeader2G.quick_drop;
	else {
		} else {
			t[0] = eep->base_ext1.quick_drop_low;
			t[1] = eep->modalHeader5G.quick_drop;
			t[2] = eep->base_ext1.quick_drop_high;
@@ -3997,6 +3998,7 @@ static void ar9003_hw_quick_drop_apply(struct ath_hw *ah, u16 freq)
		}
		REG_RMW_FIELD(ah, AR_PHY_AGC, AR_PHY_AGC_QUICK_DROP, quick_drop);
	}
}

static void ar9003_hw_txend_to_xpa_off_apply(struct ath_hw *ah, bool is2ghz)
{
@@ -4035,7 +4037,7 @@ static void ar9003_hw_xlna_bias_strength_apply(struct ath_hw *ah, bool is2ghz)
	struct ar9300_eeprom *eep = &ah->eeprom.ar9300_eep;
	u8 bias;

	if (!(eep->baseEepHeader.featureEnable & 0x40))
	if (!(eep->baseEepHeader.miscConfiguration & 0x40))
		return;

	if (!AR_SREV_9300(ah))
+3 −4
Original line number Diff line number Diff line
@@ -146,10 +146,9 @@ static void ath9k_hw_set_clockrate(struct ath_hw *ah)
	else
		clockrate = ATH9K_CLOCK_RATE_5GHZ_OFDM;

	if (chan) {
		if (IS_CHAN_HT40(chan))
			clockrate *= 2;

	if (ah->curchan) {
		if (IS_CHAN_HALF_RATE(chan))
			clockrate /= 2;
		if (IS_CHAN_QUARTER_RATE(chan))
+13 −6
Original line number Diff line number Diff line
@@ -2041,13 +2041,20 @@ static void wcn36xx_smd_rsp_process(struct wcn36xx *wcn, void *buf, size_t len)
	case WCN36XX_HAL_DELETE_STA_CONTEXT_IND:
		mutex_lock(&wcn->hal_ind_mutex);
		msg_ind = kmalloc(sizeof(*msg_ind), GFP_KERNEL);
		if (msg_ind) {
			msg_ind->msg_len = len;
			msg_ind->msg = kmalloc(len, GFP_KERNEL);
			memcpy(msg_ind->msg, buf, len);
			list_add_tail(&msg_ind->list, &wcn->hal_ind_queue);
			queue_work(wcn->hal_ind_wq, &wcn->hal_ind_work);
			wcn36xx_dbg(WCN36XX_DBG_HAL, "indication arrived\n");
		}
		mutex_unlock(&wcn->hal_ind_mutex);
		if (msg_ind)
			break;
		/* FIXME: Do something smarter then just printing an error. */
		wcn36xx_err("Run out of memory while handling SMD_EVENT (%d)\n",
			    msg_header->msg_type);
		break;
	default:
		wcn36xx_err("SMD_EVENT (%d) not supported\n",
+2 −0
Original line number Diff line number Diff line
@@ -5,6 +5,8 @@ config BRCMSMAC
	tristate "Broadcom IEEE802.11n PCIe SoftMAC WLAN driver"
	depends on MAC80211
	depends on BCMA
	select NEW_LEDS if BCMA_DRIVER_GPIO
	select LEDS_CLASS if BCMA_DRIVER_GPIO
	select BRCMUTIL
	select FW_LOADER
	select CRC_CCITT
+2 −0
Original line number Diff line number Diff line
@@ -109,6 +109,8 @@ static inline int brcmf_sdioh_f0_write_byte(struct brcmf_sdio_dev *sdiodev,
					brcmf_err("Disable F2 failed:%d\n",
						  err_ret);
			}
		} else {
			err_ret = -ENOENT;
		}
	} else if ((regaddr == SDIO_CCCR_ABORT) ||
		   (regaddr == SDIO_CCCR_IENx)) {
Loading