!list_empty(&smc->conn.lgr->list)) {
                struct smc_diag_lgrinfo linfo = {
                        .role = smc->conn.lgr->role,
-                       .lnk[0].ibport = smc->conn.lgr->lnk[0].ibport,
-                       .lnk[0].link_id = smc->conn.lgr->lnk[0].link_id,
+                       .lnk[0].ibport = smc->conn.lnk->ibport,
+                       .lnk[0].link_id = smc->conn.lnk->link_id,
                };
 
                memcpy(linfo.lnk[0].ibname,
                       smc->conn.lgr->lnk[0].smcibdev->ibdev->name,
-                      sizeof(smc->conn.lgr->lnk[0].smcibdev->ibdev->name));
+                      sizeof(smc->conn.lnk->smcibdev->ibdev->name));
                smc_gid_be16_convert(linfo.lnk[0].gid,
-                                    smc->conn.lgr->lnk[0].gid);
+                                    smc->conn.lnk->gid);
                smc_gid_be16_convert(linfo.lnk[0].peer_gid,
-                                    smc->conn.lgr->lnk[0].peer_gid);
+                                    smc->conn.lnk->peer_gid);
 
                if (nla_put(skb, SMC_DIAG_LGRINFO, sizeof(linfo), &linfo) < 0)
                        goto errout;