Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp580887pxb; Sat, 16 Jan 2021 00:07:24 -0800 (PST) X-Google-Smtp-Source: ABdhPJxLpOF7i+KazM/T8+PhyFnNr2o5g2hHM7g09UwmpFgTEeGkDHqIyk6/PMB/BsTsQZHWsDWE X-Received: by 2002:a17:906:a283:: with SMTP id i3mr11261932ejz.496.1610784444137; Sat, 16 Jan 2021 00:07:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1610784444; cv=none; d=google.com; s=arc-20160816; b=rhvWgH0gy892i4zS7DxWLHqY6/fOJwBs1CPN11MxnrgV99bNPoZTyuWWY572QoagWV zc5pbhx+wo2etGpkMEjCusk+rcpzAj/Sudw0kOeGs4ozwXftnzbIYS1M8akhb/EkU3im Z85G58ZoLL8CE1ohwWywOr41bQDV7fXqb/bF2zDB2p1Zuu1um3daEZGraF907gIkdz6Z XjxoZZzQyslMasGMd6PykPmAbh93eFo8qj0JBy/VsADPbmRGzjCf6DdMmHqcTWvXWn1y 9Ood2M5OsbmIeCAKhtbRd/DZ5Vr/rqe0CQ4af9V045sqJMLyBPWh834LNwxSdqDP/mNP 1NPg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:cc:to:from:subject :content-transfer-encoding:mime-version:dkim-signature; bh=9muHTujHAHMZmzbI2YDra9AnH8YPz6lEA0N9mwBfFEM=; b=zH24Q0qcfJAVDjkHUfLXBgU0Vr+R0ZPakCcSl4LWVPzPFh0symx/VFMCFLEZNK9Ugo KhD7vutBHcZZ/bM+egfisgnF35xSsGdEr9nV0VaNxyHNDmJQVl/yHuMzTEZEE05nBwn1 vAS5GF389tLEqzzpF6tQcY5A8UE4PlaPyyx+CGJ0Y8AP/WimRlqVdAnkKfVb8tmTbP4g i8OlSl27Y5ul7WWfk1LvjvqV3KBGnU+tpW7f25GYNoNWelvkPyxbuJ/HUW0aXcNfmI7r WUL2XIZd22UxgxViHnBhT5bt/kWS0tCeYfphVl0plxpMEnh36ZPIbVYc7fxJkOG6jBZg Xx8A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=t3bZOSG4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id i25si3222502ejc.587.2021.01.16.00.07.00; Sat, 16 Jan 2021 00:07:24 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=t3bZOSG4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726754AbhAPIEi (ORCPT + 99 others); Sat, 16 Jan 2021 03:04:38 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36554 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725917AbhAPIEi (ORCPT ); Sat, 16 Jan 2021 03:04:38 -0500 Received: from mail-pj1-x102a.google.com (mail-pj1-x102a.google.com [IPv6:2607:f8b0:4864:20::102a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DC733C061757 for ; Sat, 16 Jan 2021 00:03:57 -0800 (PST) Received: by mail-pj1-x102a.google.com with SMTP id g15so2266150pjd.2 for ; Sat, 16 Jan 2021 00:03:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:content-transfer-encoding:subject:from:to:cc:date :message-id; bh=9muHTujHAHMZmzbI2YDra9AnH8YPz6lEA0N9mwBfFEM=; b=t3bZOSG44ANooPgB0/O9avyrfD+eEDse82PBf1rvOtElin8E97mTo1fOM4kX+EqxIW NbJrLMEQEpM0/8Eb/6ea9fMTxmajcAcy5wrU5t2QCnIgA1OwgtkOxUwzaNAwODq7k1e4 MXRyhGoeINaGzGCDjBNEIrzyHW/1SBT1PveRK6IGiCSBDXEm3uWSLq08Me5dB1DRUolw s3RVeBT48AUTbfbNwdOQMyA9aHdTBRlnYF6iYtPhK6n/SSCbL1GiyFFUfW1o/H0vG/BU adz5hN8P6GPe/kiMmumpM/7T7y/kTZgqm8FtjoNoMycya3yAnUvVwTJ/WqAD/ZXlzSZd Qw2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:content-transfer-encoding:subject :from:to:cc:date:message-id; bh=9muHTujHAHMZmzbI2YDra9AnH8YPz6lEA0N9mwBfFEM=; b=sSHN7MDmywIFvC9mhqbBHJE+dBVslE8wQfQ5cJY0NvqaDMWRkdPb1+I/WJI07xjx10 YIljEHejTsbFWrq+wkvuJkubAZEIF/nh7lSbUHpXx+wHWLTGwrG3lGn6shE9klrF9hKQ xvHDet9E7KG6qF3/7VhN68LMWms/tfo5v5vqfhAQS+qq+yVblEAV8/3k1+npJT1CYt90 JfUktbdt6Th3MiSCMa4sqMDt3z+YY0gQcIIJlOpLZONWxWTbq346UZsUIWcg77H4znc+ j5SImmOTQSx83RyGpUci729ZV9yrkEqmH8zUrkX80ri38e2XzF3GQFbp8qBDfm34IcFb t53Q== X-Gm-Message-State: AOAM533g9nVMy7S/zJvfpzxCiezAS+5tCZk/pS+wJRbc3AFCpmZq7Vki OAxqzYXkM95l1eb4sf8eyTtBEG0LWmI= X-Received: by 2002:a17:902:7007:b029:dc:e89:50f1 with SMTP id y7-20020a1709027007b02900dc0e8950f1mr16677517plk.72.1610784237320; Sat, 16 Jan 2021 00:03:57 -0800 (PST) Received: from localhost ([116.12.58.169]) by smtp.gmail.com with ESMTPSA id nk11sm9995446pjb.26.2021.01.16.00.03.54 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 16 Jan 2021 00:03:56 -0800 (PST) Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Subject: Splicing to/from a tty From: "Oliver Giles" To: Cc: "Greg Kroah-Hartman" , "Christoph Hellwig" Date: Sat, 16 Jan 2021 20:35:41 +1300 Message-Id: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit 36e2c7421f02 (fs: don't allow splice read/write without explicit ops= ) broke my userspace application which talks to an SSL VPN by splice()ing b= etween "openssl s_client" and "pppd". The latter operates over a pty, and s= ince that commit there is no fallback for splice()ing between a pipe and a = pty, or any tty for that matter. The above commit mentions switching them to the iter ops and using generic_= file_splice_read. IIUC, this would require implementing iter ops also on th= e line disciplines, which sounds pretty disruptive. For my case, I attempted to instead implement splice_write and splice_read = in tty_fops; I managed to get splice_write working calling ld->ops->write, = but splice_read is not so simple because the tty_ldisc_ops read method expe= cts a userspace buffer. So I cannot see how to implement this without eithe= r (a) using set_fs, or (b) implementing iter ops on all line disciplines. Is splice()ing between a tty and a pipe worth supporting at all? Not a big = deal for my use case at least, but it used to work.