Skip to contentSkip to conversation

Patch "ipv4: use the right lock for ping_group_range" has been added to the 4.8-stable tree

PATCH [email protected] 1 participant 1 message Nov 10, 2016

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

ipv4: use the right lock for ping_group_range

to the 4.8-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
ipv4-use-the-right-lock-for-ping_group_range.patch
and it can be found in the queue-4.8 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From foo@baz Thu Nov 10 16:43:03 CET 2016

From: WANG Cong <[email protected]>
Date: Thu, 20 Oct 2016 14:19:46 -0700
Subject: ipv4: use the right lock for ping_group_range

From: WANG Cong <[email protected]>

[ Upstream commit 396a30cce15d084b2b1a395aa6d515c3d559c674 ]

This reverts commit a681574c99be23e4d20b769bf0e543239c364af5 ("ipv4: disable BH in set_ping_group_range()") because we never read ping_group_range in BH context (unlike local_port_range).

Then, since we already have a lock for ping_group_range, those using ip_local_ports.lock for ping_group_range are clearly typos.

We might consider to share a same lock for both ping_group_range and local_port_range w.r.t. space saving, but that should be for net-next.

Fixes a681574c99be ("ipv4: disable BH in set_ping_group_range()")
Fixes ba6b918ab234 ("ping: move ping_group_range out of CONFIG_SYSCTL")
Cc Eric Dumazet <[email protected]>
Cc Eric Salo <[email protected]>
---
 net/ipv4/sysctl_net_ipv4.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
net/ipv4/sysctl_net_ipv4.c +4 -4
@@ -96,11 +96,11 @@ static void inet_get_ping_group_range_ta
 		container_of(table->data, struct net, ipv4.ping_group_range.range);
 	unsigned int seq;
 	do {
-		seq = read_seqbegin(&net->ipv4.ip_local_ports.lock);
+		seq = read_seqbegin(&net->ipv4.ping_group_range.lock);
 
 		*low = data[0];
 		*high = data[1];
-	} while (read_seqretry(&net->ipv4.ip_local_ports.lock, seq));
+	} while (read_seqretry(&net->ipv4.ping_group_range.lock, seq));
 }
 
 /* Update system visible IP port range */
@@ -109,10 +109,10 @@ static void set_ping_group_range(struct
 	kgid_t *data = table->data;
 	struct net *net =
 		container_of(table->data, struct net, ipv4.ping_group_range.range);
-	write_seqlock_bh(&net->ipv4.ip_local_ports.lock);
+	write_seqlock(&net->ipv4.ping_group_range.lock);
 	data[0] = low;
 	data[1] = high;
-	write_sequnlock_bh(&net->ipv4.ip_local_ports.lock);
+	write_sequnlock(&net->ipv4.ping_group_range.lock);
 }
 
 /* Validate changes from /proc interface. */

Patches currently in stable-queue which might be from [email protected] are

queue-4.8/net_sched-reorder-pernet-ops-and-act-ops-registrations.patch queue-4.8/net-sched-filters-fix-notification-of-filter-delete-with-proper-handle.patch queue-4.8/ipv4-use-the-right-lock-for-ping_group_range.patch