From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C8106C47254 for ; Fri, 1 May 2020 00:23:36 +0000 (UTC) Received: from ml01.01.org (ml01.01.org [198.145.21.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9CA8D20757 for ; Fri, 1 May 2020 00:23:36 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=amacapital-net.20150623.gappssmtp.com header.i=@amacapital-net.20150623.gappssmtp.com header.b="r4d1DSiL" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9CA8D20757 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=amacapital.net Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-nvdimm-bounces@lists.01.org Received: from ml01.vlan13.01.org (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 84611111F36F1; Thu, 30 Apr 2020 17:22:22 -0700 (PDT) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2607:f8b0:4864:20::1042; helo=mail-pj1-x1042.google.com; envelope-from=luto@amacapital.net; receiver= Received: from mail-pj1-x1042.google.com (mail-pj1-x1042.google.com [IPv6:2607:f8b0:4864:20::1042]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 21AAB111F36E5 for ; Thu, 30 Apr 2020 17:22:20 -0700 (PDT) Received: by mail-pj1-x1042.google.com with SMTP id t9so1666344pjw.0 for ; Thu, 30 Apr 2020 17:23:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amacapital-net.20150623.gappssmtp.com; s=20150623; h=content-transfer-encoding:from:mime-version:subject:date:message-id :references:cc:in-reply-to:to; bh=q6XSSbORtzdGM5wsbVVdblLZLp4drz8TDfwttIDJ1z4=; b=r4d1DSiLI7OzhNnrgDQYPizLp5Uolgf7Mc7ZMXQsfzXIivOBc1mAMesjCUhkWWIi2y yex588qrp8KlVr1SuLZUCj9OssMwY+aaAfCKjy+x9+JfSDfBS1Y/gdhgJEH3q8iiqNex iDvrz7IM41lpzKYWJEv4iBMdnX7oCb0T30GM+GIC5l5Y9epnFFE69w6a4yfNUb5zdep1 faAEeWjW4wlEC6m2J+TuNWxWVWiWbHwVnhwmwehvckJUO9vNL5ReuvTC8nMM66+/SQYe QSm0RTZ8YdH0IZK2Jqm+j2sNapESRzuwTfkfqlKsYv8m5cvyFuWu8KPZsccCLJzeSRtV DVLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:content-transfer-encoding:from:mime-version :subject:date:message-id:references:cc:in-reply-to:to; bh=q6XSSbORtzdGM5wsbVVdblLZLp4drz8TDfwttIDJ1z4=; b=mQexE6q1383ADzrFiUAYY0X4tKu6L1FjjIprPjvJkjrxYc4PvK2ROftt7byF9E8+2A iCWddblHG4sMJBbq9uIfydaY6MCz84+xB55hrqsG+3qzik87Vy20O1J046lv6Bp/WSev uUZlJkhcSy3eg9lX2iuCrrfE+N/FkEs5Ii+5FN47HDRiDpHnE8/7koovWCtT5/EX97A/ DM0V1mGPV0EJeE5Dwi8XzvFoj0R3BlDwgG4gqvZ2rpDpwKTIDRNm7zennryK+GW48fuo JpH/2KfrrQHU14bL33Isf7tCm2O3HAsq+iEAbPqwXv1rNNRSb1KArcHrtAsELxWQtfbh nalg== X-Gm-Message-State: AGi0Pubzq78PMX3gPkdfZGcpRSLe8Fz8K4E+mJWofyw/5kKiwGAnCHr9 7qsX8w30bPpDitmUgkLlVGFRsw== X-Google-Smtp-Source: APiQypJVozuXgtmFv1oxaxiVxd1C0J2JT+J68tf0qsuERm2lt0FgWE/aW2WqeSKKnq7hUTr7lXX6cQ== X-Received: by 2002:a17:90a:fe06:: with SMTP id ck6mr1694160pjb.4.1588292614361; Thu, 30 Apr 2020 17:23:34 -0700 (PDT) Received: from ?IPv6:2601:646:c200:1ef2:d495:581b:d692:e814? ([2601:646:c200:1ef2:d495:581b:d692:e814]) by smtp.gmail.com with ESMTPSA id c2sm781538pfp.118.2020.04.30.17.23.33 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 30 Apr 2020 17:23:33 -0700 (PDT) From: Andy Lutomirski Mime-Version: 1.0 (1.0) Subject: Re: [PATCH v2 0/2] Replace and improve "mcsafe" with copy_safe() Date: Thu, 30 Apr 2020 17:23:31 -0700 Message-Id: <1962EE67-8AD1-409D-963A-4F1E1AB3B865@amacapital.net> References: In-Reply-To: To: Linus Torvalds X-Mailer: iPhone Mail (17E262) Message-ID-Hash: XBENXPVJ6UM3RJWQFU5U7TIZGELAGBFE X-Message-ID-Hash: XBENXPVJ6UM3RJWQFU5U7TIZGELAGBFE X-MailFrom: luto@amacapital.net X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation CC: "Luck, Tony" , Andy Lutomirski , Thomas Gleixner , Ingo Molnar , Peter Zijlstra , Borislav Petkov , stable , the arch/x86 maintainers , "H. Peter Anvin" , Paul Mackerras , Benjamin Herrenschmidt , Erwin Tsaur , Michael Ellerman , Arnaldo Carvalho de Melo , linux-nvdimm , Linux Kernel Mailing List X-Mailman-Version: 3.1.1 Precedence: list List-Id: "Linux-nvdimm developer list." Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQo+IE9uIEFwciAzMCwgMjAyMCwgYXQgNToxMCBQTSwgTGludXMgVG9ydmFsZHMgPHRvcnZhbGRz QGxpbnV4LWZvdW5kYXRpb24ub3JnPiB3cm90ZToNCj4gDQo+IO+7v09uIFRodSwgQXByIDMwLCAy MDIwIGF0IDQ6NTIgUE0gRGFuIFdpbGxpYW1zIDxkYW4uai53aWxsaWFtc0BpbnRlbC5jb20+IHdy b3RlOg0KPj4gDQo+PiBZb3UgaGFkIG1lIHVudGlsIGhlcmUuIFVwIHRvIHRoaXMgcG9pbnQgSSB3 YXMgZ3Jva2tpbmcgdGhhdCBBbmR5J3MNCj4+ICJfZmFsbGlibGUiIHN1Z2dlc3Rpb24gZG9lcyBo ZWxwIGV4cGxhaW4gYmV0dGVyIHRoYW4gIl9zYWZlIiwgYmVjYXVzZQ0KPj4gdGhlIGNvcHkgaXMg ZG9pbmcgZXh0cmEgc2FmZXR5IGNoZWNrcy4gY29weV90b191c2VyKCkgYW5kDQo+PiBjb3B5X3Rv X3VzZXJfZmFsbGlibGUoKSBtZWFuICpzb21ldGhpbmcqIHdoZXJlIGNvcHlfdG9fdXNlcl9zYWZl KCkNCj4+IGRvZXMgbm90Lg0KPiANCj4gSXQncyBhIGhvcnJpYmxlIHdvcmQsIGJ0dy4gVGhlIHdv cmQgZG9lc24ndCBhY3R1YWxseSBtZWFuIHdoYXQgQW5keQ0KPiBtZWFucyBpdCB0byBtZWFuLiAi ZmFsbGlibGUiIG1lYW5zICJjYW4gbWFrZSBtaXN0YWtlcyIsIG5vdCAiY2FuDQo+IGZhdWx0Ii4N Cj4gDQo+IFNvICJmYWxsaWJsZSIgaXMgYSBob3JyaWJsZSBuYW1lLg0KDQpXaGF0IEkgd2FzIHRy eWluZyB0byBnZXQgYXQgd2FzIG5vdCDigJxjYW4gZmF1bHTigJ0gYnV0IOKAnGNhbiBtYWxmdW5j dGlvbuKAnS4gIE1heWJlIOKAnHVucmVsaWFibGXigJ0/ICBCZXR0ZXIgd29yZHMgd2VsY29tZS4N Cg0KPiANCj4gQnV0IGFueXdheSwgSSBkb24ndCBoYXRlIHNvbWV0aGluZyBsaWtlICJjb3B5X3Rv X3VzZXJfZmFsbGlibGUoKSINCj4gY29uY2VwdHVhbGx5LiBUaGUgbmFtaW5nIG5lZWRzIHRvIGJl IGZpeGVkLCBpbiB0aGF0ICJ1c2VyIiBjYW4gYWx3YXlzDQo+IHRha2UgYSBmYXVsdCwgc28gaXQn cyB0aGUgX3NvdXJjZV8gdGhhdCBjYW4gZmF1bHQsIG5vdCB0aGUgInVzZXIiDQo+IHBhcnQuDQoN CkkgZG9u4oCZdCBsaWtlIHRoaXMuICDigJx1c2Vy4oCdIGFscmVhZHkgaW1wbGllZCB0aGF0IGJh c2ljYWxseSBhbnl0aGluZyBjYW4gYmUgd3Jvbmcgd2l0aCB0aGUgbWVtb3J5IOKAlCBpdCBjYW4g YmUgdW5tYXBwZWQgZW50aXJlbHksIGl0IGNhbiBoYXZlIHRoZSB3cm9uZyBwZXJtaXNzaW9ucywg aXQgY2FuIGhhdmUgdGhlIHdyb25nIHByb3RlY3Rpb24ga2V5LCBpdCBjYW4gaGF2ZSBhbiBFQ0Mg ZXJyb3IsIGV0Yy4gIElmIHRoZSBvcGVyYXRpb24geW91IHdhbnQgaXMg4oCcY29weSBmcm9tIHVu cmVsaWFibGUga2VybmVsIG1lbW9yeSAoYnV0IHdpdGggYSBkZWZpbml0ZWx5IHZhbGlkIHBvaW50 ZXIpIHRvIHVzZXIgbWVtb3J54oCdLCB5b3Ugd2FudCBjb3B5X3VucmVsaWFibGVfdG9fdXNlcigp Lg0KDQpOb3cgbWF5YmUgY29weV90b191c2VyKCkgc2hvdWxkICphbHdheXMqIHdvcmsgdGhpcyB3 YXksIGJ1dCBJ4oCZbSBub3QgY29udmluY2VkLiBDZXJ0YWlubHkgcHV0X3VzZXIoKSBzaG91bGRu 4oCZdCDigJQgdGhlIHJlc3VsdCB3b3VsZG7igJl0IGV2ZW4gYmUgd2VsbCBkZWZpbmVkLiBBbmQg SeKAmW0gdW5jb252aW5jZWQgdGhhdCBpdCBtYWtlcyBtdWNoIHNlbnNlIGZvciB0aGUgbWFqb3Jp dHkgb2YgY29weV90b191c2VyKCkgY2FsbGVycyB0aGF0IGFyZSBhbHNvIGRpcmVjdGx5IGFjY2Vz c2luZyB0aGUgc291cmNlIHN0cnVjdHVyZS4NCg0KSSBhbHNvIHRlbmQgdG8gdGhpbmsgdGhhdCB0 aGUgcHJvYmVfa2VybmVsIHN0dWZmIHNob3VsZCBqdXN0IHN0YXkgc2VwYXJhdGUuIFRob3NlIGFy ZSByZWFsbHkgZm9yIHR3byB0b3RhbGx5IHNlcGFyYXRlIHR5cGVzIG9mIHVzZTogZWl0aGVyIHRo ZSBrZXJuZWwgaXMgdHJ5aW5nIGl0cyBiZXN0IHRvIHByaW50IGFuIGVycnIgbWVzc2FnZSB3aXRo b3V0IGV4cGxvZGluZyB3b3JzZSwgb3IgaXTigJlzIGludm9sdmVkIGluIGVCUEYgb3IgdHJhZGlu ZyBoYWNrcyBpbiB3aGljaCBhZGRyZXNzIGlzIGFyYml0cmFyeSBhbmQgZXNzZW50aWFsbHkgdW50 cnVzdGVkLgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpM aW51eC1udmRpbW0gbWFpbGluZyBsaXN0IC0tIGxpbnV4LW52ZGltbUBsaXN0cy4wMS5vcmcKVG8g dW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0byBsaW51eC1udmRpbW0tbGVhdmVAbGlzdHMuMDEu b3JnCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.7 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8648EC47247 for ; Fri, 1 May 2020 00:23:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 6254320757 for ; Fri, 1 May 2020 00:23:36 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=amacapital-net.20150623.gappssmtp.com header.i=@amacapital-net.20150623.gappssmtp.com header.b="r4d1DSiL" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726384AbgEAAXf (ORCPT ); Thu, 30 Apr 2020 20:23:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41240 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726545AbgEAAXf (ORCPT ); Thu, 30 Apr 2020 20:23:35 -0400 Received: from mail-pl1-x643.google.com (mail-pl1-x643.google.com [IPv6:2607:f8b0:4864:20::643]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 04863C035495 for ; Thu, 30 Apr 2020 17:23:35 -0700 (PDT) Received: by mail-pl1-x643.google.com with SMTP id f8so3048558plt.2 for ; Thu, 30 Apr 2020 17:23:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amacapital-net.20150623.gappssmtp.com; s=20150623; h=content-transfer-encoding:from:mime-version:subject:date:message-id :references:cc:in-reply-to:to; bh=q6XSSbORtzdGM5wsbVVdblLZLp4drz8TDfwttIDJ1z4=; b=r4d1DSiLI7OzhNnrgDQYPizLp5Uolgf7Mc7ZMXQsfzXIivOBc1mAMesjCUhkWWIi2y yex588qrp8KlVr1SuLZUCj9OssMwY+aaAfCKjy+x9+JfSDfBS1Y/gdhgJEH3q8iiqNex iDvrz7IM41lpzKYWJEv4iBMdnX7oCb0T30GM+GIC5l5Y9epnFFE69w6a4yfNUb5zdep1 faAEeWjW4wlEC6m2J+TuNWxWVWiWbHwVnhwmwehvckJUO9vNL5ReuvTC8nMM66+/SQYe QSm0RTZ8YdH0IZK2Jqm+j2sNapESRzuwTfkfqlKsYv8m5cvyFuWu8KPZsccCLJzeSRtV DVLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:content-transfer-encoding:from:mime-version :subject:date:message-id:references:cc:in-reply-to:to; bh=q6XSSbORtzdGM5wsbVVdblLZLp4drz8TDfwttIDJ1z4=; b=Z0uwW+1dKDuT7elBP5lex7OvOc5xA1k+0L5GKawWSUY//tR1RQpj6NH6OfJloy2fhU CtOTwOU8qY6hTbl9svZQ/36R0001Ey7MzCW57ccV9XRDUbdVFU0Eb1ybp4b5gD0qTEiC /sUYLCooaYni1BX/ipi6vp8k77p7sMyey6KAxbatHS3HSIEHABHEUmx1xMPpEnz3Keh8 uEYtE53gXaO2ATXdyVrcAOjKVo2LqdOE9chNgH5juhiVpG7nMDuD372BA0uXe2xmtc+F nihxS1YSFRsTuEvSyatMsNhlNG3yFFa+UiLlevWGLTq+1wy+KYC9VK69cQoUnUZBsAnE GMFA== X-Gm-Message-State: AGi0PuaRkeeHXBPgwRIdRH2BKm0TXIkTjvPXMZVB780kQEc2jsoeqXf5 ZtKwQQlsRq9AKV0LcH87HSCdhQ== X-Google-Smtp-Source: APiQypJVozuXgtmFv1oxaxiVxd1C0J2JT+J68tf0qsuERm2lt0FgWE/aW2WqeSKKnq7hUTr7lXX6cQ== X-Received: by 2002:a17:90a:fe06:: with SMTP id ck6mr1694160pjb.4.1588292614361; Thu, 30 Apr 2020 17:23:34 -0700 (PDT) Received: from ?IPv6:2601:646:c200:1ef2:d495:581b:d692:e814? ([2601:646:c200:1ef2:d495:581b:d692:e814]) by smtp.gmail.com with ESMTPSA id c2sm781538pfp.118.2020.04.30.17.23.33 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 30 Apr 2020 17:23:33 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable From: Andy Lutomirski Mime-Version: 1.0 (1.0) Subject: Re: [PATCH v2 0/2] Replace and improve "mcsafe" with copy_safe() Date: Thu, 30 Apr 2020 17:23:31 -0700 Message-Id: <1962EE67-8AD1-409D-963A-4F1E1AB3B865@amacapital.net> References: Cc: Dan Williams , "Luck, Tony" , Andy Lutomirski , Thomas Gleixner , Ingo Molnar , Peter Zijlstra , Borislav Petkov , stable , the arch/x86 maintainers , "H. Peter Anvin" , Paul Mackerras , Benjamin Herrenschmidt , Erwin Tsaur , Michael Ellerman , Arnaldo Carvalho de Melo , linux-nvdimm , Linux Kernel Mailing List In-Reply-To: To: Linus Torvalds X-Mailer: iPhone Mail (17E262) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > On Apr 30, 2020, at 5:10 PM, Linus Torvalds wrote: >=20 > =EF=BB=BFOn Thu, Apr 30, 2020 at 4:52 PM Dan Williams wrote: >>=20 >> You had me until here. Up to this point I was grokking that Andy's >> "_fallible" suggestion does help explain better than "_safe", because >> the copy is doing extra safety checks. copy_to_user() and >> copy_to_user_fallible() mean *something* where copy_to_user_safe() >> does not. >=20 > It's a horrible word, btw. The word doesn't actually mean what Andy > means it to mean. "fallible" means "can make mistakes", not "can > fault". >=20 > So "fallible" is a horrible name. What I was trying to get at was not =E2=80=9Ccan fault=E2=80=9D but =E2=80=9C= can malfunction=E2=80=9D. Maybe =E2=80=9Cunreliable=E2=80=9D? Better words= welcome. >=20 > But anyway, I don't hate something like "copy_to_user_fallible()" > conceptually. The naming needs to be fixed, in that "user" can always > take a fault, so it's the _source_ that can fault, not the "user" > part. I don=E2=80=99t like this. =E2=80=9Cuser=E2=80=9D already implied that basi= cally anything can be wrong with the memory =E2=80=94 it can be unmapped ent= irely, it can have the wrong permissions, it can have the wrong protection k= ey, it can have an ECC error, etc. If the operation you want is =E2=80=9Cco= py from unreliable kernel memory (but with a definitely valid pointer) to us= er memory=E2=80=9D, you want copy_unreliable_to_user(). Now maybe copy_to_user() should *always* work this way, but I=E2=80=99m not c= onvinced. Certainly put_user() shouldn=E2=80=99t =E2=80=94 the result wouldn= =E2=80=99t even be well defined. And I=E2=80=99m unconvinced that it makes m= uch sense for the majority of copy_to_user() callers that are also directly a= ccessing the source structure. I also tend to think that the probe_kernel stuff should just stay separate. T= hose are really for two totally separate types of use: either the kernel is t= rying its best to print an errr message without exploding worse, or it=E2=80= =99s involved in eBPF or trading hacks in which address is arbitrary and ess= entially untrusted.