Commit 431db53c authored by David S. Miller's avatar David S. Miller

Merge branch 'smc-fixes'

Karsten Graul says:

====================
net/smc: fixes 2021-09-20

Please apply the following patches for smc to netdev's net tree.

The first patch adds a missing error check, and the second patch
fixes a possible leak of a lock in a worker.
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 36747c96 a18cee47
...@@ -230,7 +230,8 @@ static int smc_clc_prfx_set(struct socket *clcsock, ...@@ -230,7 +230,8 @@ static int smc_clc_prfx_set(struct socket *clcsock,
goto out_rel; goto out_rel;
} }
/* get address to which the internal TCP socket is bound */ /* get address to which the internal TCP socket is bound */
kernel_getsockname(clcsock, (struct sockaddr *)&addrs); if (kernel_getsockname(clcsock, (struct sockaddr *)&addrs) < 0)
goto out_rel;
/* analyze IP specific data of net_device belonging to TCP socket */ /* analyze IP specific data of net_device belonging to TCP socket */
addr6 = (struct sockaddr_in6 *)&addrs; addr6 = (struct sockaddr_in6 *)&addrs;
rcu_read_lock(); rcu_read_lock();
......
...@@ -1474,7 +1474,9 @@ static void smc_conn_abort_work(struct work_struct *work) ...@@ -1474,7 +1474,9 @@ static void smc_conn_abort_work(struct work_struct *work)
abort_work); abort_work);
struct smc_sock *smc = container_of(conn, struct smc_sock, conn); struct smc_sock *smc = container_of(conn, struct smc_sock, conn);
lock_sock(&smc->sk);
smc_conn_kill(conn, true); smc_conn_kill(conn, true);
release_sock(&smc->sk);
sock_put(&smc->sk); /* sock_hold done by schedulers of abort_work */ sock_put(&smc->sk); /* sock_hold done by schedulers of abort_work */
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment