diff --git a/net/smc/smc_diag.c b/net/smc/smc_diag.c index 55ac060acb6d160f1c174ba68276fbc0cf59d377..53bc21e31331c451512973939c6c78655eda3e3b 100644 --- a/net/smc/smc_diag.c +++ b/net/smc/smc_diag.c @@ -172,7 +172,7 @@ static int __smc_diag_dump(struct sock *sk, struct sk_buff *skb, }; memcpy(linfo.lnk[0].ibname, - smc->conn.lgr->lnk[0].smcibdev->ibdev->name, + smc->conn.lnk->smcibdev->ibdev->name, sizeof(smc->conn.lnk->smcibdev->ibdev->name)); smc_gid_be16_convert(linfo.lnk[0].gid, smc->conn.lnk->gid); @@ -184,7 +184,7 @@ static int __smc_diag_dump(struct sock *sk, struct sk_buff *skb, } if (smc_conn_lgr_valid(&smc->conn) && smc->conn.lgr->is_smcd && (req->diag_ext & (1 << (SMC_DIAG_DMBINFO - 1))) && - !list_empty(&smc->conn.lgr->list)) { + !list_empty(&smc->conn.lgr->list) && smc->conn.rmb_desc) { struct smc_connection *conn = &smc->conn; struct smcd_diag_dmbinfo dinfo; struct smcd_dev *smcd = conn->lgr->smcd;