- ip-justification-for-local-port-range-robustness.patch removed from -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The patch titled
     ip: justification for local port range robustness
has been removed from the -mm tree.  Its filename was
     ip-justification-for-local-port-range-robustness.patch

This patch was dropped because it was merged into mainline or a subsystem tree

------------------------------------------------------
Subject: ip: justification for local port range robustness
From: Anton Arapov <aarapov@xxxxxxxxxx>

There is a justifying patch for Stephen's patches.  Stephen's patches
disallows using a port range of one single port and brakes the meaning of the
'remaining' variable, in some places it has different meaning.  My patch gives
back the sense of 'remaining' variable.  It should mean how many ports are
remaining and nothing else.  Also my patch allows using a single port.

I am sure we must be able to use mentioned port range, this does not
restricted by documentation and does not brake current behavior.

usefull links:
Patches posted by Stephen Hemminger
  http://marc.info/?l=linux-netdev&m=119206106218187&w=2
  http://marc.info/?l=linux-netdev&m=119206109918235&w=2

Andrew Morton's comment
  http://marc.info/?l=linux-kernel&m=119248225007737&w=2

  1. Allows using a port range of one single port.
  2. Gives back sense of 'remaining' variable.

Signed-off-by: Anton Arapov <aarapov@xxxxxxxxxx>
Acked-by: Stephen Hemminger <shemminger@xxxxxxxxxxxxxxxxxxxx>
Cc: "David S. Miller" <davem@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
---

 drivers/infiniband/core/cma.c   |    5 +++--
 net/ipv4/inet_connection_sock.c |    2 +-
 net/ipv4/inet_hashtables.c      |    2 +-
 net/ipv4/sysctl_net_ipv4.c      |    4 ++--
 net/ipv4/udp.c                  |    5 +++--
 net/ipv6/inet6_hashtables.c     |    2 +-
 6 files changed, 11 insertions(+), 9 deletions(-)

diff -puN drivers/infiniband/core/cma.c~ip-justification-for-local-port-range-robustness drivers/infiniband/core/cma.c
--- a/drivers/infiniband/core/cma.c~ip-justification-for-local-port-range-robustness
+++ a/drivers/infiniband/core/cma.c
@@ -2803,11 +2803,12 @@ static void cma_remove_one(struct ib_dev
 
 static int cma_init(void)
 {
-	int ret, low, high;
+	int ret, low, high, remaining;
 
 	get_random_bytes(&next_port, sizeof next_port);
 	inet_get_local_port_range(&low, &high);
-	next_port = ((unsigned int) next_port % (high - low)) + low;
+	remaining = (high - low) + 1;
+	next_port = ((unsigned int) next_port % remaining) + low;
 
 	cma_wq = create_singlethread_workqueue("rdma_cm");
 	if (!cma_wq)
diff -puN net/ipv4/inet_connection_sock.c~ip-justification-for-local-port-range-robustness net/ipv4/inet_connection_sock.c
--- a/net/ipv4/inet_connection_sock.c~ip-justification-for-local-port-range-robustness
+++ a/net/ipv4/inet_connection_sock.c
@@ -93,7 +93,7 @@ int inet_csk_get_port(struct inet_hashin
 		int remaining, rover, low, high;
 
 		inet_get_local_port_range(&low, &high);
-		remaining = high - low;
+		remaining = (high - low) + 1;
 		rover = net_random() % remaining + low;
 
 		do {
diff -puN net/ipv4/inet_hashtables.c~ip-justification-for-local-port-range-robustness net/ipv4/inet_hashtables.c
--- a/net/ipv4/inet_hashtables.c~ip-justification-for-local-port-range-robustness
+++ a/net/ipv4/inet_hashtables.c
@@ -286,7 +286,7 @@ int inet_hash_connect(struct inet_timewa
 		struct inet_timewait_sock *tw = NULL;
 
 		inet_get_local_port_range(&low, &high);
-		remaining = high - low;
+		remaining = (high - low) + 1;
 
 		local_bh_disable();
 		for (i = 1; i <= remaining; i++) {
diff -puN net/ipv4/sysctl_net_ipv4.c~ip-justification-for-local-port-range-robustness net/ipv4/sysctl_net_ipv4.c
--- a/net/ipv4/sysctl_net_ipv4.c~ip-justification-for-local-port-range-robustness
+++ a/net/ipv4/sysctl_net_ipv4.c
@@ -122,7 +122,7 @@ static int ipv4_local_port_range(ctl_tab
 	ret = proc_dointvec_minmax(&tmp, write, filp, buffer, lenp, ppos);
 
 	if (write && ret == 0) {
-		if (range[1] <= range[0])
+		if (range[1] < range[0])
 			ret = -EINVAL;
 		else
 			set_local_port_range(range);
@@ -150,7 +150,7 @@ static int ipv4_sysctl_local_port_range(
 
 	ret = sysctl_intvec(&tmp, name, nlen, oldval, oldlenp, newval, newlen);
 	if (ret == 0 && newval && newlen) {
-		if (range[1] <= range[0])
+		if (range[1] < range[0])
 			ret = -EINVAL;
 		else
 			set_local_port_range(range);
diff -puN net/ipv4/udp.c~ip-justification-for-local-port-range-robustness net/ipv4/udp.c
--- a/net/ipv4/udp.c~ip-justification-for-local-port-range-robustness
+++ a/net/ipv4/udp.c
@@ -147,13 +147,14 @@ int __udp_lib_get_port(struct sock *sk, 
 	write_lock_bh(&udp_hash_lock);
 
 	if (!snum) {
-		int i, low, high;
+		int i, low, high, remaining;
 		unsigned rover, best, best_size_so_far;
 
 		inet_get_local_port_range(&low, &high);
+		remaining = (high - low) + 1;
 
 		best_size_so_far = UINT_MAX;
-		best = rover = net_random() % (high - low) + low;
+		best = rover = net_random() % remaining + low;
 
 		/* 1st pass: look for empty (or shortest) hash chain */
 		for (i = 0; i < UDP_HTABLE_SIZE; i++) {
diff -puN net/ipv6/inet6_hashtables.c~ip-justification-for-local-port-range-robustness net/ipv6/inet6_hashtables.c
--- a/net/ipv6/inet6_hashtables.c~ip-justification-for-local-port-range-robustness
+++ a/net/ipv6/inet6_hashtables.c
@@ -261,7 +261,7 @@ int inet6_hash_connect(struct inet_timew
 		struct inet_timewait_sock *tw = NULL;
 
 		inet_get_local_port_range(&low, &high);
-		remaining = high - low;
+		remaining = (high - low) + 1;
 
 		local_bh_disable();
 		for (i = 1; i <= remaining; i++) {
_

Patches currently in -mm which might be from aarapov@xxxxxxxxxx are

origin.patch

-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux