Received: by 2002:a05:7412:a9a8:b0:f9:92ae:e617 with SMTP id o40csp129563rdh; Wed, 20 Dec 2023 19:10:57 -0800 (PST) X-Google-Smtp-Source: AGHT+IFDzFMIEXxHFDfdEZTtXesArj3aAxb97Nm/yKhMooPIzCP1juPsbpqjC1Y4NlF1TGprsMig X-Received: by 2002:a05:622a:1308:b0:423:93cf:8a92 with SMTP id v8-20020a05622a130800b0042393cf8a92mr28401276qtk.21.1703128256580; Wed, 20 Dec 2023 19:10:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1703128256; cv=none; d=google.com; s=arc-20160816; b=ImdmOQ9f9OZWQLW+WQhNemGRUDY6nDZwjrOLavJIzc6xpK41+2Z3wOm+3IFDVxCBDH RNZlDbpxngVgHdDAa47Ekp6hjZikYh6beu1k6E2Mx4rYwRa95RPeVUPRhJTUujulQL3+ 5ELlSqGxhbaGemcL1XtHERlLI7xP5TO2HuiBVFdOfhjTpXk4iptSyVXhYxt6X2VoEVUx v1VH82oT7MvyUjngPnMgN/5kGU0+fEY8jmrBlKJpd3riILIEUEiU1wi4Hyxo2zSmnkY6 Ki3PZdPavHeZDRrhw47sTyHrh4XGLoGidYXlWWcamp3NYzqZKorGYYSlOOncMFchl6FC tn1Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=user-agent:in-reply-to:content-disposition:mime-version :list-unsubscribe:list-subscribe:list-id:precedence:references :message-id:subject:cc:from:date:dkim-signature; bh=0m2ADhDOtePgSIilDdK/IfXCs07I4ZiIrY7XG62cMTA=; fh=QADJdDQtZos0cb/hCCkLf8y/QMnWIW8ELH8QSW039SU=; b=0Weo046XozhhZJb60gRR2/69AEo0nyoWqFLSpRDSGzO52meyrB3lVD48kMNLsx+4r7 ihsTWfRrW9lMpaDTc2M3EMOggYW/+eu2ReoCsj6ctqgEbC5WaqZZKFdf2wht89wI0xdm wGkPm9YjL038A2js65n7sN7jIfx1tqpfL2ZhoAVMF/iu/UWINLRK4/B+yklQsnDRXwBA qDf4debSPVZhfW9E7AVxZEuOCz6BQFQm/j8oR1NleKfmNIoNAUuFJEJki2056xquitRG R36pH9fuMYtrS1xt1Lanw1WgTmidRmqEq6l62UYaamA5aKFL3V+d7nwIhS8FxoD+qrcP lslQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nabijaczleweli.xyz header.s=202305 header.b=hrXydvLU; spf=pass (google.com: domain of linux-kernel+bounces-7779-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-7779-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nabijaczleweli.xyz Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id s29-20020a05622a1a9d00b00423a31f6625si1225239qtc.115.2023.12.20.19.10.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Dec 2023 19:10:56 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-7779-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@nabijaczleweli.xyz header.s=202305 header.b=hrXydvLU; spf=pass (google.com: domain of linux-kernel+bounces-7779-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-7779-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nabijaczleweli.xyz Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 495A21C22662 for ; Thu, 21 Dec 2023 03:10:56 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 63892156FE; Thu, 21 Dec 2023 03:09:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nabijaczleweli.xyz header.i=@nabijaczleweli.xyz header.b="hrXydvLU" X-Original-To: linux-kernel@vger.kernel.org Received: from tarta.nabijaczleweli.xyz (tarta.nabijaczleweli.xyz [139.28.40.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D1A5011C8F; Thu, 21 Dec 2023 03:09:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nabijaczleweli.xyz Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nabijaczleweli.xyz DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nabijaczleweli.xyz; s=202305; t=1703128146; bh=qAmWyUoU8YkxZBfMhksVxnOF3K/+1yNv2stDp0bUYaU=; h=Date:From:Cc:Subject:References:In-Reply-To:From; b=hrXydvLUYIdw/FBFstYDD0jtvpmYHx7nxxp9isDfxsq73gon5fgyFx5bfxnW3/Avt TRS26FntbCF27nt03x2dC7y8lqLSb8Wb9/KZ28RgGNo2I2EespxvKECab83zycPPAO SRSk37HAGLPApY/QUvIqy67G4DmZvN0nFAEeea0qmhYUYPtIJ3s6Ep7PFj0Kz0x/ul SQ3Rx+4PZnCnNpbibiFfc/jBNw9C8+Lz8aDRL8fcTbFUwr45cnLqEBEzfEolTEsuwm frH/s4dgzX1JbwALRgvlMANY91NuJV4w6tAP8xYVCtRzlfeYKZkCAEa85Hl/MMO4kl P60Bb3mQsTUcg== Received: from tarta.nabijaczleweli.xyz (unknown [192.168.1.250]) by tarta.nabijaczleweli.xyz (Postfix) with ESMTPSA id 10E8D13DB2; Thu, 21 Dec 2023 04:09:06 +0100 (CET) Date: Thu, 21 Dec 2023 04:09:05 +0100 From: Ahelenia =?utf-8?Q?Ziemia=C5=84ska?= Cc: Jens Axboe , Christian Brauner , Alexander Viro , linux-fsdevel@vger.kernel.org, Boris Pismenny , John Fastabend , Jakub Kicinski , "David S. Miller" , Eric Dumazet , Paolo Abeni , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 06/11] tls/sw: tls_sw_splice_read: always request non-blocking I/O Message-ID: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="ol5qyjq3wpi4gz2a" Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20231103-116-3b855e-dirty --ol5qyjq3wpi4gz2a Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Otherwise we risk sleeping with the pipe locked for indeterminate lengths of time =E2=80=92 given cat > tls_sw.c <<^D #define _GNU_SOURCE #include #include #include #include #include #include int main() { int s =3D socket(AF_INET, SOCK_STREAM, 0); struct sockaddr_in addr =3D { .sin_family =3D AF_INET, .sin_addr =3D { htonl(INADDR_LOOPBACK) }, .sin_port =3D htons(getpid() % (0xFFFF - 1000) + 1000) }; bind(s, &addr, sizeof(addr)); listen(s, 1); if (!fork()) { connect(socket(AF_INET, SOCK_STREAM, 0), &addr, sizeof(addr)); sleep(100); return 0; } s =3D accept(s, NULL, NULL); setsockopt(s, SOL_TCP, TCP_ULP, "tls", sizeof("tls")); setsockopt(s, SOL_TLS, TLS_RX, &(struct tls12_crypto_info_aes_gcm_128){ .info.version =3D TLS_1_2_VERSION, .info.cipher_type =3D TLS_CIPHER_AES_GCM_128 }, sizeof(struct tls12_crypto_info_aes_gcm_128)); for (;;) splice(s, 0, 1, 0, 128 * 1024 * 1024, 0); } ^D cc tls_sw.c -o tls_sw mkfifo fifo ./tls_sw > fifo & read -r _ < fifo & sleep 0.1 echo zupa > fifo tls_sw used to sleep in splice and the shell used to enter an uninterruptible sleep in open("fifo"); now the splice returns -EAGAIN and the whole program completes. Signed-off-by: Ahelenia Ziemia=C5=84ska --- net/tls/tls_sw.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/net/tls/tls_sw.c b/net/tls/tls_sw.c index e37b4d2e2acd..3f474deed94d 100644 --- a/net/tls/tls_sw.c +++ b/net/tls/tls_sw.c @@ -2157,7 +2157,7 @@ ssize_t tls_sw_splice_read(struct socket *sock, loff= _t *ppos, int chunk; int err; =20 - err =3D tls_rx_reader_lock(sk, ctx, flags & SPLICE_F_NONBLOCK); + err =3D tls_rx_reader_lock(sk, ctx, true); if (err < 0) return err; =20 @@ -2166,8 +2166,7 @@ ssize_t tls_sw_splice_read(struct socket *sock, loff= _t *ppos, } else { struct tls_decrypt_arg darg; =20 - err =3D tls_rx_rec_wait(sk, NULL, flags & SPLICE_F_NONBLOCK, - true); + err =3D tls_rx_rec_wait(sk, NULL, true, true); if (err <=3D 0) goto splice_read_end; =20 --=20 2.39.2 --ol5qyjq3wpi4gz2a Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEfWlHToQCjFzAxEFjvP0LAY0mWPEFAmWDrFEACgkQvP0LAY0m WPG5yBAAiSaEIPGtJWTxMcMY0+EBT2H2t4VUmUJY/LDInj1PKpoOfALLGu5pWbmQ YTVboZCg+8LuhF1QENmND/uqQde8kDs5fxsH+4AslkjhonKQe7EB4PDOfuM4lYbS BUJce2K4XxZw2EYadWEK9Y64b7aqZEC7eU/KF6RFn1KbN1jsI4HCwuzK2iiLIrAK MWOvkOcumfldoRnpY+/1HNa4HDO1OV0zmLh+kI1spW+m633L3aDNIkKfx5Oj+t8R h/XHNHV9Kd4NF7B9UQcvnmtZhOZaWDrbiKBbdIckZKvH/Lxikd5X2tlnbEn/AGg9 ++12+Pni38KjYuVQiPtIslY36nmb6FgItrNtoVcuIV1Y7H9PwR/PKPudhQypzp98 5zz3O/sNGT90/ijkml7ogMVvxQ+lOi2LTQjyvghqn7elfSrEShq2cXLSPHP6OxJx g+urvgQqBA8CgLAL8FF7cqkypBUnK30l53iyAW+yCDJcu/aP4Ic/5csNoNsAF/f0 ldLitD0a9ycWqU4zvc/yK3cS/2EAWAYFoMIeh3ADfX1IHHDTArU8Eoo45/gbLA9T FKETvEq9TnnnkCBznidKcJ2iD23EBx7Yp+pmhlH2mvhnugq38auiN8UnIddAteDh WQqdpqxOq1dDNRaOUSwX2BVknuVYfg3p+5iWlTavMh2K9dECYxo= =qGBH -----END PGP SIGNATURE----- --ol5qyjq3wpi4gz2a--