diff --git a/net/smc/smc_clc.c b/net/smc/smc_clc.c index 6d7451a24ee90c8ba69d75c908f9e7b9581416b2..e29726e04c31e99473c4f61cedb5f2fa18e7280b 100644 --- a/net/smc/smc_clc.c +++ b/net/smc/smc_clc.c @@ -796,8 +796,8 @@ int smc_clc_wait_msg(struct smc_sock *smc, void *buf, int buflen, dclc = (struct smc_clc_msg_decline *)clcm; reason_code = SMC_CLC_DECL_PEERDECL; smc->peer_diagnosis = ntohl(dclc->peer_diagnosis); - if (((struct smc_clc_msg_decline *)buf)->hdr.typev2 & - SMC_FIRST_CONTACT_MASK) + if ((dclc->hdr.typev2 & SMC_FIRST_CONTACT_MASK) && + smc->conn.lgr) smc->conn.lgr->sync_err = 1; }