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

Commit cce6aed4 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Merge 3.18.1 into android-3.18



Changes in 3.18.1:
	Fix race condition between vxlan_sock_add and vxlan_sock_release
	gre: Set inner mac header in gro complete
	openvswitch: Fix flow mask validation.
	mips: bpf: Fix broken BPF_MOD
	net: mvneta: fix Tx interrupt delay
	net: mvneta: fix race condition in mvneta_tx()
	net: sctp: use MAX_HEADER for headroom reserve in output path
	tcp: fix more NULL deref after prequeue changes
	xen-netfront: use correct linear area after linearizing an skb
	net: fix suspicious rcu_dereference_check in net/sched/sch_fq_codel.c
	netlink: use jhash as hashfn for rhashtable
	rtlwifi: rtl8192ce: Fix editing error that causes silent memory corruption
	rtlwifi: rtl8192ce: Fix kernel crashes due to missing callback entry
	rtlwifi: rtl8192ce: Fix missing interrupt ready flag
	move d_rcu from overlapping d_child to overlapping d_alias
	deal with deadlock in d_walk()
	ALSA: hda - Add EAPD fixup for ASUS Z99He laptop
	ALSA: hda - Fix built-in mic at resume on Lenovo Ideapad S210
	ALSA: usb-audio: Don't resubmit pending URBs at MIDI error recovery
	Linux 3.18.1

Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parents 8050490f 39ca4845
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
VERSION = 3
PATCHLEVEL = 18
SUBLEVEL = 0
SUBLEVEL = 1
EXTRAVERSION =
NAME = Shuffling Zombie Juror

+2 −2
Original line number Diff line number Diff line
@@ -426,7 +426,7 @@ static inline void emit_mod(unsigned int dst, unsigned int src,
		u32 *p = &ctx->target[ctx->idx];
		uasm_i_divu(&p, dst, src);
		p = &ctx->target[ctx->idx + 1];
		uasm_i_mflo(&p, dst);
		uasm_i_mfhi(&p, dst);
	}
	ctx->idx += 2; /* 2 insts */
}
@@ -971,7 +971,7 @@ load_ind:
			break;
		case BPF_ALU | BPF_MOD | BPF_K:
			/* A %= k */
			if (k == 1 || optimize_div(&k)) {
			if (k == 1) {
				ctx->flags |= SEEN_A;
				emit_jit_reg_move(r_A, r_zero, ctx);
			} else {
+3 −2
Original line number Diff line number Diff line
@@ -216,7 +216,7 @@
/* Various constants */

/* Coalescing */
#define MVNETA_TXDONE_COAL_PKTS		16
#define MVNETA_TXDONE_COAL_PKTS		1
#define MVNETA_RX_COAL_PKTS		32
#define MVNETA_RX_COAL_USEC		100

@@ -1721,6 +1721,7 @@ static int mvneta_tx(struct sk_buff *skb, struct net_device *dev)
	u16 txq_id = skb_get_queue_mapping(skb);
	struct mvneta_tx_queue *txq = &pp->txqs[txq_id];
	struct mvneta_tx_desc *tx_desc;
	int len = skb->len;
	int frags = 0;
	u32 tx_cmd;

@@ -1788,7 +1789,7 @@ out:

		u64_stats_update_begin(&stats->syncp);
		stats->tx_packets++;
		stats->tx_bytes  += skb->len;
		stats->tx_bytes  += len;
		u64_stats_update_end(&stats->syncp);
	} else {
		dev->stats.tx_dropped++;
+3 −7
Original line number Diff line number Diff line
@@ -1995,9 +1995,8 @@ static int vxlan_init(struct net_device *dev)
	spin_lock(&vn->sock_lock);
	vs = vxlan_find_sock(vxlan->net, ipv6 ? AF_INET6 : AF_INET,
			     vxlan->dst_port);
	if (vs) {
	if (vs && atomic_add_unless(&vs->refcnt, 1, 0)) {
		/* If we have a socket with same port already, reuse it */
		atomic_inc(&vs->refcnt);
		vxlan_vs_add_dev(vs, vxlan);
	} else {
		/* otherwise make new socket outside of RTNL */
@@ -2396,12 +2395,9 @@ struct vxlan_sock *vxlan_sock_add(struct net *net, __be16 port,

	spin_lock(&vn->sock_lock);
	vs = vxlan_find_sock(net, ipv6 ? AF_INET6 : AF_INET, port);
	if (vs) {
		if (vs->rcv == rcv)
			atomic_inc(&vs->refcnt);
		else
	if (vs && ((vs->rcv != rcv) ||
		   !atomic_add_unless(&vs->refcnt, 1, 0)))
			vs = ERR_PTR(-EBUSY);
	}
	spin_unlock(&vn->sock_lock);

	if (!vs)
+2 −1
Original line number Diff line number Diff line
@@ -1287,6 +1287,7 @@ void rtl92ce_enable_interrupt(struct ieee80211_hw *hw)

	rtl_write_dword(rtlpriv, REG_HIMR, rtlpci->irq_mask[0] & 0xFFFFFFFF);
	rtl_write_dword(rtlpriv, REG_HIMRE, rtlpci->irq_mask[1] & 0xFFFFFFFF);
	rtlpci->irq_enabled = true;
}

void rtl92ce_disable_interrupt(struct ieee80211_hw *hw)
@@ -1296,7 +1297,7 @@ void rtl92ce_disable_interrupt(struct ieee80211_hw *hw)

	rtl_write_dword(rtlpriv, REG_HIMR, IMR8190_DISABLED);
	rtl_write_dword(rtlpriv, REG_HIMRE, IMR8190_DISABLED);
	synchronize_irq(rtlpci->pdev->irq);
	rtlpci->irq_enabled = false;
}

static void _rtl92ce_poweroff_adapter(struct ieee80211_hw *hw)
Loading