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 1BFA0C7619A for ; Wed, 5 Apr 2023 15:57:01 +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=DiKOw/P3+AIp5gtDbNPdNzBvKhtlPnFCVHOzSW8MxBU=; b=yPFYeH2FrQvv11 fcp3Wvo3VXegofgel9j4of+Fmr0cnaXnxvgp498/TiG1hxzPbT60ZwuIAysAYW5clwtmd/JiQuM6y nWyGBggOPSAW0mVjCp8jvOYQNSQQkwY/fGBc/c1l9w7Yz1PIe1ATukWAsxYI4lpxoCnRKib21eYiL 49FhiOxYxijhUTznFc4o4P+8TpEh2IBLY/UE7Kj2BOGfDPaLGfTlu5SjFmrNONiDk3RZeuVmzWccq fdzmlL+I5scAWI2Pgn4aBFTuEaIjPi3I6RUCUXFKwT/rjehulsCS/d8HyaGyDtOIz04AsNrGR0O5Q yPsGHq8hMMB9LBYujD1g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pk5UV-0052dh-2b; Wed, 05 Apr 2023 15:56:07 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pk5US-0052ay-1q for linux-arm-kernel@lists.infradead.org; Wed, 05 Apr 2023 15:56:06 +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 dfw.source.kernel.org (Postfix) with ESMTPS id DEDC363F2A; Wed, 5 Apr 2023 15:55:54 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C5650C433EF; Wed, 5 Apr 2023 15:55:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1680710154; bh=Eyh3fJb85+zx6l+94QYojk41ERMF1Znarh0oquShuMY=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=Bb9vvl29v+4+t1OiRHphJCnmmaWhQR5WEtTJx2K8v+QS7YnJYznmpzczsaPBQmLTG B1R67IoUlfhlnriUqHF8JhmcfL9uow+OMforn79WjvDh51XEXvb6WIYTQ90OK4uD0P vmfHZuAZM66ltX7C46eu2S/XRO47n0NopdV2IiA3O+dJtxmo04Q/B16eX3/Q7r/Mjx GlBrWqYLPkBCSR3kTlOeRZtsPjaPq0qO+LpojLVhXGINKK05FSok3UUTn5Inp2yGlJ f8REnF7HjDcK5daM4S2WJGw22Jlv7qOk64uMlbH0X8aAMsD5mZCtmfOUXZtgoBqCk+ LAyzaRrRhlxdQ== Date: Wed, 5 Apr 2023 17:55:48 +0200 From: Lorenzo Pieralisi To: Hongxing Zhu Cc: Bjorn Helgaas , "l.stach@pengutronix.de" , "bhelgaas@google.com" , "linux-pci@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" , "kernel@pengutronix.de" , dl-linux-imx , Serge Semin Subject: Re: [PATCH v2] PCI: imx6: Save and restore MSI control of RC in suspend and resume Message-ID: References: <20230317222436.GA1978818@bhelgaas> 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-20230405_085604_688444_F6272B30 X-CRM114-Status: GOOD ( 72.92 ) 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 WytDYyBTZXJnZXldCgpPbiBNb24sIE1hciAyNywgMjAyMyBhdCAxMjoyMjowNEFNICswMDAwLCBI b25neGluZyBaaHUgd3JvdGU6Cj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+ID4gRnJv bTogTG9yZW56byBQaWVyYWxpc2kgPGxwaWVyYWxpc2lAa2VybmVsLm9yZz4KPiA+IFNlbnQ6IDIw MjPlubQz5pyIMjTml6UgMjM6NTkKPiA+IFRvOiBIb25neGluZyBaaHUgPGhvbmd4aW5nLnpodUBu eHAuY29tPgo+ID4gQ2M6IEJqb3JuIEhlbGdhYXMgPGhlbGdhYXNAa2VybmVsLm9yZz47IGwuc3Rh Y2hAcGVuZ3V0cm9uaXguZGU7Cj4gPiBiaGVsZ2Fhc0Bnb29nbGUuY29tOyBsaW51eC1wY2lAdmdl ci5rZXJuZWwub3JnOwo+ID4gbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnOyBs aW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnOwo+ID4ga2VybmVsQHBlbmd1dHJvbml4LmRlOyBk bC1saW51eC1pbXggPGxpbnV4LWlteEBueHAuY29tPgo+ID4gU3ViamVjdDogUmU6IFtQQVRDSCB2 Ml0gUENJOiBpbXg2OiBTYXZlIGFuZCByZXN0b3JlIE1TSSBjb250cm9sIG9mIFJDIGluIHN1c3Bl bmQKPiA+IGFuZCByZXN1bWUKPiA+IAo+ID4gT24gTW9uLCBNYXIgMjAsIDIwMjMgYXQgMDc6MDI6 MzVBTSArMDAwMCwgSG9uZ3hpbmcgWmh1IHdyb3RlOgo+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tCj4gPiA+ID4gRnJvbTogQmpvcm4gSGVsZ2FhcyA8aGVsZ2Fhc0BrZXJuZWwub3Jn Pgo+ID4gPiA+IFNlbnQ6IDIwMjPlubQz5pyIMTjml6UgNjoyNQo+ID4gPiA+IFRvOiBIb25neGlu ZyBaaHUgPGhvbmd4aW5nLnpodUBueHAuY29tPgo+ID4gPiA+IENjOiBMb3JlbnpvIFBpZXJhbGlz aSA8bHBpZXJhbGlzaUBrZXJuZWwub3JnPjsKPiA+ID4gPiBsLnN0YWNoQHBlbmd1dHJvbml4LmRl OyBiaGVsZ2Fhc0Bnb29nbGUuY29tOwo+ID4gPiA+IGxpbnV4LXBjaUB2Z2VyLmtlcm5lbC5vcmc7 IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZzsKPiA+ID4gPiBsaW51eC1rZXJu ZWxAdmdlci5rZXJuZWwub3JnOyBrZXJuZWxAcGVuZ3V0cm9uaXguZGU7IGRsLWxpbnV4LWlteAo+ ID4gPiA+IDxsaW51eC1pbXhAbnhwLmNvbT4KPiA+ID4gPiBTdWJqZWN0OiBSZTogW1BBVENIIHYy XSBQQ0k6IGlteDY6IFNhdmUgYW5kIHJlc3RvcmUgTVNJIGNvbnRyb2wgb2YKPiA+ID4gPiBSQyBp biBzdXNwZW5kIGFuZCByZXN1bWUKPiA+ID4gPgo+ID4gPiA+IE9uIEZyaSwgTWFyIDE3LCAyMDIz IGF0IDA3OjM4OjAyQU0gKzAwMDAsIEhvbmd4aW5nIFpodSB3cm90ZToKPiA+ID4gPiA+ID4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiA+ID4gPiA+ID4gRnJvbTogTG9yZW56byBQaWVyYWxp c2kgPGxwaWVyYWxpc2lAa2VybmVsLm9yZz4KPiA+ID4gPiA+ID4gU2VudDogMjAyM+W5tDPmnIgx NuaXpSAxNjoxMQo+ID4gPiA+ID4gPiBUbzogSG9uZ3hpbmcgWmh1IDxob25neGluZy56aHVAbnhw LmNvbT4KPiA+ID4gPiA+ID4gQ2M6IEJqb3JuIEhlbGdhYXMgPGhlbGdhYXNAa2VybmVsLm9yZz47 IGwuc3RhY2hAcGVuZ3V0cm9uaXguZGU7Cj4gPiA+ID4gPiA+IGJoZWxnYWFzQGdvb2dsZS5jb207 IGxpbnV4LXBjaUB2Z2VyLmtlcm5lbC5vcmc7Cj4gPiA+ID4gPiA+IGxpbnV4LWFybS1rZXJuZWxA bGlzdHMuaW5mcmFkZWFkLm9yZzsKPiA+ID4gPiA+ID4gbGludXgta2VybmVsQHZnZXIua2VybmVs Lm9yZzsga2VybmVsQHBlbmd1dHJvbml4LmRlOwo+ID4gPiA+ID4gPiBkbC1saW51eC1pbXggPGxp bnV4LWlteEBueHAuY29tPgo+ID4gPiA+ID4gPiBTdWJqZWN0OiBSZTogW1BBVENIIHYyXSBQQ0k6 IGlteDY6IFNhdmUgYW5kIHJlc3RvcmUgTVNJIGNvbnRyb2wKPiA+ID4gPiA+ID4gb2YgUkMgaW4g c3VzcGVuZCBhbmQgcmVzdW1lCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IE9uIFRodSwgTWFyIDE2 LCAyMDIzIGF0IDA3OjM3OjQxQU0gKzAwMDAsIEhvbmd4aW5nIFpodSB3cm90ZToKPiA+ID4gPiA+ ID4KPiA+ID4gPiA+ID4gWy4uLl0KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEl0 J3Mgbm90IGEgc2VwYXJhdGUgcmVnaXN0ZXIuCj4gPiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gVGhlIGJpdCBJIG1hbmlwdWxhdGVkIGlzIHRoZSBNU0kgRW5hYmxlIGJp dCBvZiB0aGUKPiA+ID4gPiA+ID4gPiA+ID4gPiA+IE1lc3NhZ2UgQ29udHJvbCBSZWdpc3RlciBm b3IgTVNJIChPZmZzZXQgMDJoKQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gY29udGFpbmVkIGluIHRo ZSBNU0ktY2FwYWJpbGl0eSBvZiBSb290IENvbXBsZXguCj4gPiA+ID4gPiA+ID4gPiA+ID4gPgo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gSW4gYWRkaXRpb24sIG9uIGkuTVg2LCB0aGUgTVNJIEVuYWJs ZSBiaXQgY29udHJvbHMKPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGRlbGl2ZXJ5IG9mIE1TSSBpbnRl cnJ1cHRzIGZyb20gY29tcG9uZW50cyBiZWxvdyB0aGUgUm9vdCBQb3J0Lgo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFNvLCBzZXQgTVNJIEVuYWJsZSBpbiBpbXg2 cS1wY2llIHRvIGxldCB0aGUgTVNJIGZyb20KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGRvd25zdHJl YW0gY29tcG9uZW50cyB3b3Jrcy4KPiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4g PiA+IE15IGNvbmZ1c2lvbiBpcyBhYm91dCB0aGlzICJNU0kgQ2FwYWJpbGl0eSIgZm91bmQgYnkK PiA+ID4gPiA+ID4gPiA+ID4gPiAiZHdfcGNpZV9maW5kX2NhcGFiaWxpdHkocGNpLCBQQ0lfQ0FQ X0lEX01TSSkiIGluIHlvdXIgcGF0Y2guCj4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4g PiA+ID4gPiBUaGUgaS5NWDYgbWFudWFsIG1pZ2h0IHJlZmVyIHRvIHRoYXQgYXMgYW4gIk1TSSBD YXBhYmlsaXR5Igo+ID4gPiA+ID4gPiA+ID4gPiA+IGJ1dCBhcyBmYXIgYXMgSSBrbm93LCB0aGUg UENJZSBiYXNlIHNwZWMgZG9lc24ndAo+ID4gPiA+ID4gPiA+ID4gPiA+IGRvY3VtZW50IGEgUm9v dCBDb21wbGV4IE1TSQo+ID4gPiA+ID4gPiA+ID4gQ2FwYWJpbGl0eS4KPiA+ID4gPiA+ID4gPiA+ ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+IEkgZG9uJ3QgdGhpbmsgaXQncyB0aGUgc2FtZSBhcyB0 aGUgb25lIGRvY3VtZW50ZWQgaW4KPiA+ID4gPiA+ID4gPiA+ID4gPiBQQ0llIHI2LjAsIHNlYyA3 LjcuMi4gIEkgdGhpbmsgaXQncyBkaWZmZXJlbnQgYmVjYXVzZToKPiA+ID4gPiA+ID4gPiA+ID4g Pgo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgKDEpIEkgKnRoaW5rKiAicGNpIiBoZXJlIHJlZmVycyB0 byB0aGUgUkMsIG5vdCB0byBhIFJvb3QgUG9ydC4KPiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ ID4gPiA+ID4gPiA+ICAgKDIpIFRoZSBzZW1hbnRpY3MgYXJlIGRpZmZlcmVudC4gIFRoZSBNU0kt WCBFbmFibGUgYml0IGluIDcuNy4yCj4gPiBvbmx5Cj4gPiA+ID4gPiA+ID4gPiA+ID4gICBkZXRl cm1pbmVzIHdoZXRoZXIgdGhlIEZ1bmN0aW9uIGl0c2VsZiBpcyBwZXJtaXR0ZWQgdG8gdXNlCj4g PiBNU0ktWC4KPiA+ID4gPiA+ID4gPiA+ID4gPiAgIEl0IGhhcyBub3RoaW5nIHRvIGRvIHdpdGgg ZGV2aWNlcyAqYmVsb3cqIGEgUm9vdCBQb3J0Cj4gPiA+ID4gPiA+ID4gPiA+ID4gY2FuIHVzZQo+ ID4gPiA+ID4gPiBNU0ktWC4KPiA+ID4gPiA+ID4gPiA+ID4gPiAgIEl0IGFsc28gaGFzIG5vdGhp bmcgdG8gZG8gd2l0aCB3aGV0aGVyIGEgUm9vdCBQb3J0IGNhbiBmb3J3YXJkCj4gPiBNU0kKPiA+ ID4gPiA+ID4gPiA+ID4gPiAgIHRyYW5zYWN0aW9ucyBmcm9tIHRob3NlIGRvd25zdHJlYW0gZGV2 aWNlcy4KPiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+IFRoaXMgcGFydCBv ZiBteSBjb25mdXNpb24gY291bGQgYmUgZWFzaWx5IHJlc29sdmVkIHZpYSBhIGNvbW1lbnQuCj4g PiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiBJIGRvIGhhdmUgYSBmb2xsb3ct b24gcXVlc3Rpb24sIHRob3VnaDogdGhlIHBhdGNoIHNlZW1zCj4gPiA+ID4gPiA+ID4gPiA+ID4g dG8gZW5hYmxlIE1TSS1yZWxhdGVkIGZ1bmN0aW9uYWxpdHkgdXNpbmcgYSByZWdpc3RlciBpbgo+ ID4gPiA+ID4gPiA+ID4gPiA+IHRoZSBEZXNpZ25XYXJlIElQLCBub3Qgc29tZXRoaW5nIGluIHRo ZSBpLk1YNi1zcGVjaWZpYwo+ID4gPiA+ID4gPiA+ID4gPiA+IElQLiAgSWYgdGhhdCdzIHRydWUs IHdoeSBkb24ndCBvdGhlciBEZXNpZ25XYXJlLWJhc2VkCj4gPiA+ID4gPiA+ID4gPiA+ID4gZHJp dmVycyBuZWVkIHNvbWV0aGluZwo+ID4gPiA+ID4gPiBzaW1pbGFyPwo+ID4gPiA+ID4gPiA+ID4g PiBIaSBCam9ybjoKPiA+ID4gPiA+ID4gPiA+ID4gVGhhbmtzIGEgbG90IGZvciB5b3UgcmVwbHku Cj4gPiA+ID4gPiA+ID4gPiA+IFRoaXMgYmVoYXZpb3IgaXMgc3BlY2lmaWMgZm9yIGkuTVggUENJ ZS4KPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBXaGljaCBiZWhhdmlvdXIgPyBJdCBj YW4ndCBiZSB0aGUgcm9vdCBwb3J0IE1TSSBjYXBhYmlsaXR5LAo+ID4gPiA+ID4gPiA+ID4gdGhh dCB3b3VsZCBiZSBhIEhXIGJ1ZyAoaWUgZGlzYWJsaW5nIHJvb3QgcG9ydCBNU0lzIHdvdWxkCj4g PiA+ID4gPiA+ID4gPiBpbXBseSBkaXNhYmxpbmcgTVNJcyBmb3IgYWxsIGRvd25zdHJlYW0gY29t cG9uZW50cykuCj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gaS5N WCBQQ0llIGRlc2lnbmVyIHVzZSB0aGlzIE1TSV9FTiBiaXQgdG8gY29udHJvbCB0aGUgTVNJCj4g PiA+ID4gPiA+ID4gdHJpZ2dlciB3aGVuIGludGVncmF0ZSAgRGVzaWduIFdhcmUgUENJZSBJUC4K PiA+ID4gPiA+ID4gPiBXaXRob3V0IHRoZSBNU0lfRU4gYml0IGFzc2VydGlvbiAoMWInMSksIHRo ZSBkZXZpY2VzIGJlbG93Cj4gPiA+ID4gPiA+ID4gdGhpcyBSQyBjYW4ndCB0cmlnZ2VyICB0aGUg TVNJIHN1Y2Nlc3NmdWxseS4KPiA+ID4gPiA+ID4gPiBZZXMsIHlvdSdyZSByaWdodC4gSXQgc2hv dWxkIG5vdCBiZSB0aGUgcm9vdCBwb3J0IE1TSSBjYXBhYmlsaXR5Lgo+ID4gPiA+ID4gPgo+ID4g PiA+ID4gPiBUaGUgcXVlc3Rpb24gaXMsIGl0IGlzIG9yIGl0IGlzIG5vdCB0aGUgcm9vdCBwb3J0 IE1TSSBjYXBhYmlsaXR5ID8KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gSWYgaXQgaXMsIHRoYXQn cyBhIEhXIGJ1Zy4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gSWYgaXQgaXMgbm90IHRoZXJlIGlz IG5vdGhpbmcgdG8gZG8gYW5kIHRoaXMgcGF0Y2ggY2FuIGJlIG1lcmdlZC4KPiA+ID4gPiA+IEhp IExvcmVuem86Cj4gPiA+ID4gPiBUaGFua3MgZm9yIHlvdXIgcmVwbHkuCj4gPiA+ID4gPiBJIHRo aW5rIGl0IGlzIG5vdCB0aGUgcm9vdCBwb3J0IE1TSSBjYXBhYmlsaXR5IGFjdHVhbGx5Lgo+ID4g PiA+ID4gUmVmZXIgdG8gbXkgdW5kZXJzdGFuZHMsIGRlc2lnbmVyIGp1c3QgdXNlIHRoZSBtc2lf ZW4gYml0IHRvCj4gPiA+ID4gPiBjb250cm9sIHRoZSAgZGVsaXZlcnkgb2YgTVNJIGludGVycnVw dHMgZnJvbSBjb21wb25lbnRzIGJlbG93IHRoZSBSb290Cj4gPiBQb3J0Lgo+ID4gPiA+ID4gPgo+ ID4gPiA+ID4gPiA+ID4gPiBpLk1YIFBDSWUgZGVzaWduZXIgdXNlIHRoaXMgTVNJX0VOIGJpdCB0 byBjb250cm9sIHRoZSBNU0kKPiA+ID4gPiA+ID4gPiA+ID4gdHJpZ2dlciB3aGVuIGludGVncmF0 ZSBEZXNpZ24gV2FyZSBQQ0llIElQLgo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IEZh aXIgZW5vdWdoIGJ1dCB0aGF0IGNhbid0IGJlIHRoZSBNU0kgRW5hYmxlIGJpdCBpbiB0aGUgUm9v dAo+ID4gPiA+ID4gPiA+ID4gUG9ydCBNU0kgY2FwYWJpbGl0eSAiTWVzc2FnZSBDb250cm9sIiBm aWVsZCBJIGFtIGFmcmFpZC4KPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBJdCBpcyB3 aGF0IEJqb3JuIG1lbnRpb25lZCBxdWl0ZSBjbGVhcmx5LCBhIHJvb3QgY29tcGxleAo+ID4gPiA+ ID4gPiA+ID4gY29uZmlndXJhdGlvbiByZWdpc3RlciBkcmVzc2VkIGFzIGFuIE1TSSBjYXBhYmls aXR5LCB0aGUKPiA+ID4gPiA+ID4gPiA+IHJvb3QgY29tcGxleCBpcyBub3QgYSBQQ0kgZGV2aWNl OyBlaXRoZXIgdGhhdCBvciB0aGF0J3MgYW4gSFcgYnVnLgo+ID4gPiA+ID4gPiA+IFllcywgaXQg aXMuIEkgYWdyZWUgd2l0aCB5b3UuIEhhZCByZXBvcnQgdGhpcyBzaXR1YXRpb24gdG8gdGhlIGRl c2lnbiB0ZWFtLgo+ID4gPiA+ID4gPiA+IEhvcGUgdG8gY29ycmVjdCB0aGlzIGJ1ZyBpbiBIVyBk ZXNpZ24gaWYgaXQncyBwb3NzaWJsZS4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gSSBkb24ndCB1 bmRlcnN0YW5kIGlmIGl0IGlzIGEgSFcgYnVnIG9yIG5vdCwgc2VlIGFib3ZlLiBJIHRoaW5rCj4g PiA+ID4gPiA+IGl0IGlzIGxlZ2l0aW1hdGUgdG8gaGF2ZSBNTUlPIHJlZ2lzdGVyIHNwYWNlIHRo YXQgKmxvb2tzKiBsaWtlCj4gPiA+ID4gPiA+IGFuIE1TSSBjYXBhYmlsaXR5IGZvciB0aGUgcm9v dCBjb21wbGV4IHRvIGNvbnRyb2wgZGVsaXZlcnkgb2YKPiA+ID4gPiA+ID4gTVNJIGludGVycnVw dHMsIGFzIGxvbmcgYXMgaXQgaXMgbm90IHRoZSBhY3R1YWwgcm9vdCBwb3J0IE1TSQo+ID4gPiA+ ID4gPiBjYXBhYmlsaXR5LCBpbiB0aGUgcm9vdCBwb3J0IFBDSSBjb25maWcgc3BhY2UgaW4gd2hp Y2ggY2FzZSB0aGlzCj4gPiA+ID4gPiA+IHdvdWxkIGJlIGEgSFcKPiA+ID4gPiBidWcgZnJvbSB3 aGF0IHlvdSBhcmUgcmVwb3J0aW5nLgo+ID4gPiA+ID4gSSBqdXN0IHByb3ZpZGUgdGhlIGZvbGxv d2luZyBzdWdnZXN0aW9ucy4KPiA+ID4gPiA+IC0gUm9vdCBjb21wbGV4IHNob3VsZG4ndCBoYXZl IHRoZSBNU0kgY2FwYWJpbGl0eSByZWZlciB0byB0aGUgUENJZSBTcGVjCj4gPiA+ID4gPiAgIDcu Ny4xIGNoYXB0ZXIuCj4gPiA+ID4gPiAtIFJvb3QgcG9ydCBNU0lzIHNob3VsZCBub3QgaW1wbHkg ZGlzYWJsaW5nIE1TSXMgZm9yIGFsbAo+ID4gPiA+ID4gZG93bnN0cmVhbQo+ID4gPiA+IGNvbXBv bmVudHMuCj4gPiA+ID4KPiA+ID4gPiBJIHRoaW5rIHRoaXMgaXMgYWxsIGEgbG90IG9mIGNvbmZ1 c2lvbiwgbW9zdGx5IG9uIG15IHBhcnQsIHNvcnJ5IGFib3V0IHRoYXQuCj4gPiA+ID4KPiA+ID4g PiBSb290IENvbXBsZXggY29uZmlndXJhdGlvbiBhbmQgYmVoYXZpb3IgaXMgbm90IHNwZWNpZmll ZCBieSB0aGUgUENJZQo+ID4gPiA+IHNwZWMsIHNvIHRoYXQncyBjb21wbGV0ZWx5IHVwIHRvIHRo ZSBpLk1YIGRlc2lnbmVyLiAgSXQncyBmaW5lIGZvcgo+ID4gPiA+IHRoZSBSb290IENvbXBsZXgg dG8gaGF2ZSBhbiBNU0kgQ2FwYWJpbGl0eSwgYW5kIGl0J3MgZmluZSBmb3IgdGhhdAo+ID4gPiA+ IGNhcGFiaWxpdHkgdG8gZW5hYmxlL2Rpc2FibGUgdGhlIFJDIGZpZWxkaW5nIG9mIE1TSSBNZW1X cgo+ID4gPiA+IHRyYW5zYWN0aW9ucyBmcm9tIGRvd25zdHJlYW0gZGV2aWNlcyBhbmQgdHJpZ2dl cmluZyBNU0kgaW50ZXJydXB0cy4KPiA+ID4gPgo+ID4gPiA+IEl0J3MgYWxzbyBmaW5lIGZvciB0 aGUgUkMgTVNJIENhcGFiaWxpdHkgdG8gYmUgaWRlbnRpZmllZCB3aXRoIGEKPiA+ID4gPiBDYXBh YmlsaXR5IElEIG9mIDB4NSwgYWx0aG91Z2ggaXQgaXMgc2xpZ2h0bHkgY29uZnVzaW5nIHRvIHVz ZQo+ID4gPiA+IFBDSV9DQVBfSURfTVNJIHRvIGZpbmQgaXQuICBJdCdzIGFsc28gc2xpZ2h0bHkg Y29uZnVzaW5nIHRvIHVzZSB0aGUKPiA+IFBDSV9NU0lfRkxBR1Mgb2Zmc2V0IGludG8gdGhlIFJD IE1TSSBDYXBhYmlsaXR5Lgo+ID4gPiA+Cj4gPiA+ID4gVXNpbmcgdGhlIFBDSV9DQVBfSURfTVNJ LCBQQ0lfTVNJX0ZMQUdTLCBhbmQgUENJX01TSV9GTEFHU19FTkFCTEUKPiA+ID4gPiBtYWNyb3Mg c3VnZ2VzdHMgdG8gdGhlIHJlYWRlciB0aGF0IHRoaXMgUkMgTVNJIGNhcGFiaWxpdHkgaXMgdGhl Cj4gPiA+ID4gc2FtZSBhcyB0aGUgdGhlIE1TSSBDYXBhYmlsaXR5IGRlZmluZWQgYnkgUENJZSBy Ni4wLCBzZWMgNy43LjEuCj4gPiA+ID4gT2J2aW91c2x5IGl0IGlzICpub3QqIHRoZSBzYW1lLCBi ZWNhdXNlIHdlJ3JlIHRhbGtpbmcgYWJvdXQgYSAqUm9vdAo+ID4gPiA+IENvbXBsZXgqIGNhcGFi aWxpdHksIHdoaWxlIHRoZSBzZWMgNy43LjEgY2FwYWJpbGl0eSBjYW4gb25seSBhcHBlYXIKPiA+ ID4gPiBvbiBQQ0llIGZ1bmN0aW9ucyAoUm9vdCBQb3J0cywgRW5kcG9pbnRzLCBTd2l0Y2ggUG9y dHMsIGV0YykuCj4gPiA+ID4KPiA+ID4gPiBJIHN1Z2dlc3QgYSBjb21tZW50IHRvIHRoZSBlZmZl Y3QgdGhhdCB0aGlzIGlzIGEgUm9vdCBDb21wbGV4IE1TSQo+ID4gPiA+IENhcGFiaWxpdHksIG5v dCB0aGUgTVNJIENhcGFiaWxpdHkgZGVmaW5lZCBieSBQQ0llIHI2LjAsIHNlYyA3LjcuMS4KPiA+ ID4gPgo+ID4gPiA+IFBvc3NpYmx5IGV2ZW4gYWRkIG5ldyAjZGVmaW5lcyBpbiBwY2ktaW14Ni5j IHdpdGggZGlmZmVyZW50IG5hbWVzLAo+ID4gPiA+IGV2ZW4gdGhvdWdoIHRoZSB2YWx1ZXMgaGFw cGVuIHRvIGJlIHRoZSBzYW1lIGFzIHRoZSBQQ0lfTVNJXyoKPiA+ID4gPiAjZGVmaW5lcy4gIFRo YXQgd291bGQgYmUgYSBjb252ZW5pZW50IHBsYWNlIHRvIHB1dCBhIGNvbW1lbnQgYWJvdXQgd2hh dAo+ID4gdGhleSBhcmUuCj4gPiA+IEhpIEJqb3JuOgo+ID4gPiBUaGFua3MgYSBsb3QgZm9yIHlv dXIgZGlzcGVsbGluZyBkb3VidHMuCj4gPiA+IEhvdyBhYm91dCB0byBhZGQgdGhlIGZvbGxvd2lu ZyBjb21tZW50cyBpbiB0aGUgbmV3IGFkZCBmdW5jdGlvbiB0byBjbGFyaWZ5IGl0Pwo+ID4gPgo+ ID4gPiAtLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktaW14Ni5jCj4gPiA+ICsr KyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1pbXg2LmMKPiA+ID4gQEAgLTEwMzYs NiArMTAzNiwxOCBAQCBzdGF0aWMgdm9pZCBwY2lfaW14X3NldF9tc2lfZW4oc3RydWN0IGR3X3Bj aWUKPiA+ICpwY2kpCj4gPiA+ICAgICAgICAgdTggb2Zmc2V0Owo+ID4gPiAgICAgICAgIHUxNiB2 YWw7Cj4gPiA+Cj4gPiA+ICsgICAgICAgLyoKPiA+ID4gKyAgICAgICAgKiBXaGVuIGkuTVggRE0g UENJZSBjb250cm9sbGVyIGlzIGNvbmZpZ3VyZWQgYXMgUkMgbW9kZSwgaXQgaGFzIG9uZQo+ID4g PiArICAgICAgICAqIE1TSSBDYXBhYmlsaXR5IFN0cnVjdHVyZSwgYWx0aG91Z2ggUENJZSByNi4w LCBzZWMgNy43LjEgZG9lc24ndAo+ID4gPiArICAgICAgICAqIHNwZWNpZnkgdGhlIE1TSSBDYXBh YmlsaXR5IFN0cnVjdHVyZXMgZm9yIFJvb3QgQ29tcGxleC4KPiA+IAo+ID4gVGhhdCdzIGJlY2F1 c2UgYSBQQ0kgcm9vdCBjb21wbGV4IGlzIG5vdCBhIFBDSSBkZXZpY2UgKGFuZCB0aGlzIGlzIG5v dCBhbiBNU0kKPiA+IGNhcGFiaWxpdHksIHdoaWNoIGxpdmVzIGluIFBDSSBjb25maWcgc3BhY2Up Lgo+ID4gCj4gPiBJIHdpbGwgcmV3b3JkIGl0IChhbmQgdGhlIGNvbW1pdCBsb2cgd2l0aCBpdCkg YW5kIG1lcmdlIGl0IGluIHRoZSBjb21pbmcgd2Vla3MgZm9yCj4gPiB2Ni40Cj4gSGkgTG9yZW56 bzoKPiBUaGFua3MgYSBsb3QgZm9yIHlvdXIga2luZGx5IGhlbHAuCgpJIGFtIGdldHRpbmcgYmFj ayB0byB0aGlzIHNpbmNlIEkgYW0gc3RpbGwgbm90IGNvbnZpbmNlZCBhbmQgSSB3YW50IHRvCnVu ZGVyc3RhbmQgdGhpcyBvbmNlIGZvciBhbGwuCgpXZSBkbyB1c2UgZHdfcGNpZV9maW5kX2NhcGFi aWxpdHkoKSBpbiBtb3N0IERXQyBkcml2ZXJzIHRvIGZpbmQgYW5kCnBlZWsvcG9rZSBhdCBlZyBQ Q0kgZXhwcmVzcyBjYXBhYmlsaXR5IG9mIHRoZSAqUm9vdCBwb3J0KiAoPyksCgplZyBkd19wY2ll X3dhaXRfZm9yX2xpbmsoKQoKc28gSSBhc3N1bWUgdGhhdCBmb3IgaU1YNiBkd19wY2llX2ZpbmRf Y2FwYWJpbGl0eSgpIGRvZXMganVzdCB0aGUgc2FtZSwKd2hpY2ggd291bGQgbWVhbiB0aGF0IHdl IGFyZSBwb2tpbmcgdGhlICJNZXNzYWdlIENvbnRyb2wiIGZpZWxkIG9mIHRoZQpSb290IHBvcnQg TVNJIGNhcGFiaWxpdHkuCgpFaXRoZXIgdGhhdCAod2hpY2ggd291bGQgbWVhbiB0aGF0IGlNWDYg aGFzIGEgSFcgYnVnIGJlY2F1c2UgdGhlIFJQCk1lc3NhZ2UgQ29udHJvbCBmaWVsZCBkb2VzIG5v dCBjb250cm9sIHRoZSBkZWxpdmVyeSBvZiBNU0lzIGZyb20KZW5kcG9pbnRzIGJ1dCBqdXN0IGZv ciB0aGUgcm9vdCBwb3J0IGl0c2VsZiApIG9yIGFsbCBEV0MgY29udHJvbGxlcnMKbW9kZWxsZWQg dGhlIHJvb3QgY29tcGxleCBNTUlPIHNwYWNlIGFzIGEgc2V0IG9mIFBDSS9QQ0llIGNhcGFiaWxp dGllcwp0aGF0IGFyZSBOT1QgbmVjZXNzYXJpbHkgbWFwcGFibGUgdG8gUENJIHNwZWNpZmljYXRp b25zIGRlZmluZWQgb25lcy4KCkNhbiBhbnlvbmUgcGxlYXNlIHNoZWQgc29tZSBsaWdodCBvbiB0 aGlzID8gSSBkb24ndCBoYXZlIERXQyBIVywgd2UgbmVlZAp0byBrbm93IGJlZm9yZSBtZXJnaW5n IHRoaXMgY29kZS4KClRoYW5rcywKTG9yZW56bwoKPiAKPiBCZXN0IFJlZ2FyZHMKPiBSaWNoYXJk IFpodQo+ID4gCj4gPiBUaGFua3MsCj4gPiBMb3JlbnpvCj4gPiAKPiA+ID4gKyAgICAgICAgKgo+ ID4gPiArICAgICAgICAqIFRoZSBNU0lfRU4gYml0IG9mIE1TSSBjb250cm9sIHJlZ2lzdGVyIGNv bnRhaW5lZCBpbiB0aGlzIE1TSS1DQVAKPiA+ID4gKyAgICAgICAgKiBpcyB1c2VkIGNvbnRyb2wg dGhlIE1TSSBkZWxpdmVyeSBvZiBNU0kgaW50ZXJydXB0cyBmcm9tIGNvbXBvbmVudHMKPiA+ID4g KyAgICAgICAgKiBiZWxvdyB0aGUgUm9vdCBQb3J0Lgo+ID4gPiArICAgICAgICAqCj4gPiA+ICsg ICAgICAgICogRmluZCBpdCBieSBQQ0lfQ0FQX0lEX01TSSBoZXJlLCBhbmQgYXNzZXJ0IHRoZSBN U0lfRU4gYml0IHRvCj4gPiBhbGxvdwo+ID4gPiArICAgICAgICAqIHRoZSBNU0kgZGVsaXZlcnkg YmVsb3cgdGhlIFJvb3QgUG9ydCwgaWYgdGhlIFBDSSBNU0kgaXMgZW5hYmxlZC4KPiA+ID4gKyAg ICAgICAgKi8KPiA+ID4gICAgICAgICBpZiAocGNpX21zaV9lbmFibGVkKCkpIHsKPiA+ID4gICAg ICAgICAgICAgICAgIG9mZnNldCA9IGR3X3BjaWVfZmluZF9jYXBhYmlsaXR5KHBjaSwgUENJX0NB UF9JRF9NU0kpOwo+ID4gPiAgICAgICAgICAgICAgICAgZHdfcGNpZV9kYmlfcm9fd3JfZW4ocGNp KTsgQmVzdCBSZWdhcmRzIFJpY2hhcmQgWmh1Cj4gPiA+ID4KPiA+ID4gPiBCam9ybgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5l bCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6 Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=