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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id BEDE0C433F5 for ; Fri, 20 May 2022 18:09:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1352432AbiETSJb (ORCPT ); Fri, 20 May 2022 14:09:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57300 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231983AbiETSJ1 (ORCPT ); Fri, 20 May 2022 14:09:27 -0400 Received: from mail-qt1-x82f.google.com (mail-qt1-x82f.google.com [IPv6:2607:f8b0:4864:20::82f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F3D4318C074 for ; Fri, 20 May 2022 11:09:26 -0700 (PDT) Received: by mail-qt1-x82f.google.com with SMTP id fu47so7537673qtb.5 for ; Fri, 20 May 2022 11:09:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ndufresne-ca.20210112.gappssmtp.com; s=20210112; h=message-id:subject:from:to:cc:date:in-reply-to:references :content-transfer-encoding:user-agent:mime-version; bh=NR3kZ49dmkT1KeVAfKZ4S7OqnOEH8qjrvmWh2/OGKUI=; b=vhA7rOy41zBfrp7nAjtyoVUjn1qW+jwuo0H36oHDZu1PGGIoqBjwWZTQqj5pohxFcU pKr2w1tqeku841iCY46Qlx8V9+ekdS/0R9ZvgB/F2vhL17kHlkkVdlyTyyG1Ri7hvJb+ dfVc5L7Ein0cyBCQ3m5HkrZSlAs9VkRfjUvR2R2U+9YIKbAabIueTdVvFPUVqQQQamqn ZHTHhcuPHwDduWtQn62rp51FYZ1UHCCNO0LL2T1l72o1rD8Hiza0l+q9DT33K7KGGM7q M4YycQCOJzFsn6dR1BHS6ZWEzph/zY5+1rtwzOILcVgAPfpBEhWqnzkaulsuqf8Gbg07 7Hnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:content-transfer-encoding:user-agent:mime-version; bh=NR3kZ49dmkT1KeVAfKZ4S7OqnOEH8qjrvmWh2/OGKUI=; b=engvhXS7Yo2twFPhPq8XY9j/qiXWlLReQKM9RExm8Rhq2j9/ozwd8rBkK9PCBm139M E8bpqrap+x/TNwVi8eXKK4EZYZs6nL1P8SksCS20HRr+q587vcJWzvm/IesnDArfi1VA AsUA2fUVxRKaeLHpVaaNF/hXWVyDdrZG2S81+E6xGdQuXeBOC43k0NhsGC7dwor+zJcz vwC/0uQMpFI9sDriqKDclAoDxbIM98AGif9vLR2NYc/FMmoGWZv9NL8Cd35TRl2UrWi5 BkgtbnPieAhF02tRi7U3BqSrzVQstLR6/I3O5SmdFDT8PhJiDTjT/vgVaVIIvEcTAwwR Gx8g== X-Gm-Message-State: AOAM532p0SnB3o8N025EnV46guRoAoWyv6q7y1mzMxvyeSoPR3thMzm/ PCTP+IzSrS9pjHtPJs1hI/Iw9A== X-Google-Smtp-Source: ABdhPJzQMahI/6mv9fxIYp/N8Ntlckg1blDgzhWZsiFQ79buITzh8AG5WIt0Cth3NvMWJ658ylfNiQ== X-Received: by 2002:ac8:5b4d:0:b0:2f6:3ee7:6231 with SMTP id n13-20020ac85b4d000000b002f63ee76231mr8916799qtw.4.1653070166133; Fri, 20 May 2022 11:09:26 -0700 (PDT) Received: from nicolas-tpx395.localdomain (173-246-12-168.qc.cable.ebox.net. [173.246.12.168]) by smtp.gmail.com with ESMTPSA id f21-20020a05622a1a1500b002f917d2d3cbsm74318qtb.76.2022.05.20.11.09.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 May 2022 11:09:25 -0700 (PDT) Message-ID: <6187a0514757dd50734175ceebcc0061d8eb6c5b.camel@ndufresne.ca> Subject: Re: [EXT] Re: [PATCH] media: amphion: return error if format is unsupported by vpu From: Nicolas Dufresne To: Ming Qian , "mchehab@kernel.org" , "hverkuil-cisco@xs4all.nl" Cc: "shawnguo@kernel.org" , "robh+dt@kernel.org" , "s.hauer@pengutronix.de" , "kernel@pengutronix.de" , "festevam@gmail.com" , dl-linux-imx , "linux-media@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" Date: Fri, 20 May 2022 14:09:22 -0400 In-Reply-To: References: <20220519072844.31792-1-ming.qian@nxp.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.44.1 (3.44.1-1.fc36) MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Le vendredi 20 mai 2022 =C3=A0 01:25 +0000, Ming Qian a =C3=A9crit=C2=A0: > > From: Nicolas Dufresne [mailto:nicolas@ndufresne.ca] > > Sent: Friday, May 20, 2022 2:13 AM > > To: Ming Qian ; mchehab@kernel.org; > > hverkuil-cisco@xs4all.nl > > Cc: shawnguo@kernel.org; robh+dt@kernel.org; s.hauer@pengutronix.de; > > kernel@pengutronix.de; festevam@gmail.com; dl-linux-imx > > ; linux-media@vger.kernel.org; > > linux-kernel@vger.kernel.org; linux-arm-kernel@lists.infradead.org > > Subject: [EXT] Re: [PATCH] media: amphion: return error if format is > > unsupported by vpu > >=20 > > Caution: EXT Email > >=20 > > Hi Ming Qian, > >=20 > > Le jeudi 19 mai 2022 =C3=A0 15:28 +0800, Ming Qian a =C3=A9crit : > > > return error if format is unsupported by vpu, otherwise the vpu will > > > be stalled at decoding > >=20 > > I have a reasonable doubt about this patch. I don't think such a case s= hould > > be > > reachable by users. Normally, calls to S_FMT should ensure the driver f= ormat > > state is valid on both ends but modifying the relevant structures. As a= n > > example, for decoders, setting the CODEC (OUTPUT queue) format, may > > change the raw format (CAPTURE queue) implicitly to prevent this situat= ion. > > Are we certain this change isn't papering around some missing format > > propagation ? > >=20 > > regards, > > Nicolas > >=20 >=20 > Hi Nicolas, > =C2=A0=C2=A0=C2=A0=C2=A0You're right, it's not reachable currently. > =C2=A0=C2=A0=C2=A0=C2=A0And there are some formats supported by VPU, but = I didn't add support in > driver, as they are not defined in kernel yet. > So if someone wants to enable them in future, and if he only adds a forma= t > into vdec_formats[] without modifying the vpu_malone part , then he can > enum_fmt and set_fmt successfully, but meet vpu hang without any error > message. > I think driver should report an error in case of the new format is > not implemented fully. Fair point, but it should be bug_on or at least an error trace. regards, Nicolas >=20 > Ming >=20 > > >=20 > > > Signed-off-by: Ming Qian > > > --- > > > =C2=A0drivers/media/platform/amphion/vpu_malone.c | 2 ++ > > > =C2=A0drivers/media/platform/amphion/vpu_v4l2.c | 4 ++-- > > > =C2=A02 files changed, 4 insertions(+), 2 deletions(-) > > >=20 > > > diff --git a/drivers/media/platform/amphion/vpu_malone.c > > > b/drivers/media/platform/amphion/vpu_malone.c > > > index f29c223eefce..0930b6ba8c42 100644 > > > --- a/drivers/media/platform/amphion/vpu_malone.c > > > +++ b/drivers/media/platform/amphion/vpu_malone.c > > > @@ -610,6 +610,8 @@ static int vpu_malone_set_params(struct > > vpu_shared_addr *shared, > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0enum vpu_malone_format malone_for= mat; > > >=20 > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0malone_format =3D > > vpu_malone_format_remap(params->codec_format); > > > + if (malone_format =3D=3D MALONE_FMT_NULL) > > > + return -EINVAL; > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0iface->udata_buffer[instance].bas= e =3D params->udata.base; > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0iface->udata_buffer[instance].slo= t_size =3D params->udata.size; > > >=20 > > > diff --git a/drivers/media/platform/amphion/vpu_v4l2.c > > > b/drivers/media/platform/amphion/vpu_v4l2.c > > > index 446f07d09d0b..89b88e063e45 100644 > > > --- a/drivers/media/platform/amphion/vpu_v4l2.c > > > +++ b/drivers/media/platform/amphion/vpu_v4l2.c > > > @@ -500,10 +500,10 @@ static int vpu_vb2_start_streaming(struct > > vb2_queue *q, unsigned int count) > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0fmt->sizeimage[1], fmt->bytesperline[1], > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0fmt->sizeimage[2], fmt->bytesperline[2], > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0q->num_buffers); > > > - call_void_vop(inst, start, q->type); > > > + ret =3D call_vop(inst, start, q->type); > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0vb2_clear_last_buffer_dequeued(q)= ; > > >=20 > > > - return 0; > > > + return ret; > > > =C2=A0} > > >=20 > > > =C2=A0static void vpu_vb2_stop_streaming(struct vb2_queue *q) >=20 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 9521BC433F5 for ; Fri, 20 May 2022 18:10:48 +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:MIME-Version:References:In-Reply-To: Date:Cc:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=ilsGp6Df7hm4Nc/rrbQNA47aJcdpQQhx1IuxhjD/Itc=; b=kq9tUHgedNOMVG jCdxBZfFEB8mX5Vtrnt9VJtCyT3bXP0vaNmc9Vq6STgl0Vgf5+0neAXfbmFauuCPipLCTab6X3Ljf vu4iuk+SLXopYx15lC6YZ1AeCI71t63XLsgOEmz3tu/QCzYxZDa9BKwIVCjYnNcypsnHkRxF3dkHf /uq7prRYo9pf7SFzjx759qXkAeWkIiETu1OUybcIjnrdm+YaaksyvelPkH0JcJuqhH3ziEwPR96bt az6tN1i707o0O8JSupBwFV4wdKjIuBSDq1XjD7TjduvtXusotqKo31lf/gaDgPnu8YCfQZTpCENes flt7qYahXJnJ8SP+jA2Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ns748-00E0LO-BS; Fri, 20 May 2022 18:09:32 +0000 Received: from mail-qt1-x831.google.com ([2607:f8b0:4864:20::831]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ns744-00E0Kl-Kh for linux-arm-kernel@lists.infradead.org; Fri, 20 May 2022 18:09:30 +0000 Received: by mail-qt1-x831.google.com with SMTP id v14so7543824qtc.3 for ; Fri, 20 May 2022 11:09:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ndufresne-ca.20210112.gappssmtp.com; s=20210112; h=message-id:subject:from:to:cc:date:in-reply-to:references :content-transfer-encoding:user-agent:mime-version; bh=NR3kZ49dmkT1KeVAfKZ4S7OqnOEH8qjrvmWh2/OGKUI=; b=vhA7rOy41zBfrp7nAjtyoVUjn1qW+jwuo0H36oHDZu1PGGIoqBjwWZTQqj5pohxFcU pKr2w1tqeku841iCY46Qlx8V9+ekdS/0R9ZvgB/F2vhL17kHlkkVdlyTyyG1Ri7hvJb+ dfVc5L7Ein0cyBCQ3m5HkrZSlAs9VkRfjUvR2R2U+9YIKbAabIueTdVvFPUVqQQQamqn ZHTHhcuPHwDduWtQn62rp51FYZ1UHCCNO0LL2T1l72o1rD8Hiza0l+q9DT33K7KGGM7q M4YycQCOJzFsn6dR1BHS6ZWEzph/zY5+1rtwzOILcVgAPfpBEhWqnzkaulsuqf8Gbg07 7Hnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:content-transfer-encoding:user-agent:mime-version; bh=NR3kZ49dmkT1KeVAfKZ4S7OqnOEH8qjrvmWh2/OGKUI=; b=cncW9Wom6hsDWElSasdWcMMnoLbrlsF8RHSNGby6MYnSQ6A4DrvVBg2eU84eYQ3BeR OvBJ5QPvrV4q/ACpH9SyyrjAJrN5o1kzrxSEUo/zdNduIA1TuUsv3YAswQSUf8MRjaB8 DBPVaZ8Zg5VN4zxeMZ/fTIBhYwiY10K/L35OqZODYviw6pp7T3ojQD543ppSAPFT6cfQ bqT9IIGgOk1b+dk9wIhhDMjstoqrL20XDLSKkIn1RGQqFHZJO2ldR0aKsYlRZz5KOtGA LZi4H5oyMKuFsndOk172SMtoRWGWZZRd/n6AzIiVQgWgjlUio2j4YPBXfGpCY2JPNsgk uDyQ== X-Gm-Message-State: AOAM5312o3qxL7jf5qRlvQOzZZO+5R79w5zqqvyl9hDp+nTw8SeN2VR1 9AxlmxfzPnngUFTuYtuUVsBDyQ== X-Google-Smtp-Source: ABdhPJzQMahI/6mv9fxIYp/N8Ntlckg1blDgzhWZsiFQ79buITzh8AG5WIt0Cth3NvMWJ658ylfNiQ== X-Received: by 2002:ac8:5b4d:0:b0:2f6:3ee7:6231 with SMTP id n13-20020ac85b4d000000b002f63ee76231mr8916799qtw.4.1653070166133; Fri, 20 May 2022 11:09:26 -0700 (PDT) Received: from nicolas-tpx395.localdomain (173-246-12-168.qc.cable.ebox.net. [173.246.12.168]) by smtp.gmail.com with ESMTPSA id f21-20020a05622a1a1500b002f917d2d3cbsm74318qtb.76.2022.05.20.11.09.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 May 2022 11:09:25 -0700 (PDT) Message-ID: <6187a0514757dd50734175ceebcc0061d8eb6c5b.camel@ndufresne.ca> Subject: Re: [EXT] Re: [PATCH] media: amphion: return error if format is unsupported by vpu From: Nicolas Dufresne To: Ming Qian , "mchehab@kernel.org" , "hverkuil-cisco@xs4all.nl" Cc: "shawnguo@kernel.org" , "robh+dt@kernel.org" , "s.hauer@pengutronix.de" , "kernel@pengutronix.de" , "festevam@gmail.com" , dl-linux-imx , "linux-media@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" Date: Fri, 20 May 2022 14:09:22 -0400 In-Reply-To: References: <20220519072844.31792-1-ming.qian@nxp.com> User-Agent: Evolution 3.44.1 (3.44.1-1.fc36) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220520_110928_942693_D846509F X-CRM114-Status: GOOD ( 28.41 ) 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 TGUgdmVuZHJlZGkgMjAgbWFpIDIwMjIgw6AgMDE6MjUgKzAwMDAsIE1pbmcgUWlhbiBhIMOpY3Jp dMKgOgo+ID4gRnJvbTogTmljb2xhcyBEdWZyZXNuZSBbbWFpbHRvOm5pY29sYXNAbmR1ZnJlc25l LmNhXQo+ID4gU2VudDogRnJpZGF5LCBNYXkgMjAsIDIwMjIgMjoxMyBBTQo+ID4gVG86IE1pbmcg UWlhbiA8bWluZy5xaWFuQG54cC5jb20+OyBtY2hlaGFiQGtlcm5lbC5vcmc7Cj4gPiBodmVya3Vp bC1jaXNjb0B4czRhbGwubmwKPiA+IENjOiBzaGF3bmd1b0BrZXJuZWwub3JnOyByb2JoK2R0QGtl cm5lbC5vcmc7IHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU7Cj4gPiBrZXJuZWxAcGVuZ3V0cm9uaXgu ZGU7IGZlc3RldmFtQGdtYWlsLmNvbTsgZGwtbGludXgtaW14Cj4gPiA8bGludXgtaW14QG54cC5j b20+OyBsaW51eC1tZWRpYUB2Z2VyLmtlcm5lbC5vcmc7Cj4gPiBsaW51eC1rZXJuZWxAdmdlci5r ZXJuZWwub3JnOyBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKPiA+IFN1Ympl Y3Q6IFtFWFRdIFJlOiBbUEFUQ0hdIG1lZGlhOiBhbXBoaW9uOiByZXR1cm4gZXJyb3IgaWYgZm9y bWF0IGlzCj4gPiB1bnN1cHBvcnRlZCBieSB2cHUKPiA+IAo+ID4gQ2F1dGlvbjogRVhUIEVtYWls Cj4gPiAKPiA+IEhpIE1pbmcgUWlhbiwKPiA+IAo+ID4gTGUgamV1ZGkgMTkgbWFpIDIwMjIgw6Ag MTU6MjggKzA4MDAsIE1pbmcgUWlhbiBhIMOpY3JpdCA6Cj4gPiA+IHJldHVybiBlcnJvciBpZiBm b3JtYXQgaXMgdW5zdXBwb3J0ZWQgYnkgdnB1LCBvdGhlcndpc2UgdGhlIHZwdSB3aWxsCj4gPiA+ IGJlIHN0YWxsZWQgYXQgZGVjb2RpbmcKPiA+IAo+ID4gSSBoYXZlIGEgcmVhc29uYWJsZSBkb3Vi dCBhYm91dCB0aGlzIHBhdGNoLiBJIGRvbid0IHRoaW5rIHN1Y2ggYSBjYXNlIHNob3VsZAo+ID4g YmUKPiA+IHJlYWNoYWJsZSBieSB1c2Vycy4gTm9ybWFsbHksIGNhbGxzIHRvIFNfRk1UIHNob3Vs ZCBlbnN1cmUgdGhlIGRyaXZlciBmb3JtYXQKPiA+IHN0YXRlIGlzIHZhbGlkIG9uIGJvdGggZW5k cyBidXQgbW9kaWZ5aW5nIHRoZSByZWxldmFudCBzdHJ1Y3R1cmVzLiBBcyBhbgo+ID4gZXhhbXBs ZSwgZm9yIGRlY29kZXJzLCBzZXR0aW5nIHRoZSBDT0RFQyAoT1VUUFVUIHF1ZXVlKSBmb3JtYXQs IG1heQo+ID4gY2hhbmdlIHRoZSByYXcgZm9ybWF0IChDQVBUVVJFIHF1ZXVlKSBpbXBsaWNpdGx5 IHRvIHByZXZlbnQgdGhpcyBzaXR1YXRpb24uCj4gPiBBcmUgd2UgY2VydGFpbiB0aGlzIGNoYW5n ZSBpc24ndCBwYXBlcmluZyBhcm91bmQgc29tZSBtaXNzaW5nIGZvcm1hdAo+ID4gcHJvcGFnYXRp b24gPwo+ID4gCj4gPiByZWdhcmRzLAo+ID4gTmljb2xhcwo+ID4gCj4gCj4gSGkgTmljb2xhcywK PiDCoMKgwqDCoFlvdSdyZSByaWdodCwgaXQncyBub3QgcmVhY2hhYmxlIGN1cnJlbnRseS4KPiDC oMKgwqDCoEFuZCB0aGVyZSBhcmUgc29tZSBmb3JtYXRzIHN1cHBvcnRlZCBieSBWUFUsIGJ1dCBJ IGRpZG4ndCBhZGQgc3VwcG9ydCBpbgo+IGRyaXZlciwgYXMgdGhleSBhcmUgbm90IGRlZmluZWQg aW4ga2VybmVsIHlldC4KPiBTbyBpZiBzb21lb25lIHdhbnRzIHRvIGVuYWJsZSB0aGVtIGluIGZ1 dHVyZSwgYW5kIGlmIGhlIG9ubHkgYWRkcyBhIGZvcm1hdAo+IGludG8gdmRlY19mb3JtYXRzW10g d2l0aG91dCBtb2RpZnlpbmcgdGhlIHZwdV9tYWxvbmUgcGFydCAsIHRoZW4gaGUgY2FuCj4gZW51 bV9mbXQgYW5kIHNldF9mbXQgc3VjY2Vzc2Z1bGx5LCBidXQgbWVldCB2cHUgaGFuZyB3aXRob3V0 IGFueSBlcnJvcgo+IG1lc3NhZ2UuCj4gCUkgdGhpbmsgZHJpdmVyIHNob3VsZCByZXBvcnQgYW4g ZXJyb3IgaW4gY2FzZSBvZiB0aGUgbmV3IGZvcm1hdCBpcwo+IG5vdCBpbXBsZW1lbnRlZCBmdWxs eS4KCkZhaXIgcG9pbnQsIGJ1dCBpdCBzaG91bGQgYmUgYnVnX29uIG9yIGF0IGxlYXN0IGFuIGVy cm9yIHRyYWNlLgoKcmVnYXJkcywKTmljb2xhcwoKPiAKPiBNaW5nCj4gCj4gPiA+IAo+ID4gPiBT aWduZWQtb2ZmLWJ5OiBNaW5nIFFpYW4gPG1pbmcucWlhbkBueHAuY29tPgo+ID4gPiAtLS0KPiA+ ID4gwqBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL2FtcGhpb24vdnB1X21hbG9uZS5jIHwgMiArKwo+ ID4gPiDCoGRyaXZlcnMvbWVkaWEvcGxhdGZvcm0vYW1waGlvbi92cHVfdjRsMi5jICAgfCA0ICsr LS0KPiA+ID4gwqAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo LSkKPiA+ID4gCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2FtcGhp b24vdnB1X21hbG9uZS5jCj4gPiA+IGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hbXBoaW9uL3Zw dV9tYWxvbmUuYwo+ID4gPiBpbmRleCBmMjljMjIzZWVmY2UuLjA5MzBiNmJhOGM0MiAxMDA2NDQK PiA+ID4gLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hbXBoaW9uL3ZwdV9tYWxvbmUuYwo+ ID4gPiArKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2FtcGhpb24vdnB1X21hbG9uZS5jCj4g PiA+IEBAIC02MTAsNiArNjEwLDggQEAgc3RhdGljIGludCB2cHVfbWFsb25lX3NldF9wYXJhbXMo c3RydWN0Cj4gPiB2cHVfc2hhcmVkX2FkZHIgKnNoYXJlZCwKPiA+ID4gwqDCoMKgwqDCoMKgZW51 bSB2cHVfbWFsb25lX2Zvcm1hdCBtYWxvbmVfZm9ybWF0Owo+ID4gPiAKPiA+ID4gwqDCoMKgwqDC oMKgbWFsb25lX2Zvcm1hdCA9Cj4gPiB2cHVfbWFsb25lX2Zvcm1hdF9yZW1hcChwYXJhbXMtPmNv ZGVjX2Zvcm1hdCk7Cj4gPiA+ICsgICAgIGlmIChtYWxvbmVfZm9ybWF0ID09IE1BTE9ORV9GTVRf TlVMTCkKPiA+ID4gKyAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiA+ID4gwqDCoMKgwqDC oMKgaWZhY2UtPnVkYXRhX2J1ZmZlcltpbnN0YW5jZV0uYmFzZSA9IHBhcmFtcy0+dWRhdGEuYmFz ZTsKPiA+ID4gwqDCoMKgwqDCoMKgaWZhY2UtPnVkYXRhX2J1ZmZlcltpbnN0YW5jZV0uc2xvdF9z aXplID0gcGFyYW1zLT51ZGF0YS5zaXplOwo+ID4gPiAKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvbWVkaWEvcGxhdGZvcm0vYW1waGlvbi92cHVfdjRsMi5jCj4gPiA+IGIvZHJpdmVycy9tZWRp YS9wbGF0Zm9ybS9hbXBoaW9uL3ZwdV92NGwyLmMKPiA+ID4gaW5kZXggNDQ2ZjA3ZDA5ZDBiLi44 OWI4OGUwNjNlNDUgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vYW1w aGlvbi92cHVfdjRsMi5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vYW1waGlv bi92cHVfdjRsMi5jCj4gPiA+IEBAIC01MDAsMTAgKzUwMCwxMCBAQCBzdGF0aWMgaW50IHZwdV92 YjJfc3RhcnRfc3RyZWFtaW5nKHN0cnVjdAo+ID4gdmIyX3F1ZXVlICpxLCB1bnNpZ25lZCBpbnQg Y291bnQpCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZm10LT5zaXplaW1h Z2VbMV0sIGZtdC0+Ynl0ZXNwZXJsaW5lWzFdLAo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoGZtdC0+c2l6ZWltYWdlWzJdLCBmbXQtPmJ5dGVzcGVybGluZVsyXSwKPiA+ID4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBxLT5udW1fYnVmZmVycyk7Cj4gPiA+IC0g ICAgIGNhbGxfdm9pZF92b3AoaW5zdCwgc3RhcnQsIHEtPnR5cGUpOwo+ID4gPiArICAgICByZXQg PSBjYWxsX3ZvcChpbnN0LCBzdGFydCwgcS0+dHlwZSk7Cj4gPiA+IMKgwqDCoMKgwqDCoHZiMl9j bGVhcl9sYXN0X2J1ZmZlcl9kZXF1ZXVlZChxKTsKPiA+ID4gCj4gPiA+IC0gICAgIHJldHVybiAw Owo+ID4gPiArICAgICByZXR1cm4gcmV0Owo+ID4gPiDCoH0KPiA+ID4gCj4gPiA+IMKgc3RhdGlj IHZvaWQgdnB1X3ZiMl9zdG9wX3N0cmVhbWluZyhzdHJ1Y3QgdmIyX3F1ZXVlICpxKQo+IAoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1r ZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpo dHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJu ZWwK