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=-9.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable 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 D8C83C47420 for ; Wed, 7 Oct 2020 18:10:49 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 6F9F521775 for ; Wed, 7 Oct 2020 18:10:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="JHHbdSa3" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728784AbgJGSKs (ORCPT ); Wed, 7 Oct 2020 14:10:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38028 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728656AbgJGSKr (ORCPT ); Wed, 7 Oct 2020 14:10:47 -0400 Received: from mail-ot1-x342.google.com (mail-ot1-x342.google.com [IPv6:2607:f8b0:4864:20::342]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E08BBC0613D4 for ; Wed, 7 Oct 2020 11:10:45 -0700 (PDT) Received: by mail-ot1-x342.google.com with SMTP id m13so3073480otl.9 for ; Wed, 07 Oct 2020 11:10:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=xxzMWzZDg+VcRWGQ/c2kzQrjqzz9Zr/vQmYEu/FEsRY=; b=JHHbdSa3yjRCRnWpyNRhKKiSEOBUKxgo2tfjYtBvhCHpORb0ALeU5M+5x5K5yNzCHm lADTYYQR32EHxoVtfzUaalEzZmnDh6DAaDz8LEVrvhIFw/92GoGYNABw2nQYniRBDjZZ trEXtjVKX20MlR66/aUzrdTZc9L9Ye/bFneWk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=xxzMWzZDg+VcRWGQ/c2kzQrjqzz9Zr/vQmYEu/FEsRY=; b=sI0zZYSKskN91wQsc9EXtKKXw183YGuu3SEse3JoyXPUQ7zUTA4FwYV/NtlPhGvLAY 8k6cUfUoUufe/TRl9hWL0yuYIpjGabFABD2JRfV39V/8ovMg2af0S7dOTkE2tICp/pqW TVAsDRAhWvdpREY56A9IWsJ6Uk1kfl4OkfxeLxAhycdZnImWRDvKyzIL4V8RRZ0AyotL xCZUfDffGgNXbp0oOhauoHckQD6d2S0InlecR4nEFDh0EFn3C/GXFKarg3YzNcbdSmQA 3Gqc7pWt7rBsmpYr/M5xUfKYttqZd4Z1/SYacSeVPbZYFZsj/lMy7iWEdioxy2PNesFg IPyw== X-Gm-Message-State: AOAM532xVOWHNtyR53GTICWutUFqoJNQQ5WLpg2MIZdu6ssfcT6nRJNI 9WQktIbzf0XwEDsdwv/ibVc6lGcxQYDY3jg7Q5w4jQ== X-Google-Smtp-Source: ABdhPJw9fFZN/ovuisic7f8Uj9KPXiMNmYYqtFH7SfVt9HtB4IgG/AqVfKw/vHLMcJ5OwO7pnRxjiIvlLFeiVdztT+E= X-Received: by 2002:a05:6830:1e56:: with SMTP id e22mr2510412otj.303.1602094245171; Wed, 07 Oct 2020 11:10:45 -0700 (PDT) MIME-Version: 1.0 References: <20201007164426.1812530-1-daniel.vetter@ffwll.ch> <20201007164426.1812530-12-daniel.vetter@ffwll.ch> <20201007173647.GW5177@ziepe.ca> In-Reply-To: <20201007173647.GW5177@ziepe.ca> From: Daniel Vetter Date: Wed, 7 Oct 2020 20:10:34 +0200 Message-ID: Subject: Re: [PATCH 11/13] mm: add unsafe_follow_pfn To: Jason Gunthorpe Cc: DRI Development , LKML , kvm@vger.kernel.org, Linux MM , Linux ARM , linux-samsung-soc , "open list:DMA BUFFER SHARING FRAMEWORK" , linux-s390@vger.kernel.org, Daniel Vetter , Kees Cook , Dan Williams , Andrew Morton , John Hubbard , =?UTF-8?B?SsOpcsO0bWUgR2xpc3Nl?= , Jan Kara Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Oct 7, 2020 at 7:36 PM Jason Gunthorpe wrote: > > On Wed, Oct 07, 2020 at 06:44:24PM +0200, Daniel Vetter wrote: > > Way back it was a reasonable assumptions that iomem mappings never > > change the pfn range they point at. But this has changed: > > > > - gpu drivers dynamically manage their memory nowadays, invalidating > > ptes with unmap_mapping_range when buffers get moved > > > > - contiguous dma allocations have moved from dedicated carvetouts to > > cma regions. This means if we miss the unmap the pfn might contain > > pagecache or anon memory (well anything allocated with GFP_MOVEABLE) > > > > - even /dev/mem now invalidates mappings when the kernel requests that > > iomem region when CONFIG_IO_STRICT_DEVMEM is set, see 3234ac664a87 > > ("/dev/mem: Revoke mappings when a driver claims the region") > > > > Accessing pfns obtained from ptes without holding all the locks is > > therefore no longer a good idea. > > > > Unfortunately there's some users where this is not fixable (like v4l > > userptr of iomem mappings) or involves a pile of work (vfio type1 > > iommu). For now annotate these as unsafe and splat appropriately. > > > > This patch adds an unsafe_follow_pfn, which later patches will then > > roll out to all appropriate places. > > > > Signed-off-by: Daniel Vetter > > Cc: Jason Gunthorpe > > Cc: Kees Cook > > Cc: Dan Williams > > Cc: Andrew Morton > > Cc: John Hubbard > > Cc: J=C3=A9r=C3=B4me Glisse > > Cc: Jan Kara > > Cc: Dan Williams > > Cc: linux-mm@kvack.org > > Cc: linux-arm-kernel@lists.infradead.org > > Cc: linux-samsung-soc@vger.kernel.org > > Cc: linux-media@vger.kernel.org > > Cc: kvm@vger.kernel.org > > --- > > include/linux/mm.h | 2 ++ > > mm/memory.c | 32 +++++++++++++++++++++++++++++++- > > mm/nommu.c | 17 +++++++++++++++++ > > security/Kconfig | 13 +++++++++++++ > > 4 files changed, 63 insertions(+), 1 deletion(-) > > Makes sense to me. > > I wonder if we could change the original follow_pfn to require the > ptep and then lockdep_assert_held() it against the page table lock? The safe variant with the pagetable lock is follow_pte_pmd. The only way to make follow_pfn safe is if you have an mmu notifier and corresponding retry logic. That is not covered by lockdep (it would splat if we annotate the retry side), so I'm not sure how you'd check for that? Checking for ptep lock doesn't work here, since the one leftover safe user of this (kvm) doesn't need that at all, because it has the mmu notifier. Also follow_pte_pmd will splat with lockdep if you get it wrong, since the function leaves you with the right ptlock lock when it returns. If you forget to unlock that, lockdep will complain. So I think we're as good as it gets, since I really have no idea how to make sure follow_pfn callers do have an mmu notifier registered. > > +int unsafe_follow_pfn(struct vm_area_struct *vma, unsigned long addres= s, > > + unsigned long *pfn) > > +{ > > +#ifdef CONFIG_STRICT_FOLLOW_PFN > > + pr_info("unsafe follow_pfn usage rejected, see > > CONFIG_STRICT_FOLLOW_PFN\n"); > > Wonder if we can print something useful here, like the current > PID/process name? Yeah adding comm/pid here makes sense. > > diff --git a/security/Kconfig b/security/Kconfig > > index 7561f6f99f1d..48945402e103 100644 > > --- a/security/Kconfig > > +++ b/security/Kconfig > > @@ -230,6 +230,19 @@ config STATIC_USERMODEHELPER_PATH > > If you wish for all usermode helper programs to be disabled, > > specify an empty string here (i.e. ""). > > > > +config STRICT_FOLLOW_PFN > > + bool "Disable unsafe use of follow_pfn" > > + depends on MMU > > I would probably invert this CONFIG_ALLOW_UNSAFE_FOLLOW_PFN > default n I've followed the few other CONFIG_STRICT_FOO I've seen, which are all explicit enables and default to "do not break uapi, damn the (security) bugs". Which is I think how this should be done. It is in the security section though, so hopefully competent distros will enable this all. -Daniel --=20 Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch 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=-10.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable 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 D0039C4363C for ; Wed, 7 Oct 2020 18:12:20 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 48A922168B for ; Wed, 7 Oct 2020 18:12:20 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="HOw4wAux"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="JHHbdSa3" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 48A922168B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=+IOlPhSs3ZcJWS0R+zcKbyQNL9F3GFBvmg94NSdnIu8=; b=HOw4wAuxZh20k6MGcWvg55MSm Akh9Un3Ebtp+LeHrw/htu5DUUgmChitChcoAiDj0fRdagdyWdgk/vkv9gcfCA5SzQte9XPWPW1OaC vTwqKr+obnwLXA+FAxTTv4tEAekEXED9d5WkXY9GnRsmvNxjxEbEiy3LYGAX1TzGXpoxTMpW+7+O8 8p8UjBbdb/zHS+8u19I3Fc+KVQAJOxm41LvPcM24w6SZweP/XvTTzWrqI5rSpnbSp37pClL1uJFtL 753c+j92eL6AqOxyY+EWgBDzDEkCpOpK0fYSPRtCqY55CmtRAAle/jvsfAbtI4sTofW6211fbYgiH WWAtHqiTw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kQDtp-0004AV-PN; Wed, 07 Oct 2020 18:10:49 +0000 Received: from mail-ot1-x343.google.com ([2607:f8b0:4864:20::343]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kQDtn-00049d-0q for linux-arm-kernel@lists.infradead.org; Wed, 07 Oct 2020 18:10:47 +0000 Received: by mail-ot1-x343.google.com with SMTP id e20so2650372otj.11 for ; Wed, 07 Oct 2020 11:10:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=xxzMWzZDg+VcRWGQ/c2kzQrjqzz9Zr/vQmYEu/FEsRY=; b=JHHbdSa3yjRCRnWpyNRhKKiSEOBUKxgo2tfjYtBvhCHpORb0ALeU5M+5x5K5yNzCHm lADTYYQR32EHxoVtfzUaalEzZmnDh6DAaDz8LEVrvhIFw/92GoGYNABw2nQYniRBDjZZ trEXtjVKX20MlR66/aUzrdTZc9L9Ye/bFneWk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=xxzMWzZDg+VcRWGQ/c2kzQrjqzz9Zr/vQmYEu/FEsRY=; b=nAF4lc9hXF99RTbW57CgzzGJycuR/lrOZYiGs8a4yZox6FCdSNt3Yf2j4Pxagw1KdC zQx0Wczd0XjBr/t8kwvkCeasQeslRInhsOoPQ545KIYI97xpg8A154mCotfZTpJS9wYK E8NMJibPJW6fuTfh9J96gqBmAdgmrQpKacuVvtI63VCLEYcCua0AQd28XpDzk1YiGNRt KMYOnlvdukGuMovK87Z0kZm+RdaNpFie835Y85sNoB9WUp9yncchFPHA6OIVElOO+6OG ekEUScrLFeGSQOgtG+umk91zm79d6NOhXDInJY0voeEcNe2xiOTFWbALQT7FanXT5bVm i3JQ== X-Gm-Message-State: AOAM530dmkoXxlxG9ZMVxsd5FdPIpgf0rP/VdFmQ3s3dtu8m4vd1J3lE 5SN18WlpaZlonRyE645zlroeousES7IZBBhP1nuhYA== X-Google-Smtp-Source: ABdhPJw9fFZN/ovuisic7f8Uj9KPXiMNmYYqtFH7SfVt9HtB4IgG/AqVfKw/vHLMcJ5OwO7pnRxjiIvlLFeiVdztT+E= X-Received: by 2002:a05:6830:1e56:: with SMTP id e22mr2510412otj.303.1602094245171; Wed, 07 Oct 2020 11:10:45 -0700 (PDT) MIME-Version: 1.0 References: <20201007164426.1812530-1-daniel.vetter@ffwll.ch> <20201007164426.1812530-12-daniel.vetter@ffwll.ch> <20201007173647.GW5177@ziepe.ca> In-Reply-To: <20201007173647.GW5177@ziepe.ca> From: Daniel Vetter Date: Wed, 7 Oct 2020 20:10:34 +0200 Message-ID: Subject: Re: [PATCH 11/13] mm: add unsafe_follow_pfn To: Jason Gunthorpe X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201007_141047_078846_DE5471BE X-CRM114-Status: GOOD ( 34.80 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-s390@vger.kernel.org, linux-samsung-soc , Jan Kara , Kees Cook , kvm@vger.kernel.org, John Hubbard , LKML , DRI Development , Linux MM , =?UTF-8?B?SsOpcsO0bWUgR2xpc3Nl?= , Daniel Vetter , Dan Williams , Andrew Morton , Linux ARM , "open list:DMA BUFFER SHARING FRAMEWORK" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gV2VkLCBPY3QgNywgMjAyMCBhdCA3OjM2IFBNIEphc29uIEd1bnRob3JwZSA8amdnQHppZXBl LmNhPiB3cm90ZToKPgo+IE9uIFdlZCwgT2N0IDA3LCAyMDIwIGF0IDA2OjQ0OjI0UE0gKzAyMDAs IERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPiBXYXkgYmFjayBpdCB3YXMgYSByZWFzb25hYmxlIGFz c3VtcHRpb25zIHRoYXQgaW9tZW0gbWFwcGluZ3MgbmV2ZXIKPiA+IGNoYW5nZSB0aGUgcGZuIHJh bmdlIHRoZXkgcG9pbnQgYXQuIEJ1dCB0aGlzIGhhcyBjaGFuZ2VkOgo+ID4KPiA+IC0gZ3B1IGRy aXZlcnMgZHluYW1pY2FsbHkgbWFuYWdlIHRoZWlyIG1lbW9yeSBub3dhZGF5cywgaW52YWxpZGF0 aW5nCj4gPiBwdGVzIHdpdGggdW5tYXBfbWFwcGluZ19yYW5nZSB3aGVuIGJ1ZmZlcnMgZ2V0IG1v dmVkCj4gPgo+ID4gLSBjb250aWd1b3VzIGRtYSBhbGxvY2F0aW9ucyBoYXZlIG1vdmVkIGZyb20g ZGVkaWNhdGVkIGNhcnZldG91dHMgdG8KPiA+IGNtYSByZWdpb25zLiBUaGlzIG1lYW5zIGlmIHdl IG1pc3MgdGhlIHVubWFwIHRoZSBwZm4gbWlnaHQgY29udGFpbgo+ID4gcGFnZWNhY2hlIG9yIGFu b24gbWVtb3J5ICh3ZWxsIGFueXRoaW5nIGFsbG9jYXRlZCB3aXRoIEdGUF9NT1ZFQUJMRSkKPiA+ Cj4gPiAtIGV2ZW4gL2Rldi9tZW0gbm93IGludmFsaWRhdGVzIG1hcHBpbmdzIHdoZW4gdGhlIGtl cm5lbCByZXF1ZXN0cyB0aGF0Cj4gPiBpb21lbSByZWdpb24gd2hlbiBDT05GSUdfSU9fU1RSSUNU X0RFVk1FTSBpcyBzZXQsIHNlZSAzMjM0YWM2NjRhODcKPiA+ICgiL2Rldi9tZW06IFJldm9rZSBt YXBwaW5ncyB3aGVuIGEgZHJpdmVyIGNsYWltcyB0aGUgcmVnaW9uIikKPiA+Cj4gPiBBY2Nlc3Np bmcgcGZucyBvYnRhaW5lZCBmcm9tIHB0ZXMgd2l0aG91dCBob2xkaW5nIGFsbCB0aGUgbG9ja3Mg aXMKPiA+IHRoZXJlZm9yZSBubyBsb25nZXIgYSBnb29kIGlkZWEuCj4gPgo+ID4gVW5mb3J0dW5h dGVseSB0aGVyZSdzIHNvbWUgdXNlcnMgd2hlcmUgdGhpcyBpcyBub3QgZml4YWJsZSAobGlrZSB2 NGwKPiA+IHVzZXJwdHIgb2YgaW9tZW0gbWFwcGluZ3MpIG9yIGludm9sdmVzIGEgcGlsZSBvZiB3 b3JrICh2ZmlvIHR5cGUxCj4gPiBpb21tdSkuIEZvciBub3cgYW5ub3RhdGUgdGhlc2UgYXMgdW5z YWZlIGFuZCBzcGxhdCBhcHByb3ByaWF0ZWx5Lgo+ID4KPiA+IFRoaXMgcGF0Y2ggYWRkcyBhbiB1 bnNhZmVfZm9sbG93X3Bmbiwgd2hpY2ggbGF0ZXIgcGF0Y2hlcyB3aWxsIHRoZW4KPiA+IHJvbGwg b3V0IHRvIGFsbCBhcHByb3ByaWF0ZSBwbGFjZXMuCj4gPgo+ID4gU2lnbmVkLW9mZi1ieTogRGFu aWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRlbC5jb20+Cj4gPiBDYzogSmFzb24gR3VudGhv cnBlIDxqZ2dAemllcGUuY2E+Cj4gPiBDYzogS2VlcyBDb29rIDxrZWVzY29va0BjaHJvbWl1bS5v cmc+Cj4gPiBDYzogRGFuIFdpbGxpYW1zIDxkYW4uai53aWxsaWFtc0BpbnRlbC5jb20+Cj4gPiBD YzogQW5kcmV3IE1vcnRvbiA8YWtwbUBsaW51eC1mb3VuZGF0aW9uLm9yZz4KPiA+IENjOiBKb2hu IEh1YmJhcmQgPGpodWJiYXJkQG52aWRpYS5jb20+Cj4gPiBDYzogSsOpcsO0bWUgR2xpc3NlIDxq Z2xpc3NlQHJlZGhhdC5jb20+Cj4gPiBDYzogSmFuIEthcmEgPGphY2tAc3VzZS5jej4KPiA+IENj OiBEYW4gV2lsbGlhbXMgPGRhbi5qLndpbGxpYW1zQGludGVsLmNvbT4KPiA+IENjOiBsaW51eC1t bUBrdmFjay5vcmcKPiA+IENjOiBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcK PiA+IENjOiBsaW51eC1zYW1zdW5nLXNvY0B2Z2VyLmtlcm5lbC5vcmcKPiA+IENjOiBsaW51eC1t ZWRpYUB2Z2VyLmtlcm5lbC5vcmcKPiA+IENjOiBrdm1Admdlci5rZXJuZWwub3JnCj4gPiAtLS0K PiA+ICBpbmNsdWRlL2xpbnV4L21tLmggfCAgMiArKwo+ID4gIG1tL21lbW9yeS5jICAgICAgICB8 IDMyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4gPiAgbW0vbm9tbXUuYyAgICAg ICAgIHwgMTcgKysrKysrKysrKysrKysrKysKPiA+ICBzZWN1cml0eS9LY29uZmlnICAgfCAxMyAr KysrKysrKysrKysrCj4gPiAgNCBmaWxlcyBjaGFuZ2VkLCA2MyBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pCj4KPiBNYWtlcyBzZW5zZSB0byBtZS4KPgo+IEkgd29uZGVyIGlmIHdlIGNvdWxk IGNoYW5nZSB0aGUgb3JpZ2luYWwgZm9sbG93X3BmbiB0byByZXF1aXJlIHRoZQo+IHB0ZXAgYW5k IHRoZW4gbG9ja2RlcF9hc3NlcnRfaGVsZCgpIGl0IGFnYWluc3QgdGhlIHBhZ2UgdGFibGUgbG9j az8KClRoZSBzYWZlIHZhcmlhbnQgd2l0aCB0aGUgcGFnZXRhYmxlIGxvY2sgaXMgZm9sbG93X3B0 ZV9wbWQuIFRoZSBvbmx5CndheSB0byBtYWtlIGZvbGxvd19wZm4gc2FmZSBpcyBpZiB5b3UgaGF2 ZSBhbiBtbXUgbm90aWZpZXIgYW5kCmNvcnJlc3BvbmRpbmcgcmV0cnkgbG9naWMuIFRoYXQgaXMg bm90IGNvdmVyZWQgYnkgbG9ja2RlcCAoaXQgd291bGQKc3BsYXQgaWYgd2UgYW5ub3RhdGUgdGhl IHJldHJ5IHNpZGUpLCBzbyBJJ20gbm90IHN1cmUgaG93IHlvdSdkIGNoZWNrCmZvciB0aGF0PwoK Q2hlY2tpbmcgZm9yIHB0ZXAgbG9jayBkb2Vzbid0IHdvcmsgaGVyZSwgc2luY2UgdGhlIG9uZSBs ZWZ0b3ZlciBzYWZlCnVzZXIgb2YgdGhpcyAoa3ZtKSBkb2Vzbid0IG5lZWQgdGhhdCBhdCBhbGws IGJlY2F1c2UgaXQgaGFzIHRoZSBtbXUKbm90aWZpZXIuCgpBbHNvIGZvbGxvd19wdGVfcG1kIHdp bGwgc3BsYXQgd2l0aCBsb2NrZGVwIGlmIHlvdSBnZXQgaXQgd3JvbmcsIHNpbmNlCnRoZSBmdW5j dGlvbiBsZWF2ZXMgeW91IHdpdGggdGhlIHJpZ2h0IHB0bG9jayBsb2NrIHdoZW4gaXQgcmV0dXJu cy4gSWYKeW91IGZvcmdldCB0byB1bmxvY2sgdGhhdCwgbG9ja2RlcCB3aWxsIGNvbXBsYWluLgoK U28gSSB0aGluayB3ZSdyZSBhcyBnb29kIGFzIGl0IGdldHMsIHNpbmNlIEkgcmVhbGx5IGhhdmUg bm8gaWRlYSBob3cKdG8gbWFrZSBzdXJlIGZvbGxvd19wZm4gY2FsbGVycyBkbyBoYXZlIGFuIG1t dSBub3RpZmllciByZWdpc3RlcmVkLgoKPiA+ICtpbnQgdW5zYWZlX2ZvbGxvd19wZm4oc3RydWN0 IHZtX2FyZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKPiA+ICsgICAgIHVu c2lnbmVkIGxvbmcgKnBmbikKPiA+ICt7Cj4gPiArI2lmZGVmIENPTkZJR19TVFJJQ1RfRk9MTE9X X1BGTgo+ID4gKyAgICAgcHJfaW5mbygidW5zYWZlIGZvbGxvd19wZm4gdXNhZ2UgcmVqZWN0ZWQs IHNlZQo+ID4gQ09ORklHX1NUUklDVF9GT0xMT1dfUEZOXG4iKTsKPgo+IFdvbmRlciBpZiB3ZSBj YW4gcHJpbnQgc29tZXRoaW5nIHVzZWZ1bCBoZXJlLCBsaWtlIHRoZSBjdXJyZW50Cj4gUElEL3By b2Nlc3MgbmFtZT8KClllYWggYWRkaW5nIGNvbW0vcGlkIGhlcmUgbWFrZXMgc2Vuc2UuCgo+ID4g ZGlmZiAtLWdpdCBhL3NlY3VyaXR5L0tjb25maWcgYi9zZWN1cml0eS9LY29uZmlnCj4gPiBpbmRl eCA3NTYxZjZmOTlmMWQuLjQ4OTQ1NDAyZTEwMyAxMDA2NDQKPiA+IC0tLSBhL3NlY3VyaXR5L0tj b25maWcKPiA+ICsrKyBiL3NlY3VyaXR5L0tjb25maWcKPiA+IEBAIC0yMzAsNiArMjMwLDE5IEBA IGNvbmZpZyBTVEFUSUNfVVNFUk1PREVIRUxQRVJfUEFUSAo+ID4gICAgICAgICBJZiB5b3Ugd2lz aCBmb3IgYWxsIHVzZXJtb2RlIGhlbHBlciBwcm9ncmFtcyB0byBiZSBkaXNhYmxlZCwKPiA+ICAg ICAgICAgc3BlY2lmeSBhbiBlbXB0eSBzdHJpbmcgaGVyZSAoaS5lLiAiIikuCj4gPgo+ID4gK2Nv bmZpZyBTVFJJQ1RfRk9MTE9XX1BGTgo+ID4gKyAgICAgYm9vbCAiRGlzYWJsZSB1bnNhZmUgdXNl IG9mIGZvbGxvd19wZm4iCj4gPiArICAgICBkZXBlbmRzIG9uIE1NVQo+Cj4gSSB3b3VsZCBwcm9i YWJseSBpbnZlcnQgdGhpcyBDT05GSUdfQUxMT1dfVU5TQUZFX0ZPTExPV19QRk4KPiBkZWZhdWx0 IG4KCkkndmUgZm9sbG93ZWQgdGhlIGZldyBvdGhlciBDT05GSUdfU1RSSUNUX0ZPTyBJJ3ZlIHNl ZW4sIHdoaWNoIGFyZSBhbGwKZXhwbGljaXQgZW5hYmxlcyBhbmQgZGVmYXVsdCB0byAiZG8gbm90 IGJyZWFrIHVhcGksIGRhbW4gdGhlCihzZWN1cml0eSkgYnVncyIuIFdoaWNoIGlzIEkgdGhpbmsg aG93IHRoaXMgc2hvdWxkIGJlIGRvbmUuIEl0IGlzIGluCnRoZSBzZWN1cml0eSBzZWN0aW9uIHRo b3VnaCwgc28gaG9wZWZ1bGx5IGNvbXBldGVudCBkaXN0cm9zIHdpbGwKZW5hYmxlIHRoaXMgYWxs LgotRGFuaWVsCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jw b3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaAoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgt YXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3Jn L21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo= 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=-9.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham 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 31621C4727F for ; Wed, 7 Oct 2020 18:10:48 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 A6D6F21775 for ; Wed, 7 Oct 2020 18:10:47 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="JHHbdSa3" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A6D6F21775 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B96906E919; Wed, 7 Oct 2020 18:10:46 +0000 (UTC) Received: from mail-ot1-x343.google.com (mail-ot1-x343.google.com [IPv6:2607:f8b0:4864:20::343]) by gabe.freedesktop.org (Postfix) with ESMTPS id D48DF6E919 for ; Wed, 7 Oct 2020 18:10:45 +0000 (UTC) Received: by mail-ot1-x343.google.com with SMTP id e20so2650371otj.11 for ; Wed, 07 Oct 2020 11:10:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=xxzMWzZDg+VcRWGQ/c2kzQrjqzz9Zr/vQmYEu/FEsRY=; b=JHHbdSa3yjRCRnWpyNRhKKiSEOBUKxgo2tfjYtBvhCHpORb0ALeU5M+5x5K5yNzCHm lADTYYQR32EHxoVtfzUaalEzZmnDh6DAaDz8LEVrvhIFw/92GoGYNABw2nQYniRBDjZZ trEXtjVKX20MlR66/aUzrdTZc9L9Ye/bFneWk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=xxzMWzZDg+VcRWGQ/c2kzQrjqzz9Zr/vQmYEu/FEsRY=; b=oneEUVqVFYbLjBbVW37UplsT7AGyhEYmoOlIz7r1i63CnN454zdOWolZxDcUXSIVf9 Ov6Fn+GhIF1Oc8zqF5i48/HndOW0xwrlg4gwX1llQGF1mdVS8gaZxChIyfM58er3hlK+ AwY1J4oa1u/VCj4HInDBeKnelbdoX9MaZiTTcf5Rr5ahYE5iy9UInqlU7xHXPYo9WORX jH40xx/yke+o8C1wb+vOMhbddMrKQjhmmIsSgQMp+hNYcbqagoUTw4aZh1PAbKvwuhiI HHrrjJM9YBN3zVo4PKBn2Ajw5KkgqMflwPchIgS+UDiUx+TbDmePcAUHdook+ckOkk68 PJMQ== X-Gm-Message-State: AOAM532g76NleJQWLpAC7FUcQYpJ7QH3ukT8UTYPegDVdBtBB+eSdtd7 DI77I43qFJD2NXToOe85PL8siJYoTAccDkURWllZ9cBWLPemlg== X-Google-Smtp-Source: ABdhPJw9fFZN/ovuisic7f8Uj9KPXiMNmYYqtFH7SfVt9HtB4IgG/AqVfKw/vHLMcJ5OwO7pnRxjiIvlLFeiVdztT+E= X-Received: by 2002:a05:6830:1e56:: with SMTP id e22mr2510412otj.303.1602094245171; Wed, 07 Oct 2020 11:10:45 -0700 (PDT) MIME-Version: 1.0 References: <20201007164426.1812530-1-daniel.vetter@ffwll.ch> <20201007164426.1812530-12-daniel.vetter@ffwll.ch> <20201007173647.GW5177@ziepe.ca> In-Reply-To: <20201007173647.GW5177@ziepe.ca> From: Daniel Vetter Date: Wed, 7 Oct 2020 20:10:34 +0200 Message-ID: Subject: Re: [PATCH 11/13] mm: add unsafe_follow_pfn To: Jason Gunthorpe X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-s390@vger.kernel.org, linux-samsung-soc , Jan Kara , Kees Cook , kvm@vger.kernel.org, John Hubbard , LKML , DRI Development , Linux MM , =?UTF-8?B?SsOpcsO0bWUgR2xpc3Nl?= , Daniel Vetter , Dan Williams , Andrew Morton , Linux ARM , "open list:DMA BUFFER SHARING FRAMEWORK" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gV2VkLCBPY3QgNywgMjAyMCBhdCA3OjM2IFBNIEphc29uIEd1bnRob3JwZSA8amdnQHppZXBl LmNhPiB3cm90ZToKPgo+IE9uIFdlZCwgT2N0IDA3LCAyMDIwIGF0IDA2OjQ0OjI0UE0gKzAyMDAs IERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPiBXYXkgYmFjayBpdCB3YXMgYSByZWFzb25hYmxlIGFz c3VtcHRpb25zIHRoYXQgaW9tZW0gbWFwcGluZ3MgbmV2ZXIKPiA+IGNoYW5nZSB0aGUgcGZuIHJh bmdlIHRoZXkgcG9pbnQgYXQuIEJ1dCB0aGlzIGhhcyBjaGFuZ2VkOgo+ID4KPiA+IC0gZ3B1IGRy aXZlcnMgZHluYW1pY2FsbHkgbWFuYWdlIHRoZWlyIG1lbW9yeSBub3dhZGF5cywgaW52YWxpZGF0 aW5nCj4gPiBwdGVzIHdpdGggdW5tYXBfbWFwcGluZ19yYW5nZSB3aGVuIGJ1ZmZlcnMgZ2V0IG1v dmVkCj4gPgo+ID4gLSBjb250aWd1b3VzIGRtYSBhbGxvY2F0aW9ucyBoYXZlIG1vdmVkIGZyb20g ZGVkaWNhdGVkIGNhcnZldG91dHMgdG8KPiA+IGNtYSByZWdpb25zLiBUaGlzIG1lYW5zIGlmIHdl IG1pc3MgdGhlIHVubWFwIHRoZSBwZm4gbWlnaHQgY29udGFpbgo+ID4gcGFnZWNhY2hlIG9yIGFu b24gbWVtb3J5ICh3ZWxsIGFueXRoaW5nIGFsbG9jYXRlZCB3aXRoIEdGUF9NT1ZFQUJMRSkKPiA+ Cj4gPiAtIGV2ZW4gL2Rldi9tZW0gbm93IGludmFsaWRhdGVzIG1hcHBpbmdzIHdoZW4gdGhlIGtl cm5lbCByZXF1ZXN0cyB0aGF0Cj4gPiBpb21lbSByZWdpb24gd2hlbiBDT05GSUdfSU9fU1RSSUNU X0RFVk1FTSBpcyBzZXQsIHNlZSAzMjM0YWM2NjRhODcKPiA+ICgiL2Rldi9tZW06IFJldm9rZSBt YXBwaW5ncyB3aGVuIGEgZHJpdmVyIGNsYWltcyB0aGUgcmVnaW9uIikKPiA+Cj4gPiBBY2Nlc3Np bmcgcGZucyBvYnRhaW5lZCBmcm9tIHB0ZXMgd2l0aG91dCBob2xkaW5nIGFsbCB0aGUgbG9ja3Mg aXMKPiA+IHRoZXJlZm9yZSBubyBsb25nZXIgYSBnb29kIGlkZWEuCj4gPgo+ID4gVW5mb3J0dW5h dGVseSB0aGVyZSdzIHNvbWUgdXNlcnMgd2hlcmUgdGhpcyBpcyBub3QgZml4YWJsZSAobGlrZSB2 NGwKPiA+IHVzZXJwdHIgb2YgaW9tZW0gbWFwcGluZ3MpIG9yIGludm9sdmVzIGEgcGlsZSBvZiB3 b3JrICh2ZmlvIHR5cGUxCj4gPiBpb21tdSkuIEZvciBub3cgYW5ub3RhdGUgdGhlc2UgYXMgdW5z YWZlIGFuZCBzcGxhdCBhcHByb3ByaWF0ZWx5Lgo+ID4KPiA+IFRoaXMgcGF0Y2ggYWRkcyBhbiB1 bnNhZmVfZm9sbG93X3Bmbiwgd2hpY2ggbGF0ZXIgcGF0Y2hlcyB3aWxsIHRoZW4KPiA+IHJvbGwg b3V0IHRvIGFsbCBhcHByb3ByaWF0ZSBwbGFjZXMuCj4gPgo+ID4gU2lnbmVkLW9mZi1ieTogRGFu aWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRlbC5jb20+Cj4gPiBDYzogSmFzb24gR3VudGhv cnBlIDxqZ2dAemllcGUuY2E+Cj4gPiBDYzogS2VlcyBDb29rIDxrZWVzY29va0BjaHJvbWl1bS5v cmc+Cj4gPiBDYzogRGFuIFdpbGxpYW1zIDxkYW4uai53aWxsaWFtc0BpbnRlbC5jb20+Cj4gPiBD YzogQW5kcmV3IE1vcnRvbiA8YWtwbUBsaW51eC1mb3VuZGF0aW9uLm9yZz4KPiA+IENjOiBKb2hu IEh1YmJhcmQgPGpodWJiYXJkQG52aWRpYS5jb20+Cj4gPiBDYzogSsOpcsO0bWUgR2xpc3NlIDxq Z2xpc3NlQHJlZGhhdC5jb20+Cj4gPiBDYzogSmFuIEthcmEgPGphY2tAc3VzZS5jej4KPiA+IENj OiBEYW4gV2lsbGlhbXMgPGRhbi5qLndpbGxpYW1zQGludGVsLmNvbT4KPiA+IENjOiBsaW51eC1t bUBrdmFjay5vcmcKPiA+IENjOiBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcK PiA+IENjOiBsaW51eC1zYW1zdW5nLXNvY0B2Z2VyLmtlcm5lbC5vcmcKPiA+IENjOiBsaW51eC1t ZWRpYUB2Z2VyLmtlcm5lbC5vcmcKPiA+IENjOiBrdm1Admdlci5rZXJuZWwub3JnCj4gPiAtLS0K PiA+ICBpbmNsdWRlL2xpbnV4L21tLmggfCAgMiArKwo+ID4gIG1tL21lbW9yeS5jICAgICAgICB8 IDMyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4gPiAgbW0vbm9tbXUuYyAgICAg ICAgIHwgMTcgKysrKysrKysrKysrKysrKysKPiA+ICBzZWN1cml0eS9LY29uZmlnICAgfCAxMyAr KysrKysrKysrKysrCj4gPiAgNCBmaWxlcyBjaGFuZ2VkLCA2MyBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pCj4KPiBNYWtlcyBzZW5zZSB0byBtZS4KPgo+IEkgd29uZGVyIGlmIHdlIGNvdWxk IGNoYW5nZSB0aGUgb3JpZ2luYWwgZm9sbG93X3BmbiB0byByZXF1aXJlIHRoZQo+IHB0ZXAgYW5k IHRoZW4gbG9ja2RlcF9hc3NlcnRfaGVsZCgpIGl0IGFnYWluc3QgdGhlIHBhZ2UgdGFibGUgbG9j az8KClRoZSBzYWZlIHZhcmlhbnQgd2l0aCB0aGUgcGFnZXRhYmxlIGxvY2sgaXMgZm9sbG93X3B0 ZV9wbWQuIFRoZSBvbmx5CndheSB0byBtYWtlIGZvbGxvd19wZm4gc2FmZSBpcyBpZiB5b3UgaGF2 ZSBhbiBtbXUgbm90aWZpZXIgYW5kCmNvcnJlc3BvbmRpbmcgcmV0cnkgbG9naWMuIFRoYXQgaXMg bm90IGNvdmVyZWQgYnkgbG9ja2RlcCAoaXQgd291bGQKc3BsYXQgaWYgd2UgYW5ub3RhdGUgdGhl IHJldHJ5IHNpZGUpLCBzbyBJJ20gbm90IHN1cmUgaG93IHlvdSdkIGNoZWNrCmZvciB0aGF0PwoK Q2hlY2tpbmcgZm9yIHB0ZXAgbG9jayBkb2Vzbid0IHdvcmsgaGVyZSwgc2luY2UgdGhlIG9uZSBs ZWZ0b3ZlciBzYWZlCnVzZXIgb2YgdGhpcyAoa3ZtKSBkb2Vzbid0IG5lZWQgdGhhdCBhdCBhbGws IGJlY2F1c2UgaXQgaGFzIHRoZSBtbXUKbm90aWZpZXIuCgpBbHNvIGZvbGxvd19wdGVfcG1kIHdp bGwgc3BsYXQgd2l0aCBsb2NrZGVwIGlmIHlvdSBnZXQgaXQgd3JvbmcsIHNpbmNlCnRoZSBmdW5j dGlvbiBsZWF2ZXMgeW91IHdpdGggdGhlIHJpZ2h0IHB0bG9jayBsb2NrIHdoZW4gaXQgcmV0dXJu cy4gSWYKeW91IGZvcmdldCB0byB1bmxvY2sgdGhhdCwgbG9ja2RlcCB3aWxsIGNvbXBsYWluLgoK U28gSSB0aGluayB3ZSdyZSBhcyBnb29kIGFzIGl0IGdldHMsIHNpbmNlIEkgcmVhbGx5IGhhdmUg bm8gaWRlYSBob3cKdG8gbWFrZSBzdXJlIGZvbGxvd19wZm4gY2FsbGVycyBkbyBoYXZlIGFuIG1t dSBub3RpZmllciByZWdpc3RlcmVkLgoKPiA+ICtpbnQgdW5zYWZlX2ZvbGxvd19wZm4oc3RydWN0 IHZtX2FyZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKPiA+ICsgICAgIHVu c2lnbmVkIGxvbmcgKnBmbikKPiA+ICt7Cj4gPiArI2lmZGVmIENPTkZJR19TVFJJQ1RfRk9MTE9X X1BGTgo+ID4gKyAgICAgcHJfaW5mbygidW5zYWZlIGZvbGxvd19wZm4gdXNhZ2UgcmVqZWN0ZWQs IHNlZQo+ID4gQ09ORklHX1NUUklDVF9GT0xMT1dfUEZOXG4iKTsKPgo+IFdvbmRlciBpZiB3ZSBj YW4gcHJpbnQgc29tZXRoaW5nIHVzZWZ1bCBoZXJlLCBsaWtlIHRoZSBjdXJyZW50Cj4gUElEL3By b2Nlc3MgbmFtZT8KClllYWggYWRkaW5nIGNvbW0vcGlkIGhlcmUgbWFrZXMgc2Vuc2UuCgo+ID4g ZGlmZiAtLWdpdCBhL3NlY3VyaXR5L0tjb25maWcgYi9zZWN1cml0eS9LY29uZmlnCj4gPiBpbmRl eCA3NTYxZjZmOTlmMWQuLjQ4OTQ1NDAyZTEwMyAxMDA2NDQKPiA+IC0tLSBhL3NlY3VyaXR5L0tj b25maWcKPiA+ICsrKyBiL3NlY3VyaXR5L0tjb25maWcKPiA+IEBAIC0yMzAsNiArMjMwLDE5IEBA IGNvbmZpZyBTVEFUSUNfVVNFUk1PREVIRUxQRVJfUEFUSAo+ID4gICAgICAgICBJZiB5b3Ugd2lz aCBmb3IgYWxsIHVzZXJtb2RlIGhlbHBlciBwcm9ncmFtcyB0byBiZSBkaXNhYmxlZCwKPiA+ICAg ICAgICAgc3BlY2lmeSBhbiBlbXB0eSBzdHJpbmcgaGVyZSAoaS5lLiAiIikuCj4gPgo+ID4gK2Nv bmZpZyBTVFJJQ1RfRk9MTE9XX1BGTgo+ID4gKyAgICAgYm9vbCAiRGlzYWJsZSB1bnNhZmUgdXNl IG9mIGZvbGxvd19wZm4iCj4gPiArICAgICBkZXBlbmRzIG9uIE1NVQo+Cj4gSSB3b3VsZCBwcm9i YWJseSBpbnZlcnQgdGhpcyBDT05GSUdfQUxMT1dfVU5TQUZFX0ZPTExPV19QRk4KPiBkZWZhdWx0 IG4KCkkndmUgZm9sbG93ZWQgdGhlIGZldyBvdGhlciBDT05GSUdfU1RSSUNUX0ZPTyBJJ3ZlIHNl ZW4sIHdoaWNoIGFyZSBhbGwKZXhwbGljaXQgZW5hYmxlcyBhbmQgZGVmYXVsdCB0byAiZG8gbm90 IGJyZWFrIHVhcGksIGRhbW4gdGhlCihzZWN1cml0eSkgYnVncyIuIFdoaWNoIGlzIEkgdGhpbmsg aG93IHRoaXMgc2hvdWxkIGJlIGRvbmUuIEl0IGlzIGluCnRoZSBzZWN1cml0eSBzZWN0aW9uIHRo b3VnaCwgc28gaG9wZWZ1bGx5IGNvbXBldGVudCBkaXN0cm9zIHdpbGwKZW5hYmxlIHRoaXMgYWxs LgotRGFuaWVsCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jw b3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9kcmktZGV2ZWwK