diff --git a/net/sctp/socket.c b/net/sctp/socket.c
index 087ca0bb86bdcac47434d53c6b4a08f912a95b50..0187444567e0d43955322d9b6050c1aac35faef8 100644
--- a/net/sctp/socket.c
+++ b/net/sctp/socket.c
@@ -3978,6 +3978,9 @@ static int sctp_setsockopt_deactivate_key(struct sock *sk, char __user *optval,
 	if (asoc)
 		return sctp_auth_deact_key_id(ep, asoc, val.scact_keynumber);
 
+	if (sctp_style(sk, TCP))
+		val.scact_assoc_id = SCTP_FUTURE_ASSOC;
+
 	if (val.scact_assoc_id == SCTP_FUTURE_ASSOC ||
 	    val.scact_assoc_id == SCTP_ALL_ASSOC) {
 		ret = sctp_auth_deact_key_id(ep, asoc, val.scact_keynumber);