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 X-Spam-Level: X-Spam-Status: No, score=-13.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0D010C63777 for ; Mon, 30 Nov 2020 18:24:17 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8BA952074A for ; Mon, 30 Nov 2020 18:24:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728509AbgK3SYA (ORCPT ); Mon, 30 Nov 2020 13:24:00 -0500 Received: from mga14.intel.com ([192.55.52.115]:32509 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727125AbgK3SYA (ORCPT ); Mon, 30 Nov 2020 13:24:00 -0500 IronPort-SDR: tEvXP0vRVsKdpecsLTdDylbzD69gQD1BpqbU4Er+M9pNnQmDf6bQ2Zh5n+WtT5RfwF26EqNjq2 11gXofm9PZ1Q== X-IronPort-AV: E=McAfee;i="6000,8403,9821"; a="171901336" X-IronPort-AV: E=Sophos;i="5.78,382,1599548400"; d="scan'208";a="171901336" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Nov 2020 10:23:17 -0800 IronPort-SDR: 2lyQ5AOU5DVHBvXBmsQWkbY8WickavzD8yXa6gc19O0fbaq04Mu2NmQGBevO+OYh+sV3RgJvvc TQRSemsQWoIw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,382,1599548400"; d="scan'208";a="549208074" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by orsmga005.jf.intel.com with ESMTP; 30 Nov 2020 10:23:16 -0800 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 30 Nov 2020 10:23:16 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 30 Nov 2020 10:23:15 -0800 Received: from fmsmsx610.amr.corp.intel.com ([10.18.126.90]) by fmsmsx610.amr.corp.intel.com ([10.18.126.90]) with mapi id 15.01.1713.004; Mon, 30 Nov 2020 10:23:15 -0800 From: "Derrick, Jonathan" To: "kw@linux.com" , "bhelgaas@google.com" CC: "heiko@sntech.de" , "linux-rockchip@lists.infradead.org" , "linuxppc-dev@lists.ozlabs.org" , "robh@kernel.org" , "linux-rpi-kernel@lists.infradead.org" , "toan@os.amperecomputing.com" , "mpe@ellerman.id.au" , "jonnyc@amazon.com" , "wangzhou1@hisilicon.com" , "Jonathan.Cameron@huawei.com" , "rjui@broadcom.com" , "thomas.petazzoni@bootlin.com" , "nsaenzjulienne@suse.de" , "bcm-kernel-feedback-list@broadcom.com" , "rrichter@marvell.com" , "will@kernel.org" , "shawn.lin@rock-chips.com" , "sbranden@broadcom.com" , "linux-arm-kernel@lists.infradead.org" , "lorenzo.pieralisi@arm.com" , "linux-pci@vger.kernel.org" , "michal.simek@xilinx.com" , "benh@kernel.crashing.org" , "paulus@samba.org" , "f.fainelli@gmail.com" Subject: Re: [PATCH v6 1/5] PCI: Unify ECAM constants in native PCI Express drivers Thread-Topic: [PATCH v6 1/5] PCI: Unify ECAM constants in native PCI Express drivers Thread-Index: AQHWxqR2ybRfYkqnhEibZzy6roqHdKnhhI4A Date: Mon, 30 Nov 2020 18:23:15 +0000 Message-ID: <7979f5bd58eb6e3e5bd71bff9c88a498acff79fa.camel@intel.com> References: <20201129230743.3006978-1-kw@linux.com> <20201129230743.3006978-2-kw@linux.com> In-Reply-To: <20201129230743.3006978-2-kw@linux.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.22.254.132] Content-Type: text/plain; charset="utf-8" Content-ID: <822788DD1C59C74C8BAAA3CD22249990@intel.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org T24gU3VuLCAyMDIwLTExLTI5IGF0IDIzOjA3ICswMDAwLCBLcnp5c3p0b2YgV2lsY3p5xYRza2kg d3JvdGU6DQo+IEFkZCBFQ0FNLXJlbGF0ZWQgY29uc3RhbnRzIHRvIHByb3ZpZGUgYSBzZXQgb2Yg c3RhbmRhcmQgY29uc3RhbnRzDQo+IGRlZmluaW5nIG1lbW9yeSBhZGRyZXNzIHNoaWZ0IHZhbHVl cyB0byB0aGUgYnl0ZS1sZXZlbCBhZGRyZXNzIHRoYXQgY2FuDQo+IGJlIHVzZWQgdG8gYWNjZXNz IHRoZSBQQ0kgRXhwcmVzcyBDb25maWd1cmF0aW9uIFNwYWNlLCBhbmQgdGhlbiBtb3ZlDQo+IG5h dGl2ZSBQQ0kgRXhwcmVzcyBjb250cm9sbGVyIGRyaXZlcnMgdG8gdXNlIHRoZSBuZXdseSBpbnRy b2R1Y2VkDQo+IGRlZmluaXRpb25zIHJldGlyaW5nIGRyaXZlci1zcGVjaWZpYyBvbmVzLg0KPiAN Cj4gUmVmYWN0b3IgcGNpX2VjYW1fbWFwX2J1cygpIGZ1bmN0aW9uIHRvIHVzZSBuZXdseSBhZGRl ZCBjb25zdGFudHMgc28NCj4gdGhhdCBsaW1pdHMgdG8gdGhlIGJ1cywgZGV2aWNlIGZ1bmN0aW9u IGFuZCBvZmZzZXQgKG5vdyBsaW1pdGVkIHRvIDRLIGFzDQo+IHBlciB0aGUgc3BlY2lmaWNhdGlv bikgYXJlIGluIHBsYWNlIHRvIHByZXZlbnQgdGhlIGRlZmVjdGl2ZSBvcg0KPiBtYWxpY2lvdXMg Y2FsbGVyIGZyb20gc3VwcGx5aW5nIGluY29ycmVjdCBjb25maWd1cmF0aW9uIG9mZnNldCBhbmQg dGh1cw0KPiB0YXJnZXRpbmcgdGhlIHdyb25nIGRldmljZSB3aGVuIGFjY2Vzc2luZyBleHRlbmRl ZCBjb25maWd1cmF0aW9uIHNwYWNlLg0KPiBUaGlzIHJlZmFjdG9yIGFsc28gYWxsb3dzIGZvciB0 aGUgIi5idXNfc2hpdCIgaW5pdGlhbGlzZXJzIHRvIGJlIGRyb3BwZWQNCj4gd2hlbiB0aGUgdXNl ciBpcyBub3QgdXNpbmcgYSBjdXN0b20gdmFsdWUgYXMgYSBkZWZhdWx0IHZhbHVlIHdpbGwgYmUN Cj4gdXNlZCBhcyBwZXIgdGhlIFBDSSBFeHByZXNzIFNwZWNpZmljYXRpb24uDQo+IA0KPiBTdWdn ZXN0ZWQtYnk6IEJqb3JuIEhlbGdhYXMgPGJoZWxnYWFzQGdvb2dsZS5jb20+DQo+IFNpZ25lZC1v ZmYtYnk6IEtyenlzenRvZiBXaWxjennFhHNraSA8a3dAbGludXguY29tPg0KPiAtLS0NCj4gIGRy aXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtYWwuYyAgICAgICAgfCAxMiArKy0tLS0tLS0N Cj4gIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtaGlzaS5jICAgICAgfCAgMiAtLQ0K PiAgZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktYWFyZHZhcmsuYyAgICAgICB8IDEzICsrKy0t LS0tLS0NCj4gIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWhvc3QtZ2VuZXJpYy5jICAgfCAg MSAtDQo+ICBkcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS10aHVuZGVyLWVjYW0uYyAgIHwgIDEg LQ0KPiAgZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLWJyY21zdGIuYyAgICAgICB8IDE2ICsr LS0tLS0tLS0tLQ0KPiAgZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXJvY2tjaGlwLWhvc3Qu YyB8IDI3ICsrKysrKysrKystLS0tLS0tLS0tLQ0KPiAgZHJpdmVycy9wY2kvY29udHJvbGxlci9w Y2llLXJvY2tjaGlwLmggICAgICB8ICA4ICstLS0tLQ0KPiAgZHJpdmVycy9wY2kvY29udHJvbGxl ci9wY2llLXRhbmdvLmMgICAgICAgICB8ICAxIC0NCj4gIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIv cGNpZS14aWxpbngtbndsLmMgICAgfCAgOSArKy0tLS0tDQo+ICBkcml2ZXJzL3BjaS9jb250cm9s bGVyL3BjaWUteGlsaW54LmMgICAgICAgIHwgMTEgKystLS0tLS0tDQo+ICBkcml2ZXJzL3BjaS9j b250cm9sbGVyL3ZtZC5jICAgICAgICAgICAgICAgIHwgMTEgKysrKy0tLS0tDQo+ICBkcml2ZXJz L3BjaS9lY2FtLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjMgKysrKysrKysrKysrLS0t LS0tDQo+ICBpbmNsdWRlL2xpbnV4L3BjaS1lY2FtLmggICAgICAgICAgICAgICAgICAgIHwgMjcg KysrKysrKysrKysrKysrKysrKysrDQo+ICAxNCBmaWxlcyBjaGFuZ2VkLCA3MyBpbnNlcnRpb25z KCspLCA4OSBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250 cm9sbGVyL2R3Yy9wY2llLWFsLmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWFs LmMNCj4gaW5kZXggZjk3M2ZiY2E5MGNmLi5hZjllNTFhYjFhZjggMTAwNjQ0DQo+IC0tLSBhL2Ry aXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtYWwuYw0KPiArKysgYi9kcml2ZXJzL3BjaS9j b250cm9sbGVyL2R3Yy9wY2llLWFsLmMNCj4gQEAgLTc2LDcgKzc2LDYgQEAgc3RhdGljIGludCBh bF9wY2llX2luaXQoc3RydWN0IHBjaV9jb25maWdfd2luZG93ICpjZmcpDQo+ICB9DQo+ICANCj4g IGNvbnN0IHN0cnVjdCBwY2lfZWNhbV9vcHMgYWxfcGNpZV9vcHMgPSB7DQo+IC0JLmJ1c19zaGlm dCAgICA9IDIwLA0KPiAgCS5pbml0ICAgICAgICAgPSAgYWxfcGNpZV9pbml0LA0KPiAgCS5wY2lf b3BzICAgICAgPSB7DQo+ICAJCS5tYXBfYnVzICAgID0gYWxfcGNpZV9tYXBfYnVzLA0KPiBAQCAt MTM4LDggKzEzNyw2IEBAIHN0cnVjdCBhbF9wY2llIHsNCj4gIAlzdHJ1Y3QgYWxfcGNpZV90YXJn ZXRfYnVzX2NmZyB0YXJnZXRfYnVzX2NmZzsNCj4gIH07DQo+ICANCj4gLSNkZWZpbmUgUENJRV9F Q0FNX0RFVkZOKHgpCQkoKCh4KSAmIDB4ZmYpIDw8IDEyKQ0KPiAtDQo+ICAjZGVmaW5lIHRvX2Fs X3BjaWUoeCkJCWRldl9nZXRfZHJ2ZGF0YSgoeCktPmRldikNCj4gIA0KPiAgc3RhdGljIGlubGlu ZSB1MzIgYWxfcGNpZV9jb250cm9sbGVyX3JlYWRsKHN0cnVjdCBhbF9wY2llICpwY2llLCB1MzIg b2Zmc2V0KQ0KPiBAQCAtMjI2LDExICsyMjMsNiBAQCBzdGF0aWMgdm9pZCBfX2lvbWVtICphbF9w Y2llX2NvbmZfYWRkcl9tYXBfYnVzKHN0cnVjdCBwY2lfYnVzICpidXMsDQo+ICAJc3RydWN0IGFs X3BjaWVfdGFyZ2V0X2J1c19jZmcgKnRhcmdldF9idXNfY2ZnID0gJnBjaWUtPnRhcmdldF9idXNf Y2ZnOw0KPiAgCXVuc2lnbmVkIGludCBidXNucl9lY2FtID0gYnVzbnIgJiB0YXJnZXRfYnVzX2Nm Zy0+ZWNhbV9tYXNrOw0KPiAgCXVuc2lnbmVkIGludCBidXNucl9yZWcgPSBidXNuciAmIHRhcmdl dF9idXNfY2ZnLT5yZWdfbWFzazsNCj4gLQl2b2lkIF9faW9tZW0gKnBjaV9iYXNlX2FkZHI7DQo+ IC0NCj4gLQlwY2lfYmFzZV9hZGRyID0gKHZvaWQgX19pb21lbSAqKSgodWludHB0cl90KXBwLT52 YV9jZmcwX2Jhc2UgKw0KPiAtCQkJCQkgKGJ1c25yX2VjYW0gPDwgMjApICsNCj4gLQkJCQkJIFBD SUVfRUNBTV9ERVZGTihkZXZmbikpOw0KPiAgDQo+ICAJaWYgKGJ1c25yX3JlZyAhPSB0YXJnZXRf YnVzX2NmZy0+cmVnX3ZhbCkgew0KPiAgCQlkZXZfZGJnKHBjaWUtPnBjaS0+ZGV2LCAiQ2hhbmdp bmcgdGFyZ2V0IGJ1cyBidXNudW0gdmFsIGZyb20gMHgleCB0byAweCV4XG4iLA0KPiBAQCAtMjQx LDcgKzIzMyw3IEBAIHN0YXRpYyB2b2lkIF9faW9tZW0gKmFsX3BjaWVfY29uZl9hZGRyX21hcF9i dXMoc3RydWN0IHBjaV9idXMgKmJ1cywNCj4gIAkJCQkgICAgICAgdGFyZ2V0X2J1c19jZmctPnJl Z19tYXNrKTsNCj4gIAl9DQo+ICANCj4gLQlyZXR1cm4gcGNpX2Jhc2VfYWRkciArIHdoZXJlOw0K PiArCXJldHVybiBwcC0+dmFfY2ZnMF9iYXNlICsgUENJRV9FQ0FNX09GRlNFVChidXNucl9lY2Ft LCBkZXZmbiwgd2hlcmUpOw0KPiAgfQ0KPiAgDQo+ICBzdGF0aWMgc3RydWN0IHBjaV9vcHMgYWxf Y2hpbGRfcGNpX29wcyA9IHsNCj4gQEAgLTI2NCw3ICsyNTYsNyBAQCBzdGF0aWMgdm9pZCBhbF9w Y2llX2NvbmZpZ19wcmVwYXJlKHN0cnVjdCBhbF9wY2llICpwY2llKQ0KPiAgDQo+ICAJdGFyZ2V0 X2J1c19jZmcgPSAmcGNpZS0+dGFyZ2V0X2J1c19jZmc7DQo+ICANCj4gLQllY2FtX2J1c19tYXNr ID0gKHBjaWUtPmVjYW1fc2l6ZSA+PiAyMCkgLSAxOw0KPiArCWVjYW1fYnVzX21hc2sgPSAocGNp ZS0+ZWNhbV9zaXplID4+IFBDSUVfRUNBTV9CVVNfU0hJRlQpIC0gMTsNCj4gIAlpZiAoZWNhbV9i dXNfbWFzayA+IDI1NSkgew0KPiAgCQlkZXZfd2FybihwY2llLT5kZXYsICJFQ0FNIHdpbmRvdyBz aXplIGlzIGxhcmdlciB0aGFuIDI1Nk1CLiBDdXR0aW5nIG9mZiBhdCAyNTZcbiIpOw0KPiAgCQll Y2FtX2J1c19tYXNrID0gMjU1Ow0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxl ci9kd2MvcGNpZS1oaXNpLmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWhpc2ku Yw0KPiBpbmRleCA1Y2E4Njc5NmQ0M2EuLjhmYzU5NjBmYWYyOCAxMDA2NDQNCj4gLS0tIGEvZHJp dmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1oaXNpLmMNCj4gKysrIGIvZHJpdmVycy9wY2kv Y29udHJvbGxlci9kd2MvcGNpZS1oaXNpLmMNCj4gQEAgLTEwMCw3ICsxMDAsNiBAQCBzdGF0aWMg aW50IGhpc2lfcGNpZV9pbml0KHN0cnVjdCBwY2lfY29uZmlnX3dpbmRvdyAqY2ZnKQ0KPiAgfQ0K PiAgDQo+ICBjb25zdCBzdHJ1Y3QgcGNpX2VjYW1fb3BzIGhpc2lfcGNpZV9vcHMgPSB7DQo+IC0J LmJ1c19zaGlmdCAgICA9IDIwLA0KPiAgCS5pbml0ICAgICAgICAgPSAgaGlzaV9wY2llX2luaXQs DQo+ICAJLnBjaV9vcHMgICAgICA9IHsNCj4gIAkJLm1hcF9idXMgICAgPSBoaXNpX3BjaWVfbWFw X2J1cywNCj4gQEAgLTEzNSw3ICsxMzQsNiBAQCBzdGF0aWMgaW50IGhpc2lfcGNpZV9wbGF0Zm9y bV9pbml0KHN0cnVjdCBwY2lfY29uZmlnX3dpbmRvdyAqY2ZnKQ0KPiAgfQ0KPiAgDQo+ICBzdGF0 aWMgY29uc3Qgc3RydWN0IHBjaV9lY2FtX29wcyBoaXNpX3BjaWVfcGxhdGZvcm1fb3BzID0gew0K PiAtCS5idXNfc2hpZnQgICAgPSAyMCwNCj4gIAkuaW5pdCAgICAgICAgID0gIGhpc2lfcGNpZV9w bGF0Zm9ybV9pbml0LA0KPiAgCS5wY2lfb3BzICAgICAgPSB7DQo+ICAJCS5tYXBfYnVzICAgID0g aGlzaV9wY2llX21hcF9idXMsDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVy L3BjaS1hYXJkdmFyay5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktYWFyZHZhcmsuYw0K PiBpbmRleCAwYmU0ODVhMjUzMjcuLjEwNDNlNTRjNzNiZCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVy cy9wY2kvY29udHJvbGxlci9wY2ktYWFyZHZhcmsuYw0KPiArKysgYi9kcml2ZXJzL3BjaS9jb250 cm9sbGVyL3BjaS1hYXJkdmFyay5jDQo+IEBAIC0xNiw2ICsxNiw3IEBADQo+ICAjaW5jbHVkZSA8 bGludXgva2VybmVsLmg+DQo+ICAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+DQo+ICAjaW5jbHVk ZSA8bGludXgvcGNpLmg+DQo+ICsjaW5jbHVkZSA8bGludXgvcGNpLWVjYW0uaD4NCj4gICNpbmNs dWRlIDxsaW51eC9pbml0Lmg+DQo+ICAjaW5jbHVkZSA8bGludXgvcGh5L3BoeS5oPg0KPiAgI2lu Y2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPg0KPiBAQCAtMTY0LDE0ICsxNjUsNiBAQA0K PiAgI2RlZmluZSBQQ0lFX0NPTkZJR19XUl9UWVBFMAkJCTB4YQ0KPiAgI2RlZmluZSBQQ0lFX0NP TkZJR19XUl9UWVBFMQkJCTB4Yg0KPiAgDQo+IC0jZGVmaW5lIFBDSUVfQ09ORl9CVVMoYnVzKQkJ CSgoKGJ1cykgJiAweGZmKSA8PCAyMCkNCj4gLSNkZWZpbmUgUENJRV9DT05GX0RFVihkZXYpCQkJ KCgoZGV2KSAmIDB4MWYpIDw8IDE1KQ0KPiAtI2RlZmluZSBQQ0lFX0NPTkZfRlVOQyhmdW4pCQkJ KCgoZnVuKSAmIDB4NykJPDwgMTIpDQo+IC0jZGVmaW5lIFBDSUVfQ09ORl9SRUcocmVnKQkJCSgo cmVnKSAmIDB4ZmZjKQ0KPiAtI2RlZmluZSBQQ0lFX0NPTkZfQUREUihidXMsIGRldmZuLCB3aGVy ZSkJXA0KPiAtCShQQ0lFX0NPTkZfQlVTKGJ1cykgfCBQQ0lFX0NPTkZfREVWKFBDSV9TTE9UKGRl dmZuKSkJfCBcDQo+IC0JIFBDSUVfQ09ORl9GVU5DKFBDSV9GVU5DKGRldmZuKSkgfCBQQ0lFX0NP TkZfUkVHKHdoZXJlKSkNCj4gLQ0KPiAgI2RlZmluZSBQSU9fUkVUUllfQ05UCQkJNTAwDQo+ICAj ZGVmaW5lIFBJT19SRVRSWV9ERUxBWQkJCTIgLyogMiB1cyovDQo+ICANCj4gQEAgLTY4Nyw3ICs2 ODAsNyBAQCBzdGF0aWMgaW50IGFkdmtfcGNpZV9yZF9jb25mKHN0cnVjdCBwY2lfYnVzICpidXMs IHUzMiBkZXZmbiwNCj4gIAlhZHZrX3dyaXRlbChwY2llLCByZWcsIFBJT19DVFJMKTsNCj4gIA0K PiAgCS8qIFByb2dyYW0gdGhlIGFkZHJlc3MgcmVnaXN0ZXJzICovDQo+IC0JcmVnID0gUENJRV9D T05GX0FERFIoYnVzLT5udW1iZXIsIGRldmZuLCB3aGVyZSk7DQo+ICsJcmVnID0gQUxJR05fRE9X TihQQ0lFX0VDQU1fT0ZGU0VUKGJ1cy0+bnVtYmVyLCBkZXZmbiwgd2hlcmUpLCA0KTsNCj4gIAlh ZHZrX3dyaXRlbChwY2llLCByZWcsIFBJT19BRERSX0xTKTsNCj4gIAlhZHZrX3dyaXRlbChwY2ll LCAwLCBQSU9fQUREUl9NUyk7DQo+ICANCj4gQEAgLTc0OCw3ICs3NDEsNyBAQCBzdGF0aWMgaW50 IGFkdmtfcGNpZV93cl9jb25mKHN0cnVjdCBwY2lfYnVzICpidXMsIHUzMiBkZXZmbiwNCj4gIAlh ZHZrX3dyaXRlbChwY2llLCByZWcsIFBJT19DVFJMKTsNCj4gIA0KPiAgCS8qIFByb2dyYW0gdGhl IGFkZHJlc3MgcmVnaXN0ZXJzICovDQo+IC0JcmVnID0gUENJRV9DT05GX0FERFIoYnVzLT5udW1i ZXIsIGRldmZuLCB3aGVyZSk7DQo+ICsJcmVnID0gQUxJR05fRE9XTihQQ0lFX0VDQU1fT0ZGU0VU KGJ1cy0+bnVtYmVyLCBkZXZmbiwgd2hlcmUpLCA0KTsNCj4gIAlhZHZrX3dyaXRlbChwY2llLCBy ZWcsIFBJT19BRERSX0xTKTsNCj4gIAlhZHZrX3dyaXRlbChwY2llLCAwLCBQSU9fQUREUl9NUyk7 DQo+ICANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWhvc3QtZ2Vu ZXJpYy5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaG9zdC1nZW5lcmljLmMNCj4gaW5k ZXggYjUxOTc3YWJmZGYxLi42Mzg2NWFlYjYzNmIgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvcGNp L2NvbnRyb2xsZXIvcGNpLWhvc3QtZ2VuZXJpYy5jDQo+ICsrKyBiL2RyaXZlcnMvcGNpL2NvbnRy b2xsZXIvcGNpLWhvc3QtZ2VuZXJpYy5jDQo+IEBAIC00OSw3ICs0OSw2IEBAIHN0YXRpYyB2b2lk IF9faW9tZW0gKnBjaV9kd19lY2FtX21hcF9idXMoc3RydWN0IHBjaV9idXMgKmJ1cywNCj4gIH0N Cj4gIA0KPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZWNhbV9vcHMgcGNpX2R3X2VjYW1fYnVz X29wcyA9IHsNCj4gLQkuYnVzX3NoaWZ0CT0gMjAsDQo+ICAJLnBjaV9vcHMJPSB7DQo+ICAJCS5t YXBfYnVzCT0gcGNpX2R3X2VjYW1fbWFwX2J1cywNCj4gIAkJLnJlYWQJCT0gcGNpX2dlbmVyaWNf Y29uZmlnX3JlYWQsDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS10 aHVuZGVyLWVjYW0uYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLXRodW5kZXItZWNhbS5j DQo+IGluZGV4IDdlODgzNWZlZTVmNy4uZjk2NGZkMjZmN2UwIDEwMDY0NA0KPiAtLS0gYS9kcml2 ZXJzL3BjaS9jb250cm9sbGVyL3BjaS10aHVuZGVyLWVjYW0uYw0KPiArKysgYi9kcml2ZXJzL3Bj aS9jb250cm9sbGVyL3BjaS10aHVuZGVyLWVjYW0uYw0KPiBAQCAtMzQ2LDcgKzM0Niw2IEBAIHN0 YXRpYyBpbnQgdGh1bmRlcl9lY2FtX2NvbmZpZ193cml0ZShzdHJ1Y3QgcGNpX2J1cyAqYnVzLCB1 bnNpZ25lZCBpbnQgZGV2Zm4sDQo+ICB9DQo+ICANCj4gIGNvbnN0IHN0cnVjdCBwY2lfZWNhbV9v cHMgcGNpX3RodW5kZXJfZWNhbV9vcHMgPSB7DQo+IC0JLmJ1c19zaGlmdAk9IDIwLA0KPiAgCS5w Y2lfb3BzCT0gew0KPiAgCQkubWFwX2J1cyAgICAgICAgPSBwY2lfZWNhbV9tYXBfYnVzLA0KPiAg CQkucmVhZCAgICAgICAgICAgPSB0aHVuZGVyX2VjYW1fY29uZmlnX3JlYWQsDQo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtYnJjbXN0Yi5jIGIvZHJpdmVycy9wY2kv Y29udHJvbGxlci9wY2llLWJyY21zdGIuYw0KPiBpbmRleCBiZWE4Njg5OWJkNWQuLjdmYzgwZmQ2 ZjEzZiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLWJyY21zdGIu Yw0KPiArKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtYnJjbXN0Yi5jDQo+IEBAIC0y Miw2ICsyMiw3IEBADQo+ICAjaW5jbHVkZSA8bGludXgvb2ZfcGNpLmg+DQo+ICAjaW5jbHVkZSA8 bGludXgvb2ZfcGxhdGZvcm0uaD4NCj4gICNpbmNsdWRlIDxsaW51eC9wY2kuaD4NCj4gKyNpbmNs dWRlIDxsaW51eC9wY2ktZWNhbS5oPg0KPiAgI2luY2x1ZGUgPGxpbnV4L3ByaW50ay5oPg0KPiAg I2luY2x1ZGUgPGxpbnV4L3Jlc2V0Lmg+DQo+ICAjaW5jbHVkZSA8bGludXgvc2l6ZXMuaD4NCj4g QEAgLTEyNywxMSArMTI4LDcgQEANCj4gICNkZWZpbmUgIE1TSV9JTlRfTUFTS19DTFIJCTB4MTQN Cj4gIA0KPiAgI2RlZmluZSBQQ0lFX0VYVF9DRkdfREFUQQkJCQkweDgwMDANCj4gLQ0KPiAgI2Rl ZmluZSBQQ0lFX0VYVF9DRkdfSU5ERVgJCQkJMHg5MDAwDQo+IC0jZGVmaW5lICBQQ0lFX0VYVF9C VVNOVU1fU0hJRlQJCQkJMjANCj4gLSNkZWZpbmUgIFBDSUVfRVhUX1NMT1RfU0hJRlQJCQkJMTUN Cj4gLSNkZWZpbmUgIFBDSUVfRVhUX0ZVTkNfU0hJRlQJCQkJMTINCj4gIA0KPiAgI2RlZmluZSAg UENJRV9SR1IxX1NXX0lOSVRfMV9QRVJTVF9NQVNLCQkJMHgxDQo+ICAjZGVmaW5lICBQQ0lFX1JH UjFfU1dfSU5JVF8xX1BFUlNUX1NISUZUCQkweDANCj4gQEAgLTY5NSwxNSArNjkyLDYgQEAgc3Rh dGljIGJvb2wgYnJjbV9wY2llX2xpbmtfdXAoc3RydWN0IGJyY21fcGNpZSAqcGNpZSkNCj4gIAly ZXR1cm4gZGxhICYmIHBsdTsNCj4gIH0NCj4gIA0KPiAtLyogQ29uZmlndXJhdGlvbiBzcGFjZSBy ZWFkL3dyaXRlIHN1cHBvcnQgKi8NCj4gLXN0YXRpYyBpbmxpbmUgaW50IGJyY21fcGNpZV9jZmdf aW5kZXgoaW50IGJ1c25yLCBpbnQgZGV2Zm4sIGludCByZWcpDQo+IC17DQo+IC0JcmV0dXJuICgo UENJX1NMT1QoZGV2Zm4pICYgMHgxZikgPDwgUENJRV9FWFRfU0xPVF9TSElGVCkNCj4gLQkJfCAo KFBDSV9GVU5DKGRldmZuKSAmIDB4MDcpIDw8IFBDSUVfRVhUX0ZVTkNfU0hJRlQpDQo+IC0JCXwg KGJ1c25yIDw8IFBDSUVfRVhUX0JVU05VTV9TSElGVCkNCj4gLQkJfCAocmVnICYgfjMpOw0KPiAt fQ0KPiAtDQo+ICBzdGF0aWMgdm9pZCBfX2lvbWVtICpicmNtX3BjaWVfbWFwX2NvbmYoc3RydWN0 IHBjaV9idXMgKmJ1cywgdW5zaWduZWQgaW50IGRldmZuLA0KPiAgCQkJCQlpbnQgd2hlcmUpDQo+ ICB7DQo+IEBAIC03MTYsNyArNzA0LDcgQEAgc3RhdGljIHZvaWQgX19pb21lbSAqYnJjbV9wY2ll X21hcF9jb25mKHN0cnVjdCBwY2lfYnVzICpidXMsIHVuc2lnbmVkIGludCBkZXZmbiwNCj4gIAkJ cmV0dXJuIFBDSV9TTE9UKGRldmZuKSA/IE5VTEwgOiBiYXNlICsgd2hlcmU7DQo+ICANCj4gIAkv KiBGb3IgZGV2aWNlcywgd3JpdGUgdG8gdGhlIGNvbmZpZyBzcGFjZSBpbmRleCByZWdpc3RlciAq Lw0KPiAtCWlkeCA9IGJyY21fcGNpZV9jZmdfaW5kZXgoYnVzLT5udW1iZXIsIGRldmZuLCAwKTsN Cj4gKwlpZHggPSBQQ0lFX0VDQU1fT0ZGU0VUKGJ1cy0+bnVtYmVyLCBkZXZmbiwgMCk7DQo+ICAJ d3JpdGVsKGlkeCwgcGNpZS0+YmFzZSArIFBDSUVfRVhUX0NGR19JTkRFWCk7DQo+ICAJcmV0dXJu IGJhc2UgKyBQQ0lFX0VYVF9DRkdfREFUQSArIHdoZXJlOw0KPiAgfQ0KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXJvY2tjaGlwLWhvc3QuYyBiL2RyaXZlcnMvcGNp L2NvbnRyb2xsZXIvcGNpZS1yb2NrY2hpcC1ob3N0LmMNCj4gaW5kZXggOTcwNTA1OTUyM2E2Li5m MWQwOGExYjE1OTEgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1y b2NrY2hpcC1ob3N0LmMNCj4gKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXJvY2tj aGlwLWhvc3QuYw0KPiBAQCAtMTU3LDEyICsxNTcsMTEgQEAgc3RhdGljIGludCByb2NrY2hpcF9w Y2llX3JkX290aGVyX2NvbmYoc3RydWN0IHJvY2tjaGlwX3BjaWUgKnJvY2tjaGlwLA0KPiAgCQkJ CSAgICAgICBzdHJ1Y3QgcGNpX2J1cyAqYnVzLCB1MzIgZGV2Zm4sDQo+ICAJCQkJICAgICAgIGlu dCB3aGVyZSwgaW50IHNpemUsIHUzMiAqdmFsKQ0KPiAgew0KPiAtCXUzMiBidXNkZXY7DQo+ICsJ dm9pZCBfX2lvbWVtICphZGRyOw0KPiAgDQo+IC0JYnVzZGV2ID0gUENJRV9FQ0FNX0FERFIoYnVz LT5udW1iZXIsIFBDSV9TTE9UKGRldmZuKSwNCj4gLQkJCQlQQ0lfRlVOQyhkZXZmbiksIHdoZXJl KTsNCj4gKwlhZGRyID0gcm9ja2NoaXAtPnJlZ19iYXNlICsgUENJRV9FQ0FNX09GRlNFVChidXMt Pm51bWJlciwgZGV2Zm4sIHdoZXJlKTsNCj4gIA0KPiAtCWlmICghSVNfQUxJR05FRChidXNkZXYs IHNpemUpKSB7DQo+ICsJaWYgKCFJU19BTElHTkVEKCh1aW50cHRyX3QpYWRkciwgc2l6ZSkpIHsN Cj4gIAkJKnZhbCA9IDA7DQo+ICAJCXJldHVybiBQQ0lCSU9TX0JBRF9SRUdJU1RFUl9OVU1CRVI7 DQo+ICAJfQ0KPiBAQCAtMTc1LDExICsxNzQsMTEgQEAgc3RhdGljIGludCByb2NrY2hpcF9wY2ll X3JkX290aGVyX2NvbmYoc3RydWN0IHJvY2tjaGlwX3BjaWUgKnJvY2tjaGlwLA0KPiAgCQkJCQkJ QVhJX1dSQVBQRVJfVFlQRTFfQ0ZHKTsNCj4gIA0KPiAgCWlmIChzaXplID09IDQpIHsNCj4gLQkJ KnZhbCA9IHJlYWRsKHJvY2tjaGlwLT5yZWdfYmFzZSArIGJ1c2Rldik7DQo+ICsJCSp2YWwgPSBy ZWFkbChhZGRyKTsNCj4gIAl9IGVsc2UgaWYgKHNpemUgPT0gMikgew0KPiAtCQkqdmFsID0gcmVh ZHcocm9ja2NoaXAtPnJlZ19iYXNlICsgYnVzZGV2KTsNCj4gKwkJKnZhbCA9IHJlYWR3KGFkZHIp Ow0KPiAgCX0gZWxzZSBpZiAoc2l6ZSA9PSAxKSB7DQo+IC0JCSp2YWwgPSByZWFkYihyb2NrY2hp cC0+cmVnX2Jhc2UgKyBidXNkZXYpOw0KPiArCQkqdmFsID0gcmVhZGIoYWRkcik7DQo+ICAJfSBl bHNlIHsNCj4gIAkJKnZhbCA9IDA7DQo+ICAJCXJldHVybiBQQ0lCSU9TX0JBRF9SRUdJU1RFUl9O VU1CRVI7DQo+IEBAIC0xOTEsMTEgKzE5MCwxMSBAQCBzdGF0aWMgaW50IHJvY2tjaGlwX3BjaWVf d3Jfb3RoZXJfY29uZihzdHJ1Y3Qgcm9ja2NoaXBfcGNpZSAqcm9ja2NoaXAsDQo+ICAJCQkJICAg ICAgIHN0cnVjdCBwY2lfYnVzICpidXMsIHUzMiBkZXZmbiwNCj4gIAkJCQkgICAgICAgaW50IHdo ZXJlLCBpbnQgc2l6ZSwgdTMyIHZhbCkNCj4gIHsNCj4gLQl1MzIgYnVzZGV2Ow0KPiArCXZvaWQg X19pb21lbSAqYWRkcjsNCj4gIA0KPiAtCWJ1c2RldiA9IFBDSUVfRUNBTV9BRERSKGJ1cy0+bnVt YmVyLCBQQ0lfU0xPVChkZXZmbiksDQo+IC0JCQkJUENJX0ZVTkMoZGV2Zm4pLCB3aGVyZSk7DQo+ IC0JaWYgKCFJU19BTElHTkVEKGJ1c2Rldiwgc2l6ZSkpDQo+ICsJYWRkciA9IHJvY2tjaGlwLT5y ZWdfYmFzZSArIFBDSUVfRUNBTV9PRkZTRVQoYnVzLT5udW1iZXIsIGRldmZuLCB3aGVyZSk7DQo+ ICsNCj4gKwlpZiAoIUlTX0FMSUdORUQoKHVpbnRwdHJfdClhZGRyLCBzaXplKSkNCj4gIAkJcmV0 dXJuIFBDSUJJT1NfQkFEX1JFR0lTVEVSX05VTUJFUjsNCj4gIA0KPiAgCWlmIChwY2lfaXNfcm9v dF9idXMoYnVzLT5wYXJlbnQpKQ0KPiBAQCAtMjA2LDExICsyMDUsMTEgQEAgc3RhdGljIGludCBy b2NrY2hpcF9wY2llX3dyX290aGVyX2NvbmYoc3RydWN0IHJvY2tjaGlwX3BjaWUgKnJvY2tjaGlw LA0KPiAgCQkJCQkJQVhJX1dSQVBQRVJfVFlQRTFfQ0ZHKTsNCj4gIA0KPiAgCWlmIChzaXplID09 IDQpDQo+IC0JCXdyaXRlbCh2YWwsIHJvY2tjaGlwLT5yZWdfYmFzZSArIGJ1c2Rldik7DQo+ICsJ CXdyaXRlbCh2YWwsIGFkZHIpOw0KPiAgCWVsc2UgaWYgKHNpemUgPT0gMikNCj4gLQkJd3JpdGV3 KHZhbCwgcm9ja2NoaXAtPnJlZ19iYXNlICsgYnVzZGV2KTsNCj4gKwkJd3JpdGV3KHZhbCwgYWRk cik7DQo+ICAJZWxzZSBpZiAoc2l6ZSA9PSAxKQ0KPiAtCQl3cml0ZWIodmFsLCByb2NrY2hpcC0+ cmVnX2Jhc2UgKyBidXNkZXYpOw0KPiArCQl3cml0ZWIodmFsLCBhZGRyKTsNCj4gIAllbHNlDQo+ ICAJCXJldHVybiBQQ0lCSU9TX0JBRF9SRUdJU1RFUl9OVU1CRVI7DQo+ICANCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1yb2NrY2hpcC5oIGIvZHJpdmVycy9wY2kv Y29udHJvbGxlci9wY2llLXJvY2tjaGlwLmgNCj4gaW5kZXggYzdkMDE3OGZjOGMyLi4xNjUwYTUw ODc0NTAgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1yb2NrY2hp cC5oDQo+ICsrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1yb2NrY2hpcC5oDQo+IEBA IC0xMyw2ICsxMyw3IEBADQo+ICANCj4gICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4NCj4gICNp bmNsdWRlIDxsaW51eC9wY2kuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9wY2ktZWNhbS5oPg0KPiAg DQo+ICAvKg0KPiAgICogVGhlIHVwcGVyIDE2IGJpdHMgb2YgUENJRV9DTElFTlRfQ09ORklHIGFy ZSBhIHdyaXRlIG1hc2sgZm9yIHRoZSBsb3dlciAxNg0KPiBAQCAtMTc4LDEzICsxNzksNiBAQA0K PiAgI2RlZmluZSBNSU5fQVhJX0FERFJfQklUU19QQVNTRUQJCTgNCj4gICNkZWZpbmUgUENJRV9S Q19TRU5EX1BNRV9PRkYJCQkweDExOTYwDQo+ICAjZGVmaW5lIFJPQ0tDSElQX1ZFTkRPUl9JRAkJ CTB4MWQ4Nw0KPiAtI2RlZmluZSBQQ0lFX0VDQU1fQlVTKHgpCQkJKCgoeCkgJiAweGZmKSA8PCAy MCkNCj4gLSNkZWZpbmUgUENJRV9FQ0FNX0RFVih4KQkJCSgoKHgpICYgMHgxZikgPDwgMTUpDQo+ IC0jZGVmaW5lIFBDSUVfRUNBTV9GVU5DKHgpCQkJKCgoeCkgJiAweDcpIDw8IDEyKQ0KPiAtI2Rl ZmluZSBQQ0lFX0VDQU1fUkVHKHgpCQkJKCgoeCkgJiAweGZmZikgPDwgMCkNCj4gLSNkZWZpbmUg UENJRV9FQ0FNX0FERFIoYnVzLCBkZXYsIGZ1bmMsIHJlZykgXA0KPiAtCSAgKFBDSUVfRUNBTV9C VVMoYnVzKSB8IFBDSUVfRUNBTV9ERVYoZGV2KSB8IFwNCj4gLQkgICBQQ0lFX0VDQU1fRlVOQyhm dW5jKSB8IFBDSUVfRUNBTV9SRUcocmVnKSkNCj4gICNkZWZpbmUgUENJRV9MSU5LX0lTX0wyKHgp IFwNCj4gIAkoKCh4KSAmIFBDSUVfQ0xJRU5UX0RFQlVHX0xUU1NNX01BU0spID09IFBDSUVfQ0xJ RU5UX0RFQlVHX0xUU1NNX0wyKQ0KPiAgI2RlZmluZSBQQ0lFX0xJTktfVVAoeCkgXA0KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXRhbmdvLmMgYi9kcml2ZXJzL3Bj aS9jb250cm9sbGVyL3BjaWUtdGFuZ28uYw0KPiBpbmRleCBkMDkzYThjZTRiYjEuLjYyYTA2MWYx ZDYyZSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXRhbmdvLmMN Cj4gKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXRhbmdvLmMNCj4gQEAgLTIwOCw3 ICsyMDgsNiBAQCBzdGF0aWMgaW50IHNtcDg3NTlfY29uZmlnX3dyaXRlKHN0cnVjdCBwY2lfYnVz ICpidXMsIHVuc2lnbmVkIGludCBkZXZmbiwNCj4gIH0NCj4gIA0KPiAgc3RhdGljIGNvbnN0IHN0 cnVjdCBwY2lfZWNhbV9vcHMgc21wODc1OV9lY2FtX29wcyA9IHsNCj4gLQkuYnVzX3NoaWZ0CT0g MjAsDQo+ICAJLnBjaV9vcHMJPSB7DQo+ICAJCS5tYXBfYnVzCT0gcGNpX2VjYW1fbWFwX2J1cywN Cj4gIAkJLnJlYWQJCT0gc21wODc1OV9jb25maWdfcmVhZCwNCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvcGNpL2NvbnRyb2xsZXIvcGNpZS14aWxpbngtbndsLmMgYi9kcml2ZXJzL3BjaS9jb250cm9s bGVyL3BjaWUteGlsaW54LW53bC5jDQo+IGluZGV4IGYzY2Y3ZDYxOTI0Zi4uN2YyOWMyZmRjZDUx IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUteGlsaW54LW53bC5j DQo+ICsrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS14aWxpbngtbndsLmMNCj4gQEAg LTE4LDYgKzE4LDcgQEANCj4gICNpbmNsdWRlIDxsaW51eC9vZl9wbGF0Zm9ybS5oPg0KPiAgI2lu Y2x1ZGUgPGxpbnV4L29mX2lycS5oPg0KPiAgI2luY2x1ZGUgPGxpbnV4L3BjaS5oPg0KPiArI2lu Y2x1ZGUgPGxpbnV4L3BjaS1lY2FtLmg+DQo+ICAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2 aWNlLmg+DQo+ICAjaW5jbHVkZSA8bGludXgvaXJxY2hpcC9jaGFpbmVkX2lycS5oPg0KPiAgDQo+ IEBAIC0xMjQsOCArMTI1LDYgQEANCj4gICNkZWZpbmUgRV9FQ0FNX0NSX0VOQUJMRQkJQklUKDAp DQo+ICAjZGVmaW5lIEVfRUNBTV9TSVpFX0xPQwkJCUdFTk1BU0soMjAsIDE2KQ0KPiAgI2RlZmlu ZSBFX0VDQU1fU0laRV9TSElGVAkJMTYNCj4gLSNkZWZpbmUgRUNBTV9CVVNfTE9DX1NISUZUCQky MA0KPiAtI2RlZmluZSBFQ0FNX0RFVl9MT0NfU0hJRlQJCTEyDQo+ICAjZGVmaW5lIE5XTF9FQ0FN X1ZBTFVFX0RFRkFVTFQJCTEyDQo+ICANCj4gICNkZWZpbmUgQ0ZHX0RNQV9SRUdfQkFSCQkJR0VO TUFTSygyLCAwKQ0KPiBAQCAtMjQwLDE1ICsyMzksMTEgQEAgc3RhdGljIHZvaWQgX19pb21lbSAq bndsX3BjaWVfbWFwX2J1cyhzdHJ1Y3QgcGNpX2J1cyAqYnVzLCB1bnNpZ25lZCBpbnQgZGV2Zm4s DQo+ICAJCQkJICAgICAgaW50IHdoZXJlKQ0KPiAgew0KPiAgCXN0cnVjdCBud2xfcGNpZSAqcGNp ZSA9IGJ1cy0+c3lzZGF0YTsNCj4gLQlpbnQgcmVsYnVzOw0KPiAgDQo+ICAJaWYgKCFud2xfcGNp ZV92YWxpZF9kZXZpY2UoYnVzLCBkZXZmbikpDQo+ICAJCXJldHVybiBOVUxMOw0KPiAgDQo+IC0J cmVsYnVzID0gKGJ1cy0+bnVtYmVyIDw8IEVDQU1fQlVTX0xPQ19TSElGVCkgfA0KPiAtCQkJKGRl dmZuIDw8IEVDQU1fREVWX0xPQ19TSElGVCk7DQo+IC0NCj4gLQlyZXR1cm4gcGNpZS0+ZWNhbV9i YXNlICsgcmVsYnVzICsgd2hlcmU7DQo+ICsJcmV0dXJuIHBjaWUtPmVjYW1fYmFzZSArIFBDSUVf RUNBTV9PRkZTRVQoYnVzLT5udW1iZXIsIGRldmZuLCB3aGVyZSk7DQo+ICB9DQo+ICANCj4gIC8q IFBDSWUgb3BlcmF0aW9ucyAqLw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxl ci9wY2llLXhpbGlueC5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXhpbGlueC5jDQo+ IGluZGV4IDg1MjNiZTYxYmJhNS4uZmE1YmFlYjgyNjUzIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJz L3BjaS9jb250cm9sbGVyL3BjaWUteGlsaW54LmMNCj4gKysrIGIvZHJpdmVycy9wY2kvY29udHJv bGxlci9wY2llLXhpbGlueC5jDQo+IEBAIC0yMSw2ICsyMSw3IEBADQo+ICAjaW5jbHVkZSA8bGlu dXgvb2ZfcGxhdGZvcm0uaD4NCj4gICNpbmNsdWRlIDxsaW51eC9vZl9pcnEuaD4NCj4gICNpbmNs dWRlIDxsaW51eC9wY2kuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9wY2ktZWNhbS5oPg0KPiAgI2lu Y2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPg0KPiAgDQo+ICAjaW5jbHVkZSAiLi4vcGNp LmgiDQo+IEBAIC04NiwxMCArODcsNiBAQA0KPiAgLyogUGh5IFN0YXR1cy9Db250cm9sIFJlZ2lz dGVyIGRlZmluaXRpb25zICovDQo+ICAjZGVmaW5lIFhJTElOWF9QQ0lFX1JFR19QU0NSX0xOS1VQ CUJJVCgxMSkNCj4gIA0KPiAtLyogRUNBTSBkZWZpbml0aW9ucyAqLw0KPiAtI2RlZmluZSBFQ0FN X0JVU19OVU1fU0hJRlQJCTIwDQo+IC0jZGVmaW5lIEVDQU1fREVWX05VTV9TSElGVAkJMTINCj4g LQ0KPiAgLyogTnVtYmVyIG9mIE1TSSBJUlFzICovDQo+ICAjZGVmaW5lIFhJTElOWF9OVU1fTVNJ X0lSUVMJCTEyOA0KPiAgDQo+IEBAIC0xODMsMTUgKzE4MCwxMSBAQCBzdGF0aWMgdm9pZCBfX2lv bWVtICp4aWxpbnhfcGNpZV9tYXBfYnVzKHN0cnVjdCBwY2lfYnVzICpidXMsDQo+ICAJCQkJCSB1 bnNpZ25lZCBpbnQgZGV2Zm4sIGludCB3aGVyZSkNCj4gIHsNCj4gIAlzdHJ1Y3QgeGlsaW54X3Bj aWVfcG9ydCAqcG9ydCA9IGJ1cy0+c3lzZGF0YTsNCj4gLQlpbnQgcmVsYnVzOw0KPiAgDQo+ICAJ aWYgKCF4aWxpbnhfcGNpZV92YWxpZF9kZXZpY2UoYnVzLCBkZXZmbikpDQo+ICAJCXJldHVybiBO VUxMOw0KPiAgDQo+IC0JcmVsYnVzID0gKGJ1cy0+bnVtYmVyIDw8IEVDQU1fQlVTX05VTV9TSElG VCkgfA0KPiAtCQkgKGRldmZuIDw8IEVDQU1fREVWX05VTV9TSElGVCk7DQo+IC0NCj4gLQlyZXR1 cm4gcG9ydC0+cmVnX2Jhc2UgKyByZWxidXMgKyB3aGVyZTsNCj4gKwlyZXR1cm4gcG9ydC0+cmVn X2Jhc2UgKyBQQ0lFX0VDQU1fT0ZGU0VUKGJ1cy0+bnVtYmVyLCBkZXZmbiwgd2hlcmUpOw0KPiAg fQ0KPiAgDQo+ICAvKiBQQ0llIG9wZXJhdGlvbnMgKi8NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv cGNpL2NvbnRyb2xsZXIvdm1kLmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3ZtZC5jDQo+IGlu ZGV4IGYzNzVjMjFjZWViMS4uMTM2MWE3OWJkMWU3IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL3Bj aS9jb250cm9sbGVyL3ZtZC5jDQo+ICsrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvdm1kLmMN Cj4gQEAgLTExLDYgKzExLDcgQEANCj4gICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4NCj4gICNp bmNsdWRlIDxsaW51eC9tc2kuaD4NCj4gICNpbmNsdWRlIDxsaW51eC9wY2kuaD4NCj4gKyNpbmNs dWRlIDxsaW51eC9wY2ktZWNhbS5oPg0KPiAgI2luY2x1ZGUgPGxpbnV4L3NyY3UuaD4NCj4gICNp bmNsdWRlIDxsaW51eC9yY3VsaXN0Lmg+DQo+ICAjaW5jbHVkZSA8bGludXgvcmN1cGRhdGUuaD4N Cj4gQEAgLTMyOCwxNSArMzI5LDEzIEBAIHN0YXRpYyB2b2lkIHZtZF9yZW1vdmVfaXJxX2RvbWFp bihzdHJ1Y3Qgdm1kX2RldiAqdm1kKQ0KPiAgc3RhdGljIGNoYXIgX19pb21lbSAqdm1kX2NmZ19h ZGRyKHN0cnVjdCB2bWRfZGV2ICp2bWQsIHN0cnVjdCBwY2lfYnVzICpidXMsDQo+ICAJCQkJICB1 bnNpZ25lZCBpbnQgZGV2Zm4sIGludCByZWcsIGludCBsZW4pDQo+ICB7DQo+IC0JY2hhciBfX2lv bWVtICphZGRyID0gdm1kLT5jZmdiYXIgKw0KPiAtCQkJICAgICAoKGJ1cy0+bnVtYmVyIC0gdm1k LT5idXNuX3N0YXJ0KSA8PCAyMCkgKw0KPiAtCQkJICAgICAoZGV2Zm4gPDwgMTIpICsgcmVnOw0K PiArCXVuc2lnbmVkIGludCBidXNucl9lY2FtID0gYnVzLT5udW1iZXIgLSB2bWQtPmJ1c25fc3Rh cnQ7DQo+ICsJdTMyIG9mZnNldCA9IFBDSUVfRUNBTV9PRkZTRVQoYnVzbnJfZWNhbSwgZGV2Zm4s IHJlZyk7DQo+ICANCj4gLQlpZiAoKGFkZHIgLSB2bWQtPmNmZ2JhcikgKyBsZW4gPj0NCj4gLQkg ICAgcmVzb3VyY2Vfc2l6ZSgmdm1kLT5kZXYtPnJlc291cmNlW1ZNRF9DRkdCQVJdKSkNCj4gKwlp ZiAob2Zmc2V0ICsgbGVuID49IHJlc291cmNlX3NpemUoJnZtZC0+ZGV2LT5yZXNvdXJjZVtWTURf Q0ZHQkFSXSkpDQo+ICAJCXJldHVybiBOVUxMOw0KPiAgDQo+IC0JcmV0dXJuIGFkZHI7DQo+ICsJ cmV0dXJuIHZtZC0+Y2ZnYmFyICsgb2Zmc2V0Ow0KPiAgfQ0KPiAgDQoNCkZvciB2bWQuYzoNClJl dmlld2VkLWJ5OiBKb24gRGVycmljayA8am9uYXRoYW4uZGVycmlja0BpbnRlbC5jb20+DQoNClRo YW5rcw0KDQoNCj4gIC8qDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9lY2FtLmMgYi9kcml2 ZXJzL3BjaS9lY2FtLmMNCj4gaW5kZXggYjU0ZDMyYTMxNjY5Li41OWY5MWQ0MzQ4NTkgMTAwNjQ0 DQo+IC0tLSBhL2RyaXZlcnMvcGNpL2VjYW0uYw0KPiArKysgYi9kcml2ZXJzL3BjaS9lY2FtLmMN Cj4gQEAgLTEzMSwyNSArMTMxLDM2IEBAIHZvaWQgX19pb21lbSAqcGNpX2VjYW1fbWFwX2J1cyhz dHJ1Y3QgcGNpX2J1cyAqYnVzLCB1bnNpZ25lZCBpbnQgZGV2Zm4sDQo+ICAJCQkgICAgICAgaW50 IHdoZXJlKQ0KPiAgew0KPiAgCXN0cnVjdCBwY2lfY29uZmlnX3dpbmRvdyAqY2ZnID0gYnVzLT5z eXNkYXRhOw0KPiArCXVuc2lnbmVkIGludCBidXNfc2hpZnQgPSBjZmctPm9wcy0+YnVzX3NoaWZ0 Ow0KPiAgCXVuc2lnbmVkIGludCBkZXZmbl9zaGlmdCA9IGNmZy0+b3BzLT5idXNfc2hpZnQgLSA4 Ow0KPiAgCXVuc2lnbmVkIGludCBidXNuID0gYnVzLT5udW1iZXI7DQo+ICAJdm9pZCBfX2lvbWVt ICpiYXNlOw0KPiArCXUzMiBidXNfb2Zmc2V0LCBkZXZmbl9vZmZzZXQ7DQo+ICANCj4gIAlpZiAo YnVzbiA8IGNmZy0+YnVzci5zdGFydCB8fCBidXNuID4gY2ZnLT5idXNyLmVuZCkNCj4gIAkJcmV0 dXJuIE5VTEw7DQo+ICANCj4gIAlidXNuIC09IGNmZy0+YnVzci5zdGFydDsNCj4gLQlpZiAocGVy X2J1c19tYXBwaW5nKQ0KPiArCWlmIChwZXJfYnVzX21hcHBpbmcpIHsNCj4gIAkJYmFzZSA9IGNm Zy0+d2lucFtidXNuXTsNCj4gLQllbHNlDQo+IC0JCWJhc2UgPSBjZmctPndpbiArIChidXNuIDw8 IGNmZy0+b3BzLT5idXNfc2hpZnQpOw0KPiAtCXJldHVybiBiYXNlICsgKGRldmZuIDw8IGRldmZu X3NoaWZ0KSArIHdoZXJlOw0KPiArCQlidXNuID0gMDsNCj4gKwl9IGVsc2UNCj4gKwkJYmFzZSA9 IGNmZy0+d2luOw0KPiArDQo+ICsJaWYgKGNmZy0+b3BzLT5idXNfc2hpZnQpIHsNCj4gKwkJYnVz X29mZnNldCA9IChidXNuICYgUENJRV9FQ0FNX0JVU19NQVNLKSA8PCBidXNfc2hpZnQ7DQo+ICsJ CWRldmZuX29mZnNldCA9IChkZXZmbiAmIFBDSUVfRUNBTV9ERVZGTl9NQVNLKSA8PCBkZXZmbl9z aGlmdDsNCj4gKwkJd2hlcmUgJj0gUENJRV9FQ0FNX1JFR19NQVNLOw0KPiArDQo+ICsJCXJldHVy biBiYXNlICsgKGJ1c19vZmZzZXQgfCBkZXZmbl9vZmZzZXQgfCB3aGVyZSk7DQo+ICsJfQ0KPiAr DQo+ICsJcmV0dXJuIGJhc2UgKyBQQ0lFX0VDQU1fT0ZGU0VUKGJ1c24sIGRldmZuLCB3aGVyZSk7 DQo+ICB9DQo+ICBFWFBPUlRfU1lNQk9MX0dQTChwY2lfZWNhbV9tYXBfYnVzKTsNCj4gIA0KPiAg LyogRUNBTSBvcHMgKi8NCj4gIGNvbnN0IHN0cnVjdCBwY2lfZWNhbV9vcHMgcGNpX2dlbmVyaWNf ZWNhbV9vcHMgPSB7DQo+IC0JLmJ1c19zaGlmdAk9IDIwLA0KPiAgCS5wY2lfb3BzCT0gew0KPiAg CQkubWFwX2J1cwk9IHBjaV9lY2FtX21hcF9idXMsDQo+ICAJCS5yZWFkCQk9IHBjaV9nZW5lcmlj X2NvbmZpZ19yZWFkLA0KPiBAQCAtMTYxLDcgKzE3Miw2IEBAIEVYUE9SVF9TWU1CT0xfR1BMKHBj aV9nZW5lcmljX2VjYW1fb3BzKTsNCj4gICNpZiBkZWZpbmVkKENPTkZJR19BQ1BJKSAmJiBkZWZp bmVkKENPTkZJR19QQ0lfUVVJUktTKQ0KPiAgLyogRUNBTSBvcHMgZm9yIDMyLWJpdCBhY2Nlc3Mg b25seSAobm9uLWNvbXBsaWFudCkgKi8NCj4gIGNvbnN0IHN0cnVjdCBwY2lfZWNhbV9vcHMgcGNp XzMyYl9vcHMgPSB7DQo+IC0JLmJ1c19zaGlmdAk9IDIwLA0KPiAgCS5wY2lfb3BzCT0gew0KPiAg CQkubWFwX2J1cwk9IHBjaV9lY2FtX21hcF9idXMsDQo+ICAJCS5yZWFkCQk9IHBjaV9nZW5lcmlj X2NvbmZpZ19yZWFkMzIsDQo+IEBAIC0xNzEsNyArMTgxLDYgQEAgY29uc3Qgc3RydWN0IHBjaV9l Y2FtX29wcyBwY2lfMzJiX29wcyA9IHsNCj4gIA0KPiAgLyogRUNBTSBvcHMgZm9yIDMyLWJpdCBy ZWFkIG9ubHkgKG5vbi1jb21wbGlhbnQpICovDQo+ICBjb25zdCBzdHJ1Y3QgcGNpX2VjYW1fb3Bz IHBjaV8zMmJfcmVhZF9vcHMgPSB7DQo+IC0JLmJ1c19zaGlmdAk9IDIwLA0KPiAgCS5wY2lfb3Bz CT0gew0KPiAgCQkubWFwX2J1cwk9IHBjaV9lY2FtX21hcF9idXMsDQo+ICAJCS5yZWFkCQk9IHBj aV9nZW5lcmljX2NvbmZpZ19yZWFkMzIsDQo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3Bj aS1lY2FtLmggYi9pbmNsdWRlL2xpbnV4L3BjaS1lY2FtLmgNCj4gaW5kZXggMDMzY2U3NGYwMmU4 Li42NWQzZDgzMDE1YzMgMTAwNjQ0DQo+IC0tLSBhL2luY2x1ZGUvbGludXgvcGNpLWVjYW0uaA0K PiArKysgYi9pbmNsdWRlL2xpbnV4L3BjaS1lY2FtLmgNCj4gQEAgLTksNiArOSwzMyBAQA0KPiAg I2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPg0KPiAgI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2Rl dmljZS5oPg0KPiAgDQo+ICsvKg0KPiArICogTWVtb3J5IGFkZHJlc3Mgc2hpZnQgdmFsdWVzIGZv ciB0aGUgYnl0ZS1sZXZlbCBhZGRyZXNzIHRoYXQNCj4gKyAqIGNhbiBiZSB1c2VkIHdoZW4gYWNj ZXNzaW5nIHRoZSBQQ0kgRXhwcmVzcyBDb25maWd1cmF0aW9uIFNwYWNlLg0KPiArICovDQo+ICsN Cj4gKy8qDQo+ICsgKiBFbmhhbmNlZCBDb25maWd1cmF0aW9uIEFjY2VzcyBNZWNoYW5pc20gKEVD QU0pDQo+ICsgKg0KPiArICogU2VlIFBDSSBFeHByZXNzIEJhc2UgU3BlY2lmaWNhdGlvbiwgUmV2 aXNpb24gNS4wLCBWZXJzaW9uIDEuMCwNCj4gKyAqIFNlY3Rpb24gNy4yLjIsIFRhYmxlIDctMSwg cC4gNjc3Lg0KPiArICovDQo+ICsjZGVmaW5lIFBDSUVfRUNBTV9CVVNfU0hJRlQJMjAgLyogQnVz IG51bWJlciAqLw0KPiArI2RlZmluZSBQQ0lFX0VDQU1fREVWRk5fU0hJRlQJMTIgLyogRGV2aWNl IGFuZCBGdW5jdGlvbiBudW1iZXIgKi8NCj4gKw0KPiArI2RlZmluZSBQQ0lFX0VDQU1fQlVTX01B U0sJMHhmZg0KPiArI2RlZmluZSBQQ0lFX0VDQU1fREVWRk5fTUFTSwkweGZmDQo+ICsjZGVmaW5l IFBDSUVfRUNBTV9SRUdfTUFTSwkweGZmZiAvKiBMaW1pdCBvZmZzZXQgdG8gYSBtYXhpbXVtIG9m IDRLICovDQo+ICsNCj4gKyNkZWZpbmUgUENJRV9FQ0FNX0JVUyh4KQkoKCh4KSAmIFBDSUVfRUNB TV9CVVNfTUFTSykgPDwgUENJRV9FQ0FNX0JVU19TSElGVCkNCj4gKyNkZWZpbmUgUENJRV9FQ0FN X0RFVkZOKHgpCSgoKHgpICYgUENJRV9FQ0FNX0RFVkZOX01BU0spIDw8IFBDSUVfRUNBTV9ERVZG Tl9TSElGVCkNCj4gKyNkZWZpbmUgUENJRV9FQ0FNX1JFRyh4KQkoKHgpICYgUENJRV9FQ0FNX1JF R19NQVNLKQ0KPiArDQo+ICsjZGVmaW5lIFBDSUVfRUNBTV9PRkZTRVQoYnVzLCBkZXZmbiwgd2hl cmUpIFwNCj4gKwkoUENJRV9FQ0FNX0JVUyhidXMpIHwgXA0KPiArCSBQQ0lFX0VDQU1fREVWRk4o ZGV2Zm4pIHwgXA0KPiArCSBQQ0lFX0VDQU1fUkVHKHdoZXJlKSkNCj4gKw0KPiAgLyoNCj4gICAq IHN0cnVjdCB0byBob2xkIHBjaSBvcHMgYW5kIGJ1cyBzaGlmdCBvZiB0aGUgY29uZmlnIHdpbmRv dw0KPiAgICogZm9yIGEgUENJIGNvbnRyb2xsZXIuDQo=