From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 09/16] drm/irq: Use unsigned int pipe in public API Date: Tue, 6 Oct 2015 13:52:34 +0300 Message-ID: <20151006105234.GT26517@intel.com> References: <1443112538-9616-1-git-send-email-thierry.reding@gmail.com> <1443112538-9616-9-git-send-email-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 630B86E081 for ; Tue, 6 Oct 2015 03:52:40 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1443112538-9616-9-git-send-email-thierry.reding@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thierry Reding Cc: Thomas Hellstrom , Alison Wang , dri-devel@lists.freedesktop.org, Tomi Valkeinen , Laurent Pinchart , Benjamin Gaignard , Russell King , Alex Deucher , Daniel Vetter , Christian =?iso-8859-1?Q?K=F6nig?= , Ben Skeggs List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBTZXAgMjQsIDIwMTUgYXQgMDY6MzU6MzFQTSArMDIwMCwgVGhpZXJyeSBSZWRpbmcg d3JvdGU6Cj4gRnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KPiAKPiBU aGlzIGNvbnRpbnVlcyB0aGUgcGF0dGVybiBzdGFydGVkIGluIGNvbW1pdCBjYzFlZjExOGZjMDkg KCJkcm0vaXJxOgo+IE1ha2UgcGlwZSB1bnNpZ25lZCBhbmQgbmFtZSBjb25zaXN0ZW50IikuIFRo aXMgaXMgYXBwbGllZCB0byB0aGUgcHVibGljCj4gQVBJcyBhbmQgZHJpdmVyIGNhbGxiYWNrcywg c28gcHJldHR5IG11Y2ggYWxsIGRyaXZlcnMgbmVlZCB0byBiZSB1cGRhdGVkCj4gdG8gbWF0Y2gg dGhlIG5ldyBwcm90b3R5cGVzLgoKUXVpY2tseSBzY2FubmVkIHRocm91Z2ggdGhpcyBvbmUsIGRp ZG4ndCBzcG90IGFueXRoaW5nIGFsYXJtaW5nLgpSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOkbMOk IDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCj4gCj4gQ2M6IENocmlzdGlhbiBLw7Zu aWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KPiBDYzogQWxleCBEZXVjaGVyIDxhbGV4YW5k ZXIuZGV1Y2hlckBhbWQuY29tPgo+IENjOiBSdXNzZWxsIEtpbmcgPHJtaytrZXJuZWxAYXJtLmxp bnV4Lm9yZy51az4KPiBDYzogSW5raSBEYWUgPGlua2kuZGFlQHNhbXN1bmcuY29tPgo+IENjOiBK aWFud2VpIFdhbmcgPGppYW53ZWkud2FuZy5jaG5AZ21haWwuY29tPgo+IENjOiBBbGlzb24gV2Fu ZyA8YWxpc29uLndhbmdAZnJlZXNjYWxlLmNvbT4KPiBDYzogUGF0cmlrIEpha29ic3NvbiA8cGF0 cmlrLnIuamFrb2Jzc29uQGdtYWlsLmNvbT4KPiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZl dHRlckBpbnRlbC5jb20+Cj4gQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBsaW51eC5pbnRl bC5jb20+Cj4gQ2M6IFBoaWxpcHAgWmFiZWwgPHAuemFiZWxAcGVuZ3V0cm9uaXguZGU+Cj4gQ2M6 IERhdmlkIEFpcmxpZSA8YWlybGllZEBsaW51eC5pZT4KPiBDYzogUm9iIENsYXJrIDxyb2JkY2xh cmtAZ21haWwuY29tPgo+IENjOiBCZW4gU2tlZ2dzIDxic2tlZ2dzQHJlZGhhdC5jb20+Cj4gQ2M6 IFRvbWkgVmFsa2VpbmVuIDx0b21pLnZhbGtlaW5lbkB0aS5jb20+Cj4gQ2M6IExhdXJlbnQgUGlu Y2hhcnQgPGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KPiBDYzogTWFyayBZYW8g PG1hcmsueWFvQHJvY2stY2hpcHMuY29tPgo+IENjOiBCZW5qYW1pbiBHYWlnbmFyZCA8YmVuamFt aW4uZ2FpZ25hcmRAbGluYXJvLm9yZz4KPiBDYzogVmluY2VudCBBYnJpb3UgPHZpbmNlbnQuYWJy aW91QHN0LmNvbT4KPiBDYzogVGhvbWFzIEhlbGxzdHJvbSA8dGhlbGxzdHJvbUB2bXdhcmUuY29t Pgo+IFNpZ25lZC1vZmYtYnk6IFRoaWVycnkgUmVkaW5nIDx0cmVkaW5nQG52aWRpYS5jb20+Cj4g LS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oICAgICAgICAgIHwgIDgg KysrLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kaXNwbGF5LmMgIHwg IDkgKysrKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfa21zLmMgICAg ICB8IDM2ICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9tb2RlLmggICAgIHwgIDkgKysrLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0v YXJtYWRhL2FybWFkYV9kcnYuYyAgICAgICAgICB8ICA4ICsrKy0tLQo+ICBkcml2ZXJzL2dwdS9k cm0vYXRtZWwtaGxjZGMvYXRtZWxfaGxjZGNfZGMuYyB8ICA2ICsrKy0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9kcm1faXJxLmMgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KPiAgZHJpdmVycy9ncHUv ZHJtL2V4eW5vcy9leHlub3NfZHJtX2NydGMuYyAgICAgfCAgNCArLS0KPiAgZHJpdmVycy9ncHUv ZHJtL2V4eW5vcy9leHlub3NfZHJtX2NydGMuaCAgICAgfCAgNCArLS0KPiAgZHJpdmVycy9ncHUv ZHJtL2ZzbC1kY3UvZnNsX2RjdV9kcm1fZHJ2LmMgICAgfCAgNSArKy0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9nbWE1MDAvcHNiX2Rydi5oICAgICAgICAgICAgIHwgIDYgKystLS0KPiAgZHJpdmVycy9n cHUvZHJtL2dtYTUwMC9wc2JfaXJxLmMgICAgICAgICAgICAgfCAgOCArKystLS0KPiAgZHJpdmVy cy9ncHUvZHJtL2dtYTUwMC9wc2JfaXJxLmggICAgICAgICAgICAgfCAgNiArKy0tLQo+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jICAgICAgICAgICAgICB8IDM0ICsrKysrKysrKysr Ky0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2lteC9pbXgtZHJtLWNvcmUuYyAgICAg ICAgICAgfCAgOCArKystLS0KPiAgZHJpdmVycy9ncHUvZHJtL21nYS9tZ2FfZHJ2LmggICAgICAg ICAgICAgICAgfCAgNiArKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vbWdhL21nYV9pcnEuYyAgICAg ICAgICAgICAgICB8IDIwICsrKysrKystLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL21z bV9kcnYuYyAgICAgICAgICAgICAgICB8IDEyICsrKystLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0v bm91dmVhdS9ub3V2ZWF1X2Rpc3BsYXkuYyAgICB8IDIzICsrKysrKysrKy0tLS0tLS0tCj4gIGRy aXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZGlzcGxheS5oICAgIHwgMTIgKysrKy0tLS0t Cj4gIGRyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZHJ2LmggICAgICAgICAgIHwgIDQgKy0t Cj4gIGRyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfaXJxLmMgICAgICAgICAgIHwgMTYgKysr KysrLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2Rydi5jICAgICAgICAgICAgICAg IHwgIDcgKystLS0KPiAgZHJpdmVycy9ncHUvZHJtL3IxMjgvcjEyOF9kcnYuaCAgICAgICAgICAg ICAgfCAgNiArKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vcjEyOC9yMTI4X2lycS5jICAgICAgICAg ICAgICB8IDE2ICsrKysrKy0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9k aXNwbGF5LmMgICAgICB8IDI1ICsrKysrKysrKy0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3JhZGVvbl9kcnYuYyAgICAgICAgICB8IDEzICsrKysrLS0tLS0KPiAgZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yYWRlb25fZHJ2LmggICAgICAgICAgfCAgNiArKy0tLQo+ICBkcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9pcnEuYyAgICAgICAgICB8IDM4ICsrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fbW9kZS5oICAg ICAgICAgfCAgNSArKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfZHJ2LmMg ICAgICAgIHwgIDggKysrLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9k cm1fZHJ2LmMgIHwgIDYgKysrLS0KPiAgZHJpdmVycy9ncHUvZHJtL3NobW9iaWxlL3NobW9iX2Ry bV9kcnYuYyAgICAgfCAgNCArLS0KPiAgZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfY3J0Yy5jICAg ICAgICAgICAgICAgfCAxNiArKysrKystLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlf Y3J0Yy5oICAgICAgICAgICAgICAgfCAgNCArLS0KPiAgZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2Ry bS5jICAgICAgICAgICAgICAgICAgfCAgNyArKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vdGlsY2Rj L3RpbGNkY19kcnYuYyAgICAgICAgICB8ICA0ICstLQo+ICBkcml2ZXJzL2dwdS9kcm0vdmlhL3Zp YV9kcnYuaCAgICAgICAgICAgICAgICB8ICA2ICsrLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS92aWEv dmlhX2lycS5jICAgICAgICAgICAgICAgIHwgMTcgKysrKysrKy0tLS0tLQo+ICBkcml2ZXJzL2dw dS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaCAgICAgICAgICB8ICA2ICsrLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jICAgICAgICAgIHwgIDYgKystLS0KPiAgaW5jbHVk ZS9kcm0vZHJtUC5oICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyNSArKysrKysrKystLS0t LS0tLS0KPiAgNDIgZmlsZXMgY2hhbmdlZCwgMjM5IGluc2VydGlvbnMoKyksIDIzMiBkZWxldGlv bnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaAo+IGluZGV4IDY2ODkzOWEx NDIwNi4uZDdiOGU0YjMxZDc4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdS5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgK PiBAQCAtMjM0OCwxMCArMjM0OCwxMCBAQCB2b2lkIGFtZGdwdV9kcml2ZXJfcHJlY2xvc2Vfa21z KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJp dik7Cj4gIGludCBhbWRncHVfc3VzcGVuZF9rbXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgYm9v bCBzdXNwZW5kLCBib29sIGZiY29uKTsKPiAgaW50IGFtZGdwdV9yZXN1bWVfa21zKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIGJvb2wgcmVzdW1lLCBib29sIGZiY29uKTsKPiAtdTMyIGFtZGdwdV9n ZXRfdmJsYW5rX2NvdW50ZXJfa21zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjKTsK PiAtaW50IGFtZGdwdV9lbmFibGVfdmJsYW5rX2ttcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBp bnQgY3J0Yyk7Cj4gLXZvaWQgYW1kZ3B1X2Rpc2FibGVfdmJsYW5rX2ttcyhzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCBpbnQgY3J0Yyk7Cj4gLWludCBhbWRncHVfZ2V0X3ZibGFua190aW1lc3RhbXBf a21zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjLAo+ICt1MzIgYW1kZ3B1X2dldF92 YmxhbmtfY291bnRlcl9rbXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBp cGUpOwo+ICtpbnQgYW1kZ3B1X2VuYWJsZV92Ymxhbmtfa21zKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHVuc2lnbmVkIGludCBwaXBlKTsKPiArdm9pZCBhbWRncHVfZGlzYWJsZV92Ymxhbmtfa21z KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTsKPiAraW50IGFtZGdw dV9nZXRfdmJsYW5rX3RpbWVzdGFtcF9rbXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWdu ZWQgaW50IHBpcGUsCj4gIAkJCQkgICAgaW50ICptYXhfZXJyb3IsCj4gIAkJCQkgICAgc3RydWN0 IHRpbWV2YWwgKnZibGFua190aW1lLAo+ICAJCQkJICAgIHVuc2lnbmVkIGZsYWdzKTsKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rpc3BsYXkuYyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kaXNwbGF5LmMKPiBpbmRleCA5YjM0YTM0 MTBjMzIuLmRlMTE2Mzk4ZmE0OSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X2Rpc3BsYXkuYwo+IEBAIC03MjEsNyArNzIxLDcgQEAgYm9vbCBhbWRncHVfY3J0Y19z Y2FsaW5nX21vZGVfZml4dXAoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAgKiBhbiBvcHRpb25h bCBhY2N1cmF0ZSB0aW1lc3RhbXAgb2Ygd2hlbiBxdWVyeSBoYXBwZW5lZC4KPiAgICoKPiAgICog XHBhcmFtIGRldiBEZXZpY2UgdG8gcXVlcnkuCj4gLSAqIFxwYXJhbSBjcnRjIENydGMgdG8gcXVl cnkuCj4gKyAqIFxwYXJhbSBwaXBlIENydGMgdG8gcXVlcnkuCj4gICAqIFxwYXJhbSBmbGFncyBG bGFncyBmcm9tIGNhbGxlciAoRFJNX0NBTExFRF9GUk9NX1ZCTElSUSBvciAwKS4KPiAgICogXHBh cmFtICp2cG9zIExvY2F0aW9uIHdoZXJlIHZlcnRpY2FsIHNjYW5vdXQgcG9zaXRpb24gc2hvdWxk IGJlIHN0b3JlZC4KPiAgICogXHBhcmFtICpocG9zIExvY2F0aW9uIHdoZXJlIGhvcml6b250YWwg c2Nhbm91dCBwb3NpdGlvbiBzaG91bGQgZ28uCj4gQEAgLTc0NCw4ICs3NDQsOSBAQCBib29sIGFt ZGdwdV9jcnRjX3NjYWxpbmdfbW9kZV9maXh1cChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gICAq IHVua25vd24gc21hbGwgbnVtYmVyIG9mIHNjYW5saW5lcyB3cnQuIHJlYWwgc2Nhbm91dCBwb3Np dGlvbi4KPiAgICoKPiAgICovCj4gLWludCBhbWRncHVfZ2V0X2NydGNfc2Nhbm91dHBvcyhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0YywgdW5zaWduZWQgaW50IGZsYWdzLAo+IC0JCQkg ICAgICAgaW50ICp2cG9zLCBpbnQgKmhwb3MsIGt0aW1lX3QgKnN0aW1lLCBrdGltZV90ICpldGlt ZSwKPiAraW50IGFtZGdwdV9nZXRfY3J0Y19zY2Fub3V0cG9zKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHVuc2lnbmVkIGludCBwaXBlLAo+ICsJCQkgICAgICAgdW5zaWduZWQgaW50IGZsYWdzLCBp bnQgKnZwb3MsIGludCAqaHBvcywKPiArCQkJICAgICAgIGt0aW1lX3QgKnN0aW1lLCBrdGltZV90 ICpldGltZSwKPiAgCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2Rl KQo+ICB7Cj4gIAl1MzIgdmJsID0gMCwgcG9zaXRpb24gPSAwOwo+IEBAIC03NjAsNyArNzYxLDcg QEAgaW50IGFtZGdwdV9nZXRfY3J0Y19zY2Fub3V0cG9zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IGludCBjcnRjLCB1bnNpZ25lZCBpbnQgZmwKPiAgCWlmIChzdGltZSkKPiAgCQkqc3RpbWUgPSBr dGltZV9nZXQoKTsKPiAgCj4gLQlpZiAoYW1kZ3B1X2Rpc3BsYXlfcGFnZV9mbGlwX2dldF9zY2Fu b3V0cG9zKGFkZXYsIGNydGMsICZ2YmwsICZwb3NpdGlvbikgPT0gMCkKPiArCWlmIChhbWRncHVf ZGlzcGxheV9wYWdlX2ZsaXBfZ2V0X3NjYW5vdXRwb3MoYWRldiwgcGlwZSwgJnZibCwgJnBvc2l0 aW9uKSA9PSAwKQo+ICAJCXJldCB8PSBEUk1fU0NBTk9VVFBPU19WQUxJRDsKPiAgCj4gIAkvKiBH ZXQgb3B0aW9uYWwgc3lzdGVtIHRpbWVzdGFtcCBhZnRlciBxdWVyeS4gKi8KPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ttcy5jIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ttcy5jCj4gaW5kZXggZWNmYTcwM2E5ZTY5Li4wMTE4ZmQz Y2RhMTMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2tt cy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ttcy5jCj4gQEAg LTU5OSwzNiArNTk5LDM2IEBAIHZvaWQgYW1kZ3B1X2RyaXZlcl9wcmVjbG9zZV9rbXMoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKPiAgICogYW1kZ3B1X2dldF92YmxhbmtfY291bnRlcl9rbXMgLSBn ZXQgZnJhbWUgY291bnQKPiAgICoKPiAgICogQGRldjogZHJtIGRldiBwb2ludGVyCj4gLSAqIEBj cnRjOiBjcnRjIHRvIGdldCB0aGUgZnJhbWUgY291bnQgZnJvbQo+ICsgKiBAcGlwZTogY3J0YyB0 byBnZXQgdGhlIGZyYW1lIGNvdW50IGZyb20KPiAgICoKPiAgICogR2V0cyB0aGUgZnJhbWUgY291 bnQgb24gdGhlIHJlcXVlc3RlZCBjcnRjIChhbGwgYXNpY3MpLgo+ICAgKiBSZXR1cm5zIGZyYW1l IGNvdW50IG9uIHN1Y2Nlc3MsIC1FSU5WQUwgb24gZmFpbHVyZS4KPiAgICovCj4gLXUzMiBhbWRn cHVfZ2V0X3ZibGFua19jb3VudGVyX2ttcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0 YykKPiArdTMyIGFtZGdwdV9nZXRfdmJsYW5rX2NvdW50ZXJfa21zKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQo+ICB7Cj4gIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAo+IC0JaWYgKGNydGMgPCAwIHx8IGNydGMgPj0g YWRldi0+bW9kZV9pbmZvLm51bV9jcnRjKSB7Cj4gLQkJRFJNX0VSUk9SKCJJbnZhbGlkIGNydGMg JWRcbiIsIGNydGMpOwo+ICsJaWYgKHBpcGUgPj0gYWRldi0+bW9kZV9pbmZvLm51bV9jcnRjKSB7 Cj4gKwkJRFJNX0VSUk9SKCJJbnZhbGlkIGNydGMgJXVcbiIsIHBpcGUpOwo+ICAJCXJldHVybiAt RUlOVkFMOwo+ICAJfQo+ICAKPiAtCXJldHVybiBhbWRncHVfZGlzcGxheV92YmxhbmtfZ2V0X2Nv dW50ZXIoYWRldiwgY3J0Yyk7Cj4gKwlyZXR1cm4gYW1kZ3B1X2Rpc3BsYXlfdmJsYW5rX2dldF9j b3VudGVyKGFkZXYsIHBpcGUpOwo+ICB9Cj4gIAo+ICAvKioKPiAgICogYW1kZ3B1X2VuYWJsZV92 Ymxhbmtfa21zIC0gZW5hYmxlIHZibGFuayBpbnRlcnJ1cHQKPiAgICoKPiAgICogQGRldjogZHJt IGRldiBwb2ludGVyCj4gLSAqIEBjcnRjOiBjcnRjIHRvIGVuYWJsZSB2YmxhbmsgaW50ZXJydXB0 IGZvcgo+ICsgKiBAcGlwZTogY3J0YyB0byBlbmFibGUgdmJsYW5rIGludGVycnVwdCBmb3IKPiAg ICoKPiAgICogRW5hYmxlIHRoZSBpbnRlcnJ1cHQgb24gdGhlIHJlcXVlc3RlZCBjcnRjIChhbGwg YXNpY3MpLgo+ICAgKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgLUVJTlZBTCBvbiBmYWlsdXJlLgo+ ICAgKi8KPiAtaW50IGFtZGdwdV9lbmFibGVfdmJsYW5rX2ttcyhzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBpbnQgY3J0YykKPiAraW50IGFtZGdwdV9lbmFibGVfdmJsYW5rX2ttcyhzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKPiAgewo+ICAJc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IC0JaW50IGlkeCA9IGFtZGdwdV9jcnRj X2lkeF90b19pcnFfdHlwZShhZGV2LCBjcnRjKTsKPiArCWludCBpZHggPSBhbWRncHVfY3J0Y19p ZHhfdG9faXJxX3R5cGUoYWRldiwgcGlwZSk7Cj4gIAo+ICAJcmV0dXJuIGFtZGdwdV9pcnFfZ2V0 KGFkZXYsICZhZGV2LT5jcnRjX2lycSwgaWR4KTsKPiAgfQo+IEBAIC02MzcsMTQgKzYzNywxNCBA QCBpbnQgYW1kZ3B1X2VuYWJsZV92Ymxhbmtfa21zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGlu dCBjcnRjKQo+ICAgKiBhbWRncHVfZGlzYWJsZV92Ymxhbmtfa21zIC0gZGlzYWJsZSB2Ymxhbmsg aW50ZXJydXB0Cj4gICAqCj4gICAqIEBkZXY6IGRybSBkZXYgcG9pbnRlcgo+IC0gKiBAY3J0Yzog Y3J0YyB0byBkaXNhYmxlIHZibGFuayBpbnRlcnJ1cHQgZm9yCj4gKyAqIEBwaXBlOiBjcnRjIHRv IGRpc2FibGUgdmJsYW5rIGludGVycnVwdCBmb3IKPiAgICoKPiAgICogRGlzYWJsZSB0aGUgaW50 ZXJydXB0IG9uIHRoZSByZXF1ZXN0ZWQgY3J0YyAoYWxsIGFzaWNzKS4KPiAgICovCj4gLXZvaWQg YW1kZ3B1X2Rpc2FibGVfdmJsYW5rX2ttcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0 YykKPiArdm9pZCBhbWRncHVfZGlzYWJsZV92Ymxhbmtfa21zKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHVuc2lnbmVkIGludCBwaXBlKQo+ICB7Cj4gIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gLQlpbnQgaWR4ID0gYW1kZ3B1X2NydGNfaWR4X3RvX2ly cV90eXBlKGFkZXYsIGNydGMpOwo+ICsJaW50IGlkeCA9IGFtZGdwdV9jcnRjX2lkeF90b19pcnFf dHlwZShhZGV2LCBwaXBlKTsKPiAgCj4gIAlhbWRncHVfaXJxX3B1dChhZGV2LCAmYWRldi0+Y3J0 Y19pcnEsIGlkeCk7Cj4gIH0KPiBAQCAtNjYyLDI2ICs2NjIsMjYgQEAgdm9pZCBhbWRncHVfZGlz YWJsZV92Ymxhbmtfa21zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjKQo+ICAgKiBz Y2Fub3V0IHBvc2l0aW9uLiAgKGFsbCBhc2ljcykuCj4gICAqIFJldHVybnMgcG9zdGl2ZSBzdGF0 dXMgZmxhZ3Mgb24gc3VjY2VzcywgbmVnYXRpdmUgZXJyb3Igb24gZmFpbHVyZS4KPiAgICovCj4g LWludCBhbWRncHVfZ2V0X3ZibGFua190aW1lc3RhbXBfa21zKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIGludCBjcnRjLAo+ICtpbnQgYW1kZ3B1X2dldF92YmxhbmtfdGltZXN0YW1wX2ttcyhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSwKPiAgCQkJCSAgICBpbnQgKm1h eF9lcnJvciwKPiAgCQkJCSAgICBzdHJ1Y3QgdGltZXZhbCAqdmJsYW5rX3RpbWUsCj4gIAkJCQkg ICAgdW5zaWduZWQgZmxhZ3MpCj4gIHsKPiAtCXN0cnVjdCBkcm1fY3J0YyAqZHJtY3J0YzsKPiAr CXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiAgCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCj4gLQlpZiAoY3J0YyA8IDAgfHwgY3J0YyA+PSBkZXYtPm51 bV9jcnRjcykgewo+IC0JCURSTV9FUlJPUigiSW52YWxpZCBjcnRjICVkXG4iLCBjcnRjKTsKPiAr CWlmIChwaXBlID49IGRldi0+bnVtX2NydGNzKSB7Cj4gKwkJRFJNX0VSUk9SKCJJbnZhbGlkIGNy dGMgJXVcbiIsIHBpcGUpOwo+ICAJCXJldHVybiAtRUlOVkFMOwo+ICAJfQo+ICAKPiAgCS8qIEdl dCBhc3NvY2lhdGVkIGRybV9jcnRjOiAqLwo+IC0JZHJtY3J0YyA9ICZhZGV2LT5tb2RlX2luZm8u Y3J0Y3NbY3J0Y10tPmJhc2U7Cj4gKwljcnRjID0gJmFkZXYtPm1vZGVfaW5mby5jcnRjc1twaXBl XS0+YmFzZTsKPiAgCj4gIAkvKiBIZWxwZXIgcm91dGluZSBpbiBEUk0gY29yZSBkb2VzIGFsbCB0 aGUgd29yazogKi8KPiAtCXJldHVybiBkcm1fY2FsY192Ymx0aW1lc3RhbXBfZnJvbV9zY2Fub3V0 cG9zKGRldiwgY3J0YywgbWF4X2Vycm9yLAo+ICsJcmV0dXJuIGRybV9jYWxjX3ZibHRpbWVzdGFt cF9mcm9tX3NjYW5vdXRwb3MoZGV2LCBwaXBlLCBtYXhfZXJyb3IsCj4gIAkJCQkJCSAgICAgdmJs YW5rX3RpbWUsIGZsYWdzLAo+IC0JCQkJCQkgICAgICZkcm1jcnRjLT5od21vZGUpOwo+ICsJCQkJ CQkgICAgICZjcnRjLT5od21vZGUpOwo+ICB9Cj4gIAo+ICBjb25zdCBzdHJ1Y3QgZHJtX2lvY3Rs X2Rlc2MgYW1kZ3B1X2lvY3Rsc19rbXNbXSA9IHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X21vZGUuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9tb2RlLmgKPiBpbmRleCAyYjAzNDI1Zjk3NDAuLmY2YjAyOTk0NDQyYiAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfbW9kZS5oCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X21vZGUuaAo+IEBAIC01NDAsMTEgKzU0 MCwxMCBAQCBib29sIGFtZGdwdV9kZGNfcHJvYmUoc3RydWN0IGFtZGdwdV9jb25uZWN0b3IgKmFt ZGdwdV9jb25uZWN0b3IsIGJvb2wgdXNlX2F1eCk7Cj4gIAo+ICB2b2lkIGFtZGdwdV9lbmNvZGVy X3NldF9hY3RpdmVfZGV2aWNlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlcik7Cj4gIAo+IC1p bnQgYW1kZ3B1X2dldF9jcnRjX3NjYW5vdXRwb3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50 IGNydGMsCj4gLQkJCQkgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MsCj4gLQkJCQkgICAgICBpbnQg KnZwb3MsIGludCAqaHBvcywga3RpbWVfdCAqc3RpbWUsCj4gLQkJCQkgICAgICBrdGltZV90ICpl dGltZSwKPiAtCQkJCSAgICAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKTsK PiAraW50IGFtZGdwdV9nZXRfY3J0Y19zY2Fub3V0cG9zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHVuc2lnbmVkIGludCBwaXBlLAo+ICsJCQkgICAgICAgdW5zaWduZWQgaW50IGZsYWdzLCBpbnQg KnZwb3MsIGludCAqaHBvcywKPiArCQkJICAgICAgIGt0aW1lX3QgKnN0aW1lLCBrdGltZV90ICpl dGltZSwKPiArCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKTsK PiAgCj4gIGludCBhbWRncHVfZnJhbWVidWZmZXJfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAo+ICAJCQkgICAgIHN0cnVjdCBhbWRncHVfZnJhbWVidWZmZXIgKnJmYiwKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0v YXJtYWRhL2FybWFkYV9kcnYuYwo+IGluZGV4IDIyNTAzNGI3NGNkYS4uYTQzODg4NmZjZGI2IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2Rydi5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZHJ2LmMKPiBAQCAtMjU0LDE3ICsyNTQsMTcg QEAgdm9pZCBhcm1hZGFfZHJtX3ZibF9ldmVudF9yZW1vdmUoc3RydWN0IGFybWFkYV9jcnRjICpk Y3J0YywKPiAgfQo+ICAKPiAgLyogVGhlc2UgYXJlIGNhbGxlZCB1bmRlciB0aGUgdmJsX2xvY2su ICovCj4gLXN0YXRpYyBpbnQgYXJtYWRhX2RybV9lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIGludCBjcnRjKQo+ICtzdGF0aWMgaW50IGFybWFkYV9kcm1fZW5hYmxlX3ZibGFu ayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKPiAgewo+ICAJc3Ry dWN0IGFybWFkYV9wcml2YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCWFybWFkYV9k cm1fY3J0Y19lbmFibGVfaXJxKHByaXYtPmRjcnRjW2NydGNdLCBWU1lOQ19JUlFfRU5BKTsKPiAr CWFybWFkYV9kcm1fY3J0Y19lbmFibGVfaXJxKHByaXYtPmRjcnRjW3BpcGVdLCBWU1lOQ19JUlFf RU5BKTsKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBhcm1hZGFfZHJtX2Rp c2FibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjKQo+ICtzdGF0aWMg dm9pZCBhcm1hZGFfZHJtX2Rpc2FibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVu c2lnbmVkIGludCBwaXBlKQo+ICB7Cj4gIAlzdHJ1Y3QgYXJtYWRhX3ByaXZhdGUgKnByaXYgPSBk ZXYtPmRldl9wcml2YXRlOwo+IC0JYXJtYWRhX2RybV9jcnRjX2Rpc2FibGVfaXJxKHByaXYtPmRj cnRjW2NydGNdLCBWU1lOQ19JUlFfRU5BKTsKPiArCWFybWFkYV9kcm1fY3J0Y19kaXNhYmxlX2ly cShwcml2LT5kY3J0Y1twaXBlXSwgVlNZTkNfSVJRX0VOQSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyBz dHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgYXJtYWRhX2lvY3Rsc1tdID0gewo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYXRtZWwtaGxjZGMvYXRtZWxfaGxjZGNfZGMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19kYy5jCj4gaW5kZXggOGJjNjJlYzQwN2Y5Li42 ZGZiNjNhYjU0ZDIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL2F0 bWVsX2hsY2RjX2RjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYXRtZWwtaGxjZGMvYXRtZWxf aGxjZGNfZGMuYwo+IEBAIC02NTYsNyArNjU2LDggQEAgc3RhdGljIHZvaWQgYXRtZWxfaGxjZGNf ZGNfaXJxX3VuaW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJcmVnbWFwX3JlYWQo ZGMtPmhsY2RjLT5yZWdtYXAsIEFUTUVMX0hMQ0RDX0lTUiwgJmlzcik7Cj4gIH0KPiAgCj4gLXN0 YXRpYyBpbnQgYXRtZWxfaGxjZGNfZGNfZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBpbnQgY3J0YykKPiArc3RhdGljIGludCBhdG1lbF9obGNkY19kY19lbmFibGVfdmJsYW5r KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gKwkJCQkJdW5zaWduZWQgaW50IHBpcGUpCj4gIHsK PiAgCXN0cnVjdCBhdG1lbF9obGNkY19kYyAqZGMgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAKPiBA QCAtNjY2LDcgKzY2Nyw4IEBAIHN0YXRpYyBpbnQgYXRtZWxfaGxjZGNfZGNfZW5hYmxlX3ZibGFu ayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0YykKPiAgCXJldHVybiAwOwo+ICB9Cj4g IAo+IC1zdGF0aWMgdm9pZCBhdG1lbF9obGNkY19kY19kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCBpbnQgY3J0YykKPiArc3RhdGljIHZvaWQgYXRtZWxfaGxjZGNfZGNfZGlz YWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiArCQkJCQkgIHVuc2lnbmVkIGlu dCBwaXBlKQo+ICB7Cj4gIAlzdHJ1Y3QgYXRtZWxfaGxjZGNfZGMgKmRjID0gZGV2LT5kZXZfcHJp dmF0ZTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faXJxLmMgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2lycS5jCj4gaW5kZXggMjlhNmRjZDY3NGY4Li40YTVkZWU1Y2QzMjcg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9pcnEuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1faXJxLmMKPiBAQCAtODc2LDcgKzg3Niw3IEBAIGRybV9nZXRfbGFzdF92Ymx0 aW1lc3RhbXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUsCj4gICAq IFJldHVybnM6Cj4gICAqIFRoZSBzb2Z0d2FyZSB2YmxhbmsgY291bnRlci4KPiAgICovCj4gLXUz MiBkcm1fdmJsYW5rX2NvdW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwaXBlKQo+ICt1 MzIgZHJtX3ZibGFua19jb3VudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQg cGlwZSkKPiAgewo+ICAJc3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rID0gJmRldi0+dmJs YW5rW3BpcGVdOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlu b3NfZHJtX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9jcnRjLmMK PiBpbmRleCAwODcyYWEyZjQ1MGYuLmYzNjRkNjk0YTc4MCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fY3J0Yy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2V4eW5vcy9leHlub3NfZHJtX2NydGMuYwo+IEBAIC0xNjcsNyArMTY3LDcgQEAgZXJyX2NydGM6 Cj4gIAlyZXR1cm4gRVJSX1BUUihyZXQpOwo+ICB9Cj4gIAo+IC1pbnQgZXh5bm9zX2RybV9jcnRj X2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHBpcGUpCj4gK2ludCBl eHlub3NfZHJtX2NydGNfZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNp Z25lZCBpbnQgcGlwZSkKPiAgewo+ICAJc3RydWN0IGV4eW5vc19kcm1fcHJpdmF0ZSAqcHJpdmF0 ZSA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAlzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpleHlub3Nf Y3J0YyA9Cj4gQEAgLTE3OSw3ICsxNzksNyBAQCBpbnQgZXh5bm9zX2RybV9jcnRjX2VuYWJsZV92 Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHBpcGUpCj4gIAlyZXR1cm4gMDsKPiAg fQo+ICAKPiAtdm9pZCBleHlub3NfZHJtX2NydGNfZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgaW50IHBpcGUpCj4gK3ZvaWQgZXh5bm9zX2RybV9jcnRjX2Rpc2FibGVfdmJs YW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQo+ICB7Cj4gIAlz dHJ1Y3QgZXh5bm9zX2RybV9wcml2YXRlICpwcml2YXRlID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAg CXN0cnVjdCBleHlub3NfZHJtX2NydGMgKmV4eW5vc19jcnRjID0KPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2NydGMuaCBiL2RyaXZlcnMvZ3B1L2RybS9l eHlub3MvZXh5bm9zX2RybV9jcnRjLmgKPiBpbmRleCBmODdkNGFiZGE2ZjcuLmY5ZjM2NWJkMDI1 NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fY3J0Yy5o Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2NydGMuaAo+IEBAIC0y Myw4ICsyMyw4IEBAIHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmV4eW5vc19kcm1fY3J0Y19jcmVh dGUoc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYsCj4gIAkJCQkJZW51bSBleHlub3NfZHJtX291 dHB1dF90eXBlIHR5cGUsCj4gIAkJCQkJY29uc3Qgc3RydWN0IGV4eW5vc19kcm1fY3J0Y19vcHMg Km9wcywKPiAgCQkJCQl2b2lkICpjb250ZXh0KTsKPiAtaW50IGV4eW5vc19kcm1fY3J0Y19lbmFi bGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwaXBlKTsKPiAtdm9pZCBleHlu b3NfZHJtX2NydGNfZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHBp cGUpOwo+ICtpbnQgZXh5bm9zX2RybV9jcnRjX2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpOwo+ICt2b2lkIGV4eW5vc19kcm1fY3J0Y19kaXNh YmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7Cj4g IHZvaWQgZXh5bm9zX2RybV9jcnRjX3dhaXRfcGVuZGluZ191cGRhdGUoc3RydWN0IGV4eW5vc19k cm1fY3J0YyAqZXh5bm9zX2NydGMpOwo+ICB2b2lkIGV4eW5vc19kcm1fY3J0Y19maW5pc2hfdXBk YXRlKHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmV4eW5vc19jcnRjLAo+ICAJCQkJICAgc3RydWN0 IGV4eW5vc19kcm1fcGxhbmUgKmV4eW5vc19wbGFuZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9mc2wtZGN1L2ZzbF9kY3VfZHJtX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2ZzbC1k Y3UvZnNsX2RjdV9kcm1fZHJ2LmMKPiBpbmRleCA5YThlMmRhNDcxNTguLmYxZmQ5ODZjYTMzMiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZnNsLWRjdS9mc2xfZGN1X2RybV9kcnYuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L2ZzbF9kY3VfZHJtX2Rydi5jCj4gQEAgLTE0 MCw3ICsxNDAsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgZnNsX2RjdV9kcm1faXJxKGludCBpcnEs IHZvaWQgKmFyZykKPiAgCXJldHVybiBJUlFfSEFORExFRDsKPiAgfQo+ICAKPiAtc3RhdGljIGlu dCBmc2xfZGN1X2RybV9lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBj cnRjKQo+ICtzdGF0aWMgaW50IGZzbF9kY3VfZHJtX2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCj4gIHsKPiAgCXN0cnVjdCBmc2xfZGN1X2Ry bV9kZXZpY2UgKmZzbF9kZXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAJdW5zaWduZWQgaW50IHZh bHVlOwo+IEBAIC0xNTYsNyArMTU2LDggQEAgc3RhdGljIGludCBmc2xfZGN1X2RybV9lbmFibGVf dmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjKQo+ICAJcmV0dXJuIDA7Cj4g IH0KPiAgCj4gLXN0YXRpYyB2b2lkIGZzbF9kY3VfZHJtX2Rpc2FibGVfdmJsYW5rKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIGludCBjcnRjKQo+ICtzdGF0aWMgdm9pZCBmc2xfZGN1X2RybV9kaXNh YmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICsJCQkJICAgICAgIHVuc2lnbmVk IGludCBwaXBlKQo+ICB7Cj4gIAlzdHJ1Y3QgZnNsX2RjdV9kcm1fZGV2aWNlICpmc2xfZGV2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCXVuc2lnbmVkIGludCB2YWx1ZTsKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9wc2JfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vZ21hNTAw L3BzYl9kcnYuaAo+IGluZGV4IGUzODA1N2I5MTg2NS4uZTIxNzI2ZWNhYzMyIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvcHNiX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2dtYTUwMC9wc2JfZHJ2LmgKPiBAQCAtNjg3LDE1ICs2ODcsMTUgQEAgZXh0ZXJuIHZvaWQg cHNiX2lycV90dXJuX29mZl9kcHN0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICBleHRlcm4g dm9pZCBwc2JfaXJxX3VuaW5zdGFsbF9pc2xhbmRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGlu dCBod19pc2xhbmRzKTsKPiAgZXh0ZXJuIGludCBwc2JfdmJsYW5rX3dhaXQyKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCAqc2VxdWVuY2UpOwo+ICBleHRlcm4gaW50IHBzYl92 Ymxhbmtfd2FpdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgKnNlcXVlbmNl KTsKPiAtZXh0ZXJuIGludCBwc2JfZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCBpbnQgY3J0Yyk7Cj4gLWV4dGVybiB2b2lkIHBzYl9kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCBpbnQgY3J0Yyk7Cj4gK2V4dGVybiBpbnQgcHNiX2VuYWJsZV92Ymxhbmso c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpOwo+ICtleHRlcm4gdm9p ZCBwc2JfZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50 IHBpcGUpOwo+ICB2b2lkCj4gIHBzYl9lbmFibGVfcGlwZXN0YXQoc3RydWN0IGRybV9wc2JfcHJp dmF0ZSAqZGV2X3ByaXYsIGludCBwaXBlLCB1MzIgbWFzayk7Cj4gIAo+ICB2b2lkCj4gIHBzYl9k aXNhYmxlX3BpcGVzdGF0KHN0cnVjdCBkcm1fcHNiX3ByaXZhdGUgKmRldl9wcml2LCBpbnQgcGlw ZSwgdTMyIG1hc2spOwo+ICAKPiAtZXh0ZXJuIHUzMiBwc2JfZ2V0X3ZibGFua19jb3VudGVyKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjKTsKPiArZXh0ZXJuIHUzMiBwc2JfZ2V0X3Zi bGFua19jb3VudGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTsK PiAgCj4gIC8qIGZyYW1lYnVmZmVyLmMgKi8KPiAgZXh0ZXJuIGludCBwc2JmYl9wcm9iZWQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9nbWE1 MDAvcHNiX2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9wc2JfaXJxLmMKPiBpbmRleCA2 MjRlYjM2NTExYzUuLjc4ZWIxMDkwMjgwOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v Z21hNTAwL3BzYl9pcnEuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvcHNiX2lycS5j Cj4gQEAgLTUxMCw3ICs1MTAsNyBAQCBpbnQgcHNiX2lycV9kaXNhYmxlX2Rwc3Qoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKPiAgLyoKPiAgICogSXQgaXMgdXNlZCB0byBlbmFibGUgVkJMQU5LIGlu dGVycnVwdAo+ICAgKi8KPiAtaW50IHBzYl9lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIGludCBwaXBlKQo+ICtpbnQgcHNiX2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCj4gIHsKPiAgCXN0cnVjdCBkcm1fcHNiX3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCXVuc2lnbmVkIGxvbmcgaXJxZmxh Z3M7Cj4gQEAgLTU0OSw3ICs1NDksNyBAQCBpbnQgcHNiX2VuYWJsZV92Ymxhbmsoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgaW50IHBpcGUpCj4gIC8qCj4gICAqIEl0IGlzIHVzZWQgdG8gZGlzYWJs ZSBWQkxBTksgaW50ZXJydXB0Cj4gICAqLwo+IC12b2lkIHBzYl9kaXNhYmxlX3ZibGFuayhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgcGlwZSkKPiArdm9pZCBwc2JfZGlzYWJsZV92Ymxhbmso c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCj4gIHsKPiAgCXN0cnVj dCBkcm1fcHNiX3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCXVuc2ln bmVkIGxvbmcgaXJxZmxhZ3M7Cj4gQEAgLTYyMiw3ICs2MjIsNyBAQCB2b2lkIG1kZmxkX2Rpc2Fi bGVfdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHBpcGUpCj4gIC8qIENhbGxlZCBmcm9t IGRybSBnZW5lcmljIGNvZGUsIHBhc3NlZCBhICdjcnRjJywgd2hpY2gKPiAgICogd2UgdXNlIGFz IGEgcGlwZSBpbmRleAo+ICAgKi8KPiAtdTMyIHBzYl9nZXRfdmJsYW5rX2NvdW50ZXIoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgaW50IHBpcGUpCj4gK3UzMiBwc2JfZ2V0X3ZibGFua19jb3VudGVy KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQo+ICB7Cj4gIAl1aW50 MzJfdCBoaWdoX2ZyYW1lID0gUElQRUFGUkFNRUhJR0g7Cj4gIAl1aW50MzJfdCBsb3dfZnJhbWUg PSBQSVBFQUZSQU1FUElYRUw7Cj4gQEAgLTY1NCw3ICs2NTQsNyBAQCB1MzIgcHNiX2dldF92Ymxh bmtfY291bnRlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgcGlwZSkKPiAgCXJlZ192YWwg PSBSRUdfUkVBRChwaXBlY29uZl9yZWcpOwo+ICAKPiAgCWlmICghKHJlZ192YWwgJiBQSVBFQUNP TkZfRU5BQkxFKSkgewo+IC0JCWRldl9lcnIoZGV2LT5kZXYsICJ0cnlpbmcgdG8gZ2V0IHZibGFu ayBjb3VudCBmb3IgZGlzYWJsZWQgcGlwZSAlZFxuIiwKPiArCQlkZXZfZXJyKGRldi0+ZGV2LCAi dHJ5aW5nIHRvIGdldCB2YmxhbmsgY291bnQgZm9yIGRpc2FibGVkIHBpcGUgJXVcbiIsCj4gIAkJ CQkJCQkJcGlwZSk7Cj4gIAkJZ290byBwc2JfZ2V0X3ZibGFua19jb3VudGVyX2V4aXQ7Cj4gIAl9 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvcHNiX2lycS5oIGIvZHJpdmVy cy9ncHUvZHJtL2dtYTUwMC9wc2JfaXJxLmgKPiBpbmRleCBkMGI0NWZmYTExMjYuLmU2YTgxYThj OWYzNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL3BzYl9pcnEuaAo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvcHNiX2lycS5oCj4gQEAgLTM4LDkgKzM4LDkgQEAg aW50IHBzYl9pcnFfZW5hYmxlX2Rwc3Qoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gIGludCBw c2JfaXJxX2Rpc2FibGVfZHBzdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAgdm9pZCBwc2Jf aXJxX3R1cm5fb25fZHBzdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAgdm9pZCBwc2JfaXJx X3R1cm5fb2ZmX2Rwc3Qoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gLWludCAgcHNiX2VuYWJs ZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHBpcGUpOwo+IC12b2lkIHBzYl9k aXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgcGlwZSk7Cj4gLXUzMiAg cHNiX2dldF92YmxhbmtfY291bnRlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgcGlwZSk7 Cj4gK2ludCAgcHNiX2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWdu ZWQgaW50IHBpcGUpOwo+ICt2b2lkIHBzYl9kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7Cj4gK3UzMiAgcHNiX2dldF92YmxhbmtfY291bnRl cihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7Cj4gIAo+ICBpbnQg bWRmbGRfZW5hYmxlX3RlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwaXBlKTsKPiAgdm9p ZCBtZGZsZF9kaXNhYmxlX3RlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwaXBlKTsKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfaXJxLmMKPiBpbmRleCAzZGMzMzAyZDc2NmQuLjdiM2FlYjBmODA1NiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+IEBAIC02NDksNyArNjQ5LDcgQEAgc3RhdGlj IHZvaWQgaTkxNV9lbmFibGVfYXNsZV9waXBlc3RhdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ ICAgKiAgIG9mIGhvcml6b250YWwgYWN0aXZlIG9uIHRoZSBmaXJzdCBsaW5lIG9mIHZlcnRpY2Fs IGFjdGl2ZQo+ICAgKi8KPiAgCj4gLXN0YXRpYyB1MzIgaTh4eF9nZXRfdmJsYW5rX2NvdW50ZXIo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHBpcGUpCj4gK3N0YXRpYyB1MzIgaTh4eF9nZXRf dmJsYW5rX2NvdW50ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUp Cj4gIHsKPiAgCS8qIEdlbjIgZG9lc24ndCBoYXZlIGEgaGFyZHdhcmUgZnJhbWUgY291bnRlciAq Lwo+ICAJcmV0dXJuIDA7Cj4gQEAgLTY1OCw3ICs2NTgsNyBAQCBzdGF0aWMgdTMyIGk4eHhfZ2V0 X3ZibGFua19jb3VudGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwaXBlKQo+ICAvKiBD YWxsZWQgZnJvbSBkcm0gZ2VuZXJpYyBjb2RlLCBwYXNzZWQgYSAnY3J0YycsIHdoaWNoCj4gICAq IHdlIHVzZSBhcyBhIHBpcGUgaW5kZXgKPiAgICovCj4gLXN0YXRpYyB1MzIgaTkxNV9nZXRfdmJs YW5rX2NvdW50ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHBpcGUpCj4gK3N0YXRpYyB1 MzIgaTkxNV9nZXRfdmJsYW5rX2NvdW50ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWdu ZWQgaW50IHBpcGUpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAl1bnNpZ25lZCBsb25nIGhpZ2hfZnJhbWU7Cj4gQEAgLTcw Niw3ICs3MDYsNyBAQCBzdGF0aWMgdTMyIGk5MTVfZ2V0X3ZibGFua19jb3VudGVyKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIGludCBwaXBlKQo+ICAJcmV0dXJuICgoKGhpZ2gxIDw8IDgpIHwgbG93 KSArIChwaXhlbCA+PSB2Ymxfc3RhcnQpKSAmIDB4ZmZmZmZmOwo+ICB9Cj4gIAo+IC1zdGF0aWMg dTMyIGdtNDVfZ2V0X3ZibGFua19jb3VudGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBw aXBlKQo+ICtzdGF0aWMgdTMyIGdtNDVfZ2V0X3ZibGFua19jb3VudGVyKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAJaW50IHJlZyA9IFBJUEVfRlJN Q09VTlRfR000NShwaXBlKTsKPiBAQCAtNzY3LDcgKzc2Nyw3IEBAIHN0YXRpYyBpbnQgX19pbnRl bF9nZXRfY3J0Y19zY2FubGluZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiAgCXJldHVybiAo cG9zaXRpb24gKyBjcnRjLT5zY2FubGluZV9vZmZzZXQpICUgdnRvdGFsOwo+ICB9Cj4gIAo+IC1z dGF0aWMgaW50IGk5MTVfZ2V0X2NydGNfc2Nhbm91dHBvcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCBpbnQgcGlwZSwKPiArc3RhdGljIGludCBpOTE1X2dldF9jcnRjX3NjYW5vdXRwb3Moc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUsCj4gIAkJCQkgICAgdW5zaWduZWQg aW50IGZsYWdzLCBpbnQgKnZwb3MsIGludCAqaHBvcywKPiAgCQkJCSAgICBrdGltZV90ICpzdGlt ZSwga3RpbWVfdCAqZXRpbWUsCj4gIAkJCQkgICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGUpCj4gQEAgLTkwNCwyNyArOTA0LDI3IEBAIGludCBpbnRlbF9nZXRfY3J0Y19zY2Fu bGluZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiAgCXJldHVybiBwb3NpdGlvbjsKPiAgfQo+ ICAKPiAtc3RhdGljIGludCBpOTE1X2dldF92YmxhbmtfdGltZXN0YW1wKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIGludCBwaXBlLAo+ICtzdGF0aWMgaW50IGk5MTVfZ2V0X3ZibGFua190aW1lc3Rh bXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUsCj4gIAkJCSAgICAg IGludCAqbWF4X2Vycm9yLAo+ICAJCQkgICAgICBzdHJ1Y3QgdGltZXZhbCAqdmJsYW5rX3RpbWUs Cj4gIAkJCSAgICAgIHVuc2lnbmVkIGZsYWdzKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2NydGMgKmNy dGM7Cj4gIAo+IC0JaWYgKHBpcGUgPCAwIHx8IHBpcGUgPj0gSU5URUxfSU5GTyhkZXYpLT5udW1f cGlwZXMpIHsKPiAtCQlEUk1fRVJST1IoIkludmFsaWQgY3J0YyAlZFxuIiwgcGlwZSk7Cj4gKwlp ZiAocGlwZSA+PSBJTlRFTF9JTkZPKGRldiktPm51bV9waXBlcykgewo+ICsJCURSTV9FUlJPUigi SW52YWxpZCBjcnRjICV1XG4iLCBwaXBlKTsKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgCX0KPiAg Cj4gIAkvKiBHZXQgZHJtX2NydGMgdG8gdGltZXN0YW1wOiAqLwo+ICAJY3J0YyA9IGludGVsX2dl dF9jcnRjX2Zvcl9waXBlKGRldiwgcGlwZSk7Cj4gIAlpZiAoY3J0YyA9PSBOVUxMKSB7Cj4gLQkJ RFJNX0VSUk9SKCJJbnZhbGlkIGNydGMgJWRcbiIsIHBpcGUpOwo+ICsJCURSTV9FUlJPUigiSW52 YWxpZCBjcnRjICV1XG4iLCBwaXBlKTsKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgCX0KPiAgCj4g IAlpZiAoIWNydGMtPmh3bW9kZS5jcnRjX2Nsb2NrKSB7Cj4gLQkJRFJNX0RFQlVHX0tNUygiY3J0 YyAlZCBpcyBkaXNhYmxlZFxuIiwgcGlwZSk7Cj4gKwkJRFJNX0RFQlVHX0tNUygiY3J0YyAldSBp cyBkaXNhYmxlZFxuIiwgcGlwZSk7Cj4gIAkJcmV0dXJuIC1FQlVTWTsKPiAgCX0KPiAgCj4gQEAg LTI2MTIsNyArMjYxMiw3IEBAIHZvaWQgaTkxNV9oYW5kbGVfZXJyb3Ioc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgYm9vbCB3ZWRnZWQsCj4gIC8qIENhbGxlZCBmcm9tIGRybSBnZW5lcmljIGNvZGUs IHBhc3NlZCAnY3J0Yycgd2hpY2gKPiAgICogd2UgdXNlIGFzIGEgcGlwZSBpbmRleAo+ICAgKi8K PiAtc3RhdGljIGludCBpOTE1X2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg aW50IHBpcGUpCj4gK3N0YXRpYyBpbnQgaTkxNV9lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAJdW5zaWduZWQgbG9uZyBpcnFm bGFnczsKPiBAQCAtMjYyOSw3ICsyNjI5LDcgQEAgc3RhdGljIGludCBpOTE1X2VuYWJsZV92Ymxh bmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHBpcGUpCj4gIAlyZXR1cm4gMDsKPiAgfQo+ ICAKPiAtc3RhdGljIGludCBpcm9ubGFrZV9lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIGludCBwaXBlKQo+ICtzdGF0aWMgaW50IGlyb25sYWtlX2VuYWJsZV92Ymxhbmsoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCj4gIHsKPiAgCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAl1bnNpZ25l ZCBsb25nIGlycWZsYWdzOwo+IEBAIC0yNjQzLDcgKzI2NDMsNyBAQCBzdGF0aWMgaW50IGlyb25s YWtlX2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHBpcGUpCj4gIAly ZXR1cm4gMDsKPiAgfQo+ICAKPiAtc3RhdGljIGludCB2YWxsZXl2aWV3X2VuYWJsZV92Ymxhbmso c3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHBpcGUpCj4gK3N0YXRpYyBpbnQgdmFsbGV5dmll d19lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBl KQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9w cml2YXRlOwo+ICAJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsKPiBAQCAtMjY1Niw3ICsyNjU2LDcg QEAgc3RhdGljIGludCB2YWxsZXl2aWV3X2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgaW50IHBpcGUpCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiAtc3RhdGljIGludCBnZW44 X2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHBpcGUpCj4gK3N0YXRp YyBpbnQgZ2VuOF9lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVk IGludCBwaXBlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBk ZXYtPmRldl9wcml2YXRlOwo+ICAJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsKPiBAQCAtMjY3Miw3 ICsyNjcyLDcgQEAgc3RhdGljIGludCBnZW44X2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgaW50IHBpcGUpCj4gIC8qIENhbGxlZCBmcm9tIGRybSBnZW5lcmljIGNvZGUsIHBh c3NlZCAnY3J0Yycgd2hpY2gKPiAgICogd2UgdXNlIGFzIGEgcGlwZSBpbmRleAo+ICAgKi8KPiAt c3RhdGljIHZvaWQgaTkxNV9kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBp bnQgcGlwZSkKPiArc3RhdGljIHZvaWQgaTkxNV9kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCXVuc2lnbmVkIGxvbmcgaXJx ZmxhZ3M7Cj4gQEAgLTI2ODQsNyArMjY4NCw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZGlzYWJsZV92 Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHBpcGUpCj4gIAlzcGluX3VubG9ja19p cnFyZXN0b3JlKCZkZXZfcHJpdi0+aXJxX2xvY2ssIGlycWZsYWdzKTsKPiAgfQo+ICAKPiAtc3Rh dGljIHZvaWQgaXJvbmxha2VfZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg aW50IHBpcGUpCj4gK3N0YXRpYyB2b2lkIGlyb25sYWtlX2Rpc2FibGVfdmJsYW5rKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAJdW5zaWduZWQgbG9u ZyBpcnFmbGFnczsKPiBAQCAtMjY5Niw3ICsyNjk2LDcgQEAgc3RhdGljIHZvaWQgaXJvbmxha2Vf ZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHBpcGUpCj4gIAlzcGlu X3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+aXJxX2xvY2ssIGlycWZsYWdzKTsKPiAgfQo+ ICAKPiAtc3RhdGljIHZvaWQgdmFsbGV5dmlld19kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCBpbnQgcGlwZSkKPiArc3RhdGljIHZvaWQgdmFsbGV5dmlld19kaXNhYmxlX3Zi bGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKPiAgewo+ICAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAg CXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7Cj4gQEAgLTI3MDcsNyArMjcwNyw3IEBAIHN0YXRpYyB2 b2lkIHZhbGxleXZpZXdfZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50 IHBpcGUpCj4gIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+aXJxX2xvY2ssIGly cWZsYWdzKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgZ2VuOF9kaXNhYmxlX3ZibGFuayhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgcGlwZSkKPiArc3RhdGljIHZvaWQgZ2VuOF9kaXNhYmxl X3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKPiAgewo+ ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK PiAgCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pbXgvaW14LWRybS1jb3JlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaW14L2lteC1kcm0tY29yZS5j Cj4gaW5kZXggYWQ3N2M5ZDg2NDA5Li41YWM4MTE4MGE0NmQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2lteC9pbXgtZHJtLWNvcmUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pbXgv aW14LWRybS1jb3JlLmMKPiBAQCAtMTQ0LDEwICsxNDQsMTAgQEAgdm9pZCBpbXhfZHJtX2hhbmRs ZV92Ymxhbmsoc3RydWN0IGlteF9kcm1fY3J0YyAqaW14X2RybV9jcnRjKQo+ICB9Cj4gIEVYUE9S VF9TWU1CT0xfR1BMKGlteF9kcm1faGFuZGxlX3ZibGFuayk7Cj4gIAo+IC1zdGF0aWMgaW50IGlt eF9kcm1fZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLCBpbnQgY3J0YykKPiAr c3RhdGljIGludCBpbXhfZHJtX2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRybSwg dW5zaWduZWQgaW50IHBpcGUpCj4gIHsKPiAgCXN0cnVjdCBpbXhfZHJtX2RldmljZSAqaW14ZHJt ID0gZHJtLT5kZXZfcHJpdmF0ZTsKPiAtCXN0cnVjdCBpbXhfZHJtX2NydGMgKmlteF9kcm1fY3J0 YyA9IGlteGRybS0+Y3J0Y1tjcnRjXTsKPiArCXN0cnVjdCBpbXhfZHJtX2NydGMgKmlteF9kcm1f Y3J0YyA9IGlteGRybS0+Y3J0Y1twaXBlXTsKPiAgCWludCByZXQ7Cj4gIAo+ICAJaWYgKCFpbXhf ZHJtX2NydGMpCj4gQEAgLTE2MiwxMCArMTYyLDEwIEBAIHN0YXRpYyBpbnQgaW14X2RybV9lbmFi bGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sIGludCBjcnRjKQo+ICAJcmV0dXJuIHJl dDsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgaW14X2RybV9kaXNhYmxlX3ZibGFuayhzdHJ1Y3Qg ZHJtX2RldmljZSAqZHJtLCBpbnQgY3J0YykKPiArc3RhdGljIHZvaWQgaW14X2RybV9kaXNhYmxl X3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLCB1bnNpZ25lZCBpbnQgcGlwZSkKPiAgewo+ ICAJc3RydWN0IGlteF9kcm1fZGV2aWNlICppbXhkcm0gPSBkcm0tPmRldl9wcml2YXRlOwo+IC0J c3RydWN0IGlteF9kcm1fY3J0YyAqaW14X2RybV9jcnRjID0gaW14ZHJtLT5jcnRjW2NydGNdOwo+ ICsJc3RydWN0IGlteF9kcm1fY3J0YyAqaW14X2RybV9jcnRjID0gaW14ZHJtLT5jcnRjW3BpcGVd Owo+ICAKPiAgCWlmICghaW14X2RybV9jcnRjKQo+ICAJCXJldHVybjsKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL21nYS9tZ2FfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vbWdhL21nYV9k cnYuaAo+IGluZGV4IGI0YTIwMTQ5MTdlNS4uYmIzMTIzMzllMGIwIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9tZ2EvbWdhX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21nYS9t Z2FfZHJ2LmgKPiBAQCAtMTgzLDkgKzE4Myw5IEBAIGV4dGVybiBpbnQgbWdhX3dhcnBfaW5zdGFs bF9taWNyb2NvZGUoZHJtX21nYV9wcml2YXRlX3QgKmRldl9wcml2KTsKPiAgZXh0ZXJuIGludCBt Z2Ffd2FycF9pbml0KGRybV9tZ2FfcHJpdmF0ZV90ICpkZXZfcHJpdik7Cj4gIAo+ICAJCQkJLyog bWdhX2lycS5jICovCj4gLWV4dGVybiBpbnQgbWdhX2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgaW50IGNydGMpOwo+IC1leHRlcm4gdm9pZCBtZ2FfZGlzYWJsZV92Ymxhbmso c3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNydGMpOwo+IC1leHRlcm4gdTMyIG1nYV9nZXRf dmJsYW5rX2NvdW50ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNydGMpOwo+ICtleHRl cm4gaW50IG1nYV9lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVk IGludCBwaXBlKTsKPiArZXh0ZXJuIHZvaWQgbWdhX2Rpc2FibGVfdmJsYW5rKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTsKPiArZXh0ZXJuIHUzMiBtZ2FfZ2V0X3Zi bGFua19jb3VudGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTsK PiAgZXh0ZXJuIGludCBtZ2FfZHJpdmVyX2ZlbmNlX3dhaXQoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdW5zaWduZWQgaW50ICpzZXF1ZW5jZSk7Cj4gIGV4dGVybiBpbnQgbWdhX2RyaXZlcl92Ymxh bmtfd2FpdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgKnNlcXVlbmNlKTsK PiAgZXh0ZXJuIGlycXJldHVybl90IG1nYV9kcml2ZXJfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9p ZCAqYXJnKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21nYS9tZ2FfaXJxLmMgYi9k cml2ZXJzL2dwdS9kcm0vbWdhL21nYV9pcnEuYwo+IGluZGV4IDFiMDcxYjhmZjlkYy4uNjkzYmE3 MDhjZmVkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZ2EvbWdhX2lycS5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL21nYS9tZ2FfaXJxLmMKPiBAQCAtMzUsMTIgKzM1LDEyIEBACj4g ICNpbmNsdWRlIDxkcm0vbWdhX2RybS5oPgo+ICAjaW5jbHVkZSAibWdhX2Rydi5oIgo+ICAKPiAt dTMyIG1nYV9nZXRfdmJsYW5rX2NvdW50ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNy dGMpCj4gK3UzMiBtZ2FfZ2V0X3ZibGFua19jb3VudGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHVuc2lnbmVkIGludCBwaXBlKQo+ICB7Cj4gIAljb25zdCBkcm1fbWdhX3ByaXZhdGVfdCAqY29u c3QgZGV2X3ByaXYgPQo+ICAJCShkcm1fbWdhX3ByaXZhdGVfdCAqKSBkZXYtPmRldl9wcml2YXRl Owo+ICAKPiAtCWlmIChjcnRjICE9IDApCj4gKwlpZiAocGlwZSAhPSAwKQo+ICAJCXJldHVybiAw Owo+ICAKPiAgCXJldHVybiBhdG9taWNfcmVhZCgmZGV2X3ByaXYtPnZibF9yZWNlaXZlZCk7Cj4g QEAgLTg4LDEzICs4OCwxMyBAQCBpcnFyZXR1cm5fdCBtZ2FfZHJpdmVyX2lycV9oYW5kbGVyKGlu dCBpcnEsIHZvaWQgKmFyZykKPiAgCXJldHVybiBJUlFfTk9ORTsKPiAgfQo+ICAKPiAtaW50IG1n YV9lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjKQo+ICtpbnQg bWdhX2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBp cGUpCj4gIHsKPiAgCWRybV9tZ2FfcHJpdmF0ZV90ICpkZXZfcHJpdiA9IChkcm1fbWdhX3ByaXZh dGVfdCAqKSBkZXYtPmRldl9wcml2YXRlOwo+ICAKPiAtCWlmIChjcnRjICE9IDApIHsKPiAtCQlE Uk1fRVJST1IoInRyaWVkIHRvIGVuYWJsZSB2Ymxhbmsgb24gbm9uLWV4aXN0ZW50IGNydGMgJWRc biIsCj4gLQkJCSAgY3J0Yyk7Cj4gKwlpZiAocGlwZSAhPSAwKSB7Cj4gKwkJRFJNX0VSUk9SKCJ0 cmllZCB0byBlbmFibGUgdmJsYW5rIG9uIG5vbi1leGlzdGVudCBjcnRjICV1XG4iLAo+ICsJCQkg IHBpcGUpOwo+ICAJCXJldHVybiAwOwo+ICAJfQo+ICAKPiBAQCAtMTAzLDExICsxMDMsMTEgQEAg aW50IG1nYV9lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjKQo+ ICB9Cj4gIAo+ICAKPiAtdm9pZCBtZ2FfZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgaW50IGNydGMpCj4gK3ZvaWQgbWdhX2Rpc2FibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQo+ICB7Cj4gLQlpZiAoY3J0YyAhPSAwKSB7Cj4g LQkJRFJNX0VSUk9SKCJ0cmllZCB0byBkaXNhYmxlIHZibGFuayBvbiBub24tZXhpc3RlbnQgY3J0 YyAlZFxuIiwKPiAtCQkJICBjcnRjKTsKPiArCWlmIChwaXBlICE9IDApIHsKPiArCQlEUk1fRVJS T1IoInRyaWVkIHRvIGRpc2FibGUgdmJsYW5rIG9uIG5vbi1leGlzdGVudCBjcnRjICV1XG4iLAo+ ICsJCQkgIHBpcGUpOwo+ICAJfQo+ICAKPiAgCS8qIERvICpOT1QqIGRpc2FibGUgdGhlIHZlcnRp Y2FsIHJlZnJlc2ggaW50ZXJydXB0LiAgTUdBIGRvZXNuJ3QgaGF2ZQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Ry di5jCj4gaW5kZXggMDMzOWM1ZDgyZDM3Li43ZTQ0NTExZDA5NTEgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21z bV9kcnYuYwo+IEBAIC01MzEsMjQgKzUzMSwyNCBAQCBzdGF0aWMgdm9pZCBtc21faXJxX3VuaW5z dGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJa21zLT5mdW5jcy0+aXJxX3VuaW5zdGFs bChrbXMpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IG1zbV9lbmFibGVfdmJsYW5rKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIGludCBjcnRjX2lkKQo+ICtzdGF0aWMgaW50IG1zbV9lbmFibGVfdmJs YW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQo+ICB7Cj4gIAlz dHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCXN0cnVj dCBtc21fa21zICprbXMgPSBwcml2LT5rbXM7Cj4gIAlpZiAoIWttcykKPiAgCQlyZXR1cm4gLUVO WElPOwo+IC0JREJHKCJkZXY9JXAsIGNydGM9JWQiLCBkZXYsIGNydGNfaWQpOwo+IC0JcmV0dXJu IHZibGFua19jdHJsX3F1ZXVlX3dvcmsocHJpdiwgY3J0Y19pZCwgdHJ1ZSk7Cj4gKwlEQkcoImRl dj0lcCwgY3J0Yz0ldSIsIGRldiwgcGlwZSk7Cj4gKwlyZXR1cm4gdmJsYW5rX2N0cmxfcXVldWVf d29yayhwcml2LCBwaXBlLCB0cnVlKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgbXNtX2Rpc2Fi bGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjX2lkKQo+ICtzdGF0aWMg dm9pZCBtc21fZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQg aW50IHBpcGUpCj4gIHsKPiAgCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYgPSBkZXYtPmRl dl9wcml2YXRlOwo+ICAJc3RydWN0IG1zbV9rbXMgKmttcyA9IHByaXYtPmttczsKPiAgCWlmICgh a21zKQo+ICAJCXJldHVybjsKPiAtCURCRygiZGV2PSVwLCBjcnRjPSVkIiwgZGV2LCBjcnRjX2lk KTsKPiAtCXZibGFua19jdHJsX3F1ZXVlX3dvcmsocHJpdiwgY3J0Y19pZCwgZmFsc2UpOwo+ICsJ REJHKCJkZXY9JXAsIGNydGM9JXUiLCBkZXYsIHBpcGUpOwo+ICsJdmJsYW5rX2N0cmxfcXVldWVf d29yayhwcml2LCBwaXBlLCBmYWxzZSk7Cj4gIH0KPiAgCj4gIC8qCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJt L25vdXZlYXUvbm91dmVhdV9kaXNwbGF5LmMKPiBpbmRleCBhODJjM2NiZTMxMjcuLjg4NjA3OWRk OWJhYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rpc3Bs YXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZGlzcGxheS5jCj4g QEAgLTUxLDEyICs1MSwxMiBAQCBub3V2ZWF1X2Rpc3BsYXlfdmJsYW5rX2hhbmRsZXIoc3RydWN0 IG52aWZfbm90aWZ5ICpub3RpZnkpCj4gIH0KPiAgCj4gIGludAo+IC1ub3V2ZWF1X2Rpc3BsYXlf dmJsYW5rX2VuYWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgaGVhZCkKPiArbm91dmVh dV9kaXNwbGF5X3ZibGFua19lbmFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQg aW50IHBpcGUpCj4gIHsKPiAgCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiAgCWxpc3RfZm9yX2Vh Y2hfZW50cnkoY3J0YywgJmRldi0+bW9kZV9jb25maWcuY3J0Y19saXN0LCBoZWFkKSB7Cj4gIAkJ c3RydWN0IG5vdXZlYXVfY3J0YyAqbnZfY3J0YyA9IG5vdXZlYXVfY3J0YyhjcnRjKTsKPiAtCQlp ZiAobnZfY3J0Yy0+aW5kZXggPT0gaGVhZCkgewo+ICsJCWlmIChudl9jcnRjLT5pbmRleCA9PSBw aXBlKSB7Cj4gIAkJCW52aWZfbm90aWZ5X2dldCgmbnZfY3J0Yy0+dmJsYW5rKTsKPiAgCQkJcmV0 dXJuIDA7Cj4gIAkJfQo+IEBAIC02NSwxMiArNjUsMTIgQEAgbm91dmVhdV9kaXNwbGF5X3ZibGFu a19lbmFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGhlYWQpCj4gIH0KPiAgCj4gIHZv aWQKPiAtbm91dmVhdV9kaXNwbGF5X3ZibGFua19kaXNhYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIGludCBoZWFkKQo+ICtub3V2ZWF1X2Rpc3BsYXlfdmJsYW5rX2Rpc2FibGUoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCj4gIHsKPiAgCXN0cnVjdCBkcm1fY3J0 YyAqY3J0YzsKPiAgCWxpc3RfZm9yX2VhY2hfZW50cnkoY3J0YywgJmRldi0+bW9kZV9jb25maWcu Y3J0Y19saXN0LCBoZWFkKSB7Cj4gIAkJc3RydWN0IG5vdXZlYXVfY3J0YyAqbnZfY3J0YyA9IG5v dXZlYXVfY3J0YyhjcnRjKTsKPiAtCQlpZiAobnZfY3J0Yy0+aW5kZXggPT0gaGVhZCkgewo+ICsJ CWlmIChudl9jcnRjLT5pbmRleCA9PSBwaXBlKSB7Cj4gIAkJCW52aWZfbm90aWZ5X3B1dCgmbnZf Y3J0Yy0+dmJsYW5rKTsKPiAgCQkJcmV0dXJuOwo+ICAJCX0KPiBAQCAtMTMyLDE0ICsxMzIsMTUg QEAgbm91dmVhdV9kaXNwbGF5X3NjYW5vdXRwb3NfaGVhZChzdHJ1Y3QgZHJtX2NydGMgKmNydGMs IGludCAqdnBvcywgaW50ICpocG9zLAo+ICB9Cj4gIAo+ICBpbnQKPiAtbm91dmVhdV9kaXNwbGF5 X3NjYW5vdXRwb3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGhlYWQsIHVuc2lnbmVkIGlu dCBmbGFncywKPiAtCQkJICAgaW50ICp2cG9zLCBpbnQgKmhwb3MsIGt0aW1lX3QgKnN0aW1lLCBr dGltZV90ICpldGltZSwKPiArbm91dmVhdV9kaXNwbGF5X3NjYW5vdXRwb3Moc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUsCj4gKwkJCSAgIHVuc2lnbmVkIGludCBmbGFn cywgaW50ICp2cG9zLCBpbnQgKmhwb3MsCj4gKwkJCSAgIGt0aW1lX3QgKnN0aW1lLCBrdGltZV90 ICpldGltZSwKPiAgCQkJICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpCj4g IHsKPiAgCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiAgCj4gIAlsaXN0X2Zvcl9lYWNoX2VudHJ5 KGNydGMsICZkZXYtPm1vZGVfY29uZmlnLmNydGNfbGlzdCwgaGVhZCkgewo+IC0JCWlmIChub3V2 ZWF1X2NydGMoY3J0YyktPmluZGV4ID09IGhlYWQpIHsKPiArCQlpZiAobm91dmVhdV9jcnRjKGNy dGMpLT5pbmRleCA9PSBwaXBlKSB7Cj4gIAkJCXJldHVybiBub3V2ZWF1X2Rpc3BsYXlfc2Nhbm91 dHBvc19oZWFkKGNydGMsIHZwb3MsIGhwb3MsCj4gIAkJCQkJCQkgICAgICAgc3RpbWUsIGV0aW1l KTsKPiAgCQl9Cj4gQEAgLTE0OSwxNSArMTUwLDE1IEBAIG5vdXZlYXVfZGlzcGxheV9zY2Fub3V0 cG9zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBoZWFkLCB1bnNpZ25lZCBpbnQgZmxhZ3Ms Cj4gIH0KPiAgCj4gIGludAo+IC1ub3V2ZWF1X2Rpc3BsYXlfdmJsc3RhbXAoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgaW50IGhlYWQsIGludCAqbWF4X2Vycm9yLAo+IC0JCQkgc3RydWN0IHRpbWV2 YWwgKnRpbWUsIHVuc2lnbmVkIGZsYWdzKQo+ICtub3V2ZWF1X2Rpc3BsYXlfdmJsc3RhbXAoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUsCj4gKwkJCSBpbnQgKm1heF9l cnJvciwgc3RydWN0IHRpbWV2YWwgKnRpbWUsIHVuc2lnbmVkIGZsYWdzKQo+ICB7Cj4gIAlzdHJ1 Y3QgZHJtX2NydGMgKmNydGM7Cj4gIAo+ICAJbGlzdF9mb3JfZWFjaF9lbnRyeShjcnRjLCAmZGV2 LT5tb2RlX2NvbmZpZy5jcnRjX2xpc3QsIGhlYWQpIHsKPiAtCQlpZiAobm91dmVhdV9jcnRjKGNy dGMpLT5pbmRleCA9PSBoZWFkKSB7Cj4gKwkJaWYgKG5vdXZlYXVfY3J0YyhjcnRjKS0+aW5kZXgg PT0gcGlwZSkgewo+ICAJCQlyZXR1cm4gZHJtX2NhbGNfdmJsdGltZXN0YW1wX2Zyb21fc2Nhbm91 dHBvcyhkZXYsCj4gLQkJCQkJaGVhZCwgbWF4X2Vycm9yLCB0aW1lLCBmbGFncywKPiArCQkJCQlw aXBlLCBtYXhfZXJyb3IsIHRpbWUsIGZsYWdzLAo+ICAJCQkJCSZjcnRjLT5od21vZGUpOwo+ICAJ CX0KPiAgCX0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9k aXNwbGF5LmggYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rpc3BsYXkuaAo+IGlu ZGV4IDQxODJkMjE1MzhjNS4uODU2YWJlMGYwNzBkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9ub3V2ZWF1L25vdXZlYXVfZGlzcGxheS5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL25v dXZlYXUvbm91dmVhdV9kaXNwbGF5LmgKPiBAQCAtNjUsMTIgKzY1LDEyIEBAIGludCAgbm91dmVh dV9kaXNwbGF5X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gIHZvaWQgbm91dmVhdV9k aXNwbGF5X2Zpbmkoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gIGludCAgbm91dmVhdV9kaXNw bGF5X3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgYm9vbCBydW50aW1lKTsKPiAgdm9p ZCBub3V2ZWF1X2Rpc3BsYXlfcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGJvb2wgcnVu dGltZSk7Cj4gLWludCAgbm91dmVhdV9kaXNwbGF5X3ZibGFua19lbmFibGUoc3RydWN0IGRybV9k ZXZpY2UgKiwgaW50KTsKPiAtdm9pZCBub3V2ZWF1X2Rpc3BsYXlfdmJsYW5rX2Rpc2FibGUoc3Ry dWN0IGRybV9kZXZpY2UgKiwgaW50KTsKPiAtaW50ICBub3V2ZWF1X2Rpc3BsYXlfc2Nhbm91dHBv cyhzdHJ1Y3QgZHJtX2RldmljZSAqLCBpbnQsIHVuc2lnbmVkIGludCwKPiAtCQkJCWludCAqLCBp bnQgKiwga3RpbWVfdCAqLCBrdGltZV90ICosCj4gLQkJCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqKTsKPiAtaW50ICBub3V2ZWF1X2Rpc3BsYXlfdmJsc3RhbXAoc3RydWN0IGRybV9k ZXZpY2UgKiwgaW50LCBpbnQgKiwKPiAraW50ICBub3V2ZWF1X2Rpc3BsYXlfdmJsYW5rX2VuYWJs ZShzdHJ1Y3QgZHJtX2RldmljZSAqLCB1bnNpZ25lZCBpbnQpOwo+ICt2b2lkIG5vdXZlYXVfZGlz cGxheV92YmxhbmtfZGlzYWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqLCB1bnNpZ25lZCBpbnQpOwo+ ICtpbnQgIG5vdXZlYXVfZGlzcGxheV9zY2Fub3V0cG9zKHN0cnVjdCBkcm1fZGV2aWNlICosIHVu c2lnbmVkIGludCwKPiArCQkJCXVuc2lnbmVkIGludCwgaW50ICosIGludCAqLCBrdGltZV90ICos Cj4gKwkJCQlrdGltZV90ICosIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICopOwo+ICtp bnQgIG5vdXZlYXVfZGlzcGxheV92YmxzdGFtcChzdHJ1Y3QgZHJtX2RldmljZSAqLCB1bnNpZ25l ZCBpbnQsIGludCAqLAo+ICAJCQkgICAgICBzdHJ1Y3QgdGltZXZhbCAqLCB1bnNpZ25lZCk7Cj4g IAo+ICBpbnQgIG5vdXZlYXVfY3J0Y19wYWdlX2ZsaXAoc3RydWN0IGRybV9jcnRjICpjcnRjLCBz dHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L29tYXBkcm0vb21hcF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZHJ2LmgK PiBpbmRleCAxMjA4MWU2MWQ0NWEuLjVjMzY3YWFkOGE2ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vb21hcGRybS9vbWFwX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL29tYXBk cm0vb21hcF9kcnYuaAo+IEBAIC0xMjksOCArMTI5LDggQEAgdm9pZCBvbWFwX2dlbV9kZXNjcmli ZV9vYmplY3RzKHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsIHN0cnVjdCBzZXFfZmlsZSAqbSk7Cj4g IGludCBvbWFwX2dlbV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KTsKPiAgI2VuZGlmCj4gIAo+ IC1pbnQgb21hcF9pcnFfZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQg Y3J0Y19pZCk7Cj4gLXZvaWQgb21hcF9pcnFfZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgaW50IGNydGNfaWQpOwo+ICtpbnQgb21hcF9pcnFfZW5hYmxlX3ZibGFuayhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7Cj4gK3ZvaWQgb21hcF9pcnFf ZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUp Owo+ICB2b2lkIF9fb21hcF9pcnFfcmVnaXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3Ry dWN0IG9tYXBfZHJtX2lycSAqaXJxKTsKPiAgdm9pZCBfX29tYXBfaXJxX3VucmVnaXN0ZXIoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IG9tYXBfZHJtX2lycSAqaXJxKTsKPiAgdm9pZCBv bWFwX2lycV9yZWdpc3RlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3Qgb21hcF9kcm1f aXJxICppcnEpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2ly cS5jIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9pcnEuYwo+IGluZGV4IDI0OWMwMzMw ZDZjZS4uNjBlMWU4MDE2NzA4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJt L29tYXBfaXJxLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2lycS5jCj4g QEAgLTEzNCw3ICsxMzQsNyBAQCBpbnQgb21hcF9pcnFfd2FpdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBzdHJ1Y3Qgb21hcF9pcnFfd2FpdCAqd2FpdCwKPiAgLyoqCj4gICAqIGVuYWJsZV92Ymxh bmsgLSBlbmFibGUgdmJsYW5rIGludGVycnVwdCBldmVudHMKPiAgICogQGRldjogRFJNIGRldmlj ZQo+IC0gKiBAY3J0Yzogd2hpY2ggaXJxIHRvIGVuYWJsZQo+ICsgKiBAcGlwZTogd2hpY2ggaXJx IHRvIGVuYWJsZQo+ICAgKgo+ICAgKiBFbmFibGUgdmJsYW5rIGludGVycnVwdHMgZm9yIEBjcnRj LiAgSWYgdGhlIGRldmljZSBkb2Vzbid0IGhhdmUKPiAgICogYSBoYXJkd2FyZSB2YmxhbmsgY291 bnRlciwgdGhpcyByb3V0aW5lIHNob3VsZCBiZSBhIG5vLW9wLCBzaW5jZQo+IEBAIC0xNDQsMTMg KzE0NCwxMyBAQCBpbnQgb21hcF9pcnFfd2FpdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1 Y3Qgb21hcF9pcnFfd2FpdCAqd2FpdCwKPiAgICogWmVybyBvbiBzdWNjZXNzLCBhcHByb3ByaWF0 ZSBlcnJubyBpZiB0aGUgZ2l2ZW4gQGNydGMncyB2YmxhbmsKPiAgICogaW50ZXJydXB0IGNhbm5v dCBiZSBlbmFibGVkLgo+ICAgKi8KPiAtaW50IG9tYXBfaXJxX2VuYWJsZV92Ymxhbmsoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgaW50IGNydGNfaWQpCj4gK2ludCBvbWFwX2lycV9lbmFibGVfdmJs YW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQo+ICB7Cj4gIAlz dHJ1Y3Qgb21hcF9kcm1fcHJpdmF0ZSAqcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gLQlzdHJ1 Y3QgZHJtX2NydGMgKmNydGMgPSBwcml2LT5jcnRjc1tjcnRjX2lkXTsKPiArCXN0cnVjdCBkcm1f Y3J0YyAqY3J0YyA9IHByaXYtPmNydGNzW3BpcGVdOwo+ICAJdW5zaWduZWQgbG9uZyBmbGFnczsK PiAgCj4gLQlEQkcoImRldj0lcCwgY3J0Yz0lZCIsIGRldiwgY3J0Y19pZCk7Cj4gKwlEQkcoImRl dj0lcCwgY3J0Yz0ldSIsIGRldiwgcGlwZSk7Cj4gIAo+ICAJc3Bpbl9sb2NrX2lycXNhdmUoJmxp c3RfbG9jaywgZmxhZ3MpOwo+ICAJcHJpdi0+dmJsYW5rX21hc2sgfD0gcGlwZTJ2YmwoY3J0Yyk7 Cj4gQEAgLTE2MywxOSArMTYzLDE5IEBAIGludCBvbWFwX2lycV9lbmFibGVfdmJsYW5rKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjX2lkKQo+ICAvKioKPiAgICogZGlzYWJsZV92Ymxh bmsgLSBkaXNhYmxlIHZibGFuayBpbnRlcnJ1cHQgZXZlbnRzCj4gICAqIEBkZXY6IERSTSBkZXZp Y2UKPiAtICogQGNydGM6IHdoaWNoIGlycSB0byBlbmFibGUKPiArICogQHBpcGU6IHdoaWNoIGly cSB0byBlbmFibGUKPiAgICoKPiAgICogRGlzYWJsZSB2YmxhbmsgaW50ZXJydXB0cyBmb3IgQGNy dGMuICBJZiB0aGUgZGV2aWNlIGRvZXNuJ3QgaGF2ZQo+ICAgKiBhIGhhcmR3YXJlIHZibGFuayBj b3VudGVyLCB0aGlzIHJvdXRpbmUgc2hvdWxkIGJlIGEgbm8tb3AsIHNpbmNlCj4gICAqIGludGVy cnVwdHMgd2lsbCBoYXZlIHRvIHN0YXkgb24gdG8ga2VlcCB0aGUgY291bnQgYWNjdXJhdGUuCj4g ICAqLwo+IC12b2lkIG9tYXBfaXJxX2Rpc2FibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIGludCBjcnRjX2lkKQo+ICt2b2lkIG9tYXBfaXJxX2Rpc2FibGVfdmJsYW5rKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQo+ICB7Cj4gIAlzdHJ1Y3Qgb21hcF9k cm1fcHJpdmF0ZSAqcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gLQlzdHJ1Y3QgZHJtX2NydGMg KmNydGMgPSBwcml2LT5jcnRjc1tjcnRjX2lkXTsKPiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9 IHByaXYtPmNydGNzW3BpcGVdOwo+ICAJdW5zaWduZWQgbG9uZyBmbGFnczsKPiAgCj4gLQlEQkco ImRldj0lcCwgY3J0Yz0lZCIsIGRldiwgY3J0Y19pZCk7Cj4gKwlEQkcoImRldj0lcCwgY3J0Yz0l dSIsIGRldiwgcGlwZSk7Cj4gIAo+ICAJc3Bpbl9sb2NrX2lycXNhdmUoJmxpc3RfbG9jaywgZmxh Z3MpOwo+ICAJcHJpdi0+dmJsYW5rX21hc2sgJj0gfnBpcGUydmJsKGNydGMpOwo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9xeGwv cXhsX2Rydi5jCj4gaW5kZXggODNmNmYwYjVlOWVmLi43MzA3YjA3ZmUwNmIgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfZHJ2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v cXhsL3F4bF9kcnYuYwo+IEBAIC0xOTYsMTcgKzE5NiwxOCBAQCBzdGF0aWMgaW50IHF4bF9wbV9y ZXN0b3JlKHN0cnVjdCBkZXZpY2UgKmRldikKPiAgCXJldHVybiBxeGxfZHJtX3Jlc3VtZShkcm1f ZGV2LCBmYWxzZSk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB1MzIgcXhsX25vb3BfZ2V0X3ZibGFua19j b3VudGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjKQo+ICtzdGF0aWMgdTMyIHF4 bF9ub29wX2dldF92YmxhbmtfY291bnRlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICsJCQkJ ICAgICAgIHVuc2lnbmVkIGludCBwaXBlKQo+ICB7Cj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiAt c3RhdGljIGludCBxeGxfbm9vcF9lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IGludCBjcnRjKQo+ICtzdGF0aWMgaW50IHF4bF9ub29wX2VuYWJsZV92Ymxhbmsoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCj4gIHsKPiAgCXJldHVybiAwOwo+ICB9 Cj4gIAo+IC1zdGF0aWMgdm9pZCBxeGxfbm9vcF9kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCBpbnQgY3J0YykKPiArc3RhdGljIHZvaWQgcXhsX25vb3BfZGlzYWJsZV92Ymxh bmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCj4gIHsKPiAgfQo+ ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3IxMjgvcjEyOF9kcnYuaCBiL2RyaXZl cnMvZ3B1L2RybS9yMTI4L3IxMjhfZHJ2LmgKPiBpbmRleCA3MjNlNWQ2ZjEwYTQuLjA5MTQzYjg0 MDQ4MiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcjEyOC9yMTI4X2Rydi5oCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL3IxMjgvcjEyOF9kcnYuaAo+IEBAIC0xNTQsOSArMTU0LDkgQEAg ZXh0ZXJuIGludCByMTI4X3dhaXRfcmluZyhkcm1fcjEyOF9wcml2YXRlX3QgKmRldl9wcml2LCBp bnQgbik7Cj4gIGV4dGVybiBpbnQgcjEyOF9kb19jY2VfaWRsZShkcm1fcjEyOF9wcml2YXRlX3Qg KmRldl9wcml2KTsKPiAgZXh0ZXJuIGludCByMTI4X2RvX2NsZWFudXBfY2NlKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpOwo+ICAKPiAtZXh0ZXJuIGludCByMTI4X2VuYWJsZV92Ymxhbmsoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgaW50IGNydGMpOwo+IC1leHRlcm4gdm9pZCByMTI4X2Rpc2FibGVf dmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjKTsKPiAtZXh0ZXJuIHUzMiBy MTI4X2dldF92YmxhbmtfY291bnRlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0Yyk7 Cj4gK2V4dGVybiBpbnQgcjEyOF9lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHVuc2lnbmVkIGludCBwaXBlKTsKPiArZXh0ZXJuIHZvaWQgcjEyOF9kaXNhYmxlX3ZibGFuayhz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7Cj4gK2V4dGVybiB1MzIg cjEyOF9nZXRfdmJsYW5rX2NvdW50ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQg aW50IHBpcGUpOwo+ICBleHRlcm4gaXJxcmV0dXJuX3QgcjEyOF9kcml2ZXJfaXJxX2hhbmRsZXIo aW50IGlycSwgdm9pZCAqYXJnKTsKPiAgZXh0ZXJuIHZvaWQgcjEyOF9kcml2ZXJfaXJxX3ByZWlu c3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gIGV4dGVybiBpbnQgcjEyOF9kcml2ZXJf aXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vcjEyOC9yMTI4X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL3IxMjgvcjEy OF9pcnEuYwo+IGluZGV4IGMyYWU0OTZiYWJiNy4uOTczMGY0OTE4OTQ0IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9yMTI4L3IxMjhfaXJxLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v cjEyOC9yMTI4X2lycS5jCj4gQEAgLTM0LDExICszNCwxMSBAQAo+ICAjaW5jbHVkZSA8ZHJtL3Ix MjhfZHJtLmg+Cj4gICNpbmNsdWRlICJyMTI4X2Rydi5oIgo+ICAKPiAtdTMyIHIxMjhfZ2V0X3Zi bGFua19jb3VudGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjKQo+ICt1MzIgcjEy OF9nZXRfdmJsYW5rX2NvdW50ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50 IHBpcGUpCj4gIHsKPiAgCWNvbnN0IGRybV9yMTI4X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYt PmRldl9wcml2YXRlOwo+ICAKPiAtCWlmIChjcnRjICE9IDApCj4gKwlpZiAocGlwZSAhPSAwKQo+ ICAJCXJldHVybiAwOwo+ICAKPiAgCXJldHVybiBhdG9taWNfcmVhZCgmZGV2X3ByaXYtPnZibF9y ZWNlaXZlZCk7Cj4gQEAgLTYyLDEyICs2MiwxMiBAQCBpcnFyZXR1cm5fdCByMTI4X2RyaXZlcl9p cnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCj4gIAlyZXR1cm4gSVJRX05PTkU7Cj4gIH0K PiAgCj4gLWludCByMTI4X2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50 IGNydGMpCj4gK2ludCByMTI4X2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg dW5zaWduZWQgaW50IHBpcGUpCj4gIHsKPiAgCWRybV9yMTI4X3ByaXZhdGVfdCAqZGV2X3ByaXYg PSBkZXYtPmRldl9wcml2YXRlOwo+ICAKPiAtCWlmIChjcnRjICE9IDApIHsKPiAtCQlEUk1fRVJS T1IoIiVzOiAgYmFkIGNydGMgJWRcbiIsIF9fZnVuY19fLCBjcnRjKTsKPiArCWlmIChwaXBlICE9 IDApIHsKPiArCQlEUk1fRVJST1IoIiVzOiAgYmFkIGNydGMgJXVcbiIsIF9fZnVuY19fLCBwaXBl KTsKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgCX0KPiAgCj4gQEAgLTc1LDEwICs3NSwxMCBAQCBp bnQgcjEyOF9lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjKQo+ ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLXZvaWQgcjEyOF9kaXNhYmxlX3ZibGFuayhzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0YykKPiArdm9pZCByMTI4X2Rpc2FibGVfdmJsYW5rKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQo+ICB7Cj4gLQlpZiAoY3J0 YyAhPSAwKQo+IC0JCURSTV9FUlJPUigiJXM6ICBiYWQgY3J0YyAlZFxuIiwgX19mdW5jX18sIGNy dGMpOwo+ICsJaWYgKHBpcGUgIT0gMCkKPiArCQlEUk1fRVJST1IoIiVzOiAgYmFkIGNydGMgJXVc biIsIF9fZnVuY19fLCBwaXBlKTsKPiAgCj4gIAkvKgo+ICAJICogRklYTUU6IGltcGxlbWVudCBw cm9wZXIgaW50ZXJydXB0IGRpc2FibGUgYnkgdXNpbmcgdGhlIHZibGFuawo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbl9kaXNwbGF5LmMKPiBpbmRleCAwNTAzYWY3NDhkOTkuLmE1ODYzNWM1 ZGIzZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kaXNwbGF5 LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kaXNwbGF5LmMKPiBAQCAt MTc5OSw4ICsxNzk5LDkgQEAgYm9vbCByYWRlb25fY3J0Y19zY2FsaW5nX21vZGVfZml4dXAoc3Ry dWN0IGRybV9jcnRjICpjcnRjLAo+ICAgKiB1bmtub3duIHNtYWxsIG51bWJlciBvZiBzY2FubGlu ZXMgd3J0LiByZWFsIHNjYW5vdXQgcG9zaXRpb24uCj4gICAqCj4gICAqLwo+IC1pbnQgcmFkZW9u X2dldF9jcnRjX3NjYW5vdXRwb3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNydGMsIHVu c2lnbmVkIGludCBmbGFncywKPiAtCQkJICAgICAgIGludCAqdnBvcywgaW50ICpocG9zLCBrdGlt ZV90ICpzdGltZSwga3RpbWVfdCAqZXRpbWUsCj4gK2ludCByYWRlb25fZ2V0X2NydGNfc2Nhbm91 dHBvcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSwKPiArCQkJICAg ICAgIHVuc2lnbmVkIGludCBmbGFncywgaW50ICp2cG9zLCBpbnQgKmhwb3MsCj4gKwkJCSAgICAg ICBrdGltZV90ICpzdGltZSwga3RpbWVfdCAqZXRpbWUsCj4gIAkJCSAgICAgICBjb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSkKPiAgewo+ICAJdTMyIHN0YXRfY3J0YyA9IDAsIHZi bCA9IDAsIHBvc2l0aW9uID0gMDsKPiBAQCAtMTgxNiw0MiArMTgxNyw0MiBAQCBpbnQgcmFkZW9u X2dldF9jcnRjX3NjYW5vdXRwb3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNydGMsIHVu c2lnbmVkIGludCBmbAo+ICAJCSpzdGltZSA9IGt0aW1lX2dldCgpOwo+ICAKPiAgCWlmIChBU0lD X0lTX0RDRTQocmRldikpIHsKPiAtCQlpZiAoY3J0YyA9PSAwKSB7Cj4gKwkJaWYgKHBpcGUgPT0g MCkgewo+ICAJCQl2YmwgPSBSUkVHMzIoRVZFUkdSRUVOX0NSVENfVl9CTEFOS19TVEFSVF9FTkQg Kwo+ICAJCQkJICAgICBFVkVSR1JFRU5fQ1JUQzBfUkVHSVNURVJfT0ZGU0VUKTsKPiAgCQkJcG9z aXRpb24gPSBSUkVHMzIoRVZFUkdSRUVOX0NSVENfU1RBVFVTX1BPU0lUSU9OICsKPiAgCQkJCQkg IEVWRVJHUkVFTl9DUlRDMF9SRUdJU1RFUl9PRkZTRVQpOwo+ICAJCQlyZXQgfD0gRFJNX1NDQU5P VVRQT1NfVkFMSUQ7Cj4gIAkJfQo+IC0JCWlmIChjcnRjID09IDEpIHsKPiArCQlpZiAocGlwZSA9 PSAxKSB7Cj4gIAkJCXZibCA9IFJSRUczMihFVkVSR1JFRU5fQ1JUQ19WX0JMQU5LX1NUQVJUX0VO RCArCj4gIAkJCQkgICAgIEVWRVJHUkVFTl9DUlRDMV9SRUdJU1RFUl9PRkZTRVQpOwo+ICAJCQlw b3NpdGlvbiA9IFJSRUczMihFVkVSR1JFRU5fQ1JUQ19TVEFUVVNfUE9TSVRJT04gKwo+ICAJCQkJ CSAgRVZFUkdSRUVOX0NSVEMxX1JFR0lTVEVSX09GRlNFVCk7Cj4gIAkJCXJldCB8PSBEUk1fU0NB Tk9VVFBPU19WQUxJRDsKPiAgCQl9Cj4gLQkJaWYgKGNydGMgPT0gMikgewo+ICsJCWlmIChwaXBl ID09IDIpIHsKPiAgCQkJdmJsID0gUlJFRzMyKEVWRVJHUkVFTl9DUlRDX1ZfQkxBTktfU1RBUlRf RU5EICsKPiAgCQkJCSAgICAgRVZFUkdSRUVOX0NSVEMyX1JFR0lTVEVSX09GRlNFVCk7Cj4gIAkJ CXBvc2l0aW9uID0gUlJFRzMyKEVWRVJHUkVFTl9DUlRDX1NUQVRVU19QT1NJVElPTiArCj4gIAkJ CQkJICBFVkVSR1JFRU5fQ1JUQzJfUkVHSVNURVJfT0ZGU0VUKTsKPiAgCQkJcmV0IHw9IERSTV9T Q0FOT1VUUE9TX1ZBTElEOwo+ICAJCX0KPiAtCQlpZiAoY3J0YyA9PSAzKSB7Cj4gKwkJaWYgKHBp cGUgPT0gMykgewo+ICAJCQl2YmwgPSBSUkVHMzIoRVZFUkdSRUVOX0NSVENfVl9CTEFOS19TVEFS VF9FTkQgKwo+ICAJCQkJICAgICBFVkVSR1JFRU5fQ1JUQzNfUkVHSVNURVJfT0ZGU0VUKTsKPiAg CQkJcG9zaXRpb24gPSBSUkVHMzIoRVZFUkdSRUVOX0NSVENfU1RBVFVTX1BPU0lUSU9OICsKPiAg CQkJCQkgIEVWRVJHUkVFTl9DUlRDM19SRUdJU1RFUl9PRkZTRVQpOwo+ICAJCQlyZXQgfD0gRFJN X1NDQU5PVVRQT1NfVkFMSUQ7Cj4gIAkJfQo+IC0JCWlmIChjcnRjID09IDQpIHsKPiArCQlpZiAo cGlwZSA9PSA0KSB7Cj4gIAkJCXZibCA9IFJSRUczMihFVkVSR1JFRU5fQ1JUQ19WX0JMQU5LX1NU QVJUX0VORCArCj4gIAkJCQkgICAgIEVWRVJHUkVFTl9DUlRDNF9SRUdJU1RFUl9PRkZTRVQpOwo+ ICAJCQlwb3NpdGlvbiA9IFJSRUczMihFVkVSR1JFRU5fQ1JUQ19TVEFUVVNfUE9TSVRJT04gKwo+ ICAJCQkJCSAgRVZFUkdSRUVOX0NSVEM0X1JFR0lTVEVSX09GRlNFVCk7Cj4gIAkJCXJldCB8PSBE Uk1fU0NBTk9VVFBPU19WQUxJRDsKPiAgCQl9Cj4gLQkJaWYgKGNydGMgPT0gNSkgewo+ICsJCWlm IChwaXBlID09IDUpIHsKPiAgCQkJdmJsID0gUlJFRzMyKEVWRVJHUkVFTl9DUlRDX1ZfQkxBTktf U1RBUlRfRU5EICsKPiAgCQkJCSAgICAgRVZFUkdSRUVOX0NSVEM1X1JFR0lTVEVSX09GRlNFVCk7 Cj4gIAkJCXBvc2l0aW9uID0gUlJFRzMyKEVWRVJHUkVFTl9DUlRDX1NUQVRVU19QT1NJVElPTiAr Cj4gQEAgLTE4NTksMTkgKzE4NjAsMTkgQEAgaW50IHJhZGVvbl9nZXRfY3J0Y19zY2Fub3V0cG9z KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjLCB1bnNpZ25lZCBpbnQgZmwKPiAgCQkJ cmV0IHw9IERSTV9TQ0FOT1VUUE9TX1ZBTElEOwo+ICAJCX0KPiAgCX0gZWxzZSBpZiAoQVNJQ19J U19BVklWTyhyZGV2KSkgewo+IC0JCWlmIChjcnRjID09IDApIHsKPiArCQlpZiAocGlwZSA9PSAw KSB7Cj4gIAkJCXZibCA9IFJSRUczMihBVklWT19EMUNSVENfVl9CTEFOS19TVEFSVF9FTkQpOwo+ ICAJCQlwb3NpdGlvbiA9IFJSRUczMihBVklWT19EMUNSVENfU1RBVFVTX1BPU0lUSU9OKTsKPiAg CQkJcmV0IHw9IERSTV9TQ0FOT1VUUE9TX1ZBTElEOwo+ICAJCX0KPiAtCQlpZiAoY3J0YyA9PSAx KSB7Cj4gKwkJaWYgKHBpcGUgPT0gMSkgewo+ICAJCQl2YmwgPSBSUkVHMzIoQVZJVk9fRDJDUlRD X1ZfQkxBTktfU1RBUlRfRU5EKTsKPiAgCQkJcG9zaXRpb24gPSBSUkVHMzIoQVZJVk9fRDJDUlRD X1NUQVRVU19QT1NJVElPTik7Cj4gIAkJCXJldCB8PSBEUk1fU0NBTk9VVFBPU19WQUxJRDsKPiAg CQl9Cj4gIAl9IGVsc2Ugewo+ICAJCS8qIFByZS1BVklWTzogRGlmZmVyZW50IGVuY29kaW5nIG9m IHNjYW5vdXQgcG9zIGFuZCB2YmxhbmsgaW50ZXJ2YWwuICovCj4gLQkJaWYgKGNydGMgPT0gMCkg ewo+ICsJCWlmIChwaXBlID09IDApIHsKPiAgCQkJLyogQXNzdW1lIHZibF9lbmQgPT0gMCwgZ2V0 IHZibF9zdGFydCBmcm9tCj4gIAkJCSAqIHVwcGVyIDE2IGJpdHMuCj4gIAkJCSAqLwo+IEBAIC0x ODg1LDcgKzE4ODYsNyBAQCBpbnQgcmFkZW9uX2dldF9jcnRjX3NjYW5vdXRwb3Moc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgaW50IGNydGMsIHVuc2lnbmVkIGludCBmbAo+ICAKPiAgCQkJcmV0IHw9 IERSTV9TQ0FOT1VUUE9TX1ZBTElEOwo+ICAJCX0KPiAtCQlpZiAoY3J0YyA9PSAxKSB7Cj4gKwkJ aWYgKHBpcGUgPT0gMSkgewo+ICAJCQl2YmwgPSAoUlJFRzMyKFJBREVPTl9DUlRDMl9WX1RPVEFM X0RJU1ApICYKPiAgCQkJCVJBREVPTl9DUlRDX1ZfRElTUCkgPj4gUkFERU9OX0NSVENfVl9ESVNQ X1NISUZUOwo+ICAJCQlwb3NpdGlvbiA9IChSUkVHMzIoUkFERU9OX0NSVEMyX1ZMSU5FX0NSTlRf VkxJTkUpID4+IDE2KSAmIFJBREVPTl9DUlRDX1ZfVE9UQUw7Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9y YWRlb25fZHJ2LmMKPiBpbmRleCBlMzBjMWQ3M2I0Y2EuLjViNmE2ZjViMzYxOSAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kcnYuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX2Rydi5jCj4gQEAgLTEwNSwxMCArMTA1LDEwIEBAIHZvaWQg cmFkZW9uX2RyaXZlcl9wcmVjbG9zZV9rbXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkJ CXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKPiAgaW50IHJhZGVvbl9zdXNwZW5kX2ttcyhz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBib29sIHN1c3BlbmQsIGJvb2wgZmJjb24pOwo+ICBpbnQg cmFkZW9uX3Jlc3VtZV9rbXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgYm9vbCByZXN1bWUsIGJv b2wgZmJjb24pOwo+IC11MzIgcmFkZW9uX2dldF92YmxhbmtfY291bnRlcl9rbXMoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgaW50IGNydGMpOwo+IC1pbnQgcmFkZW9uX2VuYWJsZV92Ymxhbmtfa21z KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjKTsKPiAtdm9pZCByYWRlb25fZGlzYWJs ZV92Ymxhbmtfa21zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjKTsKPiAtaW50IHJh ZGVvbl9nZXRfdmJsYW5rX3RpbWVzdGFtcF9rbXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50 IGNydGMsCj4gK3UzMiByYWRlb25fZ2V0X3ZibGFua19jb3VudGVyX2ttcyhzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7Cj4gK2ludCByYWRlb25fZW5hYmxlX3ZibGFu a19rbXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpOwo+ICt2b2lk IHJhZGVvbl9kaXNhYmxlX3ZibGFua19rbXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWdu ZWQgaW50IHBpcGUpOwo+ICtpbnQgcmFkZW9uX2dldF92YmxhbmtfdGltZXN0YW1wX2ttcyhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSwKPiAgCQkJCSAgICBpbnQgKm1h eF9lcnJvciwKPiAgCQkJCSAgICBzdHJ1Y3QgdGltZXZhbCAqdmJsYW5rX3RpbWUsCj4gIAkJCQkg ICAgdW5zaWduZWQgZmxhZ3MpOwo+IEBAIC0xMjQsOSArMTI0LDggQEAgdm9pZCByYWRlb25fZ2Vt X29iamVjdF9jbG9zZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKPiAgc3RydWN0IGRtYV9i dWYgKnJhZGVvbl9nZW1fcHJpbWVfZXhwb3J0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJ CQkJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnb2JqLAo+ICAJCQkJCWludCBmbGFncyk7Cj4gLWV4 dGVybiBpbnQgcmFkZW9uX2dldF9jcnRjX3NjYW5vdXRwb3Moc3RydWN0IGRybV9kZXZpY2UgKmRl diwgaW50IGNydGMsCj4gLQkJCQkgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MsCj4gLQkJCQkgICAg ICBpbnQgKnZwb3MsIGludCAqaHBvcywKPiArZXh0ZXJuIGludCByYWRlb25fZ2V0X2NydGNfc2Nh bm91dHBvcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgY3J0YywKPiArCQkJ CSAgICAgIHVuc2lnbmVkIGludCBmbGFncywgaW50ICp2cG9zLCBpbnQgKmhwb3MsCj4gIAkJCQkg ICAgICBrdGltZV90ICpzdGltZSwga3RpbWVfdCAqZXRpbWUsCj4gIAkJCQkgICAgICBjb25zdCBz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSk7Cj4gIGV4dGVybiBib29sIHJhZGVvbl9pc19w eChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb25fZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kcnYu aAo+IGluZGV4IDQ2YmQzOTM4MjgyYy4uMGNhYWZjN2E2ZTE3IDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yYWRlb25fZHJ2LmgKPiBAQCAtNDA0LDkgKzQwNCw5IEBAIGV4dGVybiBpbnQgcmFkZW9u X2lycV9lbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1f ZmlsZSAqCj4gIGV4dGVybiBpbnQgcmFkZW9uX2lycV93YWl0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKPiAgCj4gIGV4dGVy biB2b2lkIHJhZGVvbl9kb19yZWxlYXNlKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KTsKPiAtZXh0 ZXJuIHUzMiByYWRlb25fZ2V0X3ZibGFua19jb3VudGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IGludCBjcnRjKTsKPiAtZXh0ZXJuIGludCByYWRlb25fZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCBpbnQgY3J0Yyk7Cj4gLWV4dGVybiB2b2lkIHJhZGVvbl9kaXNhYmxlX3Zi bGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0Yyk7Cj4gK2V4dGVybiB1MzIgcmFk ZW9uX2dldF92YmxhbmtfY291bnRlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBp bnQgcGlwZSk7Cj4gK2V4dGVybiBpbnQgcmFkZW9uX2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpOwo+ICtleHRlcm4gdm9pZCByYWRlb25fZGlz YWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpOwo+ ICBleHRlcm4gaXJxcmV0dXJuX3QgcmFkZW9uX2RyaXZlcl9pcnFfaGFuZGxlcihpbnQgaXJxLCB2 b2lkICphcmcpOwo+ICBleHRlcm4gdm9pZCByYWRlb25fZHJpdmVyX2lycV9wcmVpbnN0YWxsKHN0 cnVjdCBkcm1fZGV2aWNlICogZGV2KTsKPiAgZXh0ZXJuIGludCByYWRlb25fZHJpdmVyX2lycV9w b3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25faXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl9pcnEuYwo+IGluZGV4IDI0NGIxOWJhYjJlNy4uNjg4YWZiNjJmN2M0IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2lycS5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yYWRlb25faXJxLmMKPiBAQCAtNjIsMTIgKzYyLDEyIEBAIHN0YXRpYyB2 b2lkIHI1MDBfdmJsX2lycV9zZXRfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIG1h c2ssIGludCBzdGF0ZSkKPiAgCQlSQURFT05fV1JJVEUoUjUwMF9EeE1PREVfSU5UX01BU0ssIGRl dl9wcml2LT5yNTAwX2Rpc3BfaXJxX3JlZyk7Cj4gIH0KPiAgCj4gLWludCByYWRlb25fZW5hYmxl X3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0YykKPiAraW50IHJhZGVvbl9l bmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQo+ ICB7Cj4gIAlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRl Owo+ICAKPiAgCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA+PSBD SElQX1JTNjAwKSB7Cj4gLQkJc3dpdGNoIChjcnRjKSB7Cj4gKwkJc3dpdGNoIChwaXBlKSB7Cj4g IAkJY2FzZSAwOgo+ICAJCQlyNTAwX3ZibF9pcnFfc2V0X3N0YXRlKGRldiwgUjUwMF9EMU1PREVf SU5UX01BU0ssIDEpOwo+ICAJCQlicmVhazsKPiBAQCAtNzUsMTIgKzc1LDEyIEBAIGludCByYWRl b25fZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0YykKPiAgCQkJ cjUwMF92YmxfaXJxX3NldF9zdGF0ZShkZXYsIFI1MDBfRDJNT0RFX0lOVF9NQVNLLCAxKTsKPiAg CQkJYnJlYWs7Cj4gIAkJZGVmYXVsdDoKPiAtCQkJRFJNX0VSUk9SKCJ0cmllZCB0byBlbmFibGUg dmJsYW5rIG9uIG5vbi1leGlzdGVudCBjcnRjICVkXG4iLAo+IC0JCQkJICBjcnRjKTsKPiArCQkJ RFJNX0VSUk9SKCJ0cmllZCB0byBlbmFibGUgdmJsYW5rIG9uIG5vbi1leGlzdGVudCBjcnRjICV1 XG4iLAo+ICsJCQkJICBwaXBlKTsKPiAgCQkJcmV0dXJuIC1FSU5WQUw7Cj4gIAkJfQo+ICAJfSBl bHNlIHsKPiAtCQlzd2l0Y2ggKGNydGMpIHsKPiArCQlzd2l0Y2ggKHBpcGUpIHsKPiAgCQljYXNl IDA6Cj4gIAkJCXJhZGVvbl9pcnFfc2V0X3N0YXRlKGRldiwgUkFERU9OX0NSVENfVkJMQU5LX01B U0ssIDEpOwo+ICAJCQlicmVhazsKPiBAQCAtODgsOCArODgsOCBAQCBpbnQgcmFkZW9uX2VuYWJs ZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNydGMpCj4gIAkJCXJhZGVvbl9p cnFfc2V0X3N0YXRlKGRldiwgUkFERU9OX0NSVEMyX1ZCTEFOS19NQVNLLCAxKTsKPiAgCQkJYnJl YWs7Cj4gIAkJZGVmYXVsdDoKPiAtCQkJRFJNX0VSUk9SKCJ0cmllZCB0byBlbmFibGUgdmJsYW5r IG9uIG5vbi1leGlzdGVudCBjcnRjICVkXG4iLAo+IC0JCQkJICBjcnRjKTsKPiArCQkJRFJNX0VS Uk9SKCJ0cmllZCB0byBlbmFibGUgdmJsYW5rIG9uIG5vbi1leGlzdGVudCBjcnRjICV1XG4iLAo+ ICsJCQkJICBwaXBlKTsKPiAgCQkJcmV0dXJuIC1FSU5WQUw7Cj4gIAkJfQo+ICAJfQo+IEBAIC05 NywxMiArOTcsMTIgQEAgaW50IHJhZGVvbl9lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIGludCBjcnRjKQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLXZvaWQgcmFkZW9uX2Rp c2FibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjKQo+ICt2b2lkIHJh ZGVvbl9kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQg cGlwZSkKPiAgewo+ICAJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKPiAgCj4gIAlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFT SykgPj0gQ0hJUF9SUzYwMCkgewo+IC0JCXN3aXRjaCAoY3J0Yykgewo+ICsJCXN3aXRjaCAocGlw ZSkgewo+ICAJCWNhc2UgMDoKPiAgCQkJcjUwMF92YmxfaXJxX3NldF9zdGF0ZShkZXYsIFI1MDBf RDFNT0RFX0lOVF9NQVNLLCAwKTsKPiAgCQkJYnJlYWs7Cj4gQEAgLTExMCwxMiArMTEwLDEyIEBA IHZvaWQgcmFkZW9uX2Rpc2FibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBj cnRjKQo+ICAJCQlyNTAwX3ZibF9pcnFfc2V0X3N0YXRlKGRldiwgUjUwMF9EMk1PREVfSU5UX01B U0ssIDApOwo+ICAJCQlicmVhazsKPiAgCQlkZWZhdWx0Ogo+IC0JCQlEUk1fRVJST1IoInRyaWVk IHRvIGVuYWJsZSB2Ymxhbmsgb24gbm9uLWV4aXN0ZW50IGNydGMgJWRcbiIsCj4gLQkJCQkgIGNy dGMpOwo+ICsJCQlEUk1fRVJST1IoInRyaWVkIHRvIGVuYWJsZSB2Ymxhbmsgb24gbm9uLWV4aXN0 ZW50IGNydGMgJXVcbiIsCj4gKwkJCQkgIHBpcGUpOwo+ICAJCQlicmVhazsKPiAgCQl9Cj4gIAl9 IGVsc2Ugewo+IC0JCXN3aXRjaCAoY3J0Yykgewo+ICsJCXN3aXRjaCAocGlwZSkgewo+ICAJCWNh c2UgMDoKPiAgCQkJcmFkZW9uX2lycV9zZXRfc3RhdGUoZGV2LCBSQURFT05fQ1JUQ19WQkxBTktf TUFTSywgMCk7Cj4gIAkJCWJyZWFrOwo+IEBAIC0xMjMsOCArMTIzLDggQEAgdm9pZCByYWRlb25f ZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNydGMpCj4gIAkJCXJh ZGVvbl9pcnFfc2V0X3N0YXRlKGRldiwgUkFERU9OX0NSVEMyX1ZCTEFOS19NQVNLLCAwKTsKPiAg CQkJYnJlYWs7Cj4gIAkJZGVmYXVsdDoKPiAtCQkJRFJNX0VSUk9SKCJ0cmllZCB0byBlbmFibGUg dmJsYW5rIG9uIG5vbi1leGlzdGVudCBjcnRjICVkXG4iLAo+IC0JCQkJICBjcnRjKTsKPiArCQkJ RFJNX0VSUk9SKCJ0cmllZCB0byBlbmFibGUgdmJsYW5rIG9uIG5vbi1leGlzdGVudCBjcnRjICV1 XG4iLAo+ICsJCQkJICBwaXBlKTsKPiAgCQkJYnJlYWs7Cj4gIAkJfQo+ICAJfQo+IEBAIC0yNTUs NyArMjU1LDcgQEAgc3RhdGljIGludCByYWRlb25fd2FpdF9pcnEoc3RydWN0IGRybV9kZXZpY2Ug KiBkZXYsIGludCBzd2lfbnIpCj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4gIAo+IC11MzIgcmFkZW9u X2dldF92YmxhbmtfY291bnRlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0YykKPiAr dTMyIHJhZGVvbl9nZXRfdmJsYW5rX2NvdW50ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5z aWduZWQgaW50IHBpcGUpCj4gIHsKPiAgCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9 IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAo+IEBAIC0yNjQsMTggKzI2NCwxOCBAQCB1MzIgcmFkZW9u X2dldF92YmxhbmtfY291bnRlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0YykKPiAg CQlyZXR1cm4gLUVJTlZBTDsKPiAgCX0KPiAgCj4gLQlpZiAoY3J0YyA8IDAgfHwgY3J0YyA+IDEp IHsKPiAtCQlEUk1fRVJST1IoIkludmFsaWQgY3J0YyAlZFxuIiwgY3J0Yyk7Cj4gKwlpZiAocGlw ZSA+IDEpIHsKPiArCQlEUk1fRVJST1IoIkludmFsaWQgY3J0YyAldVxuIiwgcGlwZSk7Cj4gIAkJ cmV0dXJuIC1FSU5WQUw7Cj4gIAl9Cj4gIAo+ICAJaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURF T05fRkFNSUxZX01BU0spID49IENISVBfUlM2MDApIHsKPiAtCQlpZiAoY3J0YyA9PSAwKQo+ICsJ CWlmIChwaXBlID09IDApCj4gIAkJCXJldHVybiBSQURFT05fUkVBRChSNTAwX0QxQ1JUQ19GUkFN RV9DT1VOVCk7Cj4gIAkJZWxzZQo+ICAJCQlyZXR1cm4gUkFERU9OX1JFQUQoUjUwMF9EMkNSVENf RlJBTUVfQ09VTlQpOwo+ICAJfSBlbHNlIHsKPiAtCQlpZiAoY3J0YyA9PSAwKQo+ICsJCWlmIChw aXBlID09IDApCj4gIAkJCXJldHVybiBSQURFT05fUkVBRChSQURFT05fQ1JUQ19DUk5UX0ZSQU1F KTsKPiAgCQllbHNlCj4gIAkJCXJldHVybiBSQURFT05fUkVBRChSQURFT05fQ1JUQzJfQ1JOVF9G UkFNRSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX21vZGUu aCBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX21vZGUuaAo+IGluZGV4IDIzMTdkMDRm OGEwOS4uZGUxOGYwNjY4YmVhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uX21vZGUuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX21vZGUu aAo+IEBAIC04NzQsOSArODc0LDggQEAgZXh0ZXJuIGludCByYWRlb25fY3J0Y19jdXJzb3JfbW92 ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAkJCQkgICBpbnQgeCwgaW50IHkpOwo+ICBleHRl cm4gdm9pZCByYWRlb25fY3Vyc29yX3Jlc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Cj4gIAo+ IC1leHRlcm4gaW50IHJhZGVvbl9nZXRfY3J0Y19zY2Fub3V0cG9zKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIGludCBjcnRjLAo+IC0JCQkJICAgICAgdW5zaWduZWQgaW50IGZsYWdzLAo+IC0JCQkJ ICAgICAgaW50ICp2cG9zLCBpbnQgKmhwb3MsCj4gK2V4dGVybiBpbnQgcmFkZW9uX2dldF9jcnRj X3NjYW5vdXRwb3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUsCj4g KwkJCQkgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MsIGludCAqdnBvcywgaW50ICpocG9zLAo+ICAJ CQkJICAgICAga3RpbWVfdCAqc3RpbWUsIGt0aW1lX3QgKmV0aW1lLAo+ICAJCQkJICAgICAgY29u c3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9yY2Fy LWR1L3JjYXJfZHVfZHJ2LmMKPiBpbmRleCA3ODBjYTExNTEyYmEuLmJiODA2YzRjMmU2NSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2Rydi5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9kcnYuYwo+IEBAIC0yMjEsMjAgKzIyMSwy MCBAQCBzdGF0aWMgdm9pZCByY2FyX2R1X2xhc3RjbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQo+ICAJZHJtX2ZiZGV2X2NtYV9yZXN0b3JlX21vZGUocmNkdS0+ZmJkZXYpOwo+ICB9Cj4gIAo+ IC1zdGF0aWMgaW50IHJjYXJfZHVfZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCBpbnQgY3J0YykKPiArc3RhdGljIGludCByY2FyX2R1X2VuYWJsZV92Ymxhbmsoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCj4gIHsKPiAgCXN0cnVjdCByY2FyX2R1 X2RldmljZSAqcmNkdSA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAo+IC0JcmNhcl9kdV9jcnRjX2Vu YWJsZV92YmxhbmsoJnJjZHUtPmNydGNzW2NydGNdLCB0cnVlKTsKPiArCXJjYXJfZHVfY3J0Y19l bmFibGVfdmJsYW5rKCZyY2R1LT5jcnRjc1twaXBlXSwgdHJ1ZSk7Cj4gIAo+ICAJcmV0dXJuIDA7 Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIHJjYXJfZHVfZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgaW50IGNydGMpCj4gK3N0YXRpYyB2b2lkIHJjYXJfZHVfZGlzYWJsZV92 Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCj4gIHsKPiAg CXN0cnVjdCByY2FyX2R1X2RldmljZSAqcmNkdSA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAo+IC0J cmNhcl9kdV9jcnRjX2VuYWJsZV92YmxhbmsoJnJjZHUtPmNydGNzW2NydGNdLCBmYWxzZSk7Cj4g KwlyY2FyX2R1X2NydGNfZW5hYmxlX3ZibGFuaygmcmNkdS0+Y3J0Y3NbcGlwZV0sIGZhbHNlKTsK PiAgfQo+ICAKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcmNhcl9kdV9m b3BzID0gewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBf ZHJtX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9kcnYuYwo+ IGluZGV4IDlhMGMyOTExMjcyYS4uMzJjNjA5OGE5OWQxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZHJ2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2Rydi5jCj4gQEAgLTEwMyw3ICsxMDMsOCBAQCBzdGF0 aWMgc3RydWN0IGRybV9jcnRjICpyb2NrY2hpcF9jcnRjX2Zyb21fcGlwZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZHJtLAo+ICAJcmV0dXJuIE5VTEw7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgcm9ja2No aXBfZHJtX2NydGNfZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgcGlw ZSkKPiArc3RhdGljIGludCByb2NrY2hpcF9kcm1fY3J0Y19lbmFibGVfdmJsYW5rKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCj4gKwkJCQkJICAgdW5zaWduZWQgaW50IHBpcGUpCj4gIHsKPiAgCXN0 cnVjdCByb2NrY2hpcF9kcm1fcHJpdmF0ZSAqcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAlz dHJ1Y3QgZHJtX2NydGMgKmNydGMgPSByb2NrY2hpcF9jcnRjX2Zyb21fcGlwZShkZXYsIHBpcGUp Owo+IEBAIC0xMTUsNyArMTE2LDggQEAgc3RhdGljIGludCByb2NrY2hpcF9kcm1fY3J0Y19lbmFi bGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwaXBlKQo+ICAJcmV0dXJuIDA7 Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIHJvY2tjaGlwX2RybV9jcnRjX2Rpc2FibGVfdmJsYW5r KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwaXBlKQo+ICtzdGF0aWMgdm9pZCByb2NrY2hp cF9kcm1fY3J0Y19kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICsJCQkJ CSAgICAgdW5zaWduZWQgaW50IHBpcGUpCj4gIHsKPiAgCXN0cnVjdCByb2NrY2hpcF9kcm1fcHJp dmF0ZSAqcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGMg PSByb2NrY2hpcF9jcnRjX2Zyb21fcGlwZShkZXYsIHBpcGUpOwo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vc2htb2JpbGUvc2htb2JfZHJtX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3No bW9iaWxlL3NobW9iX2RybV9kcnYuYwo+IGluZGV4IDY2NjMyMWRlN2I5OS4uY2EyZjkxOGE2NTg3 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zaG1vYmlsZS9zaG1vYl9kcm1fZHJ2LmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vc2htb2JpbGUvc2htb2JfZHJtX2Rydi5jCj4gQEAgLTIz MSw3ICsyMzEsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3Qgc2htb2JfZHJtX2lycShpbnQgaXJxLCB2 b2lkICphcmcpCj4gIAlyZXR1cm4gSVJRX0hBTkRMRUQ7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQg c2htb2JfZHJtX2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNydGMp Cj4gK3N0YXRpYyBpbnQgc2htb2JfZHJtX2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdW5zaWduZWQgaW50IHBpcGUpCj4gIHsKPiAgCXN0cnVjdCBzaG1vYl9kcm1fZGV2aWNl ICpzZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCj4gQEAgLTI0MCw3ICsyNDAsNyBAQCBzdGF0 aWMgaW50IHNobW9iX2RybV9lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGlu dCBjcnRjKQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIHNobW9iX2RybV9k aXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0YykKPiArc3RhdGlj IHZvaWQgc2htb2JfZHJtX2Rpc2FibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVu c2lnbmVkIGludCBwaXBlKQo+ICB7Cj4gIAlzdHJ1Y3Qgc2htb2JfZHJtX2RldmljZSAqc2RldiA9 IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3Rp L3N0aV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9jcnRjLmMKPiBpbmRleCA4MWM1 NmVhOWQ4N2YuLmM2ZmI4ZGVlMTFkZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vc3Rp L3N0aV9jcnRjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9jcnRjLmMKPiBAQCAt Mjk5LDcgKzI5OSw3IEBAIGludCBzdGlfY3J0Y192YmxhbmtfY2Ioc3RydWN0IG5vdGlmaWVyX2Js b2NrICpuYiwKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IC1pbnQgc3RpX2NydGNfZW5hYmxlX3Zi bGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0YykKPiAraW50IHN0aV9jcnRjX2Vu YWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCj4g IHsKPiAgCXN0cnVjdCBzdGlfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ ICAJc3RydWN0IHN0aV9jb21wb3NpdG9yICpjb21wbyA9IGRldl9wcml2LT5jb21wbzsKPiBAQCAt MzA3LDkgKzMwNyw5IEBAIGludCBzdGlfY3J0Y19lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIGludCBjcnRjKQo+ICAKPiAgCURSTV9ERUJVR19EUklWRVIoIlxuIik7Cj4gIAo+ IC0JaWYgKHN0aV92dGdfcmVnaXN0ZXJfY2xpZW50KGNydGMgPT0gU1RJX01JWEVSX01BSU4gPwo+ ICsJaWYgKHN0aV92dGdfcmVnaXN0ZXJfY2xpZW50KHBpcGUgPT0gU1RJX01JWEVSX01BSU4gPwo+ ICAJCQljb21wby0+dnRnX21haW4gOiBjb21wby0+dnRnX2F1eCwKPiAtCQkJdnRnX3ZibGFua19u YiwgY3J0YykpIHsKPiArCQkJdnRnX3ZibGFua19uYiwgcGlwZSkpIHsKPiAgCQlEUk1fRVJST1Io IkNhbm5vdCByZWdpc3RlciBWVEcgbm90aWZpZXJcbiIpOwo+ICAJCXJldHVybiAtRUlOVkFMOwo+ ICAJfQo+IEBAIC0zMTgsNyArMzE4LDcgQEAgaW50IHN0aV9jcnRjX2VuYWJsZV92Ymxhbmsoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNydGMpCj4gIH0KPiAgRVhQT1JUX1NZTUJPTChzdGlf Y3J0Y19lbmFibGVfdmJsYW5rKTsKPiAgCj4gLXZvaWQgc3RpX2NydGNfZGlzYWJsZV92Ymxhbmso c3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYsIGludCBjcnRjKQo+ICt2b2lkIHN0aV9jcnRjX2Rp c2FibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2LCB1bnNpZ25lZCBpbnQgcGlw ZSkKPiAgewo+ICAJc3RydWN0IHN0aV9wcml2YXRlICpwcml2ID0gZHJtX2Rldi0+ZGV2X3ByaXZh dGU7Cj4gIAlzdHJ1Y3Qgc3RpX2NvbXBvc2l0b3IgKmNvbXBvID0gcHJpdi0+Y29tcG87Cj4gQEAg LTMyNiwxNCArMzI2LDE0IEBAIHZvaWQgc3RpX2NydGNfZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRy bV9kZXZpY2UgKmRybV9kZXYsIGludCBjcnRjKQo+ICAKPiAgCURSTV9ERUJVR19EUklWRVIoIlxu Iik7Cj4gIAo+IC0JaWYgKHN0aV92dGdfdW5yZWdpc3Rlcl9jbGllbnQoY3J0YyA9PSBTVElfTUlY RVJfTUFJTiA/Cj4gKwlpZiAoc3RpX3Z0Z191bnJlZ2lzdGVyX2NsaWVudChwaXBlID09IFNUSV9N SVhFUl9NQUlOID8KPiAgCQkJY29tcG8tPnZ0Z19tYWluIDogY29tcG8tPnZ0Z19hdXgsIHZ0Z192 YmxhbmtfbmIpKQo+ICAJCURSTV9ERUJVR19EUklWRVIoIldhcm5pbmc6IGNhbm5vdCB1bnJlZ2lz dGVyIFZURyBub3RpZmllclxuIik7Cj4gIAo+ICAJLyogZnJlZSB0aGUgcmVzb3VyY2VzIG9mIHRo ZSBwZW5kaW5nIHJlcXVlc3RzICovCj4gLQlpZiAoY29tcG8tPm1peGVyW2NydGNdLT5wZW5kaW5n X2V2ZW50KSB7Cj4gLQkJZHJtX3ZibGFua19wdXQoZHJtX2RldiwgY3J0Yyk7Cj4gLQkJY29tcG8t Pm1peGVyW2NydGNdLT5wZW5kaW5nX2V2ZW50ID0gTlVMTDsKPiArCWlmIChjb21wby0+bWl4ZXJb cGlwZV0tPnBlbmRpbmdfZXZlbnQpIHsKPiArCQlkcm1fdmJsYW5rX3B1dChkcm1fZGV2LCBwaXBl KTsKPiArCQljb21wby0+bWl4ZXJbcGlwZV0tPnBlbmRpbmdfZXZlbnQgPSBOVUxMOwo+ICAJfQo+ ICB9Cj4gIEVYUE9SVF9TWU1CT0woc3RpX2NydGNfZGlzYWJsZV92YmxhbmspOwo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9jcnRjLmggYi9kcml2ZXJzL2dwdS9kcm0vc3Rp L3N0aV9jcnRjLmgKPiBpbmRleCA1MTk2M2U2ZGRiZTcuLjNmMmQ4OWEzNjM0ZCAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9jcnRjLmgKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vc3RpL3N0aV9jcnRjLmgKPiBAQCAtMTMsOCArMTMsOCBAQCBzdHJ1Y3Qgc3RpX21peGVyOwo+ ICAKPiAgaW50IHN0aV9jcnRjX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYsIHN0cnVj dCBzdGlfbWl4ZXIgKm1peGVyLAo+ICAJCSAgc3RydWN0IGRybV9wbGFuZSAqcHJpbWFyeSwgc3Ry dWN0IGRybV9wbGFuZSAqY3Vyc29yKTsKPiAtaW50IHN0aV9jcnRjX2VuYWJsZV92Ymxhbmsoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNydGMpOwo+IC12b2lkIHN0aV9jcnRjX2Rpc2FibGVf dmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjKTsKPiAraW50IHN0aV9jcnRj X2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUp Owo+ICt2b2lkIHN0aV9jcnRjX2Rpc2FibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHVuc2lnbmVkIGludCBwaXBlKTsKPiAgaW50IHN0aV9jcnRjX3ZibGFua19jYihzdHJ1Y3Qgbm90 aWZpZXJfYmxvY2sgKm5iLAo+ICAJCSAgICAgICB1bnNpZ25lZCBsb25nIGV2ZW50LCB2b2lkICpk YXRhKTsKPiAgYm9vbCBzdGlfY3J0Y19pc19tYWluKHN0cnVjdCBkcm1fY3J0YyAqZHJtX2NydGMp Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZHJtLmMgYi9kcml2ZXJzL2dw dS9kcm0vdGVncmEvZHJtLmMKPiBpbmRleCAyNDg2YmMyNGJmZjYuLjc1OWU2YWY5MWU1OSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZHJtLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vdGVncmEvZHJtLmMKPiBAQCAtODIyLDcgKzgyMiw4IEBAIHN0YXRpYyBzdHJ1Y3QgZHJt X2NydGMgKnRlZ3JhX2NydGNfZnJvbV9waXBlKHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sCj4gIAly ZXR1cm4gTlVMTDsKPiAgfQo+ICAKPiAtc3RhdGljIHUzMiB0ZWdyYV9kcm1fZ2V0X3ZibGFua19j b3VudGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sIGludCBwaXBlKQo+ICtzdGF0aWMgdTMyIHRl Z3JhX2RybV9nZXRfdmJsYW5rX2NvdW50ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRybSwKPiArCQkJ CQl1bnNpZ25lZCBpbnQgcGlwZSkKPiAgewo+ICAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gdGVn cmFfY3J0Y19mcm9tX3BpcGUoZHJtLCBwaXBlKTsKPiAgCXN0cnVjdCB0ZWdyYV9kYyAqZGMgPSB0 b190ZWdyYV9kYyhjcnRjKTsKPiBAQCAtODMzLDcgKzgzNCw3IEBAIHN0YXRpYyB1MzIgdGVncmFf ZHJtX2dldF92YmxhbmtfY291bnRlcihzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLCBpbnQgcGlwZSkK PiAgCXJldHVybiB0ZWdyYV9kY19nZXRfdmJsYW5rX2NvdW50ZXIoZGMpOwo+ICB9Cj4gIAo+IC1z dGF0aWMgaW50IHRlZ3JhX2RybV9lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkcm0s IGludCBwaXBlKQo+ICtzdGF0aWMgaW50IHRlZ3JhX2RybV9lbmFibGVfdmJsYW5rKHN0cnVjdCBk cm1fZGV2aWNlICpkcm0sIHVuc2lnbmVkIGludCBwaXBlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMgPSB0ZWdyYV9jcnRjX2Zyb21fcGlwZShkcm0sIHBpcGUpOwo+ICAJc3RydWN0IHRl Z3JhX2RjICpkYyA9IHRvX3RlZ3JhX2RjKGNydGMpOwo+IEBAIC04NDYsNyArODQ3LDcgQEAgc3Rh dGljIGludCB0ZWdyYV9kcm1fZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLCBp bnQgcGlwZSkKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCB0ZWdyYV9kcm1f ZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRybSwgaW50IHBpcGUpCj4gK3N0YXRp YyB2b2lkIHRlZ3JhX2RybV9kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLCB1 bnNpZ25lZCBpbnQgcGlwZSkKPiAgewo+ICAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gdGVncmFf Y3J0Y19mcm9tX3BpcGUoZHJtLCBwaXBlKTsKPiAgCXN0cnVjdCB0ZWdyYV9kYyAqZGMgPSB0b190 ZWdyYV9kYyhjcnRjKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxj ZGNfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY19kcnYuYwo+IGluZGV4IDBm MjgzYTNiOTMyYy4uYTViOGY1ZDM5MzExIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90 aWxjZGMvdGlsY2RjX2Rydi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNf ZHJ2LmMKPiBAQCAtNDI1LDEzICs0MjUsMTMgQEAgc3RhdGljIHZvaWQgZW5hYmxlX3ZibGFuayhz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBib29sIGVuYWJsZSkKPiAgCQl0aWxjZGNfY2xlYXIoZGV2 LCByZWcsIG1hc2spOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IHRpbGNkY19lbmFibGVfdmJsYW5r KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjKQo+ICtzdGF0aWMgaW50IHRpbGNkY19l bmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQo+ ICB7Cj4gIAllbmFibGVfdmJsYW5rKGRldiwgdHJ1ZSk7Cj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAK PiAtc3RhdGljIHZvaWQgdGlsY2RjX2Rpc2FibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIGludCBjcnRjKQo+ICtzdGF0aWMgdm9pZCB0aWxjZGNfZGlzYWJsZV92Ymxhbmsoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCj4gIHsKPiAgCWVuYWJsZV92Ymxh bmsoZGV2LCBmYWxzZSk7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZpYS92 aWFfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9kcnYuaAo+IGluZGV4IGVmOGM1MDBi NGEwMC4uNjQ0MDkzZjUwNDZjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92aWEvdmlh X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfZHJ2LmgKPiBAQCAtMTM2LDkg KzEzNiw5IEBAIGV4dGVybiBpbnQgdmlhX2luaXRfY29udGV4dChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBpbnQgY29udGV4dCk7Cj4gIGV4dGVybiBpbnQgdmlhX2ZpbmFsX2NvbnRleHQoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgaW50IGNvbnRleHQpOwo+ICAKPiAgZXh0ZXJuIGludCB2aWFfZG9f Y2xlYW51cF9tYXAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gLWV4dGVybiB1MzIgdmlhX2dl dF92YmxhbmtfY291bnRlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0Yyk7Cj4gLWV4 dGVybiBpbnQgdmlhX2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNy dGMpOwo+IC1leHRlcm4gdm9pZCB2aWFfZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgaW50IGNydGMpOwo+ICtleHRlcm4gdTMyIHZpYV9nZXRfdmJsYW5rX2NvdW50ZXIoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpOwo+ICtleHRlcm4gaW50IHZp YV9lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBl KTsKPiArZXh0ZXJuIHZvaWQgdmlhX2Rpc2FibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHVuc2lnbmVkIGludCBwaXBlKTsKPiAgCj4gIGV4dGVybiBpcnFyZXR1cm5fdCB2aWFfZHJp dmVyX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZyk7Cj4gIGV4dGVybiB2b2lkIHZpYV9k cml2ZXJfaXJxX3ByZWluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS92aWEvdmlhX2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL3ZpYS92 aWFfaXJxLmMKPiBpbmRleCAxMzE5NDMzODE2ZDMuLmVhODE3MmM3NDdhMiAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9pcnEuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92 aWEvdmlhX2lycS5jCj4gQEAgLTk1LDEwICs5NSwxMSBAQCBzdGF0aWMgdW5zaWduZWQgdGltZV9k aWZmKHN0cnVjdCB0aW1ldmFsICpub3csIHN0cnVjdCB0aW1ldmFsICp0aGVuKQo+ICAJCTEwMDAw MDAgLSAodGhlbi0+dHZfdXNlYyAtIG5vdy0+dHZfdXNlYyk7Cj4gIH0KPiAgCj4gLXUzMiB2aWFf Z2V0X3ZibGFua19jb3VudGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjKQo+ICt1 MzIgdmlhX2dldF92YmxhbmtfY291bnRlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25l ZCBpbnQgcGlwZSkKPiAgewo+ICAJZHJtX3ZpYV9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKPiAtCWlmIChjcnRjICE9IDApCj4gKwo+ICsJaWYgKHBpcGUgIT0gMCkKPiAg CQlyZXR1cm4gMDsKPiAgCj4gIAlyZXR1cm4gYXRvbWljX3JlYWQoJmRldl9wcml2LT52YmxfcmVj ZWl2ZWQpOwo+IEBAIC0xNzAsMTMgKzE3MSwxMyBAQCBzdGF0aWMgX19pbmxpbmVfXyB2b2lkIHZp YWRydl9hY2tub3dsZWRnZV9pcnFzKGRybV92aWFfcHJpdmF0ZV90ICpkZXZfcHJpdikKPiAgCX0K PiAgfQo+ICAKPiAtaW50IHZpYV9lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IGludCBjcnRjKQo+ICtpbnQgdmlhX2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdW5zaWduZWQgaW50IHBpcGUpCj4gIHsKPiAgCWRybV92aWFfcHJpdmF0ZV90ICpkZXZfcHJp diA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAl1MzIgc3RhdHVzOwo+ICAKPiAtCWlmIChjcnRjICE9 IDApIHsKPiAtCQlEUk1fRVJST1IoIiVzOiAgYmFkIGNydGMgJWRcbiIsIF9fZnVuY19fLCBjcnRj KTsKPiArCWlmIChwaXBlICE9IDApIHsKPiArCQlEUk1fRVJST1IoIiVzOiAgYmFkIGNydGMgJXVc biIsIF9fZnVuY19fLCBwaXBlKTsKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgCX0KPiAgCj4gQEAg LTE4OSw3ICsxOTAsNyBAQCBpbnQgdmlhX2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgaW50IGNydGMpCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiAtdm9pZCB2aWFfZGlzYWJs ZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNydGMpCj4gK3ZvaWQgdmlhX2Rp c2FibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQo+ ICB7Cj4gIAlkcm1fdmlhX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ ICAJdTMyIHN0YXR1czsKPiBAQCAtMjAwLDggKzIwMSw4IEBAIHZvaWQgdmlhX2Rpc2FibGVfdmJs YW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjKQo+ICAJVklBX1dSSVRFOCgweDgz ZDQsIDB4MTEpOwo+ICAJVklBX1dSSVRFOCgweDgzZDUsIFZJQV9SRUFEOCgweDgzZDUpICYgfjB4 MzApOwo+ICAKPiAtCWlmIChjcnRjICE9IDApCj4gLQkJRFJNX0VSUk9SKCIlczogIGJhZCBjcnRj ICVkXG4iLCBfX2Z1bmNfXywgY3J0Yyk7Cj4gKwlpZiAocGlwZSAhPSAwKQo+ICsJCURSTV9FUlJP UigiJXM6ICBiYWQgY3J0YyAldVxuIiwgX19mdW5jX18sIHBpcGUpOwo+ICB9Cj4gIAo+ICBzdGF0 aWMgaW50Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5o IGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmgKPiBpbmRleCA2ZDAyZGU2ZGMz NmMuLmE0YTE4MDdhMzBjYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Zt d2dmeF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oCj4g QEAgLTkxMyw5ICs5MTMsOSBAQCB2b2lkIHZtd19rbXNfaWRsZV93b3JrcXVldWVzKHN0cnVjdCB2 bXdfbWFzdGVyICp2bWFzdGVyKTsKPiAgYm9vbCB2bXdfa21zX3ZhbGlkYXRlX21vZGVfdnJhbShz dHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQkJdWludDMyX3QgcGl0Y2gsCj4gIAkJ CQl1aW50MzJfdCBoZWlnaHQpOwo+IC11MzIgdm13X2dldF92YmxhbmtfY291bnRlcihzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0Yyk7Cj4gLWludCB2bXdfZW5hYmxlX3ZibGFuayhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0Yyk7Cj4gLXZvaWQgdm13X2Rpc2FibGVfdmJsYW5r KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjKTsKPiArdTMyIHZtd19nZXRfdmJsYW5r X2NvdW50ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpOwo+ICtp bnQgdm13X2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50 IHBpcGUpOwo+ICt2b2lkIHZtd19kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB1bnNpZ25lZCBpbnQgcGlwZSk7Cj4gIGludCB2bXdfa21zX3ByZXNlbnQoc3RydWN0IHZtd19w cml2YXRlICpkZXZfcHJpdiwKPiAgCQkgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCj4g IAkJICAgIHN0cnVjdCB2bXdfZnJhbWVidWZmZXIgKnZmYiwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Zt d2dmeF9rbXMuYwo+IGluZGV4IDYxZmI3ZjNkZTMxMS4uMTZjNDI5OWYyYmUyIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMKPiBAQCAtMTI2Myw3ICsxMjYzLDcgQEAgYm9vbCB2 bXdfa21zX3ZhbGlkYXRlX21vZGVfdnJhbShzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAo+ ICAvKioKPiAgICogRnVuY3Rpb24gY2FsbGVkIGJ5IERSTSBjb2RlIGNhbGxlZCB3aXRoIHZibF9s b2NrIGhlbGQuCj4gICAqLwo+IC11MzIgdm13X2dldF92YmxhbmtfY291bnRlcihzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCBpbnQgY3J0YykKPiArdTMyIHZtd19nZXRfdmJsYW5rX2NvdW50ZXIoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCj4gIHsKPiAgCXJldHVybiAw Owo+ICB9Cj4gQEAgLTEyNzEsNyArMTI3MSw3IEBAIHUzMiB2bXdfZ2V0X3ZibGFua19jb3VudGVy KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjKQo+ICAvKioKPiAgICogRnVuY3Rpb24g Y2FsbGVkIGJ5IERSTSBjb2RlIGNhbGxlZCB3aXRoIHZibF9sb2NrIGhlbGQuCj4gICAqLwo+IC1p bnQgdm13X2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNydGMpCj4g K2ludCB2bXdfZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBp bnQgcGlwZSkKPiAgewo+ICAJcmV0dXJuIC1FTk9TWVM7Cj4gIH0KPiBAQCAtMTI3OSw3ICsxMjc5 LDcgQEAgaW50IHZtd19lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBj cnRjKQo+ICAvKioKPiAgICogRnVuY3Rpb24gY2FsbGVkIGJ5IERSTSBjb2RlIGNhbGxlZCB3aXRo IHZibF9sb2NrIGhlbGQuCj4gICAqLwo+IC12b2lkIHZtd19kaXNhYmxlX3ZibGFuayhzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0YykKPiArdm9pZCB2bXdfZGlzYWJsZV92Ymxhbmsoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCj4gIHsKPiAgfQo+ICAKPiBk aWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtUC5oIGIvaW5jbHVkZS9kcm0vZHJtUC5oCj4gaW5k ZXggZTQyZTM0NTQ5ZGE4Li5hMDEzYTBlZDhlNmEgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0v ZHJtUC5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtUC5oCj4gQEAgLTQxMiw3ICs0MTIsNyBAQCBz dHJ1Y3QgZHJtX2RyaXZlciB7Cj4gIAkvKioKPiAgCSAqIGdldF92YmxhbmtfY291bnRlciAtIGdl dCByYXcgaGFyZHdhcmUgdmJsYW5rIGNvdW50ZXIKPiAgCSAqIEBkZXY6IERSTSBkZXZpY2UKPiAt CSAqIEBjcnRjOiBjb3VudGVyIHRvIGZldGNoCj4gKwkgKiBAcGlwZTogY291bnRlciB0byBmZXRj aAo+ICAJICoKPiAgCSAqIERyaXZlciBjYWxsYmFjayBmb3IgZmV0Y2hpbmcgYSByYXcgaGFyZHdh cmUgdmJsYW5rIGNvdW50ZXIgZm9yIEBjcnRjLgo+ICAJICogSWYgYSBkZXZpY2UgZG9lc24ndCBo YXZlIGEgaGFyZHdhcmUgY291bnRlciwgdGhlIGRyaXZlciBjYW4gc2ltcGx5Cj4gQEAgLTQyNiwx MiArNDI2LDEyIEBAIHN0cnVjdCBkcm1fZHJpdmVyIHsKPiAgCSAqIFJFVFVSTlMKPiAgCSAqIFJh dyB2YmxhbmsgY291bnRlciB2YWx1ZS4KPiAgCSAqLwo+IC0JdTMyICgqZ2V0X3ZibGFua19jb3Vu dGVyKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNydGMpOwo+ICsJdTMyICgqZ2V0X3Zi bGFua19jb3VudGVyKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUp Owo+ICAKPiAgCS8qKgo+ICAJICogZW5hYmxlX3ZibGFuayAtIGVuYWJsZSB2YmxhbmsgaW50ZXJy dXB0IGV2ZW50cwo+ICAJICogQGRldjogRFJNIGRldmljZQo+IC0JICogQGNydGM6IHdoaWNoIGly cSB0byBlbmFibGUKPiArCSAqIEBwaXBlOiB3aGljaCBpcnEgdG8gZW5hYmxlCj4gIAkgKgo+ICAJ ICogRW5hYmxlIHZibGFuayBpbnRlcnJ1cHRzIGZvciBAY3J0Yy4gIElmIHRoZSBkZXZpY2UgZG9l c24ndCBoYXZlCj4gIAkgKiBhIGhhcmR3YXJlIHZibGFuayBjb3VudGVyLCB0aGlzIHJvdXRpbmUg c2hvdWxkIGJlIGEgbm8tb3AsIHNpbmNlCj4gQEAgLTQ0MSwxOCArNDQxLDE4IEBAIHN0cnVjdCBk cm1fZHJpdmVyIHsKPiAgCSAqIFplcm8gb24gc3VjY2VzcywgYXBwcm9wcmlhdGUgZXJybm8gaWYg dGhlIGdpdmVuIEBjcnRjJ3MgdmJsYW5rCj4gIAkgKiBpbnRlcnJ1cHQgY2Fubm90IGJlIGVuYWJs ZWQuCj4gIAkgKi8KPiAtCWludCAoKmVuYWJsZV92YmxhbmspIChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBpbnQgY3J0Yyk7Cj4gKwlpbnQgKCplbmFibGVfdmJsYW5rKSAoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpOwo+ICAKPiAgCS8qKgo+ICAJICogZGlzYWJsZV92 YmxhbmsgLSBkaXNhYmxlIHZibGFuayBpbnRlcnJ1cHQgZXZlbnRzCj4gIAkgKiBAZGV2OiBEUk0g ZGV2aWNlCj4gLQkgKiBAY3J0Yzogd2hpY2ggaXJxIHRvIGVuYWJsZQo+ICsJICogQHBpcGU6IHdo aWNoIGlycSB0byBlbmFibGUKPiAgCSAqCj4gIAkgKiBEaXNhYmxlIHZibGFuayBpbnRlcnJ1cHRz IGZvciBAY3J0Yy4gIElmIHRoZSBkZXZpY2UgZG9lc24ndCBoYXZlCj4gIAkgKiBhIGhhcmR3YXJl IHZibGFuayBjb3VudGVyLCB0aGlzIHJvdXRpbmUgc2hvdWxkIGJlIGEgbm8tb3AsIHNpbmNlCj4g IAkgKiBpbnRlcnJ1cHRzIHdpbGwgaGF2ZSB0byBzdGF5IG9uIHRvIGtlZXAgdGhlIGNvdW50IGFj Y3VyYXRlLgo+ICAJICovCj4gLQl2b2lkICgqZGlzYWJsZV92YmxhbmspIChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCBpbnQgY3J0Yyk7Cj4gKwl2b2lkICgqZGlzYWJsZV92YmxhbmspIChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7Cj4gIAo+ICAJLyoqCj4gIAkgKiBD YWxsZWQgYnkgXGMgZHJtX2RldmljZV9pc19hZ3AuICBUeXBpY2FsbHkgdXNlZCB0byBkZXRlcm1p bmUgaWYgYQo+IEBAIC00NzQsNyArNDc0LDcgQEAgc3RydWN0IGRybV9kcml2ZXIgewo+ICAJICog b3B0aW9uYWwgYWNjdXJhdGUga3RpbWVfZ2V0IHRpbWVzdGFtcCBvZiB3aGVuIHBvc2l0aW9uIHdh cyBtZWFzdXJlZC4KPiAgCSAqCj4gIAkgKiBccGFyYW0gZGV2ICBEUk0gZGV2aWNlLgo+IC0JICog XHBhcmFtIGNydGMgSWQgb2YgdGhlIGNydGMgdG8gcXVlcnkuCj4gKwkgKiBccGFyYW0gcGlwZSBJ ZCBvZiB0aGUgY3J0YyB0byBxdWVyeS4KPiAgCSAqIFxwYXJhbSBmbGFncyBGbGFncyBmcm9tIHRo ZSBjYWxsZXIgKERSTV9DQUxMRURfRlJPTV9WQkxJUlEgb3IgMCkuCj4gIAkgKiBccGFyYW0gKnZw b3MgVGFyZ2V0IGxvY2F0aW9uIGZvciBjdXJyZW50IHZlcnRpY2FsIHNjYW5vdXQgcG9zaXRpb24u Cj4gIAkgKiBccGFyYW0gKmhwb3MgVGFyZ2V0IGxvY2F0aW9uIGZvciBjdXJyZW50IGhvcml6b250 YWwgc2Nhbm91dCBwb3NpdGlvbi4KPiBAQCAtNDk4LDkgKzQ5OCw4IEBAIHN0cnVjdCBkcm1fZHJp dmVyIHsKPiAgCSAqIGJ1dCB1bmtub3duIHNtYWxsIG51bWJlciBvZiBzY2FubGluZXMgd3J0LiBy ZWFsIHNjYW5vdXQgcG9zaXRpb24uCj4gIAkgKgo+ICAJICovCj4gLQlpbnQgKCpnZXRfc2Nhbm91 dF9wb3NpdGlvbikgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjLAo+IC0JCQkJICAg ICB1bnNpZ25lZCBpbnQgZmxhZ3MsCj4gLQkJCQkgICAgIGludCAqdnBvcywgaW50ICpocG9zLAo+ ICsJaW50ICgqZ2V0X3NjYW5vdXRfcG9zaXRpb24pIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1 bnNpZ25lZCBpbnQgcGlwZSwKPiArCQkJCSAgICAgdW5zaWduZWQgaW50IGZsYWdzLCBpbnQgKnZw b3MsIGludCAqaHBvcywKPiAgCQkJCSAgICAga3RpbWVfdCAqc3RpbWUsIGt0aW1lX3QgKmV0aW1l LAo+ICAJCQkJICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSk7Cj4gIAo+ IEBAIC01MTgsNyArNTE3LDcgQEAgc3RydWN0IGRybV9kcml2ZXIgewo+ICAJICogdG8gdGhlIE9w ZW5NTCBPTUxfc3luY19jb250cm9sIGV4dGVuc2lvbiBzcGVjaWZpY2F0aW9uLgo+ICAJICoKPiAg CSAqIFxwYXJhbSBkZXYgZGV2IERSTSBkZXZpY2UgaGFuZGxlLgo+IC0JICogXHBhcmFtIGNydGMg Y3J0YyBmb3Igd2hpY2ggdGltZXN0YW1wIHNob3VsZCBiZSByZXR1cm5lZC4KPiArCSAqIFxwYXJh bSBwaXBlIGNydGMgZm9yIHdoaWNoIHRpbWVzdGFtcCBzaG91bGQgYmUgcmV0dXJuZWQuCj4gIAkg KiBccGFyYW0gKm1heF9lcnJvciBNYXhpbXVtIGFsbG93YWJsZSB0aW1lc3RhbXAgZXJyb3IgaW4g bmFub3NlY29uZHMuCj4gIAkgKiAgICAgICAgICAgICAgICAgICBJbXBsZW1lbnRhdGlvbiBzaG91 bGQgc3RyaXZlIHRvIHByb3ZpZGUgdGltZXN0YW1wCj4gIAkgKiAgICAgICAgICAgICAgICAgICB3 aXRoIGFuIGVycm9yIG9mIGF0IG1vc3QgKm1heF9lcnJvciBuYW5vc2Vjb25kcy4KPiBAQCAtNTM0 LDcgKzUzMyw3IEBAIHN0cnVjdCBkcm1fZHJpdmVyIHsKPiAgCSAqIG5lZ2F0aXZlIG51bWJlciBv biBmYWlsdXJlLiBBIHBvc2l0aXZlIHN0YXR1cyBjb2RlIG9uIHN1Y2Nlc3MsCj4gIAkgKiB3aGlj aCBkZXNjcmliZXMgaG93IHRoZSB2YmxhbmtfdGltZSB0aW1lc3RhbXAgd2FzIGNvbXB1dGVkLgo+ ICAJICovCj4gLQlpbnQgKCpnZXRfdmJsYW5rX3RpbWVzdGFtcCkgKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIGludCBjcnRjLAo+ICsJaW50ICgqZ2V0X3ZibGFua190aW1lc3RhbXApIChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSwKPiAgCQkJCSAgICAgaW50ICptYXhf ZXJyb3IsCj4gIAkJCQkgICAgIHN0cnVjdCB0aW1ldmFsICp2YmxhbmtfdGltZSwKPiAgCQkJCSAg ICAgdW5zaWduZWQgZmxhZ3MpOwo+IEBAIC05MjcsNyArOTI2LDcgQEAgZXh0ZXJuIGludCBkcm1f aXJxX3VuaW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAgZXh0ZXJuIGludCBkcm1f dmJsYW5rX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IG51bV9jcnRj cyk7Cj4gIGV4dGVybiBpbnQgZHJtX3dhaXRfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHZvaWQgKmRhdGEsCj4gIAkJCSAgIHN0cnVjdCBkcm1fZmlsZSAqZmlscCk7Cj4gLWV4dGVybiB1 MzIgZHJtX3ZibGFua19jb3VudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgcGlwZSk7Cj4g K2V4dGVybiB1MzIgZHJtX3ZibGFua19jb3VudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNp Z25lZCBpbnQgcGlwZSk7Cj4gIGV4dGVybiB1MzIgZHJtX2NydGNfdmJsYW5rX2NvdW50KHN0cnVj dCBkcm1fY3J0YyAqY3J0Yyk7Cj4gIGV4dGVybiB1MzIgZHJtX3ZibGFua19jb3VudF9hbmRfdGlt ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSwKPiAgCQkJCSAgICAg c3RydWN0IHRpbWV2YWwgKnZibGFua3RpbWUpOwo+IC0tIAo+IDIuNS4wCj4gCj4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0Cj4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHA6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKCi0tIApWaWxsZSBTeXJq w6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVsCg==