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 21CFEECAAD2 for ; Fri, 2 Sep 2022 01:40:24 +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:MIME-Version:References: Message-ID:Subject:Cc: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=blNJ5XO1drcQ6UftNps4vM15+iGnjx3inBMsP9JUu4M=; b=xpcGXocYYJW58u VRgOsfwG0w/GW8F90FwlJ7G09vbIjwsmV5Qiwj3eEcz75O0Cos/X1rGL1uHGDYxNL/Xm9eeJwz2r0 3sj4yL94Y5j+qF8FxiezgHelYybo7hjSzu4YDSa+iGLxCc8efJkrTJE0pj/EhjVchj5H4g9iLZp2R Gm07XANEDUavkxxLZrj+ee9PSJQGzMR2IHqGxmjtNuj0CJpfAGx1QnDNQjPvb3m+zZCM1X1uYB81B rPd4g6P/OsL0lirGA2eAnRd0bf19E9YfJGroixVOBxBVAeynJdeAaHpO+YjcEx2fr5gBMUc3W7RcQ uNEfUvcAdPFjjTQ7OGxQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oTveF-00GdIQ-4E; Fri, 02 Sep 2022 01:39:07 +0000 Received: from mail-pg1-x52f.google.com ([2607:f8b0:4864:20::52f]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oTveA-00GdGm-EB for linux-arm-kernel@lists.infradead.org; Fri, 02 Sep 2022 01:39:05 +0000 Received: by mail-pg1-x52f.google.com with SMTP id q63so674176pga.9 for ; Thu, 01 Sep 2022 18:39:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date; bh=xtrTkJ4Uu3ohhJxNrzty1GMo4mCUZ5As2LZg/P4tK50=; b=YYQS3U2an0NHsaT3kRyB/CjX2F6iSDaaaXdAkWZvO6gonxfA9qhHlPPJIy66EZe3ZR wxIjWeCJzO7jdFWWO88kKC3qSXJ1mLTTNBSOcVvGsmLmcdYAQSBwKNehifBdxOZDugqV isbdfKU8zmXU8m/Rm4CMHQofJVobu0qt2c+DjTYFJ5nX6ZsHTBHOxLlM51mZyvNLpmVQ Q+YgCC0+Y8zFHJRTaKTF2NKyWdE/a8DEmMRHAUZ8A1vOp/Kq1MqYaKQzBTyto1CV5NQP 3+lPV55ABJaNHPEdbwbeUfQ4cHlupDfFN0jhMHJfQ5143PjQWyb5UgPyMSfsKXs/t6TM bxOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date; bh=xtrTkJ4Uu3ohhJxNrzty1GMo4mCUZ5As2LZg/P4tK50=; b=0XBsFsDAdwWuexB4b945Hw2TEmFgtbj2a+E8posILdgsY4DNh/CtmeGw6TlgWZ2OAm KemyVEFlqwKiguspW++MsxacLPLYXGxFwPWRrR5yI4GzxU5EcgAOAnlFqDtXZq8qjoEZ LOlXL1/S1nK8l6TZtxvYMwaUsuXXJYg+gn7wKDVEBa3YtCeGIP2u1XBogHG87wmJHE5U zgCbViieIGvsbASjtapRbMiAX8IyhpykXjGJlP/400/Ts5ENDEDm4FhwVrn2yDy7tdTr uV4SyGYxyUelPS4feVHLF+EMwgeW3oBCNFo2Az/41mdHZ+nbcYVePhaCU3AkSH4xPgEQ ivMQ== X-Gm-Message-State: ACgBeo362UT2HNoxH7WW5xSjpPFp9QD9iETE1qQhZ+uO2f94gec0r/FM yQD7ADA5X+buxscn+Hkr/FLC X-Google-Smtp-Source: AA6agR7DjBAE56OPQD2pNaMD6zNmrRU9jU2sr6gi8usaSIIxK9Wdjn2+Sdz7pqPgMja4jY2efNlR5A== X-Received: by 2002:a63:4b5e:0:b0:41d:e04b:4515 with SMTP id k30-20020a634b5e000000b0041de04b4515mr28031011pgl.100.1662082739808; Thu, 01 Sep 2022 18:38:59 -0700 (PDT) Received: from thinkpad ([117.217.177.124]) by smtp.gmail.com with ESMTPSA id y1-20020a17090a474100b001fdbb2e38acsm4058764pjg.5.2022.09.01.18.38.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 01 Sep 2022 18:38:58 -0700 (PDT) Date: Fri, 2 Sep 2022 07:08:48 +0530 From: Manivannan Sadhasivam To: Frank Li Cc: "maz@kernel.org" , "tglx@linutronix.de" , "robh+dt@kernel.org" , "krzysztof.kozlowski+dt@linaro.org" , "shawnguo@kernel.org" , "s.hauer@pengutronix.de" , "kw@linux.com" , "bhelgaas@google.com" , "linux-kernel@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "linux-pci@vger.kernel.org" , Peng Fan , Aisheng Dong , "jdmason@kudzu.us" , "kernel@pengutronix.de" , "festevam@gmail.com" , dl-linux-imx , "kishon@ti.com" , "lorenzo.pieralisi@arm.com" , "ntb@lists.linux.dev" , "lznuaa@gmail.com" Subject: Re: [EXT] Re: [PATCH v6 4/4] pcie: endpoint: pci-epf-vntb: add endpoint MSI support Message-ID: <20220902013848.GA4935@thinkpad> References: <20220818151127.2449064-1-Frank.Li@nxp.com> <20220818151127.2449064-5-Frank.Li@nxp.com> <20220831104203.GD5076@thinkpad> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220901_183902_586253_3A8EB057 X-CRM114-Status: GOOD ( 51.89 ) 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 T24gV2VkLCBBdWcgMzEsIDIwMjIgYXQgMDQ6MTk6MTdQTSArMDAwMCwgRnJhbmsgTGkgd3JvdGU6 Cj4gCj4gCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+ID4gRnJvbTogTWFuaXZhbm5h biBTYWRoYXNpdmFtIDxtYW5pdmFubmFuLnNhZGhhc2l2YW1AbGluYXJvLm9yZz4KPiA+IFNlbnQ6 IFdlZG5lc2RheSwgQXVndXN0IDMxLCAyMDIyIDU6NDIgQU0KPiA+IFRvOiBGcmFuayBMaSA8ZnJh bmsubGlAbnhwLmNvbT4KPiA+IENjOiBtYXpAa2VybmVsLm9yZzsgdGdseEBsaW51dHJvbml4LmRl OyByb2JoK2R0QGtlcm5lbC5vcmc7Cj4gPiBrcnp5c3p0b2Yua296bG93c2tpK2R0QGxpbmFyby5v cmc7IHNoYXduZ3VvQGtlcm5lbC5vcmc7Cj4gPiBzLmhhdWVyQHBlbmd1dHJvbml4LmRlOyBrd0Bs aW51eC5jb207IGJoZWxnYWFzQGdvb2dsZS5jb207IGxpbnV4LQo+ID4ga2VybmVsQHZnZXIua2Vy bmVsLm9yZzsgZGV2aWNldHJlZUB2Z2VyLmtlcm5lbC5vcmc7IGxpbnV4LWFybS0KPiA+IGtlcm5l bEBsaXN0cy5pbmZyYWRlYWQub3JnOyBsaW51eC1wY2lAdmdlci5rZXJuZWwub3JnOyBQZW5nIEZh bgo+ID4gPHBlbmcuZmFuQG54cC5jb20+OyBBaXNoZW5nIERvbmcgPGFpc2hlbmcuZG9uZ0BueHAu Y29tPjsKPiA+IGpkbWFzb25Aa3VkenUudXM7IGtlcm5lbEBwZW5ndXRyb25peC5kZTsgZmVzdGV2 YW1AZ21haWwuY29tOyBkbC1saW51eC0KPiA+IGlteCA8bGludXgtaW14QG54cC5jb20+OyBraXNo b25AdGkuY29tOyBsb3JlbnpvLnBpZXJhbGlzaUBhcm0uY29tOwo+ID4gbnRiQGxpc3RzLmxpbnV4 LmRldjsgbHpudWFhQGdtYWlsLmNvbQo+ID4gU3ViamVjdDogW0VYVF0gUmU6IFtQQVRDSCB2NiA0 LzRdIHBjaWU6IGVuZHBvaW50OiBwY2ktZXBmLXZudGI6IGFkZCBlbmRwb2ludAo+ID4gTVNJIHN1 cHBvcnQKPiA+IAo+ID4gQ2F1dGlvbjogRVhUIEVtYWlsCj4gPiAKPiA+IE9uIFRodSwgQXVnIDE4 LCAyMDIyIGF0IDEwOjExOjI3QU0gLTA1MDAsIEZyYW5rIExpIHdyb3RlOgo+ID4gPiAgICAgICAg ICAgICAgICAgICAgICAgICDilIzilIDilIDilIDilIDilIDilIDilIDilJAgICAgICAgICAg4pSM 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQCj4gPiA+ICAgICAgICAgICAgICAgICAg ICAgICAgIOKUgiAgICAgICDilIIgICAgICAgICAg4pSCICAgICAgICAgIOKUggo+ID4gPiAgICAg ICDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAgICDilIIgICAg ICAg4pSCICAgICAgICAgIOKUgiBQQ0kgSG9zdCDilIIKPiA+ID4gICAgICAg4pSCIE1TSSAgICAg ICAgIOKUguKXhOKUkCDilIIgICAgICAg4pSCICAgICAgICAgIOKUgiAgICAgICAgICDilIIKPiA+ ID4gICAgICAg4pSCIENvbnRyb2xsZXIgIOKUgiDilIIg4pSCICAgICAgIOKUgiAgICAgICAgICDi lIIgICAgICAgICAg4pSCCj4gPiA+ICAgICAgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUmCDilJTilIDilLzilIDilIDilIDilIDilIDilIDilIDilLzilIDilIDi lIAKPiA+IOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUvOKUgEJBUjAgICAgIOKUggo+ID4gPiAgICAg ICAgICAgICAgICAgICAgICAgICDilIIgUENJICAg4pSCICAgICAgICAgIOKUgiBCQVIxICAgICDi lIIKPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAg4pSCIEZ1bmMgIOKUgiAgICAgICAgICDi lIIgQkFSMiAgICAg4pSCCj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIOKUgiAgICAgICDi lIIgICAgICAgICAg4pSCIEJBUjMgICAgIOKUggo+ID4gPiAgICAgICAgICAgICAgICAgICAgICAg ICDilIIgICAgICAg4pSCICAgICAgICAgIOKUgiBCQVI0ICAgICDilIIKPiA+ID4gICAgICAgICAg ICAgICAgICAgICAgICAg4pSCICAgICAgIOKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKW uuKUgiAgICAgICAgICDilIIKPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAg4pSU4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSYICAgICAgICAgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUmAo+ID4gPgo+ID4gCj4gPiBUaGlzIGRpYWdyYW0gZG9lc24ndCBzYXkgd2hpY2ggc2lk ZSBpcyBob3N0IGFuZCB3aGljaCBvbmUgaXMgZW5kcG9pbnQuCj4gPiBBbmQgbm90IGNvbnZleWlu ZyBhbnkgdXNlZnVsIGluZm9ybWF0aW9uLgo+IAo+IFtGcmFuayBMaV0gQXQgVjIgdmVyc2lvbiwg dGhpcyBkaWFncmFtIGlzIGluIGNvdmVyIGxldHRlci4gIEJqb3JuIHN1Z2dlc3QgbW92ZSB0byBo ZXJlLgo+IEkgdGhpbmsgeW91IGhhdmUgZ29vZCBiYWNrZ3JvdW5kIGtub3dsZWRnZS4gIEJ1dCBp dCBzaG91bGQgYmUgaGVscGZ1bCBmb3IgbmV3Cj4gUGVvcGxlLCAgd2hvIGp1c3QgdG91Y2ggdGhp cyBhcmVhLiAKPiAKCkhhdmluZyB0aGUgYmxvY2sgZGlhZ3JhbSBhbHdheXMgaGVscHMgYnV0IG15 IHBvaW50IGlzIHRoYXQgdGhpcyBkaWFncmFtIGRvZXNuJ3QKY29udmV5IHRoZSBpbW1lZGlhdGUg a25vd2xlZGdlIHRoYXQgaXQgaXMgc3VwcG9zZWQgdG8gZG8gc28uIExpa2UgdGhlcmUgaXMgbm8K cGFydGl0aW9uIGJldHdlZW4gaG9zdCBhbmQgZW5kcG9pbnQgYW5kIHlvdSBkaWQgbm90IGFkZCBh bnkgZXhwbGFuYXRpb24gYWJvdXQKaXQgaW4gdGhlIGJlbG93IHRleHQuIFNvIGluIHYyLCBwbGVh c2UgaW5jb3Jwb3JhdGUgdGhvc2UuCgo+IEkgYWxyZWFkeSBtYXJrICJQQ0kgRnVuYyIgYW5kICJQ Q0kgSG9zdCIuICAKPiAKClNvcnJ5LCB0aGF0J3Mgbm90IGhlbHBmdWwgYW5kIHlvdSBuZWVkIHRv IGltcHJvdmUgaXQuCgo+ID4gCj4gPiA+IExpbnV4IHN1cHBvcnRzIGVuZHBvaW50IGZ1bmN0aW9u cy4gUENJIEhvc3Qgd3JpdGUgQkFSPG4+IHNwYWNlIGxpa2Ugd3JpdGUKPiA+ID4gdG8gbWVtb3J5 LiBUaGUgRVAgc2lkZSBjYW4ndCBrbm93IG1lbW9yeSBjaGFuZ2VkIGJ5IHRoZSBob3N0IGRyaXZl ci4KPiA+ID4KPiA+IAo+ID4gSSB0aGluayB5b3UganVzdCBzYXksIHRoYXQgdGhlcmUgaXMgbm8g ZGVmaW5lZCB3YXkgb2YgcmFpc2luZyBJUlFzIGJ5IGhvc3QKPiA+IHRvIHRoZSBlbmRwb2ludC4K PiA+IAo+ID4gPiBQQ0kgU3BlYyBoYXMgbm90IGRlZmluZWQgYSBzdGFuZGFyZCBtZXRob2QgdG8g ZG8gdGhhdC4gT25seSBkZWZpbmUgTVNJKHgpCj4gPiA+IHRvIGxldCBFUCBub3RpZmllZCBSQyBz dGF0dXMgY2hhbmdlLgo+ID4gPgo+ID4gCj4gPiBNU0kgaXMgZnJvbSBFUCwgcmlnaHQ/IFRocm91 Z2hvdXQgdGhlIGRyaXZlciB5b3Ugc2hvdWxkIGNhbGwgaXQgYXMgImRvb3JiZWxsIgo+ID4gYW5k IG5vdCBNU0kuCj4gCj4gW0ZyYW5rIExpXSBXaGF0J3MgSSB3YW50IHNhaWQgaXMgdGhhdCBQQ0kg c3RhbmRhcmQgZGVmaW5lIE1TSSh4KSB0byBsZXQgRVAgbm90aWZ5IFJDLiAKPiBCdXQgdGhlcmUg YXJlIG5vdCBzdGFuZGFyZCB3YXkgZm9yIHJldmVyc2UgZGlyZWN0aW9uLiAgTVNJIHNob3VsZCBi ZSBjb3JyZWN0IGhlcmUuCj4gCgpSaWdodC4gQnV0IGFsc28gdXNlICJNU0kvTVNJLVgiIGluc3Rl YWQgb2YgIk1TSSh4KSIKCj4gPiAKPiA+ID4gVGhlIGJhc2ljIGlkZWEgaXMgdG8gdHJpZ2dlciBh biBJUlEgd2hlbiBQQ0kgUkMgd3JpdGVzIHRvIGEgbWVtb3J5Cj4gPiA+IGFkZHJlc3MuIFRoYXQn cyB3aGF0IE1TSSBjb250cm9sbGVyIHByb3ZpZGVkLiBFUCBkcml2ZXJzIGp1c3QgbmVlZCB0bwo+ ID4gPiByZXF1ZXN0IGEgcGxhdGZvcm0gTVNJIGludGVycnVwdCwgc3RydWN0IG1zaV9tc2cgKm1z ZyB3aWxsIHBhc3MgZG93biBhCj4gPiA+IG1lbW9yeSBhZGRyZXNzIGFuZCBkYXRhLiBFUCBkcml2 ZXIgd2lsbCBtYXAgc3VjaCBtZW1vcnkgYWRkcmVzcyB0byBvbmUKPiA+IG9mCj4gPiA+IFBDSSBC QVI8bj4uICBIb3N0IGp1c3Qgd3JpdGVzIHN1Y2ggYW4gYWRkcmVzcyB0byB0cmlnZ2VyIEVQIHNp ZGUgaXJxLgo+ID4gPgo+ID4gCj4gPiBJSVVDIChieSBsb29raW5nIGF0IG90aGVyIHBhdGNoZXMg aW4gdGhlIHNlcmllcyksIHRoZSBtZW1vcnkgYXNzaWduZWQgZm9yIEJBUgo+ID4gcmVnaW9uIGJ5 IHRoZSBQQ0kgaG9zdCBpcyBtYXBwZWQgdG8gdGhlIHBsYXRmb3JtIGludGVycnVwdCBjb250cm9s bGVyIGluCj4gPiBQQ0kgRW5kcG9pbnQuIFN1Y2ggdGhhdCwgd2hlbmV2ZXIgdGhlIFBDSSBob3N0 IHdyaXRlcyB0byB0aGUgQkFSIHJlZ2lvbiwgaXQKPiA+IHdpbGwgdHJpZ2dlciBhbiBJUlEgaW4g dGhlIEVuZHBvaW50Lgo+ID4gCj4gPiBUaGlzIGtpbmQgb2Ygc2V0dXAgaXMgYXZhaWxhYmxlIGlu IG90aGVyIHBsYXRmb3JtcyBsaWtlIFF1YWxjb21tIHdoZXJlIHRoZQo+ID4gbWFwcGluZyBvZiBh IHJlZ2lzdGVyIHJlZ2lvbiBhdmFpbGFibGUgaW4gQkFSMCBhbmQgaW50ZXJydXB0IGNvbnRyb2xs ZXIgaXMKPiA+IGRvbmUgaW4gdGhlIGhhcmR3YXJlIGl0c2VsZi4gU28gd2hlbmV2ZXIgdGhlIFBD SSBob3N0IHdyaXRlcyB0byB0aGF0IHJlZ2lzdGVyCj4gPiBpbiBCQVIwLCBhbiBJUlEgd2lsbCBi ZSBkZWxpdmVyZWQgdG8gdGhlIGVuZHBvaW50Lgo+IAo+IFtGcmFuayBMaV0gWWVzLCAgbm90IGFs bCBwbGF0Zm9ybSBoYXZlIGl0LiBBbmQgRVAgZHJpdmVyIGhhdmUgbm90IHByb3ZpZGUgYSBBUEkK PiB0byBnZXQgcmVnaXN0ZXIgcmVnaW9uLiAgSSB0aGluayBwbGF0Zm9ybSBtc2kgQVBJIGlzIHBy ZXR0eSBnb29kIEFQSS4gCj4gTWFueSBzeXN0ZW0gaGF2ZSBHSUMgSVRTLCAgc28gRVAgZnVuY3Rp b24gZHJpdmVyIGNhbiB1c2UgaXQuICBPdXIgdGVzdCBwbGF0Zm9ybQo+IGhhdmUgbm90IElUUyB5 ZXQsICBzbyB3ZSBhZGRlZCBhIHNpbXBsZSBNVS1NU0kgZHJpdmVyIHRvIGRvIGl0LiBJIHRoaW5r IHF1YWxjb21tCj4gcGxhdGZvcm0gY2FuIHVzZSBzaW1pbGFyIG1ldGhvZC4gIFNvIGFsbCBFUCBm dW5jdGlvbiBkcml2ZXIgY2FuIHVzZSBjb21tb24gbWV0aG9kCj4gdG8gZ2V0IG5vdGlmaWNhdGlv biBmcm9tIFBDSSBob3N0Lgo+IAoKV2hhdCBpcyB0aGUgY29tbW9uIG1ldGhvZCBoZXJlPyBJZiB5 b3Ugd2FudCB0byBtYWtlIHRoaXMgZG9vcmJlbGwgZmVhdHVyZQpjb21tb24gYWNyb3NzIGFsbCBF UEYgZHJpdmVycywgdGhlbiB5b3UgbmVlZCB0byBwcm92aWRlIEVQRiBBUElzLgoKPiA+IAo+ID4g PiBBZGQgTVNJIHN1cHBvcnQgZm9yIHBjaS1lcGYtdm50Yi4gcGNpLWVwZi12bnRiIGRyaXZlciBx dWVyeSBpZiBzeXN0ZW0KPiA+ID4gaGF2ZSBNU0kgY29udHJvbGxlci4gU2V0dXAgZG9vcmJlbGwg YWRkcmVzcyBhY2NvcmRpbmcgdG8gc3RydWN0IG1zaV9tc2cuCj4gPiA+Cj4gPiA+IFNvIFBDSWUg aG9zdCBjYW4gd3JpdGUgdGhpcyBkb29yYmVsbCBhZGRyZXNzIHRvIHRyaWdlciBFUCBzaWRlJ3Mg aXJxLgo+ID4gPgo+ID4gPiBJZiBubyBNU0kgY29udHJvbGxlciBleGlzdCwgZmFsbCBiYWNrIHRv IHNvZnR3YXJlIHBvbGxpbmcuCj4gPiA+Cj4gPiA+IFNpZ25lZC1vZmYtYnk6IEZyYW5rIExpIDxG cmFuay5MaUBueHAuY29tPgo+ID4gPiAtLS0KPiA+ID4gIGRyaXZlcnMvcGNpL2VuZHBvaW50L2Z1 bmN0aW9ucy9wY2ktZXBmLXZudGIuYyB8IDEzNCArKysrKysrKysrKysrKystLS0KPiA+ID4gIDEg ZmlsZSBjaGFuZ2VkLCAxMTIgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pCj4gPiA+Cj4g PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9lbmRwb2ludC9mdW5jdGlvbnMvcGNpLWVwZi12 bnRiLmMKPiA+IGIvZHJpdmVycy9wY2kvZW5kcG9pbnQvZnVuY3Rpb25zL3BjaS1lcGYtdm50Yi5j CgpbLi4uXQoKPiA+ID4gK3N0YXRpYyB2b2lkIGVwZl9udGJfZXBjX21zaV9pbml0KHN0cnVjdCBl cGZfbnRiICpudGIpCj4gPiA+ICt7Cj4gPiA+ICsgICAgIHN0cnVjdCBkZXZpY2UgKmRldiA9ICZu dGItPmVwZi0+ZGV2Owo+ID4gPiArICAgICBzdHJ1Y3QgaXJxX2RvbWFpbiAqZG9tYWluOwo+ID4g PiArICAgICBpbnQgdmlycTsKPiA+ID4gKyAgICAgaW50IHJldDsKPiA+ID4gKyAgICAgaW50IGk7 Cj4gPiA+ICsKPiA+ID4gKyAgICAgZG9tYWluID0gZGV2X2dldF9tc2lfZG9tYWluKG50Yi0+ZXBm LT5lcGMtPmRldi5wYXJlbnQpOwo+ID4gPiArICAgICBpZiAoIWRvbWFpbikKPiA+ID4gKyAgICAg ICAgICAgICByZXR1cm47Cj4gPiA+ICsKPiA+ID4gKyAgICAgZGV2X3NldF9tc2lfZG9tYWluKGRl diwgZG9tYWluKTsKPiA+ID4gKwo+ID4gPiArICAgICBpZiAocGxhdGZvcm1fbXNpX2RvbWFpbl9h bGxvY19pcnFzKCZudGItPmVwZi0+ZGV2LAo+ID4gPiArICAgICAgICAgICAgIG50Yi0+ZGJfY291 bnQsCj4gPiA+ICsgICAgICAgICAgICAgZXBmX250Yl93cml0ZV9tc2lfbXNnKSkgewo+ID4gPiAr ICAgICAgICAgICAgIGRldl9pbmZvKGRldiwgIkNhbid0IGFsbG9jYXRlIE1TSSwgZmFsbCBiYWNr IHRvIHBvbGwgbW9kZVxuIik7Cj4gPiA+ICsgICAgICAgICAgICAgcmV0dXJuOwo+ID4gPiArICAg ICB9Cj4gPiA+ICsKPiA+ID4gKyAgICAgZGV2X2luZm8oZGV2LCAidm50YiB1c2UgTVNJIGFzIGRv b3JiZWxsXG4iKTsKPiA+ID4gKwo+ID4gCj4gPiBXaHkgYXJlIHlvdSB1c2luZyB0aGUgaW50ZXJy dXB0IGNvbnRyb2xsZXIgYXMgdGhlIE1TSSBjb250cm9sbGVyPyBXaHkgbm90Cj4gPiBqdXN0Cj4g PiBhIHBsYWluIGludGVycnVwdCBjb250cm9sbGVyPwo+IAo+IFtGcmFuayBMaV0gd2hhdCdzIHlv dXIgbWVhbnM/ICAgSSB0aGluayBvbmx5IE1TSSBjb250cm9sbGVyIHN1cHBvcnQgd3JpdGUgbWVt b3J5IHRvIHRyaWdnZXIgaXJxLgo+IAoKRnJvbSBFUEYgZHJpdmVyIHBlcnNwZWN0aXZlLCBvbmx5 IHRoZSBJUlFzIG5lZWQgdG8gYmUgcmVxdWVzdGVkLCByaWdodD8gU28gd2h5CmNhbm5vdCB5b3Ug ZXhwb3NlIE1VIGFzIGEgZ2VuZXJpYyBpcnFjaGlwIGRyaXZlciwgaW5zdGVhZCBvZiBhIE1TSSBj b250cm9sbGVyPyAKClRoYW5rcywKTWFuaQoKLS0gCuCuruCuo+Cuv+CuteCuo+CvjeCuo+CuqeCv jSDgrprgrqTgrr7grprgrr/grrXgrq7gr40KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFy bS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK