Commit 31af5057 authored by David S. Miller's avatar David S. Miller

Merge branch 'smc-fixes'

Karsten Graul says:

====================
net/smc: fixes for -net

Fixes for the net tree, covering a memleak when closing
SMC fallback sockets and fix SMC-R connection establishment
when vlan-ids are used.
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 91e2e576 ca5f8d2d
...@@ -123,6 +123,12 @@ struct proto smc_proto6 = { ...@@ -123,6 +123,12 @@ struct proto smc_proto6 = {
}; };
EXPORT_SYMBOL_GPL(smc_proto6); EXPORT_SYMBOL_GPL(smc_proto6);
static void smc_restore_fallback_changes(struct smc_sock *smc)
{
smc->clcsock->file->private_data = smc->sk.sk_socket;
smc->clcsock->file = NULL;
}
static int __smc_release(struct smc_sock *smc) static int __smc_release(struct smc_sock *smc)
{ {
struct sock *sk = &smc->sk; struct sock *sk = &smc->sk;
...@@ -141,6 +147,7 @@ static int __smc_release(struct smc_sock *smc) ...@@ -141,6 +147,7 @@ static int __smc_release(struct smc_sock *smc)
} }
sk->sk_state = SMC_CLOSED; sk->sk_state = SMC_CLOSED;
sk->sk_state_change(sk); sk->sk_state_change(sk);
smc_restore_fallback_changes(smc);
} }
sk->sk_prot->unhash(sk); sk->sk_prot->unhash(sk);
...@@ -1291,8 +1298,8 @@ static void smc_listen_work(struct work_struct *work) ...@@ -1291,8 +1298,8 @@ static void smc_listen_work(struct work_struct *work)
/* check if RDMA is available */ /* check if RDMA is available */
if (!ism_supported) { /* SMC_TYPE_R or SMC_TYPE_B */ if (!ism_supported) { /* SMC_TYPE_R or SMC_TYPE_B */
/* prepare RDMA check */ /* prepare RDMA check */
memset(&ini, 0, sizeof(ini));
ini.is_smcd = false; ini.is_smcd = false;
ini.ism_dev = NULL;
ini.ib_lcl = &pclc->lcl; ini.ib_lcl = &pclc->lcl;
rc = smc_find_rdma_device(new_smc, &ini); rc = smc_find_rdma_device(new_smc, &ini);
if (rc) { if (rc) {
......
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