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

Commit 90c27297 authored by andrew hendry's avatar andrew hendry Committed by David S. Miller
Browse files

X.25 remove bkl in bind



Accept updates socket values in 3 lines so wrapped with lock_sock.

Signed-off-by: default avatarAndrew Hendry <andrew.hendry@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 25aa4efe
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -688,7 +688,6 @@ static int x25_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
	struct sockaddr_x25 *addr = (struct sockaddr_x25 *)uaddr;
	struct sockaddr_x25 *addr = (struct sockaddr_x25 *)uaddr;
	int len, i, rc = 0;
	int len, i, rc = 0;


	lock_kernel();
	if (!sock_flag(sk, SOCK_ZAPPED) ||
	if (!sock_flag(sk, SOCK_ZAPPED) ||
	    addr_len != sizeof(struct sockaddr_x25) ||
	    addr_len != sizeof(struct sockaddr_x25) ||
	    addr->sx25_family != AF_X25) {
	    addr->sx25_family != AF_X25) {
@@ -704,12 +703,13 @@ static int x25_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
		}
		}
	}
	}


	lock_sock(sk);
	x25_sk(sk)->source_addr = addr->sx25_addr;
	x25_sk(sk)->source_addr = addr->sx25_addr;
	x25_insert_socket(sk);
	x25_insert_socket(sk);
	sock_reset_flag(sk, SOCK_ZAPPED);
	sock_reset_flag(sk, SOCK_ZAPPED);
	release_sock(sk);
	SOCK_DEBUG(sk, "x25_bind: socket is bound\n");
	SOCK_DEBUG(sk, "x25_bind: socket is bound\n");
out:
out:
	unlock_kernel();
	return rc;
	return rc;
}
}