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 5C54EC433EF for ; Fri, 25 Feb 2022 12:55:33 +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=qMMuhFVhxjy6vP+TGFFQGmBncOuRUZjY+mypzzB4prE=; b=MAzuDgmO4AM3Tc YXzUbvf+NcvP7xqzbmjIiVKqARqceY2zJFlmccr1d1AVbBAmpA+qMylfSgwMYVlopHNZQKFQkYcv2 lRvcX50h70tj+Rt2D+jsZoX8F7rvVRXWf2K4vWNlpUZm3rk6m3+yyPPcBkycjC1+IyHNE66MxvJXa E8J1/0bssPGlDY8siEFxyWYDsX6v9ncqoxQwwzFBISPHAV4TRc+tTCheymAqkCiFdYNuv0lPuk6kT 5I1WlefsAewXqcFTDv2ojcazIin/fg44In3/Q8JWBq9HS7GdjJbt0VEIfARChWyoYa49RchY8u7nh QCA8sKnb9P/nPNVV3B6A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nNa72-004w3v-2Z; Fri, 25 Feb 2022 12:54:20 +0000 Received: from dfw.source.kernel.org ([139.178.84.217]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nNa6t-004w2J-Qn for linux-arm-kernel@lists.infradead.org; Fri, 25 Feb 2022 12:54:18 +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 61B8861BE7; Fri, 25 Feb 2022 12:54:11 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7AAC9C340E7; Fri, 25 Feb 2022 12:54:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1645793650; bh=ZLbrKhhIauzbgxTzgNFL8Yq3g0p8hUkXG6xdxAsW3Tg=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=YRDX0O1+38HQ+8qTBbn75AAvS7wvKlSidQ4wDcLNGNBrQKksr7z2FYrg53ICcklji pKNVpkbq60AQTPGFShXJFkYffPwphpyzxsmS+2GZAxRMKlVjww76Dj5onSgy11ZBR8 QXDB76zPocWPSEtS+L+BX4aN6843nZ/lnWD6vcZxCFzg+DZENV1KUzQzfdMTd3Pib1 ueSwEhWezJ/GLNoYryl3W1vt4P/y+mkx4EGd1KQadkqIN9hI7RE+MZ2IS1kvB7U6IA mivnye1h71wFpEN2lz2q6jIkAiBOD5zRdp+ZbV+6UbKHuuGQG5wgunxYZdd6e96uxK 2LQo+Z64ROhGQ== Received: by pali.im (Postfix) id B51E77EF; Fri, 25 Feb 2022 13:54:07 +0100 (CET) Date: Fri, 25 Feb 2022 13:54:07 +0100 From: Pali =?utf-8?B?Um9ow6Fy?= To: Bjorn Helgaas Cc: Lorenzo Pieralisi , Bjorn Helgaas , Rob Herring , Andrew Lunn , Thomas Petazzoni , Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , Marek =?utf-8?B?QmVow7pu?= , Russell King , Gregory Clement , linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 5/6] PCI: mvebu: Add support for sending Set_Slot_Power_Limit message Message-ID: <20220225125407.wglplhyisgges3zk@pali> References: <20220222163158.1666-6-pali@kernel.org> <20220224212811.GA291001@bhelgaas> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220224212811.GA291001@bhelgaas> User-Agent: NeoMutt/20180716 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220225_045411_980601_C13D219E X-CRM114-Status: GOOD ( 57.48 ) 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 T24gVGh1cnNkYXkgMjQgRmVicnVhcnkgMjAyMiAxNToyODoxMSBCam9ybiBIZWxnYWFzIHdyb3Rl Ogo+IE9uIFR1ZSwgRmViIDIyLCAyMDIyIGF0IDA1OjMxOjU3UE0gKzAxMDAsIFBhbGkgUm9ow6Fy IHdyb3RlOgo+ID4gVGhpcyBQQ0llIG1lc3NhZ2UgaXMgc2VudCBhdXRvbWF0aWNhbGx5IGJ5IG12 ZWJ1IEhXIHdoZW4gbGluayBjaGFuZ2VzCj4gPiBzdGF0dXMgZnJvbSBkb3duIHRvIHVwLgo+IAo+ IEkgKnRoaW5rKiB0aGUgaW50ZW50IG9mIHRoZSBhYm92ZSBpczoKPiAKPiAgIElmIERUIHN1cHBs aWVzIHRoZSAnc2xvdC1wb3dlci1saW1pdC1taWxsaXdhdHQnIHByb3BlcnR5LCBwcm9ncmFtCj4g ICB0aGUgdmFsdWUgaW4gdGhlIFNsb3QgUG93ZXIgTGltaXQgaW4gdGhlIFNsb3QgQ2FwYWJpbGl0 aWVzIHJlZ2lzdGVyCj4gICBhbmQgcHJvZ3JhbSB0aGUgUm9vdCBQb3J0IHRvIHNlbmQgYSBTZXRf U2xvdF9Qb3dlcl9MaW1pdCBNZXNzYWdlCj4gICB3aGVuIHRoZSBMaW5rIHRyYW5zaXRpb25zIHRv IERMX1VwLgoKRXhhY3RseSEKCj4gUENJZSByNi4wLCBzZWMgMi4yLjguNSBhbmQgNy41LjMuOSwg YWxzbyBzYXkgU2V0X1Nsb3RfUG93ZXJfTGltaXQgbXVzdAo+IGJlIHNlbnQgb24gYSBjb25maWcg d3JpdGUgdG8gU2xvdCBDYXBhYmlsaXRpZXMuICBJIGRvbid0IHJlYWxseQo+IHVuZGVyc3RhbmQg dGhhdCwgc2luY2UgQUZBSUNTLCBldmVyeXRoaW5nIGluIHRoYXQgcmVnaXN0ZXIgaXMKPiByZWFk LW9ubHkuICBCdXQgdGhlcmUgbXVzdCBiZSBzb21lIHVzZSBjYXNlIGZvciBmb3JjaW5nIGEgbWVz c2FnZS4KCkkgdW5kZXJzdG9vZCBpdCBpbiB0aGlzIHdheTogQ2FwYWJpbGl0aWVzIHJlZ2lzdGVy IGlzIHJlYWQtb25seSBody1pbml0CmFuZCBzbyBmaXJtd2FyZSAvIGRyaXZlciBjYW4gd3JpdGUg aW5pdGlhbGl6YXRpb24gdmFsdWVzIGludG8gdGhpcwpyZWdpc3Rlci4gQW5kIHdoZW4gZmlybXdh cmUgLyBkcml2ZXIgaXMgZG9pbmcgdGhpcyB3cml0ZSB0aGVuIFJvb3QgcG9ydApzaG91bGQgc2Vu ZCB0aGF0IFNldF9TbG90X1Bvd2VyX0xpbWl0IG1lc3NhZ2UuCgpCdXQgdGhpcyBpcyBqdXN0IG15 IGludGVycHJldGF0aW9uIHdoaWNoIEkgdGhvdWdodCB0aGF0IG1ha2VzIHNlbnNlLgoKPiA+IFNs b3QgcG93ZXIgbGltaXQgaXMgcmVhZCBmcm9tIERUIHByb3BlcnR5ICdzbG90LXBvd2VyLWxpbWl0 LW1pbGxpd2F0dCcgYW5kCj4gPiBzZXQgdG8gbXZlYnUgSFcuIFdoZW4gdGhpcyBEVCBwcm9wZXJ0 eSBpcyBub3Qgc3BlY2lmaWVkIHRoZW4gZHJpdmVyIHRyZWF0Cj4gPiBpdCBhcyAiU2xvdCBDYXBh YmlsaXRpZXMgcmVnaXN0ZXIgaGFzIG5vdCB5ZXQgYmVlbiBpbml0aWFsaXplZCIuCj4gCj4gRG9l cyB0aGlzIGxhc3Qgc2VudGVuY2UgbWVhbiAidGhlIFNsb3QgUG93ZXIgTGltaXQgaXMgc2V0IHRv IDBXCj4gKFZhbHVlID0gMDBoIGFuZCBTY2FsZSA9IDAwYiA9IDEuMHgpIGFuZCBBdXRvIFNsb3Qg UG93ZXIgTGltaXQgRGlzYWJsZQo+IGlzIHNldCwgc28gU2V0X1Nsb3RfUG93ZXJfTGltaXQgTWVz c2FnZXMgd2lsbCBuZXZlciBiZSBzZW50Ij8KClllcyEKCj4gPiBTaWduZWQtb2ZmLWJ5OiBQYWxp IFJvaMOhciA8cGFsaUBrZXJuZWwub3JnPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9wY2kvY29udHJv bGxlci9wY2ktbXZlYnUuYyB8IDg1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLQo+ID4g IDEgZmlsZSBjaGFuZ2VkLCA4MCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQo+ID4gCj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktbXZlYnUuYyBiL2RyaXZl cnMvcGNpL2NvbnRyb2xsZXIvcGNpLW12ZWJ1LmMKPiA+IGluZGV4IGE3NWQyYjkxOTZmOS4uYzc4 NmZlZWM0ZDE3IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktbXZl YnUuYwo+ID4gKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktbXZlYnUuYwo+ID4gQEAg LTY2LDYgKzY2LDEyIEBACj4gPiAgI2RlZmluZSAgUENJRV9TVEFUX0JVUyAgICAgICAgICAgICAg ICAgIDB4ZmYwMAo+ID4gICNkZWZpbmUgIFBDSUVfU1RBVF9ERVYgICAgICAgICAgICAgICAgICAw eDFmMDAwMAo+ID4gICNkZWZpbmUgIFBDSUVfU1RBVF9MSU5LX0RPV04JCUJJVCgwKQo+ID4gKyNk ZWZpbmUgUENJRV9TU1BMX09GRgkJMHgxYTBjCj4gPiArI2RlZmluZSAgUENJRV9TU1BMX1ZBTFVF X1NISUZUCQkwCj4gPiArI2RlZmluZSAgUENJRV9TU1BMX1ZBTFVFX01BU0sJCUdFTk1BU0soNywg MCkKPiA+ICsjZGVmaW5lICBQQ0lFX1NTUExfU0NBTEVfU0hJRlQJCTgKPiA+ICsjZGVmaW5lICBQ Q0lFX1NTUExfU0NBTEVfTUFTSwkJR0VOTUFTSyg5LCA4KQo+ID4gKyNkZWZpbmUgIFBDSUVfU1NQ TF9FTkFCTEUJCUJJVCgxNikKPiA+ICAjZGVmaW5lIFBDSUVfUkNfUlRTVEEJCTB4MWExNAo+ID4g ICNkZWZpbmUgUENJRV9ERUJVR19DVFJMICAgICAgICAgMHgxYTYwCj4gPiAgI2RlZmluZSAgUENJ RV9ERUJVR19TT0ZUX1JFU0VUCQlCSVQoMjApCj4gPiBAQCAtMTExLDYgKzExNyw4IEBAIHN0cnVj dCBtdmVidV9wY2llX3BvcnQgewo+ID4gIAlzdHJ1Y3QgbXZlYnVfcGNpZV93aW5kb3cgaW93aW47 Cj4gPiAgCXUzMiBzYXZlZF9wY2llX3N0YXQ7Cj4gPiAgCXN0cnVjdCByZXNvdXJjZSByZWdzOwo+ ID4gKwl1OCBzbG90X3Bvd2VyX2xpbWl0X3ZhbHVlOwo+ID4gKwl1OCBzbG90X3Bvd2VyX2xpbWl0 X3NjYWxlOwo+ID4gIAlzdHJ1Y3QgaXJxX2RvbWFpbiAqaW50eF9pcnFfZG9tYWluOwo+ID4gIAly YXdfc3BpbmxvY2tfdCBpcnFfbG9jazsKPiA+ICAJaW50IGludHhfaXJxOwo+ID4gQEAgLTIzOSw3 ICsyNDcsNyBAQCBzdGF0aWMgdm9pZCBtdmVidV9wY2llX3NldHVwX3dpbnMoc3RydWN0IG12ZWJ1 X3BjaWVfcG9ydCAqcG9ydCkKPiA+ICAKPiA+ICBzdGF0aWMgdm9pZCBtdmVidV9wY2llX3NldHVw X2h3KHN0cnVjdCBtdmVidV9wY2llX3BvcnQgKnBvcnQpCj4gPiAgewo+ID4gLQl1MzIgY3RybCwg bG5rY2FwLCBjbWQsIGRldl9yZXYsIHVubWFzazsKPiA+ICsJdTMyIGN0cmwsIGxua2NhcCwgY21k LCBkZXZfcmV2LCB1bm1hc2ssIHNzcGw7Cj4gPiAgCj4gPiAgCS8qIFNldHVwIFBDSWUgY29udHJv bGxlciB0byBSb290IENvbXBsZXggbW9kZS4gKi8KPiA+ICAJY3RybCA9IG12ZWJ1X3JlYWRsKHBv cnQsIFBDSUVfQ1RSTF9PRkYpOwo+ID4gQEAgLTI5Miw2ICszMDAsMjAgQEAgc3RhdGljIHZvaWQg bXZlYnVfcGNpZV9zZXR1cF9odyhzdHJ1Y3QgbXZlYnVfcGNpZV9wb3J0ICpwb3J0KQo+ID4gIAkv KiBQb2ludCBQQ0llIHVuaXQgTUJVUyBkZWNvZGUgd2luZG93cyB0byBEUkFNIHNwYWNlLiAqLwo+ ID4gIAltdmVidV9wY2llX3NldHVwX3dpbnMocG9ydCk7Cj4gPiAgCj4gPiArCS8qCj4gPiArCSAq IFByb2dyYW0gUm9vdCBDb21wbGV4IHRvIGF1dG9tYXRpY2FsbHkgc2VuZHMgU2V0IFNsb3QgUG93 ZXIgTGltaXQKPiA+ICsJICogUENJZSBNZXNzYWdlIHdoZW4gY2hhbmdpbmcgc3RhdHVzIGZyb20g RGwtRG93biB0byBEbC1VcCBhbmQgdmFsaWQKPiA+ICsJICogc2xvdCBwb3dlciBsaW1pdCB3YXMg c3BlY2lmaWVkLgo+IAo+IHMvUm9vdCBDb21wbGV4L1Jvb3QgUG9ydC8sIHJpZ2h0PyAgQUZBSUsg dGhlIG1lc3NhZ2Ugd291bGQgYmUgc2VudCBieQo+IGEgRG93bnN0cmVhbSBQb3J0LCBpLmUuLCBh IFJvb3QgUG9ydCBpbiB0aGlzIGNhc2UuCgpZZXMhCgpJIHNlZSB0aGF0IG9uIG1vcmUgcGxhY2Vz IHRoYXQgbmFtZXMgIlJvb3QgUG9ydCIsICJSb290IEJyaWRnZSIgYW5kCiJSb290IENvbXBsZXgi IHVzZWQgYXMgdGhlIG9uZSB0aGluZy4KCkl0IGlzIHByb2JhYmx5IGJlY2F1c2UgSFcgaGFzIG9u bHkgb25lIFJvb3QgUG9ydCBhbmQgaXMgaW50ZWdyYXRlZCBpbnRvCnNhbWUgc2lsaWNvbiBhcyBS b290IENvbXBsZXggYW5kIHNoYXJlcyBIVyByZWdpc3RlcnMuIEFuZCBSb290IFBvcnQgaGFzClBD SSBjbGFzcyBjb2RlICJQQ0kgQnJpZGdlIiwgaGVuY2UgUm9vdCBCcmlkZ2UuCgpCdXQgSSBhZ3Jl ZSB0aGF0IGNvcnJlY3QgbmFtZSBpcyAiUm9vdCBQb3J0Ii4KCk1vcmVvdmVyIGluIEFybWFkYSAz OHggRnVuY3Rpb25hbCBTcGVjaWZpY2F0aW9uIGlzIHRoaXMgcmVnaXN0ZXIgbmFtZWQKIlJvb3Qg Q29tcGxleCBTZXQgU2xvdCBQb3dlciBMaW1pdCIgYW5kIG5vdCBSb290ICJQb3J0Ii4KCj4gcy9z ZW5kcy9zZW5kLwo+IHMvU2V0IFNsb3QgUG93ZXIgTGltaXQvU2V0X1Nsb3RfUG93ZXJfTGltaXQv IHRvIG1hdGNoIHNwZWMgdXNhZ2UgKGFsc28KPiBiZWxvdykKPiBzL0RsLURvd24vRExfRG93bi8g dG8gbWF0Y2ggc3BlYyB1c2FnZQo+IHMvRGwtVXAvRExfVXAvIGRpdHRvCgpJbiBBcm1hZGEgMzh4 IEZ1bmN0aW9uYWwgU3BlY2lmaWNhdGlvbiBzcGVjIGl0IGlzIGNhbGxlZCBsaWtlIEkgd3JvdGUK YW5kIHNvbWUgcGVvcGxlIHRvbGQgbWUgdG8gdXNlICJuYW1pbmciIGFzIHdyaXR0ZW4gaW4gU29D L0hXCnNwZWNpZmljYXRpb24gdG8gbm90IGNvbmZ1c2Ugb3RoZXIgcGVvcGxlIHdobyBhcmUgd3Jp dGluZyAvIGRldmVsb3BpbmcKZHJpdmVycyBhY2NvcmRpbmcgdG8gb2ZmaWNpYWwgU29DL0hXIHNw ZWNpZmljYXRpb24uCgpJIHNlZSB0aGF0IGJvdGggaGFzIHBybyBhbmQgY29ucy4gVXNhZ2Ugb2Yg dGVybWlub2xvZ3kgZnJvbSBQQ0llIHNwZWMgaXMKd2hhdCBQQ0llIHBlb3BsZSBleHBlY3QgYW5k IHRlcm1pbm9sb2d5IGZyb20gdmVuZG9yIFNvQyBIVyBzcGVjIGlzIHdoYXQKcGVvcGxlIHdobyBk ZXZlbG9wIHRoYXQgU29DIGV4cGVjdC4KCkkgY2FuIHVwZGF0ZSBhbmQgY2hhbmdlIGNvbW1lbnRz IHdpdGhvdXQgaXNzdWUgdG8gYW55IHZhcmlhbnQgd2hpY2ggeW91CnByZWZlci4gTm8gcHJvYmxl bSB3aXRoIGl0LiBKdXN0IEkgd2FudGVkIHRvIHdyaXRlIHdoeSBJIGNob3NlIHRob3NlCm5hbWVz LgoKPiA+ICsJICovCj4gPiArCXNzcGwgPSBtdmVidV9yZWFkbChwb3J0LCBQQ0lFX1NTUExfT0ZG KTsKPiA+ICsJc3NwbCAmPSB+KFBDSUVfU1NQTF9WQUxVRV9NQVNLIHwgUENJRV9TU1BMX1NDQUxF X01BU0sgfCBQQ0lFX1NTUExfRU5BQkxFKTsKPiA+ICsJaWYgKHBvcnQtPnNsb3RfcG93ZXJfbGlt aXRfdmFsdWUgJiYgcG9ydC0+c2xvdF9wb3dlcl9saW1pdF9zY2FsZSkgewo+ID4gKwkJc3NwbCB8 PSBwb3J0LT5zbG90X3Bvd2VyX2xpbWl0X3ZhbHVlIDw8IFBDSUVfU1NQTF9WQUxVRV9TSElGVDsK PiA+ICsJCXNzcGwgfD0gcG9ydC0+c2xvdF9wb3dlcl9saW1pdF9zY2FsZSA8PCBQQ0lFX1NTUExf U0NBTEVfU0hJRlQ7Cj4gPiArCQlzc3BsIHw9IFBDSUVfU1NQTF9FTkFCTEU7Cj4gPiArCX0KPiA+ ICsJbXZlYnVfd3JpdGVsKHBvcnQsIHNzcGwsIFBDSUVfU1NQTF9PRkYpOwo+ID4gKwo+ID4gIAkv KiBNYXNrIGFsbCBpbnRlcnJ1cHQgc291cmNlcy4gKi8KPiA+ICAJbXZlYnVfd3JpdGVsKHBvcnQs IH5QQ0lFX0lOVF9BTExfTUFTSywgUENJRV9JTlRfVU5NQVNLX09GRik7Cj4gPiAgCj4gPiBAQCAt NjI4LDkgKzY1MCwxNiBAQCBtdmVidV9wY2lfYnJpZGdlX2VtdWxfcGNpZV9jb25mX3JlYWQoc3Ry dWN0IHBjaV9icmlkZ2VfZW11bCAqYnJpZGdlLAo+ID4gIAkJCSAgKFBDSV9FWFBfTE5LU1RBX0RM TExBIDw8IDE2KSA6IDApOwo+ID4gIAkJYnJlYWs7Cj4gPiAgCj4gPiAtCWNhc2UgUENJX0VYUF9T TFRDVEw6Cj4gPiAtCQkqdmFsdWUgPSBQQ0lfRVhQX1NMVFNUQV9QRFMgPDwgMTY7Cj4gPiArCWNh c2UgUENJX0VYUF9TTFRDVEw6IHsKPiA+ICsJCXUxNiBzbG90c3RhID0gbGUxNl90b19jcHUoYnJp ZGdlLT5wY2llX2NvbmYuc2xvdHN0YSk7Cj4gPiArCQl1MzIgdmFsID0gMDsKPiA+ICsJCWlmICgh KG12ZWJ1X3JlYWRsKHBvcnQsIFBDSUVfU1NQTF9PRkYpICYgUENJRV9TU1BMX0VOQUJMRSkpCj4g PiArCQkJdmFsIHw9IFBDSV9FWFBfU0xUQ1RMX0FTUExfRElTQUJMRTsKPiA+ICsJCS8qIFBDSV9F WFBfU0xUQ1RMIGlzIDMyLWJpdCBhbmQgY29udGFpbnMgYWxzbyBzbG90IHN0YXR1cyBiaXRzICov Cj4gCj4gVGhpcyBjb21tZW50IGlzIGEgbGl0dGxlIGJpdCBjb25mdXNpbmcgYmVjYXVzZSBQQ0lf RVhQX1NMVENUTCBpcyBub3QKPiBhY3R1YWxseSAzMiBiaXRzOyBpdCdzIDE2IGJpdHMuCgpNeSBj b21tZW50IHJlZmVycyB0byBwY2ktYnJpZGdlLWVtdWwuYyBQQ0lfRVhQX1NMVENUTCByZWdpc3Rl ciwgd2hpY2ggaXMKMzItYml0LiBUaGF0IHBjaS1icmlkZ2UtZW11bC5jIGRyaXZlciBoYXMgMzIt Yml0IHJlZ2lzdGVycyBhbmQgaW4gcGxhY2VzCndoZXJlIFBDSWUgcmVnaXN0ZXIgaXMgb25seSAx Ni1iaXQsIGl0IGlzIGNvbmNhdGVuYXRlZCB0byBwcmV2aW91cwoxNi1iaXQuCgo+IEl0J3MganVz dCB0aGF0IHdlICJyZWFkIiAzMiBiaXRzLAo+IHdoaWNoIGluY2x1ZGVzIGJvdGggUENJX0VYUF9T TFRDVEwgYW5kIFBDSV9FWFBfU0xUU1RBLiAgSWYgeW91IHVzZQo+ICJQQ0lfRVhQX1NMVENUTCIs IEkgdGhpbmsgaXQgd291bGQgYmUgaGVscGZ1bCB0byBhbHNvIHNheQo+ICJQQ0lfRVhQX1NMVFNU QSIgaW5zdGVhZCBvZiAic2xvdCBzdGF0dXMgYml0cyIuCgpJIGFncmVlLCB0aGlzIGlzIG1pc2xl YWRpbmcgYW5kIGNvbmZ1c2luZy4gQW5kIGJlY2F1c2UgSSdtIHdvcmtpbmcgd2l0aApwY2ktYnJp ZGdlLWVtdWwuYyBwY2ktYWFyZHZhcmsuYyBhbmQgcGNpLW12ZWJ1LmMgZm9yIG1vcmUgdGhhbiB5 ZWFyIEkKcHJvYmFibHkgdG90YWxseSBmb3Jnb3QgYWJvdXQgY29uZnVzaW9uIGhlcmUgYXMgSSBh bHJlYWR5IGNhdGNoIHRoZXNlCnRoaW5ncy4uLgoKSSB3aWxsIHRyeSB0byBjaGFuZ2UgY29tbWVu dHMgdG8gYmUgbGVzcyBjb25mdXNpbmcuCgo+ID4gKwkJdmFsIHw9IHNsb3RzdGEgPDwgMTY7Cj4g PiArCQkqdmFsdWUgPSB2YWw7Cj4gPiAgCQlicmVhazsKPiA+ICsJfQo+ID4gIAo+ID4gIAljYXNl IFBDSV9FWFBfUlRTVEE6Cj4gPiAgCQkqdmFsdWUgPSBtdmVidV9yZWFkbChwb3J0LCBQQ0lFX1JD X1JUU1RBKTsKPiA+IEBAIC03NzQsNiArODAzLDE5IEBAIG12ZWJ1X3BjaV9icmlkZ2VfZW11bF9w Y2llX2NvbmZfd3JpdGUoc3RydWN0IHBjaV9icmlkZ2VfZW11bCAqYnJpZGdlLAo+ID4gIAkJbXZl YnVfd3JpdGVsKHBvcnQsIG5ldywgUENJRV9DQVBfUENJRVhQICsgUENJX0VYUF9MTktDVEwpOwo+ ID4gIAkJYnJlYWs7Cj4gPiAgCj4gPiArCWNhc2UgUENJX0VYUF9TTFRDVEw6Cj4gPiArCQlpZiAo KG1hc2sgJiBQQ0lfRVhQX1NMVENUTF9BU1BMX0RJU0FCTEUpICYmCj4gPiArCQkgICAgcG9ydC0+ c2xvdF9wb3dlcl9saW1pdF92YWx1ZSAmJgo+ID4gKwkJICAgIHBvcnQtPnNsb3RfcG93ZXJfbGlt aXRfc2NhbGUpIHsKPiA+ICsJCQl1MzIgc3NwbCA9IG12ZWJ1X3JlYWRsKHBvcnQsIFBDSUVfU1NQ TF9PRkYpOwo+ID4gKwkJCWlmIChuZXcgJiBQQ0lfRVhQX1NMVENUTF9BU1BMX0RJU0FCTEUpCj4g PiArCQkJCXNzcGwgJj0gflBDSUVfU1NQTF9FTkFCTEU7Cj4gPiArCQkJZWxzZQo+ID4gKwkJCQlz c3BsIHw9IFBDSUVfU1NQTF9FTkFCTEU7Cj4gPiArCQkJbXZlYnVfd3JpdGVsKHBvcnQsIHNzcGws IFBDSUVfU1NQTF9PRkYpOwo+IAo+IElJVUMsIHRoZSBiZWhhdmlvciBvZiBQQ0lfRVhQX1NMVENU TF9BU1BMX0RJU0FCTEUgYXMgb2JzZXJ2ZWQgYnkKPiBzb2Z0d2FyZSB0aGF0IHNldHMgaXQgYW5k IHJlYWRzIGl0IGJhY2sgd2lsbCBkZXBlbmQgb24gd2hldGhlciB0aGUgRFQKPiBjb250YWlucyAi c2xvdC1wb3dlci1saW1pdC1taWxsaXdhdHQiLgo+IAo+IElmIHRoZXJlIGlzIG5vIERUIHByb3Bl cnR5LCBwb3J0LT5zbG90X3Bvd2VyX2xpbWl0X3ZhbHVlIHdpbGwgYmUgemVybwo+IGFuZCBQQ0lF X1NTUExfRU5BQkxFIHdpbGwgbmV2ZXIgYmUgc2V0LiAgU28gaWYgSSBjbGVhcgo+IFBDSV9FWFBf U0xUQ1RMX0FTUExfRElTQUJMRSwgdGhlbiByZWFkIGl0IGJhY2ssIGl0IGxvb2tzIGxpa2UgaXQg d2lsbAo+IHJlYWQgYXMgYmVpbmcgc2V0LgoKWWVzLgoKPiBUaGF0J3Mgbm90IHdoYXQgSSB3b3Vs ZCBleHBlY3QgZnJvbSB0aGUgc3BlYyAoUENJZSByNi4wLCBzZWMgNy41LjMuMTApLgoKT2suIFdo YXQgeW91IHdvdWxkIGV4cGVjdCBoZXJlPyBUaGF0IFBDSV9FWFBfU0xUQ1RMX0FTUExfRElTQUJM RSBpcyBub3QKc2V0IGV2ZW4gd2hlbiBTZXRfU2xvdF9Qb3dlcl9MaW1pdCB3YXMgbmV2ZXIgc2Vu dCBhbmQgd291bGQgYmUgbmV2ZXIKc2VudCAoYXMgaXQgd2FzIG5vdCBwcm9ncmFtbWVkIGJ5IGZp cm13YXJlID0gaW4gRFQpPwoKPiA+ICsJCX0KPiA+ICsJCWJyZWFrOwo+ID4gKwo+ID4gIAljYXNl IFBDSV9FWFBfUlRTVEE6Cj4gPiAgCQkvKgo+ID4gIAkJICogUE1FIFN0YXR1cyBiaXQgaW4gUm9v dCBTdGF0dXMgUmVnaXN0ZXIgKFBDSUVfUkNfUlRTVEEpCj4gPiBAQCAtODY4LDggKzkxMCwyNiBA QCBzdGF0aWMgaW50IG12ZWJ1X3BjaV9icmlkZ2VfZW11bF9pbml0KHN0cnVjdCBtdmVidV9wY2ll X3BvcnQgKnBvcnQpCj4gPiAgCS8qCj4gPiAgCSAqIE9sZGVyIG12ZWJ1IGhhcmR3YXJlIHByb3Zp ZGVzIFBDSWUgQ2FwYWJpbGl0eSBzdHJ1Y3R1cmUgb25seSBpbgo+ID4gIAkgKiB2ZXJzaW9uIDEu IE5ldyBoYXJkd2FyZSBwcm92aWRlcyBpdCBpbiB2ZXJzaW9uIDIuCj4gPiArCSAqIEVuYWJsZSBz bG90IHN1cHBvcnQgd2hpY2ggaXMgZW11bGF0ZWQuCj4gPiAgCSAqLwo+ID4gLQlicmlkZ2UtPnBj aWVfY29uZi5jYXAgPSBjcHVfdG9fbGUxNihwY2llX2NhcF92ZXIpOwo+ID4gKwlicmlkZ2UtPnBj aWVfY29uZi5jYXAgPSBjcHVfdG9fbGUxNihwY2llX2NhcF92ZXIgfCBQQ0lfRVhQX0ZMQUdTX1NM T1QpOwo+ID4gKwo+ID4gKwkvKgo+ID4gKwkgKiBTZXQgUHJlc2VuY2UgRGV0ZWN0IFN0YXRlIGJp dCBwZXJtYW5lbnRseSBhcyB0aGVyZSBpcyBubyBzdXBwb3J0IGZvcgo+ID4gKwkgKiB1bnBsdWdn aW5nIFBDSWUgY2FyZCBmcm9tIHRoZSBzbG90LiBBc3N1bWUgdGhhdCBQQ0llIGNhcmQgaXMgYWx3 YXlzCj4gPiArCSAqIGNvbm5lY3RlZCBpbiBzbG90Lgo+ID4gKwkgKgo+ID4gKwkgKiBTZXQgcGh5 c2ljYWwgc2xvdCBudW1iZXIgdG8gcG9ydCsxIGFzIG12ZWJ1IHBvcnRzIGFyZSBpbmRleGVkIGZy b20KPiA+ICsJICogemVybyBhbmQgemVybyB2YWx1ZSBpcyByZXNlcnZlZCBmb3IgcG9ydHMgd2l0 aGluIHRoZSBzYW1lIHNpbGljb24KPiA+ICsJICogYXMgUm9vdCBQb3J0IHdoaWNoIGlzIG5vdCBt dmVidSBjYXNlLgo+ID4gKwkgKgo+ID4gKwkgKiBBbHNvIHNldCBjb3JyZWN0IHNsb3QgcG93ZXIg bGltaXQuCj4gPiArCSAqLwo+ID4gKwlicmlkZ2UtPnBjaWVfY29uZi5zbG90Y2FwID0gY3B1X3Rv X2xlMzIoCj4gPiArCQkocG9ydC0+c2xvdF9wb3dlcl9saW1pdF92YWx1ZSA8PCBQQ0lfRVhQX1NM VENBUF9TUExWX1NISUZUKSB8Cj4gPiArCQkocG9ydC0+c2xvdF9wb3dlcl9saW1pdF9zY2FsZSA8 PCBQQ0lfRVhQX1NMVENBUF9TUExTX1NISUZUKSB8Cj4gPiArCQkoKHBvcnQtPnBvcnQrMSkgPDwg UENJX0VYUF9TTFRDQVBfUFNOX1NISUZUKSk7Cj4gPiArCWJyaWRnZS0+cGNpZV9jb25mLnNsb3Rz dGEgPSBjcHVfdG9fbGUxNihQQ0lfRVhQX1NMVFNUQV9QRFMpOwo+ID4gIAo+ID4gIAlicmlkZ2Ut PnN1YnN5c3RlbV92ZW5kb3JfaWQgPSBzc2Rldl9pZCAmIDB4ZmZmZjsKPiA+ICAJYnJpZGdlLT5z dWJzeXN0ZW1faWQgPSBzc2Rldl9pZCA+PiAxNjsKPiA+IEBAIC0xMTkxLDYgKzEyNTEsNyBAQCBz dGF0aWMgaW50IG12ZWJ1X3BjaWVfcGFyc2VfcG9ydChzdHJ1Y3QgbXZlYnVfcGNpZSAqcGNpZSwK PiA+ICB7Cj4gPiAgCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwY2llLT5wZGV2LT5kZXY7Cj4gPiAg CWVudW0gb2ZfZ3Bpb19mbGFncyBmbGFnczsKPiA+ICsJdTMyIHNsb3RfcG93ZXJfbGltaXQ7Cj4g PiAgCWludCByZXNldF9ncGlvLCByZXQ7Cj4gPiAgCXUzMiBudW1fbGFuZXM7Cj4gPiAgCj4gPiBA QCAtMTI5MSw2ICsxMzUyLDE1IEBAIHN0YXRpYyBpbnQgbXZlYnVfcGNpZV9wYXJzZV9wb3J0KHN0 cnVjdCBtdmVidV9wY2llICpwY2llLAo+ID4gIAkJcG9ydC0+cmVzZXRfZ3BpbyA9IGdwaW9fdG9f ZGVzYyhyZXNldF9ncGlvKTsKPiA+ICAJfQo+ID4gIAo+ID4gKwlzbG90X3Bvd2VyX2xpbWl0ID0g b2ZfcGNpX2dldF9zbG90X3Bvd2VyX2xpbWl0KGNoaWxkLAo+ID4gKwkJCQkmcG9ydC0+c2xvdF9w b3dlcl9saW1pdF92YWx1ZSwKPiA+ICsJCQkJJnBvcnQtPnNsb3RfcG93ZXJfbGltaXRfc2NhbGUp Owo+ID4gKwlpZiAoc2xvdF9wb3dlcl9saW1pdCkKPiA+ICsJCWRldl9pbmZvKGRldiwgIiVzOiBT bG90IHBvd2VyIGxpbWl0ICV1LiV1V1xuIiwKPiA+ICsJCQkgcG9ydC0+bmFtZSwKPiA+ICsJCQkg c2xvdF9wb3dlcl9saW1pdCAvIDEwMDAsCj4gPiArCQkJIChzbG90X3Bvd2VyX2xpbWl0IC8gMTAw KSAlIDEwKTsKPiA+ICsKPiA+ICAJcG9ydC0+Y2xrID0gb2ZfY2xrX2dldF9ieV9uYW1lKGNoaWxk LCBOVUxMKTsKPiA+ICAJaWYgKElTX0VSUihwb3J0LT5jbGspKSB7Cj4gPiAgCQlkZXZfZXJyKGRl diwgIiVzOiBjYW5ub3QgZ2V0IGNsb2NrXG4iLCBwb3J0LT5uYW1lKTsKPiA+IEBAIC0xNTg3LDcg KzE2NTcsNyBAQCBzdGF0aWMgaW50IG12ZWJ1X3BjaWVfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgbXZlYnVfcGNpZSAqcGNpZSA9IHBsYXRm b3JtX2dldF9kcnZkYXRhKHBkZXYpOwo+ID4gIAlzdHJ1Y3QgcGNpX2hvc3RfYnJpZGdlICpicmlk Z2UgPSBwY2lfaG9zdF9icmlkZ2VfZnJvbV9wcml2KHBjaWUpOwo+ID4gLQl1MzIgY21kOwo+ID4g Kwl1MzIgY21kLCBzc3BsOwo+ID4gIAlpbnQgaTsKPiA+ICAKPiA+ICAJLyogUmVtb3ZlIFBDSSBi dXMgd2l0aCBhbGwgZGV2aWNlcy4gKi8KPiA+IEBAIC0xNjI0LDYgKzE2OTQsMTEgQEAgc3RhdGlj IGludCBtdmVidV9wY2llX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ID4g IAkJLyogRnJlZSBjb25maWcgc3BhY2UgZm9yIGVtdWxhdGVkIHJvb3QgYnJpZGdlLiAqLwo+ID4g IAkJcGNpX2JyaWRnZV9lbXVsX2NsZWFudXAoJnBvcnQtPmJyaWRnZSk7Cj4gPiAgCj4gPiArCQkv KiBEaXNhYmxlIHNlbmRpbmcgU2V0IFNsb3QgUG93ZXIgTGltaXQgUENJZSBNZXNzYWdlLiAqLwo+ ID4gKwkJc3NwbCA9IG12ZWJ1X3JlYWRsKHBvcnQsIFBDSUVfU1NQTF9PRkYpOwo+ID4gKwkJc3Nw bCAmPSB+KFBDSUVfU1NQTF9WQUxVRV9NQVNLIHwgUENJRV9TU1BMX1NDQUxFX01BU0sgfCBQQ0lF X1NTUExfRU5BQkxFKTsKPiA+ICsJCW12ZWJ1X3dyaXRlbChwb3J0LCBzc3BsLCBQQ0lFX1NTUExf T0ZGKTsKPiA+ICsKPiA+ICAJCS8qIERpc2FibGUgYW5kIGNsZWFyIEJBUnMgYW5kIHdpbmRvd3Mu ICovCj4gPiAgCQltdmVidV9wY2llX2Rpc2FibGVfd2lucyhwb3J0KTsKPiA+ICAKPiA+IC0tIAo+ ID4gMi4yMC4xCj4gPiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlz dHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2xpbnV4LWFybS1rZXJuZWwK