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

Commit 804b908a authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6

* 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
  [NET]: Fix possible dev_deactivate race condition
  [INET]: Justification for local port range robustness.
  [PACKET]: Kill unused pg_vec_endpage() function
  [NET]: QoS/Sched as menuconfig
  [NET]: Fix bug in sk_filter race cures.
  [PATCH] mac80211: make ieee802_11_parse_elems return void
parents 1b3e4c70 ce0e32e6
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -2797,11 +2797,12 @@ static void cma_remove_one(struct ib_device *device)

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)
+2 −1
Original line number Diff line number Diff line
@@ -447,6 +447,7 @@ int sk_attach_filter(struct sock_fprog *fprog, struct sock *sk)
	rcu_assign_pointer(sk->sk_filter, fp);
	rcu_read_unlock_bh();

	if (old_fp)
		sk_filter_delayed_uncharge(sk, old_fp);
	return 0;
}
+1 −1
Original line number Diff line number Diff line
@@ -93,7 +93,7 @@ int inet_csk_get_port(struct inet_hashinfo *hashinfo,
		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 {
+1 −1
Original line number Diff line number Diff line
@@ -286,7 +286,7 @@ int inet_hash_connect(struct inet_timewait_death_row *death_row,
		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++) {
+2 −2
Original line number Diff line number Diff line
@@ -122,7 +122,7 @@ static int ipv4_local_port_range(ctl_table *table, int write, struct file *filp,
	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(ctl_table *table, int __user *name,

	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);
Loading