From patchwork Thu Mar 28 21:54:43 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 1068758 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=netronome.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b="yF8iEat0"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44VdvY5dS3z9sR7 for ; Fri, 29 Mar 2019 08:55:05 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728020AbfC1VzE (ORCPT ); Thu, 28 Mar 2019 17:55:04 -0400 Received: from mail-qk1-f196.google.com ([209.85.222.196]:44907 "EHLO mail-qk1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726508AbfC1VzE (ORCPT ); Thu, 28 Mar 2019 17:55:04 -0400 Received: by mail-qk1-f196.google.com with SMTP id y5so195587qkc.11 for ; Thu, 28 Mar 2019 14:55:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=JNyAWf1gvXiUWVRXYXW5zhbHtMcW6Ufl/9POFXy3qUU=; b=yF8iEat0x5BbYKzKMg1OyhKc7orRNOeeYJziTfIGa+oxYv/jwHci6hogbWP1Lqpj6q nG1J43ugXNDBSVtLdgzvHYOJj1DpuU2jknvoy9DNWSL/zM2YrUqxE2GnQhur+jJh2PN3 cG4+nSb/ygqsOKVfTuza0DzuqPr6yDsFaNWDLg9amhtxh25+OHBVPqDAWBkQIuG0gfba we7CAEirZRKY9XcgTAL+1Sfk+RkHPdfswyxkKhnNWfbqRFN5MMML60DU24JHGRTxIyG2 tA2meX1gAlldUlZ0fOLYRSUYEcdtGU3dN3q/4+7q79LsD3GqptE73H3xpDSNdYSYrcgP EXjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=JNyAWf1gvXiUWVRXYXW5zhbHtMcW6Ufl/9POFXy3qUU=; b=Pa2BnLcdyT83FOlj4nBwWrL8ocBSY3lofUTGLo1giRr21rJOhHgONdcXZm6JbJAU+o w8muiNQC+wcvD2ijuagDNK5kKdihYajEt3RICOWs4k9JG+ZUSfE517+oyZ2ALk4mnnkt qXr4E+kf4tvfAgphic5Fmio+yD/Uzk7yXO6+TImFlROaYzrfCDYVAuqcCVwPTlxJwc9m WZC2lKicuW4/t2LsTA0tAoQYUCy1i1RQwtOsb5G7Nq08ca3Fy2bbLff0RmPyBQAvekz5 l426aimt+Z0YR40ssiH489Arzza8hXYEVF0nxAVpOO3xa3KYn4rJO1L3DoaeoL+xCB2r sNvA== X-Gm-Message-State: APjAAAXE5t1PXsKi099xXJiqNX5qazVNVutFR2FArRSsXPuAB9gTJAzZ X/LFChLCywOSTvNbxVQDXCZX3w== X-Google-Smtp-Source: APXvYqxGQ+5bp9bQmwrFmv2BYhk0Pbz/b0u9WYZZYrNf+SlGzFUiOea9tI0X1hIaNIjo+nEaMF66YA== X-Received: by 2002:a05:620a:126d:: with SMTP id b13mr30286596qkl.174.1553810102958; Thu, 28 Mar 2019 14:55:02 -0700 (PDT) Received: from jkicinski-Precision-T1700.netronome.com ([66.60.152.14]) by smtp.gmail.com with ESMTPSA id r64sm111804qkb.60.2019.03.28.14.55.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Mar 2019 14:55:02 -0700 (PDT) From: Jakub Kicinski To: davem@davemloft.net Cc: netdev@vger.kernel.org, oss-drivers@netronome.com, borisp@mellanox.com, davejwatson@fb.com, vakul.garg@nxp.com, Jakub Kicinski , Simon Horman Subject: [PATCH net] net: tls: prevent false connection termination with offload Date: Thu, 28 Mar 2019 14:54:43 -0700 Message-Id: <20190328215443.9989-1-jakub.kicinski@netronome.com> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Only decrypt_internal() performs zero copy on rx, all paths which don't hit decrypt_internal() must set zc to false, otherwise tls_sw_recvmsg() may return 0 causing the application to believe that that connection got closed. Currently this happens with device offload when new record is first read from. Fixes: d069b780e367 ("tls: Fix tls_device receive") Signed-off-by: Jakub Kicinski Reviewed-by: Simon Horman Reported-by: David Beckett --- net/tls/tls_sw.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/net/tls/tls_sw.c b/net/tls/tls_sw.c index 4f821edeeae6..4741edf4bb1e 100644 --- a/net/tls/tls_sw.c +++ b/net/tls/tls_sw.c @@ -1497,6 +1497,8 @@ static int decrypt_skb_update(struct sock *sk, struct sk_buff *skb, return err; } + } else { + *zc = false; } rxm->full_len -= padding_length(ctx, tls_ctx, skb);