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=-12.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, USER_AGENT_GIT 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 D05A6C63798 for ; Fri, 30 Oct 2020 10:08:54 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 65C46221FF for ; Fri, 30 Oct 2020 10:08:54 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="GO2lvH63" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726437AbgJ3KIx (ORCPT ); Fri, 30 Oct 2020 06:08:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50316 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726329AbgJ3KIu (ORCPT ); Fri, 30 Oct 2020 06:08:50 -0400 Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com [IPv6:2a00:1450:4864:20::444]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5D897C0613D2 for ; Fri, 30 Oct 2020 03:08:50 -0700 (PDT) Received: by mail-wr1-x444.google.com with SMTP id n18so5790781wrs.5 for ; Fri, 30 Oct 2020 03:08:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=I4ilcVBAHuOCTtZMsF1m8kT7eVt7mrBkTULM8ihAU5Q=; b=GO2lvH63CKIIvm4pmukV3hDOR0RNqeUA9AeBrEF8NltqrZhXote2bDxTwEJdVvTtJd xkKihu5rtfTbifyZElLLYgP0VDNzFe0Jt/QvYOwQWROiwJr0/YeFXLdGoKQhPmhfWICx 70SdqYqWB/N/SS3b98Sha2tiQj/Nzf1byR0IU= 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=I4ilcVBAHuOCTtZMsF1m8kT7eVt7mrBkTULM8ihAU5Q=; b=EkEjrbEaBaFH3fbhPisXq7cfs+Txt9fCih3f2KcgJ7EOJmBXpyk7JhX1M6EAZj48A9 /9uwXUbw05oiiAEzLrIlNo3bx/DB0m7/FdcDzWiNH7Xywyy1J2Qf1Rtc7PDflFA6FgGt WQCBuMHHno+9NIvZgmvzoxaXBhmPSCKUfBmTp++x1OmkRZZpTxXlYrB1KddOJQnir9/k B+6kQW7GKRVOshUY2mBs5ZfdYawrqxUOwbLxk8zUQamA3o66KoUDJkeR4UemBqjdCSb1 7K9LneO6DhrAXg0AQGqqGFjBUqp4HeRXRgVkTvEnudbOj0PrjqLf7IY923uWV+BlIky/ VBhw== X-Gm-Message-State: AOAM531bxlCl959zUENuIWaDiYZc9ENPSfnD8It/imSbAEU209C0FS0T mkuTfOZo+1fBplJ4GN/dO/aw7Q== X-Google-Smtp-Source: ABdhPJwl+0pBrq79hYTZxdZJ4HUKk5mm6G3nf6ZchRV1nc1hfz+MJY+K7zHup1CZanOLY9UfEQro7Q== X-Received: by 2002:a5d:4bd1:: with SMTP id l17mr2236438wrt.38.1604052529128; Fri, 30 Oct 2020 03:08:49 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id v189sm4430947wmg.14.2020.10.30.03.08.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Oct 2020 03:08:48 -0700 (PDT) From: Daniel Vetter To: DRI Development , LKML Cc: kvm@vger.kernel.org, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-media@vger.kernel.org, Daniel Vetter , Daniel Vetter , Christoph Hellwig , Jason Gunthorpe , Kees Cook , Dan Williams , Andrew Morton , John Hubbard , =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= , Jan Kara Subject: [PATCH v5 08/15] mm: Add unsafe_follow_pfn Date: Fri, 30 Oct 2020 11:08:08 +0100 Message-Id: <20201030100815.2269-9-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201030100815.2269-1-daniel.vetter@ffwll.ch> References: <20201030100815.2269-1-daniel.vetter@ffwll.ch> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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. Also mark up follow_pfn as EXPORT_SYMBOL_GPL. The only safe way to use that by drivers/modules is together with an mmu_notifier, and that's all _GPL stuff. Signed-off-by: Daniel Vetter Cc: Christoph Hellwig Cc: Jason Gunthorpe Cc: Kees Cook Cc: Dan Williams Cc: Andrew Morton Cc: John Hubbard Cc: Jérôme 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 Signed-off-by: Daniel Vetter -- v5: Suggestions from Christoph - reindent for less weirdness - use IS_ENABLED instead of #ifdef - same checks for nommu, for consistency - EXPORT_SYMBOL_GPL for follow_pfn. - kerneldoc was already updated in previous versions to explain when follow_pfn can be used safely --- include/linux/mm.h | 2 ++ mm/memory.c | 34 ++++++++++++++++++++++++++++++++-- mm/nommu.c | 27 ++++++++++++++++++++++++++- security/Kconfig | 13 +++++++++++++ 4 files changed, 73 insertions(+), 3 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 83d0be101a38..d0fe8bf46a9d 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -1661,6 +1661,8 @@ int follow_pte_pmd(struct mm_struct *mm, unsigned long address, pte_t **ptepp, pmd_t **pmdpp, spinlock_t **ptlp); int follow_pfn(struct vm_area_struct *vma, unsigned long address, unsigned long *pfn); +int unsafe_follow_pfn(struct vm_area_struct *vma, unsigned long address, + unsigned long *pfn); int follow_phys(struct vm_area_struct *vma, unsigned long address, unsigned int flags, unsigned long *prot, resource_size_t *phys); int generic_access_phys(struct vm_area_struct *vma, unsigned long addr, diff --git a/mm/memory.c b/mm/memory.c index ac32039ce941..0db0c5e233fd 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -4795,7 +4795,12 @@ EXPORT_SYMBOL(follow_pte_pmd); * @address: user virtual address * @pfn: location to store found PFN * - * Only IO mappings and raw PFN mappings are allowed. + * Only IO mappings and raw PFN mappings are allowed. Note that callers must + * ensure coherency with pte updates by using a &mmu_notifier to follow updates. + * If this is not feasible, or the access to the @pfn is only very short term, + * use follow_pte_pmd() instead and hold the pagetable lock for the duration of + * the access instead. Any caller not following these requirements must use + * unsafe_follow_pfn() instead. * * Return: zero and the pfn at @pfn on success, -ve otherwise. */ @@ -4816,7 +4821,32 @@ int follow_pfn(struct vm_area_struct *vma, unsigned long address, pte_unmap_unlock(ptep, ptl); return 0; } -EXPORT_SYMBOL(follow_pfn); +EXPORT_SYMBOL_GPL(follow_pfn); + +/** + * unsafe_follow_pfn - look up PFN at a user virtual address + * @vma: memory mapping + * @address: user virtual address + * @pfn: location to store found PFN + * + * Only IO mappings and raw PFN mappings are allowed. + * + * Returns zero and the pfn at @pfn on success, -ve otherwise. + */ +int unsafe_follow_pfn(struct vm_area_struct *vma, unsigned long address, + unsigned long *pfn) +{ + if (IS_ENABLED(CONFIG_STRICT_FOLLOW_PFN)) { + pr_info("unsafe follow_pfn usage rejected, see CONFIG_STRICT_FOLLOW_PFN\n"); + return -EINVAL; + } + + WARN_ONCE(1, "unsafe follow_pfn usage\n"); + add_taint(TAINT_USER, LOCKDEP_STILL_OK); + + return follow_pfn(vma, address, pfn); +} +EXPORT_SYMBOL(unsafe_follow_pfn); #ifdef CONFIG_HAVE_IOREMAP_PROT int follow_phys(struct vm_area_struct *vma, diff --git a/mm/nommu.c b/mm/nommu.c index 0faf39b32cdb..79fc98a6c94a 100644 --- a/mm/nommu.c +++ b/mm/nommu.c @@ -130,7 +130,32 @@ int follow_pfn(struct vm_area_struct *vma, unsigned long address, *pfn = address >> PAGE_SHIFT; return 0; } -EXPORT_SYMBOL(follow_pfn); +EXPORT_SYMBOL_GPL(follow_pfn); + +/** + * unsafe_follow_pfn - look up PFN at a user virtual address + * @vma: memory mapping + * @address: user virtual address + * @pfn: location to store found PFN + * + * Only IO mappings and raw PFN mappings are allowed. + * + * Returns zero and the pfn at @pfn on success, -ve otherwise. + */ +int unsafe_follow_pfn(struct vm_area_struct *vma, unsigned long address, + unsigned long *pfn) +{ + if (IS_ENABLED(CONFIG_STRICT_FOLLOW_PFN)) { + pr_info("unsafe follow_pfn usage rejected, see CONFIG_STRICT_FOLLOW_PFN\n"); + return -EINVAL; + } + + WARN_ONCE(1, "unsafe follow_pfn usage\n"); + add_taint(TAINT_USER, LOCKDEP_STILL_OK); + + return follow_pfn(vma, address, pfn); +} +EXPORT_SYMBOL(unsafe_follow_pfn); LIST_HEAD(vmap_area_list); 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 + help + Some functionality in the kernel follows userspace mappings to iomem + ranges in an unsafe matter. Examples include v4l userptr for zero-copy + buffers sharing. + + If this option is switched on, such access is rejected. Only enable + this option when you must run userspace which requires this. + + If in doubt, say Y. + source "security/selinux/Kconfig" source "security/smack/Kconfig" source "security/tomoyo/Kconfig" -- 2.28.0 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=-12.8 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, USER_AGENT_GIT 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 D1778C4363A for ; Fri, 30 Oct 2020 10:34:24 +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 06C16221EB for ; Fri, 30 Oct 2020 10:34:23 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="LNpXIW33"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="S3b8GKHD"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="GO2lvH63" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 06C16221EB 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:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=naRsttGYdot05l4sghXylLNyJZQAXME9VdQssl7YVDY=; b=LNpXIW33sYtvUVvVbodkRNY7A Mzd9Gn6iCwChwHmw1fNhu3W7YBvU5HmAk5x7FjdgUifMSIXRdvwNAO1qE09YtqjuqNSgpEcUI+FTO NdwMJHuZElgC7h0WE3ZYrQatdcRnYg0UARkfavjaZR/5I/Vk09rElN3jg6DzRvgMcvHpO+Oiyc3g/ Co74kyUg/qEmND2EW9j1WHsxT53QyCd1jzqD8El15POahKWPrSc/OEvfo7e06XtMo3J9y9k4rgbsl /7mD1JaNof2E3lgt1YDPh0rJQgTsVSL4EAy9nhEemiLhJ41vLGdztUwpqwqpCRANXvRHdKu3rzvNs bxbBJgPOQ==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kYRhv-0007MX-3d; Fri, 30 Oct 2020 10:32:31 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kYRhG-00070v-CN for linux-arm-kernel@merlin.infradead.org; Fri, 30 Oct 2020 10:31:50 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:Content-Type: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender :Reply-To:Content-ID:Content-Description; bh=I4ilcVBAHuOCTtZMsF1m8kT7eVt7mrBkTULM8ihAU5Q=; b=S3b8GKHDmjLfe+lL1ZbHhNnOlQ yD3jizJVdMDZgVEsf0p/DqUmILMMAqPhjwPXijPhiLsd1b8ICedhWXvT3F3f5l1WuS4mWsFQF9ka1 6zy1KaZcn/60N5U878nkb9Gbh6kgbJJv613I/7YmOYU4PIePtafHlRM5oMZee1eOKI4YBfWj/1DI6 MPnibcROFf0uLN3FO0xncU/9OOw9ILUN/+qfh5qrMIgQzB6uosAUlicnm6nBG//qRA0LUqaVydQpt SEFmDWEtS/h05rBUHKpH3n4DNAawTcB3UY4lpo1KB68hNdCcXWiPU9Jn2SUishVa6l+alUSjURRlq zMSX6IsA==; Received: from mail-wr1-x443.google.com ([2a00:1450:4864:20::443]) by casper.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kYRL1-0007qP-A2 for linux-arm-kernel@lists.infradead.org; Fri, 30 Oct 2020 10:08:57 +0000 Received: by mail-wr1-x443.google.com with SMTP id m13so5794640wrj.7 for ; Fri, 30 Oct 2020 03:08:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=I4ilcVBAHuOCTtZMsF1m8kT7eVt7mrBkTULM8ihAU5Q=; b=GO2lvH63CKIIvm4pmukV3hDOR0RNqeUA9AeBrEF8NltqrZhXote2bDxTwEJdVvTtJd xkKihu5rtfTbifyZElLLYgP0VDNzFe0Jt/QvYOwQWROiwJr0/YeFXLdGoKQhPmhfWICx 70SdqYqWB/N/SS3b98Sha2tiQj/Nzf1byR0IU= 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=I4ilcVBAHuOCTtZMsF1m8kT7eVt7mrBkTULM8ihAU5Q=; b=MThh1ybOqZXGHruQe/zGw4QPfXwwPTiae/QPxiiqYOVYE+6OpURVosV4fYtrGjUdoU PkzRlOZ/uGuOHqbLLISPIrxAgFv+Pmj0sReesMKWQ/MSixSYsZe9oYF+n+xx3/jAfsgJ MaxJ+Euu0vDmvIpa0wuzTI3ifqOYxV/Y3gtIr/jULKlLXtOkcp3JmlNm+14YctGI4WpF Y8bJO0NfDfCDwTOgfUe/deOHezpEgYtKnvT2ChbBOmEIO8dfmOVObsC065leJO7Pi1mR KB0oIwCDts/Lbs4M7qgKf/p+r/2vN8KwOdFSiJDl61dvUJMQZul+4/N5Vatn/TEl4unR RL0w== X-Gm-Message-State: AOAM5306EXdENHaBbwZALGzmyetOzzgxpEO7pLG3Qj6XlIorkW13J6/V RTqfn7Cp8e1yr44Yct66rSNGBA== X-Google-Smtp-Source: ABdhPJwl+0pBrq79hYTZxdZJ4HUKk5mm6G3nf6ZchRV1nc1hfz+MJY+K7zHup1CZanOLY9UfEQro7Q== X-Received: by 2002:a5d:4bd1:: with SMTP id l17mr2236438wrt.38.1604052529128; Fri, 30 Oct 2020 03:08:49 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id v189sm4430947wmg.14.2020.10.30.03.08.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Oct 2020 03:08:48 -0700 (PDT) From: Daniel Vetter To: DRI Development , LKML Subject: [PATCH v5 08/15] mm: Add unsafe_follow_pfn Date: Fri, 30 Oct 2020 11:08:08 +0100 Message-Id: <20201030100815.2269-9-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201030100815.2269-1-daniel.vetter@ffwll.ch> References: <20201030100815.2269-1-daniel.vetter@ffwll.ch> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201030_100852_517093_368157E4 X-CRM114-Status: GOOD ( 26.61 ) 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-samsung-soc@vger.kernel.org, Jan Kara , Kees Cook , kvm@vger.kernel.org, Jason Gunthorpe , Daniel Vetter , Christoph Hellwig , linux-mm@kvack.org, =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= , John Hubbard , Daniel Vetter , Dan Williams , Andrew Morton , linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org 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 V2F5IGJhY2sgaXQgd2FzIGEgcmVhc29uYWJsZSBhc3N1bXB0aW9ucyB0aGF0IGlvbWVtIG1hcHBp bmdzIG5ldmVyCmNoYW5nZSB0aGUgcGZuIHJhbmdlIHRoZXkgcG9pbnQgYXQuIEJ1dCB0aGlzIGhh cyBjaGFuZ2VkOgoKLSBncHUgZHJpdmVycyBkeW5hbWljYWxseSBtYW5hZ2UgdGhlaXIgbWVtb3J5 IG5vd2FkYXlzLCBpbnZhbGlkYXRpbmcKcHRlcyB3aXRoIHVubWFwX21hcHBpbmdfcmFuZ2Ugd2hl biBidWZmZXJzIGdldCBtb3ZlZAoKLSBjb250aWd1b3VzIGRtYSBhbGxvY2F0aW9ucyBoYXZlIG1v dmVkIGZyb20gZGVkaWNhdGVkIGNhcnZldG91dHMgdG8KY21hIHJlZ2lvbnMuIFRoaXMgbWVhbnMg aWYgd2UgbWlzcyB0aGUgdW5tYXAgdGhlIHBmbiBtaWdodCBjb250YWluCnBhZ2VjYWNoZSBvciBh bm9uIG1lbW9yeSAod2VsbCBhbnl0aGluZyBhbGxvY2F0ZWQgd2l0aCBHRlBfTU9WRUFCTEUpCgot IGV2ZW4gL2Rldi9tZW0gbm93IGludmFsaWRhdGVzIG1hcHBpbmdzIHdoZW4gdGhlIGtlcm5lbCBy ZXF1ZXN0cyB0aGF0CmlvbWVtIHJlZ2lvbiB3aGVuIENPTkZJR19JT19TVFJJQ1RfREVWTUVNIGlz IHNldCwgc2VlIDMyMzRhYzY2NGE4NwooIi9kZXYvbWVtOiBSZXZva2UgbWFwcGluZ3Mgd2hlbiBh IGRyaXZlciBjbGFpbXMgdGhlIHJlZ2lvbiIpCgpBY2Nlc3NpbmcgcGZucyBvYnRhaW5lZCBmcm9t IHB0ZXMgd2l0aG91dCBob2xkaW5nIGFsbCB0aGUgbG9ja3MgaXMKdGhlcmVmb3JlIG5vIGxvbmdl ciBhIGdvb2QgaWRlYS4KClVuZm9ydHVuYXRlbHkgdGhlcmUncyBzb21lIHVzZXJzIHdoZXJlIHRo aXMgaXMgbm90IGZpeGFibGUgKGxpa2UgdjRsCnVzZXJwdHIgb2YgaW9tZW0gbWFwcGluZ3MpIG9y IGludm9sdmVzIGEgcGlsZSBvZiB3b3JrICh2ZmlvIHR5cGUxCmlvbW11KS4gRm9yIG5vdyBhbm5v dGF0ZSB0aGVzZSBhcyB1bnNhZmUgYW5kIHNwbGF0IGFwcHJvcHJpYXRlbHkuCgpUaGlzIHBhdGNo IGFkZHMgYW4gdW5zYWZlX2ZvbGxvd19wZm4sIHdoaWNoIGxhdGVyIHBhdGNoZXMgd2lsbCB0aGVu CnJvbGwgb3V0IHRvIGFsbCBhcHByb3ByaWF0ZSBwbGFjZXMuCgpBbHNvIG1hcmsgdXAgZm9sbG93 X3BmbiBhcyBFWFBPUlRfU1lNQk9MX0dQTC4gVGhlIG9ubHkgc2FmZSB3YXkgdG8gdXNlCnRoYXQg YnkgZHJpdmVycy9tb2R1bGVzIGlzIHRvZ2V0aGVyIHdpdGggYW4gbW11X25vdGlmaWVyLCBhbmQg dGhhdCdzCmFsbCBfR1BMIHN0dWZmLgoKU2lnbmVkLW9mZi1ieTogRGFuaWVsIFZldHRlciA8ZGFu aWVsLnZldHRlckBpbnRlbC5jb20+CkNjOiBDaHJpc3RvcGggSGVsbHdpZyA8aGNoQGluZnJhZGVh ZC5vcmc+CkNjOiBKYXNvbiBHdW50aG9ycGUgPGpnZ0B6aWVwZS5jYT4KQ2M6IEtlZXMgQ29vayA8 a2Vlc2Nvb2tAY2hyb21pdW0ub3JnPgpDYzogRGFuIFdpbGxpYW1zIDxkYW4uai53aWxsaWFtc0Bp bnRlbC5jb20+CkNjOiBBbmRyZXcgTW9ydG9uIDxha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnPgpD YzogSm9obiBIdWJiYXJkIDxqaHViYmFyZEBudmlkaWEuY29tPgpDYzogSsOpcsO0bWUgR2xpc3Nl IDxqZ2xpc3NlQHJlZGhhdC5jb20+CkNjOiBKYW4gS2FyYSA8amFja0BzdXNlLmN6PgpDYzogRGFu IFdpbGxpYW1zIDxkYW4uai53aWxsaWFtc0BpbnRlbC5jb20+CkNjOiBsaW51eC1tbUBrdmFjay5v cmcKQ2M6IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpDYzogbGludXgtc2Ft c3VuZy1zb2NAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1tZWRpYUB2Z2VyLmtlcm5lbC5vcmcK Q2M6IGt2bUB2Z2VyLmtlcm5lbC5vcmcKU2lnbmVkLW9mZi1ieTogRGFuaWVsIFZldHRlciA8ZGFu aWVsLnZldHRlckBmZndsbC5jaD4KLS0KdjU6IFN1Z2dlc3Rpb25zIGZyb20gQ2hyaXN0b3BoCi0g cmVpbmRlbnQgZm9yIGxlc3Mgd2VpcmRuZXNzCi0gdXNlIElTX0VOQUJMRUQgaW5zdGVhZCBvZiAj aWZkZWYKLSBzYW1lIGNoZWNrcyBmb3Igbm9tbXUsIGZvciBjb25zaXN0ZW5jeQotIEVYUE9SVF9T WU1CT0xfR1BMIGZvciBmb2xsb3dfcGZuLgotIGtlcm5lbGRvYyB3YXMgYWxyZWFkeSB1cGRhdGVk IGluIHByZXZpb3VzIHZlcnNpb25zIHRvIGV4cGxhaW4gd2hlbgogIGZvbGxvd19wZm4gY2FuIGJl IHVzZWQgc2FmZWx5Ci0tLQogaW5jbHVkZS9saW51eC9tbS5oIHwgIDIgKysKIG1tL21lbW9yeS5j ICAgICAgICB8IDM0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIG1tL25vbW11 LmMgICAgICAgICB8IDI3ICsrKysrKysrKysrKysrKysrKysrKysrKysrLQogc2VjdXJpdHkvS2Nv bmZpZyAgIHwgMTMgKysrKysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCA3MyBpbnNlcnRpb25z KCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbW0uaCBiL2lu Y2x1ZGUvbGludXgvbW0uaAppbmRleCA4M2QwYmUxMDFhMzguLmQwZmU4YmY0NmE5ZCAxMDA2NDQK LS0tIGEvaW5jbHVkZS9saW51eC9tbS5oCisrKyBiL2luY2x1ZGUvbGludXgvbW0uaApAQCAtMTY2 MSw2ICsxNjYxLDggQEAgaW50IGZvbGxvd19wdGVfcG1kKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1 bnNpZ25lZCBsb25nIGFkZHJlc3MsCiAJCSAgIHB0ZV90ICoqcHRlcHAsIHBtZF90ICoqcG1kcHAs IHNwaW5sb2NrX3QgKipwdGxwKTsKIGludCBmb2xsb3dfcGZuKHN0cnVjdCB2bV9hcmVhX3N0cnVj dCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsCiAJdW5zaWduZWQgbG9uZyAqcGZuKTsKK2lu dCB1bnNhZmVfZm9sbG93X3BmbihzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQg bG9uZyBhZGRyZXNzLAorCQkgICAgICB1bnNpZ25lZCBsb25nICpwZm4pOwogaW50IGZvbGxvd19w aHlzKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsCiAJ CXVuc2lnbmVkIGludCBmbGFncywgdW5zaWduZWQgbG9uZyAqcHJvdCwgcmVzb3VyY2Vfc2l6ZV90 ICpwaHlzKTsKIGludCBnZW5lcmljX2FjY2Vzc19waHlzKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAq dm1hLCB1bnNpZ25lZCBsb25nIGFkZHIsCmRpZmYgLS1naXQgYS9tbS9tZW1vcnkuYyBiL21tL21l bW9yeS5jCmluZGV4IGFjMzIwMzljZTk0MS4uMGRiMGM1ZTIzM2ZkIDEwMDY0NAotLS0gYS9tbS9t ZW1vcnkuYworKysgYi9tbS9tZW1vcnkuYwpAQCAtNDc5NSw3ICs0Nzk1LDEyIEBAIEVYUE9SVF9T WU1CT0woZm9sbG93X3B0ZV9wbWQpOwogICogQGFkZHJlc3M6IHVzZXIgdmlydHVhbCBhZGRyZXNz CiAgKiBAcGZuOiBsb2NhdGlvbiB0byBzdG9yZSBmb3VuZCBQRk4KICAqCi0gKiBPbmx5IElPIG1h cHBpbmdzIGFuZCByYXcgUEZOIG1hcHBpbmdzIGFyZSBhbGxvd2VkLgorICogT25seSBJTyBtYXBw aW5ncyBhbmQgcmF3IFBGTiBtYXBwaW5ncyBhcmUgYWxsb3dlZC4gTm90ZSB0aGF0IGNhbGxlcnMg bXVzdAorICogZW5zdXJlIGNvaGVyZW5jeSB3aXRoIHB0ZSB1cGRhdGVzIGJ5IHVzaW5nIGEgJm1t dV9ub3RpZmllciB0byBmb2xsb3cgdXBkYXRlcy4KKyAqIElmIHRoaXMgaXMgbm90IGZlYXNpYmxl LCBvciB0aGUgYWNjZXNzIHRvIHRoZSBAcGZuIGlzIG9ubHkgdmVyeSBzaG9ydCB0ZXJtLAorICog dXNlIGZvbGxvd19wdGVfcG1kKCkgaW5zdGVhZCBhbmQgaG9sZCB0aGUgcGFnZXRhYmxlIGxvY2sg Zm9yIHRoZSBkdXJhdGlvbiBvZgorICogdGhlIGFjY2VzcyBpbnN0ZWFkLiBBbnkgY2FsbGVyIG5v dCBmb2xsb3dpbmcgdGhlc2UgcmVxdWlyZW1lbnRzIG11c3QgdXNlCisgKiB1bnNhZmVfZm9sbG93 X3BmbigpIGluc3RlYWQuCiAgKgogICogUmV0dXJuOiB6ZXJvIGFuZCB0aGUgcGZuIGF0IEBwZm4g b24gc3VjY2VzcywgLXZlIG90aGVyd2lzZS4KICAqLwpAQCAtNDgxNiw3ICs0ODIxLDMyIEBAIGlu dCBmb2xsb3dfcGZuKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFk ZHJlc3MsCiAJcHRlX3VubWFwX3VubG9jayhwdGVwLCBwdGwpOwogCXJldHVybiAwOwogfQotRVhQ T1JUX1NZTUJPTChmb2xsb3dfcGZuKTsKK0VYUE9SVF9TWU1CT0xfR1BMKGZvbGxvd19wZm4pOwor CisvKioKKyAqIHVuc2FmZV9mb2xsb3dfcGZuIC0gbG9vayB1cCBQRk4gYXQgYSB1c2VyIHZpcnR1 YWwgYWRkcmVzcworICogQHZtYTogbWVtb3J5IG1hcHBpbmcKKyAqIEBhZGRyZXNzOiB1c2VyIHZp cnR1YWwgYWRkcmVzcworICogQHBmbjogbG9jYXRpb24gdG8gc3RvcmUgZm91bmQgUEZOCisgKgor ICogT25seSBJTyBtYXBwaW5ncyBhbmQgcmF3IFBGTiBtYXBwaW5ncyBhcmUgYWxsb3dlZC4KKyAq CisgKiBSZXR1cm5zIHplcm8gYW5kIHRoZSBwZm4gYXQgQHBmbiBvbiBzdWNjZXNzLCAtdmUgb3Ro ZXJ3aXNlLgorICovCitpbnQgdW5zYWZlX2ZvbGxvd19wZm4oc3RydWN0IHZtX2FyZWFfc3RydWN0 ICp2bWEsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKKwkJICAgICAgdW5zaWduZWQgbG9uZyAqcGZu KQoreworCWlmIChJU19FTkFCTEVEKENPTkZJR19TVFJJQ1RfRk9MTE9XX1BGTikpIHsKKwkJcHJf aW5mbygidW5zYWZlIGZvbGxvd19wZm4gdXNhZ2UgcmVqZWN0ZWQsIHNlZSBDT05GSUdfU1RSSUNU X0ZPTExPV19QRk5cbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlXQVJOX09OQ0UoMSwg InVuc2FmZSBmb2xsb3dfcGZuIHVzYWdlXG4iKTsKKwlhZGRfdGFpbnQoVEFJTlRfVVNFUiwgTE9D S0RFUF9TVElMTF9PSyk7CisKKwlyZXR1cm4gZm9sbG93X3Bmbih2bWEsIGFkZHJlc3MsIHBmbik7 Cit9CitFWFBPUlRfU1lNQk9MKHVuc2FmZV9mb2xsb3dfcGZuKTsKIAogI2lmZGVmIENPTkZJR19I QVZFX0lPUkVNQVBfUFJPVAogaW50IGZvbGxvd19waHlzKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAq dm1hLApkaWZmIC0tZ2l0IGEvbW0vbm9tbXUuYyBiL21tL25vbW11LmMKaW5kZXggMGZhZjM5YjMy Y2RiLi43OWZjOThhNmM5NGEgMTAwNjQ0Ci0tLSBhL21tL25vbW11LmMKKysrIGIvbW0vbm9tbXUu YwpAQCAtMTMwLDcgKzEzMCwzMiBAQCBpbnQgZm9sbG93X3BmbihzdHJ1Y3Qgdm1fYXJlYV9zdHJ1 Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLAogCSpwZm4gPSBhZGRyZXNzID4+IFBBR0Vf U0hJRlQ7CiAJcmV0dXJuIDA7CiB9Ci1FWFBPUlRfU1lNQk9MKGZvbGxvd19wZm4pOworRVhQT1JU X1NZTUJPTF9HUEwoZm9sbG93X3Bmbik7CisKKy8qKgorICogdW5zYWZlX2ZvbGxvd19wZm4gLSBs b29rIHVwIFBGTiBhdCBhIHVzZXIgdmlydHVhbCBhZGRyZXNzCisgKiBAdm1hOiBtZW1vcnkgbWFw cGluZworICogQGFkZHJlc3M6IHVzZXIgdmlydHVhbCBhZGRyZXNzCisgKiBAcGZuOiBsb2NhdGlv biB0byBzdG9yZSBmb3VuZCBQRk4KKyAqCisgKiBPbmx5IElPIG1hcHBpbmdzIGFuZCByYXcgUEZO IG1hcHBpbmdzIGFyZSBhbGxvd2VkLgorICoKKyAqIFJldHVybnMgemVybyBhbmQgdGhlIHBmbiBh dCBAcGZuIG9uIHN1Y2Nlc3MsIC12ZSBvdGhlcndpc2UuCisgKi8KK2ludCB1bnNhZmVfZm9sbG93 X3BmbihzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLAor CQkgICAgICB1bnNpZ25lZCBsb25nICpwZm4pCit7CisJaWYgKElTX0VOQUJMRUQoQ09ORklHX1NU UklDVF9GT0xMT1dfUEZOKSkgeworCQlwcl9pbmZvKCJ1bnNhZmUgZm9sbG93X3BmbiB1c2FnZSBy ZWplY3RlZCwgc2VlIENPTkZJR19TVFJJQ1RfRk9MTE9XX1BGTlxuIik7CisJCXJldHVybiAtRUlO VkFMOworCX0KKworCVdBUk5fT05DRSgxLCAidW5zYWZlIGZvbGxvd19wZm4gdXNhZ2VcbiIpOwor CWFkZF90YWludChUQUlOVF9VU0VSLCBMT0NLREVQX1NUSUxMX09LKTsKKworCXJldHVybiBmb2xs b3dfcGZuKHZtYSwgYWRkcmVzcywgcGZuKTsKK30KK0VYUE9SVF9TWU1CT0wodW5zYWZlX2ZvbGxv d19wZm4pOwogCiBMSVNUX0hFQUQodm1hcF9hcmVhX2xpc3QpOwogCmRpZmYgLS1naXQgYS9zZWN1 cml0eS9LY29uZmlnIGIvc2VjdXJpdHkvS2NvbmZpZwppbmRleCA3NTYxZjZmOTlmMWQuLjQ4OTQ1 NDAyZTEwMyAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvS2NvbmZpZworKysgYi9zZWN1cml0eS9LY29u ZmlnCkBAIC0yMzAsNiArMjMwLDE5IEBAIGNvbmZpZyBTVEFUSUNfVVNFUk1PREVIRUxQRVJfUEFU SAogCSAgSWYgeW91IHdpc2ggZm9yIGFsbCB1c2VybW9kZSBoZWxwZXIgcHJvZ3JhbXMgdG8gYmUg ZGlzYWJsZWQsCiAJICBzcGVjaWZ5IGFuIGVtcHR5IHN0cmluZyBoZXJlIChpLmUuICIiKS4KIAor Y29uZmlnIFNUUklDVF9GT0xMT1dfUEZOCisJYm9vbCAiRGlzYWJsZSB1bnNhZmUgdXNlIG9mIGZv bGxvd19wZm4iCisJZGVwZW5kcyBvbiBNTVUKKwloZWxwCisJICBTb21lIGZ1bmN0aW9uYWxpdHkg aW4gdGhlIGtlcm5lbCBmb2xsb3dzIHVzZXJzcGFjZSBtYXBwaW5ncyB0byBpb21lbQorCSAgcmFu Z2VzIGluIGFuIHVuc2FmZSBtYXR0ZXIuIEV4YW1wbGVzIGluY2x1ZGUgdjRsIHVzZXJwdHIgZm9y IHplcm8tY29weQorCSAgYnVmZmVycyBzaGFyaW5nLgorCisJICBJZiB0aGlzIG9wdGlvbiBpcyBz d2l0Y2hlZCBvbiwgc3VjaCBhY2Nlc3MgaXMgcmVqZWN0ZWQuIE9ubHkgZW5hYmxlCisJICB0aGlz IG9wdGlvbiB3aGVuIHlvdSBtdXN0IHJ1biB1c2Vyc3BhY2Ugd2hpY2ggcmVxdWlyZXMgdGhpcy4K KworCSAgSWYgaW4gZG91YnQsIHNheSBZLgorCiBzb3VyY2UgInNlY3VyaXR5L3NlbGludXgvS2Nv bmZpZyIKIHNvdXJjZSAic2VjdXJpdHkvc21hY2svS2NvbmZpZyIKIHNvdXJjZSAic2VjdXJpdHkv dG9tb3lvL0tjb25maWciCi0tIAoyLjI4LjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1h cm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcv bWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg== 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=-12.5 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,USER_AGENT_GIT 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 46488C64E90 for ; Fri, 30 Oct 2020 10:09:05 +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 BFC5722228 for ; Fri, 30 Oct 2020 10:09:04 +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="GO2lvH63" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BFC5722228 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 9D7926ED91; Fri, 30 Oct 2020 10:08:57 +0000 (UTC) Received: from mail-wr1-x442.google.com (mail-wr1-x442.google.com [IPv6:2a00:1450:4864:20::442]) by gabe.freedesktop.org (Postfix) with ESMTPS id B188F6ED88 for ; Fri, 30 Oct 2020 10:08:50 +0000 (UTC) Received: by mail-wr1-x442.google.com with SMTP id w1so5809096wrm.4 for ; Fri, 30 Oct 2020 03:08:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=I4ilcVBAHuOCTtZMsF1m8kT7eVt7mrBkTULM8ihAU5Q=; b=GO2lvH63CKIIvm4pmukV3hDOR0RNqeUA9AeBrEF8NltqrZhXote2bDxTwEJdVvTtJd xkKihu5rtfTbifyZElLLYgP0VDNzFe0Jt/QvYOwQWROiwJr0/YeFXLdGoKQhPmhfWICx 70SdqYqWB/N/SS3b98Sha2tiQj/Nzf1byR0IU= 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=I4ilcVBAHuOCTtZMsF1m8kT7eVt7mrBkTULM8ihAU5Q=; b=IUrTALAMl4I7H9fKoRcH/G45Y/vjoUQEvrfcomXRoHYUAVQb1kBEEgt6/WnITJJASU RSrKDIAtBgu7mQH37bOPbhox62k4GxlC1iv/fCH/c+jDcAPlG/hgPZeKu7X5rEy0Jo3j U9soeRwVOmUiGntsE0neNUn8lHseXrBDs3P+YzDCYXv6cav+URfyMn8YTRDBe8GhR/Gc bVwL3rVGzQEXlLoS+Q+249nvMMRM/i9ve6RkfxLgn7qxRb8E3w28sy0Kqs4Ee+yjA2GU LjlIrkak1En8HESYixUKJ+lCYTwz2ak9ejDPpAJ0ID4lp4am+r/8ItN5KAbnbv3lADpo w+Dw== X-Gm-Message-State: AOAM531DWtnt6D8hitMfKwPZAn/K46V43NewnRPpTfDcnYQQ9i1fMMCc e3kDGVD1xBZF+q3W/XyEjSvfnWvzKHCytPy7 X-Google-Smtp-Source: ABdhPJwl+0pBrq79hYTZxdZJ4HUKk5mm6G3nf6ZchRV1nc1hfz+MJY+K7zHup1CZanOLY9UfEQro7Q== X-Received: by 2002:a5d:4bd1:: with SMTP id l17mr2236438wrt.38.1604052529128; Fri, 30 Oct 2020 03:08:49 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id v189sm4430947wmg.14.2020.10.30.03.08.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Oct 2020 03:08:48 -0700 (PDT) From: Daniel Vetter To: DRI Development , LKML Subject: [PATCH v5 08/15] mm: Add unsafe_follow_pfn Date: Fri, 30 Oct 2020 11:08:08 +0100 Message-Id: <20201030100815.2269-9-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201030100815.2269-1-daniel.vetter@ffwll.ch> References: <20201030100815.2269-1-daniel.vetter@ffwll.ch> MIME-Version: 1.0 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-samsung-soc@vger.kernel.org, Jan Kara , Kees Cook , kvm@vger.kernel.org, Jason Gunthorpe , Daniel Vetter , Christoph Hellwig , linux-mm@kvack.org, =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= , John Hubbard , Daniel Vetter , Dan Williams , Andrew Morton , linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" V2F5IGJhY2sgaXQgd2FzIGEgcmVhc29uYWJsZSBhc3N1bXB0aW9ucyB0aGF0IGlvbWVtIG1hcHBp bmdzIG5ldmVyCmNoYW5nZSB0aGUgcGZuIHJhbmdlIHRoZXkgcG9pbnQgYXQuIEJ1dCB0aGlzIGhh cyBjaGFuZ2VkOgoKLSBncHUgZHJpdmVycyBkeW5hbWljYWxseSBtYW5hZ2UgdGhlaXIgbWVtb3J5 IG5vd2FkYXlzLCBpbnZhbGlkYXRpbmcKcHRlcyB3aXRoIHVubWFwX21hcHBpbmdfcmFuZ2Ugd2hl biBidWZmZXJzIGdldCBtb3ZlZAoKLSBjb250aWd1b3VzIGRtYSBhbGxvY2F0aW9ucyBoYXZlIG1v dmVkIGZyb20gZGVkaWNhdGVkIGNhcnZldG91dHMgdG8KY21hIHJlZ2lvbnMuIFRoaXMgbWVhbnMg aWYgd2UgbWlzcyB0aGUgdW5tYXAgdGhlIHBmbiBtaWdodCBjb250YWluCnBhZ2VjYWNoZSBvciBh bm9uIG1lbW9yeSAod2VsbCBhbnl0aGluZyBhbGxvY2F0ZWQgd2l0aCBHRlBfTU9WRUFCTEUpCgot IGV2ZW4gL2Rldi9tZW0gbm93IGludmFsaWRhdGVzIG1hcHBpbmdzIHdoZW4gdGhlIGtlcm5lbCBy ZXF1ZXN0cyB0aGF0CmlvbWVtIHJlZ2lvbiB3aGVuIENPTkZJR19JT19TVFJJQ1RfREVWTUVNIGlz IHNldCwgc2VlIDMyMzRhYzY2NGE4NwooIi9kZXYvbWVtOiBSZXZva2UgbWFwcGluZ3Mgd2hlbiBh IGRyaXZlciBjbGFpbXMgdGhlIHJlZ2lvbiIpCgpBY2Nlc3NpbmcgcGZucyBvYnRhaW5lZCBmcm9t IHB0ZXMgd2l0aG91dCBob2xkaW5nIGFsbCB0aGUgbG9ja3MgaXMKdGhlcmVmb3JlIG5vIGxvbmdl ciBhIGdvb2QgaWRlYS4KClVuZm9ydHVuYXRlbHkgdGhlcmUncyBzb21lIHVzZXJzIHdoZXJlIHRo aXMgaXMgbm90IGZpeGFibGUgKGxpa2UgdjRsCnVzZXJwdHIgb2YgaW9tZW0gbWFwcGluZ3MpIG9y IGludm9sdmVzIGEgcGlsZSBvZiB3b3JrICh2ZmlvIHR5cGUxCmlvbW11KS4gRm9yIG5vdyBhbm5v dGF0ZSB0aGVzZSBhcyB1bnNhZmUgYW5kIHNwbGF0IGFwcHJvcHJpYXRlbHkuCgpUaGlzIHBhdGNo IGFkZHMgYW4gdW5zYWZlX2ZvbGxvd19wZm4sIHdoaWNoIGxhdGVyIHBhdGNoZXMgd2lsbCB0aGVu CnJvbGwgb3V0IHRvIGFsbCBhcHByb3ByaWF0ZSBwbGFjZXMuCgpBbHNvIG1hcmsgdXAgZm9sbG93 X3BmbiBhcyBFWFBPUlRfU1lNQk9MX0dQTC4gVGhlIG9ubHkgc2FmZSB3YXkgdG8gdXNlCnRoYXQg YnkgZHJpdmVycy9tb2R1bGVzIGlzIHRvZ2V0aGVyIHdpdGggYW4gbW11X25vdGlmaWVyLCBhbmQg dGhhdCdzCmFsbCBfR1BMIHN0dWZmLgoKU2lnbmVkLW9mZi1ieTogRGFuaWVsIFZldHRlciA8ZGFu aWVsLnZldHRlckBpbnRlbC5jb20+CkNjOiBDaHJpc3RvcGggSGVsbHdpZyA8aGNoQGluZnJhZGVh ZC5vcmc+CkNjOiBKYXNvbiBHdW50aG9ycGUgPGpnZ0B6aWVwZS5jYT4KQ2M6IEtlZXMgQ29vayA8 a2Vlc2Nvb2tAY2hyb21pdW0ub3JnPgpDYzogRGFuIFdpbGxpYW1zIDxkYW4uai53aWxsaWFtc0Bp bnRlbC5jb20+CkNjOiBBbmRyZXcgTW9ydG9uIDxha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnPgpD YzogSm9obiBIdWJiYXJkIDxqaHViYmFyZEBudmlkaWEuY29tPgpDYzogSsOpcsO0bWUgR2xpc3Nl IDxqZ2xpc3NlQHJlZGhhdC5jb20+CkNjOiBKYW4gS2FyYSA8amFja0BzdXNlLmN6PgpDYzogRGFu IFdpbGxpYW1zIDxkYW4uai53aWxsaWFtc0BpbnRlbC5jb20+CkNjOiBsaW51eC1tbUBrdmFjay5v cmcKQ2M6IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpDYzogbGludXgtc2Ft c3VuZy1zb2NAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1tZWRpYUB2Z2VyLmtlcm5lbC5vcmcK Q2M6IGt2bUB2Z2VyLmtlcm5lbC5vcmcKU2lnbmVkLW9mZi1ieTogRGFuaWVsIFZldHRlciA8ZGFu aWVsLnZldHRlckBmZndsbC5jaD4KLS0KdjU6IFN1Z2dlc3Rpb25zIGZyb20gQ2hyaXN0b3BoCi0g cmVpbmRlbnQgZm9yIGxlc3Mgd2VpcmRuZXNzCi0gdXNlIElTX0VOQUJMRUQgaW5zdGVhZCBvZiAj aWZkZWYKLSBzYW1lIGNoZWNrcyBmb3Igbm9tbXUsIGZvciBjb25zaXN0ZW5jeQotIEVYUE9SVF9T WU1CT0xfR1BMIGZvciBmb2xsb3dfcGZuLgotIGtlcm5lbGRvYyB3YXMgYWxyZWFkeSB1cGRhdGVk IGluIHByZXZpb3VzIHZlcnNpb25zIHRvIGV4cGxhaW4gd2hlbgogIGZvbGxvd19wZm4gY2FuIGJl IHVzZWQgc2FmZWx5Ci0tLQogaW5jbHVkZS9saW51eC9tbS5oIHwgIDIgKysKIG1tL21lbW9yeS5j ICAgICAgICB8IDM0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIG1tL25vbW11 LmMgICAgICAgICB8IDI3ICsrKysrKysrKysrKysrKysrKysrKysrKysrLQogc2VjdXJpdHkvS2Nv bmZpZyAgIHwgMTMgKysrKysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCA3MyBpbnNlcnRpb25z KCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbW0uaCBiL2lu Y2x1ZGUvbGludXgvbW0uaAppbmRleCA4M2QwYmUxMDFhMzguLmQwZmU4YmY0NmE5ZCAxMDA2NDQK LS0tIGEvaW5jbHVkZS9saW51eC9tbS5oCisrKyBiL2luY2x1ZGUvbGludXgvbW0uaApAQCAtMTY2 MSw2ICsxNjYxLDggQEAgaW50IGZvbGxvd19wdGVfcG1kKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1 bnNpZ25lZCBsb25nIGFkZHJlc3MsCiAJCSAgIHB0ZV90ICoqcHRlcHAsIHBtZF90ICoqcG1kcHAs IHNwaW5sb2NrX3QgKipwdGxwKTsKIGludCBmb2xsb3dfcGZuKHN0cnVjdCB2bV9hcmVhX3N0cnVj dCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsCiAJdW5zaWduZWQgbG9uZyAqcGZuKTsKK2lu dCB1bnNhZmVfZm9sbG93X3BmbihzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQg bG9uZyBhZGRyZXNzLAorCQkgICAgICB1bnNpZ25lZCBsb25nICpwZm4pOwogaW50IGZvbGxvd19w aHlzKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsCiAJ CXVuc2lnbmVkIGludCBmbGFncywgdW5zaWduZWQgbG9uZyAqcHJvdCwgcmVzb3VyY2Vfc2l6ZV90 ICpwaHlzKTsKIGludCBnZW5lcmljX2FjY2Vzc19waHlzKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAq dm1hLCB1bnNpZ25lZCBsb25nIGFkZHIsCmRpZmYgLS1naXQgYS9tbS9tZW1vcnkuYyBiL21tL21l bW9yeS5jCmluZGV4IGFjMzIwMzljZTk0MS4uMGRiMGM1ZTIzM2ZkIDEwMDY0NAotLS0gYS9tbS9t ZW1vcnkuYworKysgYi9tbS9tZW1vcnkuYwpAQCAtNDc5NSw3ICs0Nzk1LDEyIEBAIEVYUE9SVF9T WU1CT0woZm9sbG93X3B0ZV9wbWQpOwogICogQGFkZHJlc3M6IHVzZXIgdmlydHVhbCBhZGRyZXNz CiAgKiBAcGZuOiBsb2NhdGlvbiB0byBzdG9yZSBmb3VuZCBQRk4KICAqCi0gKiBPbmx5IElPIG1h cHBpbmdzIGFuZCByYXcgUEZOIG1hcHBpbmdzIGFyZSBhbGxvd2VkLgorICogT25seSBJTyBtYXBw aW5ncyBhbmQgcmF3IFBGTiBtYXBwaW5ncyBhcmUgYWxsb3dlZC4gTm90ZSB0aGF0IGNhbGxlcnMg bXVzdAorICogZW5zdXJlIGNvaGVyZW5jeSB3aXRoIHB0ZSB1cGRhdGVzIGJ5IHVzaW5nIGEgJm1t dV9ub3RpZmllciB0byBmb2xsb3cgdXBkYXRlcy4KKyAqIElmIHRoaXMgaXMgbm90IGZlYXNpYmxl LCBvciB0aGUgYWNjZXNzIHRvIHRoZSBAcGZuIGlzIG9ubHkgdmVyeSBzaG9ydCB0ZXJtLAorICog dXNlIGZvbGxvd19wdGVfcG1kKCkgaW5zdGVhZCBhbmQgaG9sZCB0aGUgcGFnZXRhYmxlIGxvY2sg Zm9yIHRoZSBkdXJhdGlvbiBvZgorICogdGhlIGFjY2VzcyBpbnN0ZWFkLiBBbnkgY2FsbGVyIG5v dCBmb2xsb3dpbmcgdGhlc2UgcmVxdWlyZW1lbnRzIG11c3QgdXNlCisgKiB1bnNhZmVfZm9sbG93 X3BmbigpIGluc3RlYWQuCiAgKgogICogUmV0dXJuOiB6ZXJvIGFuZCB0aGUgcGZuIGF0IEBwZm4g b24gc3VjY2VzcywgLXZlIG90aGVyd2lzZS4KICAqLwpAQCAtNDgxNiw3ICs0ODIxLDMyIEBAIGlu dCBmb2xsb3dfcGZuKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFk ZHJlc3MsCiAJcHRlX3VubWFwX3VubG9jayhwdGVwLCBwdGwpOwogCXJldHVybiAwOwogfQotRVhQ T1JUX1NZTUJPTChmb2xsb3dfcGZuKTsKK0VYUE9SVF9TWU1CT0xfR1BMKGZvbGxvd19wZm4pOwor CisvKioKKyAqIHVuc2FmZV9mb2xsb3dfcGZuIC0gbG9vayB1cCBQRk4gYXQgYSB1c2VyIHZpcnR1 YWwgYWRkcmVzcworICogQHZtYTogbWVtb3J5IG1hcHBpbmcKKyAqIEBhZGRyZXNzOiB1c2VyIHZp cnR1YWwgYWRkcmVzcworICogQHBmbjogbG9jYXRpb24gdG8gc3RvcmUgZm91bmQgUEZOCisgKgor ICogT25seSBJTyBtYXBwaW5ncyBhbmQgcmF3IFBGTiBtYXBwaW5ncyBhcmUgYWxsb3dlZC4KKyAq CisgKiBSZXR1cm5zIHplcm8gYW5kIHRoZSBwZm4gYXQgQHBmbiBvbiBzdWNjZXNzLCAtdmUgb3Ro ZXJ3aXNlLgorICovCitpbnQgdW5zYWZlX2ZvbGxvd19wZm4oc3RydWN0IHZtX2FyZWFfc3RydWN0 ICp2bWEsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKKwkJICAgICAgdW5zaWduZWQgbG9uZyAqcGZu KQoreworCWlmIChJU19FTkFCTEVEKENPTkZJR19TVFJJQ1RfRk9MTE9XX1BGTikpIHsKKwkJcHJf aW5mbygidW5zYWZlIGZvbGxvd19wZm4gdXNhZ2UgcmVqZWN0ZWQsIHNlZSBDT05GSUdfU1RSSUNU X0ZPTExPV19QRk5cbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlXQVJOX09OQ0UoMSwg InVuc2FmZSBmb2xsb3dfcGZuIHVzYWdlXG4iKTsKKwlhZGRfdGFpbnQoVEFJTlRfVVNFUiwgTE9D S0RFUF9TVElMTF9PSyk7CisKKwlyZXR1cm4gZm9sbG93X3Bmbih2bWEsIGFkZHJlc3MsIHBmbik7 Cit9CitFWFBPUlRfU1lNQk9MKHVuc2FmZV9mb2xsb3dfcGZuKTsKIAogI2lmZGVmIENPTkZJR19I QVZFX0lPUkVNQVBfUFJPVAogaW50IGZvbGxvd19waHlzKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAq dm1hLApkaWZmIC0tZ2l0IGEvbW0vbm9tbXUuYyBiL21tL25vbW11LmMKaW5kZXggMGZhZjM5YjMy Y2RiLi43OWZjOThhNmM5NGEgMTAwNjQ0Ci0tLSBhL21tL25vbW11LmMKKysrIGIvbW0vbm9tbXUu YwpAQCAtMTMwLDcgKzEzMCwzMiBAQCBpbnQgZm9sbG93X3BmbihzdHJ1Y3Qgdm1fYXJlYV9zdHJ1 Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLAogCSpwZm4gPSBhZGRyZXNzID4+IFBBR0Vf U0hJRlQ7CiAJcmV0dXJuIDA7CiB9Ci1FWFBPUlRfU1lNQk9MKGZvbGxvd19wZm4pOworRVhQT1JU X1NZTUJPTF9HUEwoZm9sbG93X3Bmbik7CisKKy8qKgorICogdW5zYWZlX2ZvbGxvd19wZm4gLSBs b29rIHVwIFBGTiBhdCBhIHVzZXIgdmlydHVhbCBhZGRyZXNzCisgKiBAdm1hOiBtZW1vcnkgbWFw cGluZworICogQGFkZHJlc3M6IHVzZXIgdmlydHVhbCBhZGRyZXNzCisgKiBAcGZuOiBsb2NhdGlv biB0byBzdG9yZSBmb3VuZCBQRk4KKyAqCisgKiBPbmx5IElPIG1hcHBpbmdzIGFuZCByYXcgUEZO IG1hcHBpbmdzIGFyZSBhbGxvd2VkLgorICoKKyAqIFJldHVybnMgemVybyBhbmQgdGhlIHBmbiBh dCBAcGZuIG9uIHN1Y2Nlc3MsIC12ZSBvdGhlcndpc2UuCisgKi8KK2ludCB1bnNhZmVfZm9sbG93 X3BmbihzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLAor CQkgICAgICB1bnNpZ25lZCBsb25nICpwZm4pCit7CisJaWYgKElTX0VOQUJMRUQoQ09ORklHX1NU UklDVF9GT0xMT1dfUEZOKSkgeworCQlwcl9pbmZvKCJ1bnNhZmUgZm9sbG93X3BmbiB1c2FnZSBy ZWplY3RlZCwgc2VlIENPTkZJR19TVFJJQ1RfRk9MTE9XX1BGTlxuIik7CisJCXJldHVybiAtRUlO VkFMOworCX0KKworCVdBUk5fT05DRSgxLCAidW5zYWZlIGZvbGxvd19wZm4gdXNhZ2VcbiIpOwor CWFkZF90YWludChUQUlOVF9VU0VSLCBMT0NLREVQX1NUSUxMX09LKTsKKworCXJldHVybiBmb2xs b3dfcGZuKHZtYSwgYWRkcmVzcywgcGZuKTsKK30KK0VYUE9SVF9TWU1CT0wodW5zYWZlX2ZvbGxv d19wZm4pOwogCiBMSVNUX0hFQUQodm1hcF9hcmVhX2xpc3QpOwogCmRpZmYgLS1naXQgYS9zZWN1 cml0eS9LY29uZmlnIGIvc2VjdXJpdHkvS2NvbmZpZwppbmRleCA3NTYxZjZmOTlmMWQuLjQ4OTQ1 NDAyZTEwMyAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvS2NvbmZpZworKysgYi9zZWN1cml0eS9LY29u ZmlnCkBAIC0yMzAsNiArMjMwLDE5IEBAIGNvbmZpZyBTVEFUSUNfVVNFUk1PREVIRUxQRVJfUEFU SAogCSAgSWYgeW91IHdpc2ggZm9yIGFsbCB1c2VybW9kZSBoZWxwZXIgcHJvZ3JhbXMgdG8gYmUg ZGlzYWJsZWQsCiAJICBzcGVjaWZ5IGFuIGVtcHR5IHN0cmluZyBoZXJlIChpLmUuICIiKS4KIAor Y29uZmlnIFNUUklDVF9GT0xMT1dfUEZOCisJYm9vbCAiRGlzYWJsZSB1bnNhZmUgdXNlIG9mIGZv bGxvd19wZm4iCisJZGVwZW5kcyBvbiBNTVUKKwloZWxwCisJICBTb21lIGZ1bmN0aW9uYWxpdHkg aW4gdGhlIGtlcm5lbCBmb2xsb3dzIHVzZXJzcGFjZSBtYXBwaW5ncyB0byBpb21lbQorCSAgcmFu Z2VzIGluIGFuIHVuc2FmZSBtYXR0ZXIuIEV4YW1wbGVzIGluY2x1ZGUgdjRsIHVzZXJwdHIgZm9y IHplcm8tY29weQorCSAgYnVmZmVycyBzaGFyaW5nLgorCisJICBJZiB0aGlzIG9wdGlvbiBpcyBz d2l0Y2hlZCBvbiwgc3VjaCBhY2Nlc3MgaXMgcmVqZWN0ZWQuIE9ubHkgZW5hYmxlCisJICB0aGlz IG9wdGlvbiB3aGVuIHlvdSBtdXN0IHJ1biB1c2Vyc3BhY2Ugd2hpY2ggcmVxdWlyZXMgdGhpcy4K KworCSAgSWYgaW4gZG91YnQsIHNheSBZLgorCiBzb3VyY2UgInNlY3VyaXR5L3NlbGludXgvS2Nv bmZpZyIKIHNvdXJjZSAic2VjdXJpdHkvc21hY2svS2NvbmZpZyIKIHNvdXJjZSAic2VjdXJpdHkv dG9tb3lvL0tjb25maWciCi0tIAoyLjI4LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RyaS1kZXZlbAo=