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 3FE78C43457 for ; Sat, 10 Oct 2020 23:01:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E910A2075E for ; Sat, 10 Oct 2020 23:01:39 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="bkgteCVx" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732511AbgJJW7h (ORCPT ); Sat, 10 Oct 2020 18:59:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57244 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728491AbgJJVcW (ORCPT ); Sat, 10 Oct 2020 17:32:22 -0400 Received: from mail-oi1-x244.google.com (mail-oi1-x244.google.com [IPv6:2607:f8b0:4864:20::244]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3E559C0613D5 for ; Sat, 10 Oct 2020 14:32:15 -0700 (PDT) Received: by mail-oi1-x244.google.com with SMTP id t77so14306983oie.4 for ; Sat, 10 Oct 2020 14:32:15 -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=eOErpfOgEHvqoynno+X7K2KGQQjqKpNf/4DLHM6VCxI=; b=bkgteCVxwM6kN0aEzNJYsf26mAIxhPv2McdrAdqiyH+C70JfkVfDt7/M5rR+rAdLhG cuhWtQlVsFvREMMLlMZEjS9TQsBb7WZQ8UggkyE4P+OvWApOlJjAa2toOrzS1mKuBYLH D1CUxJYWqX5UONNm+6mBvlB1DGdxP0Yv9uoBY= 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=eOErpfOgEHvqoynno+X7K2KGQQjqKpNf/4DLHM6VCxI=; b=HDxw8uo9Rznu7bPmIqu3xnnxSEDlx7kzdEUGv4dJa4O9G1U4rYKs8bZRYfj/DUaVOA RC0fnNh+dZgLXRBeOQV2q/4a1u8QQ+y5jcGOrORT3W0Ps9Ho7NOjVyrwqyqHeggY8s+W NLeSwCc9mEkDWEiw57l1c97T5gC+yzEC8a7niCsAs3gRVmRNB2775UePtC/rWFmhHMc9 zXw64g7TEBwBlogeqYSpUFMkYNajyWADFWBEjT8SEIO/FVDD9JEJf5BNMdS0BHFDu/8U mBp3Yp4qxd7a0Khcu2LQ/R3JG+UpcoMD/MgWcayJNO6ZHZPCz7wO+RUjG2pcljleP+oc dygA== X-Gm-Message-State: AOAM530ylb7xHqkWoNz1A27y4TR0oMkvA1bnpok8U35NJAJOKI4KqyDY cnsbDSlTrVM+9VaL/Gz+7sGIjqw4DGgfGzgTwsRqJA== X-Google-Smtp-Source: ABdhPJwlD9CwC0x8+4UqvunFmEbVtlxEXubTPmLCcFCqoFw+1d9HsFP/HM5IpzpxeQb5drq3ZcEO6Uh7XOBwl3Gjidk= X-Received: by 2002:aca:52c4:: with SMTP id g187mr6142563oib.101.1602365534555; Sat, 10 Oct 2020 14:32:14 -0700 (PDT) MIME-Version: 1.0 References: <20201009075934.3509076-1-daniel.vetter@ffwll.ch> <20201009075934.3509076-4-daniel.vetter@ffwll.ch> In-Reply-To: From: Daniel Vetter Date: Sat, 10 Oct 2020 23:32:03 +0200 Message-ID: Subject: Re: [PATCH v2 03/17] misc/habana: Stop using frame_vector helpers To: Oded Gabbay Cc: DRI Development , LKML , KVM list , linux-mm , "list@263.net:IOMMU DRIVERS , Joerg Roedel ," , linux-samsung-soc , Linux Media Mailing List , linux-s390 , Daniel Vetter , Jason Gunthorpe , Andrew Morton , John Hubbard , =?UTF-8?B?SsOpcsO0bWUgR2xpc3Nl?= , Jan Kara , Dan Williams , Omer Shpigelman , Ofir Bitton , Tomer Tayar , Moti Haimovski , Greg Kroah-Hartman , Pawel Piskorski 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 Sat, Oct 10, 2020 at 10:27 PM Oded Gabbay wrote: > > On Fri, Oct 9, 2020 at 10:59 AM Daniel Vetter wr= ote: > > > > All we need are a pages array, pin_user_pages_fast can give us that > > directly. Plus this avoids the entire raw pfn side of get_vaddr_frames. > > > Thanks for the patch Daniel. > > > Signed-off-by: Daniel Vetter > > Cc: Jason Gunthorpe > > 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: Oded Gabbay > > Cc: Omer Shpigelman > > Cc: Ofir Bitton > > Cc: Tomer Tayar > > Cc: Moti Haimovski > > Cc: Daniel Vetter > > Cc: Greg Kroah-Hartman > > Cc: Pawel Piskorski > > -- > > v2: Use unpin_user_pages_dirty_lock (John) > > --- > > drivers/misc/habanalabs/Kconfig | 1 - > > drivers/misc/habanalabs/common/habanalabs.h | 3 +- > > drivers/misc/habanalabs/common/memory.c | 49 ++++++++------------- > > 3 files changed, 20 insertions(+), 33 deletions(-) > > > > diff --git a/drivers/misc/habanalabs/Kconfig b/drivers/misc/habanalabs/= Kconfig > > index 8eb5d38c618e..2f04187f7167 100644 > > --- a/drivers/misc/habanalabs/Kconfig > > +++ b/drivers/misc/habanalabs/Kconfig > > @@ -6,7 +6,6 @@ > > config HABANA_AI > > tristate "HabanaAI accelerators (habanalabs)" > > depends on PCI && HAS_IOMEM > > - select FRAME_VECTOR > > select DMA_SHARED_BUFFER > > select GENERIC_ALLOCATOR > > select HWMON > > diff --git a/drivers/misc/habanalabs/common/habanalabs.h b/drivers/misc= /habanalabs/common/habanalabs.h > > index edbd627b29d2..c1b3ad613b15 100644 > > --- a/drivers/misc/habanalabs/common/habanalabs.h > > +++ b/drivers/misc/habanalabs/common/habanalabs.h > > @@ -881,7 +881,8 @@ struct hl_ctx_mgr { > > struct hl_userptr { > > enum vm_type_t vm_type; /* must be first */ > > struct list_head job_node; > > - struct frame_vector *vec; > > + struct page **pages; > > + unsigned int npages; > Can you please update the kerneldoc comment section of this structure > according to your changes ? Apologies I missed the nice kerneldoc. I'll fix that in the next round. > > struct sg_table *sgt; > > enum dma_data_direction dir; > > struct list_head debugfs_list; > > diff --git a/drivers/misc/habanalabs/common/memory.c b/drivers/misc/hab= analabs/common/memory.c > > index 5ff4688683fd..327b64479f97 100644 > > --- a/drivers/misc/habanalabs/common/memory.c > > +++ b/drivers/misc/habanalabs/common/memory.c > > @@ -1281,45 +1281,41 @@ static int get_user_memory(struct hl_device *hd= ev, u64 addr, u64 size, > > return -EFAULT; > > } > > > > - userptr->vec =3D frame_vector_create(npages); > > - if (!userptr->vec) { > > + userptr->pages =3D kvmalloc_array(npages, sizeof(*userptr->page= s), > > + GFP_KERNEL); > > + if (!userptr->pages) { > > dev_err(hdev->dev, "Failed to create frame vector\n"); > > return -ENOMEM; > > } > > > > - rc =3D get_vaddr_frames(start, npages, FOLL_FORCE | FOLL_WRITE, > > - userptr->vec); > > + rc =3D pin_user_pages_fast(start, npages, FOLL_FORCE | FOLL_WRI= TE, > > + userptr->pages); > > > > if (rc !=3D npages) { > > dev_err(hdev->dev, > > "Failed to map host memory, user ptr probably w= rong\n"); > > if (rc < 0) > > - goto destroy_framevec; > > + goto destroy_pages; > > + npages =3D rc; > > rc =3D -EFAULT; > > - goto put_framevec; > > - } > > - > > - if (frame_vector_to_pages(userptr->vec) < 0) { > > - dev_err(hdev->dev, > > - "Failed to translate frame vector to pages\n"); > > - rc =3D -EFAULT; > > - goto put_framevec; > > + goto put_pages; > > } > > + userptr->npages =3D npages; > > > > rc =3D sg_alloc_table_from_pages(userptr->sgt, > > - frame_vector_pages(userptr->vec= ), > > - npages, offset, size, GFP_ATOMI= C); > > + userptr->pages, > > + npages, offset, size, GFP_ATOMIC= ); > I think that because the call to kvmalloc_array() is done with > GFP_KERNEL, there is no point in using GFP_ATOMIC here. > And actually, this path only needs to avoid yielding when using a > special debug mode. > So I suggest putting here GFP_KERNEL. Huh, I didn't even notice the GFP_ATOMIC here. This looks indeed strange and GFP_KERNEL should be perfectly fine in a function that also calls pin_user_pages (since that one can allocate and do worse stuff like userspace pagefaults). But since that GFP_ATOMIC is there already I'll do that in a separate patch= . > In the meanwhile, I'll run this patch (coupled with the next patch) in > our C/I to make sure there are no regressions. Excellent. I'll wait with v3 until that's done, just in case you hit a snag I need to fix. Cheers, Daniel > Thanks, > Oded > > > if (rc < 0) { > > dev_err(hdev->dev, "failed to create SG table from page= s\n"); > > - goto put_framevec; > > + goto put_pages; > > } > > > > return 0; > > > > -put_framevec: > > - put_vaddr_frames(userptr->vec); > > -destroy_framevec: > > - frame_vector_destroy(userptr->vec); > > +put_pages: > > + unpin_user_pages(userptr->pages, npages); > > +destroy_pages: > > + kvfree(userptr->pages); > > return rc; > > } > > > > @@ -1405,8 +1401,6 @@ int hl_pin_host_memory(struct hl_device *hdev, u6= 4 addr, u64 size, > > */ > > void hl_unpin_host_memory(struct hl_device *hdev, struct hl_userptr *u= serptr) > > { > > - struct page **pages; > > - > > hl_debugfs_remove_userptr(hdev, userptr); > > > > if (userptr->dma_mapped) > > @@ -1414,15 +1408,8 @@ void hl_unpin_host_memory(struct hl_device *hdev= , struct hl_userptr *userptr) > > userptr->sgt->n= ents, > > userptr->dir); > > > > - pages =3D frame_vector_pages(userptr->vec); > > - if (!IS_ERR(pages)) { > > - int i; > > - > > - for (i =3D 0; i < frame_vector_count(userptr->vec); i++= ) > > - set_page_dirty_lock(pages[i]); > > - } > > - put_vaddr_frames(userptr->vec); > > - frame_vector_destroy(userptr->vec); > > + unpin_user_pages_dirty_lock(userptr->pages, userptr->npages, tr= ue); > > + kvfree(userptr->pages); > > > > list_del(&userptr->job_node); > > > > -- > > 2.28.0 > > -- 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=-9.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 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 129D5C433E7 for ; Sat, 10 Oct 2020 21:34:32 +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 9B778207C4 for ; Sat, 10 Oct 2020 21:34:31 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="g+j68xO3"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="bkgteCVx" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9B778207C4 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=02Ph6ptl/45CXCWOoyTDY9WIEcUC/29QF05URNj6p2E=; b=g+j68xO3ldakz/1tVXVavanYZ CJrmi7y/+qdARMiBUaikV5RTOLy45QwtC6cZcAak1mSW8CyHP6RQnpns/y9nkZPdnmzI9TX1/UaKs rXORS47NU1p63W97Rl8XsjTw8fCEsvSf125oBstCM84TUOlCe0J1jtg/jCJ742jFtqw36Zs1ctU3O 88V7WFuqbH+FfW7w0vPVQcBLEEvtLzWdHCJTL9SPBxV0p077+Ik756OHsDSDSLc3qfvpNfU+Nyux5 UCeHaISRrX0qXbKTqnlClAeCyzEc3r3+rpKcQPBiBAM5D22Lvifd+VYUDCPHQJY2JwJaiZKK/WTu2 D6ehnwtew==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kRMTW-0001rC-NP; Sat, 10 Oct 2020 21:32:22 +0000 Received: from mail-oi1-x243.google.com ([2607:f8b0:4864:20::243]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kRMTT-0001pm-2h for linux-arm-kernel@lists.infradead.org; Sat, 10 Oct 2020 21:32:20 +0000 Received: by mail-oi1-x243.google.com with SMTP id w141so14323903oia.2 for ; Sat, 10 Oct 2020 14:32:16 -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=eOErpfOgEHvqoynno+X7K2KGQQjqKpNf/4DLHM6VCxI=; b=bkgteCVxwM6kN0aEzNJYsf26mAIxhPv2McdrAdqiyH+C70JfkVfDt7/M5rR+rAdLhG cuhWtQlVsFvREMMLlMZEjS9TQsBb7WZQ8UggkyE4P+OvWApOlJjAa2toOrzS1mKuBYLH D1CUxJYWqX5UONNm+6mBvlB1DGdxP0Yv9uoBY= 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=eOErpfOgEHvqoynno+X7K2KGQQjqKpNf/4DLHM6VCxI=; b=gqDVT1KZAndjvwWc5sIFr9o8pWAB5Tn4I+gVggiXn5D960pFuGOWAWztAke9BLmsg0 h+8JnCwMf9LftRckuQB3LYIRRYFh7XxbLFdWzhFn9xDF7D5POMTSqr7WfNq5qaqlqH2T uAonI7j3TZI8pP+DbxxYAhvbeefkfjLYRhjFZ1E2zFjo11w0+41UJ8DHjOW73uCx3zYv 31o4AqQ7m7OOYYrA6Tn+duY7AEpc50d2DR3540UM/c+oxo2Ex4hMOgfG+h0kbHdLjE/v QtxvYwJV8VHgPai+ImltodSYKR39cInQditLUG9WvD7jQv8p+ah9CpXi084/wp3Gebie TW6g== X-Gm-Message-State: AOAM533ZPnvW/jp6GKAfjoY5OouYmf1YeM4PFRFXszgZNlp+ff9B2ngP HT92pvOe3G0FqtE2mdYkSQii46rJKx6bcKj5+8H8JA== X-Google-Smtp-Source: ABdhPJwlD9CwC0x8+4UqvunFmEbVtlxEXubTPmLCcFCqoFw+1d9HsFP/HM5IpzpxeQb5drq3ZcEO6Uh7XOBwl3Gjidk= X-Received: by 2002:aca:52c4:: with SMTP id g187mr6142563oib.101.1602365534555; Sat, 10 Oct 2020 14:32:14 -0700 (PDT) MIME-Version: 1.0 References: <20201009075934.3509076-1-daniel.vetter@ffwll.ch> <20201009075934.3509076-4-daniel.vetter@ffwll.ch> In-Reply-To: From: Daniel Vetter Date: Sat, 10 Oct 2020 23:32:03 +0200 Message-ID: Subject: Re: [PATCH v2 03/17] misc/habana: Stop using frame_vector helpers To: Oded Gabbay X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201010_173219_167281_44B2A435 X-CRM114-Status: GOOD ( 34.14 ) 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 , linux-samsung-soc , Jan Kara , KVM list , Jason Gunthorpe , Pawel Piskorski , John Hubbard , LKML , DRI Development , Ofir Bitton , linux-mm , =?UTF-8?B?SsOpcsO0bWUgR2xpc3Nl?= , Tomer Tayar , Omer Shpigelman , Greg Kroah-Hartman , Daniel Vetter , Andrew Morton , Moti Haimovski , Dan Williams , "list@263.net:IOMMU DRIVERS , Joerg Roedel , " , Linux Media Mailing List 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 T24gU2F0LCBPY3QgMTAsIDIwMjAgYXQgMTA6MjcgUE0gT2RlZCBHYWJiYXkgPG9kZWQuZ2FiYmF5 QGdtYWlsLmNvbT4gd3JvdGU6Cj4KPiBPbiBGcmksIE9jdCA5LCAyMDIwIGF0IDEwOjU5IEFNIERh bmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+IHdyb3RlOgo+ID4KPiA+IEFsbCB3 ZSBuZWVkIGFyZSBhIHBhZ2VzIGFycmF5LCBwaW5fdXNlcl9wYWdlc19mYXN0IGNhbiBnaXZlIHVz IHRoYXQKPiA+IGRpcmVjdGx5LiBQbHVzIHRoaXMgYXZvaWRzIHRoZSBlbnRpcmUgcmF3IHBmbiBz aWRlIG9mIGdldF92YWRkcl9mcmFtZXMuCj4gPgo+IFRoYW5rcyBmb3IgdGhlIHBhdGNoIERhbmll bC4KPgo+ID4gU2lnbmVkLW9mZi1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRl bC5jb20+Cj4gPiBDYzogSmFzb24gR3VudGhvcnBlIDxqZ2dAemllcGUuY2E+Cj4gPiBDYzogQW5k cmV3IE1vcnRvbiA8YWtwbUBsaW51eC1mb3VuZGF0aW9uLm9yZz4KPiA+IENjOiBKb2huIEh1YmJh cmQgPGpodWJiYXJkQG52aWRpYS5jb20+Cj4gPiBDYzogSsOpcsO0bWUgR2xpc3NlIDxqZ2xpc3Nl QHJlZGhhdC5jb20+Cj4gPiBDYzogSmFuIEthcmEgPGphY2tAc3VzZS5jej4KPiA+IENjOiBEYW4g V2lsbGlhbXMgPGRhbi5qLndpbGxpYW1zQGludGVsLmNvbT4KPiA+IENjOiBsaW51eC1tbUBrdmFj ay5vcmcKPiA+IENjOiBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKPiA+IENj OiBsaW51eC1zYW1zdW5nLXNvY0B2Z2VyLmtlcm5lbC5vcmcKPiA+IENjOiBsaW51eC1tZWRpYUB2 Z2VyLmtlcm5lbC5vcmcKPiA+IENjOiBPZGVkIEdhYmJheSA8b2RlZC5nYWJiYXlAZ21haWwuY29t Pgo+ID4gQ2M6IE9tZXIgU2hwaWdlbG1hbiA8b3NocGlnZWxtYW5AaGFiYW5hLmFpPgo+ID4gQ2M6 IE9maXIgQml0dG9uIDxvYml0dG9uQGhhYmFuYS5haT4KPiA+IENjOiBUb21lciBUYXlhciA8dHRh eWFyQGhhYmFuYS5haT4KPiA+IENjOiBNb3RpIEhhaW1vdnNraSA8bWhhaW1vdnNraUBoYWJhbmEu YWk+Cj4gPiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiA+IENj OiBHcmVnIEtyb2FoLUhhcnRtYW4gPGdyZWdraEBsaW51eGZvdW5kYXRpb24ub3JnPgo+ID4gQ2M6 IFBhd2VsIFBpc2tvcnNraSA8cHBpc2tvcnNraUBoYWJhbmEuYWk+Cj4gPiAtLQo+ID4gdjI6IFVz ZSB1bnBpbl91c2VyX3BhZ2VzX2RpcnR5X2xvY2sgKEpvaG4pCj4gPiAtLS0KPiA+ICBkcml2ZXJz L21pc2MvaGFiYW5hbGFicy9LY29uZmlnICAgICAgICAgICAgIHwgIDEgLQo+ID4gIGRyaXZlcnMv bWlzYy9oYWJhbmFsYWJzL2NvbW1vbi9oYWJhbmFsYWJzLmggfCAgMyArLQo+ID4gIGRyaXZlcnMv bWlzYy9oYWJhbmFsYWJzL2NvbW1vbi9tZW1vcnkuYyAgICAgfCA0OSArKysrKysrKy0tLS0tLS0t LS0tLS0KPiA+ICAzIGZpbGVzIGNoYW5nZWQsIDIwIGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9u cygtKQo+ID4KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21pc2MvaGFiYW5hbGFicy9LY29uZmln IGIvZHJpdmVycy9taXNjL2hhYmFuYWxhYnMvS2NvbmZpZwo+ID4gaW5kZXggOGViNWQzOGM2MThl Li4yZjA0MTg3ZjcxNjcgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL21pc2MvaGFiYW5hbGFicy9L Y29uZmlnCj4gPiArKysgYi9kcml2ZXJzL21pc2MvaGFiYW5hbGFicy9LY29uZmlnCj4gPiBAQCAt Niw3ICs2LDYgQEAKPiA+ICBjb25maWcgSEFCQU5BX0FJCj4gPiAgICAgICAgIHRyaXN0YXRlICJI YWJhbmFBSSBhY2NlbGVyYXRvcnMgKGhhYmFuYWxhYnMpIgo+ID4gICAgICAgICBkZXBlbmRzIG9u IFBDSSAmJiBIQVNfSU9NRU0KPiA+IC0gICAgICAgc2VsZWN0IEZSQU1FX1ZFQ1RPUgo+ID4gICAg ICAgICBzZWxlY3QgRE1BX1NIQVJFRF9CVUZGRVIKPiA+ICAgICAgICAgc2VsZWN0IEdFTkVSSUNf QUxMT0NBVE9SCj4gPiAgICAgICAgIHNlbGVjdCBIV01PTgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvbWlzYy9oYWJhbmFsYWJzL2NvbW1vbi9oYWJhbmFsYWJzLmggYi9kcml2ZXJzL21pc2MvaGFi YW5hbGFicy9jb21tb24vaGFiYW5hbGFicy5oCj4gPiBpbmRleCBlZGJkNjI3YjI5ZDIuLmMxYjNh ZDYxM2IxNSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvbWlzYy9oYWJhbmFsYWJzL2NvbW1vbi9o YWJhbmFsYWJzLmgKPiA+ICsrKyBiL2RyaXZlcnMvbWlzYy9oYWJhbmFsYWJzL2NvbW1vbi9oYWJh bmFsYWJzLmgKPiA+IEBAIC04ODEsNyArODgxLDggQEAgc3RydWN0IGhsX2N0eF9tZ3Igewo+ID4g IHN0cnVjdCBobF91c2VycHRyIHsKPiA+ICAgICAgICAgZW51bSB2bV90eXBlX3QgICAgICAgICAg dm1fdHlwZTsgLyogbXVzdCBiZSBmaXJzdCAqLwo+ID4gICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFk ICAgICAgICBqb2Jfbm9kZTsKPiA+IC0gICAgICAgc3RydWN0IGZyYW1lX3ZlY3RvciAgICAgKnZl YzsKPiA+ICsgICAgICAgc3RydWN0IHBhZ2UgICAgICAgICAgICAgKipwYWdlczsKPiA+ICsgICAg ICAgdW5zaWduZWQgaW50ICAgICAgICAgICAgbnBhZ2VzOwo+IENhbiB5b3UgcGxlYXNlIHVwZGF0 ZSB0aGUga2VybmVsZG9jIGNvbW1lbnQgc2VjdGlvbiBvZiB0aGlzIHN0cnVjdHVyZQo+IGFjY29y ZGluZyB0byB5b3VyIGNoYW5nZXMgPwoKQXBvbG9naWVzIEkgbWlzc2VkIHRoZSBuaWNlIGtlcm5l bGRvYy4gSSdsbCBmaXggdGhhdCBpbiB0aGUgbmV4dCByb3VuZC4KCgo+ID4gICAgICAgICBzdHJ1 Y3Qgc2dfdGFibGUgICAgICAgICAqc2d0Owo+ID4gICAgICAgICBlbnVtIGRtYV9kYXRhX2RpcmVj dGlvbiBkaXI7Cj4gPiAgICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgICAgICAgIGRlYnVnZnNfbGlz dDsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21pc2MvaGFiYW5hbGFicy9jb21tb24vbWVtb3J5 LmMgYi9kcml2ZXJzL21pc2MvaGFiYW5hbGFicy9jb21tb24vbWVtb3J5LmMKPiA+IGluZGV4IDVm ZjQ2ODg2ODNmZC4uMzI3YjY0NDc5Zjk3IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9taXNjL2hh YmFuYWxhYnMvY29tbW9uL21lbW9yeS5jCj4gPiArKysgYi9kcml2ZXJzL21pc2MvaGFiYW5hbGFi cy9jb21tb24vbWVtb3J5LmMKPiA+IEBAIC0xMjgxLDQ1ICsxMjgxLDQxIEBAIHN0YXRpYyBpbnQg Z2V0X3VzZXJfbWVtb3J5KHN0cnVjdCBobF9kZXZpY2UgKmhkZXYsIHU2NCBhZGRyLCB1NjQgc2l6 ZSwKPiA+ICAgICAgICAgICAgICAgICByZXR1cm4gLUVGQVVMVDsKPiA+ICAgICAgICAgfQo+ID4K PiA+IC0gICAgICAgdXNlcnB0ci0+dmVjID0gZnJhbWVfdmVjdG9yX2NyZWF0ZShucGFnZXMpOwo+ ID4gLSAgICAgICBpZiAoIXVzZXJwdHItPnZlYykgewo+ID4gKyAgICAgICB1c2VycHRyLT5wYWdl cyA9IGt2bWFsbG9jX2FycmF5KG5wYWdlcywgc2l6ZW9mKCp1c2VycHRyLT5wYWdlcyksCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0ZQX0tFUk5FTCk7Cj4gPiAr ICAgICAgIGlmICghdXNlcnB0ci0+cGFnZXMpIHsKPiA+ICAgICAgICAgICAgICAgICBkZXZfZXJy KGhkZXYtPmRldiwgIkZhaWxlZCB0byBjcmVhdGUgZnJhbWUgdmVjdG9yXG4iKTsKPiA+ICAgICAg ICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKPiA+ICAgICAgICAgfQo+ID4KPiA+IC0gICAgICAg cmMgPSBnZXRfdmFkZHJfZnJhbWVzKHN0YXJ0LCBucGFnZXMsIEZPTExfRk9SQ0UgfCBGT0xMX1dS SVRFLAo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VycHRyLT52ZWMpOwo+ ID4gKyAgICAgICByYyA9IHBpbl91c2VyX3BhZ2VzX2Zhc3Qoc3RhcnQsIG5wYWdlcywgRk9MTF9G T1JDRSB8IEZPTExfV1JJVEUsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 c2VycHRyLT5wYWdlcyk7Cj4gPgo+ID4gICAgICAgICBpZiAocmMgIT0gbnBhZ2VzKSB7Cj4gPiAg ICAgICAgICAgICAgICAgZGV2X2VycihoZGV2LT5kZXYsCj4gPiAgICAgICAgICAgICAgICAgICAg ICAgICAiRmFpbGVkIHRvIG1hcCBob3N0IG1lbW9yeSwgdXNlciBwdHIgcHJvYmFibHkgd3Jvbmdc biIpOwo+ID4gICAgICAgICAgICAgICAgIGlmIChyYyA8IDApCj4gPiAtICAgICAgICAgICAgICAg ICAgICAgICBnb3RvIGRlc3Ryb3lfZnJhbWV2ZWM7Cj4gPiArICAgICAgICAgICAgICAgICAgICAg ICBnb3RvIGRlc3Ryb3lfcGFnZXM7Cj4gPiArICAgICAgICAgICAgICAgbnBhZ2VzID0gcmM7Cj4g PiAgICAgICAgICAgICAgICAgcmMgPSAtRUZBVUxUOwo+ID4gLSAgICAgICAgICAgICAgIGdvdG8g cHV0X2ZyYW1ldmVjOwo+ID4gLSAgICAgICB9Cj4gPiAtCj4gPiAtICAgICAgIGlmIChmcmFtZV92 ZWN0b3JfdG9fcGFnZXModXNlcnB0ci0+dmVjKSA8IDApIHsKPiA+IC0gICAgICAgICAgICAgICBk ZXZfZXJyKGhkZXYtPmRldiwKPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8g dHJhbnNsYXRlIGZyYW1lIHZlY3RvciB0byBwYWdlc1xuIik7Cj4gPiAtICAgICAgICAgICAgICAg cmMgPSAtRUZBVUxUOwo+ID4gLSAgICAgICAgICAgICAgIGdvdG8gcHV0X2ZyYW1ldmVjOwo+ID4g KyAgICAgICAgICAgICAgIGdvdG8gcHV0X3BhZ2VzOwo+ID4gICAgICAgICB9Cj4gPiArICAgICAg IHVzZXJwdHItPm5wYWdlcyA9IG5wYWdlczsKPiA+Cj4gPiAgICAgICAgIHJjID0gc2dfYWxsb2Nf dGFibGVfZnJvbV9wYWdlcyh1c2VycHRyLT5zZ3QsCj4gPiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZnJhbWVfdmVjdG9yX3BhZ2VzKHVzZXJwdHItPnZlYyksCj4gPiAt ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnBhZ2VzLCBvZmZzZXQsIHNp emUsIEdGUF9BVE9NSUMpOwo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdXNlcnB0ci0+cGFnZXMsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBucGFnZXMsIG9mZnNldCwgc2l6ZSwgR0ZQX0FUT01JQyk7Cj4gSSB0aGluayB0aGF0IGJl Y2F1c2UgdGhlIGNhbGwgdG8ga3ZtYWxsb2NfYXJyYXkoKSBpcyBkb25lIHdpdGgKPiBHRlBfS0VS TkVMLCB0aGVyZSBpcyBubyBwb2ludCBpbiB1c2luZyBHRlBfQVRPTUlDIGhlcmUuCj4gQW5kIGFj dHVhbGx5LCB0aGlzIHBhdGggb25seSBuZWVkcyB0byBhdm9pZCB5aWVsZGluZyB3aGVuIHVzaW5n IGEKPiBzcGVjaWFsIGRlYnVnIG1vZGUuCj4gU28gSSBzdWdnZXN0IHB1dHRpbmcgaGVyZSBHRlBf S0VSTkVMLgoKSHVoLCBJIGRpZG4ndCBldmVuIG5vdGljZSB0aGUgR0ZQX0FUT01JQyBoZXJlLiBU aGlzIGxvb2tzIGluZGVlZApzdHJhbmdlIGFuZCBHRlBfS0VSTkVMIHNob3VsZCBiZSBwZXJmZWN0 bHkgZmluZSBpbiBhIGZ1bmN0aW9uIHRoYXQKYWxzbyBjYWxscyBwaW5fdXNlcl9wYWdlcyAoc2lu Y2UgdGhhdCBvbmUgY2FuIGFsbG9jYXRlIGFuZCBkbyB3b3JzZQpzdHVmZiBsaWtlIHVzZXJzcGFj ZSBwYWdlZmF1bHRzKS4KCkJ1dCBzaW5jZSB0aGF0IEdGUF9BVE9NSUMgaXMgdGhlcmUgYWxyZWFk eSBJJ2xsIGRvIHRoYXQgaW4gYSBzZXBhcmF0ZSBwYXRjaC4KCj4gSW4gdGhlIG1lYW53aGlsZSwg SSdsbCBydW4gdGhpcyBwYXRjaCAoY291cGxlZCB3aXRoIHRoZSBuZXh0IHBhdGNoKSBpbgo+IG91 ciBDL0kgdG8gbWFrZSBzdXJlIHRoZXJlIGFyZSBubyByZWdyZXNzaW9ucy4KCkV4Y2VsbGVudC4g SSdsbCB3YWl0IHdpdGggdjMgdW50aWwgdGhhdCdzIGRvbmUsIGp1c3QgaW4gY2FzZSB5b3UgaGl0 IGEKc25hZyBJIG5lZWQgdG8gZml4LgoKQ2hlZXJzLCBEYW5pZWwKCj4gVGhhbmtzLAo+IE9kZWQK Pgo+ID4gICAgICAgICBpZiAocmMgPCAwKSB7Cj4gPiAgICAgICAgICAgICAgICAgZGV2X2Vyciho ZGV2LT5kZXYsICJmYWlsZWQgdG8gY3JlYXRlIFNHIHRhYmxlIGZyb20gcGFnZXNcbiIpOwo+ID4g LSAgICAgICAgICAgICAgIGdvdG8gcHV0X2ZyYW1ldmVjOwo+ID4gKyAgICAgICAgICAgICAgIGdv dG8gcHV0X3BhZ2VzOwo+ID4gICAgICAgICB9Cj4gPgo+ID4gICAgICAgICByZXR1cm4gMDsKPiA+ Cj4gPiAtcHV0X2ZyYW1ldmVjOgo+ID4gLSAgICAgICBwdXRfdmFkZHJfZnJhbWVzKHVzZXJwdHIt PnZlYyk7Cj4gPiAtZGVzdHJveV9mcmFtZXZlYzoKPiA+IC0gICAgICAgZnJhbWVfdmVjdG9yX2Rl c3Ryb3kodXNlcnB0ci0+dmVjKTsKPiA+ICtwdXRfcGFnZXM6Cj4gPiArICAgICAgIHVucGluX3Vz ZXJfcGFnZXModXNlcnB0ci0+cGFnZXMsIG5wYWdlcyk7Cj4gPiArZGVzdHJveV9wYWdlczoKPiA+ ICsgICAgICAga3ZmcmVlKHVzZXJwdHItPnBhZ2VzKTsKPiA+ICAgICAgICAgcmV0dXJuIHJjOwo+ ID4gIH0KPiA+Cj4gPiBAQCAtMTQwNSw4ICsxNDAxLDYgQEAgaW50IGhsX3Bpbl9ob3N0X21lbW9y eShzdHJ1Y3QgaGxfZGV2aWNlICpoZGV2LCB1NjQgYWRkciwgdTY0IHNpemUsCj4gPiAgICovCj4g PiAgdm9pZCBobF91bnBpbl9ob3N0X21lbW9yeShzdHJ1Y3QgaGxfZGV2aWNlICpoZGV2LCBzdHJ1 Y3QgaGxfdXNlcnB0ciAqdXNlcnB0cikKPiA+ICB7Cj4gPiAtICAgICAgIHN0cnVjdCBwYWdlICoq cGFnZXM7Cj4gPiAtCj4gPiAgICAgICAgIGhsX2RlYnVnZnNfcmVtb3ZlX3VzZXJwdHIoaGRldiwg dXNlcnB0cik7Cj4gPgo+ID4gICAgICAgICBpZiAodXNlcnB0ci0+ZG1hX21hcHBlZCkKPiA+IEBA IC0xNDE0LDE1ICsxNDA4LDggQEAgdm9pZCBobF91bnBpbl9ob3N0X21lbW9yeShzdHJ1Y3QgaGxf ZGV2aWNlICpoZGV2LCBzdHJ1Y3QgaGxfdXNlcnB0ciAqdXNlcnB0cikKPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcnB0ci0+c2d0 LT5uZW50cywKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdXNlcnB0ci0+ZGlyKTsKPiA+Cj4gPiAtICAgICAgIHBhZ2VzID0gZnJhbWVf dmVjdG9yX3BhZ2VzKHVzZXJwdHItPnZlYyk7Cj4gPiAtICAgICAgIGlmICghSVNfRVJSKHBhZ2Vz KSkgewo+ID4gLSAgICAgICAgICAgICAgIGludCBpOwo+ID4gLQo+ID4gLSAgICAgICAgICAgICAg IGZvciAoaSA9IDA7IGkgPCBmcmFtZV92ZWN0b3JfY291bnQodXNlcnB0ci0+dmVjKTsgaSsrKQo+ ID4gLSAgICAgICAgICAgICAgICAgICAgICAgc2V0X3BhZ2VfZGlydHlfbG9jayhwYWdlc1tpXSk7 Cj4gPiAtICAgICAgIH0KPiA+IC0gICAgICAgcHV0X3ZhZGRyX2ZyYW1lcyh1c2VycHRyLT52ZWMp Owo+ID4gLSAgICAgICBmcmFtZV92ZWN0b3JfZGVzdHJveSh1c2VycHRyLT52ZWMpOwo+ID4gKyAg ICAgICB1bnBpbl91c2VyX3BhZ2VzX2RpcnR5X2xvY2sodXNlcnB0ci0+cGFnZXMsIHVzZXJwdHIt Pm5wYWdlcywgdHJ1ZSk7Cj4gPiArICAgICAgIGt2ZnJlZSh1c2VycHRyLT5wYWdlcyk7Cj4gPgo+ ID4gICAgICAgICBsaXN0X2RlbCgmdXNlcnB0ci0+am9iX25vZGUpOwo+ID4KPiA+IC0tCj4gPiAy LjI4LjAKPiA+CgoKCi0tCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENv cnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51 eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5v cmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg== 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 80429C43457 for ; Sat, 10 Oct 2020 21:32:19 +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 803C52083B for ; Sat, 10 Oct 2020 21:32:18 +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="bkgteCVx" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 803C52083B 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 1C9CF6E060; Sat, 10 Oct 2020 21:32:17 +0000 (UTC) Received: from mail-oi1-x241.google.com (mail-oi1-x241.google.com [IPv6:2607:f8b0:4864:20::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 351666E060 for ; Sat, 10 Oct 2020 21:32:15 +0000 (UTC) Received: by mail-oi1-x241.google.com with SMTP id h10so1619626oie.5 for ; Sat, 10 Oct 2020 14:32:15 -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=eOErpfOgEHvqoynno+X7K2KGQQjqKpNf/4DLHM6VCxI=; b=bkgteCVxwM6kN0aEzNJYsf26mAIxhPv2McdrAdqiyH+C70JfkVfDt7/M5rR+rAdLhG cuhWtQlVsFvREMMLlMZEjS9TQsBb7WZQ8UggkyE4P+OvWApOlJjAa2toOrzS1mKuBYLH D1CUxJYWqX5UONNm+6mBvlB1DGdxP0Yv9uoBY= 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=eOErpfOgEHvqoynno+X7K2KGQQjqKpNf/4DLHM6VCxI=; b=tvXLqPjTg5TReMN9ldTHx5/OHsvOur7vr49QMo+lq8h7nJG5A6xTrxeRA6/PL5D1b2 PGFtkoM5VIreJU6Z77Yadtn3ylIq2ZU3VsxlAsW+Sv7R/Km2qFUpSDbzOc+n7mK9I6fD PrYlTwyQPkKYQyQ4QBJltvxXFjhK0yht4e1G4Y84kRy7/LPI43B48sDrGqGfNxckC2uA corF+AVqF751WJUhfPYdh216Ih4FLvaSutlGBwrMKkotoZZL2+kYqQik8bmQMqKJppng U5CzCZBSOpNyRcW8g1elJnav1NUfjuUAkwD3xj8g9lY7wOum/eXXmaB4AFsoxuPp6ox1 rU7A== X-Gm-Message-State: AOAM530uzUlKUf2ZTzGTDZnwt1rLmKCB0kjmItbKQp5Ppyt5TqF6HgnX Y61wy2itNjXLYtxhrQC468EkvPTrjkGDi4yNGMv01A== X-Google-Smtp-Source: ABdhPJwlD9CwC0x8+4UqvunFmEbVtlxEXubTPmLCcFCqoFw+1d9HsFP/HM5IpzpxeQb5drq3ZcEO6Uh7XOBwl3Gjidk= X-Received: by 2002:aca:52c4:: with SMTP id g187mr6142563oib.101.1602365534555; Sat, 10 Oct 2020 14:32:14 -0700 (PDT) MIME-Version: 1.0 References: <20201009075934.3509076-1-daniel.vetter@ffwll.ch> <20201009075934.3509076-4-daniel.vetter@ffwll.ch> In-Reply-To: From: Daniel Vetter Date: Sat, 10 Oct 2020 23:32:03 +0200 Message-ID: Subject: Re: [PATCH v2 03/17] misc/habana: Stop using frame_vector helpers To: Oded Gabbay 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 , linux-samsung-soc , Jan Kara , KVM list , Jason Gunthorpe , Pawel Piskorski , John Hubbard , LKML , DRI Development , Ofir Bitton , linux-mm , =?UTF-8?B?SsOpcsO0bWUgR2xpc3Nl?= , Tomer Tayar , Omer Shpigelman , Greg Kroah-Hartman , Daniel Vetter , Andrew Morton , Moti Haimovski , Dan Williams , "list@263.net:IOMMU DRIVERS , Joerg Roedel , " , Linux Media Mailing List Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gU2F0LCBPY3QgMTAsIDIwMjAgYXQgMTA6MjcgUE0gT2RlZCBHYWJiYXkgPG9kZWQuZ2FiYmF5 QGdtYWlsLmNvbT4gd3JvdGU6Cj4KPiBPbiBGcmksIE9jdCA5LCAyMDIwIGF0IDEwOjU5IEFNIERh bmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+IHdyb3RlOgo+ID4KPiA+IEFsbCB3 ZSBuZWVkIGFyZSBhIHBhZ2VzIGFycmF5LCBwaW5fdXNlcl9wYWdlc19mYXN0IGNhbiBnaXZlIHVz IHRoYXQKPiA+IGRpcmVjdGx5LiBQbHVzIHRoaXMgYXZvaWRzIHRoZSBlbnRpcmUgcmF3IHBmbiBz aWRlIG9mIGdldF92YWRkcl9mcmFtZXMuCj4gPgo+IFRoYW5rcyBmb3IgdGhlIHBhdGNoIERhbmll bC4KPgo+ID4gU2lnbmVkLW9mZi1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRl bC5jb20+Cj4gPiBDYzogSmFzb24gR3VudGhvcnBlIDxqZ2dAemllcGUuY2E+Cj4gPiBDYzogQW5k cmV3IE1vcnRvbiA8YWtwbUBsaW51eC1mb3VuZGF0aW9uLm9yZz4KPiA+IENjOiBKb2huIEh1YmJh cmQgPGpodWJiYXJkQG52aWRpYS5jb20+Cj4gPiBDYzogSsOpcsO0bWUgR2xpc3NlIDxqZ2xpc3Nl QHJlZGhhdC5jb20+Cj4gPiBDYzogSmFuIEthcmEgPGphY2tAc3VzZS5jej4KPiA+IENjOiBEYW4g V2lsbGlhbXMgPGRhbi5qLndpbGxpYW1zQGludGVsLmNvbT4KPiA+IENjOiBsaW51eC1tbUBrdmFj ay5vcmcKPiA+IENjOiBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKPiA+IENj OiBsaW51eC1zYW1zdW5nLXNvY0B2Z2VyLmtlcm5lbC5vcmcKPiA+IENjOiBsaW51eC1tZWRpYUB2 Z2VyLmtlcm5lbC5vcmcKPiA+IENjOiBPZGVkIEdhYmJheSA8b2RlZC5nYWJiYXlAZ21haWwuY29t Pgo+ID4gQ2M6IE9tZXIgU2hwaWdlbG1hbiA8b3NocGlnZWxtYW5AaGFiYW5hLmFpPgo+ID4gQ2M6 IE9maXIgQml0dG9uIDxvYml0dG9uQGhhYmFuYS5haT4KPiA+IENjOiBUb21lciBUYXlhciA8dHRh eWFyQGhhYmFuYS5haT4KPiA+IENjOiBNb3RpIEhhaW1vdnNraSA8bWhhaW1vdnNraUBoYWJhbmEu YWk+Cj4gPiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiA+IENj OiBHcmVnIEtyb2FoLUhhcnRtYW4gPGdyZWdraEBsaW51eGZvdW5kYXRpb24ub3JnPgo+ID4gQ2M6 IFBhd2VsIFBpc2tvcnNraSA8cHBpc2tvcnNraUBoYWJhbmEuYWk+Cj4gPiAtLQo+ID4gdjI6IFVz ZSB1bnBpbl91c2VyX3BhZ2VzX2RpcnR5X2xvY2sgKEpvaG4pCj4gPiAtLS0KPiA+ICBkcml2ZXJz L21pc2MvaGFiYW5hbGFicy9LY29uZmlnICAgICAgICAgICAgIHwgIDEgLQo+ID4gIGRyaXZlcnMv bWlzYy9oYWJhbmFsYWJzL2NvbW1vbi9oYWJhbmFsYWJzLmggfCAgMyArLQo+ID4gIGRyaXZlcnMv bWlzYy9oYWJhbmFsYWJzL2NvbW1vbi9tZW1vcnkuYyAgICAgfCA0OSArKysrKysrKy0tLS0tLS0t LS0tLS0KPiA+ICAzIGZpbGVzIGNoYW5nZWQsIDIwIGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9u cygtKQo+ID4KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21pc2MvaGFiYW5hbGFicy9LY29uZmln IGIvZHJpdmVycy9taXNjL2hhYmFuYWxhYnMvS2NvbmZpZwo+ID4gaW5kZXggOGViNWQzOGM2MThl Li4yZjA0MTg3ZjcxNjcgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL21pc2MvaGFiYW5hbGFicy9L Y29uZmlnCj4gPiArKysgYi9kcml2ZXJzL21pc2MvaGFiYW5hbGFicy9LY29uZmlnCj4gPiBAQCAt Niw3ICs2LDYgQEAKPiA+ICBjb25maWcgSEFCQU5BX0FJCj4gPiAgICAgICAgIHRyaXN0YXRlICJI YWJhbmFBSSBhY2NlbGVyYXRvcnMgKGhhYmFuYWxhYnMpIgo+ID4gICAgICAgICBkZXBlbmRzIG9u IFBDSSAmJiBIQVNfSU9NRU0KPiA+IC0gICAgICAgc2VsZWN0IEZSQU1FX1ZFQ1RPUgo+ID4gICAg ICAgICBzZWxlY3QgRE1BX1NIQVJFRF9CVUZGRVIKPiA+ICAgICAgICAgc2VsZWN0IEdFTkVSSUNf QUxMT0NBVE9SCj4gPiAgICAgICAgIHNlbGVjdCBIV01PTgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvbWlzYy9oYWJhbmFsYWJzL2NvbW1vbi9oYWJhbmFsYWJzLmggYi9kcml2ZXJzL21pc2MvaGFi YW5hbGFicy9jb21tb24vaGFiYW5hbGFicy5oCj4gPiBpbmRleCBlZGJkNjI3YjI5ZDIuLmMxYjNh ZDYxM2IxNSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvbWlzYy9oYWJhbmFsYWJzL2NvbW1vbi9o YWJhbmFsYWJzLmgKPiA+ICsrKyBiL2RyaXZlcnMvbWlzYy9oYWJhbmFsYWJzL2NvbW1vbi9oYWJh bmFsYWJzLmgKPiA+IEBAIC04ODEsNyArODgxLDggQEAgc3RydWN0IGhsX2N0eF9tZ3Igewo+ID4g IHN0cnVjdCBobF91c2VycHRyIHsKPiA+ICAgICAgICAgZW51bSB2bV90eXBlX3QgICAgICAgICAg dm1fdHlwZTsgLyogbXVzdCBiZSBmaXJzdCAqLwo+ID4gICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFk ICAgICAgICBqb2Jfbm9kZTsKPiA+IC0gICAgICAgc3RydWN0IGZyYW1lX3ZlY3RvciAgICAgKnZl YzsKPiA+ICsgICAgICAgc3RydWN0IHBhZ2UgICAgICAgICAgICAgKipwYWdlczsKPiA+ICsgICAg ICAgdW5zaWduZWQgaW50ICAgICAgICAgICAgbnBhZ2VzOwo+IENhbiB5b3UgcGxlYXNlIHVwZGF0 ZSB0aGUga2VybmVsZG9jIGNvbW1lbnQgc2VjdGlvbiBvZiB0aGlzIHN0cnVjdHVyZQo+IGFjY29y ZGluZyB0byB5b3VyIGNoYW5nZXMgPwoKQXBvbG9naWVzIEkgbWlzc2VkIHRoZSBuaWNlIGtlcm5l bGRvYy4gSSdsbCBmaXggdGhhdCBpbiB0aGUgbmV4dCByb3VuZC4KCgo+ID4gICAgICAgICBzdHJ1 Y3Qgc2dfdGFibGUgICAgICAgICAqc2d0Owo+ID4gICAgICAgICBlbnVtIGRtYV9kYXRhX2RpcmVj dGlvbiBkaXI7Cj4gPiAgICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgICAgICAgIGRlYnVnZnNfbGlz dDsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21pc2MvaGFiYW5hbGFicy9jb21tb24vbWVtb3J5 LmMgYi9kcml2ZXJzL21pc2MvaGFiYW5hbGFicy9jb21tb24vbWVtb3J5LmMKPiA+IGluZGV4IDVm ZjQ2ODg2ODNmZC4uMzI3YjY0NDc5Zjk3IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9taXNjL2hh YmFuYWxhYnMvY29tbW9uL21lbW9yeS5jCj4gPiArKysgYi9kcml2ZXJzL21pc2MvaGFiYW5hbGFi cy9jb21tb24vbWVtb3J5LmMKPiA+IEBAIC0xMjgxLDQ1ICsxMjgxLDQxIEBAIHN0YXRpYyBpbnQg Z2V0X3VzZXJfbWVtb3J5KHN0cnVjdCBobF9kZXZpY2UgKmhkZXYsIHU2NCBhZGRyLCB1NjQgc2l6 ZSwKPiA+ICAgICAgICAgICAgICAgICByZXR1cm4gLUVGQVVMVDsKPiA+ICAgICAgICAgfQo+ID4K PiA+IC0gICAgICAgdXNlcnB0ci0+dmVjID0gZnJhbWVfdmVjdG9yX2NyZWF0ZShucGFnZXMpOwo+ ID4gLSAgICAgICBpZiAoIXVzZXJwdHItPnZlYykgewo+ID4gKyAgICAgICB1c2VycHRyLT5wYWdl cyA9IGt2bWFsbG9jX2FycmF5KG5wYWdlcywgc2l6ZW9mKCp1c2VycHRyLT5wYWdlcyksCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0ZQX0tFUk5FTCk7Cj4gPiAr ICAgICAgIGlmICghdXNlcnB0ci0+cGFnZXMpIHsKPiA+ICAgICAgICAgICAgICAgICBkZXZfZXJy KGhkZXYtPmRldiwgIkZhaWxlZCB0byBjcmVhdGUgZnJhbWUgdmVjdG9yXG4iKTsKPiA+ICAgICAg ICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKPiA+ICAgICAgICAgfQo+ID4KPiA+IC0gICAgICAg cmMgPSBnZXRfdmFkZHJfZnJhbWVzKHN0YXJ0LCBucGFnZXMsIEZPTExfRk9SQ0UgfCBGT0xMX1dS SVRFLAo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VycHRyLT52ZWMpOwo+ ID4gKyAgICAgICByYyA9IHBpbl91c2VyX3BhZ2VzX2Zhc3Qoc3RhcnQsIG5wYWdlcywgRk9MTF9G T1JDRSB8IEZPTExfV1JJVEUsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 c2VycHRyLT5wYWdlcyk7Cj4gPgo+ID4gICAgICAgICBpZiAocmMgIT0gbnBhZ2VzKSB7Cj4gPiAg ICAgICAgICAgICAgICAgZGV2X2VycihoZGV2LT5kZXYsCj4gPiAgICAgICAgICAgICAgICAgICAg ICAgICAiRmFpbGVkIHRvIG1hcCBob3N0IG1lbW9yeSwgdXNlciBwdHIgcHJvYmFibHkgd3Jvbmdc biIpOwo+ID4gICAgICAgICAgICAgICAgIGlmIChyYyA8IDApCj4gPiAtICAgICAgICAgICAgICAg ICAgICAgICBnb3RvIGRlc3Ryb3lfZnJhbWV2ZWM7Cj4gPiArICAgICAgICAgICAgICAgICAgICAg ICBnb3RvIGRlc3Ryb3lfcGFnZXM7Cj4gPiArICAgICAgICAgICAgICAgbnBhZ2VzID0gcmM7Cj4g PiAgICAgICAgICAgICAgICAgcmMgPSAtRUZBVUxUOwo+ID4gLSAgICAgICAgICAgICAgIGdvdG8g cHV0X2ZyYW1ldmVjOwo+ID4gLSAgICAgICB9Cj4gPiAtCj4gPiAtICAgICAgIGlmIChmcmFtZV92 ZWN0b3JfdG9fcGFnZXModXNlcnB0ci0+dmVjKSA8IDApIHsKPiA+IC0gICAgICAgICAgICAgICBk ZXZfZXJyKGhkZXYtPmRldiwKPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8g dHJhbnNsYXRlIGZyYW1lIHZlY3RvciB0byBwYWdlc1xuIik7Cj4gPiAtICAgICAgICAgICAgICAg cmMgPSAtRUZBVUxUOwo+ID4gLSAgICAgICAgICAgICAgIGdvdG8gcHV0X2ZyYW1ldmVjOwo+ID4g KyAgICAgICAgICAgICAgIGdvdG8gcHV0X3BhZ2VzOwo+ID4gICAgICAgICB9Cj4gPiArICAgICAg IHVzZXJwdHItPm5wYWdlcyA9IG5wYWdlczsKPiA+Cj4gPiAgICAgICAgIHJjID0gc2dfYWxsb2Nf dGFibGVfZnJvbV9wYWdlcyh1c2VycHRyLT5zZ3QsCj4gPiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZnJhbWVfdmVjdG9yX3BhZ2VzKHVzZXJwdHItPnZlYyksCj4gPiAt ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnBhZ2VzLCBvZmZzZXQsIHNp emUsIEdGUF9BVE9NSUMpOwo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdXNlcnB0ci0+cGFnZXMsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBucGFnZXMsIG9mZnNldCwgc2l6ZSwgR0ZQX0FUT01JQyk7Cj4gSSB0aGluayB0aGF0IGJl Y2F1c2UgdGhlIGNhbGwgdG8ga3ZtYWxsb2NfYXJyYXkoKSBpcyBkb25lIHdpdGgKPiBHRlBfS0VS TkVMLCB0aGVyZSBpcyBubyBwb2ludCBpbiB1c2luZyBHRlBfQVRPTUlDIGhlcmUuCj4gQW5kIGFj dHVhbGx5LCB0aGlzIHBhdGggb25seSBuZWVkcyB0byBhdm9pZCB5aWVsZGluZyB3aGVuIHVzaW5n IGEKPiBzcGVjaWFsIGRlYnVnIG1vZGUuCj4gU28gSSBzdWdnZXN0IHB1dHRpbmcgaGVyZSBHRlBf S0VSTkVMLgoKSHVoLCBJIGRpZG4ndCBldmVuIG5vdGljZSB0aGUgR0ZQX0FUT01JQyBoZXJlLiBU aGlzIGxvb2tzIGluZGVlZApzdHJhbmdlIGFuZCBHRlBfS0VSTkVMIHNob3VsZCBiZSBwZXJmZWN0 bHkgZmluZSBpbiBhIGZ1bmN0aW9uIHRoYXQKYWxzbyBjYWxscyBwaW5fdXNlcl9wYWdlcyAoc2lu Y2UgdGhhdCBvbmUgY2FuIGFsbG9jYXRlIGFuZCBkbyB3b3JzZQpzdHVmZiBsaWtlIHVzZXJzcGFj ZSBwYWdlZmF1bHRzKS4KCkJ1dCBzaW5jZSB0aGF0IEdGUF9BVE9NSUMgaXMgdGhlcmUgYWxyZWFk eSBJJ2xsIGRvIHRoYXQgaW4gYSBzZXBhcmF0ZSBwYXRjaC4KCj4gSW4gdGhlIG1lYW53aGlsZSwg SSdsbCBydW4gdGhpcyBwYXRjaCAoY291cGxlZCB3aXRoIHRoZSBuZXh0IHBhdGNoKSBpbgo+IG91 ciBDL0kgdG8gbWFrZSBzdXJlIHRoZXJlIGFyZSBubyByZWdyZXNzaW9ucy4KCkV4Y2VsbGVudC4g SSdsbCB3YWl0IHdpdGggdjMgdW50aWwgdGhhdCdzIGRvbmUsIGp1c3QgaW4gY2FzZSB5b3UgaGl0 IGEKc25hZyBJIG5lZWQgdG8gZml4LgoKQ2hlZXJzLCBEYW5pZWwKCj4gVGhhbmtzLAo+IE9kZWQK Pgo+ID4gICAgICAgICBpZiAocmMgPCAwKSB7Cj4gPiAgICAgICAgICAgICAgICAgZGV2X2Vyciho ZGV2LT5kZXYsICJmYWlsZWQgdG8gY3JlYXRlIFNHIHRhYmxlIGZyb20gcGFnZXNcbiIpOwo+ID4g LSAgICAgICAgICAgICAgIGdvdG8gcHV0X2ZyYW1ldmVjOwo+ID4gKyAgICAgICAgICAgICAgIGdv dG8gcHV0X3BhZ2VzOwo+ID4gICAgICAgICB9Cj4gPgo+ID4gICAgICAgICByZXR1cm4gMDsKPiA+ Cj4gPiAtcHV0X2ZyYW1ldmVjOgo+ID4gLSAgICAgICBwdXRfdmFkZHJfZnJhbWVzKHVzZXJwdHIt PnZlYyk7Cj4gPiAtZGVzdHJveV9mcmFtZXZlYzoKPiA+IC0gICAgICAgZnJhbWVfdmVjdG9yX2Rl c3Ryb3kodXNlcnB0ci0+dmVjKTsKPiA+ICtwdXRfcGFnZXM6Cj4gPiArICAgICAgIHVucGluX3Vz ZXJfcGFnZXModXNlcnB0ci0+cGFnZXMsIG5wYWdlcyk7Cj4gPiArZGVzdHJveV9wYWdlczoKPiA+ ICsgICAgICAga3ZmcmVlKHVzZXJwdHItPnBhZ2VzKTsKPiA+ICAgICAgICAgcmV0dXJuIHJjOwo+ ID4gIH0KPiA+Cj4gPiBAQCAtMTQwNSw4ICsxNDAxLDYgQEAgaW50IGhsX3Bpbl9ob3N0X21lbW9y eShzdHJ1Y3QgaGxfZGV2aWNlICpoZGV2LCB1NjQgYWRkciwgdTY0IHNpemUsCj4gPiAgICovCj4g PiAgdm9pZCBobF91bnBpbl9ob3N0X21lbW9yeShzdHJ1Y3QgaGxfZGV2aWNlICpoZGV2LCBzdHJ1 Y3QgaGxfdXNlcnB0ciAqdXNlcnB0cikKPiA+ICB7Cj4gPiAtICAgICAgIHN0cnVjdCBwYWdlICoq cGFnZXM7Cj4gPiAtCj4gPiAgICAgICAgIGhsX2RlYnVnZnNfcmVtb3ZlX3VzZXJwdHIoaGRldiwg dXNlcnB0cik7Cj4gPgo+ID4gICAgICAgICBpZiAodXNlcnB0ci0+ZG1hX21hcHBlZCkKPiA+IEBA IC0xNDE0LDE1ICsxNDA4LDggQEAgdm9pZCBobF91bnBpbl9ob3N0X21lbW9yeShzdHJ1Y3QgaGxf ZGV2aWNlICpoZGV2LCBzdHJ1Y3QgaGxfdXNlcnB0ciAqdXNlcnB0cikKPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcnB0ci0+c2d0 LT5uZW50cywKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdXNlcnB0ci0+ZGlyKTsKPiA+Cj4gPiAtICAgICAgIHBhZ2VzID0gZnJhbWVf dmVjdG9yX3BhZ2VzKHVzZXJwdHItPnZlYyk7Cj4gPiAtICAgICAgIGlmICghSVNfRVJSKHBhZ2Vz KSkgewo+ID4gLSAgICAgICAgICAgICAgIGludCBpOwo+ID4gLQo+ID4gLSAgICAgICAgICAgICAg IGZvciAoaSA9IDA7IGkgPCBmcmFtZV92ZWN0b3JfY291bnQodXNlcnB0ci0+dmVjKTsgaSsrKQo+ ID4gLSAgICAgICAgICAgICAgICAgICAgICAgc2V0X3BhZ2VfZGlydHlfbG9jayhwYWdlc1tpXSk7 Cj4gPiAtICAgICAgIH0KPiA+IC0gICAgICAgcHV0X3ZhZGRyX2ZyYW1lcyh1c2VycHRyLT52ZWMp Owo+ID4gLSAgICAgICBmcmFtZV92ZWN0b3JfZGVzdHJveSh1c2VycHRyLT52ZWMpOwo+ID4gKyAg ICAgICB1bnBpbl91c2VyX3BhZ2VzX2RpcnR5X2xvY2sodXNlcnB0ci0+cGFnZXMsIHVzZXJwdHIt Pm5wYWdlcywgdHJ1ZSk7Cj4gPiArICAgICAgIGt2ZnJlZSh1c2VycHRyLT5wYWdlcyk7Cj4gPgo+ ID4gICAgICAgICBsaXN0X2RlbCgmdXNlcnB0ci0+am9iX25vZGUpOwo+ID4KPiA+IC0tCj4gPiAy LjI4LjAKPiA+CgoKCi0tCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENv cnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2RyaS1kZXZlbAo=