From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 72C102F2D; Fri, 24 Mar 2023 08:52:21 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6D11DC4339C; Fri, 24 Mar 2023 08:52:15 +0000 (UTC) Message-ID: Date: Fri, 24 Mar 2023 09:52:13 +0100 Precedence: bulk X-Mailing-List: oe-kbuild@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: [PATCH v2 2/8] media: videobuf2: Make bufs array dynamic allocated Content-Language: en-US To: Laurent Pinchart Cc: Benjamin Gaignard , Dan Carpenter , oe-kbuild@lists.linux.dev, tfiga@chromium.org, m.szyprowski@samsung.com, mchehab@kernel.org, ming.qian@nxp.com, shijie.qin@nxp.com, eagle.zhou@nxp.com, bin.liu@mediatek.com, matthias.bgg@gmail.com, angelogioacchino.delregno@collabora.com, tiffany.lin@mediatek.com, andrew-ct.chen@mediatek.com, yunfei.dong@mediatek.com, stanimir.k.varbanov@gmail.com, quic_vgarodia@quicinc.com, agross@kernel.org, andersson@kernel.org, konrad.dybcio@linaro.org, ezequiel@vanguardiasur.com.ar, p.zabel@pengutronix.de, daniel.almeida@collabora.com, lkp@intel.com, oe-kbuild-all@lists.linux.dev, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-rockchip@lists.infradead.org, kernel@collabora.com References: <4e2cb832-de83-4ba6-bd8a-119a19038cfe@kili.mountain> <20230324084830.GA18895@pendragon.ideasonboard.com> From: Hans Verkuil In-Reply-To: <20230324084830.GA18895@pendragon.ideasonboard.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On 24/03/2023 09:48, Laurent Pinchart wrote: > On Fri, Mar 24, 2023 at 09:31:35AM +0100, Hans Verkuil wrote: >> On 24/03/2023 09:11, Benjamin Gaignard wrote: >>> >>> Le 24/03/2023 à 06:01, Dan Carpenter a écrit : >>>> Hi Benjamin, >>>> >>>> https://git-scm.com/docs/git-format-patch#_base_tree_information] >>>> >>>> url:    https://github.com/intel-lab-lkp/linux/commits/Benjamin-Gaignard/media-videobuf2-Access-vb2_queue-bufs-array-through-helper-functions/20230321-183154 >>>> base:   git://linuxtv.org/media_tree.git master >>>> patch link:    https://lore.kernel.org/r/20230321102855.346732-3-benjamin.gaignard%40collabora.com >>>> patch subject: [PATCH v2 2/8] media: videobuf2: Make bufs array dynamic allocated >>>> config: arm64-randconfig-m041-20230319 (https://download.01.org/0day-ci/archive/20230324/202303240148.lKRnUqW9-lkp@intel.com/config) >>>> compiler: aarch64-linux-gcc (GCC) 12.1.0 >>>> >>>> If you fix the issue, kindly add following tag where applicable >>>> | Reported-by: kernel test robot >>>> | Reported-by: Dan Carpenter >>>> | Link: https://lore.kernel.org/r/202303240148.lKRnUqW9-lkp@intel.com/ >>>> >>>> smatch warnings: >>>> include/media/videobuf2-core.h:1272 vb2_queue_add_buffer() warn: sleeping in atomic context >>>> drivers/media/common/videobuf2/videobuf2-core.c:2456 vb2_core_queue_init() warn: Please consider using kcalloc instead of kmalloc_array >>>> >>>> vim +1272 include/media/videobuf2-core.h >>>> >>>> 625d46c1c1fe8e Benjamin Gaignard 2023-03-21  1263  static inline bool vb2_queue_add_buffer(struct vb2_queue *q, struct vb2_buffer *vb) >>>> 625d46c1c1fe8e Benjamin Gaignard 2023-03-21  1264  { >>>> 487d3f14d12ecf Benjamin Gaignard 2023-03-21  1265      bool ret = false; >>>> 487d3f14d12ecf Benjamin Gaignard 2023-03-21  1266 >>>> 487d3f14d12ecf Benjamin Gaignard 2023-03-21  1267      spin_lock(&q->bufs_lock); >>>>                                                          ^^^^^^^^^^^^^^^^^^^^^^^ >>>> Holding a spin lock. >>>> >>>> 487d3f14d12ecf Benjamin Gaignard 2023-03-21  1268 >>>> 487d3f14d12ecf Benjamin Gaignard 2023-03-21  1269      if (vb->index >= q->max_num_bufs) { >>>> 487d3f14d12ecf Benjamin Gaignard 2023-03-21  1270          struct vb2_buffer **tmp; >>>> 487d3f14d12ecf Benjamin Gaignard 2023-03-21  1271 >>>> 487d3f14d12ecf Benjamin Gaignard 2023-03-21 @1272          tmp = krealloc_array(q->bufs, q->max_num_bufs * 2, sizeof(*q->bufs), GFP_KERNEL); >>>>                                                                                                                                       ^^^^^^^^^^ >>>> Sleeping allocation.  GFP_ATOMIC?  Or is there a way to move the >>>> allocation outside the lock? >>> >>> I will add GFP_ATOMIC flag in next version. >> >> No need. Instead, don't use realloc here, just allocate a new array, copy over all >> the data from the old, and then switch q->bufs with the spinlock held. Then you >> can free the old one. >> >> It's only when you update q->bufs that you need the lock. > > The copy also needs to be protected by the lock. I suspect that that is not needed, since you shouldn't be able to add buffers here since a mutex should be held at this time. That said, it's something that Benjamin needs to analyze. Regards, Hans > >>>> 487d3f14d12ecf Benjamin Gaignard 2023-03-21  1273          if (!tmp) >>>> 487d3f14d12ecf Benjamin Gaignard 2023-03-21  1274              goto realloc_failed; >>>> 487d3f14d12ecf Benjamin Gaignard 2023-03-21  1275 >>>> 487d3f14d12ecf Benjamin Gaignard 2023-03-21  1276          q->max_num_bufs *= 2; >>>> 487d3f14d12ecf Benjamin Gaignard 2023-03-21  1277          q->bufs = tmp; >>>> 487d3f14d12ecf Benjamin Gaignard 2023-03-21  1278      } >>>> 487d3f14d12ecf Benjamin Gaignard 2023-03-21  1279 >>>> 487d3f14d12ecf Benjamin Gaignard 2023-03-21  1280      if (vb->index < q->max_num_bufs) { >>>> 625d46c1c1fe8e Benjamin Gaignard 2023-03-21  1281          q->bufs[vb->index] = vb; >>>> 487d3f14d12ecf Benjamin Gaignard 2023-03-21  1282          ret = true; >>>> 625d46c1c1fe8e Benjamin Gaignard 2023-03-21  1283      } >>>> 625d46c1c1fe8e Benjamin Gaignard 2023-03-21  1284 >>>> 487d3f14d12ecf Benjamin Gaignard 2023-03-21  1285  realloc_failed: >>>> 487d3f14d12ecf Benjamin Gaignard 2023-03-21  1286      spin_unlock(&q->bufs_lock); >>>> 487d3f14d12ecf Benjamin Gaignard 2023-03-21  1287 >>>> 487d3f14d12ecf Benjamin Gaignard 2023-03-21  1288      return ret; >>>> 625d46c1c1fe8e Benjamin Gaignard 2023-03-21  1289  } > 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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 59BACC6FD20 for ; Fri, 24 Mar 2023 08:52:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=b6mG7AXMy+LI1FKOc0mLXXpIPAKPDBjK5OitPdzR/YY=; b=bfziLMxYnvF1oe f7UMdkN0BNMuH3JjKeOSiO/+yB6veCVp2FCPPDy9uvjPGiucNpDDCNQGYv9lSjhGzVVQWrpoXsriG qqGYRHAwjzcbSEhswWrkcwFXjELnIFh/aD75IICp3ulUj5KW4e2cG/aNZpbeyvtSa8pKYSVxcszmM z+jd1zx86LQTCA3Vb5eIBkIHlQ48PIj1NsVjtGXP7E7en9onFO5MIKKnFZpyyPU2kyQm6Vnaa4D5A gB6GUlqoOXb+qQVyJF4yoYDmXg0LaZkbmw7SPHguMuh/iaEUbehRz2e0y7DnbVb4DL9wzrDRXT7U7 8HX6fifi8CEdIptQWPPA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pfd9w-003vJH-2d; Fri, 24 Mar 2023 08:52:28 +0000 Received: from ams.source.kernel.org ([145.40.68.75]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pfd9r-003vHH-2f; Fri, 24 Mar 2023 08:52:25 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 5728FB822B5; Fri, 24 Mar 2023 08:52:22 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6D11DC4339C; Fri, 24 Mar 2023 08:52:15 +0000 (UTC) Message-ID: Date: Fri, 24 Mar 2023 09:52:13 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: [PATCH v2 2/8] media: videobuf2: Make bufs array dynamic allocated Content-Language: en-US To: Laurent Pinchart Cc: Benjamin Gaignard , Dan Carpenter , oe-kbuild@lists.linux.dev, tfiga@chromium.org, m.szyprowski@samsung.com, mchehab@kernel.org, ming.qian@nxp.com, shijie.qin@nxp.com, eagle.zhou@nxp.com, bin.liu@mediatek.com, matthias.bgg@gmail.com, angelogioacchino.delregno@collabora.com, tiffany.lin@mediatek.com, andrew-ct.chen@mediatek.com, yunfei.dong@mediatek.com, stanimir.k.varbanov@gmail.com, quic_vgarodia@quicinc.com, agross@kernel.org, andersson@kernel.org, konrad.dybcio@linaro.org, ezequiel@vanguardiasur.com.ar, p.zabel@pengutronix.de, daniel.almeida@collabora.com, lkp@intel.com, oe-kbuild-all@lists.linux.dev, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-rockchip@lists.infradead.org, kernel@collabora.com References: <4e2cb832-de83-4ba6-bd8a-119a19038cfe@kili.mountain> <20230324084830.GA18895@pendragon.ideasonboard.com> From: Hans Verkuil In-Reply-To: <20230324084830.GA18895@pendragon.ideasonboard.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230324_015224_167595_C643D8B2 X-CRM114-Status: GOOD ( 13.38 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org T24gMjQvMDMvMjAyMyAwOTo0OCwgTGF1cmVudCBQaW5jaGFydCB3cm90ZToKPiBPbiBGcmksIE1h ciAyNCwgMjAyMyBhdCAwOTozMTozNUFNICswMTAwLCBIYW5zIFZlcmt1aWwgd3JvdGU6Cj4+IE9u IDI0LzAzLzIwMjMgMDk6MTEsIEJlbmphbWluIEdhaWduYXJkIHdyb3RlOgo+Pj4KPj4+IExlIDI0 LzAzLzIwMjMgw6AgMDY6MDEsIERhbiBDYXJwZW50ZXIgYSDDqWNyaXTCoDoKPj4+PiBIaSBCZW5q YW1pbiwKPj4+Pgo+Pj4+IGh0dHBzOi8vZ2l0LXNjbS5jb20vZG9jcy9naXQtZm9ybWF0LXBhdGNo I19iYXNlX3RyZWVfaW5mb3JtYXRpb25dCj4+Pj4KPj4+PiB1cmw6wqDCoMKgIGh0dHBzOi8vZ2l0 aHViLmNvbS9pbnRlbC1sYWItbGtwL2xpbnV4L2NvbW1pdHMvQmVuamFtaW4tR2FpZ25hcmQvbWVk aWEtdmlkZW9idWYyLUFjY2Vzcy12YjJfcXVldWUtYnVmcy1hcnJheS10aHJvdWdoLWhlbHBlci1m dW5jdGlvbnMvMjAyMzAzMjEtMTgzMTU0Cj4+Pj4gYmFzZTrCoMKgIGdpdDovL2xpbnV4dHYub3Jn L21lZGlhX3RyZWUuZ2l0IG1hc3Rlcgo+Pj4+IHBhdGNoIGxpbms6wqDCoMKgIGh0dHBzOi8vbG9y ZS5rZXJuZWwub3JnL3IvMjAyMzAzMjExMDI4NTUuMzQ2NzMyLTMtYmVuamFtaW4uZ2FpZ25hcmQl NDBjb2xsYWJvcmEuY29tCj4+Pj4gcGF0Y2ggc3ViamVjdDogW1BBVENIIHYyIDIvOF0gbWVkaWE6 IHZpZGVvYnVmMjogTWFrZSBidWZzIGFycmF5IGR5bmFtaWMgYWxsb2NhdGVkCj4+Pj4gY29uZmln OiBhcm02NC1yYW5kY29uZmlnLW0wNDEtMjAyMzAzMTkgKGh0dHBzOi8vZG93bmxvYWQuMDEub3Jn LzBkYXktY2kvYXJjaGl2ZS8yMDIzMDMyNC8yMDIzMDMyNDAxNDgubEtSblVxVzktbGtwQGludGVs LmNvbS9jb25maWcpCj4+Pj4gY29tcGlsZXI6IGFhcmNoNjQtbGludXgtZ2NjIChHQ0MpIDEyLjEu MAo+Pj4+Cj4+Pj4gSWYgeW91IGZpeCB0aGUgaXNzdWUsIGtpbmRseSBhZGQgZm9sbG93aW5nIHRh ZyB3aGVyZSBhcHBsaWNhYmxlCj4+Pj4gfCBSZXBvcnRlZC1ieToga2VybmVsIHRlc3Qgcm9ib3Qg PGxrcEBpbnRlbC5jb20+Cj4+Pj4gfCBSZXBvcnRlZC1ieTogRGFuIENhcnBlbnRlciA8ZXJyb3Iy N0BnbWFpbC5jb20+Cj4+Pj4gfCBMaW5rOiBodHRwczovL2xvcmUua2VybmVsLm9yZy9yLzIwMjMw MzI0MDE0OC5sS1JuVXFXOS1sa3BAaW50ZWwuY29tLwo+Pj4+Cj4+Pj4gc21hdGNoIHdhcm5pbmdz Ogo+Pj4+IGluY2x1ZGUvbWVkaWEvdmlkZW9idWYyLWNvcmUuaDoxMjcyIHZiMl9xdWV1ZV9hZGRf YnVmZmVyKCkgd2Fybjogc2xlZXBpbmcgaW4gYXRvbWljIGNvbnRleHQKPj4+PiBkcml2ZXJzL21l ZGlhL2NvbW1vbi92aWRlb2J1ZjIvdmlkZW9idWYyLWNvcmUuYzoyNDU2IHZiMl9jb3JlX3F1ZXVl X2luaXQoKSB3YXJuOiBQbGVhc2UgY29uc2lkZXIgdXNpbmcga2NhbGxvYyBpbnN0ZWFkIG9mIGtt YWxsb2NfYXJyYXkKPj4+Pgo+Pj4+IHZpbSArMTI3MiBpbmNsdWRlL21lZGlhL3ZpZGVvYnVmMi1j b3JlLmgKPj4+Pgo+Pj4+IDYyNWQ0NmMxYzFmZThlIEJlbmphbWluIEdhaWduYXJkIDIwMjMtMDMt MjHCoCAxMjYzwqAgc3RhdGljIGlubGluZSBib29sIHZiMl9xdWV1ZV9hZGRfYnVmZmVyKHN0cnVj dCB2YjJfcXVldWUgKnEsIHN0cnVjdCB2YjJfYnVmZmVyICp2YikKPj4+PiA2MjVkNDZjMWMxZmU4 ZSBCZW5qYW1pbiBHYWlnbmFyZCAyMDIzLTAzLTIxwqAgMTI2NMKgIHsKPj4+PiA0ODdkM2YxNGQx MmVjZiBCZW5qYW1pbiBHYWlnbmFyZCAyMDIzLTAzLTIxwqAgMTI2NcKgwqDCoMKgwqAgYm9vbCBy ZXQgPSBmYWxzZTsKPj4+PiA0ODdkM2YxNGQxMmVjZiBCZW5qYW1pbiBHYWlnbmFyZCAyMDIzLTAz LTIxwqAgMTI2Ngo+Pj4+IDQ4N2QzZjE0ZDEyZWNmIEJlbmphbWluIEdhaWduYXJkIDIwMjMtMDMt MjHCoCAxMjY3wqDCoMKgwqDCoCBzcGluX2xvY2soJnEtPmJ1ZnNfbG9jayk7Cj4+Pj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBeXl5eXl5e Xl5eXl5eXl5eXl5eXl5eXgo+Pj4+IEhvbGRpbmcgYSBzcGluIGxvY2suCj4+Pj4KPj4+PiA0ODdk M2YxNGQxMmVjZiBCZW5qYW1pbiBHYWlnbmFyZCAyMDIzLTAzLTIxwqAgMTI2OAo+Pj4+IDQ4N2Qz ZjE0ZDEyZWNmIEJlbmphbWluIEdhaWduYXJkIDIwMjMtMDMtMjHCoCAxMjY5wqDCoMKgwqDCoCBp ZiAodmItPmluZGV4ID49IHEtPm1heF9udW1fYnVmcykgewo+Pj4+IDQ4N2QzZjE0ZDEyZWNmIEJl bmphbWluIEdhaWduYXJkIDIwMjMtMDMtMjHCoCAxMjcwwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVj dCB2YjJfYnVmZmVyICoqdG1wOwo+Pj4+IDQ4N2QzZjE0ZDEyZWNmIEJlbmphbWluIEdhaWduYXJk IDIwMjMtMDMtMjHCoCAxMjcxCj4+Pj4gNDg3ZDNmMTRkMTJlY2YgQmVuamFtaW4gR2FpZ25hcmQg MjAyMy0wMy0yMSBAMTI3MsKgwqDCoMKgwqDCoMKgwqDCoCB0bXAgPSBrcmVhbGxvY19hcnJheShx LT5idWZzLCBxLT5tYXhfbnVtX2J1ZnMgKiAyLCBzaXplb2YoKnEtPmJ1ZnMpLCBHRlBfS0VSTkVM KTsKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBeXl5eXl5eXl5e Cj4+Pj4gU2xlZXBpbmcgYWxsb2NhdGlvbi7CoCBHRlBfQVRPTUlDP8KgIE9yIGlzIHRoZXJlIGEg d2F5IHRvIG1vdmUgdGhlCj4+Pj4gYWxsb2NhdGlvbiBvdXRzaWRlIHRoZSBsb2NrPwo+Pj4KPj4+ IEkgd2lsbCBhZGQgR0ZQX0FUT01JQyBmbGFnIGluIG5leHQgdmVyc2lvbi4KPj4KPj4gTm8gbmVl ZC4gSW5zdGVhZCwgZG9uJ3QgdXNlIHJlYWxsb2MgaGVyZSwganVzdCBhbGxvY2F0ZSBhIG5ldyBh cnJheSwgY29weSBvdmVyIGFsbAo+PiB0aGUgZGF0YSBmcm9tIHRoZSBvbGQsIGFuZCB0aGVuIHN3 aXRjaCBxLT5idWZzIHdpdGggdGhlIHNwaW5sb2NrIGhlbGQuIFRoZW4geW91Cj4+IGNhbiBmcmVl IHRoZSBvbGQgb25lLgo+Pgo+PiBJdCdzIG9ubHkgd2hlbiB5b3UgdXBkYXRlIHEtPmJ1ZnMgdGhh dCB5b3UgbmVlZCB0aGUgbG9jay4KPiAKPiBUaGUgY29weSBhbHNvIG5lZWRzIHRvIGJlIHByb3Rl Y3RlZCBieSB0aGUgbG9jay4KCkkgc3VzcGVjdCB0aGF0IHRoYXQgaXMgbm90IG5lZWRlZCwgc2lu Y2UgeW91IHNob3VsZG4ndCBiZSBhYmxlIHRvIGFkZCBidWZmZXJzIGhlcmUKc2luY2UgYSBtdXRl eCBzaG91bGQgYmUgaGVsZCBhdCB0aGlzIHRpbWUuCgpUaGF0IHNhaWQsIGl0J3Mgc29tZXRoaW5n IHRoYXQgQmVuamFtaW4gbmVlZHMgdG8gYW5hbHl6ZS4KClJlZ2FyZHMsCgoJSGFucwoKPiAKPj4+ PiA0ODdkM2YxNGQxMmVjZiBCZW5qYW1pbiBHYWlnbmFyZCAyMDIzLTAzLTIxwqAgMTI3M8KgwqDC oMKgwqDCoMKgwqDCoCBpZiAoIXRtcCkKPj4+PiA0ODdkM2YxNGQxMmVjZiBCZW5qYW1pbiBHYWln bmFyZCAyMDIzLTAzLTIxwqAgMTI3NMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGdvdG8gcmVh bGxvY19mYWlsZWQ7Cj4+Pj4gNDg3ZDNmMTRkMTJlY2YgQmVuamFtaW4gR2FpZ25hcmQgMjAyMy0w My0yMcKgIDEyNzUKPj4+PiA0ODdkM2YxNGQxMmVjZiBCZW5qYW1pbiBHYWlnbmFyZCAyMDIzLTAz LTIxwqAgMTI3NsKgwqDCoMKgwqDCoMKgwqDCoCBxLT5tYXhfbnVtX2J1ZnMgKj0gMjsKPj4+PiA0 ODdkM2YxNGQxMmVjZiBCZW5qYW1pbiBHYWlnbmFyZCAyMDIzLTAzLTIxwqAgMTI3N8KgwqDCoMKg wqDCoMKgwqDCoCBxLT5idWZzID0gdG1wOwo+Pj4+IDQ4N2QzZjE0ZDEyZWNmIEJlbmphbWluIEdh aWduYXJkIDIwMjMtMDMtMjHCoCAxMjc4wqDCoMKgwqDCoCB9Cj4+Pj4gNDg3ZDNmMTRkMTJlY2Yg QmVuamFtaW4gR2FpZ25hcmQgMjAyMy0wMy0yMcKgIDEyNzkKPj4+PiA0ODdkM2YxNGQxMmVjZiBC ZW5qYW1pbiBHYWlnbmFyZCAyMDIzLTAzLTIxwqAgMTI4MMKgwqDCoMKgwqAgaWYgKHZiLT5pbmRl eCA8IHEtPm1heF9udW1fYnVmcykgewo+Pj4+IDYyNWQ0NmMxYzFmZThlIEJlbmphbWluIEdhaWdu YXJkIDIwMjMtMDMtMjHCoCAxMjgxwqDCoMKgwqDCoMKgwqDCoMKgIHEtPmJ1ZnNbdmItPmluZGV4 XSA9IHZiOwo+Pj4+IDQ4N2QzZjE0ZDEyZWNmIEJlbmphbWluIEdhaWduYXJkIDIwMjMtMDMtMjHC oCAxMjgywqDCoMKgwqDCoMKgwqDCoMKgIHJldCA9IHRydWU7Cj4+Pj4gNjI1ZDQ2YzFjMWZlOGUg QmVuamFtaW4gR2FpZ25hcmQgMjAyMy0wMy0yMcKgIDEyODPCoMKgwqDCoMKgIH0KPj4+PiA2MjVk NDZjMWMxZmU4ZSBCZW5qYW1pbiBHYWlnbmFyZCAyMDIzLTAzLTIxwqAgMTI4NAo+Pj4+IDQ4N2Qz ZjE0ZDEyZWNmIEJlbmphbWluIEdhaWduYXJkIDIwMjMtMDMtMjHCoCAxMjg1wqAgcmVhbGxvY19m YWlsZWQ6Cj4+Pj4gNDg3ZDNmMTRkMTJlY2YgQmVuamFtaW4gR2FpZ25hcmQgMjAyMy0wMy0yMcKg IDEyODbCoMKgwqDCoMKgIHNwaW5fdW5sb2NrKCZxLT5idWZzX2xvY2spOwo+Pj4+IDQ4N2QzZjE0 ZDEyZWNmIEJlbmphbWluIEdhaWduYXJkIDIwMjMtMDMtMjHCoCAxMjg3Cj4+Pj4gNDg3ZDNmMTRk MTJlY2YgQmVuamFtaW4gR2FpZ25hcmQgMjAyMy0wMy0yMcKgIDEyODjCoMKgwqDCoMKgIHJldHVy biByZXQ7Cj4+Pj4gNjI1ZDQ2YzFjMWZlOGUgQmVuamFtaW4gR2FpZ25hcmQgMjAyMy0wMy0yMcKg IDEyODnCoCB9Cj4gCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KTGludXgtcm9ja2NoaXAgbWFpbGluZyBsaXN0CkxpbnV4LXJvY2tjaGlwQGxpc3RzLmlu ZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9s aW51eC1yb2NrY2hpcAo= 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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D5D2BC6FD20 for ; Fri, 24 Mar 2023 08:53:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=EBLJjul/x5Pbxu9jL6qJafqKTDhbKb+mZUk6HtjE5iA=; b=f7yZxjFbmktDRO vW3LwYL7SijnGvjlHPQg2mw2IU/5tUaEfAULq34q6LfhGBs37XfIJC46CoGSA+1u8xC0j2KxahXGI kea/NNO2mW8DYqBXU4wkpp3o3GqW15YsfUt/17V+/NPI1P2t3ElbKF/nbTcLGp8RYrr3kDG4aTdY7 owY7/jncRvGJ2IoHVIcjbL6o3TPehk3vQwhGHrWnPYUpWMP3m6tgIQaQjoojUrn2lgzrqz3frGjMv iLW9kQ4ho7ls7AbXm8svjGdZuIl1e1zfqfm9osY0qC8JzxPHWF9atKkTBUrJSKhcyZkMn7TPlfRoc oXQAx7bT9HpfZ5zbo7eA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pfd9v-003vIT-1R; Fri, 24 Mar 2023 08:52:27 +0000 Received: from ams.source.kernel.org ([145.40.68.75]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pfd9r-003vHH-2f; Fri, 24 Mar 2023 08:52:25 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 5728FB822B5; Fri, 24 Mar 2023 08:52:22 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6D11DC4339C; Fri, 24 Mar 2023 08:52:15 +0000 (UTC) Message-ID: Date: Fri, 24 Mar 2023 09:52:13 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: [PATCH v2 2/8] media: videobuf2: Make bufs array dynamic allocated Content-Language: en-US To: Laurent Pinchart Cc: Benjamin Gaignard , Dan Carpenter , oe-kbuild@lists.linux.dev, tfiga@chromium.org, m.szyprowski@samsung.com, mchehab@kernel.org, ming.qian@nxp.com, shijie.qin@nxp.com, eagle.zhou@nxp.com, bin.liu@mediatek.com, matthias.bgg@gmail.com, angelogioacchino.delregno@collabora.com, tiffany.lin@mediatek.com, andrew-ct.chen@mediatek.com, yunfei.dong@mediatek.com, stanimir.k.varbanov@gmail.com, quic_vgarodia@quicinc.com, agross@kernel.org, andersson@kernel.org, konrad.dybcio@linaro.org, ezequiel@vanguardiasur.com.ar, p.zabel@pengutronix.de, daniel.almeida@collabora.com, lkp@intel.com, oe-kbuild-all@lists.linux.dev, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-rockchip@lists.infradead.org, kernel@collabora.com References: <4e2cb832-de83-4ba6-bd8a-119a19038cfe@kili.mountain> <20230324084830.GA18895@pendragon.ideasonboard.com> From: Hans Verkuil In-Reply-To: <20230324084830.GA18895@pendragon.ideasonboard.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230324_015224_167595_C643D8B2 X-CRM114-Status: GOOD ( 13.38 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , 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 T24gMjQvMDMvMjAyMyAwOTo0OCwgTGF1cmVudCBQaW5jaGFydCB3cm90ZToKPiBPbiBGcmksIE1h ciAyNCwgMjAyMyBhdCAwOTozMTozNUFNICswMTAwLCBIYW5zIFZlcmt1aWwgd3JvdGU6Cj4+IE9u IDI0LzAzLzIwMjMgMDk6MTEsIEJlbmphbWluIEdhaWduYXJkIHdyb3RlOgo+Pj4KPj4+IExlIDI0 LzAzLzIwMjMgw6AgMDY6MDEsIERhbiBDYXJwZW50ZXIgYSDDqWNyaXTCoDoKPj4+PiBIaSBCZW5q YW1pbiwKPj4+Pgo+Pj4+IGh0dHBzOi8vZ2l0LXNjbS5jb20vZG9jcy9naXQtZm9ybWF0LXBhdGNo I19iYXNlX3RyZWVfaW5mb3JtYXRpb25dCj4+Pj4KPj4+PiB1cmw6wqDCoMKgIGh0dHBzOi8vZ2l0 aHViLmNvbS9pbnRlbC1sYWItbGtwL2xpbnV4L2NvbW1pdHMvQmVuamFtaW4tR2FpZ25hcmQvbWVk aWEtdmlkZW9idWYyLUFjY2Vzcy12YjJfcXVldWUtYnVmcy1hcnJheS10aHJvdWdoLWhlbHBlci1m dW5jdGlvbnMvMjAyMzAzMjEtMTgzMTU0Cj4+Pj4gYmFzZTrCoMKgIGdpdDovL2xpbnV4dHYub3Jn L21lZGlhX3RyZWUuZ2l0IG1hc3Rlcgo+Pj4+IHBhdGNoIGxpbms6wqDCoMKgIGh0dHBzOi8vbG9y ZS5rZXJuZWwub3JnL3IvMjAyMzAzMjExMDI4NTUuMzQ2NzMyLTMtYmVuamFtaW4uZ2FpZ25hcmQl NDBjb2xsYWJvcmEuY29tCj4+Pj4gcGF0Y2ggc3ViamVjdDogW1BBVENIIHYyIDIvOF0gbWVkaWE6 IHZpZGVvYnVmMjogTWFrZSBidWZzIGFycmF5IGR5bmFtaWMgYWxsb2NhdGVkCj4+Pj4gY29uZmln OiBhcm02NC1yYW5kY29uZmlnLW0wNDEtMjAyMzAzMTkgKGh0dHBzOi8vZG93bmxvYWQuMDEub3Jn LzBkYXktY2kvYXJjaGl2ZS8yMDIzMDMyNC8yMDIzMDMyNDAxNDgubEtSblVxVzktbGtwQGludGVs LmNvbS9jb25maWcpCj4+Pj4gY29tcGlsZXI6IGFhcmNoNjQtbGludXgtZ2NjIChHQ0MpIDEyLjEu MAo+Pj4+Cj4+Pj4gSWYgeW91IGZpeCB0aGUgaXNzdWUsIGtpbmRseSBhZGQgZm9sbG93aW5nIHRh ZyB3aGVyZSBhcHBsaWNhYmxlCj4+Pj4gfCBSZXBvcnRlZC1ieToga2VybmVsIHRlc3Qgcm9ib3Qg PGxrcEBpbnRlbC5jb20+Cj4+Pj4gfCBSZXBvcnRlZC1ieTogRGFuIENhcnBlbnRlciA8ZXJyb3Iy N0BnbWFpbC5jb20+Cj4+Pj4gfCBMaW5rOiBodHRwczovL2xvcmUua2VybmVsLm9yZy9yLzIwMjMw MzI0MDE0OC5sS1JuVXFXOS1sa3BAaW50ZWwuY29tLwo+Pj4+Cj4+Pj4gc21hdGNoIHdhcm5pbmdz Ogo+Pj4+IGluY2x1ZGUvbWVkaWEvdmlkZW9idWYyLWNvcmUuaDoxMjcyIHZiMl9xdWV1ZV9hZGRf YnVmZmVyKCkgd2Fybjogc2xlZXBpbmcgaW4gYXRvbWljIGNvbnRleHQKPj4+PiBkcml2ZXJzL21l ZGlhL2NvbW1vbi92aWRlb2J1ZjIvdmlkZW9idWYyLWNvcmUuYzoyNDU2IHZiMl9jb3JlX3F1ZXVl X2luaXQoKSB3YXJuOiBQbGVhc2UgY29uc2lkZXIgdXNpbmcga2NhbGxvYyBpbnN0ZWFkIG9mIGtt YWxsb2NfYXJyYXkKPj4+Pgo+Pj4+IHZpbSArMTI3MiBpbmNsdWRlL21lZGlhL3ZpZGVvYnVmMi1j b3JlLmgKPj4+Pgo+Pj4+IDYyNWQ0NmMxYzFmZThlIEJlbmphbWluIEdhaWduYXJkIDIwMjMtMDMt MjHCoCAxMjYzwqAgc3RhdGljIGlubGluZSBib29sIHZiMl9xdWV1ZV9hZGRfYnVmZmVyKHN0cnVj dCB2YjJfcXVldWUgKnEsIHN0cnVjdCB2YjJfYnVmZmVyICp2YikKPj4+PiA2MjVkNDZjMWMxZmU4 ZSBCZW5qYW1pbiBHYWlnbmFyZCAyMDIzLTAzLTIxwqAgMTI2NMKgIHsKPj4+PiA0ODdkM2YxNGQx MmVjZiBCZW5qYW1pbiBHYWlnbmFyZCAyMDIzLTAzLTIxwqAgMTI2NcKgwqDCoMKgwqAgYm9vbCBy ZXQgPSBmYWxzZTsKPj4+PiA0ODdkM2YxNGQxMmVjZiBCZW5qYW1pbiBHYWlnbmFyZCAyMDIzLTAz LTIxwqAgMTI2Ngo+Pj4+IDQ4N2QzZjE0ZDEyZWNmIEJlbmphbWluIEdhaWduYXJkIDIwMjMtMDMt MjHCoCAxMjY3wqDCoMKgwqDCoCBzcGluX2xvY2soJnEtPmJ1ZnNfbG9jayk7Cj4+Pj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBeXl5eXl5e Xl5eXl5eXl5eXl5eXl5eXgo+Pj4+IEhvbGRpbmcgYSBzcGluIGxvY2suCj4+Pj4KPj4+PiA0ODdk M2YxNGQxMmVjZiBCZW5qYW1pbiBHYWlnbmFyZCAyMDIzLTAzLTIxwqAgMTI2OAo+Pj4+IDQ4N2Qz ZjE0ZDEyZWNmIEJlbmphbWluIEdhaWduYXJkIDIwMjMtMDMtMjHCoCAxMjY5wqDCoMKgwqDCoCBp ZiAodmItPmluZGV4ID49IHEtPm1heF9udW1fYnVmcykgewo+Pj4+IDQ4N2QzZjE0ZDEyZWNmIEJl bmphbWluIEdhaWduYXJkIDIwMjMtMDMtMjHCoCAxMjcwwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVj dCB2YjJfYnVmZmVyICoqdG1wOwo+Pj4+IDQ4N2QzZjE0ZDEyZWNmIEJlbmphbWluIEdhaWduYXJk IDIwMjMtMDMtMjHCoCAxMjcxCj4+Pj4gNDg3ZDNmMTRkMTJlY2YgQmVuamFtaW4gR2FpZ25hcmQg MjAyMy0wMy0yMSBAMTI3MsKgwqDCoMKgwqDCoMKgwqDCoCB0bXAgPSBrcmVhbGxvY19hcnJheShx LT5idWZzLCBxLT5tYXhfbnVtX2J1ZnMgKiAyLCBzaXplb2YoKnEtPmJ1ZnMpLCBHRlBfS0VSTkVM KTsKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBeXl5eXl5eXl5e Cj4+Pj4gU2xlZXBpbmcgYWxsb2NhdGlvbi7CoCBHRlBfQVRPTUlDP8KgIE9yIGlzIHRoZXJlIGEg d2F5IHRvIG1vdmUgdGhlCj4+Pj4gYWxsb2NhdGlvbiBvdXRzaWRlIHRoZSBsb2NrPwo+Pj4KPj4+ IEkgd2lsbCBhZGQgR0ZQX0FUT01JQyBmbGFnIGluIG5leHQgdmVyc2lvbi4KPj4KPj4gTm8gbmVl ZC4gSW5zdGVhZCwgZG9uJ3QgdXNlIHJlYWxsb2MgaGVyZSwganVzdCBhbGxvY2F0ZSBhIG5ldyBh cnJheSwgY29weSBvdmVyIGFsbAo+PiB0aGUgZGF0YSBmcm9tIHRoZSBvbGQsIGFuZCB0aGVuIHN3 aXRjaCBxLT5idWZzIHdpdGggdGhlIHNwaW5sb2NrIGhlbGQuIFRoZW4geW91Cj4+IGNhbiBmcmVl IHRoZSBvbGQgb25lLgo+Pgo+PiBJdCdzIG9ubHkgd2hlbiB5b3UgdXBkYXRlIHEtPmJ1ZnMgdGhh dCB5b3UgbmVlZCB0aGUgbG9jay4KPiAKPiBUaGUgY29weSBhbHNvIG5lZWRzIHRvIGJlIHByb3Rl Y3RlZCBieSB0aGUgbG9jay4KCkkgc3VzcGVjdCB0aGF0IHRoYXQgaXMgbm90IG5lZWRlZCwgc2lu Y2UgeW91IHNob3VsZG4ndCBiZSBhYmxlIHRvIGFkZCBidWZmZXJzIGhlcmUKc2luY2UgYSBtdXRl eCBzaG91bGQgYmUgaGVsZCBhdCB0aGlzIHRpbWUuCgpUaGF0IHNhaWQsIGl0J3Mgc29tZXRoaW5n IHRoYXQgQmVuamFtaW4gbmVlZHMgdG8gYW5hbHl6ZS4KClJlZ2FyZHMsCgoJSGFucwoKPiAKPj4+ PiA0ODdkM2YxNGQxMmVjZiBCZW5qYW1pbiBHYWlnbmFyZCAyMDIzLTAzLTIxwqAgMTI3M8KgwqDC oMKgwqDCoMKgwqDCoCBpZiAoIXRtcCkKPj4+PiA0ODdkM2YxNGQxMmVjZiBCZW5qYW1pbiBHYWln bmFyZCAyMDIzLTAzLTIxwqAgMTI3NMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGdvdG8gcmVh bGxvY19mYWlsZWQ7Cj4+Pj4gNDg3ZDNmMTRkMTJlY2YgQmVuamFtaW4gR2FpZ25hcmQgMjAyMy0w My0yMcKgIDEyNzUKPj4+PiA0ODdkM2YxNGQxMmVjZiBCZW5qYW1pbiBHYWlnbmFyZCAyMDIzLTAz LTIxwqAgMTI3NsKgwqDCoMKgwqDCoMKgwqDCoCBxLT5tYXhfbnVtX2J1ZnMgKj0gMjsKPj4+PiA0 ODdkM2YxNGQxMmVjZiBCZW5qYW1pbiBHYWlnbmFyZCAyMDIzLTAzLTIxwqAgMTI3N8KgwqDCoMKg wqDCoMKgwqDCoCBxLT5idWZzID0gdG1wOwo+Pj4+IDQ4N2QzZjE0ZDEyZWNmIEJlbmphbWluIEdh aWduYXJkIDIwMjMtMDMtMjHCoCAxMjc4wqDCoMKgwqDCoCB9Cj4+Pj4gNDg3ZDNmMTRkMTJlY2Yg QmVuamFtaW4gR2FpZ25hcmQgMjAyMy0wMy0yMcKgIDEyNzkKPj4+PiA0ODdkM2YxNGQxMmVjZiBC ZW5qYW1pbiBHYWlnbmFyZCAyMDIzLTAzLTIxwqAgMTI4MMKgwqDCoMKgwqAgaWYgKHZiLT5pbmRl eCA8IHEtPm1heF9udW1fYnVmcykgewo+Pj4+IDYyNWQ0NmMxYzFmZThlIEJlbmphbWluIEdhaWdu YXJkIDIwMjMtMDMtMjHCoCAxMjgxwqDCoMKgwqDCoMKgwqDCoMKgIHEtPmJ1ZnNbdmItPmluZGV4 XSA9IHZiOwo+Pj4+IDQ4N2QzZjE0ZDEyZWNmIEJlbmphbWluIEdhaWduYXJkIDIwMjMtMDMtMjHC oCAxMjgywqDCoMKgwqDCoMKgwqDCoMKgIHJldCA9IHRydWU7Cj4+Pj4gNjI1ZDQ2YzFjMWZlOGUg QmVuamFtaW4gR2FpZ25hcmQgMjAyMy0wMy0yMcKgIDEyODPCoMKgwqDCoMKgIH0KPj4+PiA2MjVk NDZjMWMxZmU4ZSBCZW5qYW1pbiBHYWlnbmFyZCAyMDIzLTAzLTIxwqAgMTI4NAo+Pj4+IDQ4N2Qz ZjE0ZDEyZWNmIEJlbmphbWluIEdhaWduYXJkIDIwMjMtMDMtMjHCoCAxMjg1wqAgcmVhbGxvY19m YWlsZWQ6Cj4+Pj4gNDg3ZDNmMTRkMTJlY2YgQmVuamFtaW4gR2FpZ25hcmQgMjAyMy0wMy0yMcKg IDEyODbCoMKgwqDCoMKgIHNwaW5fdW5sb2NrKCZxLT5idWZzX2xvY2spOwo+Pj4+IDQ4N2QzZjE0 ZDEyZWNmIEJlbmphbWluIEdhaWduYXJkIDIwMjMtMDMtMjHCoCAxMjg3Cj4+Pj4gNDg3ZDNmMTRk MTJlY2YgQmVuamFtaW4gR2FpZ25hcmQgMjAyMy0wMy0yMcKgIDEyODjCoMKgwqDCoMKgIHJldHVy biByZXQ7Cj4+Pj4gNjI1ZDQ2YzFjMWZlOGUgQmVuamFtaW4gR2FpZ25hcmQgMjAyMy0wMy0yMcKg IDEyODnCoCB9Cj4gCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0 cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGlu Zm8vbGludXgtYXJtLWtlcm5lbAo=