From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan De Oliveira Subject: Re: [PATCH v4] drm/i915: Allocate a drm_atomic_state for the legacy modeset code Date: Thu, 19 Mar 2015 09:50:15 +0200 Message-ID: <1426751415.2824.40.camel@gmail.com> References: <1426574787-12351-1-git-send-email-ander.conselvan.de.oliveira@intel.com> <1426665426-15735-1-git-send-email-ander.conselvan.de.oliveira@intel.com> <76A9B330A4D78C4D99CB292C4CC06C0E36F7B3D4@fmsmsx101.amr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pd0-f175.google.com (mail-pd0-f175.google.com [209.85.192.175]) by gabe.freedesktop.org (Postfix) with ESMTP id 6C3DB6E242 for ; Thu, 19 Mar 2015 00:50:20 -0700 (PDT) Received: by pdbop1 with SMTP id op1so68580652pdb.2 for ; Thu, 19 Mar 2015 00:50:20 -0700 (PDT) In-Reply-To: <76A9B330A4D78C4D99CB292C4CC06C0E36F7B3D4@fmsmsx101.amr.corp.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Konduru, Chandra" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAyMDE1LTAzLTE4IGF0IDIzOjU3ICswMDAwLCBLb25kdXJ1LCBDaGFuZHJhIHdyb3Rl Ogo+IAo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiA+IEZyb206IENvbnNlbHZhbiBE ZSBPbGl2ZWlyYSwgQW5kZXIKPiA+IFNlbnQ6IFdlZG5lc2RheSwgTWFyY2ggMTgsIDIwMTUgMTI6 NTcgQU0KPiA+IFRvOiBpbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBDYzogS29u ZHVydSwgQ2hhbmRyYTsgQ29uc2VsdmFuIERlIE9saXZlaXJhLCBBbmRlcgo+ID4gU3ViamVjdDog W1BBVENIIHY0XSBkcm0vaTkxNTogQWxsb2NhdGUgYSBkcm1fYXRvbWljX3N0YXRlIGZvciB0aGUg bGVnYWN5Cj4gPiBtb2Rlc2V0IGNvZGUKPiA+IAo+ID4gRm9yIHRoZSBhdG9taWMgY29udmVyc2lv biwgdGhlIG1vZGUgc2V0IHBhdGhzIG5lZWQgdG8gYmUgY2hhbmdlZCB0byByZWx5IG9uIGFuCj4g PiBhdG9taWMgc3RhdGUgaW5zdGVhZCBvZiB1c2luZyB0aGUgc3RhZ2VkIGNvbmZpZy4gQnkgdXNp bmcgYW4gYXRvbWljIHN0YXRlIGZvciB0aGUKPiA+IGxlZ2FjeSBjb2RlLCB3ZSB3aWxsIGJlIGFi bGUgdG8gY29udmVydCB0aGUgY29kZSBiYXNlIGluIHNtYWxsIGNodW5rcy4KPiA+IAo+ID4gdjI6 IFNxdWFzaCBwYXRjaCB0aGF0IGFkZHMgc3RhdCBhcmd1bWVudCB0byBpbnRlbF9zZXRfbW9kZSgp LiAoQW5kZXIpCj4gPiAgICAgTWFrZSBldmVyeSBjYWxsZXIgb2YgaW50ZWxfc2V0X21vZGUoKSBh bGxvY2F0ZSBzdGF0ZS4gKERhbmllbCkKPiA+ICAgICBDYWxsIGRybV9hdG9taWNfc3RhdGVfY2xl YXIoKSBpbiBzZXQgY29uZmlnJ3MgZXJyb3IgcGF0aC4gKERhbmllbCkKPiA+IAo+ID4gdjM6IENv cHkgc3RhZ2VkIGNvbmZpZyB0byBhdG9taWMgc3RhdGUgaW4gZm9yY2UgcmVzdG9yZSBwYXRoLiAo QW5kZXIpCj4gPiAKPiA+IHY0OiBEb24ndCB1cGRhdGUgLT5uZXdfY29uZmlnIGZvciBkaXNhYmxl ZCBwaXBlcyBpbiBfX2ludGVsX3NldF9tb2RlKCksCj4gPiAgICAgc2luY2UgaXQgaXMgZXhwZWN0 ZWQgdG8gYmUgTlVMTCBpbiB0aGF0IGNhc2UuIChBbmRlcikKPiAKPiBDYW4geW91IGNsYXJpZnkg d2h5IGl0IGlzIGV4cGVjdGVkIHRvIGJlIE5VTEw/CgpUaGlzIGlzIHBhcnQgb2YgdGhlIHNhbml0 eSBjaGVja2luZyBpbXBsZW1lbnRlZCB3aGVuIHRoZQppbnRlbF9jcnRjLT5uZXdfY29uZmlnIHBv aW50ZXIgd2FzIGludHJvZHVjZWQuIElmIEkgdW5kZXJzdGFuZApjb3JyZWN0bHksIHRoZSBpZGVh IHdhcyB0byByZWR1Y2UgdGhlIHVzYWdlIG9mIHRoYXQgcG9pbnRlciB0byBvbmx5IHRoZQpicmll ZiBtb21lbnQgd2hlbiBpdCBwb2ludGVkIGF0IHNvbWV0aGluZyBkaWZmZXJlbnQgdGhhbiB0aGUg Y3VycmVudApjb25maWcuIFRoYXQgd2F5LCBpZiBzb21lIHBpZWNlIG9mIGNvZGUgcmVsaWVkIG9u IHRoYXQgcG9pbnRlciBvdXRzaWRlCm9mIG1vZGVzZXQsIGl0IHdvdWxkIGJlIGVhc2llciB0byBj YXRjaCB0aGF0IGJ1Zy4KCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IEFuZGVyIENvbnNlbHZhbiBk ZSBPbGl2ZWlyYQo+ID4gPGFuZGVyLmNvbnNlbHZhbi5kZS5vbGl2ZWlyYUBpbnRlbC5jb20+Cj4g PiAtLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAyMDAgKysr KysrKysrKysrKysrKysrKysrKysrKysrKystCj4gPiAtLS0tLQo+ID4gIDEgZmlsZSBjaGFuZ2Vk LCAxNjUgaW5zZXJ0aW9ucygrKSwgMzUgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+IGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiBpbmRleCA4NDU4YmY1Li5jZTM1NjQ3IDEwMDY0 NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+IEBAIC04Myw3ICs4Myw4 IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX3BjaF9jbG9ja19nZXQoc3RydWN0IGludGVsX2NydGMg KmNydGMsCj4gPiAgCQkJCSAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyk7 Cj4gPiAKPiA+ICBzdGF0aWMgaW50IGludGVsX3NldF9tb2RlKHN0cnVjdCBkcm1fY3J0YyAqY3J0 Yywgc3RydWN0IGRybV9kaXNwbGF5X21vZGUKPiA+ICptb2RlLAo+ID4gLQkJCSAgaW50IHgsIGlu dCB5LCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpvbGRfZmIpOwo+ID4gKwkJCSAgaW50IHgsIGlu dCB5LCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpvbGRfZmIsCj4gPiArCQkJICBzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqc3RhdGUpOwo+ID4gIHN0YXRpYyBpbnQgaW50ZWxfZnJhbWVidWZmZXJf aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gIAkJCQkgIHN0cnVjdCBpbnRlbF9mcmFt ZWJ1ZmZlciAqaWZiLAo+ID4gIAkJCQkgIHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyICptb2RlX2Nt ZCwgQEAKPiA+IC04ODAyLDYgKzg4MDMsNyBAQCBib29sIGludGVsX2dldF9sb2FkX2RldGVjdF9w aXBlKHN0cnVjdCBkcm1fY29ubmVjdG9yCj4gPiAqY29ubmVjdG9yLAo+ID4gIAlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2Owo+ID4gIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVy ICpmYjsKPiA+ICAJc3RydWN0IGRybV9tb2RlX2NvbmZpZyAqY29uZmlnID0gJmRldi0+bW9kZV9j b25maWc7Cj4gPiArCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IE5VTEw7Cj4gPiAg CWludCByZXQsIGkgPSAtMTsKPiA+IAo+ID4gIAlEUk1fREVCVUdfS01TKCJbQ09OTkVDVE9SOiVk OiVzXSwgW0VOQ09ERVI6JWQ6JXNdXG4iLCBAQAo+ID4gLTg4ODMsNiArODg4NSwxMiBAQCByZXRy eToKPiA+ICAJb2xkLT5sb2FkX2RldGVjdF90ZW1wID0gdHJ1ZTsKPiA+ICAJb2xkLT5yZWxlYXNl X2ZiID0gTlVMTDsKPiA+IAo+ID4gKwlzdGF0ZSA9IGRybV9hdG9taWNfc3RhdGVfYWxsb2MoZGV2 KTsKPiA+ICsJaWYgKCFzdGF0ZSkKPiA+ICsJCXJldHVybiBmYWxzZTsKPiA+ICsKPiA+ICsJc3Rh dGUtPmFjcXVpcmVfY3R4ID0gY3R4Owo+ID4gKwo+ID4gIAlpZiAoIW1vZGUpCj4gPiAgCQltb2Rl ID0gJmxvYWRfZGV0ZWN0X21vZGU7Cj4gPiAKPiA+IEBAIC04OTA1LDcgKzg5MTMsNyBAQCByZXRy eToKPiA+ICAJCWdvdG8gZmFpbDsKPiA+ICAJfQo+ID4gCj4gPiAtCWlmIChpbnRlbF9zZXRfbW9k ZShjcnRjLCBtb2RlLCAwLCAwLCBmYikpIHsKPiA+ICsJaWYgKGludGVsX3NldF9tb2RlKGNydGMs IG1vZGUsIDAsIDAsIGZiLCBzdGF0ZSkpIHsKPiA+ICAJCURSTV9ERUJVR19LTVMoImZhaWxlZCB0 byBzZXQgbW9kZSBvbiBsb2FkLWRldGVjdCBwaXBlXG4iKTsKPiA+ICAJCWlmIChvbGQtPnJlbGVh c2VfZmIpCj4gPiAgCQkJb2xkLT5yZWxlYXNlX2ZiLT5mdW5jcy0+ZGVzdHJveShvbGQtPnJlbGVh c2VfZmIpOwo+ID4gQEAgLTg5MjQsNiArODkzMiwxMSBAQCByZXRyeToKPiA+ICAJZWxzZQo+ID4g IAkJaW50ZWxfY3J0Yy0+bmV3X2NvbmZpZyA9IE5VTEw7Cj4gPiAgZmFpbF91bmxvY2s6Cj4gPiAr CWlmIChzdGF0ZSkgewo+ID4gKwkJZHJtX2F0b21pY19zdGF0ZV9mcmVlKHN0YXRlKTsKPiA+ICsJ CXN0YXRlID0gTlVMTDsKPiA+ICsJfQo+ID4gKwo+ID4gIAlpZiAocmV0ID09IC1FREVBRExLKSB7 Cj4gPiAgCQlkcm1fbW9kZXNldF9iYWNrb2ZmKGN0eCk7Cj4gPiAgCQlnb3RvIHJldHJ5Owo+ID4g QEAgLTg5MzYsMjIgKzg5NDksMzQgQEAgdm9pZCBpbnRlbF9yZWxlYXNlX2xvYWRfZGV0ZWN0X3Bp cGUoc3RydWN0Cj4gPiBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gPiAgCQkJCSAgICBzdHJ1 Y3QgaW50ZWxfbG9hZF9kZXRlY3RfcGlwZSAqb2xkLAo+ID4gIAkJCQkgICAgc3RydWN0IGRybV9t b2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpICB7Cj4gPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBjb25uZWN0b3ItPmRldjsKPiA+ICAJc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29k ZXIgPQo+ID4gIAkJaW50ZWxfYXR0YWNoZWRfZW5jb2Rlcihjb25uZWN0b3IpOwo+ID4gIAlzdHJ1 Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSAmaW50ZWxfZW5jb2Rlci0+YmFzZTsKPiA+ICAJc3Ry dWN0IGRybV9jcnRjICpjcnRjID0gZW5jb2Rlci0+Y3J0YzsKPiA+ICAJc3RydWN0IGludGVsX2Ny dGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ID4gKwlzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGU7Cj4gPiAKPiA+ICAJRFJNX0RFQlVHX0tNUygiW0NPTk5FQ1RPUjol ZDolc10sIFtFTkNPREVSOiVkOiVzXVxuIiwKPiA+ICAJCSAgICAgIGNvbm5lY3Rvci0+YmFzZS5p ZCwgY29ubmVjdG9yLT5uYW1lLAo+ID4gIAkJICAgICAgZW5jb2Rlci0+YmFzZS5pZCwgZW5jb2Rl ci0+bmFtZSk7Cj4gPiAKPiA+ICAJaWYgKG9sZC0+bG9hZF9kZXRlY3RfdGVtcCkgewo+ID4gKwkJ c3RhdGUgPSBkcm1fYXRvbWljX3N0YXRlX2FsbG9jKGRldik7Cj4gPiArCQlpZiAoIXN0YXRlKSB7 Cj4gPiArCQkJRFJNX0RFQlVHX0tNUygiY2FuJ3QgcmVsZWFzZSBsb2FkIGRldGVjdCBwaXBlXG4i KTsKPiA+ICsJCQlyZXR1cm47Cj4gPiArCQl9Cj4gPiArCj4gPiArCQlzdGF0ZS0+YWNxdWlyZV9j dHggPSBjdHg7Cj4gPiArCj4gPiAgCQl0b19pbnRlbF9jb25uZWN0b3IoY29ubmVjdG9yKS0+bmV3 X2VuY29kZXIgPSBOVUxMOwo+ID4gIAkJaW50ZWxfZW5jb2Rlci0+bmV3X2NydGMgPSBOVUxMOwo+ ID4gIAkJaW50ZWxfY3J0Yy0+bmV3X2VuYWJsZWQgPSBmYWxzZTsKPiA+ICAJCWludGVsX2NydGMt Pm5ld19jb25maWcgPSBOVUxMOwo+ID4gLQkJaW50ZWxfc2V0X21vZGUoY3J0YywgTlVMTCwgMCwg MCwgTlVMTCk7Cj4gPiArCQlpbnRlbF9zZXRfbW9kZShjcnRjLCBOVUxMLCAwLCAwLCBOVUxMLCBz dGF0ZSk7Cj4gPiArCj4gPiArCQlkcm1fYXRvbWljX3N0YXRlX2ZyZWUoc3RhdGUpOwo+ID4gCj4g PiAgCQlpZiAob2xkLT5yZWxlYXNlX2ZiKSB7Cj4gPiAgCQkJZHJtX2ZyYW1lYnVmZmVyX3VucmVn aXN0ZXJfcHJpdmF0ZShvbGQtPnJlbGVhc2VfZmIpOwo+ID4gQEAgLTEwMzQ1LDEwICsxMDM3MCwy MiBAQCBzdGF0aWMgYm9vbCBjaGVja19kaWdpdGFsX3BvcnRfY29uZmxpY3RzKHN0cnVjdAo+ID4g ZHJtX2RldmljZSAqZGV2KQo+ID4gIAlyZXR1cm4gdHJ1ZTsKPiA+ICB9Cj4gPiAKPiA+IC1zdGF0 aWMgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKgo+ID4gK3N0YXRpYyB2b2lkCj4gPiArY2xlYXJf aW50ZWxfY3J0Y19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkgewo+ ID4gKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgdG1wX3N0YXRlOwo+ID4gKwo+ID4gKwkvKiBDbGVh ciBvbmx5IHRoZSBpbnRlbCBzcGVjaWZpYyBwYXJ0IG9mIHRoZSBjcnRjIHN0YXRlICovCj4gPiAr CXRtcF9zdGF0ZSA9IGNydGNfc3RhdGUtPmJhc2U7Cj4gPiArCW1lbXNldChjcnRjX3N0YXRlLCAw LCBzaXplb2YgKmNydGNfc3RhdGUpOwo+ID4gKwljcnRjX3N0YXRlLT5iYXNlID0gdG1wX3N0YXRl Owo+ID4gK30KPiBJbiBzY2FsZXJzIHBhdGNoIGFib3ZlIGZ1bmN0aW9uIGhhcyBhbiB1cGRhdGUg dG8gcHJlc2VydmUKPiBzY2FsZXJfc3RhdGUuIEhvcGVmdWxseSB5b3VyIHBhdGNoIGdldHMgbWVy Z2VkIGZpcnN0IHRoZW4KPiBzY2FsZXJzIHBhdGNoLgo+IAo+ID4gKwo+ID4gK3N0YXRpYyBpbnQK PiA+ICBpbnRlbF9tb2Rlc2V0X3BpcGVfY29uZmlnKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+ ICAJCQkgIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ID4gLQkJCSAgc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKm1vZGUpCj4gPiArCQkJICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9k ZSwKPiA+ICsJCQkgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiA+ICB7Cj4gPiAg CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4gPiAgCXN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyOwo+ID4gQEAgLTEwMzU4LDE3ICsxMDM5NSwxOSBAQCBpbnRlbF9tb2Rl c2V0X3BpcGVfY29uZmlnKHN0cnVjdCBkcm1fY3J0Ywo+ID4gKmNydGMsCj4gPiAKPiA+ICAJaWYg KCFjaGVja19lbmNvZGVyX2Nsb25pbmcodG9faW50ZWxfY3J0YyhjcnRjKSkpIHsKPiA+ICAJCURS TV9ERUJVR19LTVMoInJlamVjdGluZyBpbnZhbGlkIGNsb25pbmcgY29uZmlndXJhdGlvblxuIik7 Cj4gPiAtCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKPiA+ICsJCXJldHVybiAtRUlOVkFMOwo+ ID4gIAl9Cj4gPiAKPiA+ICAJaWYgKCFjaGVja19kaWdpdGFsX3BvcnRfY29uZmxpY3RzKGRldikp IHsKPiA+ICAJCURSTV9ERUJVR19LTVMoInJlamVjdGluZyBjb25mbGljdGluZyBkaWdpdGFsIHBv cnQKPiA+IGNvbmZpZ3VyYXRpb25cbiIpOwo+ID4gLQkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7 Cj4gPiArCQlyZXR1cm4gLUVJTlZBTDsKPiA+ICAJfQo+ID4gCj4gPiAtCXBpcGVfY29uZmlnID0g a3phbGxvYyhzaXplb2YoKnBpcGVfY29uZmlnKSwgR0ZQX0tFUk5FTCk7Cj4gPiAtCWlmICghcGlw ZV9jb25maWcpCj4gPiAtCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKPiA+ICsJcGlwZV9jb25m aWcgPSBpbnRlbF9hdG9taWNfZ2V0X2NydGNfc3RhdGUoc3RhdGUsIHRvX2ludGVsX2NydGMoY3J0 YykpOwo+ID4gKwlpZiAoSVNfRVJSKHBpcGVfY29uZmlnKSkKPiA+ICsJCXJldHVybiBQVFJfRVJS KHBpcGVfY29uZmlnKTsKPiA+ICsKPiA+ICsJY2xlYXJfaW50ZWxfY3J0Y19zdGF0ZShwaXBlX2Nv bmZpZyk7Cj4gPiAKPiA+ICAJcGlwZV9jb25maWctPmJhc2UuY3J0YyA9IGNydGM7Cj4gPiAgCWRy bV9tb2RlX2NvcHkoJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUsIG1vZGUpOyBAQCAt Cj4gPiAxMDQ2MywxMCArMTA1MDIsOSBAQCBlbmNvZGVyX3JldHJ5Ogo+ID4gIAlEUk1fREVCVUdf S01TKCJwbGFuZSBicHA6ICVpLCBwaXBlIGJwcDogJWksIGRpdGhlcmluZzogJWlcbiIsCj4gPiAg CQkgICAgICBwbGFuZV9icHAsIHBpcGVfY29uZmlnLT5waXBlX2JwcCwgcGlwZV9jb25maWctPmRp dGhlcik7Cj4gPiAKPiA+IC0JcmV0dXJuIHBpcGVfY29uZmlnOwo+ID4gKwlyZXR1cm4gMDsKPiA+ ICBmYWlsOgo+ID4gLQlrZnJlZShwaXBlX2NvbmZpZyk7Cj4gPiAtCXJldHVybiBFUlJfUFRSKHJl dCk7Cj4gPiArCXJldHVybiByZXQ7Cj4gPiAgfQo+ID4gCj4gPiAgLyogQ29tcHV0ZXMgd2hpY2gg Y3J0Y3MgYXJlIGFmZmVjdGVkIGFuZCBzZXRzIHRoZSByZWxldmFudCBiaXRzIGluIHRoZSBtYXNr LiBGb3IKPiA+IEBAIC0xMTE0NCwxNyArMTExODIsMTkgQEAgc3RhdGljIHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICoKPiA+IGludGVsX21vZGVzZXRfY29tcHV0ZV9jb25maWcoc3RydWN0IGRybV9j cnRjICpjcnRjLAo+ID4gIAkJCSAgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCj4g PiAgCQkJICAgICBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiA+ICsJCQkgICAgIHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPiA+ICAJCQkgICAgIHVuc2lnbmVkICptb2Rlc2V0 X3BpcGVzLAo+ID4gIAkJCSAgICAgdW5zaWduZWQgKnByZXBhcmVfcGlwZXMsCj4gPiAgCQkJICAg ICB1bnNpZ25lZCAqZGlzYWJsZV9waXBlcykKPiA+ICB7Cj4gPiAgCXN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpwaXBlX2NvbmZpZyA9IE5VTEw7Cj4gPiArCWludCByZXQgPSAwOwo+ID4gCj4gPiAg CWludGVsX21vZGVzZXRfYWZmZWN0ZWRfcGlwZXMoY3J0YywgbW9kZXNldF9waXBlcywKPiA+ICAJ CQkJICAgICBwcmVwYXJlX3BpcGVzLCBkaXNhYmxlX3BpcGVzKTsKPiA+IAo+ID4gIAlpZiAoKCpt b2Rlc2V0X3BpcGVzKSA9PSAwKQo+ID4gLQkJZ290byBvdXQ7Cj4gPiArCQlyZXR1cm4gTlVMTDsK PiA+IAo+ID4gIAkvKgo+ID4gIAkgKiBOb3RlIHRoaXMgbmVlZHMgY2hhbmdlcyB3aGVuIHdlIHN0 YXJ0IHRyYWNraW5nIG11bHRpcGxlIG1vZGVzIEBAIC0KPiA+IDExMTYyLDE0ICsxMTIwMiwxNyBA QCBpbnRlbF9tb2Rlc2V0X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+ ICAJICogKGkuZS4gb25lIHBpcGVfY29uZmlnIGZvciBlYWNoIGNydGMpIHJhdGhlciB0aGFuIGp1 c3QgdGhlIG9uZQo+ID4gIAkgKiBmb3IgdGhpcyBjcnRjLgo+ID4gIAkgKi8KPiA+IC0JcGlwZV9j b25maWcgPSBpbnRlbF9tb2Rlc2V0X3BpcGVfY29uZmlnKGNydGMsIGZiLCBtb2RlKTsKPiA+IC0J aWYgKElTX0VSUihwaXBlX2NvbmZpZykpIHsKPiA+IC0JCWdvdG8gb3V0Owo+ID4gLQl9Cj4gPiAr CXJldCA9IGludGVsX21vZGVzZXRfcGlwZV9jb25maWcoY3J0YywgZmIsIG1vZGUsIHN0YXRlKTsK PiA+ICsJaWYgKHJldCkKPiA+ICsJCXJldHVybiBFUlJfUFRSKHJldCk7Cj4gPiArCj4gPiArCXBp cGVfY29uZmlnID0gaW50ZWxfYXRvbWljX2dldF9jcnRjX3N0YXRlKHN0YXRlLCB0b19pbnRlbF9j cnRjKGNydGMpKTsKPiA+ICsJaWYgKElTX0VSUihwaXBlX2NvbmZpZykpCj4gPiArCQlyZXR1cm4g cGlwZV9jb25maWc7Cj4gPiArCj4gCj4gV2h5IGRvbid0IGludGVsX21vZGVzZXRfcGlwZV9jb25m aWcoKSByZXR1cm4gcGlwZV9jb25maWcgYXMgaXQgdXNlZCB0bywgCj4gaW5zdGVhZCBvZiBub3Qg cmV0dXJuaW5nIGFuZCB0aGVuIGNhbGxpbmcgaW50ZWxfYXRvbWljX2dldF9jcnRjX3N0YXRlKCk/ CgpObyBwYXJ0aWN1bGFyIHJlYXNvbi4gSSB0aGluayBpdCBtYWRlIHNlbnNlIGF0IHNvbWUgaW50 ZXJtZWRpYXRlIGRlc2lnbgpzdGVwLCBhbmQgSSBqdXN0IGxlZnQgaXQgbGlrZSB0aGF0LgoKPiA+ ICAJaW50ZWxfZHVtcF9waXBlX2NvbmZpZyh0b19pbnRlbF9jcnRjKGNydGMpLCBwaXBlX2NvbmZp ZywKPiA+ICAJCQkgICAgICAgIlttb2Rlc2V0XSIpOwo+ID4gCj4gPiAtb3V0Ogo+ID4gIAlyZXR1 cm4gcGlwZV9jb25maWc7Cj4gPiAgfQo+ID4gCj4gPiBAQCAtMTEyMTQsNiArMTEyNTcsNyBAQCBz dGF0aWMgaW50IF9faW50ZWxfc2V0X21vZGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ID4gIAlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ID4gIAlzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqc2F2ZWRfbW9kZTsKPiA+ICsJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGVfY29weSA9IE5VTEw7Cj4gPiAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRj Owo+ID4gIAlpbnQgcmV0ID0gMDsKPiA+IAo+ID4gQEAgLTExMjIxLDYgKzExMjY1LDEyIEBAIHN0 YXRpYyBpbnQgX19pbnRlbF9zZXRfbW9kZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gPiAgCWlm ICghc2F2ZWRfbW9kZSkKPiA+ICAJCXJldHVybiAtRU5PTUVNOwo+ID4gCj4gPiArCWNydGNfc3Rh dGVfY29weSA9IGttYWxsb2Moc2l6ZW9mKCpjcnRjX3N0YXRlX2NvcHkpLCBHRlBfS0VSTkVMKTsK PiA+ICsJaWYgKCFjcnRjX3N0YXRlX2NvcHkpIHsKPiA+ICsJCXJldCA9IC1FTk9NRU07Cj4gPiAr CQlnb3RvIGRvbmU7Cj4gPiArCX0KPiA+ICsKPiA+ICAJKnNhdmVkX21vZGUgPSBjcnRjLT5tb2Rl Owo+ID4gCj4gPiAgCWlmIChtb2Rlc2V0X3BpcGVzKQo+ID4gQEAgLTExMzA3LDYgKzExMzU3LDIy IEBAIGRvbmU6Cj4gPiAgCWlmIChyZXQgJiYgY3J0Yy0+c3RhdGUtPmVuYWJsZSkKPiA+ICAJCWNy dGMtPm1vZGUgPSAqc2F2ZWRfbW9kZTsKPiA+IAo+ID4gKwlpZiAocmV0ID09IDAgJiYgcGlwZV9j b25maWcpIHsKPiA+ICsJCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjKTsKPiA+ICsKPiA+ICsJCS8qIFRoZSBwaXBlX2NvbmZpZyB3aWxsIGJlIGZyZWVk IHdpdGggdGhlIGF0b21pYyBzdGF0ZSwgc28KPiA+ICsJCSAqIG1ha2UgYSBjb3B5LiAqLwo+ID4g KwkJbWVtY3B5KGNydGNfc3RhdGVfY29weSwgaW50ZWxfY3J0Yy0+Y29uZmlnLAo+ID4gKwkJICAg ICAgIHNpemVvZiAqY3J0Y19zdGF0ZV9jb3B5KTsKPiA+ICsJCWludGVsX2NydGMtPmNvbmZpZyA9 IGNydGNfc3RhdGVfY29weTsKPiA+ICsJCWludGVsX2NydGMtPmJhc2Uuc3RhdGUgPSAmY3J0Y19z dGF0ZV9jb3B5LT5iYXNlOwo+IAo+IFdoeSBkb24ndCB5b3UgYXZvaWQgY3JlYXRpbmcgYSBjcnRj X3N0YXRlX2NvcHkgYnkgbm90IGZyZWVpbmcgaW50ZWxfY3J0Yy0+Y29uZmlnCj4gYW5kIGNvcHlp bmcgcGlwZV9jb25maWcgZGlyZWN0bHkgaW50byBpbnRlbF9jcnRjLT5jb25maWc/Cj4gVGhpcyBz aG91bGQgYmUgZmluZSB3aGVuIGRybSBhdG9taWMgZnJlZSBmdW5jdGlvbiBmcmVlcyBjcnRjX3N0 YXRlIGluc2lkZSBkcm1fc3RhdGUuCgpFeGNlcHQgdGhhdCBpbnRlbF9jcnRjLT5uZXdfY29uZmln IHdpbGwgc3RpbGwgcG9pbnQgdG8gdGhlIGZyZWVkCnBpcGVfY29uZmlnLCBzbyB3ZSB3b3VsZCBo YXZlIHRvIGFkZCBsb2dpYyB0byBmaXggdGhhdCB0b28uIEFuZCBvbiBwYXRjaAo0IG1ha2Ugc3Vy ZSB0aGUgcGlwZV9jb25maWcgaXMgdXBkYXRlZCBldmVuIGlmIG1vZGVzZXRfcGlwZXMgaXMgMC4K ClNpbmNlIHdoYXQgaW4gdGhlIGVuZCB3aGF0IHdlIHJlYWxseSB3YW50IGlzIHRvIGhhdmUgYSBz aW1wbGUgc3dhcCwgSQpyYXRoZXIgYXZvaWQgZXh0cmEgY2h1cm4gaGVyZSwgcGVyZmVjdGluZyBj b2RlIHRoYXQgaXMgZ29pbmcgdG8gYmUKZGVsZXRlZC4KCj4gT25jZSBhdG9taWNfY3J0YyBmdWxs eSBkb25lLCBJIGd1ZXNzIHRoaXMgY29weSBzaG91bGQgZ28gYXdheQo+IGFuZCBzd2FwIG9mIGNy dGNfc3RhdGVzIHNob3VsZCB0YWtlIGNhcmUgb2YgdGhpcy4KPiAKPiA+ICsKPiA+ICsJCWlmICht b2Rlc2V0X3BpcGVzKQo+ID4gKwkJCWludGVsX2NydGMtPm5ld19jb25maWcgPSBpbnRlbF9jcnRj LT5jb25maWc7Cj4gPiArCX0gZWxzZSB7Cj4gPiArCQlrZnJlZShjcnRjX3N0YXRlX2NvcHkpOwo+ ID4gKwl9Cj4gPiArCj4gPiAgCWtmcmVlKHNhdmVkX21vZGUpOwo+ID4gIAlyZXR1cm4gcmV0Owo+ ID4gIH0KPiA+IEBAIC0xMTMzMiwyNyArMTEzOTgsODEgQEAgc3RhdGljIGludCBpbnRlbF9zZXRf bW9kZV9waXBlcyhzdHJ1Y3QgZHJtX2NydGMKPiA+ICpjcnRjLAo+ID4gCj4gPiAgc3RhdGljIGlu dCBpbnRlbF9zZXRfbW9kZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gPiAgCQkJICBzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKPiA+IC0JCQkgIGludCB4LCBpbnQgeSwgc3RydWN0IGRy bV9mcmFtZWJ1ZmZlciAqZmIpCj4gPiArCQkJICBpbnQgeCwgaW50IHksIHN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKmZiLAo+ID4gKwkJCSAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ ID4gIHsKPiA+ICAJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnOwo+ID4gIAl1 bnNpZ25lZCBtb2Rlc2V0X3BpcGVzLCBwcmVwYXJlX3BpcGVzLCBkaXNhYmxlX3BpcGVzOwo+ID4g KwlpbnQgcmV0ID0gMDsKPiA+IAo+ID4gLQlwaXBlX2NvbmZpZyA9IGludGVsX21vZGVzZXRfY29t cHV0ZV9jb25maWcoY3J0YywgbW9kZSwgZmIsCj4gPiArCXBpcGVfY29uZmlnID0gaW50ZWxfbW9k ZXNldF9jb21wdXRlX2NvbmZpZyhjcnRjLCBtb2RlLCBmYiwgc3RhdGUsCj4gPiAgCQkJCQkJICAg Jm1vZGVzZXRfcGlwZXMsCj4gPiAgCQkJCQkJICAgJnByZXBhcmVfcGlwZXMsCj4gPiAgCQkJCQkJ ICAgJmRpc2FibGVfcGlwZXMpOwo+ID4gCj4gPiAtCWlmIChJU19FUlIocGlwZV9jb25maWcpKQo+ ID4gLQkJcmV0dXJuIFBUUl9FUlIocGlwZV9jb25maWcpOwo+ID4gKwlpZiAoSVNfRVJSKHBpcGVf Y29uZmlnKSkgewo+ID4gKwkJcmV0ID0gUFRSX0VSUihwaXBlX2NvbmZpZyk7Cj4gPiArCQlnb3Rv IG91dDsKPiA+ICsJfQo+ID4gKwo+ID4gKwlyZXQgPSBpbnRlbF9zZXRfbW9kZV9waXBlcyhjcnRj LCBtb2RlLCB4LCB5LCBmYiwgcGlwZV9jb25maWcsCj4gPiArCQkJCSAgIG1vZGVzZXRfcGlwZXMs IHByZXBhcmVfcGlwZXMsCj4gPiArCQkJCSAgIGRpc2FibGVfcGlwZXMpOwo+ID4gKwlpZiAocmV0 KQo+ID4gKwkJZ290byBvdXQ7Cj4gPiAKPiA+IC0JcmV0dXJuIGludGVsX3NldF9tb2RlX3BpcGVz KGNydGMsIG1vZGUsIHgsIHksIGZiLCBwaXBlX2NvbmZpZywKPiA+IC0JCQkJICAgIG1vZGVzZXRf cGlwZXMsIHByZXBhcmVfcGlwZXMsCj4gPiAtCQkJCSAgICBkaXNhYmxlX3BpcGVzKTsKPiA+ICtv dXQ6Cj4gPiArCXJldHVybiByZXQ7Cj4gPiAgfQo+ID4gCj4gPiAgdm9pZCBpbnRlbF9jcnRjX3Jl c3RvcmVfbW9kZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpICB7Cj4gPiAtCWludGVsX3NldF9tb2Rl KGNydGMsICZjcnRjLT5tb2RlLCBjcnRjLT54LCBjcnRjLT55LCBjcnRjLT5wcmltYXJ5LT5mYik7 Cj4gPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4gPiArCXN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKPiA+ICsJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXI7Cj4gPiArCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcjsKPiA+ICsJc3RydWN0 IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5lY3Rvcl9zdGF0ZTsKPiA+ICsKPiA+ICsJc3RhdGUg PSBkcm1fYXRvbWljX3N0YXRlX2FsbG9jKGRldik7Cj4gPiArCWlmICghc3RhdGUpIHsKPiA+ICsJ CURSTV9ERUJVR19LTVMoIltDUlRDOiVkXSBtb2RlIHJlc3RvcmUgZmFpbGVkLCBvdXQgb2YKPiA+ IG1lbW9yeSIsCj4gPiArCQkJICAgICAgY3J0Yy0+YmFzZS5pZCk7Cj4gPiArCQlyZXR1cm47Cj4g PiArCX0KPiA+ICsKPiA+ICsJc3RhdGUtPmFjcXVpcmVfY3R4ID0gZGV2LT5tb2RlX2NvbmZpZy5h Y3F1aXJlX2N0eDsKPiA+ICsKPiA+ICsJLyogVGhlIGZvcmNlIHJlc3RvcmUgcGF0aCBpbiB0aGUg SFcgcmVhZG91dCBjb2RlIHJlbGllcyBvbiB0aGUgc3RhZ2VkCj4gPiArCSAqIGNvbmZpZyBzdGls bCBrZWVwaW5nIHRoZSB1c2VyIHJlcXVlc3RlZCBjb25maWcgd2hpbGUgdGhlIGFjdHVhbAo+ID4g KwkgKiBzdGF0ZSBoYXMgYmVlbiBvdmVyd3JpdHRlbiBieSB0aGUgY29uZmlndXJhdGlvbiByZWFk IGZyb20gSFcuIFdlCj4gPiArCSAqIG5lZWQgdG8gY29weSB0aGUgc3RhZ2VkIGNvbmZpZyB0byB0 aGUgYXRvbWljIHN0YXRlLCBvdGhlcndpc2UgdGhlCj4gPiArCSAqIG1vZGUgc2V0IHdpbGwganVz dCByZWFwcGx5IHRoZSBzdGF0ZSB0aGUgSFcgaXMgYWxyZWFkeSBpbi4gKi8KPiAKPiBXZSBoYXZl IGRpc2N1c3NlZCB0aGlzIGluIG91ciBjYWxsIHRoYXQKPiBkcm1fY29ubmVjdG9yLT5jcnRjIChz dGF0ZSByZWFkIG91dCBmcm9tIGh3KQo+IGludGVsX2VuY29kZXItPm5ld19jcnRjICh0aGF0IHN0 aWxsIGhhcyB0aGUgb2xkIHZhbHVlKQo+IAo+IGJ1dCBjYW4geW91IGNsYXJpZnkgd2h5ICBiZWxv dyBpc24ndCAKPiByZXF1aXJlZCBiZWZvcmU/CgpCZWZvcmUgdGhpcyBwYXRjaCBzZXJpZXMsIHRo ZSBtb2RlIHNldCBjb2RlIHJlbGllcyBvbiB0aGUgc3RhZ2VkIGNvbmZpZywKaS5lLiwgaW50ZWxf Y3J0Yy0+bmV3X2VuYWJsZSwgaW50ZWxfY29ubmVjdG9yLT5uZXdfZW5jb2RlciBhbmQKaW50ZWxf ZW5jb2Rlci0+bmV3X2NydGMuIFRoZXNlIHZhbHVlcyBhcmUgbm90IGNoYW5nZWQgZHVyaW5nIEhX IHN0YXRlCnJlYWQgb3V0LiBBZnRlciB0aGUgc2VyaWVzLCB0aGUgc2FtZSBjb2RlIHdpbGwgbG9v ayBhdCB0aGUgY3J0YyBhbmQKY29ubmVjdG9yIHN0YXRlcyBpdCBnZXRzIGZyb20gdGhlIGRybV9h dG9taWNfc3RhdGUuCgpUaGUgYXRvbWljIHN0YXRlIHVzZWQgZm9yIHRoaXMgbW9kZSBzZXQgY2Fs bCB3YXMganVzdCBhbGxvY2F0ZWQgYWJvdmUuClNpbmNlIHRoZSBIVyByZWFkb3V0IHN0YXRlIHJl cGxhY2VzIHRoZSBjdXJyZW50IHN0YXRlCihkcm1fY3J0Yy0+ZW5hYmxlZDsgZHJtX2Nvbm5lY3Rv ci0+ZW5jb2RlcjsgZHJtX2VuY29kZXItPmNydGMpLCB0aGUgZW5kCnJlc3VsdCBpcyB0aGF0IGFu eSBjYWxsIHRvIGRybV9hdG9taWNfZ2V0X3tjcnRjLGNvbm5lY3Rvcn1fc3RhdGUgd2lsbAp1c2Ug dGhlICpjdXJyZW50IEhXIHN0YXRlKi4gV2Ugd2FudCB0byB3cml0ZSB0aGUgb2xkIHN0YXRlICh0 aGUgc3RhdGUKcmVxdWVzdGVkIGJ5IHRoZSB1c2VyKSB0byB0aGUgZHJtX2F0b21pY19zdHJ1Y3Qs IHNvIHRoYXQgYWZ0ZXIgdGhpcyB0aGUKSFcgc3RhdGUgaXMgdGhlIHNhbWUgYXMgdGhlIG9sZCB1 c2VyIHJlcXVlc3RlZCBzdGF0ZS4KCj4gPiArCWZvcl9lYWNoX2ludGVsX2VuY29kZXIoZGV2LCBl bmNvZGVyKSB7Cj4gPiArCQlpZiAoJmVuY29kZXItPm5ld19jcnRjLT5iYXNlICE9IGNydGMpCj4g PiArCQkJY29udGludWU7Cj4gPiArCj4gPiArCQlmb3JfZWFjaF9pbnRlbF9jb25uZWN0b3IoZGV2 LCBjb25uZWN0b3IpIHsKPiA+ICsJCQlpZiAoY29ubmVjdG9yLT5uZXdfZW5jb2RlciAhPSBlbmNv ZGVyKQo+ID4gKwkJCQljb250aW51ZTsKPiA+ICsKPiA+ICsJCQljb25uZWN0b3Jfc3RhdGUgPQo+ ID4gZHJtX2F0b21pY19nZXRfY29ubmVjdG9yX3N0YXRlKHN0YXRlLCAmY29ubmVjdG9yLT5iYXNl KTsKPiA+ICsJCQlpZiAoSVNfRVJSKGNvbm5lY3Rvcl9zdGF0ZSkpIHsKPiA+ICsJCQkJRFJNX0RF QlVHX0tNUygiRmFpbGVkIHRvIGFkZAo+ID4gW0NPTk5FQ1RPUjolZDolc10gdG8gc3RhdGU6ICVs ZFxuIiwKPiA+ICsJCQkJCSAgICAgIGNvbm5lY3Rvci0+YmFzZS5iYXNlLmlkLAo+ID4gKwkJCQkJ ICAgICAgY29ubmVjdG9yLT5iYXNlLm5hbWUsCj4gPiArCQkJCQkgICAgICBQVFJfRVJSKGNvbm5l Y3Rvcl9zdGF0ZSkpOwo+ID4gKwkJCQljb250aW51ZTsKPiA+ICsJCQl9Cj4gPiArCj4gPiArCQkJ Y29ubmVjdG9yX3N0YXRlLT5jcnRjID0gY3J0YzsKPiA+ICsJCQljb25uZWN0b3Jfc3RhdGUtPmJl c3RfZW5jb2RlciA9ICZlbmNvZGVyLT5iYXNlOwo+ID4gKwkJfQo+ID4gKwl9Cj4gPiArCj4gPiAr CWludGVsX3NldF9tb2RlKGNydGMsICZjcnRjLT5tb2RlLCBjcnRjLT54LCBjcnRjLT55LCBjcnRj LT5wcmltYXJ5LT5mYiwKPiA+ICsJCSAgICAgICBzdGF0ZSk7Cj4gPiArCj4gPiArCWRybV9hdG9t aWNfc3RhdGVfZnJlZShzdGF0ZSk7Cj4gPiAgfQo+ID4gCj4gPiAgI3VuZGVmIGZvcl9lYWNoX2lu dGVsX2NydGNfbWFza2VkCj4gPiBAQCAtMTE2NzcsNiArMTE3OTcsNyBAQCBzdGF0aWMgaW50IGlu dGVsX2NydGNfc2V0X2NvbmZpZyhzdHJ1Y3QKPiA+IGRybV9tb2RlX3NldCAqc2V0KSAgewo+ID4g IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2Owo+ID4gIAlzdHJ1Y3QgZHJtX21vZGVfc2V0IHNhdmVf c2V0Owo+ID4gKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBOVUxMOwo+ID4gIAlz dHJ1Y3QgaW50ZWxfc2V0X2NvbmZpZyAqY29uZmlnOwo+ID4gIAlzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqcGlwZV9jb25maWc7Cj4gPiAgCXVuc2lnbmVkIG1vZGVzZXRfcGlwZXMsIHByZXBhcmVf cGlwZXMsIGRpc2FibGVfcGlwZXM7IEBAIC0xMTcyMSwxMgo+ID4gKzExODQyLDIwIEBAIHN0YXRp YyBpbnQgaW50ZWxfY3J0Y19zZXRfY29uZmlnKHN0cnVjdCBkcm1fbW9kZV9zZXQgKnNldCkKPiA+ ICAJICogc3VjaCBjYXNlcy4gKi8KPiA+ICAJaW50ZWxfc2V0X2NvbmZpZ19jb21wdXRlX21vZGVf Y2hhbmdlcyhzZXQsIGNvbmZpZyk7Cj4gPiAKPiA+ICsJc3RhdGUgPSBkcm1fYXRvbWljX3N0YXRl X2FsbG9jKGRldik7Cj4gPiArCWlmICghc3RhdGUpIHsKPiA+ICsJCXJldCA9IC1FTk9NRU07Cj4g PiArCQlnb3RvIG91dF9jb25maWc7Cj4gPiArCX0KPiA+ICsKPiA+ICsJc3RhdGUtPmFjcXVpcmVf Y3R4ID0gZGV2LT5tb2RlX2NvbmZpZy5hY3F1aXJlX2N0eDsKPiA+ICsKPiA+ICAJcmV0ID0gaW50 ZWxfbW9kZXNldF9zdGFnZV9vdXRwdXRfc3RhdGUoZGV2LCBzZXQsIGNvbmZpZyk7Cj4gPiAgCWlm IChyZXQpCj4gPiAgCQlnb3RvIGZhaWw7Cj4gPiAKPiA+ICAJcGlwZV9jb25maWcgPSBpbnRlbF9t b2Rlc2V0X2NvbXB1dGVfY29uZmlnKHNldC0+Y3J0Yywgc2V0LT5tb2RlLAo+ID4gLQkJCQkJCSAg IHNldC0+ZmIsCj4gPiArCQkJCQkJICAgc2V0LT5mYiwgc3RhdGUsCj4gPiAgCQkJCQkJICAgJm1v ZGVzZXRfcGlwZXMsCj4gPiAgCQkJCQkJICAgJnByZXBhcmVfcGlwZXMsCj4gPiAgCQkJCQkJICAg JmRpc2FibGVfcGlwZXMpOwo+ID4gQEAgLTExNzQ2LDEwICsxMTg3NSw2IEBAIHN0YXRpYyBpbnQg aW50ZWxfY3J0Y19zZXRfY29uZmlnKHN0cnVjdAo+ID4gZHJtX21vZGVfc2V0ICpzZXQpCj4gPiAg CQkgKi8KPiA+ICAJfQo+ID4gCj4gPiAtCS8qIHNldF9tb2RlIHdpbGwgZnJlZSBpdCBpbiB0aGUg bW9kZV9jaGFuZ2VkIGNhc2UgKi8KPiA+IC0JaWYgKCFjb25maWctPm1vZGVfY2hhbmdlZCkKPiA+ IC0JCWtmcmVlKHBpcGVfY29uZmlnKTsKPiA+IC0KPiA+ICAJaW50ZWxfdXBkYXRlX3BpcGVfc2l6 ZSh0b19pbnRlbF9jcnRjKHNldC0+Y3J0YykpOwo+ID4gCj4gPiAgCWlmIChjb25maWctPm1vZGVf Y2hhbmdlZCkgewo+ID4gQEAgLTExNzk1LDYgKzExOTIwLDggQEAgc3RhdGljIGludCBpbnRlbF9j cnRjX3NldF9jb25maWcoc3RydWN0Cj4gPiBkcm1fbW9kZV9zZXQgKnNldCkKPiA+ICBmYWlsOgo+ ID4gIAkJaW50ZWxfc2V0X2NvbmZpZ19yZXN0b3JlX3N0YXRlKGRldiwgY29uZmlnKTsKPiA+IAo+ ID4gKwkJZHJtX2F0b21pY19zdGF0ZV9jbGVhcihzdGF0ZSk7Cj4gPiArCj4gPiAgCQkvKgo+ID4g IAkJICogSEFDSzogaWYgdGhlIHBpcGUgd2FzIG9uLCBidXQgd2UgZGlkbid0IGhhdmUgYSBmcmFt ZWJ1ZmZlciwKPiA+ICAJCSAqIGZvcmNlIHRoZSBwaXBlIG9mZiB0byBhdm9pZCBvb3BzaW5nIGlu IHRoZSBtb2Rlc2V0IGNvZGUgQEAKPiA+IC0xMTgwNywxMSArMTE5MzQsMTUgQEAgZmFpbDoKPiA+ ICAJCS8qIFRyeSB0byByZXN0b3JlIHRoZSBjb25maWcgKi8KPiA+ICAJCWlmIChjb25maWctPm1v ZGVfY2hhbmdlZCAmJgo+ID4gIAkJICAgIGludGVsX3NldF9tb2RlKHNhdmVfc2V0LmNydGMsIHNh dmVfc2V0Lm1vZGUsCj4gPiAtCQkJCSAgIHNhdmVfc2V0LngsIHNhdmVfc2V0LnksIHNhdmVfc2V0 LmZiKSkKPiA+ICsJCQkJICAgc2F2ZV9zZXQueCwgc2F2ZV9zZXQueSwgc2F2ZV9zZXQuZmIsCj4g PiArCQkJCSAgIHN0YXRlKSkKPiA+ICAJCQlEUk1fRVJST1IoImZhaWxlZCB0byByZXN0b3JlIGNv bmZpZyBhZnRlciBtb2Rlc2V0Cj4gPiBmYWlsdXJlXG4iKTsKPiA+ICAJfQo+ID4gCj4gPiAgb3V0 X2NvbmZpZzoKPiA+ICsJaWYgKHN0YXRlKQo+ID4gKwkJZHJtX2F0b21pY19zdGF0ZV9mcmVlKHN0 YXRlKTsKPiA+ICsKPiA+ICAJaW50ZWxfc2V0X2NvbmZpZ19mcmVlKGNvbmZpZyk7Cj4gPiAgCXJl dHVybiByZXQ7Cj4gPiAgfQo+ID4gQEAgLTEzODUyLDggKzEzOTgzLDcgQEAgdm9pZCBpbnRlbF9t b2Rlc2V0X3NldHVwX2h3X3N0YXRlKHN0cnVjdAo+ID4gZHJtX2RldmljZSAqZGV2LAo+ID4gIAkJ CXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9Cj4gPiAgCQkJCWRldl9wcml2LT5waXBlX3RvX2NydGNf bWFwcGluZ1twaXBlXTsKPiA+IAo+ID4gLQkJCWludGVsX3NldF9tb2RlKGNydGMsICZjcnRjLT5t b2RlLCBjcnRjLT54LCBjcnRjLT55LAo+ID4gLQkJCQkgICAgICAgY3J0Yy0+cHJpbWFyeS0+ZmIp Owo+ID4gKwkJCWludGVsX2NydGNfcmVzdG9yZV9tb2RlKGNydGMpOwo+IEkgc2VlIHlvdSBhcmUg dXNpbmcgaW50ZWxfY3J0Y19yZXN0b3JlX21vZGUgaW5zdGVhZCBvZiBpbnRlbF9zZXRfbW9kZSgp Cj4gdG8gYWNxdWlyZSAKPiBJbiB0aGUgY29kZSB0aGVyZSBpcyBjb21tZW50IGJlZm9yZSBhYm92 ZSBodW5rOgo+ICAgICAgICAgLyoKPiAgICAgICAgICAqIFdlIG5lZWQgdG8gdXNlIHJhdyBpbnRl cmZhY2VzIGZvciByZXN0b3Jpbmcgc3RhdGUgdG8gYXZvaWQKPiAgICAgICAgICAqIGNoZWNraW5n IChib2d1cykgaW50ZXJtZWRpYXRlIHN0YXRlcy4KPiAgICAgICAgICAqLwo+IE1heSBiZSB0aGlz IG5lZWRzIHNvbWUgcmVmaW5lbWVudC4KCldlIGhhdmUgYSBzZXBhcmF0ZSB0YXNrIHRvIGNvbnZl cnQgdGhpcyBwYXJ0IG9mIHRoZSBjb2RlIHRvIGF0b21pYy4gT25jZQp0aGF0IGlzIGRvbmUsIGF0 IHRoaXMgcG9pbnQgd2UnbGwgcmVhZCB0aGUgSFcgc3RhdGUgaW50byBhCmRybV9hdG9taWNfc3Ry dWN0IGFuZCBzd2FwIHRoYXQgd2l0aCB0aGUgY3VycmVudCBzdGF0ZS4gVGhlbiwgd2UnbGwgZG8K YW4gYXRvbWljIG1vZGUgc2V0IHdpdGggdGhlIHN3YXBwZWQgb3V0IHN0YXRlLiBUaGlzIGlzIGp1 c3QgYW4KaW50ZXJtZWRpYXJ5IHN0ZXAgdG8gbGV0IHVzIGJlZ2luIHRoZSBjb252ZXJzaW9uIHdp dGhvdXQgYnJlYWtpbmcKdGhpbmdzLgoKQW5kZXIKCj4gPiAgCQl9Cj4gPiAgCX0gZWxzZSB7Cj4g PiAgCQlpbnRlbF9tb2Rlc2V0X3VwZGF0ZV9zdGFnZWRfb3V0cHV0X3N0YXRlKGRldik7Cj4gPiAt LQo+ID4gMi4xLjAKPiAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=