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=-18.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 255EFC83039 for ; Fri, 27 Nov 2020 16:43:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E22C322240 for ; Fri, 27 Nov 2020 16:43:14 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="ha181PMU" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731722AbgK0QmJ (ORCPT ); Fri, 27 Nov 2020 11:42:09 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54008 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731718AbgK0QmI (ORCPT ); Fri, 27 Nov 2020 11:42:08 -0500 Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com [IPv6:2a00:1450:4864:20::441]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F1D88C061A47 for ; Fri, 27 Nov 2020 08:42:06 -0800 (PST) Received: by mail-wr1-x441.google.com with SMTP id p8so6203110wrx.5 for ; Fri, 27 Nov 2020 08:42:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=w2Q1pOB9trUJPQDy5OKnKzQR5GEGN6Jdmegbu/U46M8=; b=ha181PMU14tnqJzxvZJOkafgBn7DCRL8b0fMlQzaAD3e8sxJUDfPp3AZMiuiiqMLc4 gpgkm6tPoWmYnSvcJuCXfrUTCNsp+P/xOT0W4I15Qcs9nZ1ynlYaH6xvm8kuZx1sfJCt YT2g6JN2DXBesptjFvII4YfRU5w/uEJWzmNUA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=w2Q1pOB9trUJPQDy5OKnKzQR5GEGN6Jdmegbu/U46M8=; b=E66rDpWHy0XFRs+5peunGHNnHKDWWFhdHQG/oQMuuUSUAchNLtmWwISGIPNUJxbXl8 XCE+y/rsmUAhCKX4d7OHSaxd4AWjEjvKqftJ0L5jvyMsms8ffM89j6FTMYgJEMAkuKfe 5ZuFHqYB1yFhl+fwH7fHDUf6pDOXzzZ2M60Nrqj/lVm2F0iKtOBh6KvIHCkxiU0nNgvI 6ZxzQwqGzPfUQTsKEL8WBGgP2inoQFgY2wLc5DycfBg9K5KJHcyFSxQr9uncQuhMqFKu nkD94BiIaUSUFhlQRu23BlzbbDup1MmdOI9QpQ2hoorcaSrH8jHcNBUpCrjLFDdLvEDb wWNw== X-Gm-Message-State: AOAM5331rXf2yaKF2rc9yzLkDPl2B9a2beY34B9wHx8sCj5CHIJvgEqG Uniy+Dc8MzKtC8pv7/LZ0xwa5w== X-Google-Smtp-Source: ABdhPJzirLVUloiZyWUcvbRjNTa38292ObgLcrEpli4VQyrqKQJA4U/EUUEnxHc9Y1wLhDDjZIvoIw== X-Received: by 2002:adf:e449:: with SMTP id t9mr11806993wrm.257.1606495325700; Fri, 27 Nov 2020 08:42:05 -0800 (PST) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id q12sm14859078wrx.86.2020.11.27.08.42.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Nov 2020 08:42:05 -0800 (PST) From: Daniel Vetter To: DRI Development , LKML Cc: kvm@vger.kernel.org, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-media@vger.kernel.org, Daniel Vetter , John Hubbard , Hans Verkuil , Mauro Carvalho Chehab , Tomasz Figa , Daniel Vetter , Jason Gunthorpe , Pawel Osciak , Marek Szyprowski , Kyungmin Park , Mauro Carvalho Chehab , Andrew Morton , =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= , Jan Kara , Dan Williams Subject: [PATCH v7 06/17] media: videobuf2: Move frame_vector into media subsystem Date: Fri, 27 Nov 2020 17:41:20 +0100 Message-Id: <20201127164131.2244124-7-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201127164131.2244124-1-daniel.vetter@ffwll.ch> References: <20201127164131.2244124-1-daniel.vetter@ffwll.ch> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-samsung-soc@vger.kernel.org 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). Reviewed-by: John Hubbard Acked-by: Hans Verkuil Acked-by: Mauro Carvalho Chehab Acked-by: Tomasz Figa Signed-off-by: Daniel Vetter Cc: Jason Gunthorpe Cc: Pawel Osciak Cc: Marek Szyprowski Cc: Kyungmin Park Cc: Tomasz Figa Cc: Mauro Carvalho Chehab Cc: Andrew Morton Cc: John Hubbard Cc: Jérôme Glisse Cc: Jan Kara Cc: Dan Williams Cc: linux-mm@kvack.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-samsung-soc@vger.kernel.org Cc: linux-media@vger.kernel.org Cc: Daniel Vetter Signed-off-by: Daniel Vetter -- v3: - Create a new frame_vector.h header for this (Mauro) v5: - Rebase over changes in frame-vector.c from Tomasz review. --- 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/frame_vector.h | 47 +++++++++++++++++++ include/media/videobuf2-core.h | 1 + mm/Kconfig | 3 -- mm/Makefile | 1 - 9 files changed, 51 insertions(+), 48 deletions(-) rename {mm => drivers/media/common/videobuf2}/frame_vector.c (99%) create mode 100644 include/media/frame_vector.h diff --git a/drivers/media/common/videobuf2/Kconfig b/drivers/media/common/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 config VIDEOBUF2_MEMOPS tristate - select FRAME_VECTOR config VIDEOBUF2_DMA_CONTIG tristate diff --git a/drivers/media/common/videobuf2/Makefile b/drivers/media/common/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 := videobuf2-core.o +videobuf2-common-objs += frame_vector.o ifeq ($(CONFIG_TRACEPOINTS),y) videobuf2-common-objs += vb2-trace.o diff --git a/mm/frame_vector.c b/drivers/media/common/videobuf2/frame_vector.c similarity index 99% rename from mm/frame_vector.c rename to drivers/media/common/videobuf2/frame_vector.c index f8c34b895c76..a0e65481a201 100644 --- a/mm/frame_vector.c +++ b/drivers/media/common/videobuf2/frame_vector.c @@ -8,6 +8,8 @@ #include #include +#include + /** * 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 29a1941cd255..c4cc8ea1402c 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -1751,48 +1751,6 @@ int account_locked_vm(struct mm_struct *mm, unsigned long pages, bool inc); int __account_locked_vm(struct mm_struct *mm, unsigned long pages, bool inc, struct task_struct *task, bool bypass_rlim); -/* 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, - 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 = 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/frame_vector.h b/include/media/frame_vector.h new file mode 100644 index 000000000000..bfed1710dc24 --- /dev/null +++ b/include/media/frame_vector.h @@ -0,0 +1,47 @@ +// SPDX-License-Identifier: GPL-2.0 +#ifndef _MEDIA_FRAME_VECTOR_H +#define _MEDIA_FRAME_VECTOR_H + +/* 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, + 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 = 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_FRAME_VECTOR_H */ diff --git a/include/media/videobuf2-core.h b/include/media/videobuf2-core.h index bbb3f26fbde9..d045e3a5a1d8 100644 --- a/include/media/videobuf2-core.h +++ b/include/media/videobuf2-core.h @@ -18,6 +18,7 @@ #include #include #include +#include #define VB2_MAX_FRAME (32) #define VB2_MAX_PLANES (8) diff --git a/mm/Kconfig b/mm/Kconfig index d42423f884a7..0dcff24cba53 100644 --- a/mm/Kconfig +++ b/mm/Kconfig @@ -819,9 +819,6 @@ config DEVICE_PRIVATE config VMAP_PFN bool -config FRAME_VECTOR - bool - config ARCH_USES_HIGH_VMA_FLAGS bool config ARCH_HAS_PKEYS diff --git a/mm/Makefile b/mm/Makefile index d73aed0fc99c..db41fff05038 100644 --- a/mm/Makefile +++ b/mm/Makefile @@ -110,7 +110,6 @@ obj-$(CONFIG_PAGE_EXTENSION) += page_ext.o obj-$(CONFIG_CMA_DEBUGFS) += cma_debug.o obj-$(CONFIG_USERFAULTFD) += userfaultfd.o obj-$(CONFIG_IDLE_PAGE_TRACKING) += page_idle.o -obj-$(CONFIG_FRAME_VECTOR) += frame_vector.o obj-$(CONFIG_DEBUG_PAGE_REF) += debug_page_ref.o obj-$(CONFIG_HARDENED_USERCOPY) += usercopy.o obj-$(CONFIG_PERCPU_STATS) += percpu-stats.o -- 2.29.2 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=-16.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 95F19C5519F for ; Fri, 27 Nov 2020 16:46:02 +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 3F92B20657 for ; Fri, 27 Nov 2020 16:46:02 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="j/8zVWSR"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="ha181PMU" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3F92B20657 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=gmCUHIcbZhx5oi3dDiMINMFAowgD0RYDT9X6Y09xTfU=; b=j/8zVWSRmyoRZP3bYn2wASEwN Du2V/Ap96nC+/tiV2MOCkEKU2Vs5mv0S7U6wZ02t8jREAZ12O98WAMroVEjcfqeV62fyEokc1JMo1 Pe7WiA952i0riVPdPQ39rx6HdQ1tjX2FElnzrRaOKKfZ2MVcSz3ngRbhLW9k1PRvolG/+CzWBfZom J/UqoyHZxFyuW3Y0u3IhHZoHfikX2xbllrCrYgOtnMirUaVQQs6eIIN2kvTRJUxgCQie+No9KeOJP G0p4DEN73HMIfij/OJK3IMYx9/f0pjae/d2KmLBjpfYdIxyAurXS8V7LuKQlssLSyRhl+RQdQRXlN t+DShlWhw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kigqv-0008VX-KF; Fri, 27 Nov 2020 16:44:09 +0000 Received: from mail-wr1-x444.google.com ([2a00:1450:4864:20::444]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kigow-0007oF-Jt for linux-arm-kernel@lists.infradead.org; Fri, 27 Nov 2020 16:42:18 +0000 Received: by mail-wr1-x444.google.com with SMTP id 64so6184393wra.11 for ; Fri, 27 Nov 2020 08:42:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=w2Q1pOB9trUJPQDy5OKnKzQR5GEGN6Jdmegbu/U46M8=; b=ha181PMU14tnqJzxvZJOkafgBn7DCRL8b0fMlQzaAD3e8sxJUDfPp3AZMiuiiqMLc4 gpgkm6tPoWmYnSvcJuCXfrUTCNsp+P/xOT0W4I15Qcs9nZ1ynlYaH6xvm8kuZx1sfJCt YT2g6JN2DXBesptjFvII4YfRU5w/uEJWzmNUA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=w2Q1pOB9trUJPQDy5OKnKzQR5GEGN6Jdmegbu/U46M8=; b=T3w7tKwl8PwjRfY1ejDKNCPHjo9XZ4Z429QccrODa0GzIPbVyY892e/HNaPAkgugII wQdg44tYwkoST8p//Kx6fg2uSLens0muSKf+ZBx9vwKEIC5CMfLMOhnD9WcJjX/6ynAT 4TmK2O+C/8P9bSxTV0So3CEqavbzeWmP1a8iS8UfCpfKZfLVxnkbHCx1HLr2Y0f7v51x Qu4ju7XdCjTle/Mmghn5wIAF5maGsNmdAt/QBf3XMECBF790aTnD2vf4SSLBV2RQrStp 1JlV4Ten8YWfIyvm3itjZM++dP9ZWJbGUlE7NxqUMZTa+Xp6kOZGWwEG9gxRyEUKG7OT Xv5w== X-Gm-Message-State: AOAM533N5dK/QDqwDbav1wgNXoEakzhvewO7kwXbrafXohmSlE4WLE1k 8UvD2sWTuQuHDBDc1kdc+tl69w== X-Google-Smtp-Source: ABdhPJzirLVUloiZyWUcvbRjNTa38292ObgLcrEpli4VQyrqKQJA4U/EUUEnxHc9Y1wLhDDjZIvoIw== X-Received: by 2002:adf:e449:: with SMTP id t9mr11806993wrm.257.1606495325700; Fri, 27 Nov 2020 08:42:05 -0800 (PST) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id q12sm14859078wrx.86.2020.11.27.08.42.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Nov 2020 08:42:05 -0800 (PST) From: Daniel Vetter To: DRI Development , LKML Subject: [PATCH v7 06/17] media: videobuf2: Move frame_vector into media subsystem Date: Fri, 27 Nov 2020 17:41:20 +0100 Message-Id: <20201127164131.2244124-7-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201127164131.2244124-1-daniel.vetter@ffwll.ch> References: <20201127164131.2244124-1-daniel.vetter@ffwll.ch> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201127_114206_748634_D1E016FD X-CRM114-Status: GOOD ( 27.35 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-samsung-soc@vger.kernel.org, Jan Kara , Pawel Osciak , kvm@vger.kernel.org, Jason Gunthorpe , Mauro Carvalho Chehab , Daniel Vetter , Mauro Carvalho Chehab , =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= , Tomasz Figa , linux-mm@kvack.org, Kyungmin Park , John Hubbard , Hans Verkuil , 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 SXQncyB0aGUgb25seSB1c2VyLiBUaGlzIGFsc28gZ2FyYmFnZSBjb2xsZWN0cyB0aGUgQ09ORklH X0ZSQU1FX1ZFQ1RPUgpzeW1ib2wgZnJvbSBhbGwgb3ZlciB0aGUgdHJlZSAod2VsbCBqdXN0IG9u ZSBwbGFjZSwgc29tZWhvdyBvbWFwIG1lZGlhCmRyaXZlciBzdGlsbCBoYWQgdGhpcyBpbiBpdHMg S2NvbmZpZywgZGVzcGl0ZSBub3QgdXNpbmcgaXQpLgoKUmV2aWV3ZWQtYnk6IEpvaG4gSHViYmFy ZCA8amh1YmJhcmRAbnZpZGlhLmNvbT4KQWNrZWQtYnk6IEhhbnMgVmVya3VpbCA8aHZlcmt1aWwt Y2lzY29AeHM0YWxsLm5sPgpBY2tlZC1ieTogTWF1cm8gQ2FydmFsaG8gQ2hlaGFiIDxtY2hlaGFi K2h1YXdlaUBrZXJuZWwub3JnPgpBY2tlZC1ieTogVG9tYXN6IEZpZ2EgPHRmaWdhQGNocm9taXVt Lm9yZz4KU2lnbmVkLW9mZi1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRlbC5j b20+CkNjOiBKYXNvbiBHdW50aG9ycGUgPGpnZ0B6aWVwZS5jYT4KQ2M6IFBhd2VsIE9zY2lhayA8 cGF3ZWxAb3NjaWFrLmNvbT4KQ2M6IE1hcmVrIFN6eXByb3dza2kgPG0uc3p5cHJvd3NraUBzYW1z dW5nLmNvbT4KQ2M6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+CkNj OiBUb21hc3ogRmlnYSA8dGZpZ2FAY2hyb21pdW0ub3JnPgpDYzogTWF1cm8gQ2FydmFsaG8gQ2hl aGFiIDxtY2hlaGFiQGtlcm5lbC5vcmc+CkNjOiBBbmRyZXcgTW9ydG9uIDxha3BtQGxpbnV4LWZv dW5kYXRpb24ub3JnPgpDYzogSm9obiBIdWJiYXJkIDxqaHViYmFyZEBudmlkaWEuY29tPgpDYzog SsOpcsO0bWUgR2xpc3NlIDxqZ2xpc3NlQHJlZGhhdC5jb20+CkNjOiBKYW4gS2FyYSA8amFja0Bz dXNlLmN6PgpDYzogRGFuIFdpbGxpYW1zIDxkYW4uai53aWxsaWFtc0BpbnRlbC5jb20+CkNjOiBs aW51eC1tbUBrdmFjay5vcmcKQ2M6IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9y ZwpDYzogbGludXgtc2Ftc3VuZy1zb2NAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1tZWRpYUB2 Z2VyLmtlcm5lbC5vcmcKQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+ ClNpZ25lZC1vZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Ci0t CnYzOgotIENyZWF0ZSBhIG5ldyBmcmFtZV92ZWN0b3IuaCBoZWFkZXIgZm9yIHRoaXMgKE1hdXJv KQp2NToKLSBSZWJhc2Ugb3ZlciBjaGFuZ2VzIGluIGZyYW1lLXZlY3Rvci5jIGZyb20gVG9tYXN6 IHJldmlldy4KLS0tCiBkcml2ZXJzL21lZGlhL2NvbW1vbi92aWRlb2J1ZjIvS2NvbmZpZyAgICAg ICAgfCAgMSAtCiBkcml2ZXJzL21lZGlhL2NvbW1vbi92aWRlb2J1ZjIvTWFrZWZpbGUgICAgICAg fCAgMSArCiAuLi4vbWVkaWEvY29tbW9uL3ZpZGVvYnVmMn0vZnJhbWVfdmVjdG9yLmMgICAgfCAg MiArCiBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL29tYXAvS2NvbmZpZyAgICAgICAgICAgfCAgMSAt CiBpbmNsdWRlL2xpbnV4L21tLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0MiAtLS0t LS0tLS0tLS0tLS0tLQogaW5jbHVkZS9tZWRpYS9mcmFtZV92ZWN0b3IuaCAgICAgICAgICAgICAg ICAgIHwgNDcgKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS9tZWRpYS92aWRlb2J1ZjItY29y ZS5oICAgICAgICAgICAgICAgIHwgIDEgKwogbW0vS2NvbmZpZyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDMgLS0KIG1tL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAxIC0KIDkgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKSwg NDggZGVsZXRpb25zKC0pCiByZW5hbWUge21tID0+IGRyaXZlcnMvbWVkaWEvY29tbW9uL3ZpZGVv YnVmMn0vZnJhbWVfdmVjdG9yLmMgKDk5JSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL21l ZGlhL2ZyYW1lX3ZlY3Rvci5oCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9jb21tb24vdmlk ZW9idWYyL0tjb25maWcgYi9kcml2ZXJzL21lZGlhL2NvbW1vbi92aWRlb2J1ZjIvS2NvbmZpZwpp bmRleCBlZGJjOTllYmJhODcuLmQyMjIzYTEyYzk1ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRp YS9jb21tb24vdmlkZW9idWYyL0tjb25maWcKKysrIGIvZHJpdmVycy9tZWRpYS9jb21tb24vdmlk ZW9idWYyL0tjb25maWcKQEAgLTksNyArOSw2IEBAIGNvbmZpZyBWSURFT0JVRjJfVjRMMgogCiBj b25maWcgVklERU9CVUYyX01FTU9QUwogCXRyaXN0YXRlCi0Jc2VsZWN0IEZSQU1FX1ZFQ1RPUgog CiBjb25maWcgVklERU9CVUYyX0RNQV9DT05USUcKIAl0cmlzdGF0ZQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9tZWRpYS9jb21tb24vdmlkZW9idWYyL01ha2VmaWxlIGIvZHJpdmVycy9tZWRpYS9jb21t b24vdmlkZW9idWYyL01ha2VmaWxlCmluZGV4IDc3YmViZThiMjAyZi4uNTQzMDZmOGQwOTZjIDEw MDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2NvbW1vbi92aWRlb2J1ZjIvTWFrZWZpbGUKKysrIGIv ZHJpdmVycy9tZWRpYS9jb21tb24vdmlkZW9idWYyL01ha2VmaWxlCkBAIC0xLDUgKzEsNiBAQAog IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogdmlkZW9idWYyLWNvbW1vbi1vYmpz IDo9IHZpZGVvYnVmMi1jb3JlLm8KK3ZpZGVvYnVmMi1jb21tb24tb2JqcyArPSBmcmFtZV92ZWN0 b3IubwogCiBpZmVxICgkKENPTkZJR19UUkFDRVBPSU5UUykseSkKICAgdmlkZW9idWYyLWNvbW1v bi1vYmpzICs9IHZiMi10cmFjZS5vCmRpZmYgLS1naXQgYS9tbS9mcmFtZV92ZWN0b3IuYyBiL2Ry aXZlcnMvbWVkaWEvY29tbW9uL3ZpZGVvYnVmMi9mcmFtZV92ZWN0b3IuYwpzaW1pbGFyaXR5IGlu ZGV4IDk5JQpyZW5hbWUgZnJvbSBtbS9mcmFtZV92ZWN0b3IuYwpyZW5hbWUgdG8gZHJpdmVycy9t ZWRpYS9jb21tb24vdmlkZW9idWYyL2ZyYW1lX3ZlY3Rvci5jCmluZGV4IGY4YzM0Yjg5NWM3Ni4u YTBlNjU0ODFhMjAxIDEwMDY0NAotLS0gYS9tbS9mcmFtZV92ZWN0b3IuYworKysgYi9kcml2ZXJz L21lZGlhL2NvbW1vbi92aWRlb2J1ZjIvZnJhbWVfdmVjdG9yLmMKQEAgLTgsNiArOCw4IEBACiAj aW5jbHVkZSA8bGludXgvcGFnZW1hcC5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CiAKKyNp bmNsdWRlIDxtZWRpYS9mcmFtZV92ZWN0b3IuaD4KKwogLyoqCiAgKiBnZXRfdmFkZHJfZnJhbWVz KCkgLSBtYXAgdmlydHVhbCBhZGRyZXNzZXMgdG8gcGZucwogICogQHN0YXJ0OglzdGFydGluZyB1 c2VyIGFkZHJlc3MKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vb21hcC9LY29u ZmlnIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9vbWFwL0tjb25maWcKaW5kZXggZjczYjU4OTMy MjBkLi5kZTE2ZGU0NmMwZjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vb21h cC9LY29uZmlnCisrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vb21hcC9LY29uZmlnCkBAIC0x Miw2ICsxMiw1IEBAIGNvbmZpZyBWSURFT19PTUFQMl9WT1VUCiAJZGVwZW5kcyBvbiBWSURFT19W NEwyCiAJc2VsZWN0IFZJREVPQlVGMl9ETUFfQ09OVElHCiAJc2VsZWN0IE9NQVAyX1ZSRkIgaWYg QVJDSF9PTUFQMiB8fCBBUkNIX09NQVAzCi0Jc2VsZWN0IEZSQU1FX1ZFQ1RPUgogCWhlbHAKIAkg IFY0TDIgRGlzcGxheSBkcml2ZXIgc3VwcG9ydCBmb3IgT01BUDIvMyBiYXNlZCBib2FyZHMuCmRp ZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21tLmggYi9pbmNsdWRlL2xpbnV4L21tLmgKaW5kZXgg MjlhMTk0MWNkMjU1Li5jNGNjOGVhMTQwMmMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbW0u aAorKysgYi9pbmNsdWRlL2xpbnV4L21tLmgKQEAgLTE3NTEsNDggKzE3NTEsNiBAQCBpbnQgYWNj b3VudF9sb2NrZWRfdm0oc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgcGFnZXMs IGJvb2wgaW5jKTsKIGludCBfX2FjY291bnRfbG9ja2VkX3ZtKHN0cnVjdCBtbV9zdHJ1Y3QgKm1t LCB1bnNpZ25lZCBsb25nIHBhZ2VzLCBib29sIGluYywKIAkJCXN0cnVjdCB0YXNrX3N0cnVjdCAq dGFzaywgYm9vbCBieXBhc3NfcmxpbSk7CiAKLS8qIENvbnRhaW5lciBmb3IgcGlubmVkIHBmbnMg LyBwYWdlcyAqLwotc3RydWN0IGZyYW1lX3ZlY3RvciB7Ci0JdW5zaWduZWQgaW50IG5yX2FsbG9j YXRlZDsJLyogTnVtYmVyIG9mIGZyYW1lcyB3ZSBoYXZlIHNwYWNlIGZvciAqLwotCXVuc2lnbmVk IGludCBucl9mcmFtZXM7CS8qIE51bWJlciBvZiBmcmFtZXMgc3RvcmVkIGluIHB0cnMgYXJyYXkg Ki8KLQlib29sIGdvdF9yZWY7CQkvKiBEaWQgd2UgcGluIHBhZ2VzIGJ5IGdldHRpbmcgcGFnZSBy ZWY/ICovCi0JYm9vbCBpc19wZm5zOwkJLyogRG9lcyBhcnJheSBjb250YWluIHBhZ2VzIG9yIHBm bnM/ICovCi0Jdm9pZCAqcHRyc1tdOwkJLyogQXJyYXkgb2YgcGlubmVkIHBmbnMgLyBwYWdlcy4g VXNlCi0JCQkJICogcGZuc192ZWN0b3JfcGFnZXMoKSBvciBwZm5zX3ZlY3Rvcl9wZm5zKCkKLQkJ CQkgKiBmb3IgYWNjZXNzICovCi19OwotCi1zdHJ1Y3QgZnJhbWVfdmVjdG9yICpmcmFtZV92ZWN0 b3JfY3JlYXRlKHVuc2lnbmVkIGludCBucl9mcmFtZXMpOwotdm9pZCBmcmFtZV92ZWN0b3JfZGVz dHJveShzdHJ1Y3QgZnJhbWVfdmVjdG9yICp2ZWMpOwotaW50IGdldF92YWRkcl9mcmFtZXModW5z aWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgaW50IG5yX3BmbnMsCi0JCSAgICAgc3RydWN0IGZy YW1lX3ZlY3RvciAqdmVjKTsKLXZvaWQgcHV0X3ZhZGRyX2ZyYW1lcyhzdHJ1Y3QgZnJhbWVfdmVj dG9yICp2ZWMpOwotaW50IGZyYW1lX3ZlY3Rvcl90b19wYWdlcyhzdHJ1Y3QgZnJhbWVfdmVjdG9y ICp2ZWMpOwotdm9pZCBmcmFtZV92ZWN0b3JfdG9fcGZucyhzdHJ1Y3QgZnJhbWVfdmVjdG9yICp2 ZWMpOwotCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBmcmFtZV92ZWN0b3JfY291bnQoc3Ry dWN0IGZyYW1lX3ZlY3RvciAqdmVjKQotewotCXJldHVybiB2ZWMtPm5yX2ZyYW1lczsKLX0KLQot c3RhdGljIGlubGluZSBzdHJ1Y3QgcGFnZSAqKmZyYW1lX3ZlY3Rvcl9wYWdlcyhzdHJ1Y3QgZnJh bWVfdmVjdG9yICp2ZWMpCi17Ci0JaWYgKHZlYy0+aXNfcGZucykgewotCQlpbnQgZXJyID0gZnJh bWVfdmVjdG9yX3RvX3BhZ2VzKHZlYyk7Ci0KLQkJaWYgKGVycikKLQkJCXJldHVybiBFUlJfUFRS KGVycik7Ci0JfQotCXJldHVybiAoc3RydWN0IHBhZ2UgKiopKHZlYy0+cHRycyk7Ci19Ci0KLXN0 YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyAqZnJhbWVfdmVjdG9yX3BmbnMoc3RydWN0IGZyYW1l X3ZlY3RvciAqdmVjKQotewotCWlmICghdmVjLT5pc19wZm5zKQotCQlmcmFtZV92ZWN0b3JfdG9f cGZucyh2ZWMpOwotCXJldHVybiAodW5zaWduZWQgbG9uZyAqKSh2ZWMtPnB0cnMpOwotfQotCiBz dHJ1Y3Qga3ZlYzsKIGludCBnZXRfa2VybmVsX3BhZ2VzKGNvbnN0IHN0cnVjdCBrdmVjICppb3Ys IGludCBucl9wYWdlcywgaW50IHdyaXRlLAogCQkJc3RydWN0IHBhZ2UgKipwYWdlcyk7CmRpZmYg LS1naXQgYS9pbmNsdWRlL21lZGlhL2ZyYW1lX3ZlY3Rvci5oIGIvaW5jbHVkZS9tZWRpYS9mcmFt ZV92ZWN0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmJmZWQx NzEwZGMyNAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbWVkaWEvZnJhbWVfdmVjdG9yLmgK QEAgLTAsMCArMSw0NyBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKyNp Zm5kZWYgX01FRElBX0ZSQU1FX1ZFQ1RPUl9ICisjZGVmaW5lIF9NRURJQV9GUkFNRV9WRUNUT1Jf SAorCisvKiBDb250YWluZXIgZm9yIHBpbm5lZCBwZm5zIC8gcGFnZXMgaW4gZnJhbWVfdmVjdG9y LmMgKi8KK3N0cnVjdCBmcmFtZV92ZWN0b3IgeworCXVuc2lnbmVkIGludCBucl9hbGxvY2F0ZWQ7 CS8qIE51bWJlciBvZiBmcmFtZXMgd2UgaGF2ZSBzcGFjZSBmb3IgKi8KKwl1bnNpZ25lZCBpbnQg bnJfZnJhbWVzOwkvKiBOdW1iZXIgb2YgZnJhbWVzIHN0b3JlZCBpbiBwdHJzIGFycmF5ICovCisJ Ym9vbCBnb3RfcmVmOwkJLyogRGlkIHdlIHBpbiBwYWdlcyBieSBnZXR0aW5nIHBhZ2UgcmVmPyAq LworCWJvb2wgaXNfcGZuczsJCS8qIERvZXMgYXJyYXkgY29udGFpbiBwYWdlcyBvciBwZm5zPyAq LworCXZvaWQgKnB0cnNbXTsJCS8qIEFycmF5IG9mIHBpbm5lZCBwZm5zIC8gcGFnZXMuIFVzZQor CQkJCSAqIHBmbnNfdmVjdG9yX3BhZ2VzKCkgb3IgcGZuc192ZWN0b3JfcGZucygpCisJCQkJICog Zm9yIGFjY2VzcyAqLworfTsKKworc3RydWN0IGZyYW1lX3ZlY3RvciAqZnJhbWVfdmVjdG9yX2Ny ZWF0ZSh1bnNpZ25lZCBpbnQgbnJfZnJhbWVzKTsKK3ZvaWQgZnJhbWVfdmVjdG9yX2Rlc3Ryb3ko c3RydWN0IGZyYW1lX3ZlY3RvciAqdmVjKTsKK2ludCBnZXRfdmFkZHJfZnJhbWVzKHVuc2lnbmVk IGxvbmcgc3RhcnQsIHVuc2lnbmVkIGludCBucl9wZm5zLAorCQkgICAgIHN0cnVjdCBmcmFtZV92 ZWN0b3IgKnZlYyk7Cit2b2lkIHB1dF92YWRkcl9mcmFtZXMoc3RydWN0IGZyYW1lX3ZlY3RvciAq dmVjKTsKK2ludCBmcmFtZV92ZWN0b3JfdG9fcGFnZXMoc3RydWN0IGZyYW1lX3ZlY3RvciAqdmVj KTsKK3ZvaWQgZnJhbWVfdmVjdG9yX3RvX3BmbnMoc3RydWN0IGZyYW1lX3ZlY3RvciAqdmVjKTsK Kworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgZnJhbWVfdmVjdG9yX2NvdW50KHN0cnVjdCBm cmFtZV92ZWN0b3IgKnZlYykKK3sKKwlyZXR1cm4gdmVjLT5ucl9mcmFtZXM7Cit9CisKK3N0YXRp YyBpbmxpbmUgc3RydWN0IHBhZ2UgKipmcmFtZV92ZWN0b3JfcGFnZXMoc3RydWN0IGZyYW1lX3Zl Y3RvciAqdmVjKQoreworCWlmICh2ZWMtPmlzX3BmbnMpIHsKKwkJaW50IGVyciA9IGZyYW1lX3Zl Y3Rvcl90b19wYWdlcyh2ZWMpOworCisJCWlmIChlcnIpCisJCQlyZXR1cm4gRVJSX1BUUihlcnIp OworCX0KKwlyZXR1cm4gKHN0cnVjdCBwYWdlICoqKSh2ZWMtPnB0cnMpOworfQorCitzdGF0aWMg aW5saW5lIHVuc2lnbmVkIGxvbmcgKmZyYW1lX3ZlY3Rvcl9wZm5zKHN0cnVjdCBmcmFtZV92ZWN0 b3IgKnZlYykKK3sKKwlpZiAoIXZlYy0+aXNfcGZucykKKwkJZnJhbWVfdmVjdG9yX3RvX3BmbnMo dmVjKTsKKwlyZXR1cm4gKHVuc2lnbmVkIGxvbmcgKikodmVjLT5wdHJzKTsKK30KKworI2VuZGlm IC8qIF9NRURJQV9GUkFNRV9WRUNUT1JfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tZWRpYS92 aWRlb2J1ZjItY29yZS5oIGIvaW5jbHVkZS9tZWRpYS92aWRlb2J1ZjItY29yZS5oCmluZGV4IGJi YjNmMjZmYmRlOS4uZDA0NWUzYTVhMWQ4IDEwMDY0NAotLS0gYS9pbmNsdWRlL21lZGlhL3ZpZGVv YnVmMi1jb3JlLmgKKysrIGIvaW5jbHVkZS9tZWRpYS92aWRlb2J1ZjItY29yZS5oCkBAIC0xOCw2 ICsxOCw3IEBACiAjaW5jbHVkZSA8bGludXgvZG1hLWJ1Zi5oPgogI2luY2x1ZGUgPGxpbnV4L2Jp dG9wcy5oPgogI2luY2x1ZGUgPG1lZGlhL21lZGlhLXJlcXVlc3QuaD4KKyNpbmNsdWRlIDxtZWRp YS9mcmFtZV92ZWN0b3IuaD4KIAogI2RlZmluZSBWQjJfTUFYX0ZSQU1FCSgzMikKICNkZWZpbmUg VkIyX01BWF9QTEFORVMJKDgpCmRpZmYgLS1naXQgYS9tbS9LY29uZmlnIGIvbW0vS2NvbmZpZwpp bmRleCBkNDI0MjNmODg0YTcuLjBkY2ZmMjRjYmE1MyAxMDA2NDQKLS0tIGEvbW0vS2NvbmZpZwor KysgYi9tbS9LY29uZmlnCkBAIC04MTksOSArODE5LDYgQEAgY29uZmlnIERFVklDRV9QUklWQVRF CiBjb25maWcgVk1BUF9QRk4KIAlib29sCiAKLWNvbmZpZyBGUkFNRV9WRUNUT1IKLQlib29sCi0K IGNvbmZpZyBBUkNIX1VTRVNfSElHSF9WTUFfRkxBR1MKIAlib29sCiBjb25maWcgQVJDSF9IQVNf UEtFWVMKZGlmZiAtLWdpdCBhL21tL01ha2VmaWxlIGIvbW0vTWFrZWZpbGUKaW5kZXggZDczYWVk MGZjOTljLi5kYjQxZmZmMDUwMzggMTAwNjQ0Ci0tLSBhL21tL01ha2VmaWxlCisrKyBiL21tL01h a2VmaWxlCkBAIC0xMTAsNyArMTEwLDYgQEAgb2JqLSQoQ09ORklHX1BBR0VfRVhURU5TSU9OKSAr PSBwYWdlX2V4dC5vCiBvYmotJChDT05GSUdfQ01BX0RFQlVHRlMpICs9IGNtYV9kZWJ1Zy5vCiBv YmotJChDT05GSUdfVVNFUkZBVUxURkQpICs9IHVzZXJmYXVsdGZkLm8KIG9iai0kKENPTkZJR19J RExFX1BBR0VfVFJBQ0tJTkcpICs9IHBhZ2VfaWRsZS5vCi1vYmotJChDT05GSUdfRlJBTUVfVkVD VE9SKSArPSBmcmFtZV92ZWN0b3Iubwogb2JqLSQoQ09ORklHX0RFQlVHX1BBR0VfUkVGKSArPSBk ZWJ1Z19wYWdlX3JlZi5vCiBvYmotJChDT05GSUdfSEFSREVORURfVVNFUkNPUFkpICs9IHVzZXJj b3B5Lm8KIG9iai0kKENPTkZJR19QRVJDUFVfU1RBVFMpICs9IHBlcmNwdS1zdGF0cy5vCi0tIAoy LjI5LjIKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwps aW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJh ZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51 eC1hcm0ta2VybmVsCg== 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=-16.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0996AC64E7A for ; Fri, 27 Nov 2020 16:42:19 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B1B21221F7 for ; Fri, 27 Nov 2020 16:42:18 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="ha181PMU" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B1B21221F7 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 0A00B6EE5A; Fri, 27 Nov 2020 16:42:16 +0000 (UTC) Received: from mail-wr1-x443.google.com (mail-wr1-x443.google.com [IPv6:2a00:1450:4864:20::443]) by gabe.freedesktop.org (Postfix) with ESMTPS id 488F56EE56 for ; Fri, 27 Nov 2020 16:42:07 +0000 (UTC) Received: by mail-wr1-x443.google.com with SMTP id e7so6206864wrv.6 for ; Fri, 27 Nov 2020 08:42:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=w2Q1pOB9trUJPQDy5OKnKzQR5GEGN6Jdmegbu/U46M8=; b=ha181PMU14tnqJzxvZJOkafgBn7DCRL8b0fMlQzaAD3e8sxJUDfPp3AZMiuiiqMLc4 gpgkm6tPoWmYnSvcJuCXfrUTCNsp+P/xOT0W4I15Qcs9nZ1ynlYaH6xvm8kuZx1sfJCt YT2g6JN2DXBesptjFvII4YfRU5w/uEJWzmNUA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=w2Q1pOB9trUJPQDy5OKnKzQR5GEGN6Jdmegbu/U46M8=; b=NUH5Pe45infParggSqZ2JHhKw+5TinUhK/n+w7DRCSmV1FsGJzMo5HQFF2Kxw9wL+q BVV78ttc4I39nB18F7d240GD2s/mrHREiTn9pI+60n5XXNKEieez7m6ik4yvpGSy8iMU DD4k2KjmuDFKvehfu5S+EQEzPLlsCj24gLBL6PLMxRlhWvSYgp3DfkXPEhLTRCx7gJgV JtKtNpSw0IXND5Y6Gnqe2Gz18/Buke3gNjVdrlcDgQZBeyppA8pBzufFCn1mGbTJyiZp HKgtthQmwc1skhBxzJvdB5LKghP2sHbYvLkb3ikT+EjcsLPxnxkSQfmsiMRalT9cuKCa pn2Q== X-Gm-Message-State: AOAM532FhonikNHnJVFa0abMMX3tO17JYsR23RJUtcieFeiFcg7baJTM WO/JGT9/lOtJoB+KJS2tJJ5xFzwqObAjyg== X-Google-Smtp-Source: ABdhPJzirLVUloiZyWUcvbRjNTa38292ObgLcrEpli4VQyrqKQJA4U/EUUEnxHc9Y1wLhDDjZIvoIw== X-Received: by 2002:adf:e449:: with SMTP id t9mr11806993wrm.257.1606495325700; Fri, 27 Nov 2020 08:42:05 -0800 (PST) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id q12sm14859078wrx.86.2020.11.27.08.42.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Nov 2020 08:42:05 -0800 (PST) From: Daniel Vetter To: DRI Development , LKML Subject: [PATCH v7 06/17] media: videobuf2: Move frame_vector into media subsystem Date: Fri, 27 Nov 2020 17:41:20 +0100 Message-Id: <20201127164131.2244124-7-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201127164131.2244124-1-daniel.vetter@ffwll.ch> References: <20201127164131.2244124-1-daniel.vetter@ffwll.ch> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-samsung-soc@vger.kernel.org, Jan Kara , Pawel Osciak , kvm@vger.kernel.org, Jason Gunthorpe , Mauro Carvalho Chehab , Daniel Vetter , Mauro Carvalho Chehab , =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= , Tomasz Figa , linux-mm@kvack.org, Kyungmin Park , John Hubbard , Hans Verkuil , 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" SXQncyB0aGUgb25seSB1c2VyLiBUaGlzIGFsc28gZ2FyYmFnZSBjb2xsZWN0cyB0aGUgQ09ORklH X0ZSQU1FX1ZFQ1RPUgpzeW1ib2wgZnJvbSBhbGwgb3ZlciB0aGUgdHJlZSAod2VsbCBqdXN0IG9u ZSBwbGFjZSwgc29tZWhvdyBvbWFwIG1lZGlhCmRyaXZlciBzdGlsbCBoYWQgdGhpcyBpbiBpdHMg S2NvbmZpZywgZGVzcGl0ZSBub3QgdXNpbmcgaXQpLgoKUmV2aWV3ZWQtYnk6IEpvaG4gSHViYmFy ZCA8amh1YmJhcmRAbnZpZGlhLmNvbT4KQWNrZWQtYnk6IEhhbnMgVmVya3VpbCA8aHZlcmt1aWwt Y2lzY29AeHM0YWxsLm5sPgpBY2tlZC1ieTogTWF1cm8gQ2FydmFsaG8gQ2hlaGFiIDxtY2hlaGFi K2h1YXdlaUBrZXJuZWwub3JnPgpBY2tlZC1ieTogVG9tYXN6IEZpZ2EgPHRmaWdhQGNocm9taXVt Lm9yZz4KU2lnbmVkLW9mZi1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRlbC5j b20+CkNjOiBKYXNvbiBHdW50aG9ycGUgPGpnZ0B6aWVwZS5jYT4KQ2M6IFBhd2VsIE9zY2lhayA8 cGF3ZWxAb3NjaWFrLmNvbT4KQ2M6IE1hcmVrIFN6eXByb3dza2kgPG0uc3p5cHJvd3NraUBzYW1z dW5nLmNvbT4KQ2M6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+CkNj OiBUb21hc3ogRmlnYSA8dGZpZ2FAY2hyb21pdW0ub3JnPgpDYzogTWF1cm8gQ2FydmFsaG8gQ2hl aGFiIDxtY2hlaGFiQGtlcm5lbC5vcmc+CkNjOiBBbmRyZXcgTW9ydG9uIDxha3BtQGxpbnV4LWZv dW5kYXRpb24ub3JnPgpDYzogSm9obiBIdWJiYXJkIDxqaHViYmFyZEBudmlkaWEuY29tPgpDYzog SsOpcsO0bWUgR2xpc3NlIDxqZ2xpc3NlQHJlZGhhdC5jb20+CkNjOiBKYW4gS2FyYSA8amFja0Bz dXNlLmN6PgpDYzogRGFuIFdpbGxpYW1zIDxkYW4uai53aWxsaWFtc0BpbnRlbC5jb20+CkNjOiBs aW51eC1tbUBrdmFjay5vcmcKQ2M6IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9y ZwpDYzogbGludXgtc2Ftc3VuZy1zb2NAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1tZWRpYUB2 Z2VyLmtlcm5lbC5vcmcKQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+ ClNpZ25lZC1vZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Ci0t CnYzOgotIENyZWF0ZSBhIG5ldyBmcmFtZV92ZWN0b3IuaCBoZWFkZXIgZm9yIHRoaXMgKE1hdXJv KQp2NToKLSBSZWJhc2Ugb3ZlciBjaGFuZ2VzIGluIGZyYW1lLXZlY3Rvci5jIGZyb20gVG9tYXN6 IHJldmlldy4KLS0tCiBkcml2ZXJzL21lZGlhL2NvbW1vbi92aWRlb2J1ZjIvS2NvbmZpZyAgICAg ICAgfCAgMSAtCiBkcml2ZXJzL21lZGlhL2NvbW1vbi92aWRlb2J1ZjIvTWFrZWZpbGUgICAgICAg fCAgMSArCiAuLi4vbWVkaWEvY29tbW9uL3ZpZGVvYnVmMn0vZnJhbWVfdmVjdG9yLmMgICAgfCAg MiArCiBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL29tYXAvS2NvbmZpZyAgICAgICAgICAgfCAgMSAt CiBpbmNsdWRlL2xpbnV4L21tLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0MiAtLS0t LS0tLS0tLS0tLS0tLQogaW5jbHVkZS9tZWRpYS9mcmFtZV92ZWN0b3IuaCAgICAgICAgICAgICAg ICAgIHwgNDcgKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS9tZWRpYS92aWRlb2J1ZjItY29y ZS5oICAgICAgICAgICAgICAgIHwgIDEgKwogbW0vS2NvbmZpZyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDMgLS0KIG1tL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAxIC0KIDkgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKSwg NDggZGVsZXRpb25zKC0pCiByZW5hbWUge21tID0+IGRyaXZlcnMvbWVkaWEvY29tbW9uL3ZpZGVv YnVmMn0vZnJhbWVfdmVjdG9yLmMgKDk5JSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL21l ZGlhL2ZyYW1lX3ZlY3Rvci5oCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9jb21tb24vdmlk ZW9idWYyL0tjb25maWcgYi9kcml2ZXJzL21lZGlhL2NvbW1vbi92aWRlb2J1ZjIvS2NvbmZpZwpp bmRleCBlZGJjOTllYmJhODcuLmQyMjIzYTEyYzk1ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRp YS9jb21tb24vdmlkZW9idWYyL0tjb25maWcKKysrIGIvZHJpdmVycy9tZWRpYS9jb21tb24vdmlk ZW9idWYyL0tjb25maWcKQEAgLTksNyArOSw2IEBAIGNvbmZpZyBWSURFT0JVRjJfVjRMMgogCiBj b25maWcgVklERU9CVUYyX01FTU9QUwogCXRyaXN0YXRlCi0Jc2VsZWN0IEZSQU1FX1ZFQ1RPUgog CiBjb25maWcgVklERU9CVUYyX0RNQV9DT05USUcKIAl0cmlzdGF0ZQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9tZWRpYS9jb21tb24vdmlkZW9idWYyL01ha2VmaWxlIGIvZHJpdmVycy9tZWRpYS9jb21t b24vdmlkZW9idWYyL01ha2VmaWxlCmluZGV4IDc3YmViZThiMjAyZi4uNTQzMDZmOGQwOTZjIDEw MDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2NvbW1vbi92aWRlb2J1ZjIvTWFrZWZpbGUKKysrIGIv ZHJpdmVycy9tZWRpYS9jb21tb24vdmlkZW9idWYyL01ha2VmaWxlCkBAIC0xLDUgKzEsNiBAQAog IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogdmlkZW9idWYyLWNvbW1vbi1vYmpz IDo9IHZpZGVvYnVmMi1jb3JlLm8KK3ZpZGVvYnVmMi1jb21tb24tb2JqcyArPSBmcmFtZV92ZWN0 b3IubwogCiBpZmVxICgkKENPTkZJR19UUkFDRVBPSU5UUykseSkKICAgdmlkZW9idWYyLWNvbW1v bi1vYmpzICs9IHZiMi10cmFjZS5vCmRpZmYgLS1naXQgYS9tbS9mcmFtZV92ZWN0b3IuYyBiL2Ry aXZlcnMvbWVkaWEvY29tbW9uL3ZpZGVvYnVmMi9mcmFtZV92ZWN0b3IuYwpzaW1pbGFyaXR5IGlu ZGV4IDk5JQpyZW5hbWUgZnJvbSBtbS9mcmFtZV92ZWN0b3IuYwpyZW5hbWUgdG8gZHJpdmVycy9t ZWRpYS9jb21tb24vdmlkZW9idWYyL2ZyYW1lX3ZlY3Rvci5jCmluZGV4IGY4YzM0Yjg5NWM3Ni4u YTBlNjU0ODFhMjAxIDEwMDY0NAotLS0gYS9tbS9mcmFtZV92ZWN0b3IuYworKysgYi9kcml2ZXJz L21lZGlhL2NvbW1vbi92aWRlb2J1ZjIvZnJhbWVfdmVjdG9yLmMKQEAgLTgsNiArOCw4IEBACiAj aW5jbHVkZSA8bGludXgvcGFnZW1hcC5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CiAKKyNp bmNsdWRlIDxtZWRpYS9mcmFtZV92ZWN0b3IuaD4KKwogLyoqCiAgKiBnZXRfdmFkZHJfZnJhbWVz KCkgLSBtYXAgdmlydHVhbCBhZGRyZXNzZXMgdG8gcGZucwogICogQHN0YXJ0OglzdGFydGluZyB1 c2VyIGFkZHJlc3MKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vb21hcC9LY29u ZmlnIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9vbWFwL0tjb25maWcKaW5kZXggZjczYjU4OTMy MjBkLi5kZTE2ZGU0NmMwZjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vb21h cC9LY29uZmlnCisrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vb21hcC9LY29uZmlnCkBAIC0x Miw2ICsxMiw1IEBAIGNvbmZpZyBWSURFT19PTUFQMl9WT1VUCiAJZGVwZW5kcyBvbiBWSURFT19W NEwyCiAJc2VsZWN0IFZJREVPQlVGMl9ETUFfQ09OVElHCiAJc2VsZWN0IE9NQVAyX1ZSRkIgaWYg QVJDSF9PTUFQMiB8fCBBUkNIX09NQVAzCi0Jc2VsZWN0IEZSQU1FX1ZFQ1RPUgogCWhlbHAKIAkg IFY0TDIgRGlzcGxheSBkcml2ZXIgc3VwcG9ydCBmb3IgT01BUDIvMyBiYXNlZCBib2FyZHMuCmRp ZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21tLmggYi9pbmNsdWRlL2xpbnV4L21tLmgKaW5kZXgg MjlhMTk0MWNkMjU1Li5jNGNjOGVhMTQwMmMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbW0u aAorKysgYi9pbmNsdWRlL2xpbnV4L21tLmgKQEAgLTE3NTEsNDggKzE3NTEsNiBAQCBpbnQgYWNj b3VudF9sb2NrZWRfdm0oc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgcGFnZXMs IGJvb2wgaW5jKTsKIGludCBfX2FjY291bnRfbG9ja2VkX3ZtKHN0cnVjdCBtbV9zdHJ1Y3QgKm1t LCB1bnNpZ25lZCBsb25nIHBhZ2VzLCBib29sIGluYywKIAkJCXN0cnVjdCB0YXNrX3N0cnVjdCAq dGFzaywgYm9vbCBieXBhc3NfcmxpbSk7CiAKLS8qIENvbnRhaW5lciBmb3IgcGlubmVkIHBmbnMg LyBwYWdlcyAqLwotc3RydWN0IGZyYW1lX3ZlY3RvciB7Ci0JdW5zaWduZWQgaW50IG5yX2FsbG9j YXRlZDsJLyogTnVtYmVyIG9mIGZyYW1lcyB3ZSBoYXZlIHNwYWNlIGZvciAqLwotCXVuc2lnbmVk IGludCBucl9mcmFtZXM7CS8qIE51bWJlciBvZiBmcmFtZXMgc3RvcmVkIGluIHB0cnMgYXJyYXkg Ki8KLQlib29sIGdvdF9yZWY7CQkvKiBEaWQgd2UgcGluIHBhZ2VzIGJ5IGdldHRpbmcgcGFnZSBy ZWY/ICovCi0JYm9vbCBpc19wZm5zOwkJLyogRG9lcyBhcnJheSBjb250YWluIHBhZ2VzIG9yIHBm bnM/ICovCi0Jdm9pZCAqcHRyc1tdOwkJLyogQXJyYXkgb2YgcGlubmVkIHBmbnMgLyBwYWdlcy4g VXNlCi0JCQkJICogcGZuc192ZWN0b3JfcGFnZXMoKSBvciBwZm5zX3ZlY3Rvcl9wZm5zKCkKLQkJ CQkgKiBmb3IgYWNjZXNzICovCi19OwotCi1zdHJ1Y3QgZnJhbWVfdmVjdG9yICpmcmFtZV92ZWN0 b3JfY3JlYXRlKHVuc2lnbmVkIGludCBucl9mcmFtZXMpOwotdm9pZCBmcmFtZV92ZWN0b3JfZGVz dHJveShzdHJ1Y3QgZnJhbWVfdmVjdG9yICp2ZWMpOwotaW50IGdldF92YWRkcl9mcmFtZXModW5z aWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgaW50IG5yX3BmbnMsCi0JCSAgICAgc3RydWN0IGZy YW1lX3ZlY3RvciAqdmVjKTsKLXZvaWQgcHV0X3ZhZGRyX2ZyYW1lcyhzdHJ1Y3QgZnJhbWVfdmVj dG9yICp2ZWMpOwotaW50IGZyYW1lX3ZlY3Rvcl90b19wYWdlcyhzdHJ1Y3QgZnJhbWVfdmVjdG9y ICp2ZWMpOwotdm9pZCBmcmFtZV92ZWN0b3JfdG9fcGZucyhzdHJ1Y3QgZnJhbWVfdmVjdG9yICp2 ZWMpOwotCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBmcmFtZV92ZWN0b3JfY291bnQoc3Ry dWN0IGZyYW1lX3ZlY3RvciAqdmVjKQotewotCXJldHVybiB2ZWMtPm5yX2ZyYW1lczsKLX0KLQot c3RhdGljIGlubGluZSBzdHJ1Y3QgcGFnZSAqKmZyYW1lX3ZlY3Rvcl9wYWdlcyhzdHJ1Y3QgZnJh bWVfdmVjdG9yICp2ZWMpCi17Ci0JaWYgKHZlYy0+aXNfcGZucykgewotCQlpbnQgZXJyID0gZnJh bWVfdmVjdG9yX3RvX3BhZ2VzKHZlYyk7Ci0KLQkJaWYgKGVycikKLQkJCXJldHVybiBFUlJfUFRS KGVycik7Ci0JfQotCXJldHVybiAoc3RydWN0IHBhZ2UgKiopKHZlYy0+cHRycyk7Ci19Ci0KLXN0 YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyAqZnJhbWVfdmVjdG9yX3BmbnMoc3RydWN0IGZyYW1l X3ZlY3RvciAqdmVjKQotewotCWlmICghdmVjLT5pc19wZm5zKQotCQlmcmFtZV92ZWN0b3JfdG9f cGZucyh2ZWMpOwotCXJldHVybiAodW5zaWduZWQgbG9uZyAqKSh2ZWMtPnB0cnMpOwotfQotCiBz dHJ1Y3Qga3ZlYzsKIGludCBnZXRfa2VybmVsX3BhZ2VzKGNvbnN0IHN0cnVjdCBrdmVjICppb3Ys IGludCBucl9wYWdlcywgaW50IHdyaXRlLAogCQkJc3RydWN0IHBhZ2UgKipwYWdlcyk7CmRpZmYg LS1naXQgYS9pbmNsdWRlL21lZGlhL2ZyYW1lX3ZlY3Rvci5oIGIvaW5jbHVkZS9tZWRpYS9mcmFt ZV92ZWN0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmJmZWQx NzEwZGMyNAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbWVkaWEvZnJhbWVfdmVjdG9yLmgK QEAgLTAsMCArMSw0NyBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKyNp Zm5kZWYgX01FRElBX0ZSQU1FX1ZFQ1RPUl9ICisjZGVmaW5lIF9NRURJQV9GUkFNRV9WRUNUT1Jf SAorCisvKiBDb250YWluZXIgZm9yIHBpbm5lZCBwZm5zIC8gcGFnZXMgaW4gZnJhbWVfdmVjdG9y LmMgKi8KK3N0cnVjdCBmcmFtZV92ZWN0b3IgeworCXVuc2lnbmVkIGludCBucl9hbGxvY2F0ZWQ7 CS8qIE51bWJlciBvZiBmcmFtZXMgd2UgaGF2ZSBzcGFjZSBmb3IgKi8KKwl1bnNpZ25lZCBpbnQg bnJfZnJhbWVzOwkvKiBOdW1iZXIgb2YgZnJhbWVzIHN0b3JlZCBpbiBwdHJzIGFycmF5ICovCisJ Ym9vbCBnb3RfcmVmOwkJLyogRGlkIHdlIHBpbiBwYWdlcyBieSBnZXR0aW5nIHBhZ2UgcmVmPyAq LworCWJvb2wgaXNfcGZuczsJCS8qIERvZXMgYXJyYXkgY29udGFpbiBwYWdlcyBvciBwZm5zPyAq LworCXZvaWQgKnB0cnNbXTsJCS8qIEFycmF5IG9mIHBpbm5lZCBwZm5zIC8gcGFnZXMuIFVzZQor CQkJCSAqIHBmbnNfdmVjdG9yX3BhZ2VzKCkgb3IgcGZuc192ZWN0b3JfcGZucygpCisJCQkJICog Zm9yIGFjY2VzcyAqLworfTsKKworc3RydWN0IGZyYW1lX3ZlY3RvciAqZnJhbWVfdmVjdG9yX2Ny ZWF0ZSh1bnNpZ25lZCBpbnQgbnJfZnJhbWVzKTsKK3ZvaWQgZnJhbWVfdmVjdG9yX2Rlc3Ryb3ko c3RydWN0IGZyYW1lX3ZlY3RvciAqdmVjKTsKK2ludCBnZXRfdmFkZHJfZnJhbWVzKHVuc2lnbmVk IGxvbmcgc3RhcnQsIHVuc2lnbmVkIGludCBucl9wZm5zLAorCQkgICAgIHN0cnVjdCBmcmFtZV92 ZWN0b3IgKnZlYyk7Cit2b2lkIHB1dF92YWRkcl9mcmFtZXMoc3RydWN0IGZyYW1lX3ZlY3RvciAq dmVjKTsKK2ludCBmcmFtZV92ZWN0b3JfdG9fcGFnZXMoc3RydWN0IGZyYW1lX3ZlY3RvciAqdmVj KTsKK3ZvaWQgZnJhbWVfdmVjdG9yX3RvX3BmbnMoc3RydWN0IGZyYW1lX3ZlY3RvciAqdmVjKTsK Kworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgZnJhbWVfdmVjdG9yX2NvdW50KHN0cnVjdCBm cmFtZV92ZWN0b3IgKnZlYykKK3sKKwlyZXR1cm4gdmVjLT5ucl9mcmFtZXM7Cit9CisKK3N0YXRp YyBpbmxpbmUgc3RydWN0IHBhZ2UgKipmcmFtZV92ZWN0b3JfcGFnZXMoc3RydWN0IGZyYW1lX3Zl Y3RvciAqdmVjKQoreworCWlmICh2ZWMtPmlzX3BmbnMpIHsKKwkJaW50IGVyciA9IGZyYW1lX3Zl Y3Rvcl90b19wYWdlcyh2ZWMpOworCisJCWlmIChlcnIpCisJCQlyZXR1cm4gRVJSX1BUUihlcnIp OworCX0KKwlyZXR1cm4gKHN0cnVjdCBwYWdlICoqKSh2ZWMtPnB0cnMpOworfQorCitzdGF0aWMg aW5saW5lIHVuc2lnbmVkIGxvbmcgKmZyYW1lX3ZlY3Rvcl9wZm5zKHN0cnVjdCBmcmFtZV92ZWN0 b3IgKnZlYykKK3sKKwlpZiAoIXZlYy0+aXNfcGZucykKKwkJZnJhbWVfdmVjdG9yX3RvX3BmbnMo dmVjKTsKKwlyZXR1cm4gKHVuc2lnbmVkIGxvbmcgKikodmVjLT5wdHJzKTsKK30KKworI2VuZGlm IC8qIF9NRURJQV9GUkFNRV9WRUNUT1JfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tZWRpYS92 aWRlb2J1ZjItY29yZS5oIGIvaW5jbHVkZS9tZWRpYS92aWRlb2J1ZjItY29yZS5oCmluZGV4IGJi YjNmMjZmYmRlOS4uZDA0NWUzYTVhMWQ4IDEwMDY0NAotLS0gYS9pbmNsdWRlL21lZGlhL3ZpZGVv YnVmMi1jb3JlLmgKKysrIGIvaW5jbHVkZS9tZWRpYS92aWRlb2J1ZjItY29yZS5oCkBAIC0xOCw2 ICsxOCw3IEBACiAjaW5jbHVkZSA8bGludXgvZG1hLWJ1Zi5oPgogI2luY2x1ZGUgPGxpbnV4L2Jp dG9wcy5oPgogI2luY2x1ZGUgPG1lZGlhL21lZGlhLXJlcXVlc3QuaD4KKyNpbmNsdWRlIDxtZWRp YS9mcmFtZV92ZWN0b3IuaD4KIAogI2RlZmluZSBWQjJfTUFYX0ZSQU1FCSgzMikKICNkZWZpbmUg VkIyX01BWF9QTEFORVMJKDgpCmRpZmYgLS1naXQgYS9tbS9LY29uZmlnIGIvbW0vS2NvbmZpZwpp bmRleCBkNDI0MjNmODg0YTcuLjBkY2ZmMjRjYmE1MyAxMDA2NDQKLS0tIGEvbW0vS2NvbmZpZwor KysgYi9tbS9LY29uZmlnCkBAIC04MTksOSArODE5LDYgQEAgY29uZmlnIERFVklDRV9QUklWQVRF CiBjb25maWcgVk1BUF9QRk4KIAlib29sCiAKLWNvbmZpZyBGUkFNRV9WRUNUT1IKLQlib29sCi0K IGNvbmZpZyBBUkNIX1VTRVNfSElHSF9WTUFfRkxBR1MKIAlib29sCiBjb25maWcgQVJDSF9IQVNf UEtFWVMKZGlmZiAtLWdpdCBhL21tL01ha2VmaWxlIGIvbW0vTWFrZWZpbGUKaW5kZXggZDczYWVk MGZjOTljLi5kYjQxZmZmMDUwMzggMTAwNjQ0Ci0tLSBhL21tL01ha2VmaWxlCisrKyBiL21tL01h a2VmaWxlCkBAIC0xMTAsNyArMTEwLDYgQEAgb2JqLSQoQ09ORklHX1BBR0VfRVhURU5TSU9OKSAr PSBwYWdlX2V4dC5vCiBvYmotJChDT05GSUdfQ01BX0RFQlVHRlMpICs9IGNtYV9kZWJ1Zy5vCiBv YmotJChDT05GSUdfVVNFUkZBVUxURkQpICs9IHVzZXJmYXVsdGZkLm8KIG9iai0kKENPTkZJR19J RExFX1BBR0VfVFJBQ0tJTkcpICs9IHBhZ2VfaWRsZS5vCi1vYmotJChDT05GSUdfRlJBTUVfVkVD VE9SKSArPSBmcmFtZV92ZWN0b3Iubwogb2JqLSQoQ09ORklHX0RFQlVHX1BBR0VfUkVGKSArPSBk ZWJ1Z19wYWdlX3JlZi5vCiBvYmotJChDT05GSUdfSEFSREVORURfVVNFUkNPUFkpICs9IHVzZXJj b3B5Lm8KIG9iai0kKENPTkZJR19QRVJDUFVfU1RBVFMpICs9IHBlcmNwdS1zdGF0cy5vCi0tIAoy LjI5LjIKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRy aS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=