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,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, 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 8A3CBC433DF for ; Sat, 10 Oct 2020 23:01:17 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3AAF42067C for ; Sat, 10 Oct 2020 23:01:17 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="iQ1ZNhOk" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732695AbgJJW7l (ORCPT ); Sat, 10 Oct 2020 18:59:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33172 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730584AbgJJV7Z (ORCPT ); Sat, 10 Oct 2020 17:59:25 -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 AB86AC0613D0; Sat, 10 Oct 2020 14:48:06 -0700 (PDT) Received: by mail-oi1-x244.google.com with SMTP id x62so14280177oix.11; Sat, 10 Oct 2020 14:48:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=TcUpz461OVaqzlBeUFIMXlvPExV4UXfJ2XMipbjkTIo=; b=iQ1ZNhOk7qeRWES3fueyt86xPb/cmebxQQuRHkMBy0nlluZwYRU3feNsXuLg5b0jOf 7P8HlPemHyuvBM2DboRpCK45fJ8F+rvcFr43a/cqycQ3xqqUG9ajofFm1WMPliomxe1C WTyCXTZGBcrlxA1mq1OLXpYgKYOVnNwRebFaEP1XpwfOvnwJ2lEErb2sYA/I2Yby+7bx /6K+qzCVlAx5ZBHufhGlQ9VZ52h8UIh1a4k6EnjwrHmqr7tBtr6tMyrVp4AIQip0MNXs L8HpCjCucZtMtMmtIzC8p0QFx+9OxymkGafjv73Dbdc6oHDmGdT14NGdVImp/klJm8yA Ttig== 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=TcUpz461OVaqzlBeUFIMXlvPExV4UXfJ2XMipbjkTIo=; b=ILTSSu5q+R4qiuRurRBucSs3sY4Jadq1/euMcxjGmmUuiAcDo6GFWYIPyq0v1R2c1v cSq8wdK9Ph98F+f8oQLkdCMCcNeYJO74Lv/uwTynAOPZhJU4FRLI3b6NQJjiIQzfSXNp n+OBYDroyikIWhZ3/zhz0q1ZyABJt8UyokRNM5XE5tdaXlmHf65h+Jz4fQP3SposMdte KrZw2NqNa/ijvNEL9HudocfxOLaaIvSBAPNMovdfVHyoLI35rMhRM/FlDYXKXrpkvBc5 3bco9kp2jp5zRaNewTvnMRNhzuxVv2qikMvjmXFMgY3vloNCDfLv02SyQIoiVeyMn04k s1bg== X-Gm-Message-State: AOAM533zIdTU/mqi4UKqPn2V0ZeS22rgxURnujNJwEK6aVpAVfIlNDas nvWSVInbWy9ZZ2vnZJvnhUAGS1dODQND9RT3LT4= X-Google-Smtp-Source: ABdhPJw6azhCa1CtVIoU0/HjpPxr0pBaYe5iIN/WY3VaKZgAPU2JLYzasaY+kJofWl4CnyzXINNmGNNxNAlv10f/ODw= X-Received: by 2002:aca:750c:: with SMTP id q12mr6703039oic.154.1602366485786; Sat, 10 Oct 2020 14:48:05 -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: Oded Gabbay Date: Sun, 11 Oct 2020 00:47:39 +0300 Message-ID: Subject: Re: [PATCH v2 03/17] misc/habana: Stop using frame_vector helpers To: Daniel Vetter 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 Sun, Oct 11, 2020 at 12:41 AM Daniel Vetter wro= te: > > On Sat, Oct 10, 2020 at 11:32 PM Daniel Vetter w= rote: > > > > On Sat, Oct 10, 2020 at 10:27 PM Oded Gabbay wr= ote: > > > > > > On Fri, Oct 9, 2020 at 10:59 AM Daniel Vetter wrote: > > > > > > > > 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_fra= mes. > > > > > > > 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/habanal= abs/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= /habanalabs/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= *hdev, u64 addr, u64 size, > > > > return -EFAULT; > > > > } > > > > > > > > - userptr->vec =3D frame_vector_create(npages); > > > > - if (!userptr->vec) { > > > > + userptr->pages =3D kvmalloc_array(npages, sizeof(*userptr->= pages), > > > > + 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_WR= ITE, > > > > - userptr->vec); > > > > + rc =3D pin_user_pages_fast(start, npages, FOLL_FORCE | FOLL= _WRITE, > > > > + userptr->pages); > > > > > > > > if (rc !=3D npages) { > > > > dev_err(hdev->dev, > > > > "Failed to map host memory, user ptr probab= ly wrong\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_A= TOMIC); > > > > + userptr->pages, > > > > + npages, offset, size, GFP_AT= OMIC); > > > 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 p= atch. > > Ok I read up on your usage of GFP_ATOMIC in habanalabs, and I'm not > going to touch this. But I'm pretty sure it's broken. > > You seem to have some requirement of not allocating memory with > blocking (see hl_cb_alloc()), and that seems to be way you allocate > tons of structures with GFP_ATOMIC. There's 2 pretty tough problems > with that: > - GFP_ATOMIC can fail, even when the system hasn't run out of memory > yet. You _must_ have a fallback back to handle allocation failures for > these. Quick survey shows you a ton of GFP_ATOMIC callsites, and very > little fallback code - I've found none, but I didn't check the failure > handlers all going up the possible callchains. > - pin_user_pages can allocate memory, so you're breaking your own "no > sleeping in these paths" rules. > > This isn't going to get fixed with a quick oneliner patch, depending > what's needed you're looking at a driver rearchitecture here :-/ Hence > I'm not going to touch this in the next patch, but leave it all as-is. > Most of those requirements come from code that is only relevant in initial bringup and in our first ASIC (GOYA) for the first few months we had it. I'm going to remove all that code from the upstream driver as it's not needed there. Then, I'll go and look at all other uses of GFP_ATOMIC to see how they can be improved/removed, maybe with pre-allocated stuff. Thanks for pointing this out. Oded > Cheers, Daniel > > > > > > In the meanwhile, I'll run this patch (coupled with the next patch) i= n > > > 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 = pages\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= , u64 addr, u64 size, > > > > */ > > > > void hl_unpin_host_memory(struct hl_device *hdev, struct hl_userpt= r *userptr) > > > > { > > > > - 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->sg= t->nents, > > > > userptr->di= r); > > > > > > > > - 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= , true); > > > > + kvfree(userptr->pages); > > > > > > > > list_del(&userptr->job_node); > > > > > > > > -- > > > > 2.28.0 > > > > > > > > > > > > -- > > Daniel Vetter > > Software Engineer, Intel Corporation > > http://blog.ffwll.ch > > > > -- > 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.7 required=3.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, 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 CB2BEC43457 for ; Sat, 10 Oct 2020 21:49:59 +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 6DED32078A for ; Sat, 10 Oct 2020 21:49:59 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="R1IlL1B8"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="iQ1ZNhOk" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6DED32078A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com 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=9ocaNonovXd2hD7b578Mc4NySFNGU2wEI42TnImGvzk=; b=R1IlL1B8Oa+9a//IT4UvIg9TX XaslgZRVdMeVU9Ln/KTwyonWZhCDXxn9vbiutqx3/acbnGYmFJXrt3WkEGm7apfEtJO9NvZVKe/I8 DCeLr7xU9Van2rpTGnWJ8NdIO/OCFiNmtG7xYsjY7PDCYfThdX2s130zbf4uOJI2sWj/U3XHzcCU4 NU382rkYOTKM82vk8SpGdaFpMBrCDtA8fY9bYMYYmTWKOf43kIoPUu8UwOqhbxDaDCVF8h3qJfgKJ IrAXidGYr3slWZp0tqWcqinkiTFIIykJKdUGeTdHM3HoryvrPmrdlhpQMnOm4PhfJB+b+EBoZqRrR mroDql8xw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kRMis-00050d-K1; Sat, 10 Oct 2020 21:48:14 +0000 Received: from mail-oi1-x242.google.com ([2607:f8b0:4864:20::242]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kRMil-0004zI-UP for linux-arm-kernel@lists.infradead.org; Sat, 10 Oct 2020 21:48:11 +0000 Received: by mail-oi1-x242.google.com with SMTP id 16so14281282oix.9 for ; Sat, 10 Oct 2020 14:48:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=TcUpz461OVaqzlBeUFIMXlvPExV4UXfJ2XMipbjkTIo=; b=iQ1ZNhOk7qeRWES3fueyt86xPb/cmebxQQuRHkMBy0nlluZwYRU3feNsXuLg5b0jOf 7P8HlPemHyuvBM2DboRpCK45fJ8F+rvcFr43a/cqycQ3xqqUG9ajofFm1WMPliomxe1C WTyCXTZGBcrlxA1mq1OLXpYgKYOVnNwRebFaEP1XpwfOvnwJ2lEErb2sYA/I2Yby+7bx /6K+qzCVlAx5ZBHufhGlQ9VZ52h8UIh1a4k6EnjwrHmqr7tBtr6tMyrVp4AIQip0MNXs L8HpCjCucZtMtMmtIzC8p0QFx+9OxymkGafjv73Dbdc6oHDmGdT14NGdVImp/klJm8yA Ttig== 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=TcUpz461OVaqzlBeUFIMXlvPExV4UXfJ2XMipbjkTIo=; b=Dfhg3Lg5T2ori8zJJMN97kgIMocs/tkDCad8Gz9zh76JDMT7nSio42kUDwYMw0/c2J PDyjFZqrUHmjrIEg5qh3+ZDBtniCSnfEWwJL83Nzk/b9OtKUqOfn+Zvaw4iPX3uZ8K1Y OC7mN2FnVvfwkdaglvRXSeUgLI72l0NYOlaJnXjUK/YsdeWNp4/7deCaGeCJLxWkiDz8 Y5UCDMUBtvIv+XmPVfJZAoltDA6ek50S2jYHa2CFewOKpZU/kudVKmeQjdLuGZkpR7AK oJqWt0DP29v4CpPKiYQaO7KZwb0dpRie3zTa8ehnTpZOaarHb/bqF6swfGaNJq5ctk0U eAIQ== X-Gm-Message-State: AOAM5326FTX7AY4c7O7zcA9IxrmISZQzfftyHBLbNHS9Sy9RAAgrMohX KAmS7OT59pkP1LEWnLpN+w8VlZTeZ7s9xJYilp7AIAnKXyG1xg== X-Google-Smtp-Source: ABdhPJw6azhCa1CtVIoU0/HjpPxr0pBaYe5iIN/WY3VaKZgAPU2JLYzasaY+kJofWl4CnyzXINNmGNNxNAlv10f/ODw= X-Received: by 2002:aca:750c:: with SMTP id q12mr6703039oic.154.1602366485786; Sat, 10 Oct 2020 14:48:05 -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: Oded Gabbay Date: Sun, 11 Oct 2020 00:47:39 +0300 Message-ID: Subject: Re: [PATCH v2 03/17] misc/habana: Stop using frame_vector helpers To: Daniel Vetter X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201010_174809_817507_D65D3839 X-CRM114-Status: GOOD ( 46.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-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 T24gU3VuLCBPY3QgMTEsIDIwMjAgYXQgMTI6NDEgQU0gRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZl dHRlckBmZndsbC5jaD4gd3JvdGU6Cj4KPiBPbiBTYXQsIE9jdCAxMCwgMjAyMCBhdCAxMTozMiBQ TSBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPiB3cm90ZToKPiA+Cj4gPiBP biBTYXQsIE9jdCAxMCwgMjAyMCBhdCAxMDoyNyBQTSBPZGVkIEdhYmJheSA8b2RlZC5nYWJiYXlA Z21haWwuY29tPiB3cm90ZToKPiA+ID4KPiA+ID4gT24gRnJpLCBPY3QgOSwgMjAyMCBhdCAxMDo1 OSBBTSBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPiB3cm90ZToKPiA+ID4g Pgo+ID4gPiA+IEFsbCB3ZSBuZWVkIGFyZSBhIHBhZ2VzIGFycmF5LCBwaW5fdXNlcl9wYWdlc19m YXN0IGNhbiBnaXZlIHVzIHRoYXQKPiA+ID4gPiBkaXJlY3RseS4gUGx1cyB0aGlzIGF2b2lkcyB0 aGUgZW50aXJlIHJhdyBwZm4gc2lkZSBvZiBnZXRfdmFkZHJfZnJhbWVzLgo+ID4gPiA+Cj4gPiA+ IFRoYW5rcyBmb3IgdGhlIHBhdGNoIERhbmllbC4KPiA+ID4KPiA+ID4gPiBTaWduZWQtb2ZmLWJ5 OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4KPiA+ID4gPiBDYzogSmFz b24gR3VudGhvcnBlIDxqZ2dAemllcGUuY2E+Cj4gPiA+ID4gQ2M6IEFuZHJldyBNb3J0b24gPGFr cG1AbGludXgtZm91bmRhdGlvbi5vcmc+Cj4gPiA+ID4gQ2M6IEpvaG4gSHViYmFyZCA8amh1YmJh cmRAbnZpZGlhLmNvbT4KPiA+ID4gPiBDYzogSsOpcsO0bWUgR2xpc3NlIDxqZ2xpc3NlQHJlZGhh dC5jb20+Cj4gPiA+ID4gQ2M6IEphbiBLYXJhIDxqYWNrQHN1c2UuY3o+Cj4gPiA+ID4gQ2M6IERh biBXaWxsaWFtcyA8ZGFuLmoud2lsbGlhbXNAaW50ZWwuY29tPgo+ID4gPiA+IENjOiBsaW51eC1t bUBrdmFjay5vcmcKPiA+ID4gPiBDYzogbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQu b3JnCj4gPiA+ID4gQ2M6IGxpbnV4LXNhbXN1bmctc29jQHZnZXIua2VybmVsLm9yZwo+ID4gPiA+ IENjOiBsaW51eC1tZWRpYUB2Z2VyLmtlcm5lbC5vcmcKPiA+ID4gPiBDYzogT2RlZCBHYWJiYXkg PG9kZWQuZ2FiYmF5QGdtYWlsLmNvbT4KPiA+ID4gPiBDYzogT21lciBTaHBpZ2VsbWFuIDxvc2hw aWdlbG1hbkBoYWJhbmEuYWk+Cj4gPiA+ID4gQ2M6IE9maXIgQml0dG9uIDxvYml0dG9uQGhhYmFu YS5haT4KPiA+ID4gPiBDYzogVG9tZXIgVGF5YXIgPHR0YXlhckBoYWJhbmEuYWk+Cj4gPiA+ID4g Q2M6IE1vdGkgSGFpbW92c2tpIDxtaGFpbW92c2tpQGhhYmFuYS5haT4KPiA+ID4gPiBDYzogRGFu aWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiA+ID4gPiBDYzogR3JlZyBLcm9h aC1IYXJ0bWFuIDxncmVna2hAbGludXhmb3VuZGF0aW9uLm9yZz4KPiA+ID4gPiBDYzogUGF3ZWwg UGlza29yc2tpIDxwcGlza29yc2tpQGhhYmFuYS5haT4KPiA+ID4gPiAtLQo+ID4gPiA+IHYyOiBV c2UgdW5waW5fdXNlcl9wYWdlc19kaXJ0eV9sb2NrIChKb2huKQo+ID4gPiA+IC0tLQo+ID4gPiA+ ICBkcml2ZXJzL21pc2MvaGFiYW5hbGFicy9LY29uZmlnICAgICAgICAgICAgIHwgIDEgLQo+ID4g PiA+ICBkcml2ZXJzL21pc2MvaGFiYW5hbGFicy9jb21tb24vaGFiYW5hbGFicy5oIHwgIDMgKy0K PiA+ID4gPiAgZHJpdmVycy9taXNjL2hhYmFuYWxhYnMvY29tbW9uL21lbW9yeS5jICAgICB8IDQ5 ICsrKysrKysrLS0tLS0tLS0tLS0tLQo+ID4gPiA+ICAzIGZpbGVzIGNoYW5nZWQsIDIwIGluc2Vy dGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQo+ID4gPiA+Cj4gPiA+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbWlzYy9oYWJhbmFsYWJzL0tjb25maWcgYi9kcml2ZXJzL21pc2MvaGFiYW5hbGFicy9L Y29uZmlnCj4gPiA+ID4gaW5kZXggOGViNWQzOGM2MThlLi4yZjA0MTg3ZjcxNjcgMTAwNjQ0Cj4g PiA+ID4gLS0tIGEvZHJpdmVycy9taXNjL2hhYmFuYWxhYnMvS2NvbmZpZwo+ID4gPiA+ICsrKyBi L2RyaXZlcnMvbWlzYy9oYWJhbmFsYWJzL0tjb25maWcKPiA+ID4gPiBAQCAtNiw3ICs2LDYgQEAK PiA+ID4gPiAgY29uZmlnIEhBQkFOQV9BSQo+ID4gPiA+ICAgICAgICAgdHJpc3RhdGUgIkhhYmFu YUFJIGFjY2VsZXJhdG9ycyAoaGFiYW5hbGFicykiCj4gPiA+ID4gICAgICAgICBkZXBlbmRzIG9u IFBDSSAmJiBIQVNfSU9NRU0KPiA+ID4gPiAtICAgICAgIHNlbGVjdCBGUkFNRV9WRUNUT1IKPiA+ ID4gPiAgICAgICAgIHNlbGVjdCBETUFfU0hBUkVEX0JVRkZFUgo+ID4gPiA+ICAgICAgICAgc2Vs ZWN0IEdFTkVSSUNfQUxMT0NBVE9SCj4gPiA+ID4gICAgICAgICBzZWxlY3QgSFdNT04KPiA+ID4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9taXNjL2hhYmFuYWxhYnMvY29tbW9uL2hhYmFuYWxhYnMu aCBiL2RyaXZlcnMvbWlzYy9oYWJhbmFsYWJzL2NvbW1vbi9oYWJhbmFsYWJzLmgKPiA+ID4gPiBp bmRleCBlZGJkNjI3YjI5ZDIuLmMxYjNhZDYxM2IxNSAxMDA2NDQKPiA+ID4gPiAtLS0gYS9kcml2 ZXJzL21pc2MvaGFiYW5hbGFicy9jb21tb24vaGFiYW5hbGFicy5oCj4gPiA+ID4gKysrIGIvZHJp dmVycy9taXNjL2hhYmFuYWxhYnMvY29tbW9uL2hhYmFuYWxhYnMuaAo+ID4gPiA+IEBAIC04ODEs NyArODgxLDggQEAgc3RydWN0IGhsX2N0eF9tZ3Igewo+ID4gPiA+ICBzdHJ1Y3QgaGxfdXNlcnB0 ciB7Cj4gPiA+ID4gICAgICAgICBlbnVtIHZtX3R5cGVfdCAgICAgICAgICB2bV90eXBlOyAvKiBt dXN0IGJlIGZpcnN0ICovCj4gPiA+ID4gICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkICAgICAgICBq b2Jfbm9kZTsKPiA+ID4gPiAtICAgICAgIHN0cnVjdCBmcmFtZV92ZWN0b3IgICAgICp2ZWM7Cj4g PiA+ID4gKyAgICAgICBzdHJ1Y3QgcGFnZSAgICAgICAgICAgICAqKnBhZ2VzOwo+ID4gPiA+ICsg ICAgICAgdW5zaWduZWQgaW50ICAgICAgICAgICAgbnBhZ2VzOwo+ID4gPiBDYW4geW91IHBsZWFz ZSB1cGRhdGUgdGhlIGtlcm5lbGRvYyBjb21tZW50IHNlY3Rpb24gb2YgdGhpcyBzdHJ1Y3R1cmUK PiA+ID4gYWNjb3JkaW5nIHRvIHlvdXIgY2hhbmdlcyA/Cj4gPgo+ID4gQXBvbG9naWVzIEkgbWlz c2VkIHRoZSBuaWNlIGtlcm5lbGRvYy4gSSdsbCBmaXggdGhhdCBpbiB0aGUgbmV4dCByb3VuZC4K PiA+Cj4gPgo+ID4gPiA+ICAgICAgICAgc3RydWN0IHNnX3RhYmxlICAgICAgICAgKnNndDsKPiA+ ID4gPiAgICAgICAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcjsKPiA+ID4gPiAgICAgICAg IHN0cnVjdCBsaXN0X2hlYWQgICAgICAgIGRlYnVnZnNfbGlzdDsKPiA+ID4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9taXNjL2hhYmFuYWxhYnMvY29tbW9uL21lbW9yeS5jIGIvZHJpdmVycy9taXNj L2hhYmFuYWxhYnMvY29tbW9uL21lbW9yeS5jCj4gPiA+ID4gaW5kZXggNWZmNDY4ODY4M2ZkLi4z MjdiNjQ0NzlmOTcgMTAwNjQ0Cj4gPiA+ID4gLS0tIGEvZHJpdmVycy9taXNjL2hhYmFuYWxhYnMv Y29tbW9uL21lbW9yeS5jCj4gPiA+ID4gKysrIGIvZHJpdmVycy9taXNjL2hhYmFuYWxhYnMvY29t bW9uL21lbW9yeS5jCj4gPiA+ID4gQEAgLTEyODEsNDUgKzEyODEsNDEgQEAgc3RhdGljIGludCBn ZXRfdXNlcl9tZW1vcnkoc3RydWN0IGhsX2RldmljZSAqaGRldiwgdTY0IGFkZHIsIHU2NCBzaXpl LAo+ID4gPiA+ICAgICAgICAgICAgICAgICByZXR1cm4gLUVGQVVMVDsKPiA+ID4gPiAgICAgICAg IH0KPiA+ID4gPgo+ID4gPiA+IC0gICAgICAgdXNlcnB0ci0+dmVjID0gZnJhbWVfdmVjdG9yX2Ny ZWF0ZShucGFnZXMpOwo+ID4gPiA+IC0gICAgICAgaWYgKCF1c2VycHRyLT52ZWMpIHsKPiA+ID4g PiArICAgICAgIHVzZXJwdHItPnBhZ2VzID0ga3ZtYWxsb2NfYXJyYXkobnBhZ2VzLCBzaXplb2Yo KnVzZXJwdHItPnBhZ2VzKSwKPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgR0ZQX0tFUk5FTCk7Cj4gPiA+ID4gKyAgICAgICBpZiAoIXVzZXJwdHItPnBhZ2Vz KSB7Cj4gPiA+ID4gICAgICAgICAgICAgICAgIGRldl9lcnIoaGRldi0+ZGV2LCAiRmFpbGVkIHRv IGNyZWF0ZSBmcmFtZSB2ZWN0b3JcbiIpOwo+ID4gPiA+ICAgICAgICAgICAgICAgICByZXR1cm4g LUVOT01FTTsKPiA+ID4gPiAgICAgICAgIH0KPiA+ID4gPgo+ID4gPiA+IC0gICAgICAgcmMgPSBn ZXRfdmFkZHJfZnJhbWVzKHN0YXJ0LCBucGFnZXMsIEZPTExfRk9SQ0UgfCBGT0xMX1dSSVRFLAo+ ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcnB0ci0+dmVjKTsKPiA+ ID4gPiArICAgICAgIHJjID0gcGluX3VzZXJfcGFnZXNfZmFzdChzdGFydCwgbnBhZ2VzLCBGT0xM X0ZPUkNFIHwgRk9MTF9XUklURSwKPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1c2VycHRyLT5wYWdlcyk7Cj4gPiA+ID4KPiA+ID4gPiAgICAgICAgIGlmIChyYyAhPSBu cGFnZXMpIHsKPiA+ID4gPiAgICAgICAgICAgICAgICAgZGV2X2VycihoZGV2LT5kZXYsCj4gPiA+ ID4gICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBtYXAgaG9zdCBtZW1vcnksIHVz ZXIgcHRyIHByb2JhYmx5IHdyb25nXG4iKTsKPiA+ID4gPiAgICAgICAgICAgICAgICAgaWYgKHJj IDwgMCkKPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGRlc3Ryb3lfZnJhbWV2 ZWM7Cj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgZ290byBkZXN0cm95X3BhZ2VzOwo+ ID4gPiA+ICsgICAgICAgICAgICAgICBucGFnZXMgPSByYzsKPiA+ID4gPiAgICAgICAgICAgICAg ICAgcmMgPSAtRUZBVUxUOwo+ID4gPiA+IC0gICAgICAgICAgICAgICBnb3RvIHB1dF9mcmFtZXZl YzsKPiA+ID4gPiAtICAgICAgIH0KPiA+ID4gPiAtCj4gPiA+ID4gLSAgICAgICBpZiAoZnJhbWVf dmVjdG9yX3RvX3BhZ2VzKHVzZXJwdHItPnZlYykgPCAwKSB7Cj4gPiA+ID4gLSAgICAgICAgICAg ICAgIGRldl9lcnIoaGRldi0+ZGV2LAo+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICJG YWlsZWQgdG8gdHJhbnNsYXRlIGZyYW1lIHZlY3RvciB0byBwYWdlc1xuIik7Cj4gPiA+ID4gLSAg ICAgICAgICAgICAgIHJjID0gLUVGQVVMVDsKPiA+ID4gPiAtICAgICAgICAgICAgICAgZ290byBw dXRfZnJhbWV2ZWM7Cj4gPiA+ID4gKyAgICAgICAgICAgICAgIGdvdG8gcHV0X3BhZ2VzOwo+ID4g PiA+ICAgICAgICAgfQo+ID4gPiA+ICsgICAgICAgdXNlcnB0ci0+bnBhZ2VzID0gbnBhZ2VzOwo+ ID4gPiA+Cj4gPiA+ID4gICAgICAgICByYyA9IHNnX2FsbG9jX3RhYmxlX2Zyb21fcGFnZXModXNl cnB0ci0+c2d0LAo+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmcmFtZV92ZWN0b3JfcGFnZXModXNlcnB0ci0+dmVjKSwKPiA+ID4gPiAtICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbnBhZ2VzLCBvZmZzZXQsIHNpemUsIEdGUF9BVE9N SUMpOwo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJw dHItPnBhZ2VzLAo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG5wYWdlcywgb2Zmc2V0LCBzaXplLCBHRlBfQVRPTUlDKTsKPiA+ID4gSSB0aGluayB0aGF0IGJl Y2F1c2UgdGhlIGNhbGwgdG8ga3ZtYWxsb2NfYXJyYXkoKSBpcyBkb25lIHdpdGgKPiA+ID4gR0ZQ X0tFUk5FTCwgdGhlcmUgaXMgbm8gcG9pbnQgaW4gdXNpbmcgR0ZQX0FUT01JQyBoZXJlLgo+ID4g PiBBbmQgYWN0dWFsbHksIHRoaXMgcGF0aCBvbmx5IG5lZWRzIHRvIGF2b2lkIHlpZWxkaW5nIHdo ZW4gdXNpbmcgYQo+ID4gPiBzcGVjaWFsIGRlYnVnIG1vZGUuCj4gPiA+IFNvIEkgc3VnZ2VzdCBw dXR0aW5nIGhlcmUgR0ZQX0tFUk5FTC4KPiA+Cj4gPiBIdWgsIEkgZGlkbid0IGV2ZW4gbm90aWNl IHRoZSBHRlBfQVRPTUlDIGhlcmUuIFRoaXMgbG9va3MgaW5kZWVkCj4gPiBzdHJhbmdlIGFuZCBH RlBfS0VSTkVMIHNob3VsZCBiZSBwZXJmZWN0bHkgZmluZSBpbiBhIGZ1bmN0aW9uIHRoYXQKPiA+ IGFsc28gY2FsbHMgcGluX3VzZXJfcGFnZXMgKHNpbmNlIHRoYXQgb25lIGNhbiBhbGxvY2F0ZSBh bmQgZG8gd29yc2UKPiA+IHN0dWZmIGxpa2UgdXNlcnNwYWNlIHBhZ2VmYXVsdHMpLgo+ID4KPiA+ IEJ1dCBzaW5jZSB0aGF0IEdGUF9BVE9NSUMgaXMgdGhlcmUgYWxyZWFkeSBJJ2xsIGRvIHRoYXQg aW4gYSBzZXBhcmF0ZSBwYXRjaC4KPgo+IE9rIEkgcmVhZCB1cCBvbiB5b3VyIHVzYWdlIG9mIEdG UF9BVE9NSUMgaW4gaGFiYW5hbGFicywgYW5kIEknbSBub3QKPiBnb2luZyB0byB0b3VjaCB0aGlz LiBCdXQgSSdtIHByZXR0eSBzdXJlIGl0J3MgYnJva2VuLgo+Cj4gWW91IHNlZW0gdG8gaGF2ZSBz b21lIHJlcXVpcmVtZW50IG9mIG5vdCBhbGxvY2F0aW5nIG1lbW9yeSB3aXRoCj4gYmxvY2tpbmcg KHNlZSBobF9jYl9hbGxvYygpKSwgYW5kIHRoYXQgc2VlbXMgdG8gYmUgd2F5IHlvdSBhbGxvY2F0 ZQo+IHRvbnMgb2Ygc3RydWN0dXJlcyB3aXRoIEdGUF9BVE9NSUMuIFRoZXJlJ3MgMiBwcmV0dHkg dG91Z2ggcHJvYmxlbXMKPiB3aXRoIHRoYXQ6Cj4gLSBHRlBfQVRPTUlDIGNhbiBmYWlsLCBldmVu IHdoZW4gdGhlIHN5c3RlbSBoYXNuJ3QgcnVuIG91dCBvZiBtZW1vcnkKPiB5ZXQuIFlvdSBfbXVz dF8gaGF2ZSBhIGZhbGxiYWNrIGJhY2sgdG8gaGFuZGxlIGFsbG9jYXRpb24gZmFpbHVyZXMgZm9y Cj4gdGhlc2UuIFF1aWNrIHN1cnZleSBzaG93cyB5b3UgYSB0b24gb2YgR0ZQX0FUT01JQyBjYWxs c2l0ZXMsIGFuZCB2ZXJ5Cj4gbGl0dGxlIGZhbGxiYWNrIGNvZGUgLSBJJ3ZlIGZvdW5kIG5vbmUs IGJ1dCBJIGRpZG4ndCBjaGVjayB0aGUgZmFpbHVyZQo+IGhhbmRsZXJzIGFsbCBnb2luZyB1cCB0 aGUgcG9zc2libGUgY2FsbGNoYWlucy4KPiAtIHBpbl91c2VyX3BhZ2VzIGNhbiBhbGxvY2F0ZSBt ZW1vcnksIHNvIHlvdSdyZSBicmVha2luZyB5b3VyIG93biAibm8KPiBzbGVlcGluZyBpbiB0aGVz ZSBwYXRocyIgcnVsZXMuCj4KPiBUaGlzIGlzbid0IGdvaW5nIHRvIGdldCBmaXhlZCB3aXRoIGEg cXVpY2sgb25lbGluZXIgcGF0Y2gsIGRlcGVuZGluZwo+IHdoYXQncyBuZWVkZWQgeW91J3JlIGxv b2tpbmcgYXQgYSBkcml2ZXIgcmVhcmNoaXRlY3R1cmUgaGVyZSA6LS8gSGVuY2UKPiBJJ20gbm90 IGdvaW5nIHRvIHRvdWNoIHRoaXMgaW4gdGhlIG5leHQgcGF0Y2gsIGJ1dCBsZWF2ZSBpdCBhbGwg YXMtaXMuCj4KTW9zdCBvZiB0aG9zZSByZXF1aXJlbWVudHMgY29tZSBmcm9tIGNvZGUgdGhhdCBp cyBvbmx5IHJlbGV2YW50IGluCmluaXRpYWwgYnJpbmd1cCBhbmQgaW4gb3VyIGZpcnN0IEFTSUMg KEdPWUEpIGZvciB0aGUgZmlyc3QgZmV3IG1vbnRocwp3ZSBoYWQgaXQuCkknbSBnb2luZyB0byBy ZW1vdmUgYWxsIHRoYXQgY29kZSBmcm9tIHRoZSB1cHN0cmVhbSBkcml2ZXIgYXMgaXQncyBub3QK bmVlZGVkIHRoZXJlLgoKVGhlbiwgSSdsbCBnbyBhbmQgbG9vayBhdCBhbGwgb3RoZXIgdXNlcyBv ZiBHRlBfQVRPTUlDIHRvIHNlZSBob3cgdGhleQpjYW4gYmUgaW1wcm92ZWQvcmVtb3ZlZCwgbWF5 YmUgd2l0aCBwcmUtYWxsb2NhdGVkIHN0dWZmLgpUaGFua3MgZm9yIHBvaW50aW5nIHRoaXMgb3V0 LgpPZGVkCgo+IENoZWVycywgRGFuaWVsCj4KPiA+Cj4gPiA+IEluIHRoZSBtZWFud2hpbGUsIEkn bGwgcnVuIHRoaXMgcGF0Y2ggKGNvdXBsZWQgd2l0aCB0aGUgbmV4dCBwYXRjaCkgaW4KPiA+ID4g b3VyIEMvSSB0byBtYWtlIHN1cmUgdGhlcmUgYXJlIG5vIHJlZ3Jlc3Npb25zLgo+ID4KPiA+IEV4 Y2VsbGVudC4gSSdsbCB3YWl0IHdpdGggdjMgdW50aWwgdGhhdCdzIGRvbmUsIGp1c3QgaW4gY2Fz ZSB5b3UgaGl0IGEKPiA+IHNuYWcgSSBuZWVkIHRvIGZpeC4KPiA+Cj4gPiBDaGVlcnMsIERhbmll bAo+ID4KPiA+ID4gVGhhbmtzLAo+ID4gPiBPZGVkCj4gPiA+Cj4gPiA+ID4gICAgICAgICBpZiAo cmMgPCAwKSB7Cj4gPiA+ID4gICAgICAgICAgICAgICAgIGRldl9lcnIoaGRldi0+ZGV2LCAiZmFp bGVkIHRvIGNyZWF0ZSBTRyB0YWJsZSBmcm9tIHBhZ2VzXG4iKTsKPiA+ID4gPiAtICAgICAgICAg ICAgICAgZ290byBwdXRfZnJhbWV2ZWM7Cj4gPiA+ID4gKyAgICAgICAgICAgICAgIGdvdG8gcHV0 X3BhZ2VzOwo+ID4gPiA+ICAgICAgICAgfQo+ID4gPiA+Cj4gPiA+ID4gICAgICAgICByZXR1cm4g MDsKPiA+ID4gPgo+ID4gPiA+IC1wdXRfZnJhbWV2ZWM6Cj4gPiA+ID4gLSAgICAgICBwdXRfdmFk ZHJfZnJhbWVzKHVzZXJwdHItPnZlYyk7Cj4gPiA+ID4gLWRlc3Ryb3lfZnJhbWV2ZWM6Cj4gPiA+ ID4gLSAgICAgICBmcmFtZV92ZWN0b3JfZGVzdHJveSh1c2VycHRyLT52ZWMpOwo+ID4gPiA+ICtw dXRfcGFnZXM6Cj4gPiA+ID4gKyAgICAgICB1bnBpbl91c2VyX3BhZ2VzKHVzZXJwdHItPnBhZ2Vz LCBucGFnZXMpOwo+ID4gPiA+ICtkZXN0cm95X3BhZ2VzOgo+ID4gPiA+ICsgICAgICAga3ZmcmVl KHVzZXJwdHItPnBhZ2VzKTsKPiA+ID4gPiAgICAgICAgIHJldHVybiByYzsKPiA+ID4gPiAgfQo+ ID4gPiA+Cj4gPiA+ID4gQEAgLTE0MDUsOCArMTQwMSw2IEBAIGludCBobF9waW5faG9zdF9tZW1v cnkoc3RydWN0IGhsX2RldmljZSAqaGRldiwgdTY0IGFkZHIsIHU2NCBzaXplLAo+ID4gPiA+ICAg Ki8KPiA+ID4gPiAgdm9pZCBobF91bnBpbl9ob3N0X21lbW9yeShzdHJ1Y3QgaGxfZGV2aWNlICpo ZGV2LCBzdHJ1Y3QgaGxfdXNlcnB0ciAqdXNlcnB0cikKPiA+ID4gPiAgewo+ID4gPiA+IC0gICAg ICAgc3RydWN0IHBhZ2UgKipwYWdlczsKPiA+ID4gPiAtCj4gPiA+ID4gICAgICAgICBobF9kZWJ1 Z2ZzX3JlbW92ZV91c2VycHRyKGhkZXYsIHVzZXJwdHIpOwo+ID4gPiA+Cj4gPiA+ID4gICAgICAg ICBpZiAodXNlcnB0ci0+ZG1hX21hcHBlZCkKPiA+ID4gPiBAQCAtMTQxNCwxNSArMTQwOCw4IEBA IHZvaWQgaGxfdW5waW5faG9zdF9tZW1vcnkoc3RydWN0IGhsX2RldmljZSAqaGRldiwgc3RydWN0 IGhsX3VzZXJwdHIgKnVzZXJwdHIpCj4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VycHRyLT5zZ3QtPm5lbnRzLAo+ID4gPiA+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dXNlcnB0ci0+ZGlyKTsKPiA+ID4gPgo+ID4gPiA+IC0gICAgICAgcGFnZXMgPSBmcmFtZV92ZWN0 b3JfcGFnZXModXNlcnB0ci0+dmVjKTsKPiA+ID4gPiAtICAgICAgIGlmICghSVNfRVJSKHBhZ2Vz KSkgewo+ID4gPiA+IC0gICAgICAgICAgICAgICBpbnQgaTsKPiA+ID4gPiAtCj4gPiA+ID4gLSAg ICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBmcmFtZV92ZWN0b3JfY291bnQodXNlcnB0ci0+ dmVjKTsgaSsrKQo+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgIHNldF9wYWdlX2RpcnR5 X2xvY2socGFnZXNbaV0pOwo+ID4gPiA+IC0gICAgICAgfQo+ID4gPiA+IC0gICAgICAgcHV0X3Zh ZGRyX2ZyYW1lcyh1c2VycHRyLT52ZWMpOwo+ID4gPiA+IC0gICAgICAgZnJhbWVfdmVjdG9yX2Rl c3Ryb3kodXNlcnB0ci0+dmVjKTsKPiA+ID4gPiArICAgICAgIHVucGluX3VzZXJfcGFnZXNfZGly dHlfbG9jayh1c2VycHRyLT5wYWdlcywgdXNlcnB0ci0+bnBhZ2VzLCB0cnVlKTsKPiA+ID4gPiAr ICAgICAgIGt2ZnJlZSh1c2VycHRyLT5wYWdlcyk7Cj4gPiA+ID4KPiA+ID4gPiAgICAgICAgIGxp c3RfZGVsKCZ1c2VycHRyLT5qb2Jfbm9kZSk7Cj4gPiA+ID4KPiA+ID4gPiAtLQo+ID4gPiA+IDIu MjguMAo+ID4gPiA+Cj4gPgo+ID4KPiA+Cj4gPiAtLQo+ID4gRGFuaWVsIFZldHRlcgo+ID4gU29m dHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCj4gPiBodHRwOi8vYmxvZy5mZndsbC5j aAo+Cj4KPgo+IC0tCj4gRGFuaWVsIFZldHRlcgo+IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBD b3Jwb3JhdGlvbgo+IGh0dHA6Ly9ibG9nLmZmd2xsLmNoCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdAps aW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVh ZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg== 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.5 required=3.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, 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 E6155C433E7 for ; Sat, 10 Oct 2020 21:48:09 +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 928572078A for ; Sat, 10 Oct 2020 21:48:09 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="iQ1ZNhOk" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 928572078A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com 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 56CF56E08A; Sat, 10 Oct 2020 21:48:08 +0000 (UTC) Received: from mail-oi1-x244.google.com (mail-oi1-x244.google.com [IPv6:2607:f8b0:4864:20::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id A702F6E08A for ; Sat, 10 Oct 2020 21:48:06 +0000 (UTC) Received: by mail-oi1-x244.google.com with SMTP id m7so14362484oie.0 for ; Sat, 10 Oct 2020 14:48:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=TcUpz461OVaqzlBeUFIMXlvPExV4UXfJ2XMipbjkTIo=; b=iQ1ZNhOk7qeRWES3fueyt86xPb/cmebxQQuRHkMBy0nlluZwYRU3feNsXuLg5b0jOf 7P8HlPemHyuvBM2DboRpCK45fJ8F+rvcFr43a/cqycQ3xqqUG9ajofFm1WMPliomxe1C WTyCXTZGBcrlxA1mq1OLXpYgKYOVnNwRebFaEP1XpwfOvnwJ2lEErb2sYA/I2Yby+7bx /6K+qzCVlAx5ZBHufhGlQ9VZ52h8UIh1a4k6EnjwrHmqr7tBtr6tMyrVp4AIQip0MNXs L8HpCjCucZtMtMmtIzC8p0QFx+9OxymkGafjv73Dbdc6oHDmGdT14NGdVImp/klJm8yA Ttig== 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=TcUpz461OVaqzlBeUFIMXlvPExV4UXfJ2XMipbjkTIo=; b=KT+c9xIG4nUc14/UtGFE8xBFjryXvFO2ZuB1h5IDl73Hbvv4ElYhK7xFO3RhbgQIY2 3tDuHLMA/IaHsKimkl2YerrSDUlQr/+i/jb/rzQ0g+uN4p+SnZLFMphr/wSTj/jx+8yc hCgdukuBegU7OART0Mp3qmj5vPyxccw8DUXLZT8JqKTZ/FRVMujyLEboGiqMlBnQN8qZ nKxV3gZu0dsJtDp4XVNLJFYKW4878VqgJ5FOfzZlOqoHqrPC8Nc6mApUnEr67kvbf4MN EgbIbepJZjZKNcy69KUwLwWvk0kUCmeg4lvp/NS2hd0TVrs9SdGUlTCQ7O6qFFnsdXHL goKA== X-Gm-Message-State: AOAM531gEcc2ycWL7yR3ZOPVOpy2xP7gD/o2GFwDuqLfb1cR6FhNXj5t zwpqG49lyMGi74tr4B3o8DyxGuim3dntJ/PuO8Q= X-Google-Smtp-Source: ABdhPJw6azhCa1CtVIoU0/HjpPxr0pBaYe5iIN/WY3VaKZgAPU2JLYzasaY+kJofWl4CnyzXINNmGNNxNAlv10f/ODw= X-Received: by 2002:aca:750c:: with SMTP id q12mr6703039oic.154.1602366485786; Sat, 10 Oct 2020 14:48:05 -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: Oded Gabbay Date: Sun, 11 Oct 2020 00:47:39 +0300 Message-ID: Subject: Re: [PATCH v2 03/17] misc/habana: Stop using frame_vector helpers To: Daniel Vetter 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" T24gU3VuLCBPY3QgMTEsIDIwMjAgYXQgMTI6NDEgQU0gRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZl dHRlckBmZndsbC5jaD4gd3JvdGU6Cj4KPiBPbiBTYXQsIE9jdCAxMCwgMjAyMCBhdCAxMTozMiBQ TSBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPiB3cm90ZToKPiA+Cj4gPiBP biBTYXQsIE9jdCAxMCwgMjAyMCBhdCAxMDoyNyBQTSBPZGVkIEdhYmJheSA8b2RlZC5nYWJiYXlA Z21haWwuY29tPiB3cm90ZToKPiA+ID4KPiA+ID4gT24gRnJpLCBPY3QgOSwgMjAyMCBhdCAxMDo1 OSBBTSBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPiB3cm90ZToKPiA+ID4g Pgo+ID4gPiA+IEFsbCB3ZSBuZWVkIGFyZSBhIHBhZ2VzIGFycmF5LCBwaW5fdXNlcl9wYWdlc19m YXN0IGNhbiBnaXZlIHVzIHRoYXQKPiA+ID4gPiBkaXJlY3RseS4gUGx1cyB0aGlzIGF2b2lkcyB0 aGUgZW50aXJlIHJhdyBwZm4gc2lkZSBvZiBnZXRfdmFkZHJfZnJhbWVzLgo+ID4gPiA+Cj4gPiA+ IFRoYW5rcyBmb3IgdGhlIHBhdGNoIERhbmllbC4KPiA+ID4KPiA+ID4gPiBTaWduZWQtb2ZmLWJ5 OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4KPiA+ID4gPiBDYzogSmFz b24gR3VudGhvcnBlIDxqZ2dAemllcGUuY2E+Cj4gPiA+ID4gQ2M6IEFuZHJldyBNb3J0b24gPGFr cG1AbGludXgtZm91bmRhdGlvbi5vcmc+Cj4gPiA+ID4gQ2M6IEpvaG4gSHViYmFyZCA8amh1YmJh cmRAbnZpZGlhLmNvbT4KPiA+ID4gPiBDYzogSsOpcsO0bWUgR2xpc3NlIDxqZ2xpc3NlQHJlZGhh dC5jb20+Cj4gPiA+ID4gQ2M6IEphbiBLYXJhIDxqYWNrQHN1c2UuY3o+Cj4gPiA+ID4gQ2M6IERh biBXaWxsaWFtcyA8ZGFuLmoud2lsbGlhbXNAaW50ZWwuY29tPgo+ID4gPiA+IENjOiBsaW51eC1t bUBrdmFjay5vcmcKPiA+ID4gPiBDYzogbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQu b3JnCj4gPiA+ID4gQ2M6IGxpbnV4LXNhbXN1bmctc29jQHZnZXIua2VybmVsLm9yZwo+ID4gPiA+ IENjOiBsaW51eC1tZWRpYUB2Z2VyLmtlcm5lbC5vcmcKPiA+ID4gPiBDYzogT2RlZCBHYWJiYXkg PG9kZWQuZ2FiYmF5QGdtYWlsLmNvbT4KPiA+ID4gPiBDYzogT21lciBTaHBpZ2VsbWFuIDxvc2hw aWdlbG1hbkBoYWJhbmEuYWk+Cj4gPiA+ID4gQ2M6IE9maXIgQml0dG9uIDxvYml0dG9uQGhhYmFu YS5haT4KPiA+ID4gPiBDYzogVG9tZXIgVGF5YXIgPHR0YXlhckBoYWJhbmEuYWk+Cj4gPiA+ID4g Q2M6IE1vdGkgSGFpbW92c2tpIDxtaGFpbW92c2tpQGhhYmFuYS5haT4KPiA+ID4gPiBDYzogRGFu aWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiA+ID4gPiBDYzogR3JlZyBLcm9h aC1IYXJ0bWFuIDxncmVna2hAbGludXhmb3VuZGF0aW9uLm9yZz4KPiA+ID4gPiBDYzogUGF3ZWwg UGlza29yc2tpIDxwcGlza29yc2tpQGhhYmFuYS5haT4KPiA+ID4gPiAtLQo+ID4gPiA+IHYyOiBV c2UgdW5waW5fdXNlcl9wYWdlc19kaXJ0eV9sb2NrIChKb2huKQo+ID4gPiA+IC0tLQo+ID4gPiA+ ICBkcml2ZXJzL21pc2MvaGFiYW5hbGFicy9LY29uZmlnICAgICAgICAgICAgIHwgIDEgLQo+ID4g PiA+ICBkcml2ZXJzL21pc2MvaGFiYW5hbGFicy9jb21tb24vaGFiYW5hbGFicy5oIHwgIDMgKy0K PiA+ID4gPiAgZHJpdmVycy9taXNjL2hhYmFuYWxhYnMvY29tbW9uL21lbW9yeS5jICAgICB8IDQ5 ICsrKysrKysrLS0tLS0tLS0tLS0tLQo+ID4gPiA+ICAzIGZpbGVzIGNoYW5nZWQsIDIwIGluc2Vy dGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQo+ID4gPiA+Cj4gPiA+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbWlzYy9oYWJhbmFsYWJzL0tjb25maWcgYi9kcml2ZXJzL21pc2MvaGFiYW5hbGFicy9L Y29uZmlnCj4gPiA+ID4gaW5kZXggOGViNWQzOGM2MThlLi4yZjA0MTg3ZjcxNjcgMTAwNjQ0Cj4g PiA+ID4gLS0tIGEvZHJpdmVycy9taXNjL2hhYmFuYWxhYnMvS2NvbmZpZwo+ID4gPiA+ICsrKyBi L2RyaXZlcnMvbWlzYy9oYWJhbmFsYWJzL0tjb25maWcKPiA+ID4gPiBAQCAtNiw3ICs2LDYgQEAK PiA+ID4gPiAgY29uZmlnIEhBQkFOQV9BSQo+ID4gPiA+ICAgICAgICAgdHJpc3RhdGUgIkhhYmFu YUFJIGFjY2VsZXJhdG9ycyAoaGFiYW5hbGFicykiCj4gPiA+ID4gICAgICAgICBkZXBlbmRzIG9u IFBDSSAmJiBIQVNfSU9NRU0KPiA+ID4gPiAtICAgICAgIHNlbGVjdCBGUkFNRV9WRUNUT1IKPiA+ ID4gPiAgICAgICAgIHNlbGVjdCBETUFfU0hBUkVEX0JVRkZFUgo+ID4gPiA+ICAgICAgICAgc2Vs ZWN0IEdFTkVSSUNfQUxMT0NBVE9SCj4gPiA+ID4gICAgICAgICBzZWxlY3QgSFdNT04KPiA+ID4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9taXNjL2hhYmFuYWxhYnMvY29tbW9uL2hhYmFuYWxhYnMu aCBiL2RyaXZlcnMvbWlzYy9oYWJhbmFsYWJzL2NvbW1vbi9oYWJhbmFsYWJzLmgKPiA+ID4gPiBp bmRleCBlZGJkNjI3YjI5ZDIuLmMxYjNhZDYxM2IxNSAxMDA2NDQKPiA+ID4gPiAtLS0gYS9kcml2 ZXJzL21pc2MvaGFiYW5hbGFicy9jb21tb24vaGFiYW5hbGFicy5oCj4gPiA+ID4gKysrIGIvZHJp dmVycy9taXNjL2hhYmFuYWxhYnMvY29tbW9uL2hhYmFuYWxhYnMuaAo+ID4gPiA+IEBAIC04ODEs NyArODgxLDggQEAgc3RydWN0IGhsX2N0eF9tZ3Igewo+ID4gPiA+ICBzdHJ1Y3QgaGxfdXNlcnB0 ciB7Cj4gPiA+ID4gICAgICAgICBlbnVtIHZtX3R5cGVfdCAgICAgICAgICB2bV90eXBlOyAvKiBt dXN0IGJlIGZpcnN0ICovCj4gPiA+ID4gICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkICAgICAgICBq b2Jfbm9kZTsKPiA+ID4gPiAtICAgICAgIHN0cnVjdCBmcmFtZV92ZWN0b3IgICAgICp2ZWM7Cj4g PiA+ID4gKyAgICAgICBzdHJ1Y3QgcGFnZSAgICAgICAgICAgICAqKnBhZ2VzOwo+ID4gPiA+ICsg ICAgICAgdW5zaWduZWQgaW50ICAgICAgICAgICAgbnBhZ2VzOwo+ID4gPiBDYW4geW91IHBsZWFz ZSB1cGRhdGUgdGhlIGtlcm5lbGRvYyBjb21tZW50IHNlY3Rpb24gb2YgdGhpcyBzdHJ1Y3R1cmUK PiA+ID4gYWNjb3JkaW5nIHRvIHlvdXIgY2hhbmdlcyA/Cj4gPgo+ID4gQXBvbG9naWVzIEkgbWlz c2VkIHRoZSBuaWNlIGtlcm5lbGRvYy4gSSdsbCBmaXggdGhhdCBpbiB0aGUgbmV4dCByb3VuZC4K PiA+Cj4gPgo+ID4gPiA+ICAgICAgICAgc3RydWN0IHNnX3RhYmxlICAgICAgICAgKnNndDsKPiA+ ID4gPiAgICAgICAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcjsKPiA+ID4gPiAgICAgICAg IHN0cnVjdCBsaXN0X2hlYWQgICAgICAgIGRlYnVnZnNfbGlzdDsKPiA+ID4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9taXNjL2hhYmFuYWxhYnMvY29tbW9uL21lbW9yeS5jIGIvZHJpdmVycy9taXNj L2hhYmFuYWxhYnMvY29tbW9uL21lbW9yeS5jCj4gPiA+ID4gaW5kZXggNWZmNDY4ODY4M2ZkLi4z MjdiNjQ0NzlmOTcgMTAwNjQ0Cj4gPiA+ID4gLS0tIGEvZHJpdmVycy9taXNjL2hhYmFuYWxhYnMv Y29tbW9uL21lbW9yeS5jCj4gPiA+ID4gKysrIGIvZHJpdmVycy9taXNjL2hhYmFuYWxhYnMvY29t bW9uL21lbW9yeS5jCj4gPiA+ID4gQEAgLTEyODEsNDUgKzEyODEsNDEgQEAgc3RhdGljIGludCBn ZXRfdXNlcl9tZW1vcnkoc3RydWN0IGhsX2RldmljZSAqaGRldiwgdTY0IGFkZHIsIHU2NCBzaXpl LAo+ID4gPiA+ICAgICAgICAgICAgICAgICByZXR1cm4gLUVGQVVMVDsKPiA+ID4gPiAgICAgICAg IH0KPiA+ID4gPgo+ID4gPiA+IC0gICAgICAgdXNlcnB0ci0+dmVjID0gZnJhbWVfdmVjdG9yX2Ny ZWF0ZShucGFnZXMpOwo+ID4gPiA+IC0gICAgICAgaWYgKCF1c2VycHRyLT52ZWMpIHsKPiA+ID4g PiArICAgICAgIHVzZXJwdHItPnBhZ2VzID0ga3ZtYWxsb2NfYXJyYXkobnBhZ2VzLCBzaXplb2Yo KnVzZXJwdHItPnBhZ2VzKSwKPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgR0ZQX0tFUk5FTCk7Cj4gPiA+ID4gKyAgICAgICBpZiAoIXVzZXJwdHItPnBhZ2Vz KSB7Cj4gPiA+ID4gICAgICAgICAgICAgICAgIGRldl9lcnIoaGRldi0+ZGV2LCAiRmFpbGVkIHRv IGNyZWF0ZSBmcmFtZSB2ZWN0b3JcbiIpOwo+ID4gPiA+ICAgICAgICAgICAgICAgICByZXR1cm4g LUVOT01FTTsKPiA+ID4gPiAgICAgICAgIH0KPiA+ID4gPgo+ID4gPiA+IC0gICAgICAgcmMgPSBn ZXRfdmFkZHJfZnJhbWVzKHN0YXJ0LCBucGFnZXMsIEZPTExfRk9SQ0UgfCBGT0xMX1dSSVRFLAo+ ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcnB0ci0+dmVjKTsKPiA+ ID4gPiArICAgICAgIHJjID0gcGluX3VzZXJfcGFnZXNfZmFzdChzdGFydCwgbnBhZ2VzLCBGT0xM X0ZPUkNFIHwgRk9MTF9XUklURSwKPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1c2VycHRyLT5wYWdlcyk7Cj4gPiA+ID4KPiA+ID4gPiAgICAgICAgIGlmIChyYyAhPSBu cGFnZXMpIHsKPiA+ID4gPiAgICAgICAgICAgICAgICAgZGV2X2VycihoZGV2LT5kZXYsCj4gPiA+ ID4gICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBtYXAgaG9zdCBtZW1vcnksIHVz ZXIgcHRyIHByb2JhYmx5IHdyb25nXG4iKTsKPiA+ID4gPiAgICAgICAgICAgICAgICAgaWYgKHJj IDwgMCkKPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGRlc3Ryb3lfZnJhbWV2 ZWM7Cj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgZ290byBkZXN0cm95X3BhZ2VzOwo+ ID4gPiA+ICsgICAgICAgICAgICAgICBucGFnZXMgPSByYzsKPiA+ID4gPiAgICAgICAgICAgICAg ICAgcmMgPSAtRUZBVUxUOwo+ID4gPiA+IC0gICAgICAgICAgICAgICBnb3RvIHB1dF9mcmFtZXZl YzsKPiA+ID4gPiAtICAgICAgIH0KPiA+ID4gPiAtCj4gPiA+ID4gLSAgICAgICBpZiAoZnJhbWVf dmVjdG9yX3RvX3BhZ2VzKHVzZXJwdHItPnZlYykgPCAwKSB7Cj4gPiA+ID4gLSAgICAgICAgICAg ICAgIGRldl9lcnIoaGRldi0+ZGV2LAo+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICJG YWlsZWQgdG8gdHJhbnNsYXRlIGZyYW1lIHZlY3RvciB0byBwYWdlc1xuIik7Cj4gPiA+ID4gLSAg ICAgICAgICAgICAgIHJjID0gLUVGQVVMVDsKPiA+ID4gPiAtICAgICAgICAgICAgICAgZ290byBw dXRfZnJhbWV2ZWM7Cj4gPiA+ID4gKyAgICAgICAgICAgICAgIGdvdG8gcHV0X3BhZ2VzOwo+ID4g PiA+ICAgICAgICAgfQo+ID4gPiA+ICsgICAgICAgdXNlcnB0ci0+bnBhZ2VzID0gbnBhZ2VzOwo+ ID4gPiA+Cj4gPiA+ID4gICAgICAgICByYyA9IHNnX2FsbG9jX3RhYmxlX2Zyb21fcGFnZXModXNl cnB0ci0+c2d0LAo+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmcmFtZV92ZWN0b3JfcGFnZXModXNlcnB0ci0+dmVjKSwKPiA+ID4gPiAtICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbnBhZ2VzLCBvZmZzZXQsIHNpemUsIEdGUF9BVE9N SUMpOwo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJw dHItPnBhZ2VzLAo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG5wYWdlcywgb2Zmc2V0LCBzaXplLCBHRlBfQVRPTUlDKTsKPiA+ID4gSSB0aGluayB0aGF0IGJl Y2F1c2UgdGhlIGNhbGwgdG8ga3ZtYWxsb2NfYXJyYXkoKSBpcyBkb25lIHdpdGgKPiA+ID4gR0ZQ X0tFUk5FTCwgdGhlcmUgaXMgbm8gcG9pbnQgaW4gdXNpbmcgR0ZQX0FUT01JQyBoZXJlLgo+ID4g PiBBbmQgYWN0dWFsbHksIHRoaXMgcGF0aCBvbmx5IG5lZWRzIHRvIGF2b2lkIHlpZWxkaW5nIHdo ZW4gdXNpbmcgYQo+ID4gPiBzcGVjaWFsIGRlYnVnIG1vZGUuCj4gPiA+IFNvIEkgc3VnZ2VzdCBw dXR0aW5nIGhlcmUgR0ZQX0tFUk5FTC4KPiA+Cj4gPiBIdWgsIEkgZGlkbid0IGV2ZW4gbm90aWNl IHRoZSBHRlBfQVRPTUlDIGhlcmUuIFRoaXMgbG9va3MgaW5kZWVkCj4gPiBzdHJhbmdlIGFuZCBH RlBfS0VSTkVMIHNob3VsZCBiZSBwZXJmZWN0bHkgZmluZSBpbiBhIGZ1bmN0aW9uIHRoYXQKPiA+ IGFsc28gY2FsbHMgcGluX3VzZXJfcGFnZXMgKHNpbmNlIHRoYXQgb25lIGNhbiBhbGxvY2F0ZSBh bmQgZG8gd29yc2UKPiA+IHN0dWZmIGxpa2UgdXNlcnNwYWNlIHBhZ2VmYXVsdHMpLgo+ID4KPiA+ IEJ1dCBzaW5jZSB0aGF0IEdGUF9BVE9NSUMgaXMgdGhlcmUgYWxyZWFkeSBJJ2xsIGRvIHRoYXQg aW4gYSBzZXBhcmF0ZSBwYXRjaC4KPgo+IE9rIEkgcmVhZCB1cCBvbiB5b3VyIHVzYWdlIG9mIEdG UF9BVE9NSUMgaW4gaGFiYW5hbGFicywgYW5kIEknbSBub3QKPiBnb2luZyB0byB0b3VjaCB0aGlz LiBCdXQgSSdtIHByZXR0eSBzdXJlIGl0J3MgYnJva2VuLgo+Cj4gWW91IHNlZW0gdG8gaGF2ZSBz b21lIHJlcXVpcmVtZW50IG9mIG5vdCBhbGxvY2F0aW5nIG1lbW9yeSB3aXRoCj4gYmxvY2tpbmcg KHNlZSBobF9jYl9hbGxvYygpKSwgYW5kIHRoYXQgc2VlbXMgdG8gYmUgd2F5IHlvdSBhbGxvY2F0 ZQo+IHRvbnMgb2Ygc3RydWN0dXJlcyB3aXRoIEdGUF9BVE9NSUMuIFRoZXJlJ3MgMiBwcmV0dHkg dG91Z2ggcHJvYmxlbXMKPiB3aXRoIHRoYXQ6Cj4gLSBHRlBfQVRPTUlDIGNhbiBmYWlsLCBldmVu IHdoZW4gdGhlIHN5c3RlbSBoYXNuJ3QgcnVuIG91dCBvZiBtZW1vcnkKPiB5ZXQuIFlvdSBfbXVz dF8gaGF2ZSBhIGZhbGxiYWNrIGJhY2sgdG8gaGFuZGxlIGFsbG9jYXRpb24gZmFpbHVyZXMgZm9y Cj4gdGhlc2UuIFF1aWNrIHN1cnZleSBzaG93cyB5b3UgYSB0b24gb2YgR0ZQX0FUT01JQyBjYWxs c2l0ZXMsIGFuZCB2ZXJ5Cj4gbGl0dGxlIGZhbGxiYWNrIGNvZGUgLSBJJ3ZlIGZvdW5kIG5vbmUs IGJ1dCBJIGRpZG4ndCBjaGVjayB0aGUgZmFpbHVyZQo+IGhhbmRsZXJzIGFsbCBnb2luZyB1cCB0 aGUgcG9zc2libGUgY2FsbGNoYWlucy4KPiAtIHBpbl91c2VyX3BhZ2VzIGNhbiBhbGxvY2F0ZSBt ZW1vcnksIHNvIHlvdSdyZSBicmVha2luZyB5b3VyIG93biAibm8KPiBzbGVlcGluZyBpbiB0aGVz ZSBwYXRocyIgcnVsZXMuCj4KPiBUaGlzIGlzbid0IGdvaW5nIHRvIGdldCBmaXhlZCB3aXRoIGEg cXVpY2sgb25lbGluZXIgcGF0Y2gsIGRlcGVuZGluZwo+IHdoYXQncyBuZWVkZWQgeW91J3JlIGxv b2tpbmcgYXQgYSBkcml2ZXIgcmVhcmNoaXRlY3R1cmUgaGVyZSA6LS8gSGVuY2UKPiBJJ20gbm90 IGdvaW5nIHRvIHRvdWNoIHRoaXMgaW4gdGhlIG5leHQgcGF0Y2gsIGJ1dCBsZWF2ZSBpdCBhbGwg YXMtaXMuCj4KTW9zdCBvZiB0aG9zZSByZXF1aXJlbWVudHMgY29tZSBmcm9tIGNvZGUgdGhhdCBp cyBvbmx5IHJlbGV2YW50IGluCmluaXRpYWwgYnJpbmd1cCBhbmQgaW4gb3VyIGZpcnN0IEFTSUMg KEdPWUEpIGZvciB0aGUgZmlyc3QgZmV3IG1vbnRocwp3ZSBoYWQgaXQuCkknbSBnb2luZyB0byBy ZW1vdmUgYWxsIHRoYXQgY29kZSBmcm9tIHRoZSB1cHN0cmVhbSBkcml2ZXIgYXMgaXQncyBub3QK bmVlZGVkIHRoZXJlLgoKVGhlbiwgSSdsbCBnbyBhbmQgbG9vayBhdCBhbGwgb3RoZXIgdXNlcyBv ZiBHRlBfQVRPTUlDIHRvIHNlZSBob3cgdGhleQpjYW4gYmUgaW1wcm92ZWQvcmVtb3ZlZCwgbWF5 YmUgd2l0aCBwcmUtYWxsb2NhdGVkIHN0dWZmLgpUaGFua3MgZm9yIHBvaW50aW5nIHRoaXMgb3V0 LgpPZGVkCgo+IENoZWVycywgRGFuaWVsCj4KPiA+Cj4gPiA+IEluIHRoZSBtZWFud2hpbGUsIEkn bGwgcnVuIHRoaXMgcGF0Y2ggKGNvdXBsZWQgd2l0aCB0aGUgbmV4dCBwYXRjaCkgaW4KPiA+ID4g b3VyIEMvSSB0byBtYWtlIHN1cmUgdGhlcmUgYXJlIG5vIHJlZ3Jlc3Npb25zLgo+ID4KPiA+IEV4 Y2VsbGVudC4gSSdsbCB3YWl0IHdpdGggdjMgdW50aWwgdGhhdCdzIGRvbmUsIGp1c3QgaW4gY2Fz ZSB5b3UgaGl0IGEKPiA+IHNuYWcgSSBuZWVkIHRvIGZpeC4KPiA+Cj4gPiBDaGVlcnMsIERhbmll bAo+ID4KPiA+ID4gVGhhbmtzLAo+ID4gPiBPZGVkCj4gPiA+Cj4gPiA+ID4gICAgICAgICBpZiAo cmMgPCAwKSB7Cj4gPiA+ID4gICAgICAgICAgICAgICAgIGRldl9lcnIoaGRldi0+ZGV2LCAiZmFp bGVkIHRvIGNyZWF0ZSBTRyB0YWJsZSBmcm9tIHBhZ2VzXG4iKTsKPiA+ID4gPiAtICAgICAgICAg ICAgICAgZ290byBwdXRfZnJhbWV2ZWM7Cj4gPiA+ID4gKyAgICAgICAgICAgICAgIGdvdG8gcHV0 X3BhZ2VzOwo+ID4gPiA+ICAgICAgICAgfQo+ID4gPiA+Cj4gPiA+ID4gICAgICAgICByZXR1cm4g MDsKPiA+ID4gPgo+ID4gPiA+IC1wdXRfZnJhbWV2ZWM6Cj4gPiA+ID4gLSAgICAgICBwdXRfdmFk ZHJfZnJhbWVzKHVzZXJwdHItPnZlYyk7Cj4gPiA+ID4gLWRlc3Ryb3lfZnJhbWV2ZWM6Cj4gPiA+ ID4gLSAgICAgICBmcmFtZV92ZWN0b3JfZGVzdHJveSh1c2VycHRyLT52ZWMpOwo+ID4gPiA+ICtw dXRfcGFnZXM6Cj4gPiA+ID4gKyAgICAgICB1bnBpbl91c2VyX3BhZ2VzKHVzZXJwdHItPnBhZ2Vz LCBucGFnZXMpOwo+ID4gPiA+ICtkZXN0cm95X3BhZ2VzOgo+ID4gPiA+ICsgICAgICAga3ZmcmVl KHVzZXJwdHItPnBhZ2VzKTsKPiA+ID4gPiAgICAgICAgIHJldHVybiByYzsKPiA+ID4gPiAgfQo+ ID4gPiA+Cj4gPiA+ID4gQEAgLTE0MDUsOCArMTQwMSw2IEBAIGludCBobF9waW5faG9zdF9tZW1v cnkoc3RydWN0IGhsX2RldmljZSAqaGRldiwgdTY0IGFkZHIsIHU2NCBzaXplLAo+ID4gPiA+ICAg Ki8KPiA+ID4gPiAgdm9pZCBobF91bnBpbl9ob3N0X21lbW9yeShzdHJ1Y3QgaGxfZGV2aWNlICpo ZGV2LCBzdHJ1Y3QgaGxfdXNlcnB0ciAqdXNlcnB0cikKPiA+ID4gPiAgewo+ID4gPiA+IC0gICAg ICAgc3RydWN0IHBhZ2UgKipwYWdlczsKPiA+ID4gPiAtCj4gPiA+ID4gICAgICAgICBobF9kZWJ1 Z2ZzX3JlbW92ZV91c2VycHRyKGhkZXYsIHVzZXJwdHIpOwo+ID4gPiA+Cj4gPiA+ID4gICAgICAg ICBpZiAodXNlcnB0ci0+ZG1hX21hcHBlZCkKPiA+ID4gPiBAQCAtMTQxNCwxNSArMTQwOCw4IEBA IHZvaWQgaGxfdW5waW5faG9zdF9tZW1vcnkoc3RydWN0IGhsX2RldmljZSAqaGRldiwgc3RydWN0 IGhsX3VzZXJwdHIgKnVzZXJwdHIpCj4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VycHRyLT5zZ3QtPm5lbnRzLAo+ID4gPiA+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dXNlcnB0ci0+ZGlyKTsKPiA+ID4gPgo+ID4gPiA+IC0gICAgICAgcGFnZXMgPSBmcmFtZV92ZWN0 b3JfcGFnZXModXNlcnB0ci0+dmVjKTsKPiA+ID4gPiAtICAgICAgIGlmICghSVNfRVJSKHBhZ2Vz KSkgewo+ID4gPiA+IC0gICAgICAgICAgICAgICBpbnQgaTsKPiA+ID4gPiAtCj4gPiA+ID4gLSAg ICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBmcmFtZV92ZWN0b3JfY291bnQodXNlcnB0ci0+ dmVjKTsgaSsrKQo+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgIHNldF9wYWdlX2RpcnR5 X2xvY2socGFnZXNbaV0pOwo+ID4gPiA+IC0gICAgICAgfQo+ID4gPiA+IC0gICAgICAgcHV0X3Zh ZGRyX2ZyYW1lcyh1c2VycHRyLT52ZWMpOwo+ID4gPiA+IC0gICAgICAgZnJhbWVfdmVjdG9yX2Rl c3Ryb3kodXNlcnB0ci0+dmVjKTsKPiA+ID4gPiArICAgICAgIHVucGluX3VzZXJfcGFnZXNfZGly dHlfbG9jayh1c2VycHRyLT5wYWdlcywgdXNlcnB0ci0+bnBhZ2VzLCB0cnVlKTsKPiA+ID4gPiAr ICAgICAgIGt2ZnJlZSh1c2VycHRyLT5wYWdlcyk7Cj4gPiA+ID4KPiA+ID4gPiAgICAgICAgIGxp c3RfZGVsKCZ1c2VycHRyLT5qb2Jfbm9kZSk7Cj4gPiA+ID4KPiA+ID4gPiAtLQo+ID4gPiA+IDIu MjguMAo+ID4gPiA+Cj4gPgo+ID4KPiA+Cj4gPiAtLQo+ID4gRGFuaWVsIFZldHRlcgo+ID4gU29m dHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCj4gPiBodHRwOi8vYmxvZy5mZndsbC5j aAo+Cj4KPgo+IC0tCj4gRGFuaWVsIFZldHRlcgo+IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBD b3Jwb3JhdGlvbgo+IGh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=