linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Willy Tarreau <w@1wt.eu>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org, linux@roeck-us.net
Cc: Sabrina Dubroca <sd@queasysnail.net>,
	Cong Wang <xiyou.wangcong@gmail.com>,
	"David S . Miller" <davem@davemloft.net>,
	Mike Manning <mmanning@brocade.com>, Willy Tarreau <w@1wt.eu>
Subject: [PATCH 3.10 223/319] ipv6: fix rtnl locking in setsockopt for anycast and multicast
Date: Sun,  5 Feb 2017 20:20:45 +0100	[thread overview]
Message-ID: <1486322541-8206-124-git-send-email-w@1wt.eu> (raw)
In-Reply-To: <1486322541-8206-1-git-send-email-w@1wt.eu>

From: Sabrina Dubroca <sd@queasysnail.net>

commit a9ed4a2986e13011fcf4ed2d1a1647c53112f55b upstream.

Calling setsockopt with IPV6_JOIN_ANYCAST or IPV6_LEAVE_ANYCAST
triggers the assertion in addrconf_join_solict()/addrconf_leave_solict()

ipv6_sock_ac_join(), ipv6_sock_ac_drop(), ipv6_sock_ac_close() need to
take RTNL before calling ipv6_dev_ac_inc/dec. Same thing with
ipv6_sock_mc_join(), ipv6_sock_mc_drop(), ipv6_sock_mc_close() before
calling ipv6_dev_mc_inc/dec.

This patch moves ASSERT_RTNL() up a level in the call stack.

Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
Reported-by: Tommi Rantala <tt.rantala@gmail.com>
Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Cc: <stable@vger.kernel.org> 
Cc: <stable@vger.kernel.org> 
Cc: <stable@vger.kernel.org> 
[Mike Manning <mmanning@brocade.com>: resolved minor conflicts in addrconf.c]
Signed-off-by: Mike Manning <mmanning@brocade.com>
Signed-off-by: Willy Tarreau <w@1wt.eu>
---
 net/ipv6/addrconf.c | 15 +++++----------
 net/ipv6/anycast.c  | 12 ++++++++++++
 net/ipv6/mcast.c    | 14 ++++++++++++++
 3 files changed, 31 insertions(+), 10 deletions(-)

diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index 0f18d858..3bfd8a5 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -1697,14 +1697,12 @@ void addrconf_dad_failure(struct inet6_ifaddr *ifp)
 	in6_ifa_put(ifp);
 }
 
-/* Join to solicited addr multicast group. */
-
+/* Join to solicited addr multicast group.
+ * caller must hold RTNL */
 void addrconf_join_solict(struct net_device *dev, const struct in6_addr *addr)
 {
 	struct in6_addr maddr;
 
-	ASSERT_RTNL();
-
 	if (dev->flags&(IFF_LOOPBACK|IFF_NOARP))
 		return;
 
@@ -1712,12 +1710,11 @@ void addrconf_join_solict(struct net_device *dev, const struct in6_addr *addr)
 	ipv6_dev_mc_inc(dev, &maddr);
 }
 
+/* caller must hold RTNL */
 void addrconf_leave_solict(struct inet6_dev *idev, const struct in6_addr *addr)
 {
 	struct in6_addr maddr;
 
-	ASSERT_RTNL();
-
 	if (idev->dev->flags&(IFF_LOOPBACK|IFF_NOARP))
 		return;
 
@@ -1725,12 +1722,11 @@ void addrconf_leave_solict(struct inet6_dev *idev, const struct in6_addr *addr)
 	__ipv6_dev_mc_dec(idev, &maddr);
 }
 
+/* caller must hold RTNL */
 static void addrconf_join_anycast(struct inet6_ifaddr *ifp)
 {
 	struct in6_addr addr;
 
-	ASSERT_RTNL();
-
 	if (ifp->prefix_len == 127) /* RFC 6164 */
 		return;
 	ipv6_addr_prefix(&addr, &ifp->addr, ifp->prefix_len);
@@ -1739,12 +1735,11 @@ static void addrconf_join_anycast(struct inet6_ifaddr *ifp)
 	ipv6_dev_ac_inc(ifp->idev->dev, &addr);
 }
 
+/* caller must hold RTNL */
 static void addrconf_leave_anycast(struct inet6_ifaddr *ifp)
 {
 	struct in6_addr addr;
 
-	ASSERT_RTNL();
-
 	if (ifp->prefix_len == 127) /* RFC 6164 */
 		return;
 	ipv6_addr_prefix(&addr, &ifp->addr, ifp->prefix_len);
diff --git a/net/ipv6/anycast.c b/net/ipv6/anycast.c
index 5a80f15..c59083c 100644
--- a/net/ipv6/anycast.c
+++ b/net/ipv6/anycast.c
@@ -77,6 +77,7 @@ int ipv6_sock_ac_join(struct sock *sk, int ifindex, const struct in6_addr *addr)
 	pac->acl_next = NULL;
 	pac->acl_addr = *addr;
 
+	rtnl_lock();
 	rcu_read_lock();
 	if (ifindex == 0) {
 		struct rt6_info *rt;
@@ -137,6 +138,7 @@ int ipv6_sock_ac_join(struct sock *sk, int ifindex, const struct in6_addr *addr)
 
 error:
 	rcu_read_unlock();
+	rtnl_unlock();
 	if (pac)
 		sock_kfree_s(sk, pac, sizeof(*pac));
 	return err;
@@ -171,13 +173,17 @@ int ipv6_sock_ac_drop(struct sock *sk, int ifindex, const struct in6_addr *addr)
 
 	spin_unlock_bh(&ipv6_sk_ac_lock);
 
+	rtnl_lock();
 	rcu_read_lock();
 	dev = dev_get_by_index_rcu(net, pac->acl_ifindex);
 	if (dev)
 		ipv6_dev_ac_dec(dev, &pac->acl_addr);
 	rcu_read_unlock();
+	rtnl_unlock();
 
 	sock_kfree_s(sk, pac, sizeof(*pac));
+	if (!dev)
+		return -ENODEV;
 	return 0;
 }
 
@@ -198,6 +204,7 @@ void ipv6_sock_ac_close(struct sock *sk)
 	spin_unlock_bh(&ipv6_sk_ac_lock);
 
 	prev_index = 0;
+	rtnl_lock();
 	rcu_read_lock();
 	while (pac) {
 		struct ipv6_ac_socklist *next = pac->acl_next;
@@ -212,6 +219,7 @@ void ipv6_sock_ac_close(struct sock *sk)
 		pac = next;
 	}
 	rcu_read_unlock();
+	rtnl_unlock();
 }
 
 static void aca_put(struct ifacaddr6 *ac)
@@ -233,6 +241,8 @@ int ipv6_dev_ac_inc(struct net_device *dev, const struct in6_addr *addr)
 	struct rt6_info *rt;
 	int err;
 
+	ASSERT_RTNL();
+
 	idev = in6_dev_get(dev);
 
 	if (idev == NULL)
@@ -302,6 +312,8 @@ int __ipv6_dev_ac_dec(struct inet6_dev *idev, const struct in6_addr *addr)
 {
 	struct ifacaddr6 *aca, *prev_aca;
 
+	ASSERT_RTNL();
+
 	write_lock_bh(&idev->lock);
 	prev_aca = NULL;
 	for (aca = idev->ac_list; aca; aca = aca->aca_next) {
diff --git a/net/ipv6/mcast.c b/net/ipv6/mcast.c
index 7ba6180..cf16eb4 100644
--- a/net/ipv6/mcast.c
+++ b/net/ipv6/mcast.c
@@ -157,6 +157,7 @@ int ipv6_sock_mc_join(struct sock *sk, int ifindex, const struct in6_addr *addr)
 	mc_lst->next = NULL;
 	mc_lst->addr = *addr;
 
+	rtnl_lock();
 	rcu_read_lock();
 	if (ifindex == 0) {
 		struct rt6_info *rt;
@@ -170,6 +171,7 @@ int ipv6_sock_mc_join(struct sock *sk, int ifindex, const struct in6_addr *addr)
 
 	if (dev == NULL) {
 		rcu_read_unlock();
+		rtnl_unlock();
 		sock_kfree_s(sk, mc_lst, sizeof(*mc_lst));
 		return -ENODEV;
 	}
@@ -187,6 +189,7 @@ int ipv6_sock_mc_join(struct sock *sk, int ifindex, const struct in6_addr *addr)
 
 	if (err) {
 		rcu_read_unlock();
+		rtnl_unlock();
 		sock_kfree_s(sk, mc_lst, sizeof(*mc_lst));
 		return err;
 	}
@@ -197,6 +200,7 @@ int ipv6_sock_mc_join(struct sock *sk, int ifindex, const struct in6_addr *addr)
 	spin_unlock(&ipv6_sk_mc_lock);
 
 	rcu_read_unlock();
+	rtnl_unlock();
 
 	return 0;
 }
@@ -214,6 +218,7 @@ int ipv6_sock_mc_drop(struct sock *sk, int ifindex, const struct in6_addr *addr)
 	if (!ipv6_addr_is_multicast(addr))
 		return -EINVAL;
 
+	rtnl_lock();
 	spin_lock(&ipv6_sk_mc_lock);
 	for (lnk = &np->ipv6_mc_list;
 	     (mc_lst = rcu_dereference_protected(*lnk,
@@ -237,12 +242,15 @@ int ipv6_sock_mc_drop(struct sock *sk, int ifindex, const struct in6_addr *addr)
 			} else
 				(void) ip6_mc_leave_src(sk, mc_lst, NULL);
 			rcu_read_unlock();
+			rtnl_unlock();
+
 			atomic_sub(sizeof(*mc_lst), &sk->sk_omem_alloc);
 			kfree_rcu(mc_lst, rcu);
 			return 0;
 		}
 	}
 	spin_unlock(&ipv6_sk_mc_lock);
+	rtnl_unlock();
 
 	return -EADDRNOTAVAIL;
 }
@@ -287,6 +295,7 @@ void ipv6_sock_mc_close(struct sock *sk)
 	if (!rcu_access_pointer(np->ipv6_mc_list))
 		return;
 
+	rtnl_lock();
 	spin_lock(&ipv6_sk_mc_lock);
 	while ((mc_lst = rcu_dereference_protected(np->ipv6_mc_list,
 				lockdep_is_held(&ipv6_sk_mc_lock))) != NULL) {
@@ -313,6 +322,7 @@ void ipv6_sock_mc_close(struct sock *sk)
 		spin_lock(&ipv6_sk_mc_lock);
 	}
 	spin_unlock(&ipv6_sk_mc_lock);
+	rtnl_unlock();
 }
 
 int ip6_mc_source(int add, int omode, struct sock *sk,
@@ -830,6 +840,8 @@ int ipv6_dev_mc_inc(struct net_device *dev, const struct in6_addr *addr)
 	struct ifmcaddr6 *mc;
 	struct inet6_dev *idev;
 
+	ASSERT_RTNL();
+
 	/* we need to take a reference on idev */
 	idev = in6_dev_get(dev);
 
@@ -901,6 +913,8 @@ int __ipv6_dev_mc_dec(struct inet6_dev *idev, const struct in6_addr *addr)
 {
 	struct ifmcaddr6 *ma, **map;
 
+	ASSERT_RTNL();
+
 	write_lock_bh(&idev->lock);
 	for (map = &idev->mc_list; (ma=*map) != NULL; map = &ma->next) {
 		if (ipv6_addr_equal(&ma->mca_addr, addr)) {
-- 
2.8.0.rc2.1.gbe9624a

  parent reply	other threads:[~2017-02-05 19:52 UTC|newest]

Thread overview: 239+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-05 19:18 [PATCH 3.10 100/319] fix fault_in_multipages_...() on architectures with no-op access_ok() Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 101/319] fix memory leaks in tracing_buffers_splice_read() Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 102/319] arc: don't leak bits of kernel stack into coredump Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 103/319] Fix potential infoleak in older kernels Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 104/319] swapfile: fix memory corruption via malformed swapfile Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 105/319] coredump: fix unfreezable coredumping task Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 106/319] usb: dwc3: gadget: increment request->actual once Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 107/319] USB: validate wMaxPacketValue entries in endpoint descriptors Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 108/319] USB: fix typo in wMaxPacketSize validation Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 109/319] usb: xhci: Fix panic if disconnect Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 110/319] USB: serial: fix memleak in driver-registration error path Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 111/319] USB: kobil_sct: fix non-atomic allocation in write path Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 112/319] USB: serial: mos7720: " Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 113/319] USB: serial: mos7840: " Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 114/319] usb: renesas_usbhs: fix clearing the {BRDY,BEMP}STS condition Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 115/319] USB: change bInterval default to 10 ms Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 116/319] usb: gadget: fsl_qe_udc: signedness bug in qe_get_frame() Willy Tarreau
2017-02-05 19:18 ` [PATCH 3.10 117/319] USB: serial: cp210x: fix hardware flow-control disable Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 118/319] usb: misc: legousbtower: Fix NULL pointer deference Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 119/319] usb: gadget: function: u_ether: don't starve tx request queue Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 120/319] USB: serial: cp210x: fix tiocmget error handling Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 121/319] usb: gadget: u_ether: remove interrupt throttling Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 122/319] usb: chipidea: move the lock initialization to core file Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 123/319] Fix USB CB/CBI storage devices with CONFIG_VMAP_STACK=y Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 124/319] ALSA: rawmidi: Fix possible deadlock with virmidi registration Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 125/319] ALSA: timer: fix NULL pointer dereference in read()/ioctl() race Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 126/319] ALSA: timer: fix division by zero after SNDRV_TIMER_IOCTL_CONTINUE Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 127/319] ALSA: timer: fix NULL pointer dereference on memory allocation failure Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 128/319] ALSA: ali5451: Fix out-of-bound position reporting Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 129/319] ALSA: pcm : Call kill_fasync() in stream lock Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 130/319] zfcp: fix fc_host port_type with NPIV Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 131/319] zfcp: fix ELS/GS request&response length for hardware data router Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 132/319] zfcp: close window with unblocked rport during rport gone Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 133/319] zfcp: retain trace level for SCSI and HBA FSF response records Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 134/319] zfcp: restore: Dont use 0 to indicate invalid LUN in rec trace Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 135/319] zfcp: trace on request for open and close of WKA port Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 136/319] zfcp: restore tracing of handle for port and LUN with HBA records Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 137/319] zfcp: fix D_ID field with actual value on tracing SAN responses Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 138/319] zfcp: fix payload trace length for SAN request&response Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 139/319] zfcp: trace full payload of all SAN records (req,resp,iels) Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 140/319] scsi: zfcp: spin_lock_irqsave() is not nestable Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 141/319] scsi: mpt3sas: Fix secure erase premature termination Willy Tarreau
2017-02-06 16:21   ` Sathya Prakash Veerichetty
2017-02-06 22:26     ` Willy Tarreau
2017-02-07  6:38       ` James Bottomley
2017-02-07  6:59         ` Willy Tarreau
2017-02-07 17:02           ` James Bottomley
2017-02-07 17:12             ` Willy Tarreau
2017-02-08  6:53               ` Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 142/319] mpt2sas: " Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 143/319] scsi: megaraid_sas: Fix data integrity failure for JBOD (passthrough) devices Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 144/319] scsi: megaraid_sas: fix macro MEGASAS_IS_LOGICAL to avoid regression Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 145/319] scsi: ibmvfc: Fix I/O hang when port is not mapped Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 146/319] scsi: Fix use-after-free Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 147/319] scsi: arcmsr: Buffer overflow in arcmsr_iop_message_xfer() Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 148/319] scsi: scsi_debug: Fix memory leak if LBP enabled and module is unloaded Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 149/319] scsi: arcmsr: Send SYNCHRONIZE_CACHE command to firmware Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 150/319] ext4: validate that metadata blocks do not overlap superblock Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 151/319] ext4: avoid modifying checksum fields directly during checksum verification Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 152/319] ext4: use __GFP_NOFAIL in ext4_free_blocks() Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 153/319] ext4: reinforce check of i_dtime when clearing high fields of uid and gid Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 154/319] ext4: allow DAX writeback for hole punch Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 155/319] ext4: sanity check the block and cluster size at mount time Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 156/319] reiserfs: fix "new_insert_key may be used uninitialized ..." Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 157/319] reiserfs: Unlock superblock before calling reiserfs_quota_on_mount() Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 158/319] xfs: fix superblock inprogress check Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 159/319] libxfs: clean up _calc_dquots_per_chunk Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 160/319] btrfs: ensure that file descriptor used with subvol ioctls is a dir Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 161/319] ocfs2/dlm: fix race between convert and migration Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 162/319] ocfs2: fix start offset to ocfs2_zero_range_for_truncate() Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 163/319] ubifs: Fix assertion in layout_in_gaps() Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 164/319] ubifs: Fix xattr_names length in exit paths Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 165/319] UBIFS: Fix possible memory leak in ubifs_readdir() Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 166/319] ubifs: Abort readdir upon error Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 167/319] ubifs: Fix regression in ubifs_readdir() Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 168/319] UBI: fastmap: scrub PEB when bitflips are detected in a free PEB EC header Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 169/319] NFSv4.x: Fix a refcount leak in nfs_callback_up_net Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 170/319] NFSD: Using free_conn free connection Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 171/319] NFS: Don't drop CB requests with invalid principals Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 172/319] NFSv4: Open state recovery must account for file permission changes Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 173/319] fs/seq_file: fix out-of-bounds read Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 174/319] fs/super.c: fix race between freeze_super() and thaw_super() Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 175/319] isofs: Do not return EACCES for unknown filesystems Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 176/319] hostfs: Freeing an ERR_PTR in hostfs_fill_sb_common() Willy Tarreau
2017-02-05 19:19 ` [PATCH 3.10 177/319] driver core: Delete an unnecessary check before the function call "put_device" Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 178/319] driver core: fix race between creating/querying glue dir and its cleanup Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 179/319] drm/radeon: fix radeon_move_blit on 32bit systems Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 180/319] drm: Reject page_flip for !DRIVER_MODESET Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 181/319] drm/radeon: Ensure vblank interrupt is enabled on DPMS transition to on Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 182/319] qxl: check for kmap failures Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 183/319] Input: i8042 - break load dependency between atkbd/psmouse and i8042 Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 184/319] Input: i8042 - set up shared ps2_cmd_mutex for AUX ports Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 185/319] Input: ili210x - fix permissions on "calibrate" attribute Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 186/319] hwrng: exynos - Disable runtime PM on probe failure Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 187/319] hwrng: omap - Fix assumption that runtime_get_sync will always succeed Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 188/319] hwrng: omap - Only fail if pm_runtime_get_sync returns < 0 Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 189/319] i2c-eg20t: fix race between i2c init and interrupt enable Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 190/319] em28xx-i2c: rt_mutex_trylock() returns zero on failure Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 191/319] i2c: core: fix NULL pointer dereference under race condition Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 192/319] i2c: at91: fix write transfers by clearing pending interrupt first Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 193/319] iio: accel: kxsd9: Fix raw read return Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 194/319] iio: accel: kxsd9: Fix scaling bug Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 195/319] thermal: hwmon: Properly report critical temperature in sysfs Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 196/319] cdc-acm: fix wrong pipe type on rx interrupt xfers Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 197/319] timers: Use proper base migration in add_timer_on() Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 198/319] EDAC: Increment correct counter in edac_inc_ue_error() Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 199/319] IB/srpt: Simplify srpt_handle_tsk_mgmt() Willy Tarreau
2017-02-06  5:14   ` Bart Van Assche
2017-02-06  6:32     ` Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 200/319] IB/ipoib: Fix memory corruption in ipoib cm mode connect flow Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 201/319] IB/core: Fix use after free in send_leave function Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 202/319] IB/ipoib: Don't allow MC joins during light MC flush Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 203/319] IB/mlx4: Fix incorrect MC join state bit-masking on SR-IOV Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 204/319] IB/mlx4: Fix create CQ error flow Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 205/319] IB/uverbs: Fix leak of XRC target QPs Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 206/319] IB/cm: Mark stale CM id's whenever the mad agent was unregistered Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 207/319] mtd: blkdevs: fix potential deadlock + lockdep warnings Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 208/319] mtd: pmcmsp-flash: Allocating too much in init_msp_flash() Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 209/319] mtd: nand: davinci: Reinitialize the HW ECC engine in 4bit hwctl Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 210/319] perf symbols: Fixup symbol sizes before picking best ones Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 211/319] perf: Tighten (and fix) the grouping condition Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 212/319] tty: Prevent ldisc drivers from re-using stale tty fields Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 213/319] tty: limit terminal size to 4M chars Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 214/319] tty: vt, fix bogus division in csi_J Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 215/319] vt: clear selection before resizing Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 216/319] drivers/vfio: Rework offsetofend() Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 217/319] include/stddef.h: Move offsetofend() from vfio.h to a generic kernel header Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 218/319] stddef.h: move offsetofend inside #ifndef/#endif guard, neaten Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 219/319] ipv6: don't call fib6_run_gc() until routing is ready Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 220/319] ipv6: split duplicate address detection and router solicitation timer Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 221/319] ipv6: move DAD and addrconf_verify processing to workqueue Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 222/319] ipv6: addrconf: fix dev refcont leak when DAD failed Willy Tarreau
2017-02-05 19:20 ` Willy Tarreau [this message]
2017-02-05 19:20 ` [PATCH 3.10 224/319] ip6_gre: fix flowi6_proto value in ip6gre_xmit_other() Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 225/319] ipv6: correctly add local routes when lo goes up Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 226/319] ipv6: dccp: fix out of bound access in dccp_v6_err() Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 227/319] ipv6: dccp: add missing bind_conflict to dccp_ipv6_mapped Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 228/319] ip6_tunnel: Clear IP6CB in ip6tunnel_xmit() Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 229/319] ip6_tunnel: disable caching when the traffic class is inherited Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 230/319] net/irda: handle iriap_register_lsap() allocation failure Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 231/319] tcp: fix use after free in tcp_xmit_retransmit_queue() Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 232/319] tcp: properly scale window in tcp_v[46]_reqsk_send_ack() Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 233/319] tcp: fix overflow in __tcp_retransmit_skb() Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 234/319] tcp: fix wrong checksum calculation on MTU probing Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 235/319] tcp: take care of truncations done by sk_filter() Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 236/319] bonding: Fix bonding crash Willy Tarreau
2017-02-05 19:20 ` [PATCH 3.10 237/319] net: ratelimit warnings about dst entry refcount underflow or overflow Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 238/319] mISDN: Support DR6 indication in mISDNipac driver Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 239/319] mISDN: Fixing missing validation in base_sock_bind() Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 240/319] net: disable fragment reassembly if high_thresh is set to zero Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 241/319] ipvs: count pre-established TCP states as active Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 242/319] iwlwifi: pcie: fix access to scratch buffer Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 243/319] svc: Avoid garbage replies when pc_func() returns rpc_drop_reply Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 244/319] brcmsmac: Free packet if dma_mapping_error() fails in dma_rxfill Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 245/319] brcmsmac: Initialize power in brcms_c_stf_ss_algo_channel_get() Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 246/319] brcmfmac: avoid potential stack overflow in brcmf_cfg80211_start_ap() Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 247/319] pstore: Fix buffer overflow while write offset equal to buffer size Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 248/319] net/mlx4_core: Allow resetting VF admin mac to zero Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 249/319] firewire: net: guard against rx buffer overflows Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 250/319] firewire: net: fix fragmented datagram_size off-by-one Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 251/319] netfilter: fix namespace handling in nf_log_proc_dostring Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 252/319] can: bcm: fix warning in bcm_connect/proc_register Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 253/319] net: fix sk_mem_reclaim_partial() Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 254/319] net: avoid sk_forward_alloc overflows Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 255/319] ipmr, ip6mr: fix scheduling while atomic and a deadlock with ipmr_get_route Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 256/319] packet: call fanout_release, while UNREGISTERING a netdev Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 257/319] net: sctp, forbid negative length Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 258/319] sctp: validate chunk len before actually using it Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 259/319] net: clear sk_err_soft in sk_clone_lock() Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 260/319] net: mangle zero checksum in skb_checksum_help() Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 261/319] dccp: do not send reset to already closed sockets Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 262/319] dccp: fix out of bound access in dccp_v4_err() Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 263/319] sctp: assign assoc_id earlier in __sctp_connect Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 264/319] neigh: check error pointer instead of NULL for ipv4_neigh_lookup() Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 265/319] ipv4: use new_gw for redirect neigh lookup Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 266/319] mac80211: fix purging multicast PS buffer queue Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 267/319] mac80211: discard multicast and 4-addr A-MSDUs Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 268/319] cfg80211: limit scan results cache size Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 269/319] mwifiex: printk() overflow with 32-byte SSIDs Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 270/319] ipv4: Set skb->protocol properly for local output Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 271/319] net: sky2: Fix shutdown crash Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 272/319] kaweth: fix firmware download Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 273/319] tracing: Move mutex to protect against resetting of seq data Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 274/319] kernel/fork: fix CLONE_CHILD_CLEARTID regression in nscd Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 275/319] ipc: remove use of seq_printf return value Willy Tarreau
2017-02-05 19:49   ` Joe Perches
2017-02-05 20:35     ` Willy Tarreau
2017-02-06  8:06   ` Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 276/319] arch: Introduce smp_load_acquire(), smp_store_release() Willy Tarreau
2017-02-06  8:06   ` Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 277/319] kernel: Provide READ_ONCE and ASSIGN_ONCE Willy Tarreau
2017-02-06  8:06   ` Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 278/319] kernel: Change ASSIGN_ONCE(val, x) to WRITE_ONCE(x, val) Willy Tarreau
2017-02-06  8:06   ` Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 279/319] kernel: make READ_ONCE() valid on const arguments Willy Tarreau
2017-02-06  8:05   ` Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 280/319] locking: Remove atomicy checks from {READ,WRITE}_ONCE Willy Tarreau
2017-02-06  8:05   ` Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 281/319] compiler: Allow 1- and 2-byte smp_load_acquire() and smp_store_release() Willy Tarreau
2017-02-06  8:05   ` Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 282/319] ipc/sem.c: fix complex_count vs. simple op race Willy Tarreau
2017-02-06  8:04   ` Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 283/319] cfq: fix starvation of asynchronous writes Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 284/319] drbd: Fix kernel_sendmsg() usage - potential NULL deref Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 285/319] lib/genalloc.c: start search from start of chunk Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 286/319] tools/vm/slabinfo: fix an unintentional printf Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 287/319] rcu: Fix soft lockup for rcu_nocb_kthread Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 288/319] ratelimit: fix bug in time interval by resetting right begin time Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 289/319] mfd: core: Fix device reference leak in mfd_clone_cell Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 290/319] PM / sleep: fix device reference leak in test_suspend Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 291/319] mmc: mxs: Initialize the spinlock prior to using it Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 292/319] mmc: block: don't use CMD23 with very old MMC cards Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 293/319] pstore/core: drop cmpxchg based updates Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 294/319] pstore/ram: Use memcpy_toio instead of memcpy Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 295/319] pstore/ram: Use memcpy_fromio() to save old buffer Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 296/319] mb86a20s: fix the locking logic Willy Tarreau
2017-02-05 19:21 ` [PATCH 3.10 297/319] mb86a20s: fix demod settings Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 298/319] cx231xx: don't return error on success Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 299/319] cx231xx: fix GPIOs for Pixelview SBTVD hybrid Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 300/319] gpio: mpc8xxx: Correct irq handler function Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 301/319] uio: fix dmem_region_start computation Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 302/319] KEYS: Fix short sprintf buffer in /proc/keys show function Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 303/319] hv: do not lose pending heartbeat vmbus packets Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 304/319] staging: iio: ad5933: avoid uninitialized variable in error case Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 305/319] mei: bus: fix received data size check in NFC fixup Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 306/319] ACPI / APEI: Fix incorrect return value of ghes_proc() Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 307/319] PCI: Handle read-only BARs on AMD CS553x devices Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 308/319] tile: avoid using clocksource_cyc2ns with absolute cycle count Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 309/319] dm flakey: fix reads to be issued if drop_writes configured Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 310/319] mm,ksm: fix endless looping in allocating memory when ksm enable Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 311/319] can: dev: fix deadlock reported after bus-off Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 312/319] hwmon: (adt7411) set bit 3 in CFG1 register Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 313/319] mpi: Fix NULL ptr dereference in mpi_powm() [ver #3] Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 314/319] mfd: 88pm80x: Double shifting bug in suspend/resume Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 315/319] ASoC: omap-mcpdm: Fix irq resource handling Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 316/319] regulator: tps65910: Work around silicon erratum SWCZ010 Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 317/319] dm: mark request_queue dead before destroying the DM device Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 318/319] fbdev/efifb: Fix 16 color palette entry calculation Willy Tarreau
2017-02-05 19:22 ` [PATCH 3.10 319/319] metag: Only define atomic_dec_if_positive conditionally Willy Tarreau

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=1486322541-8206-124-git-send-email-w@1wt.eu \
    --to=w@1wt.eu \
    --cc=davem@davemloft.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=mmanning@brocade.com \
    --cc=sd@queasysnail.net \
    --cc=stable@vger.kernel.org \
    --cc=xiyou.wangcong@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).