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=-11.6 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_2 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 2ADBFC43457 for ; Fri, 9 Oct 2020 10:14:29 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id B62C1222C2 for ; Fri, 9 Oct 2020 10:14:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1602238468; bh=HLpDhcg7JCIZWffZIBZCvMxe2w6BmkPx1lvxzb/jlAA=; h=Date:From:To:Cc:Subject:In-Reply-To:References:List-ID:From; b=HNdAd3g1EW/XuuElnccRf9c6BiEi0unfC5pLyYGjk41eRyeGXgvR3KTNz1soDqKuD d0Ie61+z0eLOuEf4y4apmsYGEETttzQmpnO8oFtAesTGt5CuF/P02nFuY9FkwlYibK /eUqaoBED2s26EYxZ+5SIHU05iRlNwnxPsFnQktM= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387539AbgJIKO1 (ORCPT ); Fri, 9 Oct 2020 06:14:27 -0400 Received: from mail.kernel.org ([198.145.29.99]:40444 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726357AbgJIKO1 (ORCPT ); Fri, 9 Oct 2020 06:14:27 -0400 Received: from coco.lan (ip5f5ad5d0.dynamic.kabel-deutschland.de [95.90.213.208]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id AEF062226B; Fri, 9 Oct 2020 10:14:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1602238465; bh=HLpDhcg7JCIZWffZIBZCvMxe2w6BmkPx1lvxzb/jlAA=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=entYTMU57H8h4pHlBfmfx61IZZz86qZXtKIa3/8kyOsu7AJtmiUWy0DpXZ8c355dF oxwMgMeoIfe32cPPr8yifCD9zFte1J/ueRlcm5tjhBiUii2B/j6Ox0Z6+f+auAMpj9 zx6ZdvznIgHatn9Me42Sr1LkAeyYY1zjSs8WJ9mw= Date: Fri, 9 Oct 2020 12:14:17 +0200 From: Mauro Carvalho Chehab To: Daniel Vetter Cc: DRI Development , LKML , 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, linux-s390@vger.kernel.org, John Hubbard , Daniel Vetter , Jason Gunthorpe , Pawel Osciak , Marek Szyprowski , Kyungmin Park , Tomasz Figa , Andrew Morton , =?UTF-8?B?SsOpcsO0bWU=?= Glisse , Jan Kara , Dan Williams Subject: Re: [PATCH v2 06/17] media: videobuf2: Move frame_vector into media subsystem Message-ID: <20201009121417.115db7d9@coco.lan> In-Reply-To: <20201009075934.3509076-7-daniel.vetter@ffwll.ch> References: <20201009075934.3509076-1-daniel.vetter@ffwll.ch> <20201009075934.3509076-7-daniel.vetter@ffwll.ch> X-Mailer: Claws Mail 3.17.6 (GTK+ 2.24.32; x86_64-redhat-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Em Fri, 9 Oct 2020 09:59:23 +0200 Daniel Vetter escreveu: > It's the only user. This also garbage collects the CONFIG_FRAME_VECTOR > symbol from all over the tree (well just one place, somehow omap media > driver still had this in its Kconfig, despite not using it). >=20 > Reviewed-by: John Hubbard > 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=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: Daniel Vetter > --- > drivers/media/common/videobuf2/Kconfig | 1 - > drivers/media/common/videobuf2/Makefile | 1 + > .../media/common/videobuf2}/frame_vector.c | 2 + > drivers/media/platform/omap/Kconfig | 1 - > include/linux/mm.h | 42 ------------------- > include/media/videobuf2-core.h | 42 +++++++++++++++++++ > mm/Kconfig | 3 -- > mm/Makefile | 1 - > 8 files changed, 45 insertions(+), 48 deletions(-) > rename {mm =3D> drivers/media/common/videobuf2}/frame_vector.c (99%) >=20 > diff --git a/drivers/media/common/videobuf2/Kconfig b/drivers/media/commo= n/videobuf2/Kconfig > index edbc99ebba87..d2223a12c95f 100644 > --- a/drivers/media/common/videobuf2/Kconfig > +++ b/drivers/media/common/videobuf2/Kconfig > @@ -9,7 +9,6 @@ config VIDEOBUF2_V4L2 > =20 > config VIDEOBUF2_MEMOPS > tristate > - select FRAME_VECTOR > =20 > config VIDEOBUF2_DMA_CONTIG > tristate > diff --git a/drivers/media/common/videobuf2/Makefile b/drivers/media/comm= on/videobuf2/Makefile > index 77bebe8b202f..54306f8d096c 100644 > --- a/drivers/media/common/videobuf2/Makefile > +++ b/drivers/media/common/videobuf2/Makefile > @@ -1,5 +1,6 @@ > # SPDX-License-Identifier: GPL-2.0 > videobuf2-common-objs :=3D videobuf2-core.o > +videobuf2-common-objs +=3D frame_vector.o > =20 > ifeq ($(CONFIG_TRACEPOINTS),y) > videobuf2-common-objs +=3D vb2-trace.o > diff --git a/mm/frame_vector.c b/drivers/media/common/videobuf2/frame_vec= tor.c > similarity index 99% > rename from mm/frame_vector.c > rename to drivers/media/common/videobuf2/frame_vector.c > index d44779e56313..2b0b97761d15 100644 > --- a/mm/frame_vector.c > +++ b/drivers/media/common/videobuf2/frame_vector.c > @@ -8,6 +8,8 @@ > #include > #include > =20 > +#include > + See my comment below... > /** > * get_vaddr_frames() - map virtual addresses to pfns > * @start: starting user address > diff --git a/drivers/media/platform/omap/Kconfig b/drivers/media/platform= /omap/Kconfig > index f73b5893220d..de16de46c0f4 100644 > --- a/drivers/media/platform/omap/Kconfig > +++ b/drivers/media/platform/omap/Kconfig > @@ -12,6 +12,5 @@ config VIDEO_OMAP2_VOUT > depends on VIDEO_V4L2 > select VIDEOBUF2_DMA_CONTIG > select OMAP2_VRFB if ARCH_OMAP2 || ARCH_OMAP3 > - select FRAME_VECTOR > help > V4L2 Display driver support for OMAP2/3 based boards. > diff --git a/include/linux/mm.h b/include/linux/mm.h > index 16b799a0522c..acd60fbf1a5a 100644 > --- a/include/linux/mm.h > +++ b/include/linux/mm.h > @@ -1743,48 +1743,6 @@ int account_locked_vm(struct mm_struct *mm, unsign= ed long pages, bool inc); > int __account_locked_vm(struct mm_struct *mm, unsigned long pages, bool = inc, > struct task_struct *task, bool bypass_rlim); > =20 > -/* Container for pinned pfns / pages */ > -struct frame_vector { > - unsigned int nr_allocated; /* Number of frames we have space for */ > - unsigned int nr_frames; /* Number of frames stored in ptrs array */ > - bool got_ref; /* Did we pin pages by getting page ref? */ > - bool is_pfns; /* Does array contain pages or pfns? */ > - void *ptrs[]; /* Array of pinned pfns / pages. Use > - * pfns_vector_pages() or pfns_vector_pfns() > - * for access */ > -}; > - > -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); > -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); > - > -static inline unsigned int frame_vector_count(struct frame_vector *vec) > -{ > - return vec->nr_frames; > -} > - > -static inline struct page **frame_vector_pages(struct frame_vector *vec) > -{ > - if (vec->is_pfns) { > - int err =3D frame_vector_to_pages(vec); > - > - if (err) > - return ERR_PTR(err); > - } > - return (struct page **)(vec->ptrs); > -} > - > -static inline unsigned long *frame_vector_pfns(struct frame_vector *vec) > -{ > - if (!vec->is_pfns) > - frame_vector_to_pfns(vec); > - return (unsigned long *)(vec->ptrs); > -} > - > struct kvec; > int get_kernel_pages(const struct kvec *iov, int nr_pages, int write, > struct page **pages); > diff --git a/include/media/videobuf2-core.h b/include/media/videobuf2-cor= e.h > index bbb3f26fbde9..a2e75ca0334f 100644 > --- a/include/media/videobuf2-core.h > +++ b/include/media/videobuf2-core.h > @@ -1254,4 +1254,46 @@ bool vb2_request_object_is_buffer(struct media_req= uest_object *obj); > */ > unsigned int vb2_request_buffer_cnt(struct media_request *req); > =20 > +/* Container for pinned pfns / pages in frame_vector.c */ > +struct frame_vector { > + unsigned int nr_allocated; /* Number of frames we have space for */ > + unsigned int nr_frames; /* Number of frames stored in ptrs array */ > + bool got_ref; /* Did we pin pages by getting page ref? */ > + bool is_pfns; /* Does array contain pages or pfns? */ > + void *ptrs[]; /* Array of pinned pfns / pages. Use > + * pfns_vector_pages() or pfns_vector_pfns() > + * for access */ > +}; > + > +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); > +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); > + > +static inline unsigned int frame_vector_count(struct frame_vector *vec) > +{ > + return vec->nr_frames; > +} > + > +static inline struct page **frame_vector_pages(struct frame_vector *vec) > +{ > + if (vec->is_pfns) { > + int err =3D frame_vector_to_pages(vec); > + > + if (err) > + return ERR_PTR(err); > + } > + return (struct page **)(vec->ptrs); > +} > + > +static inline unsigned long *frame_vector_pfns(struct frame_vector *vec) > +{ > + if (!vec->is_pfns) > + frame_vector_to_pfns(vec); > + return (unsigned long *)(vec->ptrs); > +} > + > #endif /* _MEDIA_VIDEOBUF2_CORE_H */ Please place those into a include/media/frame_vector.h file, instead of merging it directly at vb2 core header. Then include the new header at videobuf2-core.h and at frame_vector.c. With such changes: Acked-by: Mauro Carvalho Chehab > diff --git a/mm/Kconfig b/mm/Kconfig > index 6c974888f86f..da6c943fe9f1 100644 > --- a/mm/Kconfig > +++ b/mm/Kconfig > @@ -815,9 +815,6 @@ config DEVICE_PRIVATE > memory; i.e., memory that is only accessible from the device (or > group of devices). You likely also want to select HMM_MIRROR. > =20 > -config FRAME_VECTOR > - bool > - > config ARCH_USES_HIGH_VMA_FLAGS > bool > config ARCH_HAS_PKEYS > diff --git a/mm/Makefile b/mm/Makefile > index d5649f1c12c0..a025fd6c6afd 100644 > --- a/mm/Makefile > +++ b/mm/Makefile > @@ -111,7 +111,6 @@ obj-$(CONFIG_PAGE_EXTENSION) +=3D page_ext.o > obj-$(CONFIG_CMA_DEBUGFS) +=3D cma_debug.o > obj-$(CONFIG_USERFAULTFD) +=3D userfaultfd.o > obj-$(CONFIG_IDLE_PAGE_TRACKING) +=3D page_idle.o > -obj-$(CONFIG_FRAME_VECTOR) +=3D frame_vector.o > obj-$(CONFIG_DEBUG_PAGE_REF) +=3D debug_page_ref.o > obj-$(CONFIG_HARDENED_USERCOPY) +=3D usercopy.o > obj-$(CONFIG_PERCPU_STATS) +=3D percpu-stats.o Thanks, Mauro 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=-11.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_2 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 90679C433DF for ; Fri, 9 Oct 2020 10:16:03 +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 E8AEF22276 for ; Fri, 9 Oct 2020 10:16:00 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="YwNe4qZZ"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="entYTMU5" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E8AEF22276 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org 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: Subject:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=nhO1+6+wp0UHtcArGtNye6pDd9vx+cyeSQBi9o6/u+M=; b=YwNe4qZZ3JEuMwimjvJuPxM27 P9WHaleiwLHrB5h8BAtPzD9jv3FoAQOM8KgjQTSDA/JZLA77TwqjsHyRJJAtcu/SwiMXsUEW3bqcm xUopqs8qxI9vVzx1cFOQgHX+Pd7v40ZLMJ0ocouW4E4iXnG5D19xZa9uxAP6tIJdYQBaOxWZoNc+S Vd70elXeGr+yAlB4KssZ7MBE/mrnrFsVmhk9MMhk0WTD82CFlrTOiOs/slF2fI+Jueij6ek7s3hif 4cSq3k7g/PyCnMwPf8XvWzDlh7G44fDY3YI9hrcDoiPkA2K7EUkRte3JtttzTKuQlz4nPrDd3K55s VaUGLPnCw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kQpQ0-0008Sy-DB; Fri, 09 Oct 2020 10:14:32 +0000 Received: from mail.kernel.org ([198.145.29.99]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kQpPw-0008Qm-AJ for linux-arm-kernel@lists.infradead.org; Fri, 09 Oct 2020 10:14:29 +0000 Received: from coco.lan (ip5f5ad5d0.dynamic.kabel-deutschland.de [95.90.213.208]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id AEF062226B; Fri, 9 Oct 2020 10:14:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1602238465; bh=HLpDhcg7JCIZWffZIBZCvMxe2w6BmkPx1lvxzb/jlAA=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=entYTMU57H8h4pHlBfmfx61IZZz86qZXtKIa3/8kyOsu7AJtmiUWy0DpXZ8c355dF oxwMgMeoIfe32cPPr8yifCD9zFte1J/ueRlcm5tjhBiUii2B/j6Ox0Z6+f+auAMpj9 zx6ZdvznIgHatn9Me42Sr1LkAeyYY1zjSs8WJ9mw= Date: Fri, 9 Oct 2020 12:14:17 +0200 From: Mauro Carvalho Chehab To: Daniel Vetter Subject: Re: [PATCH v2 06/17] media: videobuf2: Move frame_vector into media subsystem Message-ID: <20201009121417.115db7d9@coco.lan> In-Reply-To: <20201009075934.3509076-7-daniel.vetter@ffwll.ch> References: <20201009075934.3509076-1-daniel.vetter@ffwll.ch> <20201009075934.3509076-7-daniel.vetter@ffwll.ch> X-Mailer: Claws Mail 3.17.6 (GTK+ 2.24.32; x86_64-redhat-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201009_061428_557759_EF234554 X-CRM114-Status: GOOD ( 28.51 ) 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: =?UTF-8?B?SsOpcsO0bWU=?= Glisse , linux-s390@vger.kernel.org, linux-samsung-soc@vger.kernel.org, Jan Kara , Pawel Osciak , kvm@vger.kernel.org, Jason Gunthorpe , John Hubbard , LKML , DRI Development , Tomasz Figa , linux-mm@kvack.org, Kyungmin Park , 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 RW0gRnJpLCAgOSBPY3QgMjAyMCAwOTo1OToyMyArMDIwMApEYW5pZWwgVmV0dGVyIDxkYW5pZWwu dmV0dGVyQGZmd2xsLmNoPiBlc2NyZXZldToKCj4gSXQncyB0aGUgb25seSB1c2VyLiBUaGlzIGFs c28gZ2FyYmFnZSBjb2xsZWN0cyB0aGUgQ09ORklHX0ZSQU1FX1ZFQ1RPUgo+IHN5bWJvbCBmcm9t IGFsbCBvdmVyIHRoZSB0cmVlICh3ZWxsIGp1c3Qgb25lIHBsYWNlLCBzb21laG93IG9tYXAgbWVk aWEKPiBkcml2ZXIgc3RpbGwgaGFkIHRoaXMgaW4gaXRzIEtjb25maWcsIGRlc3BpdGUgbm90IHVz aW5nIGl0KS4KPiAKPiBSZXZpZXdlZC1ieTogSm9obiBIdWJiYXJkIDxqaHViYmFyZEBudmlkaWEu Y29tPgo+IFNpZ25lZC1vZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwu Y29tPgo+IENjOiBKYXNvbiBHdW50aG9ycGUgPGpnZ0B6aWVwZS5jYT4KPiBDYzogUGF3ZWwgT3Nj aWFrIDxwYXdlbEBvc2NpYWsuY29tPgo+IENjOiBNYXJlayBTenlwcm93c2tpIDxtLnN6eXByb3dz a2lAc2Ftc3VuZy5jb20+Cj4gQ2M6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3Vu Zy5jb20+Cj4gQ2M6IFRvbWFzeiBGaWdhIDx0ZmlnYUBjaHJvbWl1bS5vcmc+Cj4gQ2M6IE1hdXJv IENhcnZhbGhvIENoZWhhYiA8bWNoZWhhYkBrZXJuZWwub3JnPgo+IENjOiBBbmRyZXcgTW9ydG9u IDxha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnPgo+IENjOiBKb2huIEh1YmJhcmQgPGpodWJiYXJk QG52aWRpYS5jb20+Cj4gQ2M6IErDqXLDtG1lIEdsaXNzZSA8amdsaXNzZUByZWRoYXQuY29tPgo+ IENjOiBKYW4gS2FyYSA8amFja0BzdXNlLmN6Pgo+IENjOiBEYW4gV2lsbGlhbXMgPGRhbi5qLndp bGxpYW1zQGludGVsLmNvbT4KPiBDYzogbGludXgtbW1Aa3ZhY2sub3JnCj4gQ2M6IGxpbnV4LWFy bS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwo+IENjOiBsaW51eC1zYW1zdW5nLXNvY0B2Z2Vy Lmtlcm5lbC5vcmcKPiBDYzogbGludXgtbWVkaWFAdmdlci5rZXJuZWwub3JnCj4gQ2M6IERhbmll bCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gLS0tCj4gIGRyaXZlcnMvbWVkaWEv Y29tbW9uL3ZpZGVvYnVmMi9LY29uZmlnICAgICAgICB8ICAxIC0KPiAgZHJpdmVycy9tZWRpYS9j b21tb24vdmlkZW9idWYyL01ha2VmaWxlICAgICAgIHwgIDEgKwo+ICAuLi4vbWVkaWEvY29tbW9u L3ZpZGVvYnVmMn0vZnJhbWVfdmVjdG9yLmMgICAgfCAgMiArCj4gIGRyaXZlcnMvbWVkaWEvcGxh dGZvcm0vb21hcC9LY29uZmlnICAgICAgICAgICB8ICAxIC0KPiAgaW5jbHVkZS9saW51eC9tbS5o ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNDIgLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICBp bmNsdWRlL21lZGlhL3ZpZGVvYnVmMi1jb3JlLmggICAgICAgICAgICAgICAgfCA0MiArKysrKysr KysrKysrKysrKysrCj4gIG1tL0tjb25maWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAzIC0tCj4gIG1tL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAxIC0KPiAgOCBmaWxlcyBjaGFuZ2VkLCA0NSBpbnNlcnRpb25zKCspLCA0OCBkZWxl dGlvbnMoLSkKPiAgcmVuYW1lIHttbSA9PiBkcml2ZXJzL21lZGlhL2NvbW1vbi92aWRlb2J1ZjJ9 L2ZyYW1lX3ZlY3Rvci5jICg5OSUpCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvY29t bW9uL3ZpZGVvYnVmMi9LY29uZmlnIGIvZHJpdmVycy9tZWRpYS9jb21tb24vdmlkZW9idWYyL0tj b25maWcKPiBpbmRleCBlZGJjOTllYmJhODcuLmQyMjIzYTEyYzk1ZiAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL21lZGlhL2NvbW1vbi92aWRlb2J1ZjIvS2NvbmZpZwo+ICsrKyBiL2RyaXZlcnMvbWVk aWEvY29tbW9uL3ZpZGVvYnVmMi9LY29uZmlnCj4gQEAgLTksNyArOSw2IEBAIGNvbmZpZyBWSURF T0JVRjJfVjRMMgo+ICAKPiAgY29uZmlnIFZJREVPQlVGMl9NRU1PUFMKPiAgCXRyaXN0YXRlCj4g LQlzZWxlY3QgRlJBTUVfVkVDVE9SCj4gIAo+ICBjb25maWcgVklERU9CVUYyX0RNQV9DT05USUcK PiAgCXRyaXN0YXRlCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvY29tbW9uL3ZpZGVvYnVm Mi9NYWtlZmlsZSBiL2RyaXZlcnMvbWVkaWEvY29tbW9uL3ZpZGVvYnVmMi9NYWtlZmlsZQo+IGlu ZGV4IDc3YmViZThiMjAyZi4uNTQzMDZmOGQwOTZjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbWVk aWEvY29tbW9uL3ZpZGVvYnVmMi9NYWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMvbWVkaWEvY29tbW9u L3ZpZGVvYnVmMi9NYWtlZmlsZQo+IEBAIC0xLDUgKzEsNiBAQAo+ICAjIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBHUEwtMi4wCj4gIHZpZGVvYnVmMi1jb21tb24tb2JqcyA6PSB2aWRlb2J1ZjIt Y29yZS5vCj4gK3ZpZGVvYnVmMi1jb21tb24tb2JqcyArPSBmcmFtZV92ZWN0b3Iubwo+ICAKPiAg aWZlcSAoJChDT05GSUdfVFJBQ0VQT0lOVFMpLHkpCj4gICAgdmlkZW9idWYyLWNvbW1vbi1vYmpz ICs9IHZiMi10cmFjZS5vCj4gZGlmZiAtLWdpdCBhL21tL2ZyYW1lX3ZlY3Rvci5jIGIvZHJpdmVy cy9tZWRpYS9jb21tb24vdmlkZW9idWYyL2ZyYW1lX3ZlY3Rvci5jCj4gc2ltaWxhcml0eSBpbmRl eCA5OSUKPiByZW5hbWUgZnJvbSBtbS9mcmFtZV92ZWN0b3IuYwo+IHJlbmFtZSB0byBkcml2ZXJz L21lZGlhL2NvbW1vbi92aWRlb2J1ZjIvZnJhbWVfdmVjdG9yLmMKPiBpbmRleCBkNDQ3NzllNTYz MTMuLjJiMGI5Nzc2MWQxNSAxMDA2NDQKPiAtLS0gYS9tbS9mcmFtZV92ZWN0b3IuYwo+ICsrKyBi L2RyaXZlcnMvbWVkaWEvY29tbW9uL3ZpZGVvYnVmMi9mcmFtZV92ZWN0b3IuYwo+IEBAIC04LDYg KzgsOCBAQAo+ICAjaW5jbHVkZSA8bGludXgvcGFnZW1hcC5oPgo+ICAjaW5jbHVkZSA8bGludXgv c2NoZWQuaD4KPiAgCj4gKyNpbmNsdWRlIDxtZWRpYS92aWRlb2J1ZjItY29yZS5oPgo+ICsKClNl ZSBteSBjb21tZW50IGJlbG93Li4uCgo+ICAvKioKPiAgICogZ2V0X3ZhZGRyX2ZyYW1lcygpIC0g bWFwIHZpcnR1YWwgYWRkcmVzc2VzIHRvIHBmbnMKPiAgICogQHN0YXJ0OglzdGFydGluZyB1c2Vy IGFkZHJlc3MKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9vbWFwL0tjb25m aWcgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL29tYXAvS2NvbmZpZwo+IGluZGV4IGY3M2I1ODkz MjIwZC4uZGUxNmRlNDZjMGY0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0v b21hcC9LY29uZmlnCj4gKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9vbWFwL0tjb25maWcK PiBAQCAtMTIsNiArMTIsNSBAQCBjb25maWcgVklERU9fT01BUDJfVk9VVAo+ICAJZGVwZW5kcyBv biBWSURFT19WNEwyCj4gIAlzZWxlY3QgVklERU9CVUYyX0RNQV9DT05USUcKPiAgCXNlbGVjdCBP TUFQMl9WUkZCIGlmIEFSQ0hfT01BUDIgfHwgQVJDSF9PTUFQMwo+IC0Jc2VsZWN0IEZSQU1FX1ZF Q1RPUgo+ICAJaGVscAo+ICAJICBWNEwyIERpc3BsYXkgZHJpdmVyIHN1cHBvcnQgZm9yIE9NQVAy LzMgYmFzZWQgYm9hcmRzLgo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21tLmggYi9pbmNs dWRlL2xpbnV4L21tLmgKPiBpbmRleCAxNmI3OTlhMDUyMmMuLmFjZDYwZmJmMWE1YSAxMDA2NDQK PiAtLS0gYS9pbmNsdWRlL2xpbnV4L21tLmgKPiArKysgYi9pbmNsdWRlL2xpbnV4L21tLmgKPiBA QCAtMTc0Myw0OCArMTc0Myw2IEBAIGludCBhY2NvdW50X2xvY2tlZF92bShzdHJ1Y3QgbW1fc3Ry dWN0ICptbSwgdW5zaWduZWQgbG9uZyBwYWdlcywgYm9vbCBpbmMpOwo+ICBpbnQgX19hY2NvdW50 X2xvY2tlZF92bShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBwYWdlcywgYm9v bCBpbmMsCj4gIAkJCXN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywgYm9vbCBieXBhc3NfcmxpbSk7 Cj4gIAo+IC0vKiBDb250YWluZXIgZm9yIHBpbm5lZCBwZm5zIC8gcGFnZXMgKi8KPiAtc3RydWN0 IGZyYW1lX3ZlY3RvciB7Cj4gLQl1bnNpZ25lZCBpbnQgbnJfYWxsb2NhdGVkOwkvKiBOdW1iZXIg b2YgZnJhbWVzIHdlIGhhdmUgc3BhY2UgZm9yICovCj4gLQl1bnNpZ25lZCBpbnQgbnJfZnJhbWVz OwkvKiBOdW1iZXIgb2YgZnJhbWVzIHN0b3JlZCBpbiBwdHJzIGFycmF5ICovCj4gLQlib29sIGdv dF9yZWY7CQkvKiBEaWQgd2UgcGluIHBhZ2VzIGJ5IGdldHRpbmcgcGFnZSByZWY/ICovCj4gLQli b29sIGlzX3BmbnM7CQkvKiBEb2VzIGFycmF5IGNvbnRhaW4gcGFnZXMgb3IgcGZucz8gKi8KPiAt CXZvaWQgKnB0cnNbXTsJCS8qIEFycmF5IG9mIHBpbm5lZCBwZm5zIC8gcGFnZXMuIFVzZQo+IC0J CQkJICogcGZuc192ZWN0b3JfcGFnZXMoKSBvciBwZm5zX3ZlY3Rvcl9wZm5zKCkKPiAtCQkJCSAq IGZvciBhY2Nlc3MgKi8KPiAtfTsKPiAtCj4gLXN0cnVjdCBmcmFtZV92ZWN0b3IgKmZyYW1lX3Zl Y3Rvcl9jcmVhdGUodW5zaWduZWQgaW50IG5yX2ZyYW1lcyk7Cj4gLXZvaWQgZnJhbWVfdmVjdG9y X2Rlc3Ryb3koc3RydWN0IGZyYW1lX3ZlY3RvciAqdmVjKTsKPiAtaW50IGdldF92YWRkcl9mcmFt ZXModW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgaW50IG5yX3BmbnMsCj4gLQkJICAgICB1 bnNpZ25lZCBpbnQgZ3VwX2ZsYWdzLCBzdHJ1Y3QgZnJhbWVfdmVjdG9yICp2ZWMpOwo+IC12b2lk IHB1dF92YWRkcl9mcmFtZXMoc3RydWN0IGZyYW1lX3ZlY3RvciAqdmVjKTsKPiAtaW50IGZyYW1l X3ZlY3Rvcl90b19wYWdlcyhzdHJ1Y3QgZnJhbWVfdmVjdG9yICp2ZWMpOwo+IC12b2lkIGZyYW1l X3ZlY3Rvcl90b19wZm5zKHN0cnVjdCBmcmFtZV92ZWN0b3IgKnZlYyk7Cj4gLQo+IC1zdGF0aWMg aW5saW5lIHVuc2lnbmVkIGludCBmcmFtZV92ZWN0b3JfY291bnQoc3RydWN0IGZyYW1lX3ZlY3Rv ciAqdmVjKQo+IC17Cj4gLQlyZXR1cm4gdmVjLT5ucl9mcmFtZXM7Cj4gLX0KPiAtCj4gLXN0YXRp YyBpbmxpbmUgc3RydWN0IHBhZ2UgKipmcmFtZV92ZWN0b3JfcGFnZXMoc3RydWN0IGZyYW1lX3Zl Y3RvciAqdmVjKQo+IC17Cj4gLQlpZiAodmVjLT5pc19wZm5zKSB7Cj4gLQkJaW50IGVyciA9IGZy YW1lX3ZlY3Rvcl90b19wYWdlcyh2ZWMpOwo+IC0KPiAtCQlpZiAoZXJyKQo+IC0JCQlyZXR1cm4g RVJSX1BUUihlcnIpOwo+IC0JfQo+IC0JcmV0dXJuIChzdHJ1Y3QgcGFnZSAqKikodmVjLT5wdHJz KTsKPiAtfQo+IC0KPiAtc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nICpmcmFtZV92ZWN0b3Jf cGZucyhzdHJ1Y3QgZnJhbWVfdmVjdG9yICp2ZWMpCj4gLXsKPiAtCWlmICghdmVjLT5pc19wZm5z KQo+IC0JCWZyYW1lX3ZlY3Rvcl90b19wZm5zKHZlYyk7Cj4gLQlyZXR1cm4gKHVuc2lnbmVkIGxv bmcgKikodmVjLT5wdHJzKTsKPiAtfQo+IC0KPiAgc3RydWN0IGt2ZWM7Cj4gIGludCBnZXRfa2Vy bmVsX3BhZ2VzKGNvbnN0IHN0cnVjdCBrdmVjICppb3YsIGludCBucl9wYWdlcywgaW50IHdyaXRl LAo+ICAJCQlzdHJ1Y3QgcGFnZSAqKnBhZ2VzKTsKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tZWRp YS92aWRlb2J1ZjItY29yZS5oIGIvaW5jbHVkZS9tZWRpYS92aWRlb2J1ZjItY29yZS5oCj4gaW5k ZXggYmJiM2YyNmZiZGU5Li5hMmU3NWNhMDMzNGYgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9tZWRp YS92aWRlb2J1ZjItY29yZS5oCj4gKysrIGIvaW5jbHVkZS9tZWRpYS92aWRlb2J1ZjItY29yZS5o Cj4gQEAgLTEyNTQsNCArMTI1NCw0NiBAQCBib29sIHZiMl9yZXF1ZXN0X29iamVjdF9pc19idWZm ZXIoc3RydWN0IG1lZGlhX3JlcXVlc3Rfb2JqZWN0ICpvYmopOwo+ICAgKi8KPiAgdW5zaWduZWQg aW50IHZiMl9yZXF1ZXN0X2J1ZmZlcl9jbnQoc3RydWN0IG1lZGlhX3JlcXVlc3QgKnJlcSk7Cj4g IAo+ICsvKiBDb250YWluZXIgZm9yIHBpbm5lZCBwZm5zIC8gcGFnZXMgaW4gZnJhbWVfdmVjdG9y LmMgKi8KPiArc3RydWN0IGZyYW1lX3ZlY3RvciB7Cj4gKwl1bnNpZ25lZCBpbnQgbnJfYWxsb2Nh dGVkOwkvKiBOdW1iZXIgb2YgZnJhbWVzIHdlIGhhdmUgc3BhY2UgZm9yICovCj4gKwl1bnNpZ25l ZCBpbnQgbnJfZnJhbWVzOwkvKiBOdW1iZXIgb2YgZnJhbWVzIHN0b3JlZCBpbiBwdHJzIGFycmF5 ICovCj4gKwlib29sIGdvdF9yZWY7CQkvKiBEaWQgd2UgcGluIHBhZ2VzIGJ5IGdldHRpbmcgcGFn ZSByZWY/ICovCj4gKwlib29sIGlzX3BmbnM7CQkvKiBEb2VzIGFycmF5IGNvbnRhaW4gcGFnZXMg b3IgcGZucz8gKi8KPiArCXZvaWQgKnB0cnNbXTsJCS8qIEFycmF5IG9mIHBpbm5lZCBwZm5zIC8g cGFnZXMuIFVzZQo+ICsJCQkJICogcGZuc192ZWN0b3JfcGFnZXMoKSBvciBwZm5zX3ZlY3Rvcl9w Zm5zKCkKPiArCQkJCSAqIGZvciBhY2Nlc3MgKi8KPiArfTsKPiArCj4gK3N0cnVjdCBmcmFtZV92 ZWN0b3IgKmZyYW1lX3ZlY3Rvcl9jcmVhdGUodW5zaWduZWQgaW50IG5yX2ZyYW1lcyk7Cj4gK3Zv aWQgZnJhbWVfdmVjdG9yX2Rlc3Ryb3koc3RydWN0IGZyYW1lX3ZlY3RvciAqdmVjKTsKPiAraW50 IGdldF92YWRkcl9mcmFtZXModW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgaW50IG5yX3Bm bnMsCj4gKwkJICAgICB1bnNpZ25lZCBpbnQgZ3VwX2ZsYWdzLCBzdHJ1Y3QgZnJhbWVfdmVjdG9y ICp2ZWMpOwo+ICt2b2lkIHB1dF92YWRkcl9mcmFtZXMoc3RydWN0IGZyYW1lX3ZlY3RvciAqdmVj KTsKPiAraW50IGZyYW1lX3ZlY3Rvcl90b19wYWdlcyhzdHJ1Y3QgZnJhbWVfdmVjdG9yICp2ZWMp Owo+ICt2b2lkIGZyYW1lX3ZlY3Rvcl90b19wZm5zKHN0cnVjdCBmcmFtZV92ZWN0b3IgKnZlYyk7 Cj4gKwo+ICtzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBmcmFtZV92ZWN0b3JfY291bnQoc3Ry dWN0IGZyYW1lX3ZlY3RvciAqdmVjKQo+ICt7Cj4gKwlyZXR1cm4gdmVjLT5ucl9mcmFtZXM7Cj4g K30KPiArCj4gK3N0YXRpYyBpbmxpbmUgc3RydWN0IHBhZ2UgKipmcmFtZV92ZWN0b3JfcGFnZXMo c3RydWN0IGZyYW1lX3ZlY3RvciAqdmVjKQo+ICt7Cj4gKwlpZiAodmVjLT5pc19wZm5zKSB7Cj4g KwkJaW50IGVyciA9IGZyYW1lX3ZlY3Rvcl90b19wYWdlcyh2ZWMpOwo+ICsKPiArCQlpZiAoZXJy KQo+ICsJCQlyZXR1cm4gRVJSX1BUUihlcnIpOwo+ICsJfQo+ICsJcmV0dXJuIChzdHJ1Y3QgcGFn ZSAqKikodmVjLT5wdHJzKTsKPiArfQo+ICsKPiArc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25n ICpmcmFtZV92ZWN0b3JfcGZucyhzdHJ1Y3QgZnJhbWVfdmVjdG9yICp2ZWMpCj4gK3sKPiArCWlm ICghdmVjLT5pc19wZm5zKQo+ICsJCWZyYW1lX3ZlY3Rvcl90b19wZm5zKHZlYyk7Cj4gKwlyZXR1 cm4gKHVuc2lnbmVkIGxvbmcgKikodmVjLT5wdHJzKTsKPiArfQo+ICsKPiAgI2VuZGlmIC8qIF9N RURJQV9WSURFT0JVRjJfQ09SRV9IICovCgpQbGVhc2UgcGxhY2UgdGhvc2UgaW50byBhIGluY2x1 ZGUvbWVkaWEvZnJhbWVfdmVjdG9yLmggZmlsZSwgaW5zdGVhZCBvZgptZXJnaW5nIGl0IGRpcmVj dGx5IGF0IHZiMiBjb3JlIGhlYWRlci4KClRoZW4gaW5jbHVkZSB0aGUgbmV3IGhlYWRlciBhdCB2 aWRlb2J1ZjItY29yZS5oIGFuZCBhdCBmcmFtZV92ZWN0b3IuYy4KCldpdGggc3VjaCBjaGFuZ2Vz OgoKQWNrZWQtYnk6IE1hdXJvIENhcnZhbGhvIENoZWhhYiA8bWNoZWhhYitodWF3ZWlAa2VybmVs Lm9yZz4KCj4gZGlmZiAtLWdpdCBhL21tL0tjb25maWcgYi9tbS9LY29uZmlnCj4gaW5kZXggNmM5 NzQ4ODhmODZmLi5kYTZjOTQzZmU5ZjEgMTAwNjQ0Cj4gLS0tIGEvbW0vS2NvbmZpZwo+ICsrKyBi L21tL0tjb25maWcKPiBAQCAtODE1LDkgKzgxNSw2IEBAIGNvbmZpZyBERVZJQ0VfUFJJVkFURQo+ ICAJICBtZW1vcnk7IGkuZS4sIG1lbW9yeSB0aGF0IGlzIG9ubHkgYWNjZXNzaWJsZSBmcm9tIHRo ZSBkZXZpY2UgKG9yCj4gIAkgIGdyb3VwIG9mIGRldmljZXMpLiBZb3UgbGlrZWx5IGFsc28gd2Fu dCB0byBzZWxlY3QgSE1NX01JUlJPUi4KPiAgCj4gLWNvbmZpZyBGUkFNRV9WRUNUT1IKPiAtCWJv b2wKPiAtCj4gIGNvbmZpZyBBUkNIX1VTRVNfSElHSF9WTUFfRkxBR1MKPiAgCWJvb2wKPiAgY29u ZmlnIEFSQ0hfSEFTX1BLRVlTCj4gZGlmZiAtLWdpdCBhL21tL01ha2VmaWxlIGIvbW0vTWFrZWZp bGUKPiBpbmRleCBkNTY0OWYxYzEyYzAuLmEwMjVmZDZjNmFmZCAxMDA2NDQKPiAtLS0gYS9tbS9N YWtlZmlsZQo+ICsrKyBiL21tL01ha2VmaWxlCj4gQEAgLTExMSw3ICsxMTEsNiBAQCBvYmotJChD T05GSUdfUEFHRV9FWFRFTlNJT04pICs9IHBhZ2VfZXh0Lm8KPiAgb2JqLSQoQ09ORklHX0NNQV9E RUJVR0ZTKSArPSBjbWFfZGVidWcubwo+ICBvYmotJChDT05GSUdfVVNFUkZBVUxURkQpICs9IHVz ZXJmYXVsdGZkLm8KPiAgb2JqLSQoQ09ORklHX0lETEVfUEFHRV9UUkFDS0lORykgKz0gcGFnZV9p ZGxlLm8KPiAtb2JqLSQoQ09ORklHX0ZSQU1FX1ZFQ1RPUikgKz0gZnJhbWVfdmVjdG9yLm8KPiAg b2JqLSQoQ09ORklHX0RFQlVHX1BBR0VfUkVGKSArPSBkZWJ1Z19wYWdlX3JlZi5vCj4gIG9iai0k KENPTkZJR19IQVJERU5FRF9VU0VSQ09QWSkgKz0gdXNlcmNvcHkubwo+ICBvYmotJChDT05GSUdf UEVSQ1BVX1NUQVRTKSArPSBwZXJjcHUtc3RhdHMubwoKCgpUaGFua3MsCk1hdXJvCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVs IG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDov L2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg== 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=-11.3 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_2 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 053ACC433E7 for ; Fri, 9 Oct 2020 10:14:28 +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 8651522276 for ; Fri, 9 Oct 2020 10:14:27 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="entYTMU5" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8651522276 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org 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 BD4FE6EC97; Fri, 9 Oct 2020 10:14:26 +0000 (UTC) Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4A0996EC97 for ; Fri, 9 Oct 2020 10:14:25 +0000 (UTC) Received: from coco.lan (ip5f5ad5d0.dynamic.kabel-deutschland.de [95.90.213.208]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id AEF062226B; Fri, 9 Oct 2020 10:14:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1602238465; bh=HLpDhcg7JCIZWffZIBZCvMxe2w6BmkPx1lvxzb/jlAA=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=entYTMU57H8h4pHlBfmfx61IZZz86qZXtKIa3/8kyOsu7AJtmiUWy0DpXZ8c355dF oxwMgMeoIfe32cPPr8yifCD9zFte1J/ueRlcm5tjhBiUii2B/j6Ox0Z6+f+auAMpj9 zx6ZdvznIgHatn9Me42Sr1LkAeyYY1zjSs8WJ9mw= Date: Fri, 9 Oct 2020 12:14:17 +0200 From: Mauro Carvalho Chehab To: Daniel Vetter Subject: Re: [PATCH v2 06/17] media: videobuf2: Move frame_vector into media subsystem Message-ID: <20201009121417.115db7d9@coco.lan> In-Reply-To: <20201009075934.3509076-7-daniel.vetter@ffwll.ch> References: <20201009075934.3509076-1-daniel.vetter@ffwll.ch> <20201009075934.3509076-7-daniel.vetter@ffwll.ch> X-Mailer: Claws Mail 3.17.6 (GTK+ 2.24.32; x86_64-redhat-linux-gnu) 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: =?UTF-8?B?SsOpcsO0bWU=?= Glisse , linux-s390@vger.kernel.org, linux-samsung-soc@vger.kernel.org, Jan Kara , Pawel Osciak , kvm@vger.kernel.org, Jason Gunthorpe , John Hubbard , LKML , DRI Development , Tomasz Figa , linux-mm@kvack.org, Kyungmin Park , 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" RW0gRnJpLCAgOSBPY3QgMjAyMCAwOTo1OToyMyArMDIwMApEYW5pZWwgVmV0dGVyIDxkYW5pZWwu dmV0dGVyQGZmd2xsLmNoPiBlc2NyZXZldToKCj4gSXQncyB0aGUgb25seSB1c2VyLiBUaGlzIGFs c28gZ2FyYmFnZSBjb2xsZWN0cyB0aGUgQ09ORklHX0ZSQU1FX1ZFQ1RPUgo+IHN5bWJvbCBmcm9t IGFsbCBvdmVyIHRoZSB0cmVlICh3ZWxsIGp1c3Qgb25lIHBsYWNlLCBzb21laG93IG9tYXAgbWVk aWEKPiBkcml2ZXIgc3RpbGwgaGFkIHRoaXMgaW4gaXRzIEtjb25maWcsIGRlc3BpdGUgbm90IHVz aW5nIGl0KS4KPiAKPiBSZXZpZXdlZC1ieTogSm9obiBIdWJiYXJkIDxqaHViYmFyZEBudmlkaWEu Y29tPgo+IFNpZ25lZC1vZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwu Y29tPgo+IENjOiBKYXNvbiBHdW50aG9ycGUgPGpnZ0B6aWVwZS5jYT4KPiBDYzogUGF3ZWwgT3Nj aWFrIDxwYXdlbEBvc2NpYWsuY29tPgo+IENjOiBNYXJlayBTenlwcm93c2tpIDxtLnN6eXByb3dz a2lAc2Ftc3VuZy5jb20+Cj4gQ2M6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3Vu Zy5jb20+Cj4gQ2M6IFRvbWFzeiBGaWdhIDx0ZmlnYUBjaHJvbWl1bS5vcmc+Cj4gQ2M6IE1hdXJv IENhcnZhbGhvIENoZWhhYiA8bWNoZWhhYkBrZXJuZWwub3JnPgo+IENjOiBBbmRyZXcgTW9ydG9u IDxha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnPgo+IENjOiBKb2huIEh1YmJhcmQgPGpodWJiYXJk QG52aWRpYS5jb20+Cj4gQ2M6IErDqXLDtG1lIEdsaXNzZSA8amdsaXNzZUByZWRoYXQuY29tPgo+ IENjOiBKYW4gS2FyYSA8amFja0BzdXNlLmN6Pgo+IENjOiBEYW4gV2lsbGlhbXMgPGRhbi5qLndp bGxpYW1zQGludGVsLmNvbT4KPiBDYzogbGludXgtbW1Aa3ZhY2sub3JnCj4gQ2M6IGxpbnV4LWFy bS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwo+IENjOiBsaW51eC1zYW1zdW5nLXNvY0B2Z2Vy Lmtlcm5lbC5vcmcKPiBDYzogbGludXgtbWVkaWFAdmdlci5rZXJuZWwub3JnCj4gQ2M6IERhbmll bCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gLS0tCj4gIGRyaXZlcnMvbWVkaWEv Y29tbW9uL3ZpZGVvYnVmMi9LY29uZmlnICAgICAgICB8ICAxIC0KPiAgZHJpdmVycy9tZWRpYS9j b21tb24vdmlkZW9idWYyL01ha2VmaWxlICAgICAgIHwgIDEgKwo+ICAuLi4vbWVkaWEvY29tbW9u L3ZpZGVvYnVmMn0vZnJhbWVfdmVjdG9yLmMgICAgfCAgMiArCj4gIGRyaXZlcnMvbWVkaWEvcGxh dGZvcm0vb21hcC9LY29uZmlnICAgICAgICAgICB8ICAxIC0KPiAgaW5jbHVkZS9saW51eC9tbS5o ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNDIgLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICBp bmNsdWRlL21lZGlhL3ZpZGVvYnVmMi1jb3JlLmggICAgICAgICAgICAgICAgfCA0MiArKysrKysr KysrKysrKysrKysrCj4gIG1tL0tjb25maWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAzIC0tCj4gIG1tL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAxIC0KPiAgOCBmaWxlcyBjaGFuZ2VkLCA0NSBpbnNlcnRpb25zKCspLCA0OCBkZWxl dGlvbnMoLSkKPiAgcmVuYW1lIHttbSA9PiBkcml2ZXJzL21lZGlhL2NvbW1vbi92aWRlb2J1ZjJ9 L2ZyYW1lX3ZlY3Rvci5jICg5OSUpCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvY29t bW9uL3ZpZGVvYnVmMi9LY29uZmlnIGIvZHJpdmVycy9tZWRpYS9jb21tb24vdmlkZW9idWYyL0tj b25maWcKPiBpbmRleCBlZGJjOTllYmJhODcuLmQyMjIzYTEyYzk1ZiAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL21lZGlhL2NvbW1vbi92aWRlb2J1ZjIvS2NvbmZpZwo+ICsrKyBiL2RyaXZlcnMvbWVk aWEvY29tbW9uL3ZpZGVvYnVmMi9LY29uZmlnCj4gQEAgLTksNyArOSw2IEBAIGNvbmZpZyBWSURF T0JVRjJfVjRMMgo+ICAKPiAgY29uZmlnIFZJREVPQlVGMl9NRU1PUFMKPiAgCXRyaXN0YXRlCj4g LQlzZWxlY3QgRlJBTUVfVkVDVE9SCj4gIAo+ICBjb25maWcgVklERU9CVUYyX0RNQV9DT05USUcK PiAgCXRyaXN0YXRlCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvY29tbW9uL3ZpZGVvYnVm Mi9NYWtlZmlsZSBiL2RyaXZlcnMvbWVkaWEvY29tbW9uL3ZpZGVvYnVmMi9NYWtlZmlsZQo+IGlu ZGV4IDc3YmViZThiMjAyZi4uNTQzMDZmOGQwOTZjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbWVk aWEvY29tbW9uL3ZpZGVvYnVmMi9NYWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMvbWVkaWEvY29tbW9u L3ZpZGVvYnVmMi9NYWtlZmlsZQo+IEBAIC0xLDUgKzEsNiBAQAo+ICAjIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBHUEwtMi4wCj4gIHZpZGVvYnVmMi1jb21tb24tb2JqcyA6PSB2aWRlb2J1ZjIt Y29yZS5vCj4gK3ZpZGVvYnVmMi1jb21tb24tb2JqcyArPSBmcmFtZV92ZWN0b3Iubwo+ICAKPiAg aWZlcSAoJChDT05GSUdfVFJBQ0VQT0lOVFMpLHkpCj4gICAgdmlkZW9idWYyLWNvbW1vbi1vYmpz ICs9IHZiMi10cmFjZS5vCj4gZGlmZiAtLWdpdCBhL21tL2ZyYW1lX3ZlY3Rvci5jIGIvZHJpdmVy cy9tZWRpYS9jb21tb24vdmlkZW9idWYyL2ZyYW1lX3ZlY3Rvci5jCj4gc2ltaWxhcml0eSBpbmRl eCA5OSUKPiByZW5hbWUgZnJvbSBtbS9mcmFtZV92ZWN0b3IuYwo+IHJlbmFtZSB0byBkcml2ZXJz L21lZGlhL2NvbW1vbi92aWRlb2J1ZjIvZnJhbWVfdmVjdG9yLmMKPiBpbmRleCBkNDQ3NzllNTYz MTMuLjJiMGI5Nzc2MWQxNSAxMDA2NDQKPiAtLS0gYS9tbS9mcmFtZV92ZWN0b3IuYwo+ICsrKyBi L2RyaXZlcnMvbWVkaWEvY29tbW9uL3ZpZGVvYnVmMi9mcmFtZV92ZWN0b3IuYwo+IEBAIC04LDYg KzgsOCBAQAo+ICAjaW5jbHVkZSA8bGludXgvcGFnZW1hcC5oPgo+ICAjaW5jbHVkZSA8bGludXgv c2NoZWQuaD4KPiAgCj4gKyNpbmNsdWRlIDxtZWRpYS92aWRlb2J1ZjItY29yZS5oPgo+ICsKClNl ZSBteSBjb21tZW50IGJlbG93Li4uCgo+ICAvKioKPiAgICogZ2V0X3ZhZGRyX2ZyYW1lcygpIC0g bWFwIHZpcnR1YWwgYWRkcmVzc2VzIHRvIHBmbnMKPiAgICogQHN0YXJ0OglzdGFydGluZyB1c2Vy IGFkZHJlc3MKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9vbWFwL0tjb25m aWcgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL29tYXAvS2NvbmZpZwo+IGluZGV4IGY3M2I1ODkz MjIwZC4uZGUxNmRlNDZjMGY0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0v b21hcC9LY29uZmlnCj4gKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9vbWFwL0tjb25maWcK PiBAQCAtMTIsNiArMTIsNSBAQCBjb25maWcgVklERU9fT01BUDJfVk9VVAo+ICAJZGVwZW5kcyBv biBWSURFT19WNEwyCj4gIAlzZWxlY3QgVklERU9CVUYyX0RNQV9DT05USUcKPiAgCXNlbGVjdCBP TUFQMl9WUkZCIGlmIEFSQ0hfT01BUDIgfHwgQVJDSF9PTUFQMwo+IC0Jc2VsZWN0IEZSQU1FX1ZF Q1RPUgo+ICAJaGVscAo+ICAJICBWNEwyIERpc3BsYXkgZHJpdmVyIHN1cHBvcnQgZm9yIE9NQVAy LzMgYmFzZWQgYm9hcmRzLgo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21tLmggYi9pbmNs dWRlL2xpbnV4L21tLmgKPiBpbmRleCAxNmI3OTlhMDUyMmMuLmFjZDYwZmJmMWE1YSAxMDA2NDQK PiAtLS0gYS9pbmNsdWRlL2xpbnV4L21tLmgKPiArKysgYi9pbmNsdWRlL2xpbnV4L21tLmgKPiBA QCAtMTc0Myw0OCArMTc0Myw2IEBAIGludCBhY2NvdW50X2xvY2tlZF92bShzdHJ1Y3QgbW1fc3Ry dWN0ICptbSwgdW5zaWduZWQgbG9uZyBwYWdlcywgYm9vbCBpbmMpOwo+ICBpbnQgX19hY2NvdW50 X2xvY2tlZF92bShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBwYWdlcywgYm9v bCBpbmMsCj4gIAkJCXN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywgYm9vbCBieXBhc3NfcmxpbSk7 Cj4gIAo+IC0vKiBDb250YWluZXIgZm9yIHBpbm5lZCBwZm5zIC8gcGFnZXMgKi8KPiAtc3RydWN0 IGZyYW1lX3ZlY3RvciB7Cj4gLQl1bnNpZ25lZCBpbnQgbnJfYWxsb2NhdGVkOwkvKiBOdW1iZXIg b2YgZnJhbWVzIHdlIGhhdmUgc3BhY2UgZm9yICovCj4gLQl1bnNpZ25lZCBpbnQgbnJfZnJhbWVz OwkvKiBOdW1iZXIgb2YgZnJhbWVzIHN0b3JlZCBpbiBwdHJzIGFycmF5ICovCj4gLQlib29sIGdv dF9yZWY7CQkvKiBEaWQgd2UgcGluIHBhZ2VzIGJ5IGdldHRpbmcgcGFnZSByZWY/ICovCj4gLQli b29sIGlzX3BmbnM7CQkvKiBEb2VzIGFycmF5IGNvbnRhaW4gcGFnZXMgb3IgcGZucz8gKi8KPiAt CXZvaWQgKnB0cnNbXTsJCS8qIEFycmF5IG9mIHBpbm5lZCBwZm5zIC8gcGFnZXMuIFVzZQo+IC0J CQkJICogcGZuc192ZWN0b3JfcGFnZXMoKSBvciBwZm5zX3ZlY3Rvcl9wZm5zKCkKPiAtCQkJCSAq IGZvciBhY2Nlc3MgKi8KPiAtfTsKPiAtCj4gLXN0cnVjdCBmcmFtZV92ZWN0b3IgKmZyYW1lX3Zl Y3Rvcl9jcmVhdGUodW5zaWduZWQgaW50IG5yX2ZyYW1lcyk7Cj4gLXZvaWQgZnJhbWVfdmVjdG9y X2Rlc3Ryb3koc3RydWN0IGZyYW1lX3ZlY3RvciAqdmVjKTsKPiAtaW50IGdldF92YWRkcl9mcmFt ZXModW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgaW50IG5yX3BmbnMsCj4gLQkJICAgICB1 bnNpZ25lZCBpbnQgZ3VwX2ZsYWdzLCBzdHJ1Y3QgZnJhbWVfdmVjdG9yICp2ZWMpOwo+IC12b2lk IHB1dF92YWRkcl9mcmFtZXMoc3RydWN0IGZyYW1lX3ZlY3RvciAqdmVjKTsKPiAtaW50IGZyYW1l X3ZlY3Rvcl90b19wYWdlcyhzdHJ1Y3QgZnJhbWVfdmVjdG9yICp2ZWMpOwo+IC12b2lkIGZyYW1l X3ZlY3Rvcl90b19wZm5zKHN0cnVjdCBmcmFtZV92ZWN0b3IgKnZlYyk7Cj4gLQo+IC1zdGF0aWMg aW5saW5lIHVuc2lnbmVkIGludCBmcmFtZV92ZWN0b3JfY291bnQoc3RydWN0IGZyYW1lX3ZlY3Rv ciAqdmVjKQo+IC17Cj4gLQlyZXR1cm4gdmVjLT5ucl9mcmFtZXM7Cj4gLX0KPiAtCj4gLXN0YXRp YyBpbmxpbmUgc3RydWN0IHBhZ2UgKipmcmFtZV92ZWN0b3JfcGFnZXMoc3RydWN0IGZyYW1lX3Zl Y3RvciAqdmVjKQo+IC17Cj4gLQlpZiAodmVjLT5pc19wZm5zKSB7Cj4gLQkJaW50IGVyciA9IGZy YW1lX3ZlY3Rvcl90b19wYWdlcyh2ZWMpOwo+IC0KPiAtCQlpZiAoZXJyKQo+IC0JCQlyZXR1cm4g RVJSX1BUUihlcnIpOwo+IC0JfQo+IC0JcmV0dXJuIChzdHJ1Y3QgcGFnZSAqKikodmVjLT5wdHJz KTsKPiAtfQo+IC0KPiAtc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nICpmcmFtZV92ZWN0b3Jf cGZucyhzdHJ1Y3QgZnJhbWVfdmVjdG9yICp2ZWMpCj4gLXsKPiAtCWlmICghdmVjLT5pc19wZm5z KQo+IC0JCWZyYW1lX3ZlY3Rvcl90b19wZm5zKHZlYyk7Cj4gLQlyZXR1cm4gKHVuc2lnbmVkIGxv bmcgKikodmVjLT5wdHJzKTsKPiAtfQo+IC0KPiAgc3RydWN0IGt2ZWM7Cj4gIGludCBnZXRfa2Vy bmVsX3BhZ2VzKGNvbnN0IHN0cnVjdCBrdmVjICppb3YsIGludCBucl9wYWdlcywgaW50IHdyaXRl LAo+ICAJCQlzdHJ1Y3QgcGFnZSAqKnBhZ2VzKTsKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tZWRp YS92aWRlb2J1ZjItY29yZS5oIGIvaW5jbHVkZS9tZWRpYS92aWRlb2J1ZjItY29yZS5oCj4gaW5k ZXggYmJiM2YyNmZiZGU5Li5hMmU3NWNhMDMzNGYgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9tZWRp YS92aWRlb2J1ZjItY29yZS5oCj4gKysrIGIvaW5jbHVkZS9tZWRpYS92aWRlb2J1ZjItY29yZS5o Cj4gQEAgLTEyNTQsNCArMTI1NCw0NiBAQCBib29sIHZiMl9yZXF1ZXN0X29iamVjdF9pc19idWZm ZXIoc3RydWN0IG1lZGlhX3JlcXVlc3Rfb2JqZWN0ICpvYmopOwo+ICAgKi8KPiAgdW5zaWduZWQg aW50IHZiMl9yZXF1ZXN0X2J1ZmZlcl9jbnQoc3RydWN0IG1lZGlhX3JlcXVlc3QgKnJlcSk7Cj4g IAo+ICsvKiBDb250YWluZXIgZm9yIHBpbm5lZCBwZm5zIC8gcGFnZXMgaW4gZnJhbWVfdmVjdG9y LmMgKi8KPiArc3RydWN0IGZyYW1lX3ZlY3RvciB7Cj4gKwl1bnNpZ25lZCBpbnQgbnJfYWxsb2Nh dGVkOwkvKiBOdW1iZXIgb2YgZnJhbWVzIHdlIGhhdmUgc3BhY2UgZm9yICovCj4gKwl1bnNpZ25l ZCBpbnQgbnJfZnJhbWVzOwkvKiBOdW1iZXIgb2YgZnJhbWVzIHN0b3JlZCBpbiBwdHJzIGFycmF5 ICovCj4gKwlib29sIGdvdF9yZWY7CQkvKiBEaWQgd2UgcGluIHBhZ2VzIGJ5IGdldHRpbmcgcGFn ZSByZWY/ICovCj4gKwlib29sIGlzX3BmbnM7CQkvKiBEb2VzIGFycmF5IGNvbnRhaW4gcGFnZXMg b3IgcGZucz8gKi8KPiArCXZvaWQgKnB0cnNbXTsJCS8qIEFycmF5IG9mIHBpbm5lZCBwZm5zIC8g cGFnZXMuIFVzZQo+ICsJCQkJICogcGZuc192ZWN0b3JfcGFnZXMoKSBvciBwZm5zX3ZlY3Rvcl9w Zm5zKCkKPiArCQkJCSAqIGZvciBhY2Nlc3MgKi8KPiArfTsKPiArCj4gK3N0cnVjdCBmcmFtZV92 ZWN0b3IgKmZyYW1lX3ZlY3Rvcl9jcmVhdGUodW5zaWduZWQgaW50IG5yX2ZyYW1lcyk7Cj4gK3Zv aWQgZnJhbWVfdmVjdG9yX2Rlc3Ryb3koc3RydWN0IGZyYW1lX3ZlY3RvciAqdmVjKTsKPiAraW50 IGdldF92YWRkcl9mcmFtZXModW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgaW50IG5yX3Bm bnMsCj4gKwkJICAgICB1bnNpZ25lZCBpbnQgZ3VwX2ZsYWdzLCBzdHJ1Y3QgZnJhbWVfdmVjdG9y ICp2ZWMpOwo+ICt2b2lkIHB1dF92YWRkcl9mcmFtZXMoc3RydWN0IGZyYW1lX3ZlY3RvciAqdmVj KTsKPiAraW50IGZyYW1lX3ZlY3Rvcl90b19wYWdlcyhzdHJ1Y3QgZnJhbWVfdmVjdG9yICp2ZWMp Owo+ICt2b2lkIGZyYW1lX3ZlY3Rvcl90b19wZm5zKHN0cnVjdCBmcmFtZV92ZWN0b3IgKnZlYyk7 Cj4gKwo+ICtzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBmcmFtZV92ZWN0b3JfY291bnQoc3Ry dWN0IGZyYW1lX3ZlY3RvciAqdmVjKQo+ICt7Cj4gKwlyZXR1cm4gdmVjLT5ucl9mcmFtZXM7Cj4g K30KPiArCj4gK3N0YXRpYyBpbmxpbmUgc3RydWN0IHBhZ2UgKipmcmFtZV92ZWN0b3JfcGFnZXMo c3RydWN0IGZyYW1lX3ZlY3RvciAqdmVjKQo+ICt7Cj4gKwlpZiAodmVjLT5pc19wZm5zKSB7Cj4g KwkJaW50IGVyciA9IGZyYW1lX3ZlY3Rvcl90b19wYWdlcyh2ZWMpOwo+ICsKPiArCQlpZiAoZXJy KQo+ICsJCQlyZXR1cm4gRVJSX1BUUihlcnIpOwo+ICsJfQo+ICsJcmV0dXJuIChzdHJ1Y3QgcGFn ZSAqKikodmVjLT5wdHJzKTsKPiArfQo+ICsKPiArc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25n ICpmcmFtZV92ZWN0b3JfcGZucyhzdHJ1Y3QgZnJhbWVfdmVjdG9yICp2ZWMpCj4gK3sKPiArCWlm ICghdmVjLT5pc19wZm5zKQo+ICsJCWZyYW1lX3ZlY3Rvcl90b19wZm5zKHZlYyk7Cj4gKwlyZXR1 cm4gKHVuc2lnbmVkIGxvbmcgKikodmVjLT5wdHJzKTsKPiArfQo+ICsKPiAgI2VuZGlmIC8qIF9N RURJQV9WSURFT0JVRjJfQ09SRV9IICovCgpQbGVhc2UgcGxhY2UgdGhvc2UgaW50byBhIGluY2x1 ZGUvbWVkaWEvZnJhbWVfdmVjdG9yLmggZmlsZSwgaW5zdGVhZCBvZgptZXJnaW5nIGl0IGRpcmVj dGx5IGF0IHZiMiBjb3JlIGhlYWRlci4KClRoZW4gaW5jbHVkZSB0aGUgbmV3IGhlYWRlciBhdCB2 aWRlb2J1ZjItY29yZS5oIGFuZCBhdCBmcmFtZV92ZWN0b3IuYy4KCldpdGggc3VjaCBjaGFuZ2Vz OgoKQWNrZWQtYnk6IE1hdXJvIENhcnZhbGhvIENoZWhhYiA8bWNoZWhhYitodWF3ZWlAa2VybmVs Lm9yZz4KCj4gZGlmZiAtLWdpdCBhL21tL0tjb25maWcgYi9tbS9LY29uZmlnCj4gaW5kZXggNmM5 NzQ4ODhmODZmLi5kYTZjOTQzZmU5ZjEgMTAwNjQ0Cj4gLS0tIGEvbW0vS2NvbmZpZwo+ICsrKyBi L21tL0tjb25maWcKPiBAQCAtODE1LDkgKzgxNSw2IEBAIGNvbmZpZyBERVZJQ0VfUFJJVkFURQo+ ICAJICBtZW1vcnk7IGkuZS4sIG1lbW9yeSB0aGF0IGlzIG9ubHkgYWNjZXNzaWJsZSBmcm9tIHRo ZSBkZXZpY2UgKG9yCj4gIAkgIGdyb3VwIG9mIGRldmljZXMpLiBZb3UgbGlrZWx5IGFsc28gd2Fu dCB0byBzZWxlY3QgSE1NX01JUlJPUi4KPiAgCj4gLWNvbmZpZyBGUkFNRV9WRUNUT1IKPiAtCWJv b2wKPiAtCj4gIGNvbmZpZyBBUkNIX1VTRVNfSElHSF9WTUFfRkxBR1MKPiAgCWJvb2wKPiAgY29u ZmlnIEFSQ0hfSEFTX1BLRVlTCj4gZGlmZiAtLWdpdCBhL21tL01ha2VmaWxlIGIvbW0vTWFrZWZp bGUKPiBpbmRleCBkNTY0OWYxYzEyYzAuLmEwMjVmZDZjNmFmZCAxMDA2NDQKPiAtLS0gYS9tbS9N YWtlZmlsZQo+ICsrKyBiL21tL01ha2VmaWxlCj4gQEAgLTExMSw3ICsxMTEsNiBAQCBvYmotJChD T05GSUdfUEFHRV9FWFRFTlNJT04pICs9IHBhZ2VfZXh0Lm8KPiAgb2JqLSQoQ09ORklHX0NNQV9E RUJVR0ZTKSArPSBjbWFfZGVidWcubwo+ICBvYmotJChDT05GSUdfVVNFUkZBVUxURkQpICs9IHVz ZXJmYXVsdGZkLm8KPiAgb2JqLSQoQ09ORklHX0lETEVfUEFHRV9UUkFDS0lORykgKz0gcGFnZV9p ZGxlLm8KPiAtb2JqLSQoQ09ORklHX0ZSQU1FX1ZFQ1RPUikgKz0gZnJhbWVfdmVjdG9yLm8KPiAg b2JqLSQoQ09ORklHX0RFQlVHX1BBR0VfUkVGKSArPSBkZWJ1Z19wYWdlX3JlZi5vCj4gIG9iai0k KENPTkZJR19IQVJERU5FRF9VU0VSQ09QWSkgKz0gdXNlcmNvcHkubwo+ICBvYmotJChDT05GSUdf UEVSQ1BVX1NUQVRTKSArPSBwZXJjcHUtc3RhdHMubwoKCgpUaGFua3MsCk1hdXJvCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=