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

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


John W. Linville says:

====================
pull request: wireless 2014-09-17

Please pull this batch of fixes intended for the 3.17 stream...

Arend van Spriel sends a trio of minor brcmfmac fixes, including a
fix for a Kconfig/build issue, a fix for a crash (null reference),
and a regression fix related to event handling on a P2P interface.

Hante Meuleman follows-up with a brcmfmac fix for a memory leak.

Johannes Stezenbach brings an ath9k_htc fix for a regression related
to hardware decryption offload.

Marcel Holtmann delivers a one-liner to properly mark a device ID
table in rfkill-gpio.
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 8400dd02 dda3b191
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -978,7 +978,7 @@ static bool ath9k_rx_prepare(struct ath9k_htc_priv *priv,
	struct ath_hw *ah = common->ah;
	struct ath_htc_rx_status *rxstatus;
	struct ath_rx_status rx_stats;
	bool decrypt_error;
	bool decrypt_error = false;

	if (skb->len < HTC_RX_FRAME_HEADER_SIZE) {
		ath_err(common, "Corrupted RX frame, dropping (len: %d)\n",
+10 −0
Original line number Diff line number Diff line
@@ -27,10 +27,17 @@ config BRCMFMAC
	  one of the bus interface support. If you choose to build a module,
	  it'll be called brcmfmac.ko.

config BRCMFMAC_PROTO_BCDC
	bool

config BRCMFMAC_PROTO_MSGBUF
	bool

config BRCMFMAC_SDIO
	bool "SDIO bus interface support for FullMAC driver"
	depends on (MMC = y || MMC = BRCMFMAC)
	depends on BRCMFMAC
	select BRCMFMAC_PROTO_BCDC
	select FW_LOADER
	default y
	---help---
@@ -42,6 +49,7 @@ config BRCMFMAC_USB
	bool "USB bus interface support for FullMAC driver"
	depends on (USB = y || USB = BRCMFMAC)
	depends on BRCMFMAC
	select BRCMFMAC_PROTO_BCDC
	select FW_LOADER
	---help---
	  This option enables the USB bus interface support for Broadcom
@@ -52,6 +60,8 @@ config BRCMFMAC_PCIE
	bool "PCIE bus interface support for FullMAC driver"
	depends on BRCMFMAC
	depends on PCI
	depends on HAS_DMA
	select BRCMFMAC_PROTO_MSGBUF
	select FW_LOADER
	---help---
	  This option enables the PCIE bus interface support for Broadcom
+6 −4
Original line number Diff line number Diff line
@@ -30,16 +30,18 @@ brcmfmac-objs += \
		fwsignal.o \
		p2p.o \
		proto.o \
		bcdc.o \
		commonring.o \
		flowring.o \
		msgbuf.o \
		dhd_common.o \
		dhd_linux.o \
		firmware.o \
		feature.o \
		btcoex.o \
		vendor.o
brcmfmac-$(CONFIG_BRCMFMAC_PROTO_BCDC) += \
		bcdc.o
brcmfmac-$(CONFIG_BRCMFMAC_PROTO_MSGBUF) += \
		commonring.o \
		flowring.o \
		msgbuf.o
brcmfmac-$(CONFIG_BRCMFMAC_SDIO) += \
		dhd_sdio.o \
		bcmsdh.o
+5 −2
Original line number Diff line number Diff line
@@ -16,9 +16,12 @@
#ifndef BRCMFMAC_BCDC_H
#define BRCMFMAC_BCDC_H


#ifdef CONFIG_BRCMFMAC_PROTO_BCDC
int brcmf_proto_bcdc_attach(struct brcmf_pub *drvr);
void brcmf_proto_bcdc_detach(struct brcmf_pub *drvr);

#else
static inline int brcmf_proto_bcdc_attach(struct brcmf_pub *drvr) { return 0; }
static inline void brcmf_proto_bcdc_detach(struct brcmf_pub *drvr) {}
#endif

#endif /* BRCMFMAC_BCDC_H */
+9 −3
Original line number Diff line number Diff line
@@ -185,7 +185,13 @@ static void brcmf_fweh_handle_if_event(struct brcmf_pub *drvr,
		  ifevent->action, ifevent->ifidx, ifevent->bssidx,
		  ifevent->flags, ifevent->role);

	if (ifevent->flags & BRCMF_E_IF_FLAG_NOIF) {
	/* The P2P Device interface event must not be ignored
	 * contrary to what firmware tells us. The only way to
	 * distinguish the P2P Device is by looking at the ifidx
	 * and bssidx received.
	 */
	if (!(ifevent->ifidx == 0 && ifevent->bssidx == 1) &&
	    (ifevent->flags & BRCMF_E_IF_FLAG_NOIF)) {
		brcmf_dbg(EVENT, "event can be ignored\n");
		return;
	}
@@ -210,12 +216,12 @@ static void brcmf_fweh_handle_if_event(struct brcmf_pub *drvr,
				return;
	}

	if (ifevent->action == BRCMF_E_IF_CHANGE)
	if (ifp && ifevent->action == BRCMF_E_IF_CHANGE)
		brcmf_fws_reset_interface(ifp);

	err = brcmf_fweh_call_event_handler(ifp, emsg->event_code, emsg, data);

	if (ifevent->action == BRCMF_E_IF_DEL) {
	if (ifp && ifevent->action == BRCMF_E_IF_DEL) {
		brcmf_fws_del_interface(ifp);
		brcmf_del_if(drvr, ifevent->bssidx);
	}
Loading