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=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 C10C8C00A89 for ; Fri, 30 Oct 2020 10:10:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 4FACC21734 for ; Fri, 30 Oct 2020 10:10:36 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="OE7ODljf" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726651AbgJ3KKf (ORCPT ); Fri, 30 Oct 2020 06:10:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50314 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726297AbgJ3KIr (ORCPT ); Fri, 30 Oct 2020 06:08:47 -0400 Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com [IPv6:2a00:1450:4864:20::441]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ABAD2C0613D4 for ; Fri, 30 Oct 2020 03:08:45 -0700 (PDT) Received: by mail-wr1-x441.google.com with SMTP id s9so5780425wro.8 for ; Fri, 30 Oct 2020 03:08:45 -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=5VbYPjpc0ChYwbbTgMYmHroaW5HF4a/lmU2ezjjPyKs=; b=OE7ODljfg5zYJBQtW0QuYxlR4KXtE85Ja01uQ2DMdxx2GpBsjSlcNmfMNQbCG+kNjo LixqeX7mvOxZXGfqzuOMiSC7tcEPjUCegSJW1mWPqssoq64+iOZ+LKEAOZGdVSY0Wa4R 64xAv6B0jpJaiz7VUMHSuryliKlo0Qfmwj12U= 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=5VbYPjpc0ChYwbbTgMYmHroaW5HF4a/lmU2ezjjPyKs=; b=rbr6CW8aWTHMG1DygcU/Ez7lPMDdDPM5DucYImbCOsmUteUNK4qmAxXK1MbCd6LGeh N7RqqmU1zXnb18B+nVa/3kXNzA7p031ptrAN6Dfsbpxwy5mDV7m3fMdJT8QXrjOlJUiC 9osJ+x1YG1rLuntmfyaARQFLFVI9QhcJC/yWzeuaRItCx+bpJREoOcw89zKvKf27EIle O7E6nkVXVcw8KuUzK6OZBNqkPP613zn8x6ELCCbP4NI65SNe83tIXDxn5Eop9WOuTFJb NoSmf5cmFSqPdsH5PHOg2nCcsrZUM5gnNFouclCppzYivUUXgCnWW5Gd9oLw4yYlTWoW sHgQ== X-Gm-Message-State: AOAM533K03pQlVI3zQrxde2ElBBqgSi3iJ9qeWo7yolrMriTsK9oFs99 tGSd06/T1RGS2vCFzCqwQeMg4w== X-Google-Smtp-Source: ABdhPJyETsw+rdDmSmdKEqL1hei+cZMLQfTxnbjyqr7JYJt2TnKRMYu3u2d5KOQv2rtW2RW3CkNB1A== X-Received: by 2002:adf:aad0:: with SMTP id i16mr2025058wrc.270.1604052524472; Fri, 30 Oct 2020 03:08:44 -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.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Oct 2020 03:08:43 -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 , Jason Gunthorpe , Pawel Osciak , Marek Szyprowski , Kyungmin Park , Tomasz Figa , Mauro Carvalho Chehab , Andrew Morton , John Hubbard , =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= , Jan Kara , Dan Williams Subject: [PATCH v5 05/15] mm/frame-vector: Use FOLL_LONGTERM Date: Fri, 30 Oct 2020 11:08:05 +0100 Message-Id: <20201030100815.2269-6-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 This is used by media/videbuf2 for persistent dma mappings, not just for a single dma operation and then freed again, so needs FOLL_LONGTERM. Unfortunately current pup_locked doesn't support FOLL_LONGTERM due to locking issues. Rework the code to pull the pup path out from the mmap_sem critical section as suggested by Jason. By relying entirely on the vma checks in pin_user_pages and follow_pfn (for vm_flags and vma_is_fsdax) we can also streamline the code a lot. Signed-off-by: Daniel Vetter Cc: Jason Gunthorpe Cc: Pawel Osciak Cc: Marek Szyprowski Cc: Kyungmin Park Cc: Tomasz Figa Cc: Mauro Carvalho Chehab 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 Signed-off-by: Daniel Vetter -- v2: Streamline the code and further simplify the loop checks (Jason) v5: Review from Tomasz: - fix page counting for the follow_pfn case by resetting ret - drop gup_flags paramater, now unused --- .../media/common/videobuf2/videobuf2-memops.c | 3 +- include/linux/mm.h | 2 +- mm/frame_vector.c | 53 ++++++------------- 3 files changed, 19 insertions(+), 39 deletions(-) diff --git a/drivers/media/common/videobuf2/videobuf2-memops.c b/drivers/media/common/videobuf2/videobuf2-memops.c index 6e9e05153f4e..9dd6c27162f4 100644 --- a/drivers/media/common/videobuf2/videobuf2-memops.c +++ b/drivers/media/common/videobuf2/videobuf2-memops.c @@ -40,7 +40,6 @@ struct frame_vector *vb2_create_framevec(unsigned long start, unsigned long first, last; unsigned long nr; struct frame_vector *vec; - unsigned int flags = FOLL_FORCE | FOLL_WRITE; first = start >> PAGE_SHIFT; last = (start + length - 1) >> PAGE_SHIFT; @@ -48,7 +47,7 @@ struct frame_vector *vb2_create_framevec(unsigned long start, vec = frame_vector_create(nr); if (!vec) return ERR_PTR(-ENOMEM); - ret = get_vaddr_frames(start & PAGE_MASK, nr, flags, vec); + ret = get_vaddr_frames(start & PAGE_MASK, nr, vec); if (ret < 0) goto out_destroy; /* We accept only complete set of PFNs */ diff --git a/include/linux/mm.h b/include/linux/mm.h index ef360fe70aaf..d6b8e30dce2e 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -1765,7 +1765,7 @@ struct frame_vector { struct frame_vector *frame_vector_create(unsigned int nr_frames); void frame_vector_destroy(struct frame_vector *vec); int get_vaddr_frames(unsigned long start, unsigned int nr_pfns, - unsigned int gup_flags, struct frame_vector *vec); + struct frame_vector *vec); void put_vaddr_frames(struct frame_vector *vec); int frame_vector_to_pages(struct frame_vector *vec); void frame_vector_to_pfns(struct frame_vector *vec); diff --git a/mm/frame_vector.c b/mm/frame_vector.c index 10f82d5643b6..f8c34b895c76 100644 --- a/mm/frame_vector.c +++ b/mm/frame_vector.c @@ -32,13 +32,12 @@ * This function takes care of grabbing mmap_lock as necessary. */ int get_vaddr_frames(unsigned long start, unsigned int nr_frames, - unsigned int gup_flags, struct frame_vector *vec) + struct frame_vector *vec) { struct mm_struct *mm = current->mm; struct vm_area_struct *vma; int ret = 0; int err; - int locked; if (nr_frames == 0) return 0; @@ -48,40 +47,26 @@ int get_vaddr_frames(unsigned long start, unsigned int nr_frames, start = untagged_addr(start); - mmap_read_lock(mm); - locked = 1; - vma = find_vma_intersection(mm, start, start + 1); - if (!vma) { - ret = -EFAULT; - goto out; - } - - /* - * While get_vaddr_frames() could be used for transient (kernel - * controlled lifetime) pinning of memory pages all current - * users establish long term (userspace controlled lifetime) - * page pinning. Treat get_vaddr_frames() like - * get_user_pages_longterm() and disallow it for filesystem-dax - * mappings. - */ - if (vma_is_fsdax(vma)) { - ret = -EOPNOTSUPP; - goto out; - } - - if (!(vma->vm_flags & (VM_IO | VM_PFNMAP))) { + ret = pin_user_pages_fast(start, nr_frames, + FOLL_FORCE | FOLL_WRITE | FOLL_LONGTERM, + (struct page **)(vec->ptrs)); + if (ret > 0) { vec->got_ref = true; vec->is_pfns = false; - ret = pin_user_pages_locked(start, nr_frames, - gup_flags, (struct page **)(vec->ptrs), &locked); - goto out; + goto out_unlocked; } + mmap_read_lock(mm); vec->got_ref = false; vec->is_pfns = true; + ret = 0; do { unsigned long *nums = frame_vector_pfns(vec); + vma = find_vma_intersection(mm, start, start + 1); + if (!vma) + break; + while (ret < nr_frames && start + PAGE_SIZE <= vma->vm_end) { err = follow_pfn(vma, start, &nums[ret]); if (err) { @@ -92,17 +77,13 @@ int get_vaddr_frames(unsigned long start, unsigned int nr_frames, start += PAGE_SIZE; ret++; } - /* - * We stop if we have enough pages or if VMA doesn't completely - * cover the tail page. - */ - if (ret >= nr_frames || start < vma->vm_end) + /* Bail out if VMA doesn't completely cover the tail page. */ + if (start < vma->vm_end) break; - vma = find_vma_intersection(mm, start, start + 1); - } while (vma && vma->vm_flags & (VM_IO | VM_PFNMAP)); + } while (ret < nr_frames); out: - if (locked) - mmap_read_unlock(mm); + mmap_read_unlock(mm); +out_unlocked: if (!ret) ret = -EFAULT; if (ret > 0) -- 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 2297CC00A89 for ; Fri, 30 Oct 2020 10:11:50 +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 74D94221FA for ; Fri, 30 Oct 2020 10:11:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="fE7KutD/"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="OE7ODljf" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 74D94221FA 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=oRST6pb4WksPzdOT8zqyGWusvJxIJydrweprXoMm1Dg=; b=fE7KutD/DtGw5Md4niR9KAiu9 ZZTptspbryjiDs98B3Cb15RBZ64LJ5ybur0iUUYNfUNDVgVF3W6KgE4Wj8leNDIVob8uIL5fOwvLm zWn5VzWFKzaoRneoUYwhTVMNgliBM46Zgc/4m60f2s5vBMDp5TSQ7NyUZk7zHFapT1Gxtne0ViALe rJ8E8/CEOkbBKt8Llt5AsG6Xdj+nQkKxan3kYY5vuFv369kmzFvSF8ENdtW5VUErXpPQhvJFuREHQ SJOfZfRMgS3w/H3tV4NztXVVfxunltiohVv3an62kloi7um82SKieiir29pt8lJZm5KEMRgq4dN3/ dpXXHM1rQ==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kYRNC-0008Kq-14; Fri, 30 Oct 2020 10:11:06 +0000 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kYRKv-0007Q7-Mk for linux-arm-kernel@lists.infradead.org; Fri, 30 Oct 2020 10:09:01 +0000 Received: by mail-wr1-x442.google.com with SMTP id a9so5767189wrg.12 for ; Fri, 30 Oct 2020 03:08:45 -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=5VbYPjpc0ChYwbbTgMYmHroaW5HF4a/lmU2ezjjPyKs=; b=OE7ODljfg5zYJBQtW0QuYxlR4KXtE85Ja01uQ2DMdxx2GpBsjSlcNmfMNQbCG+kNjo LixqeX7mvOxZXGfqzuOMiSC7tcEPjUCegSJW1mWPqssoq64+iOZ+LKEAOZGdVSY0Wa4R 64xAv6B0jpJaiz7VUMHSuryliKlo0Qfmwj12U= 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=5VbYPjpc0ChYwbbTgMYmHroaW5HF4a/lmU2ezjjPyKs=; b=k8RNmZRY7e96TXXbWhpe94/4f4UXhsdoEDSjidmnDyBn1sSVXgniGaldUe6DsVBozg hTYs3FGN91H9IIXM+2JTXr3CZQz57HaFnpoTqnnZmbMSIeB9xLj3pALisUe8LlVjN1SV Vog32TygMP5U0o3UqrkVioVWSNspYXZ2S7ZuElGV/MVpfamWPRrW6VUhgPJUOM/uVRhJ cxD8rkZnC0o8ZaGx8DxCPzw3bTWyNw79QTUo6RGcOMvpK6OjRRrcmq9YWOUcFloo8jgU 6kIjMHWguQXlU4K4+7CGK+YHgTdapmWniRy9zuyMrBhdtEp70iyDyQG4130PRBa6SdaH JH+g== X-Gm-Message-State: AOAM533fk81mRT6q6RiKnojk2/CoqhOYMXCpK8HY+h0BrlHkY4rofzpq U3A86aj2VxqM6t6FJ3ktT1XwNw== X-Google-Smtp-Source: ABdhPJyETsw+rdDmSmdKEqL1hei+cZMLQfTxnbjyqr7JYJt2TnKRMYu3u2d5KOQv2rtW2RW3CkNB1A== X-Received: by 2002:adf:aad0:: with SMTP id i16mr2025058wrc.270.1604052524472; Fri, 30 Oct 2020 03:08:44 -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.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Oct 2020 03:08:43 -0700 (PDT) From: Daniel Vetter To: DRI Development , LKML Subject: [PATCH v5 05/15] mm/frame-vector: Use FOLL_LONGTERM Date: Fri, 30 Oct 2020 11:08:05 +0100 Message-Id: <20201030100815.2269-6-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_060845_907616_226A8601 X-CRM114-Status: GOOD ( 23.27 ) 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 , Pawel Osciak , kvm@vger.kernel.org, Jason Gunthorpe , Daniel Vetter , Mauro Carvalho Chehab , =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= , Tomasz Figa , linux-mm@kvack.org, Kyungmin Park , John Hubbard , Daniel Vetter , Andrew Morton , Marek Szyprowski , Dan Williams , 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 VGhpcyBpcyB1c2VkIGJ5IG1lZGlhL3ZpZGVidWYyIGZvciBwZXJzaXN0ZW50IGRtYSBtYXBwaW5n cywgbm90IGp1c3QKZm9yIGEgc2luZ2xlIGRtYSBvcGVyYXRpb24gYW5kIHRoZW4gZnJlZWQgYWdh aW4sIHNvIG5lZWRzCkZPTExfTE9OR1RFUk0uCgpVbmZvcnR1bmF0ZWx5IGN1cnJlbnQgcHVwX2xv Y2tlZCBkb2Vzbid0IHN1cHBvcnQgRk9MTF9MT05HVEVSTSBkdWUgdG8KbG9ja2luZyBpc3N1ZXMu IFJld29yayB0aGUgY29kZSB0byBwdWxsIHRoZSBwdXAgcGF0aCBvdXQgZnJvbSB0aGUKbW1hcF9z ZW0gY3JpdGljYWwgc2VjdGlvbiBhcyBzdWdnZXN0ZWQgYnkgSmFzb24uCgpCeSByZWx5aW5nIGVu dGlyZWx5IG9uIHRoZSB2bWEgY2hlY2tzIGluIHBpbl91c2VyX3BhZ2VzIGFuZCBmb2xsb3dfcGZu Cihmb3Igdm1fZmxhZ3MgYW5kIHZtYV9pc19mc2RheCkgd2UgY2FuIGFsc28gc3RyZWFtbGluZSB0 aGUgY29kZSBhIGxvdC4KClNpZ25lZC1vZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0 ZXJAaW50ZWwuY29tPgpDYzogSmFzb24gR3VudGhvcnBlIDxqZ2dAemllcGUuY2E+CkNjOiBQYXdl bCBPc2NpYWsgPHBhd2VsQG9zY2lhay5jb20+CkNjOiBNYXJlayBTenlwcm93c2tpIDxtLnN6eXBy b3dza2lAc2Ftc3VuZy5jb20+CkNjOiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1 bmcuY29tPgpDYzogVG9tYXN6IEZpZ2EgPHRmaWdhQGNocm9taXVtLm9yZz4KQ2M6IE1hdXJvIENh cnZhbGhvIENoZWhhYiA8bWNoZWhhYkBrZXJuZWwub3JnPgpDYzogQW5kcmV3IE1vcnRvbiA8YWtw bUBsaW51eC1mb3VuZGF0aW9uLm9yZz4KQ2M6IEpvaG4gSHViYmFyZCA8amh1YmJhcmRAbnZpZGlh LmNvbT4KQ2M6IErDqXLDtG1lIEdsaXNzZSA8amdsaXNzZUByZWRoYXQuY29tPgpDYzogSmFuIEth cmEgPGphY2tAc3VzZS5jej4KQ2M6IERhbiBXaWxsaWFtcyA8ZGFuLmoud2lsbGlhbXNAaW50ZWwu Y29tPgpDYzogbGludXgtbW1Aa3ZhY2sub3JnCkNjOiBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmlu ZnJhZGVhZC5vcmcKQ2M6IGxpbnV4LXNhbXN1bmctc29jQHZnZXIua2VybmVsLm9yZwpDYzogbGlu dXgtbWVkaWFAdmdlci5rZXJuZWwub3JnClNpZ25lZC1vZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRh bmllbC52ZXR0ZXJAZmZ3bGwuY2g+Ci0tCnYyOiBTdHJlYW1saW5lIHRoZSBjb2RlIGFuZCBmdXJ0 aGVyIHNpbXBsaWZ5IHRoZSBsb29wIGNoZWNrcyAoSmFzb24pCgp2NTogUmV2aWV3IGZyb20gVG9t YXN6OgotIGZpeCBwYWdlIGNvdW50aW5nIGZvciB0aGUgZm9sbG93X3BmbiBjYXNlIGJ5IHJlc2V0 dGluZyByZXQKLSBkcm9wIGd1cF9mbGFncyBwYXJhbWF0ZXIsIG5vdyB1bnVzZWQKLS0tCiAuLi4v bWVkaWEvY29tbW9uL3ZpZGVvYnVmMi92aWRlb2J1ZjItbWVtb3BzLmMgfCAgMyArLQogaW5jbHVk ZS9saW51eC9tbS5oICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG1tL2ZyYW1l X3ZlY3Rvci5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDUzICsrKysrKy0tLS0tLS0t LS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgMzkgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9jb21tb24vdmlkZW9idWYyL3ZpZGVvYnVmMi1t ZW1vcHMuYyBiL2RyaXZlcnMvbWVkaWEvY29tbW9uL3ZpZGVvYnVmMi92aWRlb2J1ZjItbWVtb3Bz LmMKaW5kZXggNmU5ZTA1MTUzZjRlLi45ZGQ2YzI3MTYyZjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bWVkaWEvY29tbW9uL3ZpZGVvYnVmMi92aWRlb2J1ZjItbWVtb3BzLmMKKysrIGIvZHJpdmVycy9t ZWRpYS9jb21tb24vdmlkZW9idWYyL3ZpZGVvYnVmMi1tZW1vcHMuYwpAQCAtNDAsNyArNDAsNiBA QCBzdHJ1Y3QgZnJhbWVfdmVjdG9yICp2YjJfY3JlYXRlX2ZyYW1ldmVjKHVuc2lnbmVkIGxvbmcg c3RhcnQsCiAJdW5zaWduZWQgbG9uZyBmaXJzdCwgbGFzdDsKIAl1bnNpZ25lZCBsb25nIG5yOwog CXN0cnVjdCBmcmFtZV92ZWN0b3IgKnZlYzsKLQl1bnNpZ25lZCBpbnQgZmxhZ3MgPSBGT0xMX0ZP UkNFIHwgRk9MTF9XUklURTsKIAogCWZpcnN0ID0gc3RhcnQgPj4gUEFHRV9TSElGVDsKIAlsYXN0 ID0gKHN0YXJ0ICsgbGVuZ3RoIC0gMSkgPj4gUEFHRV9TSElGVDsKQEAgLTQ4LDcgKzQ3LDcgQEAg c3RydWN0IGZyYW1lX3ZlY3RvciAqdmIyX2NyZWF0ZV9mcmFtZXZlYyh1bnNpZ25lZCBsb25nIHN0 YXJ0LAogCXZlYyA9IGZyYW1lX3ZlY3Rvcl9jcmVhdGUobnIpOwogCWlmICghdmVjKQogCQlyZXR1 cm4gRVJSX1BUUigtRU5PTUVNKTsKLQlyZXQgPSBnZXRfdmFkZHJfZnJhbWVzKHN0YXJ0ICYgUEFH RV9NQVNLLCBuciwgZmxhZ3MsIHZlYyk7CisJcmV0ID0gZ2V0X3ZhZGRyX2ZyYW1lcyhzdGFydCAm IFBBR0VfTUFTSywgbnIsIHZlYyk7CiAJaWYgKHJldCA8IDApCiAJCWdvdG8gb3V0X2Rlc3Ryb3k7 CiAJLyogV2UgYWNjZXB0IG9ubHkgY29tcGxldGUgc2V0IG9mIFBGTnMgKi8KZGlmZiAtLWdpdCBh L2luY2x1ZGUvbGludXgvbW0uaCBiL2luY2x1ZGUvbGludXgvbW0uaAppbmRleCBlZjM2MGZlNzBh YWYuLmQ2YjhlMzBkY2UyZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tbS5oCisrKyBiL2lu Y2x1ZGUvbGludXgvbW0uaApAQCAtMTc2NSw3ICsxNzY1LDcgQEAgc3RydWN0IGZyYW1lX3ZlY3Rv ciB7CiBzdHJ1Y3QgZnJhbWVfdmVjdG9yICpmcmFtZV92ZWN0b3JfY3JlYXRlKHVuc2lnbmVkIGlu dCBucl9mcmFtZXMpOwogdm9pZCBmcmFtZV92ZWN0b3JfZGVzdHJveShzdHJ1Y3QgZnJhbWVfdmVj dG9yICp2ZWMpOwogaW50IGdldF92YWRkcl9mcmFtZXModW5zaWduZWQgbG9uZyBzdGFydCwgdW5z aWduZWQgaW50IG5yX3BmbnMsCi0JCSAgICAgdW5zaWduZWQgaW50IGd1cF9mbGFncywgc3RydWN0 IGZyYW1lX3ZlY3RvciAqdmVjKTsKKwkJICAgICBzdHJ1Y3QgZnJhbWVfdmVjdG9yICp2ZWMpOwog dm9pZCBwdXRfdmFkZHJfZnJhbWVzKHN0cnVjdCBmcmFtZV92ZWN0b3IgKnZlYyk7CiBpbnQgZnJh bWVfdmVjdG9yX3RvX3BhZ2VzKHN0cnVjdCBmcmFtZV92ZWN0b3IgKnZlYyk7CiB2b2lkIGZyYW1l X3ZlY3Rvcl90b19wZm5zKHN0cnVjdCBmcmFtZV92ZWN0b3IgKnZlYyk7CmRpZmYgLS1naXQgYS9t bS9mcmFtZV92ZWN0b3IuYyBiL21tL2ZyYW1lX3ZlY3Rvci5jCmluZGV4IDEwZjgyZDU2NDNiNi4u ZjhjMzRiODk1Yzc2IDEwMDY0NAotLS0gYS9tbS9mcmFtZV92ZWN0b3IuYworKysgYi9tbS9mcmFt ZV92ZWN0b3IuYwpAQCAtMzIsMTMgKzMyLDEyIEBACiAgKiBUaGlzIGZ1bmN0aW9uIHRha2VzIGNh cmUgb2YgZ3JhYmJpbmcgbW1hcF9sb2NrIGFzIG5lY2Vzc2FyeS4KICAqLwogaW50IGdldF92YWRk cl9mcmFtZXModW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgaW50IG5yX2ZyYW1lcywKLQkJ ICAgICB1bnNpZ25lZCBpbnQgZ3VwX2ZsYWdzLCBzdHJ1Y3QgZnJhbWVfdmVjdG9yICp2ZWMpCisJ CSAgICAgc3RydWN0IGZyYW1lX3ZlY3RvciAqdmVjKQogewogCXN0cnVjdCBtbV9zdHJ1Y3QgKm1t ID0gY3VycmVudC0+bW07CiAJc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWE7CiAJaW50IHJldCA9 IDA7CiAJaW50IGVycjsKLQlpbnQgbG9ja2VkOwogCiAJaWYgKG5yX2ZyYW1lcyA9PSAwKQogCQly ZXR1cm4gMDsKQEAgLTQ4LDQwICs0NywyNiBAQCBpbnQgZ2V0X3ZhZGRyX2ZyYW1lcyh1bnNpZ25l ZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBpbnQgbnJfZnJhbWVzLAogCiAJc3RhcnQgPSB1bnRhZ2dl ZF9hZGRyKHN0YXJ0KTsKIAotCW1tYXBfcmVhZF9sb2NrKG1tKTsKLQlsb2NrZWQgPSAxOwotCXZt YSA9IGZpbmRfdm1hX2ludGVyc2VjdGlvbihtbSwgc3RhcnQsIHN0YXJ0ICsgMSk7Ci0JaWYgKCF2 bWEpIHsKLQkJcmV0ID0gLUVGQVVMVDsKLQkJZ290byBvdXQ7Ci0JfQotCi0JLyoKLQkgKiBXaGls ZSBnZXRfdmFkZHJfZnJhbWVzKCkgY291bGQgYmUgdXNlZCBmb3IgdHJhbnNpZW50IChrZXJuZWwK LQkgKiBjb250cm9sbGVkIGxpZmV0aW1lKSBwaW5uaW5nIG9mIG1lbW9yeSBwYWdlcyBhbGwgY3Vy cmVudAotCSAqIHVzZXJzIGVzdGFibGlzaCBsb25nIHRlcm0gKHVzZXJzcGFjZSBjb250cm9sbGVk IGxpZmV0aW1lKQotCSAqIHBhZ2UgcGlubmluZy4gVHJlYXQgZ2V0X3ZhZGRyX2ZyYW1lcygpIGxp a2UKLQkgKiBnZXRfdXNlcl9wYWdlc19sb25ndGVybSgpIGFuZCBkaXNhbGxvdyBpdCBmb3IgZmls ZXN5c3RlbS1kYXgKLQkgKiBtYXBwaW5ncy4KLQkgKi8KLQlpZiAodm1hX2lzX2ZzZGF4KHZtYSkp IHsKLQkJcmV0ID0gLUVPUE5PVFNVUFA7Ci0JCWdvdG8gb3V0OwotCX0KLQotCWlmICghKHZtYS0+ dm1fZmxhZ3MgJiAoVk1fSU8gfCBWTV9QRk5NQVApKSkgeworCXJldCA9IHBpbl91c2VyX3BhZ2Vz X2Zhc3Qoc3RhcnQsIG5yX2ZyYW1lcywKKwkJCQkgIEZPTExfRk9SQ0UgfCBGT0xMX1dSSVRFIHwg Rk9MTF9MT05HVEVSTSwKKwkJCQkgIChzdHJ1Y3QgcGFnZSAqKikodmVjLT5wdHJzKSk7CisJaWYg KHJldCA+IDApIHsKIAkJdmVjLT5nb3RfcmVmID0gdHJ1ZTsKIAkJdmVjLT5pc19wZm5zID0gZmFs c2U7Ci0JCXJldCA9IHBpbl91c2VyX3BhZ2VzX2xvY2tlZChzdGFydCwgbnJfZnJhbWVzLAotCQkJ Z3VwX2ZsYWdzLCAoc3RydWN0IHBhZ2UgKiopKHZlYy0+cHRycyksICZsb2NrZWQpOwotCQlnb3Rv IG91dDsKKwkJZ290byBvdXRfdW5sb2NrZWQ7CiAJfQogCisJbW1hcF9yZWFkX2xvY2sobW0pOwog CXZlYy0+Z290X3JlZiA9IGZhbHNlOwogCXZlYy0+aXNfcGZucyA9IHRydWU7CisJcmV0ID0gMDsK IAlkbyB7CiAJCXVuc2lnbmVkIGxvbmcgKm51bXMgPSBmcmFtZV92ZWN0b3JfcGZucyh2ZWMpOwog CisJCXZtYSA9IGZpbmRfdm1hX2ludGVyc2VjdGlvbihtbSwgc3RhcnQsIHN0YXJ0ICsgMSk7CisJ CWlmICghdm1hKQorCQkJYnJlYWs7CisKIAkJd2hpbGUgKHJldCA8IG5yX2ZyYW1lcyAmJiBzdGFy dCArIFBBR0VfU0laRSA8PSB2bWEtPnZtX2VuZCkgewogCQkJZXJyID0gZm9sbG93X3Bmbih2bWEs IHN0YXJ0LCAmbnVtc1tyZXRdKTsKIAkJCWlmIChlcnIpIHsKQEAgLTkyLDE3ICs3NywxMyBAQCBp bnQgZ2V0X3ZhZGRyX2ZyYW1lcyh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBpbnQgbnJf ZnJhbWVzLAogCQkJc3RhcnQgKz0gUEFHRV9TSVpFOwogCQkJcmV0Kys7CiAJCX0KLQkJLyoKLQkJ ICogV2Ugc3RvcCBpZiB3ZSBoYXZlIGVub3VnaCBwYWdlcyBvciBpZiBWTUEgZG9lc24ndCBjb21w bGV0ZWx5Ci0JCSAqIGNvdmVyIHRoZSB0YWlsIHBhZ2UuCi0JCSAqLwotCQlpZiAocmV0ID49IG5y X2ZyYW1lcyB8fCBzdGFydCA8IHZtYS0+dm1fZW5kKQorCQkvKiBCYWlsIG91dCBpZiBWTUEgZG9l c24ndCBjb21wbGV0ZWx5IGNvdmVyIHRoZSB0YWlsIHBhZ2UuICovCisJCWlmIChzdGFydCA8IHZt YS0+dm1fZW5kKQogCQkJYnJlYWs7Ci0JCXZtYSA9IGZpbmRfdm1hX2ludGVyc2VjdGlvbihtbSwg c3RhcnQsIHN0YXJ0ICsgMSk7Ci0JfSB3aGlsZSAodm1hICYmIHZtYS0+dm1fZmxhZ3MgJiAoVk1f SU8gfCBWTV9QRk5NQVApKTsKKwl9IHdoaWxlIChyZXQgPCBucl9mcmFtZXMpOwogb3V0OgotCWlm IChsb2NrZWQpCi0JCW1tYXBfcmVhZF91bmxvY2sobW0pOworCW1tYXBfcmVhZF91bmxvY2sobW0p Oworb3V0X3VubG9ja2VkOgogCWlmICghcmV0KQogCQlyZXQgPSAtRUZBVUxUOwogCWlmIChyZXQg PiAwKQotLSAKMi4yOC4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBs aXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlz dGluZm8vbGludXgtYXJtLWtlcm5lbAo= 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 EECA9C63777 for ; Fri, 30 Oct 2020 10:08:51 +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 8009B21734 for ; Fri, 30 Oct 2020 10:08:51 +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="OE7ODljf" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8009B21734 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 DEEC06ED85; Fri, 30 Oct 2020 10:08:48 +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 029BB6ED83 for ; Fri, 30 Oct 2020 10:08:46 +0000 (UTC) Received: by mail-wr1-x442.google.com with SMTP id w1so5808825wrm.4 for ; Fri, 30 Oct 2020 03:08:45 -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=5VbYPjpc0ChYwbbTgMYmHroaW5HF4a/lmU2ezjjPyKs=; b=OE7ODljfg5zYJBQtW0QuYxlR4KXtE85Ja01uQ2DMdxx2GpBsjSlcNmfMNQbCG+kNjo LixqeX7mvOxZXGfqzuOMiSC7tcEPjUCegSJW1mWPqssoq64+iOZ+LKEAOZGdVSY0Wa4R 64xAv6B0jpJaiz7VUMHSuryliKlo0Qfmwj12U= 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=5VbYPjpc0ChYwbbTgMYmHroaW5HF4a/lmU2ezjjPyKs=; b=WEDzyU7EtT/ujGiHLDHWbQq4LS5SX4fjGwECyaYm5ODIm6UZpDwPCM57b/AhlsoXwy PNC6hA37xWdSX0zvykpsfJ/YrfZj5axZzKJ62WvwD5+CPJzBM1gyLJ0bK3ezS6JRkbrp 2cPySdwYAqZ99UYd5zj3GJUoc3dKj6jVvreVw03t2ORUNXs6T392QrrS4ctJ+xtzIdG2 SKxoIAcumf0VaFjBuZKHYM1CW/RcQva8sIZQp6qaw2WoznV/ZvuuWJ4eVAvAoRXoR6bK 0wu41lUREpYJukWdtpM2Yargbr+XagwwqyPS8z4iUqr/qVahGLTX16QaG+jBdC1YpgOR ZkhQ== X-Gm-Message-State: AOAM530w0s/XAHOTUn0wSM1lkOu/v55Gi2Rsq2x+k4FcPDU7QUgHAjMB lAhC1n4zj7pTF2XrlUhu7Mzr6V8IqMVxbAUs X-Google-Smtp-Source: ABdhPJyETsw+rdDmSmdKEqL1hei+cZMLQfTxnbjyqr7JYJt2TnKRMYu3u2d5KOQv2rtW2RW3CkNB1A== X-Received: by 2002:adf:aad0:: with SMTP id i16mr2025058wrc.270.1604052524472; Fri, 30 Oct 2020 03:08:44 -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.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Oct 2020 03:08:43 -0700 (PDT) From: Daniel Vetter To: DRI Development , LKML Subject: [PATCH v5 05/15] mm/frame-vector: Use FOLL_LONGTERM Date: Fri, 30 Oct 2020 11:08:05 +0100 Message-Id: <20201030100815.2269-6-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 , Pawel Osciak , kvm@vger.kernel.org, Jason Gunthorpe , Daniel Vetter , Mauro Carvalho Chehab , =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= , Tomasz Figa , linux-mm@kvack.org, Kyungmin Park , John Hubbard , Daniel Vetter , Andrew Morton , Marek Szyprowski , Dan Williams , 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" VGhpcyBpcyB1c2VkIGJ5IG1lZGlhL3ZpZGVidWYyIGZvciBwZXJzaXN0ZW50IGRtYSBtYXBwaW5n cywgbm90IGp1c3QKZm9yIGEgc2luZ2xlIGRtYSBvcGVyYXRpb24gYW5kIHRoZW4gZnJlZWQgYWdh aW4sIHNvIG5lZWRzCkZPTExfTE9OR1RFUk0uCgpVbmZvcnR1bmF0ZWx5IGN1cnJlbnQgcHVwX2xv Y2tlZCBkb2Vzbid0IHN1cHBvcnQgRk9MTF9MT05HVEVSTSBkdWUgdG8KbG9ja2luZyBpc3N1ZXMu IFJld29yayB0aGUgY29kZSB0byBwdWxsIHRoZSBwdXAgcGF0aCBvdXQgZnJvbSB0aGUKbW1hcF9z ZW0gY3JpdGljYWwgc2VjdGlvbiBhcyBzdWdnZXN0ZWQgYnkgSmFzb24uCgpCeSByZWx5aW5nIGVu dGlyZWx5IG9uIHRoZSB2bWEgY2hlY2tzIGluIHBpbl91c2VyX3BhZ2VzIGFuZCBmb2xsb3dfcGZu Cihmb3Igdm1fZmxhZ3MgYW5kIHZtYV9pc19mc2RheCkgd2UgY2FuIGFsc28gc3RyZWFtbGluZSB0 aGUgY29kZSBhIGxvdC4KClNpZ25lZC1vZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0 ZXJAaW50ZWwuY29tPgpDYzogSmFzb24gR3VudGhvcnBlIDxqZ2dAemllcGUuY2E+CkNjOiBQYXdl bCBPc2NpYWsgPHBhd2VsQG9zY2lhay5jb20+CkNjOiBNYXJlayBTenlwcm93c2tpIDxtLnN6eXBy b3dza2lAc2Ftc3VuZy5jb20+CkNjOiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1 bmcuY29tPgpDYzogVG9tYXN6IEZpZ2EgPHRmaWdhQGNocm9taXVtLm9yZz4KQ2M6IE1hdXJvIENh cnZhbGhvIENoZWhhYiA8bWNoZWhhYkBrZXJuZWwub3JnPgpDYzogQW5kcmV3IE1vcnRvbiA8YWtw bUBsaW51eC1mb3VuZGF0aW9uLm9yZz4KQ2M6IEpvaG4gSHViYmFyZCA8amh1YmJhcmRAbnZpZGlh LmNvbT4KQ2M6IErDqXLDtG1lIEdsaXNzZSA8amdsaXNzZUByZWRoYXQuY29tPgpDYzogSmFuIEth cmEgPGphY2tAc3VzZS5jej4KQ2M6IERhbiBXaWxsaWFtcyA8ZGFuLmoud2lsbGlhbXNAaW50ZWwu Y29tPgpDYzogbGludXgtbW1Aa3ZhY2sub3JnCkNjOiBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmlu ZnJhZGVhZC5vcmcKQ2M6IGxpbnV4LXNhbXN1bmctc29jQHZnZXIua2VybmVsLm9yZwpDYzogbGlu dXgtbWVkaWFAdmdlci5rZXJuZWwub3JnClNpZ25lZC1vZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRh bmllbC52ZXR0ZXJAZmZ3bGwuY2g+Ci0tCnYyOiBTdHJlYW1saW5lIHRoZSBjb2RlIGFuZCBmdXJ0 aGVyIHNpbXBsaWZ5IHRoZSBsb29wIGNoZWNrcyAoSmFzb24pCgp2NTogUmV2aWV3IGZyb20gVG9t YXN6OgotIGZpeCBwYWdlIGNvdW50aW5nIGZvciB0aGUgZm9sbG93X3BmbiBjYXNlIGJ5IHJlc2V0 dGluZyByZXQKLSBkcm9wIGd1cF9mbGFncyBwYXJhbWF0ZXIsIG5vdyB1bnVzZWQKLS0tCiAuLi4v bWVkaWEvY29tbW9uL3ZpZGVvYnVmMi92aWRlb2J1ZjItbWVtb3BzLmMgfCAgMyArLQogaW5jbHVk ZS9saW51eC9tbS5oICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG1tL2ZyYW1l X3ZlY3Rvci5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDUzICsrKysrKy0tLS0tLS0t LS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgMzkgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9jb21tb24vdmlkZW9idWYyL3ZpZGVvYnVmMi1t ZW1vcHMuYyBiL2RyaXZlcnMvbWVkaWEvY29tbW9uL3ZpZGVvYnVmMi92aWRlb2J1ZjItbWVtb3Bz LmMKaW5kZXggNmU5ZTA1MTUzZjRlLi45ZGQ2YzI3MTYyZjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bWVkaWEvY29tbW9uL3ZpZGVvYnVmMi92aWRlb2J1ZjItbWVtb3BzLmMKKysrIGIvZHJpdmVycy9t ZWRpYS9jb21tb24vdmlkZW9idWYyL3ZpZGVvYnVmMi1tZW1vcHMuYwpAQCAtNDAsNyArNDAsNiBA QCBzdHJ1Y3QgZnJhbWVfdmVjdG9yICp2YjJfY3JlYXRlX2ZyYW1ldmVjKHVuc2lnbmVkIGxvbmcg c3RhcnQsCiAJdW5zaWduZWQgbG9uZyBmaXJzdCwgbGFzdDsKIAl1bnNpZ25lZCBsb25nIG5yOwog CXN0cnVjdCBmcmFtZV92ZWN0b3IgKnZlYzsKLQl1bnNpZ25lZCBpbnQgZmxhZ3MgPSBGT0xMX0ZP UkNFIHwgRk9MTF9XUklURTsKIAogCWZpcnN0ID0gc3RhcnQgPj4gUEFHRV9TSElGVDsKIAlsYXN0 ID0gKHN0YXJ0ICsgbGVuZ3RoIC0gMSkgPj4gUEFHRV9TSElGVDsKQEAgLTQ4LDcgKzQ3LDcgQEAg c3RydWN0IGZyYW1lX3ZlY3RvciAqdmIyX2NyZWF0ZV9mcmFtZXZlYyh1bnNpZ25lZCBsb25nIHN0 YXJ0LAogCXZlYyA9IGZyYW1lX3ZlY3Rvcl9jcmVhdGUobnIpOwogCWlmICghdmVjKQogCQlyZXR1 cm4gRVJSX1BUUigtRU5PTUVNKTsKLQlyZXQgPSBnZXRfdmFkZHJfZnJhbWVzKHN0YXJ0ICYgUEFH RV9NQVNLLCBuciwgZmxhZ3MsIHZlYyk7CisJcmV0ID0gZ2V0X3ZhZGRyX2ZyYW1lcyhzdGFydCAm IFBBR0VfTUFTSywgbnIsIHZlYyk7CiAJaWYgKHJldCA8IDApCiAJCWdvdG8gb3V0X2Rlc3Ryb3k7 CiAJLyogV2UgYWNjZXB0IG9ubHkgY29tcGxldGUgc2V0IG9mIFBGTnMgKi8KZGlmZiAtLWdpdCBh L2luY2x1ZGUvbGludXgvbW0uaCBiL2luY2x1ZGUvbGludXgvbW0uaAppbmRleCBlZjM2MGZlNzBh YWYuLmQ2YjhlMzBkY2UyZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tbS5oCisrKyBiL2lu Y2x1ZGUvbGludXgvbW0uaApAQCAtMTc2NSw3ICsxNzY1LDcgQEAgc3RydWN0IGZyYW1lX3ZlY3Rv ciB7CiBzdHJ1Y3QgZnJhbWVfdmVjdG9yICpmcmFtZV92ZWN0b3JfY3JlYXRlKHVuc2lnbmVkIGlu dCBucl9mcmFtZXMpOwogdm9pZCBmcmFtZV92ZWN0b3JfZGVzdHJveShzdHJ1Y3QgZnJhbWVfdmVj dG9yICp2ZWMpOwogaW50IGdldF92YWRkcl9mcmFtZXModW5zaWduZWQgbG9uZyBzdGFydCwgdW5z aWduZWQgaW50IG5yX3BmbnMsCi0JCSAgICAgdW5zaWduZWQgaW50IGd1cF9mbGFncywgc3RydWN0 IGZyYW1lX3ZlY3RvciAqdmVjKTsKKwkJICAgICBzdHJ1Y3QgZnJhbWVfdmVjdG9yICp2ZWMpOwog dm9pZCBwdXRfdmFkZHJfZnJhbWVzKHN0cnVjdCBmcmFtZV92ZWN0b3IgKnZlYyk7CiBpbnQgZnJh bWVfdmVjdG9yX3RvX3BhZ2VzKHN0cnVjdCBmcmFtZV92ZWN0b3IgKnZlYyk7CiB2b2lkIGZyYW1l X3ZlY3Rvcl90b19wZm5zKHN0cnVjdCBmcmFtZV92ZWN0b3IgKnZlYyk7CmRpZmYgLS1naXQgYS9t bS9mcmFtZV92ZWN0b3IuYyBiL21tL2ZyYW1lX3ZlY3Rvci5jCmluZGV4IDEwZjgyZDU2NDNiNi4u ZjhjMzRiODk1Yzc2IDEwMDY0NAotLS0gYS9tbS9mcmFtZV92ZWN0b3IuYworKysgYi9tbS9mcmFt ZV92ZWN0b3IuYwpAQCAtMzIsMTMgKzMyLDEyIEBACiAgKiBUaGlzIGZ1bmN0aW9uIHRha2VzIGNh cmUgb2YgZ3JhYmJpbmcgbW1hcF9sb2NrIGFzIG5lY2Vzc2FyeS4KICAqLwogaW50IGdldF92YWRk cl9mcmFtZXModW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgaW50IG5yX2ZyYW1lcywKLQkJ ICAgICB1bnNpZ25lZCBpbnQgZ3VwX2ZsYWdzLCBzdHJ1Y3QgZnJhbWVfdmVjdG9yICp2ZWMpCisJ CSAgICAgc3RydWN0IGZyYW1lX3ZlY3RvciAqdmVjKQogewogCXN0cnVjdCBtbV9zdHJ1Y3QgKm1t ID0gY3VycmVudC0+bW07CiAJc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWE7CiAJaW50IHJldCA9 IDA7CiAJaW50IGVycjsKLQlpbnQgbG9ja2VkOwogCiAJaWYgKG5yX2ZyYW1lcyA9PSAwKQogCQly ZXR1cm4gMDsKQEAgLTQ4LDQwICs0NywyNiBAQCBpbnQgZ2V0X3ZhZGRyX2ZyYW1lcyh1bnNpZ25l ZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBpbnQgbnJfZnJhbWVzLAogCiAJc3RhcnQgPSB1bnRhZ2dl ZF9hZGRyKHN0YXJ0KTsKIAotCW1tYXBfcmVhZF9sb2NrKG1tKTsKLQlsb2NrZWQgPSAxOwotCXZt YSA9IGZpbmRfdm1hX2ludGVyc2VjdGlvbihtbSwgc3RhcnQsIHN0YXJ0ICsgMSk7Ci0JaWYgKCF2 bWEpIHsKLQkJcmV0ID0gLUVGQVVMVDsKLQkJZ290byBvdXQ7Ci0JfQotCi0JLyoKLQkgKiBXaGls ZSBnZXRfdmFkZHJfZnJhbWVzKCkgY291bGQgYmUgdXNlZCBmb3IgdHJhbnNpZW50IChrZXJuZWwK LQkgKiBjb250cm9sbGVkIGxpZmV0aW1lKSBwaW5uaW5nIG9mIG1lbW9yeSBwYWdlcyBhbGwgY3Vy cmVudAotCSAqIHVzZXJzIGVzdGFibGlzaCBsb25nIHRlcm0gKHVzZXJzcGFjZSBjb250cm9sbGVk IGxpZmV0aW1lKQotCSAqIHBhZ2UgcGlubmluZy4gVHJlYXQgZ2V0X3ZhZGRyX2ZyYW1lcygpIGxp a2UKLQkgKiBnZXRfdXNlcl9wYWdlc19sb25ndGVybSgpIGFuZCBkaXNhbGxvdyBpdCBmb3IgZmls ZXN5c3RlbS1kYXgKLQkgKiBtYXBwaW5ncy4KLQkgKi8KLQlpZiAodm1hX2lzX2ZzZGF4KHZtYSkp IHsKLQkJcmV0ID0gLUVPUE5PVFNVUFA7Ci0JCWdvdG8gb3V0OwotCX0KLQotCWlmICghKHZtYS0+ dm1fZmxhZ3MgJiAoVk1fSU8gfCBWTV9QRk5NQVApKSkgeworCXJldCA9IHBpbl91c2VyX3BhZ2Vz X2Zhc3Qoc3RhcnQsIG5yX2ZyYW1lcywKKwkJCQkgIEZPTExfRk9SQ0UgfCBGT0xMX1dSSVRFIHwg Rk9MTF9MT05HVEVSTSwKKwkJCQkgIChzdHJ1Y3QgcGFnZSAqKikodmVjLT5wdHJzKSk7CisJaWYg KHJldCA+IDApIHsKIAkJdmVjLT5nb3RfcmVmID0gdHJ1ZTsKIAkJdmVjLT5pc19wZm5zID0gZmFs c2U7Ci0JCXJldCA9IHBpbl91c2VyX3BhZ2VzX2xvY2tlZChzdGFydCwgbnJfZnJhbWVzLAotCQkJ Z3VwX2ZsYWdzLCAoc3RydWN0IHBhZ2UgKiopKHZlYy0+cHRycyksICZsb2NrZWQpOwotCQlnb3Rv IG91dDsKKwkJZ290byBvdXRfdW5sb2NrZWQ7CiAJfQogCisJbW1hcF9yZWFkX2xvY2sobW0pOwog CXZlYy0+Z290X3JlZiA9IGZhbHNlOwogCXZlYy0+aXNfcGZucyA9IHRydWU7CisJcmV0ID0gMDsK IAlkbyB7CiAJCXVuc2lnbmVkIGxvbmcgKm51bXMgPSBmcmFtZV92ZWN0b3JfcGZucyh2ZWMpOwog CisJCXZtYSA9IGZpbmRfdm1hX2ludGVyc2VjdGlvbihtbSwgc3RhcnQsIHN0YXJ0ICsgMSk7CisJ CWlmICghdm1hKQorCQkJYnJlYWs7CisKIAkJd2hpbGUgKHJldCA8IG5yX2ZyYW1lcyAmJiBzdGFy dCArIFBBR0VfU0laRSA8PSB2bWEtPnZtX2VuZCkgewogCQkJZXJyID0gZm9sbG93X3Bmbih2bWEs IHN0YXJ0LCAmbnVtc1tyZXRdKTsKIAkJCWlmIChlcnIpIHsKQEAgLTkyLDE3ICs3NywxMyBAQCBp bnQgZ2V0X3ZhZGRyX2ZyYW1lcyh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBpbnQgbnJf ZnJhbWVzLAogCQkJc3RhcnQgKz0gUEFHRV9TSVpFOwogCQkJcmV0Kys7CiAJCX0KLQkJLyoKLQkJ ICogV2Ugc3RvcCBpZiB3ZSBoYXZlIGVub3VnaCBwYWdlcyBvciBpZiBWTUEgZG9lc24ndCBjb21w bGV0ZWx5Ci0JCSAqIGNvdmVyIHRoZSB0YWlsIHBhZ2UuCi0JCSAqLwotCQlpZiAocmV0ID49IG5y X2ZyYW1lcyB8fCBzdGFydCA8IHZtYS0+dm1fZW5kKQorCQkvKiBCYWlsIG91dCBpZiBWTUEgZG9l c24ndCBjb21wbGV0ZWx5IGNvdmVyIHRoZSB0YWlsIHBhZ2UuICovCisJCWlmIChzdGFydCA8IHZt YS0+dm1fZW5kKQogCQkJYnJlYWs7Ci0JCXZtYSA9IGZpbmRfdm1hX2ludGVyc2VjdGlvbihtbSwg c3RhcnQsIHN0YXJ0ICsgMSk7Ci0JfSB3aGlsZSAodm1hICYmIHZtYS0+dm1fZmxhZ3MgJiAoVk1f SU8gfCBWTV9QRk5NQVApKTsKKwl9IHdoaWxlIChyZXQgPCBucl9mcmFtZXMpOwogb3V0OgotCWlm IChsb2NrZWQpCi0JCW1tYXBfcmVhZF91bmxvY2sobW0pOworCW1tYXBfcmVhZF91bmxvY2sobW0p Oworb3V0X3VubG9ja2VkOgogCWlmICghcmV0KQogCQlyZXQgPSAtRUZBVUxUOwogCWlmIChyZXQg PiAwKQotLSAKMi4yOC4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWwK