All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org,
	Dan Streetman <dan.streetman@canonical.com>,
	Dan Streetman <ddstreet@ieee.org>,
	Steffen Klassert <steffen.klassert@secunet.com>
Subject: [PATCH 4.1 100/127] xfrm: dst_entries_init() per-net dst_ops
Date: Wed, 27 Jan 2016 10:14:24 -0800	[thread overview]
Message-ID: <20160127180810.654160025@linuxfoundation.org> (raw)
In-Reply-To: <20160127180805.624425994@linuxfoundation.org>

4.1-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Dan Streetman <dan.streetman@canonical.com>

[ Upstream commit a8a572a6b5f2a79280d6e302cb3c1cb1fbaeb3e8 ]

Remove the dst_entries_init/destroy calls for xfrm4 and xfrm6 dst_ops
templates; their dst_entries counters will never be used.  Move the
xfrm dst_ops initialization from the common xfrm/xfrm_policy.c to
xfrm4/xfrm4_policy.c and xfrm6/xfrm6_policy.c, and call dst_entries_init
and dst_entries_destroy for each net namespace.

The ipv4 and ipv6 xfrms each create dst_ops template, and perform
dst_entries_init on the templates.  The template values are copied to each
net namespace's xfrm.xfrm*_dst_ops.  The problem there is the dst_ops
pcpuc_entries field is a percpu counter and cannot be used correctly by
simply copying it to another object.

The result of this is a very subtle bug; changes to the dst entries
counter from one net namespace may sometimes get applied to a different
net namespace dst entries counter.  This is because of how the percpu
counter works; it has a main count field as well as a pointer to the
percpu variables.  Each net namespace maintains its own main count
variable, but all point to one set of percpu variables.  When any net
namespace happens to change one of the percpu variables to outside its
small batch range, its count is moved to the net namespace's main count
variable.  So with multiple net namespaces operating concurrently, the
dst_ops entries counter can stray from the actual value that it should
be; if counts are consistently moved from one net namespace to another
(which my testing showed is likely), then one net namespace winds up
with a negative dst_ops count while another winds up with a continually
increasing count, eventually reaching its gc_thresh limit, which causes
all new traffic on the net namespace to fail with -ENOBUFS.

Signed-off-by: Dan Streetman <dan.streetman@canonical.com>
Signed-off-by: Dan Streetman <ddstreet@ieee.org>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/ipv4/xfrm4_policy.c |   46 +++++++++++++++++++++++++++++++++--------
 net/ipv6/xfrm6_policy.c |   53 ++++++++++++++++++++++++++++++++++--------------
 net/xfrm/xfrm_policy.c  |   38 ----------------------------------
 3 files changed, 75 insertions(+), 62 deletions(-)

--- a/net/ipv4/xfrm4_policy.c
+++ b/net/ipv4/xfrm4_policy.c
@@ -230,7 +230,7 @@ static void xfrm4_dst_ifdown(struct dst_
 	xfrm_dst_ifdown(dst, dev);
 }
 
-static struct dst_ops xfrm4_dst_ops = {
+static struct dst_ops xfrm4_dst_ops_template = {
 	.family =		AF_INET,
 	.gc =			xfrm4_garbage_collect,
 	.update_pmtu =		xfrm4_update_pmtu,
@@ -244,7 +244,7 @@ static struct dst_ops xfrm4_dst_ops = {
 
 static struct xfrm_policy_afinfo xfrm4_policy_afinfo = {
 	.family = 		AF_INET,
-	.dst_ops =		&xfrm4_dst_ops,
+	.dst_ops =		&xfrm4_dst_ops_template,
 	.dst_lookup =		xfrm4_dst_lookup,
 	.get_saddr =		xfrm4_get_saddr,
 	.decode_session =	_decode_session4,
@@ -266,7 +266,7 @@ static struct ctl_table xfrm4_policy_tab
 	{ }
 };
 
-static int __net_init xfrm4_net_init(struct net *net)
+static int __net_init xfrm4_net_sysctl_init(struct net *net)
 {
 	struct ctl_table *table;
 	struct ctl_table_header *hdr;
@@ -294,7 +294,7 @@ err_alloc:
 	return -ENOMEM;
 }
 
-static void __net_exit xfrm4_net_exit(struct net *net)
+static void __net_exit xfrm4_net_sysctl_exit(struct net *net)
 {
 	struct ctl_table *table;
 
@@ -306,12 +306,44 @@ static void __net_exit xfrm4_net_exit(st
 	if (!net_eq(net, &init_net))
 		kfree(table);
 }
+#else /* CONFIG_SYSCTL */
+static int inline xfrm4_net_sysctl_init(struct net *net)
+{
+	return 0;
+}
+
+static void inline xfrm4_net_sysctl_exit(struct net *net)
+{
+}
+#endif
+
+static int __net_init xfrm4_net_init(struct net *net)
+{
+	int ret;
+
+	memcpy(&net->xfrm.xfrm4_dst_ops, &xfrm4_dst_ops_template,
+	       sizeof(xfrm4_dst_ops_template));
+	ret = dst_entries_init(&net->xfrm.xfrm4_dst_ops);
+	if (ret)
+		return ret;
+
+	ret = xfrm4_net_sysctl_init(net);
+	if (ret)
+		dst_entries_destroy(&net->xfrm.xfrm4_dst_ops);
+
+	return ret;
+}
+
+static void __net_exit xfrm4_net_exit(struct net *net)
+{
+	xfrm4_net_sysctl_exit(net);
+	dst_entries_destroy(&net->xfrm.xfrm4_dst_ops);
+}
 
 static struct pernet_operations __net_initdata xfrm4_net_ops = {
 	.init	= xfrm4_net_init,
 	.exit	= xfrm4_net_exit,
 };
-#endif
 
 static void __init xfrm4_policy_init(void)
 {
@@ -320,13 +352,9 @@ static void __init xfrm4_policy_init(voi
 
 void __init xfrm4_init(void)
 {
-	dst_entries_init(&xfrm4_dst_ops);
-
 	xfrm4_state_init();
 	xfrm4_policy_init();
 	xfrm4_protocol_init();
-#ifdef CONFIG_SYSCTL
 	register_pernet_subsys(&xfrm4_net_ops);
-#endif
 }
 
--- a/net/ipv6/xfrm6_policy.c
+++ b/net/ipv6/xfrm6_policy.c
@@ -289,7 +289,7 @@ static void xfrm6_dst_ifdown(struct dst_
 	xfrm_dst_ifdown(dst, dev);
 }
 
-static struct dst_ops xfrm6_dst_ops = {
+static struct dst_ops xfrm6_dst_ops_template = {
 	.family =		AF_INET6,
 	.gc =			xfrm6_garbage_collect,
 	.update_pmtu =		xfrm6_update_pmtu,
@@ -303,7 +303,7 @@ static struct dst_ops xfrm6_dst_ops = {
 
 static struct xfrm_policy_afinfo xfrm6_policy_afinfo = {
 	.family =		AF_INET6,
-	.dst_ops =		&xfrm6_dst_ops,
+	.dst_ops =		&xfrm6_dst_ops_template,
 	.dst_lookup =		xfrm6_dst_lookup,
 	.get_saddr =		xfrm6_get_saddr,
 	.decode_session =	_decode_session6,
@@ -336,7 +336,7 @@ static struct ctl_table xfrm6_policy_tab
 	{ }
 };
 
-static int __net_init xfrm6_net_init(struct net *net)
+static int __net_init xfrm6_net_sysctl_init(struct net *net)
 {
 	struct ctl_table *table;
 	struct ctl_table_header *hdr;
@@ -364,7 +364,7 @@ err_alloc:
 	return -ENOMEM;
 }
 
-static void __net_exit xfrm6_net_exit(struct net *net)
+static void __net_exit xfrm6_net_sysctl_exit(struct net *net)
 {
 	struct ctl_table *table;
 
@@ -376,24 +376,52 @@ static void __net_exit xfrm6_net_exit(st
 	if (!net_eq(net, &init_net))
 		kfree(table);
 }
+#else /* CONFIG_SYSCTL */
+static int inline xfrm6_net_sysctl_init(struct net *net)
+{
+	return 0;
+}
+
+static void inline xfrm6_net_sysctl_exit(struct net *net)
+{
+}
+#endif
+
+static int __net_init xfrm6_net_init(struct net *net)
+{
+	int ret;
+
+	memcpy(&net->xfrm.xfrm6_dst_ops, &xfrm6_dst_ops_template,
+	       sizeof(xfrm6_dst_ops_template));
+	ret = dst_entries_init(&net->xfrm.xfrm6_dst_ops);
+	if (ret)
+		return ret;
+
+	ret = xfrm6_net_sysctl_init(net);
+	if (ret)
+		dst_entries_destroy(&net->xfrm.xfrm6_dst_ops);
+
+	return ret;
+}
+
+static void __net_exit xfrm6_net_exit(struct net *net)
+{
+	xfrm6_net_sysctl_exit(net);
+	dst_entries_destroy(&net->xfrm.xfrm6_dst_ops);
+}
 
 static struct pernet_operations xfrm6_net_ops = {
 	.init	= xfrm6_net_init,
 	.exit	= xfrm6_net_exit,
 };
-#endif
 
 int __init xfrm6_init(void)
 {
 	int ret;
 
-	dst_entries_init(&xfrm6_dst_ops);
-
 	ret = xfrm6_policy_init();
-	if (ret) {
-		dst_entries_destroy(&xfrm6_dst_ops);
+	if (ret)
 		goto out;
-	}
 	ret = xfrm6_state_init();
 	if (ret)
 		goto out_policy;
@@ -402,9 +430,7 @@ int __init xfrm6_init(void)
 	if (ret)
 		goto out_state;
 
-#ifdef CONFIG_SYSCTL
 	register_pernet_subsys(&xfrm6_net_ops);
-#endif
 out:
 	return ret;
 out_state:
@@ -416,11 +442,8 @@ out_policy:
 
 void xfrm6_fini(void)
 {
-#ifdef CONFIG_SYSCTL
 	unregister_pernet_subsys(&xfrm6_net_ops);
-#endif
 	xfrm6_protocol_fini();
 	xfrm6_policy_fini();
 	xfrm6_state_fini();
-	dst_entries_destroy(&xfrm6_dst_ops);
 }
--- a/net/xfrm/xfrm_policy.c
+++ b/net/xfrm/xfrm_policy.c
@@ -2806,7 +2806,6 @@ static struct neighbour *xfrm_neigh_look
 
 int xfrm_policy_register_afinfo(struct xfrm_policy_afinfo *afinfo)
 {
-	struct net *net;
 	int err = 0;
 	if (unlikely(afinfo == NULL))
 		return -EINVAL;
@@ -2837,26 +2836,6 @@ int xfrm_policy_register_afinfo(struct x
 	}
 	spin_unlock(&xfrm_policy_afinfo_lock);
 
-	rtnl_lock();
-	for_each_net(net) {
-		struct dst_ops *xfrm_dst_ops;
-
-		switch (afinfo->family) {
-		case AF_INET:
-			xfrm_dst_ops = &net->xfrm.xfrm4_dst_ops;
-			break;
-#if IS_ENABLED(CONFIG_IPV6)
-		case AF_INET6:
-			xfrm_dst_ops = &net->xfrm.xfrm6_dst_ops;
-			break;
-#endif
-		default:
-			BUG();
-		}
-		*xfrm_dst_ops = *afinfo->dst_ops;
-	}
-	rtnl_unlock();
-
 	return err;
 }
 EXPORT_SYMBOL(xfrm_policy_register_afinfo);
@@ -2892,22 +2871,6 @@ int xfrm_policy_unregister_afinfo(struct
 }
 EXPORT_SYMBOL(xfrm_policy_unregister_afinfo);
 
-static void __net_init xfrm_dst_ops_init(struct net *net)
-{
-	struct xfrm_policy_afinfo *afinfo;
-
-	rcu_read_lock();
-	afinfo = rcu_dereference(xfrm_policy_afinfo[AF_INET]);
-	if (afinfo)
-		net->xfrm.xfrm4_dst_ops = *afinfo->dst_ops;
-#if IS_ENABLED(CONFIG_IPV6)
-	afinfo = rcu_dereference(xfrm_policy_afinfo[AF_INET6]);
-	if (afinfo)
-		net->xfrm.xfrm6_dst_ops = *afinfo->dst_ops;
-#endif
-	rcu_read_unlock();
-}
-
 static int xfrm_dev_event(struct notifier_block *this, unsigned long event, void *ptr)
 {
 	struct net_device *dev = netdev_notifier_info_to_dev(ptr);
@@ -3056,7 +3019,6 @@ static int __net_init xfrm_net_init(stru
 	rv = xfrm_policy_init(net);
 	if (rv < 0)
 		goto out_policy;
-	xfrm_dst_ops_init(net);
 	rv = xfrm_sysctl_init(net);
 	if (rv < 0)
 		goto out_sysctl;

  parent reply	other threads:[~2016-01-27 19:17 UTC|newest]

Thread overview: 132+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-27 18:12 [PATCH 4.1 000/127] 4.1.17-stable review Greg Kroah-Hartman
2016-01-27 18:12 ` [PATCH 4.1 001/127] x86/mpx: Fix instruction decoder condition Greg Kroah-Hartman
2016-01-27 18:12 ` [PATCH 4.1 002/127] x86/signal: Fix restart_syscall number for x32 tasks Greg Kroah-Hartman
2016-01-27 18:12 ` [PATCH 4.1 003/127] xen/gntdev: Grant maps should not be subject to NUMA balancing Greg Kroah-Hartman
2016-01-27 18:12 ` [PATCH 4.1 004/127] x86/xen: dont reset vcpu_info on a cancelled suspend Greg Kroah-Hartman
2016-01-27 18:12 ` [PATCH 4.1 006/127] KVM: svm: unconditionally intercept #DB Greg Kroah-Hartman
2016-01-27 18:12 ` [PATCH 4.1 007/127] KVM: PPC: Book3S HV: Prohibit setting illegal transaction state in MSR Greg Kroah-Hartman
2016-01-27 18:12 ` [PATCH 4.1 008/127] KVM: x86: expose MSR_TSC_AUX to userspace Greg Kroah-Hartman
2016-01-27 18:12 ` [PATCH 4.1 009/127] KVM: x86: correctly print #AC in traces Greg Kroah-Hartman
2016-01-27 18:12 ` [PATCH 4.1 010/127] x86/reboot/quirks: Add iMac10,1 to pci_reboot_dmi_table[] Greg Kroah-Hartman
2016-01-27 18:12 ` [PATCH 4.1 011/127] x86/boot: Double BOOT_HEAP_SIZE to 64KB Greg Kroah-Hartman
2016-01-27 18:12 ` [PATCH 4.1 012/127] x86/mm: Add barriers and document switch_mm()-vs-flush synchronization Greg Kroah-Hartman
2016-01-27 18:12   ` Greg Kroah-Hartman
2016-01-27 18:12 ` [PATCH 4.1 013/127] x86/mm: Improve switch_mm() barrier comments Greg Kroah-Hartman
2016-01-27 18:12 ` [PATCH 4.1 014/127] ipmi: Start the timer and thread on internal msgs Greg Kroah-Hartman
2016-01-27 18:12 ` [PATCH 4.1 015/127] ipmi: move timer init to before irq is setup Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 016/127] ALSA: hda - Disable 64bit address for Creative HDA controllers Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 017/127] ALSA: hda - Add Intel Lewisburg device IDs Audio Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 018/127] ALSA: hda - Apply pin fixup for HP ProBook 6550b Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 019/127] ALSA: fireworks/bebob/oxfw/dice: enable to make as built-in Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 020/127] ALSA: hda - Apply HP headphone fixups more generically Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 021/127] ALSA: hda - Add fixup for Acer Aspire One Cloudbook 14 Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 022/127] ALSA: hda - Fix noise on Gigabyte Z170X mobo Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 023/127] ALSA: rme96: Fix unexpected volume reset after rate changes Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 024/127] ALSA: hda - Add inverted dmic for Packard Bell DOTS Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 025/127] ALSA: hda - Fix noise problems on Thinkpad T440s Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 026/127] ALSA: hda - Add a fixup for Thinkpad X1 Carbon 2nd Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 027/127] ALSA: hda - Apply click noise workaround for Thinkpads generically Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 028/127] ALSA: hda - Set codec to D3 at reboot/shutdown on Thinkpads Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 029/127] ALSA: usb-audio: Add a more accurate volume quirk for AudioQuest DragonFly Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 030/127] ALSA: usb-audio: Add sample rate inquiry " Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 031/127] ALSA: hda - Set SKL+ hda controller power at freeze() and thaw() Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 032/127] ALSA: hda/realtek - Fix silent headphone output on MacPro 4,1 (v2) Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 033/127] ALSA: usb: Add native DSD support for Oppo HA-1 Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 034/127] ALSA: seq: Fix missing NULL check at remove_events ioctl Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 035/127] ALSA: seq: Fix race at timer setup and close Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 036/127] ALSA: hda - Fix white noise on Dell Latitude E5550 Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 037/127] ALSA: usb-audio: Fix mixer ctl regression of Native Instrument devices Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 038/127] ALSA: timer: Harden slave timer list handling Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 039/127] ALSA: hda - fix the headset mic detection problem for a Dell laptop Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 040/127] ALSA: timer: Fix race among timer ioctls Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 041/127] ALSA: timer: Fix double unlink of active_list Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 042/127] ALSA: seq: Fix snd_seq_call_port_info_ioctl in compat mode Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 043/127] ALSA: pcm: Fix snd_pcm_hw_params struct copy " Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 044/127] ALSA: hrtimer: Fix stall by hrtimer_cancel() Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 045/127] ALSA: control: Avoid kernel warnings from tlv ioctl with numid 0 Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 046/127] ALSA: hda - Fix bass pin fixup for ASUS N550JX Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 047/127] ALSA: hda - Flush the pending probe work at remove Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 048/127] ALSA: timer: Handle disconnection more safely Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 049/127] ASoC: rsnd: fixup SCU_SYS_INT_EN1 address Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 050/127] ASoC: wm8962: correct addresses for HPF_C_0/1 Greg Kroah-Hartman
2016-01-27 18:13   ` Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 051/127] ASoC: es8328: Fix deemphasis values Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 052/127] ASoC: wm8974: set cache type for regmap Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 053/127] ASoC: davinci-mcasp: Fix XDATA check in mcasp_start_tx Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 054/127] ASoC: arizona: Fix bclk for sample rates that are multiple of 4kHz Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 055/127] ASoC: compress: Fix compress device direction check Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 056/127] usb: xhci: fix config fail of FS hub behind a HS hub with MTT Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 057/127] [media] airspy: increase USB control message buffer size Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 058/127] USB: fix invalid memory access in hub_activate() Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 059/127] USB: ipaq.c: fix a timeout loop Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 060/127] USB: cp210x: add ID for ELV Marble Sound Board 1 Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 061/127] xhci: refuse loading if nousb is used Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 063/127] ipv6/addrlabel: fix ip6addrlbl_get() Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 064/127] addrconf: always initialize sysctl table data Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 066/127] sctp: sctp should release assoc when sctp_make_abort_user return NULL in sctp_close Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 067/127] connector: bump skb->users before callback invocation Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 068/127] unix: properly account for FDs passed over unix sockets Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 069/127] bridge: Only call /sbin/bridge-stp for the initial network namespace Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 070/127] net: filter: make JITs zero A for SKF_AD_ALU_XOR_X Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 071/127] net: sched: fix missing free per cpu on qstats Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 072/127] net: possible use after free in dst_release Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 073/127] vxlan: fix test which detect duplicate vxlan iface Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 074/127] net: sctp: prevent writes to cookie_hmac_alg from accessing invalid memory Greg Kroah-Hartman
2016-01-27 18:13 ` [PATCH 4.1 075/127] ipv6: tcp: add rcu locking in tcp_v6_send_synack() Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 076/127] tcp_yeah: dont set ssthresh below 2 Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 077/127] udp: disallow UFO for sockets with SO_NO_CHECK option Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 078/127] net: preserve IP control block during GSO segmentation Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 079/127] bonding: Prevent IPv6 link local address on enslaved devices Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 080/127] phonet: properly unshare skbs in phonet_rcv() Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 081/127] net: bpf: reject invalid shifts Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 082/127] ipv6: update skb->csum when CE mark is propagated Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 083/127] bridge: fix lockdep addr_list_lock false positive splat Greg Kroah-Hartman
2016-01-27 18:14   ` [Bridge] " Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 084/127] tcp/dccp: fix timewait races in timer handling Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 086/127] isdn_ppp: Add checks for allocation failure in isdn_ppp_open() Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 088/127] batman-adv: Avoid recursive call_rcu for batadv_bla_claim Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 089/127] batman-adv: Avoid recursive call_rcu for batadv_nc_node Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 090/127] batman-adv: Drop immediate batadv_orig_ifinfo free function Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 091/127] batman-adv: Drop immediate batadv_neigh_node " Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 092/127] batman-adv: Drop immediate neigh_ifinfo " Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 093/127] batman-adv: Drop immediate batadv_hard_iface " Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 094/127] batman-adv: Drop immediate orig_node " Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 095/127] team: Replace rcu_read_lock with a mutex in team_vlan_rx_kill_vid Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 096/127] sctp: Prevent soft lockup when sctp_accept() is called during a timeout event Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 097/127] xen-netback: respect user provided max_queues Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 098/127] xen-netfront: " Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 099/127] xen-netfront: update num_queues to real created Greg Kroah-Hartman
2016-01-27 18:14 ` Greg Kroah-Hartman [this message]
2016-01-27 18:14 ` [PATCH 4.1 101/127] powerpc/tm: Block signal return setting invalid MSR state Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 102/127] powerpc/tm: Check for already reclaimed tasks Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 103/127] powerpc/powernv: pr_warn_once on unsupported OPAL_MSG type Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 104/127] powerpc: Make value-returning atomics fully ordered Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 105/127] powerpc: Make {cmp}xchg* and their atomic_ versions " Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 106/127] scripts/recordmcount.pl: support data in text section on powerpc Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 107/127] powerpc/module: Handle R_PPC64_ENTRY relocations Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 108/127] recordmcount: arm64: Replace the ignored mcount call into nop Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 109/127] arm64: bpf: fix div-by-zero case Greg Kroah-Hartman
2016-01-27 18:14   ` Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 110/127] arm64: bpf: fix mod-by-zero case Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 111/127] arm64: mm: use correct mapping granularity under DEBUG_RODATA Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 112/127] arm64: kernel: pause/unpause function graph tracer in cpu_suspend() Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 113/127] ARM/arm64: KVM: test properly for a PTEs uncachedness Greg Kroah-Hartman
2016-02-01 11:03   ` Christoffer Dall
2016-01-27 18:14 ` [PATCH 4.1 114/127] arm64: KVM: Fix AArch32 to AArch64 register mapping Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 115/127] arm64: fix building without CONFIG_UID16 Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 116/127] ARM/arm64: KVM: correct PTE uncachedness check Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 117/127] arm64: Clear out any singlestep state on a ptrace detach operation Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 118/127] arm64: mm: ensure that the zero page is visible to the page table walker Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 120/127] parisc iommu: fix panic due to trying to allocate too large region Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 121/127] HID: core: Avoid uninitialized buffer access Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 122/127] staging: lustre: echo_copy.._lsm() dereferences userland pointers directly Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 124/127] direct-io: Fix negative return from dio read beyond eof Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 125/127] fix the regression from "direct-io: Fix negative return from dio read beyond eof" Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 126/127] mn10300: Select CONFIG_HAVE_UID16 to fix build failure Greg Kroah-Hartman
2016-01-27 18:14 ` [PATCH 4.1 127/127] arm64: restore bogomips information in /proc/cpuinfo Greg Kroah-Hartman
2016-01-27 23:28 ` [PATCH 4.1 000/127] 4.1.17-stable review Shuah Khan
2016-01-28  2:14 ` Guenter Roeck
2016-01-28  2:18   ` Guenter Roeck
2016-01-28  8:17   ` Ard Biesheuvel
2016-01-31 19:20     ` Greg Kroah-Hartman
2016-01-31 19:21   ` Greg Kroah-Hartman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160127180810.654160025@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=dan.streetman@canonical.com \
    --cc=ddstreet@ieee.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=steffen.klassert@secunet.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.