From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [RFC v3 04/12] drm: Make ioctls available for in-kernel clients part 2 Date: Tue, 6 Mar 2018 09:41:55 +0100 Message-ID: <20180306084155.GE22212@phenom.ffwll.local> References: <20180222200653.19453-1-noralf@tronnes.org> <20180222200653.19453-5-noralf@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x243.google.com (mail-wm0-x243.google.com [IPv6:2a00:1450:400c:c09::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 748866E638 for ; Tue, 6 Mar 2018 08:42:00 +0000 (UTC) Received: by mail-wm0-x243.google.com with SMTP id z81so21007444wmb.4 for ; Tue, 06 Mar 2018 00:42:00 -0800 (PST) Content-Disposition: inline In-Reply-To: <20180222200653.19453-5-noralf@tronnes.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Noralf =?iso-8859-1?Q?Tr=F8nnes?= Cc: daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, laurent.pinchart@ideasonboard.com, dh.herrmann@gmail.com List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBGZWIgMjIsIDIwMTggYXQgMDk6MDY6NDVQTSArMDEwMCwgTm9yYWxmIFRyw7hubmVz IHdyb3RlOgo+IFRoaXMgaXMgcGFydCAyIG9mIG1ha2luZyBpb2N0bHMgdXNlYWJsZSBmb3IgaW4t a2VybmVsIGNsaWVudHMuCj4gTWFrZSBhbiBpb2N0bCB3cmFwcGVyIGZ1bmN0aW9uIHRoYXQgY2Fs bHMgYSBmdW5jdGlvbiB0aGF0IGNhbiBiZSB1c2VkIGJ5Cj4gaW4ta2VybmVsIGNsaWVudHMuCj4g Cj4gSXQgYWRqdXN0cyB0aGUgc2lnbmF0dXJlIG9mIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zOgo+ IC0gZHJtX21vZGVfZ2V0Y3J0YygpCj4gLSBkcm1fbW9kZV9jcmVhdGVfZHVtYl9pb2N0bCgpCj4g LSBkcm1fbW9kZV9kZXN0cm95X2R1bWJfaW9jdGwoKQo+IC0gZHJtX21vZGVfZ2V0ZW5jb2Rlcigp Cj4gLSBkcm1fbW9kZV9hZGRmYjIoKQo+IC0gZHJtX21vZGVfcm1mYigpCj4gLSBkcm1fbW9kZV9v Ympfc2V0X3Byb3BlcnR5X2lvY3RsKCkKPiAtIGRybV9tb2RlX3BhZ2VfZmxpcF9pb2N0bCgpCj4g LSBkcm1fcHJpbWVfaGFuZGxlX3RvX2ZkX2lvY3RsKCkKPiAtIGRybV93YWl0X3ZibGFua19pb2N0 bCgpCj4gCj4gZHJtX21vZGVfYWRkZmIyKCkgYWxzbyBnZXRzIHRoZSBhYmlsaXR5IHRvIG92ZXJy aWRlIHRoZSBkZWJ1ZyBuYW1lLgo+IAo+IFRoZXJlIGlzIG5vIGZ1bmN0aW9uYWwgY2hhbmdlIGZy b20gdGhlIHVzZXJzcGFjZSBzaWRlLgo+IAo+IFNpZ25lZC1vZmYtYnk6IE5vcmFsZiBUcsO4bm5l cyA8bm9yYWxmQHRyb25uZXMub3JnPgoKRG8gd2UgcmVhbGx5IG5lZWQgYWxsIG9mIHRoZXNlPyBG b3IgaW4ta2VybmVsIEtNUyB1c2VycyBJIHRoaW5rIGl0IHdvdWxkCmJlIG11Y2ggYmV0dGVyIHRv IGtlZXAgdXNpbmcgdGhlIGluLWtlcm5lbCBLTVMgaW50ZXJmYWNlcyBkaXJlY3RseSAobGlrZQp0 aGUgY3VycmVudCBmYmRldiBlbXVsYXRpb24gY29kZSBkb2VzKS4gRG9pbmcgYWxsIHRoZSBtYXJz aGFsbGluZyBhbmQKZGVtYXJzaGFsbGluZyBmb3IgdGhlIGdlbmVyaWMgS01TIGlvY3RscyBsb29r cyBsaWtlIGxvdHMgb2YgZnJhZ2lsZSBjb2RlLgoKSSB0aGluayB0aGUgb25seSBpb2N0bCB3ZSBy ZWFsbHkgYWJzb2x1dGVseSBuZWVkIGFyZToKLSBkdW1iX2NyZWF0ZS9tbWFwX29mZnNldC9kZXN0 cm95Ci0gYWRkZmIyCgpBcyBzb29uIGFzIHdlJ3ZlIGNhbGxlZCBhZGRmYjIgd2UgY2FuIHVzZSB0 aGUgaWRyIGxvb2t1cCB0byBnbyBmcm9tIHRoZSBpZAp0byB0aGUgZHJtX2ZyYW1lYnVmZmVyICog KGluY2x1ZGluZyBhIGZ1bGwgcmVmZXJlbmNlKSwgYW5kIG9uY2Ugd2UgaGF2ZQp0aGUgZHJtX2Zy YW1lYnVmZmVyIHdlIGRvbid0IG5lZWQgYW55IG9mIHRoZSBvdGhlciBpb2N0bHMuIE9yIGFtIEkg bWlzc2luZwpzb21ldGhpbmc/IE1heWJlIHRoZSBhZGRmYiB3cmFwcGVyIGZvciBpbnRlcm5hbCBj bGllbnRzIGNvdWxkIGV2ZW4KZGlyZWN0bHkgY29udmVydCB0byB0aGUgZHJtX2ZyYW1lYnVmZmVy ICogYW5kIG5ldmVyIGV4cG9zZSB0aGUgS01TIElELgotRGFuaWVsCgoKPiAtLS0KPiAgZHJpdmVy cy9ncHUvZHJtL2RybV9jcnRjLmMgICAgICAgICAgfCAxNSArKysrKysrLS0tLQo+ICBkcml2ZXJz L2dwdS9kcm0vZHJtX2NydGNfaW50ZXJuYWwuaCB8IDM3ICsrKysrKysrKysrKysrKysrKysrKy0t LS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2R1bWJfYnVmZmVycy5jICB8IDMzICsrKysrKysr KysrKysrKystLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2VuY29kZXIuYyAgICAgICB8 IDEwICsrKysrKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYyAgIHwgNTAg KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0v ZHJtX2ludGVybmFsLmggICAgICB8ICA1ICsrKysKPiAgZHJpdmVycy9ncHUvZHJtL2RybV9pb2Mz Mi5jICAgICAgICAgfCAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMgICAgICAg ICB8ICA4ICsrKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVfb2JqZWN0LmMgICB8IDEy ICsrKysrKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lLmMgICAgICAgICB8IDEyICsr KysrKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX3ByaW1lLmMgICAgICAgICB8IDEzICsrKysr KystLS0KPiAgZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYyAgICAgICAgfCAxMSArKysrKy0t LQo+ICAxMiBmaWxlcyBjaGFuZ2VkLCAxNDcgaW5zZXJ0aW9ucygrKSwgNjEgZGVsZXRpb25zKC0p Cj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jIGIvZHJpdmVycy9n cHUvZHJtL2RybV9jcnRjLmMKPiBpbmRleCBjOWFiMWNjNmI0MTIuLjYxYTZhOTBmYWU3ZSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fY3J0Yy5jCj4gQEAgLTM4Nyw4ICszODcsOCBAQCBFWFBPUlRfU1lNQk9MKGRybV9j cnRjX2NsZWFudXApOwo+ICAvKioKPiAgICogZHJtX21vZGVfZ2V0Y3J0YyAtIGdldCBDUlRDIGNv bmZpZ3VyYXRpb24KPiAgICogQGRldjogZHJtIGRldmljZSBmb3IgdGhlIGlvY3RsCj4gLSAqIEBk YXRhOiBkYXRhIHBvaW50ZXIgZm9yIHRoZSBpb2N0bAo+IC0gKiBAZmlsZV9wcml2OiBkcm0gZmls ZSBmb3IgdGhlIGlvY3RsIGNhbGwKPiArICogQGNydGNfcmVzcDogcG9pbnRlciB0byBjcnRjIHJl cXVlc3Qgc3RydWN0dXJlCj4gKyAqIEBmaWxlX3ByaXY6IGRybSBmaWxlCj4gICAqCj4gICAqIENv bnN0cnVjdCBhIENSVEMgY29uZmlndXJhdGlvbiBzdHJ1Y3R1cmUgdG8gcmV0dXJuIHRvIHRoZSB1 c2VyLgo+ICAgKgo+IEBAIC0zOTcsMTAgKzM5Nyw5IEBAIEVYUE9SVF9TWU1CT0woZHJtX2NydGNf Y2xlYW51cCk7Cj4gICAqIFJldHVybnM6Cj4gICAqIFplcm8gb24gc3VjY2VzcywgbmVnYXRpdmUg ZXJybm8gb24gZmFpbHVyZS4KPiAgICovCj4gLWludCBkcm1fbW9kZV9nZXRjcnRjKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCj4gLQkJICAgICB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZp bGVfcHJpdikKPiAraW50IGRybV9tb2RlX2dldGNydGMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg c3RydWN0IGRybV9tb2RlX2NydGMgKmNydGNfcmVzcCwKPiArCQkgICAgIHN0cnVjdCBkcm1fZmls ZSAqZmlsZV9wcml2KQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX21vZGVfY3J0YyAqY3J0Y19yZXNwID0g ZGF0YTsKPiAgCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiAgCj4gIAlpZiAoIWRybV9jb3JlX2No ZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfTU9ERVNFVCkpCj4gQEAgLTQ1MSw2ICs0NTAsMTIgQEAg aW50IGRybV9tb2RlX2dldGNydGMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCXJldHVybiAw Owo+ICB9Cj4gIAo+ICtpbnQgZHJtX21vZGVfZ2V0Y3J0Y19pb2N0bChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAo+ICsJCQkgICB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikK PiArewo+ICsJcmV0dXJuIGRybV9tb2RlX2dldGNydGMoZGV2LCBkYXRhLCBmaWxlX3ByaXYpOwo+ ICt9Cj4gKwo+ICBzdGF0aWMgaW50IF9fZHJtX21vZGVfc2V0X2NvbmZpZ19pbnRlcm5hbChzdHJ1 Y3QgZHJtX21vZGVfc2V0ICpzZXQsCj4gIAkJCQkJICBzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWly ZV9jdHggKmN0eCkKPiAgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNf aW50ZXJuYWwuaCBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19pbnRlcm5hbC5oCj4gaW5kZXgg MjljNTljZTdlNTZlLi40NTcxM2FmNWEwMTUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2RybV9jcnRjX2ludGVybmFsLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaW50 ZXJuYWwuaAo+IEBAIC00NSwxMiArNDUsMTQgQEAgdm9pZCBkcm1fY3J0Y191bnJlZ2lzdGVyX2Fs bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAgCj4gIHN0cnVjdCBkbWFfZmVuY2UgKmRybV9j cnRjX2NyZWF0ZV9mZW5jZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwo+ICAKPiAraW50IGRybV9t b2RlX2dldGNydGMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9tb2RlX2NydGMg KmNydGNfcmVzcCwKPiArCQkgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKPiAgaW50 IGRybV9tb2RlX3NldGNydGMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9tb2Rl X2NydGMgKmNydGNfcmVxLAo+ICAJCSAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsIGJv b2wgdXNlcik7Cj4gIAo+ICAvKiBJT0NUTHMgKi8KPiAtaW50IGRybV9tb2RlX2dldGNydGMoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKPiAtCQkgICAgIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmls ZSAqZmlsZV9wcml2KTsKPiAraW50IGRybV9tb2RlX2dldGNydGNfaW9jdGwoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKPiArCQkJICAgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3By aXYpOwo+ICBpbnQgZHJtX21vZGVfc2V0Y3J0Y19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAo+ICAJCQkgICB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Cj4gIAo+ IEBAIC02OCw2ICs3MCwxMiBAQCBpbnQgZHJtX21vZGVfZ2V0cmVzb3VyY2VzX2lvY3RsKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gIAo+ICAKPiAgLyogZHJtX2R1bWJfYnVm ZmVycy5jICovCj4gK2ludCBkcm1fbW9kZV9jcmVhdGVfZHVtYihzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAo+ICsJCQkgc3RydWN0IGRybV9tb2RlX2NyZWF0ZV9kdW1iICphcmdzLAo+ICsJCQkgc3Ry dWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwo+ICtpbnQgZHJtX21vZGVfZGVzdHJveV9kdW1iKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiBoYW5kbGUsCj4gKwkJCSAgc3RydWN0IGRybV9maWxl ICpmaWxlX3ByaXYpOwo+ICsKPiAgLyogSU9DVExzICovCj4gIGludCBkcm1fbW9kZV9jcmVhdGVf ZHVtYl9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQkgICAgICAgdm9pZCAqZGF0 YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwo+IEBAIC0xMjIsNiArMTMwLDkgQEAgaW50 IGRybV9tb2RlX29iamVjdF9nZXRfcHJvcGVydGllcyhzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICpv YmosIGJvb2wgYXRvbWljLAo+ICAJCQkJICAgdWludDMyX3QgKmFyZ19jb3VudF9wcm9wcyk7Cj4g IHN0cnVjdCBkcm1fcHJvcGVydHkgKmRybV9tb2RlX29ial9maW5kX3Byb3BfaWQoc3RydWN0IGRy bV9tb2RlX29iamVjdCAqb2JqLAo+ICAJCQkJCSAgICAgICB1aW50MzJfdCBwcm9wX2lkKTsKPiAr aW50IGRybV9tb2RlX29ial9zZXRfcHJvcGVydHkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAr CQkJICAgICAgc3RydWN0IGRybV9tb2RlX29ial9zZXRfcHJvcGVydHkgKmFyZywKPiArCQkJICAg ICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwo+ICAKPiAgLyogSU9DVEwgKi8KPiAgCj4g QEAgLTEzMywxMCArMTQ0LDEzIEBAIGludCBkcm1fbW9kZV9vYmpfc2V0X3Byb3BlcnR5X2lvY3Rs KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gIC8qIGRybV9lbmNvZGVyLmMg Ki8KPiAgaW50IGRybV9lbmNvZGVyX3JlZ2lzdGVyX2FsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KTsKPiAgdm9pZCBkcm1fZW5jb2Rlcl91bnJlZ2lzdGVyX2FsbChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KTsKPiAraW50IGRybV9tb2RlX2dldGVuY29kZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK PiArCQkJc3RydWN0IGRybV9tb2RlX2dldF9lbmNvZGVyICplbmNfcmVzcCwKPiArCQkJc3RydWN0 IGRybV9maWxlICpmaWxlX3ByaXYpOwo+ICAKPiAgLyogSU9DVEwgKi8KPiAtaW50IGRybV9tb2Rl X2dldGVuY29kZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAtCQkJdm9pZCAqZGF0YSwgc3Ry dWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwo+ICtpbnQgZHJtX21vZGVfZ2V0ZW5jb2Rlcl9pb2N0 bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICsJCQkgICAgICB2b2lkICpkYXRhLCBzdHJ1Y3Qg ZHJtX2ZpbGUgKmZpbGVfcHJpdik7Cj4gIAo+ICAvKiBkcm1fY29ubmVjdG9yLmMgKi8KPiAgdm9p ZCBkcm1fY29ubmVjdG9yX2lkYV9pbml0KHZvaWQpOwo+IEBAIC0xNzAsMTYgKzE4NCwyMCBAQCBp bnQgZHJtX2ZyYW1lYnVmZmVyX2NoZWNrX3NyY19jb29yZHModWludDMyX3Qgc3JjX3gsIHVpbnQz Ml90IHNyY195LAo+ICAJCQkJICAgICBjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYik7 Cj4gIHZvaWQgZHJtX2ZiX3JlbGVhc2Uoc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwo+ICAK PiAraW50IGRybV9tb2RlX2FkZGZiMihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJt X21vZGVfZmJfY21kMiAqciwKPiArCQkgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsIGNv bnN0IGNoYXIgKmNvbW0pOwo+ICtpbnQgZHJtX21vZGVfcm1mYihzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCB1MzIgZmJfaWQsCj4gKwkJICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Cj4gIGlu dCBkcm1fbW9kZV9kaXJ0eWZiKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fbW9k ZV9mYl9kaXJ0eV9jbWQgKnJlcSwKPiAgCQkgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2 LCBib29sIHVzZXIpOwo+ICAKPiAgLyogSU9DVEwgKi8KPiAgaW50IGRybV9tb2RlX2FkZGZiKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJICAgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxl ICpmaWxlX3ByaXYpOwo+IC1pbnQgZHJtX21vZGVfYWRkZmIyKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCj4gLQkJICAgIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKPiAt aW50IGRybV9tb2RlX3JtZmIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAtCQkgIHZvaWQgKmRh dGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKPiAraW50IGRybV9tb2RlX2FkZGZiMl9p b2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICsJCQkgIHZvaWQgKmRhdGEsIHN0cnVjdCBk cm1fZmlsZSAqZmlsZV9wcml2KTsKPiAraW50IGRybV9tb2RlX3JtZmJfaW9jdGwoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKPiArCQkJdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3By aXYpOwo+ICBpbnQgZHJtX21vZGVfZ2V0ZmIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkg ICB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Cj4gIGludCBkcm1fbW9k ZV9kaXJ0eWZiX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gQEAgLTIwOSw2ICsyMjcs OSBAQCBpbnQgZHJtX3BsYW5lX3JlZ2lzdGVyX2FsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsK PiAgdm9pZCBkcm1fcGxhbmVfdW5yZWdpc3Rlcl9hbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldik7 Cj4gIGludCBkcm1fcGxhbmVfY2hlY2tfcGl4ZWxfZm9ybWF0KGNvbnN0IHN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lLAo+ICAJCQkJIHUzMiBmb3JtYXQpOwo+ICtpbnQgZHJtX21vZGVfcGFnZV9mbGlw KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gKwkJICAgICAgIHN0cnVjdCBkcm1fbW9kZV9jcnRj X3BhZ2VfZmxpcF90YXJnZXQgKnBhZ2VfZmxpcCwKPiArCQkgICAgICAgc3RydWN0IGRybV9maWxl ICpmaWxlX3ByaXYpOwo+ICAKPiAgLyogZHJtX2JyaWRnZS5jICovCj4gIHZvaWQgZHJtX2JyaWRn ZV9kZXRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fZHVtYl9idWZmZXJzLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2R1bWJf YnVmZmVycy5jCj4gaW5kZXggMzlhYzE1Y2U0NzAyLi5lZWQ5Njg3Yjg2OTggMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2RybV9kdW1iX2J1ZmZlcnMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fZHVtYl9idWZmZXJzLmMKPiBAQCAtNTMsMTAgKzUzLDEwIEBACj4gICAqIGEgaGFy ZHdhcmUtc3BlY2lmaWMgaW9jdGwgdG8gYWxsb2NhdGUgc3VpdGFibGUgYnVmZmVyIG9iamVjdHMu Cj4gICAqLwo+ICAKPiAtaW50IGRybV9tb2RlX2NyZWF0ZV9kdW1iX2lvY3RsKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCj4gLQkJCSAgICAgICB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZp bGVfcHJpdikKPiAraW50IGRybV9tb2RlX2NyZWF0ZV9kdW1iKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCj4gKwkJCSBzdHJ1Y3QgZHJtX21vZGVfY3JlYXRlX2R1bWIgKmFyZ3MsCj4gKwkJCSBzdHJ1 Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKPiAgewo+IC0Jc3RydWN0IGRybV9tb2RlX2NyZWF0ZV9k dW1iICphcmdzID0gZGF0YTsKPiAgCXUzMiBjcHAsIHN0cmlkZSwgc2l6ZTsKPiAgCj4gIAlpZiAo IWRldi0+ZHJpdmVyLT5kdW1iX2NyZWF0ZSkKPiBAQCAtOTEsNiArOTEsMTIgQEAgaW50IGRybV9t b2RlX2NyZWF0ZV9kdW1iX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAlyZXR1cm4g ZGV2LT5kcml2ZXItPmR1bWJfY3JlYXRlKGZpbGVfcHJpdiwgZGV2LCBhcmdzKTsKPiAgfQo+ICAK PiAraW50IGRybV9tb2RlX2NyZWF0ZV9kdW1iX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs Cj4gKwkJCSAgICAgICB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKPiAr ewo+ICsJcmV0dXJuIGRybV9tb2RlX2NyZWF0ZV9kdW1iKGRldiwgZGF0YSwgZmlsZV9wcml2KTsK PiArfQo+ICsKPiAgLyoqCj4gICAqIGRybV9tb2RlX21tYXBfZHVtYl9pb2N0bCAtIGNyZWF0ZSBh biBtbWFwIG9mZnNldCBmb3IgYSBkdW1iIGJhY2tpbmcgc3RvcmFnZSBidWZmZXIKPiAgICogQGRl djogRFJNIGRldmljZQo+IEBAIC0xMjIsMTcgKzEyOCwyMiBAQCBpbnQgZHJtX21vZGVfbW1hcF9k dW1iX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCQkJICAgICAgICZhcmdzLT5v ZmZzZXQpOwo+ICB9Cj4gIAo+ICtpbnQgZHJtX21vZGVfZGVzdHJveV9kdW1iKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHUzMiBoYW5kbGUsCj4gKwkJCSAgc3RydWN0IGRybV9maWxlICpmaWxlX3By aXYpCj4gK3sKPiArCWlmICghZGV2LT5kcml2ZXItPmR1bWJfY3JlYXRlKQo+ICsJCXJldHVybiAt RU5PU1lTOwo+ICsKPiArCWlmIChkZXYtPmRyaXZlci0+ZHVtYl9kZXN0cm95KQo+ICsJCXJldHVy biBkZXYtPmRyaXZlci0+ZHVtYl9kZXN0cm95KGZpbGVfcHJpdiwgZGV2LCBoYW5kbGUpOwo+ICsJ ZWxzZQo+ICsJCXJldHVybiBkcm1fZ2VtX2R1bWJfZGVzdHJveShmaWxlX3ByaXYsIGRldiwgaGFu ZGxlKTsKPiArfQo+ICsKPiAgaW50IGRybV9tb2RlX2Rlc3Ryb3lfZHVtYl9pb2N0bChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAo+ICAJCQkJdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxl X3ByaXYpCj4gIHsKPiAgCXN0cnVjdCBkcm1fbW9kZV9kZXN0cm95X2R1bWIgKmFyZ3MgPSBkYXRh Owo+ICAKPiAtCWlmICghZGV2LT5kcml2ZXItPmR1bWJfY3JlYXRlKQo+IC0JCXJldHVybiAtRU5P U1lTOwo+IC0KPiAtCWlmIChkZXYtPmRyaXZlci0+ZHVtYl9kZXN0cm95KQo+IC0JCXJldHVybiBk ZXYtPmRyaXZlci0+ZHVtYl9kZXN0cm95KGZpbGVfcHJpdiwgZGV2LCBhcmdzLT5oYW5kbGUpOwo+ IC0JZWxzZQo+IC0JCXJldHVybiBkcm1fZ2VtX2R1bWJfZGVzdHJveShmaWxlX3ByaXYsIGRldiwg YXJncy0+aGFuZGxlKTsKPiArCXJldHVybiBkcm1fbW9kZV9kZXN0cm95X2R1bWIoZGV2LCBhcmdz LT5oYW5kbGUsIGZpbGVfcHJpdik7Cj4gIH0KPiAtCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fZW5jb2Rlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9lbmNvZGVyLmMKPiBpbmRl eCAyNzNlMWM1OWM1NGEuLjQ2NmYzZTI4YjNlOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vZHJtX2VuY29kZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZW5jb2Rlci5jCj4g QEAgLTIxNCwxMCArMjE0LDEwIEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2NydGMgKmRybV9lbmNvZGVy X2dldF9jcnRjKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPiAgCXJldHVybiBlbmNvZGVy LT5jcnRjOwo+ICB9Cj4gIAo+IC1pbnQgZHJtX21vZGVfZ2V0ZW5jb2RlcihzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICtpbnQgZHJtX21vZGVfZ2V0ZW5jb2RlcihzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAo+ICsJCQlzdHJ1Y3QgZHJtX21vZGVfZ2V0X2VuY29kZXIgKmVuY19y ZXNwLAo+ICAJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKPiAgewo+IC0Jc3RydWN0IGRy bV9tb2RlX2dldF9lbmNvZGVyICplbmNfcmVzcCA9IGRhdGE7Cj4gIAlzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXI7Cj4gIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4gIAo+IEBAIC0yNDQsMyAr MjQ0LDkgQEAgaW50IGRybV9tb2RlX2dldGVuY29kZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg dm9pZCAqZGF0YSwKPiAgCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICsKPiAraW50IGRybV9tb2RlX2dl dGVuY29kZXJfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiArCQkJ ICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCj4gK3sKPiArCXJldHVybiBkcm1fbW9k ZV9nZXRlbmNvZGVyKGRldiwgZGF0YSwgZmlsZV9wcml2KTsKPiArfQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Zy YW1lYnVmZmVyLmMKPiBpbmRleCBlOTE4YzcxMjRkY2QuLmI0MTc3MGQyOWU2YyAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMKPiBAQCAtMTIxLDcgKzEyMSw3IEBAIGludCBkcm1fbW9k ZV9hZGRmYihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJci5waXhlbF9mb3JtYXQgPSBkcm1f bW9kZV9sZWdhY3lfZmJfZm9ybWF0KG9yLT5icHAsIG9yLT5kZXB0aCk7Cj4gIAlyLmhhbmRsZXNb MF0gPSBvci0+aGFuZGxlOwo+ICAKPiAtCXJldCA9IGRybV9tb2RlX2FkZGZiMihkZXYsICZyLCBm aWxlX3ByaXYpOwo+ICsJcmV0ID0gZHJtX21vZGVfYWRkZmIyX2lvY3RsKGRldiwgJnIsIGZpbGVf cHJpdik7Cj4gIAlpZiAocmV0KQo+ICAJCXJldHVybiByZXQ7Cj4gIAo+IEBAIC0zMDUsMjMgKzMw NSwyMyBAQCBkcm1faW50ZXJuYWxfZnJhbWVidWZmZXJfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCj4gIAo+ICAvKioKPiAgICogZHJtX21vZGVfYWRkZmIyIC0gYWRkIGFuIEZCIHRvIHRo ZSBncmFwaGljcyBjb25maWd1cmF0aW9uCj4gLSAqIEBkZXY6IGRybSBkZXZpY2UgZm9yIHRoZSBp b2N0bAo+IC0gKiBAZGF0YTogZGF0YSBwb2ludGVyIGZvciB0aGUgaW9jdGwKPiAtICogQGZpbGVf cHJpdjogZHJtIGZpbGUgZm9yIHRoZSBpb2N0bCBjYWxsCj4gKyAqIEBkZXY6IGRybSBkZXZpY2UK PiArICogQHI6IHBvaW50ZXIgdG8gcmVxdWVzdCBzdHJ1Y3R1cmUKPiArICogQGZpbGVfcHJpdjog ZHJtIGZpbGUKPiArICogQGNvbW06IG9wdGlvbmFsbHkgb3ZlcnJpZGUgdGhlIGFsbG9jYXRvciBu YW1lIHVzZWQgZm9yIGRlYnVnIG91dHB1dAo+ICAgKgo+ICAgKiBBZGQgYSBuZXcgRkIgdG8gdGhl IHNwZWNpZmllZCBDUlRDLCBnaXZlbiBhIHVzZXIgcmVxdWVzdCB3aXRoIGZvcm1hdC4gVGhpcyBp cwo+ICAgKiB0aGUgMm5kIHZlcnNpb24gb2YgdGhlIGFkZGZiIGlvY3RsLCB3aGljaCBzdXBwb3J0 cyBtdWx0aS1wbGFuYXIgZnJhbWVidWZmZXJzCj4gICAqIGFuZCB1c2VzIGZvdXJjYyBjb2RlcyBh cyBwaXhlbCBmb3JtYXQgc3BlY2lmaWVycy4KPiAgICoKPiAtICogQ2FsbGVkIGJ5IHRoZSB1c2Vy IHZpYSBpb2N0bC4KPiArICogQ2FsbGVkIGJ5IHRoZSB1c2VyIHZpYSBpb2N0bCwgb3IgYnkgYW4g aW4ta2VybmVsIGNsaWVudC4KPiAgICoKPiAgICogUmV0dXJuczoKPiAgICogWmVybyBvbiBzdWNj ZXNzLCBuZWdhdGl2ZSBlcnJubyBvbiBmYWlsdXJlLgo+ICAgKi8KPiAtaW50IGRybV9tb2RlX2Fk ZGZiMihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+IC0JCSAgICB2b2lkICpkYXRhLCBzdHJ1Y3Qg ZHJtX2ZpbGUgKmZpbGVfcHJpdikKPiAraW50IGRybV9tb2RlX2FkZGZiMihzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqciwKPiArCQkgICAgc3RydWN0IGRy bV9maWxlICpmaWxlX3ByaXYsIGNvbnN0IGNoYXIgKmNvbW0pCj4gIHsKPiAtCXN0cnVjdCBkcm1f bW9kZV9mYl9jbWQyICpyID0gZGF0YTsKPiAgCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiOwo+ ICAKPiAgCWlmICghZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9NT0RFU0VUKSkK PiBAQCAtMzMxLDYgKzMzMSw5IEBAIGludCBkcm1fbW9kZV9hZGRmYjIoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKPiAgCWlmIChJU19FUlIoZmIpKQo+ICAJCXJldHVybiBQVFJfRVJSKGZiKTsKPiAg Cj4gKwlpZiAoY29tbSkKPiArCQlzdHJzY3B5KGZiLT5jb21tLCBjb21tLCBUQVNLX0NPTU1fTEVO KTsKPiArCj4gIAlEUk1fREVCVUdfS01TKCJbRkI6JWRdXG4iLCBmYi0+YmFzZS5pZCk7Cj4gIAly LT5mYl9pZCA9IGZiLT5iYXNlLmlkOwo+ICAKPiBAQCAtMzQyLDYgKzM0NSwxMiBAQCBpbnQgZHJt X21vZGVfYWRkZmIyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAlyZXR1cm4gMDsKPiAgfQo+ ICAKPiAraW50IGRybV9tb2RlX2FkZGZiMl9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ ICsJCQkgIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQo+ICt7Cj4gKwly ZXR1cm4gZHJtX21vZGVfYWRkZmIyKGRldiwgZGF0YSwgZmlsZV9wcml2LCBOVUxMKTsKPiArfQo+ ICsKPiAgc3RydWN0IGRybV9tb2RlX3JtZmJfd29yayB7Cj4gIAlzdHJ1Y3Qgd29ya19zdHJ1Y3Qg d29yazsKPiAgCXN0cnVjdCBsaXN0X2hlYWQgZmJzOwo+IEBAIC0zNjIsMjkgKzM3MSwyOCBAQCBz dGF0aWMgdm9pZCBkcm1fbW9kZV9ybWZiX3dvcmtfZm4oc3RydWN0IHdvcmtfc3RydWN0ICp3KQo+ ICAKPiAgLyoqCj4gICAqIGRybV9tb2RlX3JtZmIgLSByZW1vdmUgYW4gRkIgZnJvbSB0aGUgY29u ZmlndXJhdGlvbgo+IC0gKiBAZGV2OiBkcm0gZGV2aWNlIGZvciB0aGUgaW9jdGwKPiAtICogQGRh dGE6IGRhdGEgcG9pbnRlciBmb3IgdGhlIGlvY3RsCj4gLSAqIEBmaWxlX3ByaXY6IGRybSBmaWxl IGZvciB0aGUgaW9jdGwgY2FsbAo+ICsgKiBAZGV2OiBkcm0gZGV2aWNlCj4gKyAqIEBmYl9pZDog aWQgb2YgZnJhbWVidWZmZXIgdG8gcmVtb3ZlCj4gKyAqIEBmaWxlX3ByaXY6IGRybSBmaWxlCj4g ICAqCj4gLSAqIFJlbW92ZSB0aGUgRkIgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyLgo+ICsgKiBSZW1v dmUgdGhlIHNwZWNpZmllZCBGQi4KPiAgICoKPiAtICogQ2FsbGVkIGJ5IHRoZSB1c2VyIHZpYSBp b2N0bC4KPiArICogQ2FsbGVkIGJ5IHRoZSB1c2VyIHZpYSBpb2N0bCwgb3IgYnkgYW4gaW4ta2Vy bmVsIGNsaWVudC4KPiAgICoKPiAgICogUmV0dXJuczoKPiAgICogWmVybyBvbiBzdWNjZXNzLCBu ZWdhdGl2ZSBlcnJubyBvbiBmYWlsdXJlLgo+ICAgKi8KPiAtaW50IGRybV9tb2RlX3JtZmIoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKPiAtCQkgICB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUg KmZpbGVfcHJpdikKPiAraW50IGRybV9tb2RlX3JtZmIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg dTMyIGZiX2lkLAo+ICsJCSAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCj4gIHsKPiAgCXN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gTlVMTDsKPiAgCXN0cnVjdCBkcm1fZnJhbWVidWZm ZXIgKmZibCA9IE5VTEw7Cj4gLQl1aW50MzJfdCAqaWQgPSBkYXRhOwo+ICAJaW50IGZvdW5kID0g MDsKPiAgCj4gIAlpZiAoIWRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfTU9ERVNF VCkpCj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gIAo+IC0JZmIgPSBkcm1fZnJhbWVidWZmZXJfbG9v a3VwKGRldiwgZmlsZV9wcml2LCAqaWQpOwo+ICsJZmIgPSBkcm1fZnJhbWVidWZmZXJfbG9va3Vw KGRldiwgZmlsZV9wcml2LCBmYl9pZCk7Cj4gIAlpZiAoIWZiKQo+ICAJCXJldHVybiAtRU5PRU5U Owo+ICAKPiBAQCAtNDMwLDYgKzQzOCwxNCBAQCBpbnQgZHJtX21vZGVfcm1mYihzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAo+ICAJcmV0dXJuIC1FTk9FTlQ7Cj4gIH0KPiAgCj4gK2ludCBkcm1fbW9k ZV9ybWZiX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gKwkJCXZvaWQgKmRhdGEsIHN0 cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQo+ICt7Cj4gKwl1aW50MzJfdCAqZmJfaWQgPSBkYXRh Owo+ICsKPiArCXJldHVybiBkcm1fbW9kZV9ybWZiKGRldiwgKmZiX2lkLCBmaWxlX3ByaXYpOwo+ ICt9Cj4gKwo+ICAvKioKPiAgICogZHJtX21vZGVfZ2V0ZmIgLSBnZXQgRkIgaW5mbwo+ICAgKiBA ZGV2OiBkcm0gZGV2aWNlIGZvciB0aGUgaW9jdGwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2RybV9pbnRlcm5hbC5oIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oCj4gaW5k ZXggNDAxNzljNWZjNmI4Li4wNDM4MTRjYmQyODYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2RybV9pbnRlcm5hbC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5o Cj4gQEAgLTM3LDYgKzM3LDkgQEAgdm9pZCBkcm1fcGNpX2FncF9kZXN0cm95KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpOwo+ICBpbnQgZHJtX3BjaV9zZXRfYnVzaWQoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgc3RydWN0IGRybV9tYXN0ZXIgKm1hc3Rlcik7Cj4gIAo+ICAvKiBkcm1fcHJpbWUuYyAq Lwo+ICtpbnQgZHJtX3ByaW1lX2hhbmRsZV90b19mZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ ICsJCQkgICBzdHJ1Y3QgZHJtX3ByaW1lX2hhbmRsZSAqYXJncywKPiArCQkJICAgc3RydWN0IGRy bV9maWxlICpmaWxlX3ByaXYpOwo+ICBpbnQgZHJtX3ByaW1lX2hhbmRsZV90b19mZF9pb2N0bChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAJCQkJIHN0cnVjdCBkcm1fZmls ZSAqZmlsZV9wcml2KTsKPiAgaW50IGRybV9wcmltZV9mZF90b19oYW5kbGVfaW9jdGwoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiBAQCAtNTksNiArNjIsOCBAQCBpbnQgZHJt X2dlbV9uYW1lX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKTsKPiAgLyogZHJt X3ZibGFuay5jICovCj4gIHZvaWQgZHJtX3ZibGFua19kaXNhYmxlX2FuZF9zYXZlKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTsKPiAgdm9pZCBkcm1fdmJsYW5rX2Ns ZWFudXAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gK2ludCBkcm1fd2FpdF92Ymxhbmsoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdW5pb24gZHJtX3dhaXRfdmJsYW5rICp2Ymx3YWl0LAo+ICsJ CSAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Cj4gIAo+ICAvKiBJT0NUTFMgKi8KPiAg aW50IGRybV93YWl0X3ZibGFua19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpk YXRhLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvYzMyLmMgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2lvYzMyLmMKPiBpbmRleCBmOGU5NmU2NDhhY2YuLjU3NmQwMGI3ZGFkNSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvYzMyLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2lvYzMyLmMKPiBAQCAtODg0LDcgKzg4NCw3IEBAIHN0YXRpYyBpbnQgY29t cGF0X2RybV9tb2RlX2FkZGZiMihzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNtZCwK PiAgCQkJICAgc2l6ZW9mKHJlcTY0Lm1vZGlmaWVyKSkpCj4gIAkJcmV0dXJuIC1FRkFVTFQ7Cj4g IAo+IC0JZXJyID0gZHJtX2lvY3RsX2tlcm5lbChmaWxlLCBkcm1fbW9kZV9hZGRmYjIsICZyZXE2 NCwKPiArCWVyciA9IGRybV9pb2N0bF9rZXJuZWwoZmlsZSwgZHJtX21vZGVfYWRkZmIyX2lvY3Rs LCAmcmVxNjQsCj4gIAkJCQlEUk1fQ09OVFJPTF9BTExPV3xEUk1fVU5MT0NLRUQpOwo+ICAJaWYg KGVycikKPiAgCQlyZXR1cm4gZXJyOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJt X2lvY3RsLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMKPiBpbmRleCAzNDZiODA2MGRm N2MuLjcyNmZiZGI4YTRiMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3Rs LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMKPiBAQCAtNjE5LDE0ICs2MTks MTQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faW9jdGxfZGVzYyBkcm1faW9jdGxzW10gPSB7 Cj4gIAlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9QUklNRV9GRF9UT19IQU5ETEUsIGRybV9wcmlt ZV9mZF90b19oYW5kbGVfaW9jdGwsIERSTV9BVVRIfERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FM TE9XKSwKPiAgCj4gIAlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0dFVFBMQU5FUkVTT1VS Q0VTLCBkcm1fbW9kZV9nZXRwbGFuZV9yZXMsIERSTV9DT05UUk9MX0FMTE9XfERSTV9VTkxPQ0tF RCksCj4gLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0dFVENSVEMsIGRybV9tb2RlX2dl dGNydGMsIERSTV9DT05UUk9MX0FMTE9XfERSTV9VTkxPQ0tFRCksCj4gKwlEUk1fSU9DVExfREVG KERSTV9JT0NUTF9NT0RFX0dFVENSVEMsIGRybV9tb2RlX2dldGNydGNfaW9jdGwsIERSTV9DT05U Uk9MX0FMTE9XfERSTV9VTkxPQ0tFRCksCj4gIAlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RF X1NFVENSVEMsIGRybV9tb2RlX3NldGNydGNfaW9jdGwsIERSTV9NQVNURVJ8RFJNX0NPTlRST0xf QUxMT1d8RFJNX1VOTE9DS0VEKSwKPiAgCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfR0VU UExBTkUsIGRybV9tb2RlX2dldHBsYW5lLCBEUk1fQ09OVFJPTF9BTExPV3xEUk1fVU5MT0NLRUQp LAo+ICAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9TRVRQTEFORSwgZHJtX21vZGVfc2V0 cGxhbmUsIERSTV9NQVNURVJ8RFJNX0NPTlRST0xfQUxMT1d8RFJNX1VOTE9DS0VEKSwKPiAgCURS TV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfQ1VSU09SLCBkcm1fbW9kZV9jdXJzb3JfaW9jdGws IERSTV9NQVNURVJ8RFJNX0NPTlRST0xfQUxMT1d8RFJNX1VOTE9DS0VEKSwKPiAgCURSTV9JT0NU TF9ERUYoRFJNX0lPQ1RMX01PREVfR0VUR0FNTUEsIGRybV9tb2RlX2dhbW1hX2dldF9pb2N0bCwg RFJNX1VOTE9DS0VEKSwKPiAgCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfU0VUR0FNTUEs IGRybV9tb2RlX2dhbW1hX3NldF9pb2N0bCwgRFJNX01BU1RFUnxEUk1fVU5MT0NLRUQpLAo+IC0J RFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9HRVRFTkNPREVSLCBkcm1fbW9kZV9nZXRlbmNv ZGVyLCBEUk1fQ09OVFJPTF9BTExPV3xEUk1fVU5MT0NLRUQpLAo+ICsJRFJNX0lPQ1RMX0RFRihE Uk1fSU9DVExfTU9ERV9HRVRFTkNPREVSLCBkcm1fbW9kZV9nZXRlbmNvZGVyX2lvY3RsLCBEUk1f Q09OVFJPTF9BTExPV3xEUk1fVU5MT0NLRUQpLAo+ICAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExf TU9ERV9HRVRDT05ORUNUT1IsIGRybV9tb2RlX2dldGNvbm5lY3Rvcl9pb2N0bCwgRFJNX0NPTlRS T0xfQUxMT1d8RFJNX1VOTE9DS0VEKSwKPiAgCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVf QVRUQUNITU9ERSwgZHJtX25vb3AsIERSTV9NQVNURVJ8RFJNX0NPTlRST0xfQUxMT1d8RFJNX1VO TE9DS0VEKSwKPiAgCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfREVUQUNITU9ERSwgZHJt X25vb3AsIERSTV9NQVNURVJ8RFJNX0NPTlRST0xfQUxMT1d8RFJNX1VOTE9DS0VEKSwKPiBAQCAt NjM1LDggKzYzNSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgZHJtX2lv Y3Rsc1tdID0gewo+ICAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9HRVRQUk9QQkxPQiwg ZHJtX21vZGVfZ2V0YmxvYl9pb2N0bCwgRFJNX0NPTlRST0xfQUxMT1d8RFJNX1VOTE9DS0VEKSwK PiAgCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfR0VURkIsIGRybV9tb2RlX2dldGZiLCBE Uk1fQ09OVFJPTF9BTExPV3xEUk1fVU5MT0NLRUQpLAo+ICAJRFJNX0lPQ1RMX0RFRihEUk1fSU9D VExfTU9ERV9BRERGQiwgZHJtX21vZGVfYWRkZmIsIERSTV9DT05UUk9MX0FMTE9XfERSTV9VTkxP Q0tFRCksCj4gLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0FEREZCMiwgZHJtX21vZGVf YWRkZmIyLCBEUk1fQ09OVFJPTF9BTExPV3xEUk1fVU5MT0NLRUQpLAo+IC0JRFJNX0lPQ1RMX0RF RihEUk1fSU9DVExfTU9ERV9STUZCLCBkcm1fbW9kZV9ybWZiLCBEUk1fQ09OVFJPTF9BTExPV3xE Uk1fVU5MT0NLRUQpLAo+ICsJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9BRERGQjIsIGRy bV9tb2RlX2FkZGZiMl9pb2N0bCwgRFJNX0NPTlRST0xfQUxMT1d8RFJNX1VOTE9DS0VEKSwKPiAr CURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfUk1GQiwgZHJtX21vZGVfcm1mYl9pb2N0bCwg RFJNX0NPTlRST0xfQUxMT1d8RFJNX1VOTE9DS0VEKSwKPiAgCURSTV9JT0NUTF9ERUYoRFJNX0lP Q1RMX01PREVfUEFHRV9GTElQLCBkcm1fbW9kZV9wYWdlX2ZsaXBfaW9jdGwsIERSTV9NQVNURVJ8 RFJNX0NPTlRST0xfQUxMT1d8RFJNX1VOTE9DS0VEKSwKPiAgCURSTV9JT0NUTF9ERUYoRFJNX0lP Q1RMX01PREVfRElSVFlGQiwgZHJtX21vZGVfZGlydHlmYl9pb2N0bCwgRFJNX01BU1RFUnxEUk1f Q09OVFJPTF9BTExPV3xEUk1fVU5MT0NLRUQpLAo+ICAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExf TU9ERV9DUkVBVEVfRFVNQiwgZHJtX21vZGVfY3JlYXRlX2R1bWJfaW9jdGwsIERSTV9DT05UUk9M X0FMTE9XfERSTV9VTkxPQ0tFRCksCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f bW9kZV9vYmplY3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZV9vYmplY3QuYwo+IGluZGV4 IGNlNGQyZmIzMjgxMC4uMmJmN2E5ZThhYzA4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fbW9kZV9vYmplY3QuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZV9vYmpl Y3QuYwo+IEBAIC00OTYsMTAgKzQ5NiwxMCBAQCBzdGF0aWMgaW50IHNldF9wcm9wZXJ0eV9hdG9t aWMoc3RydWN0IGRybV9tb2RlX29iamVjdCAqb2JqLAo+ICAJcmV0dXJuIHJldDsKPiAgfQo+ICAK PiAtaW50IGRybV9tb2RlX29ial9zZXRfcHJvcGVydHlfaW9jdGwoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdm9pZCAqZGF0YSwKPiAtCQkJCSAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikK PiAraW50IGRybV9tb2RlX29ial9zZXRfcHJvcGVydHkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK PiArCQkJICAgICAgc3RydWN0IGRybV9tb2RlX29ial9zZXRfcHJvcGVydHkgKmFyZywKPiArCQkJ ICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCj4gIHsKPiAtCXN0cnVjdCBkcm1fbW9k ZV9vYmpfc2V0X3Byb3BlcnR5ICphcmcgPSBkYXRhOwo+ICAJc3RydWN0IGRybV9tb2RlX29iamVj dCAqYXJnX29iajsKPiAgCXN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3BlcnR5Owo+ICAJaW50IHJl dCA9IC1FSU5WQUw7Cj4gQEAgLTUyNywzICs1MjcsOSBAQCBpbnQgZHJtX21vZGVfb2JqX3NldF9w cm9wZXJ0eV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAJZHJt X21vZGVfb2JqZWN0X3B1dChhcmdfb2JqKTsKPiAgCXJldHVybiByZXQ7Cj4gIH0KPiArCj4gK2lu dCBkcm1fbW9kZV9vYmpfc2V0X3Byb3BlcnR5X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHZvaWQgKmRhdGEsCj4gKwkJCQkgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCj4gK3sK PiArCXJldHVybiBkcm1fbW9kZV9vYmpfc2V0X3Byb3BlcnR5KGRldiwgZGF0YSwgZmlsZV9wcml2 KTsKPiArfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lLmMgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX3BsYW5lLmMKPiBpbmRleCAyMmI1NDY2M2I2ZTcuLmIxZjU1NTU2ZTE5 NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX3BsYW5lLmMKPiBAQCAtOTA3LDEwICs5MDcsMTAgQEAgaW50IGRybV9t b2RlX2N1cnNvcjJfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCXJldHVybiBkcm1f bW9kZV9jdXJzb3JfY29tbW9uKGRldiwgcmVxLCBmaWxlX3ByaXYpOwo+ICB9Cj4gIAo+IC1pbnQg ZHJtX21vZGVfcGFnZV9mbGlwX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gLQkJCSAg ICAgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCj4gK2ludCBkcm1fbW9k ZV9wYWdlX2ZsaXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiArCQkgICAgICAgc3RydWN0IGRy bV9tb2RlX2NydGNfcGFnZV9mbGlwX3RhcmdldCAqcGFnZV9mbGlwLAo+ICsJCSAgICAgICBzdHJ1 Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKPiAgewo+IC0Jc3RydWN0IGRybV9tb2RlX2NydGNfcGFn ZV9mbGlwX3RhcmdldCAqcGFnZV9mbGlwID0gZGF0YTsKPiAgCXN0cnVjdCBkcm1fY3J0YyAqY3J0 YzsKPiAgCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gTlVMTDsKPiAgCXN0cnVjdCBkcm1f cGVuZGluZ192YmxhbmtfZXZlbnQgKmUgPSBOVUxMOwo+IEBAIC0xMDgyLDMgKzEwODIsOSBAQCBp bnQgZHJtX21vZGVfcGFnZV9mbGlwX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAo+ ICAJcmV0dXJuIHJldDsKPiAgfQo+ICsKPiAraW50IGRybV9tb2RlX3BhZ2VfZmxpcF9pb2N0bChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICsJCQkgICAgIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1f ZmlsZSAqZmlsZV9wcml2KQo+ICt7Cj4gKwlyZXR1cm4gZHJtX21vZGVfcGFnZV9mbGlwKGRldiwg ZGF0YSwgZmlsZV9wcml2KTsKPiArfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJt X3ByaW1lLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ByaW1lLmMKPiBpbmRleCBlODJhOTc2ZjBm YmEuLmVhZjgzOTJlZjgxNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3ByaW1l LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ByaW1lLmMKPiBAQCAtODUzLDExICs4NTMs MTAgQEAgaW50IGRybV9nZW1fcHJpbWVfZmRfdG9faGFuZGxlKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCj4gIH0KPiAgRVhQT1JUX1NZTUJPTChkcm1fZ2VtX3ByaW1lX2ZkX3RvX2hhbmRsZSk7Cj4g IAo+IC1pbnQgZHJtX3ByaW1lX2hhbmRsZV90b19mZF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCB2b2lkICpkYXRhLAo+IC0JCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQo+ICtp bnQgZHJtX3ByaW1lX2hhbmRsZV90b19mZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICsJCQkg ICBzdHJ1Y3QgZHJtX3ByaW1lX2hhbmRsZSAqYXJncywKPiArCQkJICAgc3RydWN0IGRybV9maWxl ICpmaWxlX3ByaXYpCj4gIHsKPiAtCXN0cnVjdCBkcm1fcHJpbWVfaGFuZGxlICphcmdzID0gZGF0 YTsKPiAtCj4gIAlpZiAoIWRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfUFJJTUUp KQo+ICAJCXJldHVybiAtRUlOVkFMOwo+ICAKPiBAQCAtODcyLDYgKzg3MSwxMiBAQCBpbnQgZHJt X3ByaW1lX2hhbmRsZV90b19mZF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpk YXRhLAo+ICAJCQlhcmdzLT5oYW5kbGUsIGFyZ3MtPmZsYWdzLCAmYXJncy0+ZmQpOwo+ICB9Cj4g IAo+ICtpbnQgZHJtX3ByaW1lX2hhbmRsZV90b19mZF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCB2b2lkICpkYXRhLAo+ICsJCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQo+ICt7 Cj4gKwlyZXR1cm4gZHJtX3ByaW1lX2hhbmRsZV90b19mZChkZXYsIGRhdGEsIGZpbGVfcHJpdik7 Cj4gK30KPiArCj4gIGludCBkcm1fcHJpbWVfZmRfdG9faGFuZGxlX2lvY3RsKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gIAkJCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3By aXYpCj4gIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMKPiBpbmRleCAzMmQ5YmNmNWJlN2YuLmVmNDE1MDhi YzUzOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYwo+IEBAIC0xNDQ1LDEyICsxNDQ1LDExIEBAIHN0 YXRpYyB2b2lkIGRybV93YWl0X3ZibGFua19yZXBseShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1 bnNpZ25lZCBpbnQgcGlwZSwKPiAgCXJlcGx5LT50dmFsX3VzZWMgPSB0cy50dl9uc2VjIC8gMTAw MDsKPiAgfQo+ICAKPiAtaW50IGRybV93YWl0X3ZibGFua19pb2N0bChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB2b2lkICpkYXRhLAo+IC0JCQkgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQo+ ICtpbnQgZHJtX3dhaXRfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuaW9uIGRybV93 YWl0X3ZibGFuayAqdmJsd2FpdCwKPiArCQkgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYp Cj4gIHsKPiAgCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiAgCXN0cnVjdCBkcm1fdmJsYW5rX2Ny dGMgKnZibGFuazsKPiAtCXVuaW9uIGRybV93YWl0X3ZibGFuayAqdmJsd2FpdCA9IGRhdGE7Cj4g IAlpbnQgcmV0Owo+ICAJdTY0IHJlcV9zZXEsIHNlcTsKPiAgCXVuc2lnbmVkIGludCBwaXBlX2lu ZGV4Owo+IEBAIC0xNTY3LDYgKzE1NjYsMTIgQEAgaW50IGRybV93YWl0X3ZibGFua19pb2N0bChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAJcmV0dXJuIHJldDsKPiAgfQo+ ICAKPiAraW50IGRybV93YWl0X3ZibGFua19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2 b2lkICpkYXRhLAo+ICsJCQkgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQo+ICt7Cj4gKwly ZXR1cm4gZHJtX3dhaXRfdmJsYW5rX2lvY3RsKGRldiwgZGF0YSwgZmlsZV9wcml2KTsKPiArfQo+ ICsKPiAgc3RhdGljIHZvaWQgZHJtX2hhbmRsZV92YmxhbmtfZXZlbnRzKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX3BlbmRpbmdf dmJsYW5rX2V2ZW50ICplLCAqdDsKPiAtLSAKPiAyLjE1LjEKPiAKCi0tIApEYW5pZWwgVmV0dGVy ClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5j aApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK