From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH 3/3] drm/i915: Remove unused "valid" parameter from pte_encode Date: Wed, 05 Oct 2016 11:49:12 +0300 Message-ID: <87twcr2nav.fsf@gaia.fi.intel.com> References: <1475589267-12440-1-git-send-email-michal.winiarski@intel.com> <1475589267-12440-3-git-send-email-michal.winiarski@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9F3826E7EA for ; Wed, 5 Oct 2016 08:49:33 +0000 (UTC) In-Reply-To: <1475589267-12440-3-git-send-email-michal.winiarski@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?utf-8?Q?Micha=C5=82?= Winiarski , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org TWljaGHFgiBXaW5pYXJza2kgPG1pY2hhbC53aW5pYXJza2lAaW50ZWwuY29tPiB3cml0ZXM6Cgo+ IFdlJ3JlIG5vIGxvbmdlciB1c2luZyBhbnkgaW52YWxpZCBQVEVzIC0gZXZlcnl0aGluZyB0aGF0 J3Mgbm90IHVzZWQKPiBzaG91bGQgYmUgcG9pbnRpbmcgdG8gc2NyYXRjaC4KPgoKSSB3YXMgYWJv dXQgdG8gc3VnZ2VzdCB0aGlzIGJlZm9yZSBwYXRjaCAyLzMgdG8gbWFrZSBpdCBzaW1wbGVyLgoK Rm9yIGhpc3RvcmljYWwgY29udGV4dDogaHR0cHM6Ly9wYXRjaHdvcmsua2VybmVsLm9yZy9wYXRj aC85MTM1NDExLwoKSSB3b3VsZCBhbWVuZCB0aGUgY29tbWl0IG1lc3NhZ2UgYSBsaXR0bGUuICdX ZSdyZSBubyBsb25nZXIgdXNpbmcnCnN1Z2dlc3RzIHRoYXQgd2UgY2hhbmdlZCByZWNlbnRseS9i eSBlYXJsaWVyIGNvbW1pdHMgaG93IHdlIG1hcAppbnRvIHRoZSBpbnZhbGlkIHB0ZXMuCgpJIHRo aW5rIGl0IGhhcyBhbHdheXMgYmVlbiB0aGUgY2FzZSB0aGF0IHdlIG1hcCB0byB2YWxpZD09c2Ny YXRjaC4KCkxldHMgdHJ5IHRvIGRpc3RpbGwgdGhlIHJlYXNvbmluZyBmcm9tIENocmlzIFdpbHNv bidzIHJlcGx5CmZvciBmdXR1cmUgcmVhZGVyLCBzb21ldGhpbmcgbGlrZToKCidXZSBuZXZlciB1 c2VkIGFueSBpbnZhbGlkIHB0ZXMsIGFzIHRob3NlIHdlcmUgcHV0IGluIHBsYWNlIGZvciBhCnBv c3NpYmlsaXR5IG9mIGRvaW5nIGdwdSBmYXVsdHMuIEhvd2V2ZXIgb3VyIGJhdGNoYnVmZmVycyBh cmUKbm90IHJlc3RyaWN0ZWQgaW4gbGVuZ3RoLCBzbyBldmVyeXRoaW5nIG5lZWRzIHRvIGJlIHBv aW50aW5nIHRvCnNvbWV0aGluZyBhbmQgdGh1cyBvdXQtb2YtYm91bmRzIHBvaW50aW5nIHRvIHNj cmF0Y2guIFJlbW92ZSB0aGUKdmFsaWQgZmxhZyBhcyBpdCBpcyBhbHdheXMgdHJ1ZS4nCgpUaGF0 IG1lc3NhZ2UgY29udmV5ZWQgd2l0aCBwZXJoYXBzIGJldHRlciB3b3JkaW5nL2VuZ2xpc2gsCmFu ZCB5b3UgY2FuIGFkZCBteSwKUmV2aWV3ZWQtYnk6IE1pa2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBh bGFAaW50ZWwuY29tPgoKLU1pa2EKCj4gQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2ls c29uLmNvLnVrPgo+IENjOiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5p bnRlbC5jb20+Cj4gQ2M6IE1pY2hlbCBUaGllcnJ5IDxtaWNoZWwudGhpZXJyeUBpbnRlbC5jb20+ Cj4gQ2M6IE1pa2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFAaW50ZWwuY29tPgo+IFNpZ25lZC1v ZmYtYnk6IE1pY2hhxYIgV2luaWFyc2tpIDxtaWNoYWwud2luaWFyc2tpQGludGVsLmNvbT4KPiAt LS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICAgIHwgICA2ICst Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyB8ICAgMyArLQo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyAgICAgICAgfCAxNTQgKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f Z3R0LmggICAgICAgIHwgICA1ICstCj4gIDQgZmlsZXMgY2hhbmdlZCwgNjUgaW5zZXJ0aW9ucygr KSwgMTAzIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gaW5kZXggMTQx OGMxYy4uYjM0NDM0MCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IEBAIC05MTksOCAr OTE5LDcgQEAgb3V0X3VucGluOgo+ICAJaWYgKG5vZGUuYWxsb2NhdGVkKSB7Cj4gIAkJd21iKCk7 Cj4gIAkJZ2d0dC0+YmFzZS5jbGVhcl9yYW5nZSgmZ2d0dC0+YmFzZSwKPiAtCQkJCSAgICAgICBu b2RlLnN0YXJ0LCBub2RlLnNpemUsCj4gLQkJCQkgICAgICAgdHJ1ZSk7Cj4gKwkJCQkgICAgICAg bm9kZS5zdGFydCwgbm9kZS5zaXplKTsKPiAgCQlpOTE1X2dlbV9vYmplY3RfdW5waW5fcGFnZXMo b2JqKTsKPiAgCQlyZW1vdmVfbWFwcGFibGVfbm9kZSgmbm9kZSk7Cj4gIAl9IGVsc2Ugewo+IEBA IC0xMjI4LDggKzEyMjcsNyBAQCBvdXRfdW5waW46Cj4gIAlpZiAobm9kZS5hbGxvY2F0ZWQpIHsK PiAgCQl3bWIoKTsKPiAgCQlnZ3R0LT5iYXNlLmNsZWFyX3JhbmdlKCZnZ3R0LT5iYXNlLAo+IC0J CQkJICAgICAgIG5vZGUuc3RhcnQsIG5vZGUuc2l6ZSwKPiAtCQkJCSAgICAgICB0cnVlKTsKPiAr CQkJCSAgICAgICBub2RlLnN0YXJ0LCBub2RlLnNpemUpOwo+ICAJCWk5MTVfZ2VtX29iamVjdF91 bnBpbl9wYWdlcyhvYmopOwo+ICAJCXJlbW92ZV9tYXBwYWJsZV9ub2RlKCZub2RlKTsKPiAgCX0g ZWxzZSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNi dWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwo+IGlu ZGV4IDMzYzg1MjIuLjU0YjA5MWIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZXhlY2J1ZmZlci5jCj4gQEAgLTM3MCw4ICszNzAsNyBAQCBzdGF0aWMgdm9pZCByZWxvY19j YWNoZV9maW5pKHN0cnVjdCByZWxvY19jYWNoZSAqY2FjaGUpCj4gIAo+ICAJCQlnZ3R0LT5iYXNl LmNsZWFyX3JhbmdlKCZnZ3R0LT5iYXNlLAo+ICAJCQkJCSAgICAgICBjYWNoZS0+bm9kZS5zdGFy dCwKPiAtCQkJCQkgICAgICAgY2FjaGUtPm5vZGUuc2l6ZSwKPiAtCQkJCQkgICAgICAgdHJ1ZSk7 Cj4gKwkJCQkJICAgICAgIGNhY2hlLT5ub2RlLnNpemUpOwo+ICAJCQlkcm1fbW1fcmVtb3ZlX25v ZGUoJmNhY2hlLT5ub2RlKTsKPiAgCQl9IGVsc2Ugewo+ICAJCQlpOTE1X3ZtYV91bnBpbigoc3Ry dWN0IGk5MTVfdm1hICopY2FjaGUtPm5vZGUubW0pOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2d0dC5jCj4gaW5kZXggMjgxZTM0OS4uZmE3OGJiMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2d0dC5jCj4gQEAgLTE5MSwxNSArMTkxLDEzIEBAIHN0YXRpYyB2b2lkIHBwZ3R0X3Vu YmluZF92bWEoc3RydWN0IGk5MTVfdm1hICp2bWEpCj4gIHsKPiAgCXZtYS0+dm0tPmNsZWFyX3Jh bmdlKHZtYS0+dm0sCj4gIAkJCSAgICAgdm1hLT5ub2RlLnN0YXJ0LAo+IC0JCQkgICAgIHZtYS0+ c2l6ZSwKPiAtCQkJICAgICB0cnVlKTsKPiArCQkJICAgICB2bWEtPnNpemUpOwo+ICB9Cj4gIAo+ ICBzdGF0aWMgZ2VuOF9wdGVfdCBnZW44X3B0ZV9lbmNvZGUoZG1hX2FkZHJfdCBhZGRyLAo+IC0J CQkJICBlbnVtIGk5MTVfY2FjaGVfbGV2ZWwgbGV2ZWwsCj4gLQkJCQkgIGJvb2wgdmFsaWQpCj4g KwkJCQkgIGVudW0gaTkxNV9jYWNoZV9sZXZlbCBsZXZlbCkKPiAgewo+IC0JZ2VuOF9wdGVfdCBw dGUgPSB2YWxpZCA/IF9QQUdFX1BSRVNFTlQgfCBfUEFHRV9SVyA6IDA7Cj4gKwlnZW44X3B0ZV90 IHB0ZSA9IF9QQUdFX1BSRVNFTlQgfCBfUEFHRV9SVzsKPiAgCXB0ZSB8PSBhZGRyOwo+ICAKPiAg CXN3aXRjaCAobGV2ZWwpIHsKPiBAQCAtMjE4LDEwICsyMTYsOSBAQCBzdGF0aWMgZ2VuOF9wdGVf dCBnZW44X3B0ZV9lbmNvZGUoZG1hX2FkZHJfdCBhZGRyLAo+ICB9Cj4gIAo+ICBzdGF0aWMgZ2Vu OF9wZGVfdCBnZW44X3BkZV9lbmNvZGUoY29uc3QgZG1hX2FkZHJfdCBhZGRyLAo+IC0JCQkJICBj b25zdCBlbnVtIGk5MTVfY2FjaGVfbGV2ZWwgbGV2ZWwsCj4gLQkJCQkgIGJvb2wgdmFsaWQpCj4g KwkJCQkgIGNvbnN0IGVudW0gaTkxNV9jYWNoZV9sZXZlbCBsZXZlbCkKPiAgewo+IC0JZ2VuOF9w ZGVfdCBwZGUgPSB2YWxpZCA/IF9QQUdFX1BSRVNFTlQgfCBfUEFHRV9SVyA6IDA7Cj4gKwlnZW44 X3BkZV90IHBkZSA9IF9QQUdFX1BSRVNFTlQgfCBfUEFHRV9SVzsKPiAgCXBkZSB8PSBhZGRyOwo+ ICAJaWYgKGxldmVsICE9IEk5MTVfQ0FDSEVfTk9ORSkKPiAgCQlwZGUgfD0gUFBBVF9DQUNIRURf UERFX0lOREVYOwo+IEBAIC0yMzUsOSArMjMyLDkgQEAgc3RhdGljIGdlbjhfcGRlX3QgZ2VuOF9w ZGVfZW5jb2RlKGNvbnN0IGRtYV9hZGRyX3QgYWRkciwKPiAgCj4gIHN0YXRpYyBnZW42X3B0ZV90 IHNuYl9wdGVfZW5jb2RlKGRtYV9hZGRyX3QgYWRkciwKPiAgCQkJCSBlbnVtIGk5MTVfY2FjaGVf bGV2ZWwgbGV2ZWwsCj4gLQkJCQkgYm9vbCB2YWxpZCwgdTMyIHVudXNlZCkKPiArCQkJCSB1MzIg dW51c2VkKQo+ICB7Cj4gLQlnZW42X3B0ZV90IHB0ZSA9IHZhbGlkID8gR0VONl9QVEVfVkFMSUQg OiAwOwo+ICsJZ2VuNl9wdGVfdCBwdGUgPSBHRU42X1BURV9WQUxJRDsKPiAgCXB0ZSB8PSBHRU42 X1BURV9BRERSX0VOQ09ERShhZGRyKTsKPiAgCj4gIAlzd2l0Y2ggKGxldmVsKSB7Cj4gQEAgLTI1 Nyw5ICsyNTQsOSBAQCBzdGF0aWMgZ2VuNl9wdGVfdCBzbmJfcHRlX2VuY29kZShkbWFfYWRkcl90 IGFkZHIsCj4gIAo+ICBzdGF0aWMgZ2VuNl9wdGVfdCBpdmJfcHRlX2VuY29kZShkbWFfYWRkcl90 IGFkZHIsCj4gIAkJCQkgZW51bSBpOTE1X2NhY2hlX2xldmVsIGxldmVsLAo+IC0JCQkJIGJvb2wg dmFsaWQsIHUzMiB1bnVzZWQpCj4gKwkJCQkgdTMyIHVudXNlZCkKPiAgewo+IC0JZ2VuNl9wdGVf dCBwdGUgPSB2YWxpZCA/IEdFTjZfUFRFX1ZBTElEIDogMDsKPiArCWdlbjZfcHRlX3QgcHRlID0g R0VONl9QVEVfVkFMSUQ7Cj4gIAlwdGUgfD0gR0VONl9QVEVfQUREUl9FTkNPREUoYWRkcik7Cj4g IAo+ICAJc3dpdGNoIChsZXZlbCkgewo+IEBAIC0yODEsOSArMjc4LDkgQEAgc3RhdGljIGdlbjZf cHRlX3QgaXZiX3B0ZV9lbmNvZGUoZG1hX2FkZHJfdCBhZGRyLAo+ICAKPiAgc3RhdGljIGdlbjZf cHRlX3QgYnl0X3B0ZV9lbmNvZGUoZG1hX2FkZHJfdCBhZGRyLAo+ICAJCQkJIGVudW0gaTkxNV9j YWNoZV9sZXZlbCBsZXZlbCwKPiAtCQkJCSBib29sIHZhbGlkLCB1MzIgZmxhZ3MpCj4gKwkJCQkg dTMyIGZsYWdzKQo+ICB7Cj4gLQlnZW42X3B0ZV90IHB0ZSA9IHZhbGlkID8gR0VONl9QVEVfVkFM SUQgOiAwOwo+ICsJZ2VuNl9wdGVfdCBwdGUgPSBHRU42X1BURV9WQUxJRDsKPiAgCXB0ZSB8PSBH RU42X1BURV9BRERSX0VOQ09ERShhZGRyKTsKPiAgCj4gIAlpZiAoIShmbGFncyAmIFBURV9SRUFE X09OTFkpKQo+IEBAIC0yOTcsOSArMjk0LDkgQEAgc3RhdGljIGdlbjZfcHRlX3QgYnl0X3B0ZV9l bmNvZGUoZG1hX2FkZHJfdCBhZGRyLAo+ICAKPiAgc3RhdGljIGdlbjZfcHRlX3QgaHN3X3B0ZV9l bmNvZGUoZG1hX2FkZHJfdCBhZGRyLAo+ICAJCQkJIGVudW0gaTkxNV9jYWNoZV9sZXZlbCBsZXZl bCwKPiAtCQkJCSBib29sIHZhbGlkLCB1MzIgdW51c2VkKQo+ICsJCQkJIHUzMiB1bnVzZWQpCj4g IHsKPiAtCWdlbjZfcHRlX3QgcHRlID0gdmFsaWQgPyBHRU42X1BURV9WQUxJRCA6IDA7Cj4gKwln ZW42X3B0ZV90IHB0ZSA9IEdFTjZfUFRFX1ZBTElEOwo+ICAJcHRlIHw9IEhTV19QVEVfQUREUl9F TkNPREUoYWRkcik7Cj4gIAo+ICAJaWYgKGxldmVsICE9IEk5MTVfQ0FDSEVfTk9ORSkKPiBAQCAt MzEwLDkgKzMwNyw5IEBAIHN0YXRpYyBnZW42X3B0ZV90IGhzd19wdGVfZW5jb2RlKGRtYV9hZGRy X3QgYWRkciwKPiAgCj4gIHN0YXRpYyBnZW42X3B0ZV90IGlyaXNfcHRlX2VuY29kZShkbWFfYWRk cl90IGFkZHIsCj4gIAkJCQkgIGVudW0gaTkxNV9jYWNoZV9sZXZlbCBsZXZlbCwKPiAtCQkJCSAg Ym9vbCB2YWxpZCwgdTMyIHVudXNlZCkKPiArCQkJCSAgdTMyIHVudXNlZCkKPiAgewo+IC0JZ2Vu Nl9wdGVfdCBwdGUgPSB2YWxpZCA/IEdFTjZfUFRFX1ZBTElEIDogMDsKPiArCWdlbjZfcHRlX3Qg cHRlID0gR0VONl9QVEVfVkFMSUQ7Cj4gIAlwdGUgfD0gSFNXX1BURV9BRERSX0VOQ09ERShhZGRy KTsKPiAgCj4gIAlzd2l0Y2ggKGxldmVsKSB7Cj4gQEAgLTQ3Myw3ICs0NzAsNyBAQCBzdGF0aWMg dm9pZCBnZW44X2luaXRpYWxpemVfcHQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4g IAlnZW44X3B0ZV90IHNjcmF0Y2hfcHRlOwo+ICAKPiAgCXNjcmF0Y2hfcHRlID0gZ2VuOF9wdGVf ZW5jb2RlKHZtLT5zY3JhdGNoX3BhZ2UuZGFkZHIsCj4gLQkJCQkgICAgICBJOTE1X0NBQ0hFX0xM QywgdHJ1ZSk7Cj4gKwkJCQkgICAgICBJOTE1X0NBQ0hFX0xMQyk7Cj4gIAo+ICAJZmlsbF9weCh2 bS0+ZGV2LCBwdCwgc2NyYXRjaF9wdGUpOwo+ICB9Cj4gQEAgLTQ4Niw3ICs0ODMsNyBAQCBzdGF0 aWMgdm9pZCBnZW42X2luaXRpYWxpemVfcHQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0s Cj4gIAlXQVJOX09OKHZtLT5zY3JhdGNoX3BhZ2UuZGFkZHIgPT0gMCk7Cj4gIAo+ICAJc2NyYXRj aF9wdGUgPSB2bS0+cHRlX2VuY29kZSh2bS0+c2NyYXRjaF9wYWdlLmRhZGRyLAo+IC0JCQkJICAg ICBJOTE1X0NBQ0hFX0xMQywgdHJ1ZSwgMCk7Cj4gKwkJCQkgICAgIEk5MTVfQ0FDSEVfTExDLCAw KTsKPiAgCj4gIAlmaWxsMzJfcHgodm0tPmRldiwgcHQsIHNjcmF0Y2hfcHRlKTsKPiAgfQo+IEBA IC01MzMsOCArNTMwLDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9pbml0aWFsaXplX3BkKHN0cnVjdCBp OTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ICB7Cj4gIAlnZW44X3BkZV90IHNjcmF0Y2hfcGRlOwo+ ICAKPiAtCXNjcmF0Y2hfcGRlID0gZ2VuOF9wZGVfZW5jb2RlKHB4X2RtYSh2bS0+c2NyYXRjaF9w dCksIEk5MTVfQ0FDSEVfTExDLAo+IC0JCQkJICAgICAgdHJ1ZSk7Cj4gKwlzY3JhdGNoX3BkZSA9 IGdlbjhfcGRlX2VuY29kZShweF9kbWEodm0tPnNjcmF0Y2hfcHQpLCBJOTE1X0NBQ0hFX0xMQyk7 Cj4gIAo+ICAJZmlsbF9weCh2bS0+ZGV2LCBwZCwgc2NyYXRjaF9wZGUpOwo+ICB9Cj4gQEAgLTYx NSw4ICs2MTEsNyBAQCBzdGF0aWMgdm9pZCBnZW44X2luaXRpYWxpemVfcGRwKHN0cnVjdCBpOTE1 X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ICB7Cj4gIAlnZW44X3BwZ3R0X3BkcGVfdCBzY3JhdGNoX3Bk cGU7Cj4gIAo+IC0Jc2NyYXRjaF9wZHBlID0gZ2VuOF9wZHBlX2VuY29kZShweF9kbWEodm0tPnNj cmF0Y2hfcGQpLCBJOTE1X0NBQ0hFX0xMQywKPiAtCQkJCQl0cnVlKTsKPiArCXNjcmF0Y2hfcGRw ZSA9IGdlbjhfcGRwZV9lbmNvZGUocHhfZG1hKHZtLT5zY3JhdGNoX3BkKSwgSTkxNV9DQUNIRV9M TEMpOwo+ICAKPiAgCWZpbGxfcHgodm0tPmRldiwgcGRwLCBzY3JhdGNoX3BkcGUpOwo+ICB9Cj4g QEAgLTYyNyw3ICs2MjIsNyBAQCBzdGF0aWMgdm9pZCBnZW44X2luaXRpYWxpemVfcG1sNChzdHJ1 Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgCWdlbjhfcHBndHRfcG1sNGVfdCBzY3JhdGNo X3BtbDRlOwo+ICAKPiAgCXNjcmF0Y2hfcG1sNGUgPSBnZW44X3BtbDRlX2VuY29kZShweF9kbWEo dm0tPnNjcmF0Y2hfcGRwKSwKPiAtCQkJCQkgIEk5MTVfQ0FDSEVfTExDLCB0cnVlKTsKPiArCQkJ CQkgIEk5MTVfQ0FDSEVfTExDKTsKPiAgCj4gIAlmaWxsX3B4KHZtLT5kZXYsIHBtbDQsIHNjcmF0 Y2hfcG1sNGUpOwo+ICB9Cj4gQEAgLTY0NCw4ICs2MzksNyBAQCBnZW44X3NldHVwX3BhZ2VfZGly ZWN0b3J5KHN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCwKPiAgCQlyZXR1cm47Cj4gIAo+ICAJ cGFnZV9kaXJlY3RvcnlwbyA9IGttYXBfcHgocGRwKTsKPiAtCXBhZ2VfZGlyZWN0b3J5cG9baW5k ZXhdID0gZ2VuOF9wZHBlX2VuY29kZShweF9kbWEocGQpLCBJOTE1X0NBQ0hFX0xMQywKPiAtCQkJ CQkJICAgdHJ1ZSk7Cj4gKwlwYWdlX2RpcmVjdG9yeXBvW2luZGV4XSA9IGdlbjhfcGRwZV9lbmNv ZGUocHhfZG1hKHBkKSwgSTkxNV9DQUNIRV9MTEMpOwo+ICAJa3VubWFwX3B4KHBwZ3R0LCBwYWdl X2RpcmVjdG9yeXBvKTsKPiAgfQo+ICAKPiBAQCAtNjU4LDcgKzY1Miw3IEBAIGdlbjhfc2V0dXBf cGFnZV9kaXJlY3RvcnlfcG9pbnRlcihzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQsCj4gIAln ZW44X3BwZ3R0X3BtbDRlX3QgKnBhZ2VtYXAgPSBrbWFwX3B4KHBtbDQpOwo+ICAKPiAgCVdBUk5f T04oIVVTRVNfRlVMTF80OEJJVF9QUEdUVChwcGd0dC0+YmFzZS5kZXYpKTsKPiAtCXBhZ2VtYXBb aW5kZXhdID0gZ2VuOF9wbWw0ZV9lbmNvZGUocHhfZG1hKHBkcCksIEk5MTVfQ0FDSEVfTExDLCB0 cnVlKTsKPiArCXBhZ2VtYXBbaW5kZXhdID0gZ2VuOF9wbWw0ZV9lbmNvZGUocHhfZG1hKHBkcCks IEk5MTVfQ0FDSEVfTExDKTsKPiAgCWt1bm1hcF9weChwcGd0dCwgcGFnZW1hcCk7Cj4gIH0KPiAg Cj4gQEAgLTcxMyw4ICs3MDcsNyBAQCBzdGF0aWMgaW50IGdlbjhfNDhiX21tX3N3aXRjaChzdHJ1 Y3QgaTkxNV9od19wcGd0dCAqcHBndHQsCj4gIHN0YXRpYyBib29sIGdlbjhfcHBndHRfY2xlYXJf cHQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gIAkJCQlzdHJ1Y3QgaTkxNV9wYWdl X3RhYmxlICpwdCwKPiAgCQkJCXVpbnQ2NF90IHN0YXJ0LAo+IC0JCQkJdWludDY0X3QgbGVuZ3Ro LAo+IC0JCQkJYm9vbCB1c2Vfc2NyYXRjaCkKPiArCQkJCXVpbnQ2NF90IGxlbmd0aCkKPiAgewo+ ICAJc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0ID0gaTkxNV92bV90b19wcGd0dCh2bSk7Cj4g IAo+IEBAIC03MjUsNyArNzE4LDcgQEAgc3RhdGljIGJvb2wgZ2VuOF9wcGd0dF9jbGVhcl9wdChz dHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgCj4gIAlnZW44X3B0ZV90ICpwdF92YWRk cjsKPiAgCWdlbjhfcHRlX3Qgc2NyYXRjaF9wdGUgPSBnZW44X3B0ZV9lbmNvZGUodm0tPnNjcmF0 Y2hfcGFnZS5kYWRkciwKPiAtCQkJCQkJIEk5MTVfQ0FDSEVfTExDLCB1c2Vfc2NyYXRjaCk7Cj4g KwkJCQkJCSBJOTE1X0NBQ0hFX0xMQyk7Cj4gIAo+ICAJaWYgKFdBUk5fT04oIXB4X3BhZ2UocHQp KSkKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gQEAgLTc1MCw4ICs3NDMsNyBAQCBzdGF0aWMgYm9vbCBn ZW44X3BwZ3R0X2NsZWFyX3B0KHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ICBzdGF0 aWMgYm9vbCBnZW44X3BwZ3R0X2NsZWFyX3BkKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZt LAo+ICAJCQkJc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKnBkLAo+ICAJCQkJdWludDY0X3Qg c3RhcnQsCj4gLQkJCQl1aW50NjRfdCBsZW5ndGgsCj4gLQkJCQlib29sIHVzZV9zY3JhdGNoKQo+ ICsJCQkJdWludDY0X3QgbGVuZ3RoKQo+ICB7Cj4gIAlzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBn dHQgPSBpOTE1X3ZtX3RvX3BwZ3R0KHZtKTsKPiAgCj4gQEAgLTc2MCwxNSArNzUyLDE0IEBAIHN0 YXRpYyBib29sIGdlbjhfcHBndHRfY2xlYXJfcGQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAq dm0sCj4gIAo+ICAJZ2VuOF9wZGVfdCAqcGRlX3ZhZGRyOwo+ICAJZ2VuOF9wZGVfdCBzY3JhdGNo X3BkZSA9IGdlbjhfcGRlX2VuY29kZShweF9kbWEodm0tPnNjcmF0Y2hfcHQpLAo+IC0JCQkJCQkg STkxNV9DQUNIRV9MTEMsIHVzZV9zY3JhdGNoKTsKPiArCQkJCQkJIEk5MTVfQ0FDSEVfTExDKTsK PiAgCWJvb2wgcmVkdWNlOwo+ICAKPiAgCWdlbjhfZm9yX2VhY2hfcGRlKHB0LCBwZCwgc3RhcnQs IGxlbmd0aCwgcGRlKSB7Cj4gIAkJaWYgKFdBUk5fT04oIXBkLT5wYWdlX3RhYmxlW3BkZV0pKQo+ ICAJCQlicmVhazsKPiAgCj4gLQkJcmVkdWNlID0gZ2VuOF9wcGd0dF9jbGVhcl9wdCh2bSwgcHQs IHN0YXJ0LCBsZW5ndGgsCj4gLQkJCQkJICAgICB1c2Vfc2NyYXRjaCk7Cj4gKwkJcmVkdWNlID0g Z2VuOF9wcGd0dF9jbGVhcl9wdCh2bSwgcHQsIHN0YXJ0LCBsZW5ndGgpOwo+ICAKPiAgCQlpZiAo cmVkdWNlKSB7Cj4gIAkJCV9fY2xlYXJfYml0KHBkZSwgcGQtPnVzZWRfcGRlcyk7Cj4gQEAgLTc4 OSw4ICs3ODAsNyBAQCBzdGF0aWMgYm9vbCBnZW44X3BwZ3R0X2NsZWFyX3BkKHN0cnVjdCBpOTE1 X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ICBzdGF0aWMgYm9vbCBnZW44X3BwZ3R0X2NsZWFyX3BkcChz dHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgCQkJCSBzdHJ1Y3QgaTkxNV9wYWdlX2Rp cmVjdG9yeV9wb2ludGVyICpwZHAsCj4gIAkJCQkgdWludDY0X3Qgc3RhcnQsCj4gLQkJCQkgdWlu dDY0X3QgbGVuZ3RoLAo+IC0JCQkJIGJvb2wgdXNlX3NjcmF0Y2gpCj4gKwkJCQkgdWludDY0X3Qg bGVuZ3RoKQo+ICB7Cj4gIAlzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQgPSBpOTE1X3ZtX3Rv X3BwZ3R0KHZtKTsKPiAgCj4gQEAgLTc5OSwxNiArNzg5LDE0IEBAIHN0YXRpYyBib29sIGdlbjhf cHBndHRfY2xlYXJfcGRwKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ICAKPiAgCWdl bjhfcHBndHRfcGRwZV90ICpwZHBlX3ZhZGRyOwo+ICAJZ2VuOF9wcGd0dF9wZHBlX3Qgc2NyYXRj aF9wZHBlID0KPiAtCQlnZW44X3BkcGVfZW5jb2RlKHB4X2RtYSh2bS0+c2NyYXRjaF9wZCksIEk5 MTVfQ0FDSEVfTExDLAo+IC0JCQkJIHVzZV9zY3JhdGNoKTsKPiArCQlnZW44X3BkcGVfZW5jb2Rl KHB4X2RtYSh2bS0+c2NyYXRjaF9wZCksIEk5MTVfQ0FDSEVfTExDKTsKPiAgCWJvb2wgcmVkdWNl Owo+ICAKPiAgCWdlbjhfZm9yX2VhY2hfcGRwZShwZCwgcGRwLCBzdGFydCwgbGVuZ3RoLCBwZHBl KSB7Cj4gIAkJaWYgKFdBUk5fT04oIXBkcC0+cGFnZV9kaXJlY3RvcnlbcGRwZV0pKQo+ICAJCQli cmVhazsKPiAgCj4gLQkJcmVkdWNlID0gZ2VuOF9wcGd0dF9jbGVhcl9wZCh2bSwgcGQsIHN0YXJ0 LCBsZW5ndGgsCj4gLQkJCQkJICAgICB1c2Vfc2NyYXRjaCk7Cj4gKwkJcmVkdWNlID0gZ2VuOF9w cGd0dF9jbGVhcl9wZCh2bSwgcGQsIHN0YXJ0LCBsZW5ndGgpOwo+ICAKPiAgCQlpZiAocmVkdWNl KSB7Cj4gIAkJCV9fY2xlYXJfYml0KHBkcGUsIHBkcC0+dXNlZF9wZHBlcyk7Cj4gQEAgLTgyOSw4 ICs4MTcsNyBAQCBzdGF0aWMgYm9vbCBnZW44X3BwZ3R0X2NsZWFyX3BkcChzdHJ1Y3QgaTkxNV9h ZGRyZXNzX3NwYWNlICp2bSwKPiAgc3RhdGljIHZvaWQgZ2VuOF9wcGd0dF9jbGVhcl9wbWw0KHN0 cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ICAJCQkJICBzdHJ1Y3QgaTkxNV9wbWw0ICpw bWw0LAo+ICAJCQkJICB1aW50NjRfdCBzdGFydCwKPiAtCQkJCSAgdWludDY0X3QgbGVuZ3RoLAo+ IC0JCQkJICBib29sIHVzZV9zY3JhdGNoKQo+ICsJCQkJICB1aW50NjRfdCBsZW5ndGgpCj4gIHsK PiAgCXN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCA9IGk5MTVfdm1fdG9fcHBndHQodm0pOwo+ ICAKPiBAQCAtODM5LDE2ICs4MjYsMTQgQEAgc3RhdGljIHZvaWQgZ2VuOF9wcGd0dF9jbGVhcl9w bWw0KHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ICAKPiAgCWdlbjhfcHBndHRfcG1s NGVfdCAqcG1sNGVfdmFkZHI7Cj4gIAlnZW44X3BwZ3R0X3BtbDRlX3Qgc2NyYXRjaF9wbWw0ZSA9 Cj4gLQkJZ2VuOF9wbWw0ZV9lbmNvZGUocHhfZG1hKHZtLT5zY3JhdGNoX3BkcCksIEk5MTVfQ0FD SEVfTExDLAo+IC0JCQkJICB1c2Vfc2NyYXRjaCk7Cj4gKwkJZ2VuOF9wbWw0ZV9lbmNvZGUocHhf ZG1hKHZtLT5zY3JhdGNoX3BkcCksIEk5MTVfQ0FDSEVfTExDKTsKPiAgCWJvb2wgcmVkdWNlOwo+ ICAKPiAgCWdlbjhfZm9yX2VhY2hfcG1sNGUocGRwLCBwbWw0LCBzdGFydCwgbGVuZ3RoLCBwbWw0 ZSkgewo+ICAJCWlmIChXQVJOX09OKCFwbWw0LT5wZHBzW3BtbDRlXSkpCj4gIAkJCWJyZWFrOwo+ ICAKPiAtCQlyZWR1Y2UgPSBnZW44X3BwZ3R0X2NsZWFyX3BkcCh2bSwgcGRwLCBzdGFydCwgbGVu Z3RoLAo+IC0JCQkJCSAgICAgIHVzZV9zY3JhdGNoKTsKPiArCQlyZWR1Y2UgPSBnZW44X3BwZ3R0 X2NsZWFyX3BkcCh2bSwgcGRwLCBzdGFydCwgbGVuZ3RoKTsKPiAgCj4gIAkJaWYgKHJlZHVjZSkg ewo+ICAJCQlfX2NsZWFyX2JpdChwbWw0ZSwgcG1sNC0+dXNlZF9wbWw0ZXMpOwo+IEBAIC04NjAs MTggKzg0NSwxNCBAQCBzdGF0aWMgdm9pZCBnZW44X3BwZ3R0X2NsZWFyX3BtbDQoc3RydWN0IGk5 MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGdlbjhfcHBndHRf Y2xlYXJfcmFuZ2Uoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gLQkJCQkgICB1aW50 NjRfdCBzdGFydCwKPiAtCQkJCSAgIHVpbnQ2NF90IGxlbmd0aCwKPiAtCQkJCSAgIGJvb2wgdXNl X3NjcmF0Y2gpCj4gKwkJCQkgICB1aW50NjRfdCBzdGFydCwgdWludDY0X3QgbGVuZ3RoKQo+ICB7 Cj4gIAlzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQgPSBpOTE1X3ZtX3RvX3BwZ3R0KHZtKTsK PiAgCj4gIAlpZiAoIVVTRVNfRlVMTF80OEJJVF9QUEdUVCh2bS0+ZGV2KSkKPiAtCQlnZW44X3Bw Z3R0X2NsZWFyX3BkcCh2bSwgJnBwZ3R0LT5wZHAsIHN0YXJ0LCBsZW5ndGgsCj4gLQkJCQkgICAg IHVzZV9zY3JhdGNoKTsKPiArCQlnZW44X3BwZ3R0X2NsZWFyX3BkcCh2bSwgJnBwZ3R0LT5wZHAs IHN0YXJ0LCBsZW5ndGgpOwo+ICAJZWxzZQo+IC0JCWdlbjhfcHBndHRfY2xlYXJfcG1sNCh2bSwg JnBwZ3R0LT5wbWw0LCBzdGFydCwgbGVuZ3RoLAo+IC0JCQkJICAgICAgdXNlX3NjcmF0Y2gpOwo+ ICsJCWdlbjhfcHBndHRfY2xlYXJfcG1sNCh2bSwgJnBwZ3R0LT5wbWw0LCBzdGFydCwgbGVuZ3Ro KTsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQKPiBAQCAtODk4LDcgKzg3OSw3IEBAIGdlbjhfcHBn dHRfaW5zZXJ0X3B0ZV9lbnRyaWVzKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ICAK PiAgCQlwdF92YWRkcltwdGVdID0KPiAgCQkJZ2VuOF9wdGVfZW5jb2RlKHNnX3BhZ2VfaXRlcl9k bWFfYWRkcmVzcyhzZ19pdGVyKSwKPiAtCQkJCQljYWNoZV9sZXZlbCwgdHJ1ZSk7Cj4gKwkJCQkJ Y2FjaGVfbGV2ZWwpOwo+ICAJCWlmICgrK3B0ZSA9PSBHRU44X1BURVMpIHsKPiAgCQkJa3VubWFw X3B4KHBwZ3R0LCBwdF92YWRkcik7Cj4gIAkJCXB0X3ZhZGRyID0gTlVMTDsKPiBAQCAtMTM4Miw4 ICsxMzYzLDcgQEAgc3RhdGljIGludCBnZW44X2FsbG9jX3ZhX3JhbmdlXzNsdmwoc3RydWN0IGk5 MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gIAo+ICAJCQkvKiBNYXAgdGhlIFBERSB0byB0aGUgcGFn ZSB0YWJsZSAqLwo+ICAJCQlwYWdlX2RpcmVjdG9yeVtwZGVdID0gZ2VuOF9wZGVfZW5jb2RlKHB4 X2RtYShwdCksCj4gLQkJCQkJCQkgICAgICBJOTE1X0NBQ0hFX0xMQywKPiAtCQkJCQkJCSAgICAg IHRydWUpOwo+ICsJCQkJCQkJICAgICAgSTkxNV9DQUNIRV9MTEMpOwo+ICAJCQl0cmFjZV9pOTE1 X3BhZ2VfdGFibGVfZW50cnlfbWFwKCZwcGd0dC0+YmFzZSwgcGRlLCBwdCwKPiAgCQkJCQkJCWdl bjhfcHRlX2luZGV4KHN0YXJ0KSwKPiAgCQkJCQkJCWdlbjhfcHRlX2NvdW50KHN0YXJ0LCBsZW5n dGgpLAo+IEBAIC0xNTQyLDcgKzE1MjIsNyBAQCBzdGF0aWMgdm9pZCBnZW44X2R1bXBfcHBndHQo c3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0LCBzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCj4gIAl1aW50 NjRfdCBzdGFydCA9IHBwZ3R0LT5iYXNlLnN0YXJ0Owo+ICAJdWludDY0X3QgbGVuZ3RoID0gcHBn dHQtPmJhc2UudG90YWw7Cj4gIAlnZW44X3B0ZV90IHNjcmF0Y2hfcHRlID0gZ2VuOF9wdGVfZW5j b2RlKHZtLT5zY3JhdGNoX3BhZ2UuZGFkZHIsCj4gLQkJCQkJCSBJOTE1X0NBQ0hFX0xMQywgdHJ1 ZSk7Cj4gKwkJCQkJCSBJOTE1X0NBQ0hFX0xMQyk7Cj4gIAo+ICAJaWYgKCFVU0VTX0ZVTExfNDhC SVRfUFBHVFQodm0tPmRldikpIHsKPiAgCQlnZW44X2R1bXBfcGRwKCZwcGd0dC0+cGRwLCBzdGFy dCwgbGVuZ3RoLCBzY3JhdGNoX3B0ZSwgbSk7Cj4gQEAgLTE2NTksNyArMTYzOSw3IEBAIHN0YXRp YyB2b2lkIGdlbjZfZHVtcF9wcGd0dChzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQsIHN0cnVj dCBzZXFfZmlsZSAqbSkKPiAgCXVpbnQzMl90IHN0YXJ0ID0gcHBndHQtPmJhc2Uuc3RhcnQsIGxl bmd0aCA9IHBwZ3R0LT5iYXNlLnRvdGFsOwo+ICAKPiAgCXNjcmF0Y2hfcHRlID0gdm0tPnB0ZV9l bmNvZGUodm0tPnNjcmF0Y2hfcGFnZS5kYWRkciwKPiAtCQkJCSAgICAgSTkxNV9DQUNIRV9MTEMs IHRydWUsIDApOwo+ICsJCQkJICAgICBJOTE1X0NBQ0hFX0xMQywgMCk7Cj4gIAo+ICAJZ2VuNl9m b3JfZWFjaF9wZGUodW51c2VkLCAmcHBndHQtPnBkLCBzdGFydCwgbGVuZ3RoLCBwZGUpIHsKPiAg CQl1MzIgZXhwZWN0ZWQ7Cj4gQEAgLTE4NzIsOCArMTg1Miw3IEBAIHN0YXRpYyB2b2lkIGdlbjZf cHBndHRfZW5hYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIC8qIFBQR1RUIHN1cHBvcnQg Zm9yIFNhbmR5YmRyaWdlL0dlbjYgYW5kIGxhdGVyICovCj4gIHN0YXRpYyB2b2lkIGdlbjZfcHBn dHRfY2xlYXJfcmFuZ2Uoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gIAkJCQkgICB1 aW50NjRfdCBzdGFydCwKPiAtCQkJCSAgIHVpbnQ2NF90IGxlbmd0aCwKPiAtCQkJCSAgIGJvb2wg dXNlX3NjcmF0Y2gpCj4gKwkJCQkgICB1aW50NjRfdCBsZW5ndGgpCj4gIHsKPiAgCXN0cnVjdCBp OTE1X2h3X3BwZ3R0ICpwcGd0dCA9IGk5MTVfdm1fdG9fcHBndHQodm0pOwo+ICAJZ2VuNl9wdGVf dCAqcHRfdmFkZHIsIHNjcmF0Y2hfcHRlOwo+IEBAIC0xODg0LDcgKzE4NjMsNyBAQCBzdGF0aWMg dm9pZCBnZW42X3BwZ3R0X2NsZWFyX3JhbmdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZt LAo+ICAJdW5zaWduZWQgbGFzdF9wdGUsIGk7Cj4gIAo+ICAJc2NyYXRjaF9wdGUgPSB2bS0+cHRl X2VuY29kZSh2bS0+c2NyYXRjaF9wYWdlLmRhZGRyLAo+IC0JCQkJICAgICBJOTE1X0NBQ0hFX0xM QywgdHJ1ZSwgMCk7Cj4gKwkJCQkgICAgIEk5MTVfQ0FDSEVfTExDLCAwKTsKPiAgCj4gIAl3aGls ZSAobnVtX2VudHJpZXMpIHsKPiAgCQlsYXN0X3B0ZSA9IGZpcnN0X3B0ZSArIG51bV9lbnRyaWVz Owo+IEBAIC0xOTIyLDcgKzE5MDEsNyBAQCBzdGF0aWMgdm9pZCBnZW42X3BwZ3R0X2luc2VydF9l bnRyaWVzKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ICAJCQlwdF92YWRkciA9IGtt YXBfcHgocHBndHQtPnBkLnBhZ2VfdGFibGVbYWN0X3B0XSk7Cj4gIAo+ICAJCXB0X3ZhZGRyW2Fj dF9wdGVdID0KPiAtCQkJdm0tPnB0ZV9lbmNvZGUoYWRkciwgY2FjaGVfbGV2ZWwsIHRydWUsIGZs YWdzKTsKPiArCQkJdm0tPnB0ZV9lbmNvZGUoYWRkciwgY2FjaGVfbGV2ZWwsIGZsYWdzKTsKPiAg Cj4gIAkJaWYgKCsrYWN0X3B0ZSA9PSBHRU42X1BURVMpIHsKPiAgCQkJa3VubWFwX3B4KHBwZ3R0 LCBwdF92YWRkcik7Cj4gQEAgLTIzNzYsOCArMjM1NSw3IEBAIHZvaWQgaTkxNV9nZW1fc3VzcGVu ZF9ndHRfbWFwcGluZ3Moc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCj4gIAlpOTE1X2NoZWNr X2FuZF9jbGVhcl9mYXVsdHMoZGV2X3ByaXYpOwo+ICAKPiAtCWdndHQtPmJhc2UuY2xlYXJfcmFu Z2UoJmdndHQtPmJhc2UsIGdndHQtPmJhc2Uuc3RhcnQsIGdndHQtPmJhc2UudG90YWwsCj4gLQkJ CSAgICAgdHJ1ZSk7Cj4gKwlnZ3R0LT5iYXNlLmNsZWFyX3JhbmdlKCZnZ3R0LT5iYXNlLCBnZ3R0 LT5iYXNlLnN0YXJ0LCBnZ3R0LT5iYXNlLnRvdGFsKTsKPiAgCj4gIAlpOTE1X2dndHRfZmx1c2go ZGV2X3ByaXYpOwo+ICB9Cj4gQEAgLTI0MTEsNyArMjM4OSw3IEBAIHN0YXRpYyB2b2lkIGdlbjhf Z2d0dF9pbnNlcnRfcGFnZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgCj4gIAly cG1fYXRvbWljX3NlcSA9IGFzc2VydF9ycG1fYXRvbWljX2JlZ2luKGRldl9wcml2KTsKPiAgCj4g LQlnZW44X3NldF9wdGUocHRlLCBnZW44X3B0ZV9lbmNvZGUoYWRkciwgbGV2ZWwsIHRydWUpKTsK PiArCWdlbjhfc2V0X3B0ZShwdGUsIGdlbjhfcHRlX2VuY29kZShhZGRyLCBsZXZlbCkpOwo+ICAK PiAgCUk5MTVfV1JJVEUoR0ZYX0ZMU0hfQ05UTF9HRU42LCBHRlhfRkxTSF9DTlRMX0VOKTsKPiAg CVBPU1RJTkdfUkVBRChHRlhfRkxTSF9DTlRMX0dFTjYpOwo+IEBAIC0yNDM4LDcgKzI0MTYsNyBA QCBzdGF0aWMgdm9pZCBnZW44X2dndHRfaW5zZXJ0X2VudHJpZXMoc3RydWN0IGk5MTVfYWRkcmVz c19zcGFjZSAqdm0sCj4gIAlndHRfZW50cmllcyA9IChnZW44X3B0ZV90IF9faW9tZW0gKilnZ3R0 LT5nc20gKyAoc3RhcnQgPj4gUEFHRV9TSElGVCk7Cj4gIAo+ICAJZm9yX2VhY2hfc2d0X2RtYShh ZGRyLCBzZ3RfaXRlciwgc3QpIHsKPiAtCQlndHRfZW50cnkgPSBnZW44X3B0ZV9lbmNvZGUoYWRk ciwgbGV2ZWwsIHRydWUpOwo+ICsJCWd0dF9lbnRyeSA9IGdlbjhfcHRlX2VuY29kZShhZGRyLCBs ZXZlbCk7Cj4gIAkJZ2VuOF9zZXRfcHRlKCZndHRfZW50cmllc1tpKytdLCBndHRfZW50cnkpOwo+ ICAJfQo+ICAKPiBAQCAtMjUwMiw3ICsyNDgwLDcgQEAgc3RhdGljIHZvaWQgZ2VuNl9nZ3R0X2lu c2VydF9wYWdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ICAKPiAgCXJwbV9hdG9t aWNfc2VxID0gYXNzZXJ0X3JwbV9hdG9taWNfYmVnaW4oZGV2X3ByaXYpOwo+ICAKPiAtCWlvd3Jp dGUzMih2bS0+cHRlX2VuY29kZShhZGRyLCBsZXZlbCwgdHJ1ZSwgZmxhZ3MpLCBwdGUpOwo+ICsJ aW93cml0ZTMyKHZtLT5wdGVfZW5jb2RlKGFkZHIsIGxldmVsLCBmbGFncyksIHB0ZSk7Cj4gIAo+ ICAJSTkxNV9XUklURShHRlhfRkxTSF9DTlRMX0dFTjYsIEdGWF9GTFNIX0NOVExfRU4pOwo+ICAJ UE9TVElOR19SRUFEKEdGWF9GTFNIX0NOVExfR0VONik7Cj4gQEAgLTI1MzUsNyArMjUxMyw3IEBA IHN0YXRpYyB2b2lkIGdlbjZfZ2d0dF9pbnNlcnRfZW50cmllcyhzdHJ1Y3QgaTkxNV9hZGRyZXNz X3NwYWNlICp2bSwKPiAgCWd0dF9lbnRyaWVzID0gKGdlbjZfcHRlX3QgX19pb21lbSAqKWdndHQt PmdzbSArIChzdGFydCA+PiBQQUdFX1NISUZUKTsKPiAgCj4gIAlmb3JfZWFjaF9zZ3RfZG1hKGFk ZHIsIHNndF9pdGVyLCBzdCkgewo+IC0JCWd0dF9lbnRyeSA9IHZtLT5wdGVfZW5jb2RlKGFkZHIs IGxldmVsLCB0cnVlLCBmbGFncyk7Cj4gKwkJZ3R0X2VudHJ5ID0gdm0tPnB0ZV9lbmNvZGUoYWRk ciwgbGV2ZWwsIGZsYWdzKTsKPiAgCQlpb3dyaXRlMzIoZ3R0X2VudHJ5LCAmZ3R0X2VudHJpZXNb aSsrXSk7Cj4gIAl9Cj4gIAo+IEBAIC0yNTU5LDE2ICsyNTM3LDEyIEBAIHN0YXRpYyB2b2lkIGdl bjZfZ2d0dF9pbnNlcnRfZW50cmllcyhzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAg fQo+ICAKPiAgc3RhdGljIHZvaWQgbm9wX2NsZWFyX3JhbmdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nf c3BhY2UgKnZtLAo+IC0JCQkgICAgdWludDY0X3Qgc3RhcnQsCj4gLQkJCSAgICB1aW50NjRfdCBs ZW5ndGgsCj4gLQkJCSAgICBib29sIHVzZV9zY3JhdGNoKQo+ICsJCQkgICAgdWludDY0X3Qgc3Rh cnQsIHVpbnQ2NF90IGxlbmd0aCkKPiAgewo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBnZW44X2dn dHRfY2xlYXJfcmFuZ2Uoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gLQkJCQkgIHVp bnQ2NF90IHN0YXJ0LAo+IC0JCQkJICB1aW50NjRfdCBsZW5ndGgsCj4gLQkJCQkgIGJvb2wgdXNl X3NjcmF0Y2gpCj4gKwkJCQkgIHVpbnQ2NF90IHN0YXJ0LCB1aW50NjRfdCBsZW5ndGgpCj4gIHsK PiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUodm0tPmRldik7 Cj4gIAlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0gaTkxNV92bV90b19nZ3R0KHZtKTsKPiBAQCAt MjU4OCw4ICsyNTYyLDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9nZ3R0X2NsZWFyX3JhbmdlKHN0cnVj dCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ICAJCW51bV9lbnRyaWVzID0gbWF4X2VudHJpZXM7 Cj4gIAo+ICAJc2NyYXRjaF9wdGUgPSBnZW44X3B0ZV9lbmNvZGUodm0tPnNjcmF0Y2hfcGFnZS5k YWRkciwKPiAtCQkJCSAgICAgIEk5MTVfQ0FDSEVfTExDLAo+IC0JCQkJICAgICAgdXNlX3NjcmF0 Y2gpOwo+ICsJCQkJICAgICAgSTkxNV9DQUNIRV9MTEMpOwo+ICAJZm9yIChpID0gMDsgaSA8IG51 bV9lbnRyaWVzOyBpKyspCj4gIAkJZ2VuOF9zZXRfcHRlKCZndHRfYmFzZVtpXSwgc2NyYXRjaF9w dGUpOwo+ICAJcmVhZGwoZ3R0X2Jhc2UpOwo+IEBAIC0yNTk5LDggKzI1NzIsNyBAQCBzdGF0aWMg dm9pZCBnZW44X2dndHRfY2xlYXJfcmFuZ2Uoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0s Cj4gIAo+ICBzdGF0aWMgdm9pZCBnZW42X2dndHRfY2xlYXJfcmFuZ2Uoc3RydWN0IGk5MTVfYWRk cmVzc19zcGFjZSAqdm0sCj4gIAkJCQkgIHVpbnQ2NF90IHN0YXJ0LAo+IC0JCQkJICB1aW50NjRf dCBsZW5ndGgsCj4gLQkJCQkgIGJvb2wgdXNlX3NjcmF0Y2gpCj4gKwkJCQkgIHVpbnQ2NF90IGxl bmd0aCkKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NSh2bS0+ZGV2KTsKPiAgCXN0cnVjdCBpOTE1X2dndHQgKmdndHQgPSBpOTE1X3ZtX3RvX2dndHQo dm0pOwo+IEBAIC0yNjIwLDcgKzI1OTIsNyBAQCBzdGF0aWMgdm9pZCBnZW42X2dndHRfY2xlYXJf cmFuZ2Uoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gIAkJbnVtX2VudHJpZXMgPSBt YXhfZW50cmllczsKPiAgCj4gIAlzY3JhdGNoX3B0ZSA9IHZtLT5wdGVfZW5jb2RlKHZtLT5zY3Jh dGNoX3BhZ2UuZGFkZHIsCj4gLQkJCQkgICAgIEk5MTVfQ0FDSEVfTExDLCB1c2Vfc2NyYXRjaCwg MCk7Cj4gKwkJCQkgICAgIEk5MTVfQ0FDSEVfTExDLCAwKTsKPiAgCj4gIAlmb3IgKGkgPSAwOyBp IDwgbnVtX2VudHJpZXM7IGkrKykKPiAgCQlpb3dyaXRlMzIoc2NyYXRjaF9wdGUsICZndHRfYmFz ZVtpXSk7Cj4gQEAgLTI2NjcsOCArMjYzOSw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2d0dF9pbnNl cnRfZW50cmllcyhzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgCj4gIHN0YXRpYyB2 b2lkIGk5MTVfZ2d0dF9jbGVhcl9yYW5nZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwK PiAgCQkJCSAgdWludDY0X3Qgc3RhcnQsCj4gLQkJCQkgIHVpbnQ2NF90IGxlbmd0aCwKPiAtCQkJ CSAgYm9vbCB1bnVzZWQpCj4gKwkJCQkgIHVpbnQ2NF90IGxlbmd0aCkKPiAgewo+ICAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNSh2bS0+ZGV2KTsKPiAgCXVuc2ln bmVkIGZpcnN0X2VudHJ5ID0gc3RhcnQgPj4gUEFHRV9TSElGVDsKPiBAQCAtMjc1MiwxMyArMjcy MywxMSBAQCBzdGF0aWMgdm9pZCBnZ3R0X3VuYmluZF92bWEoc3RydWN0IGk5MTVfdm1hICp2bWEp Cj4gIAo+ICAJaWYgKHZtYS0+ZmxhZ3MgJiBJOTE1X1ZNQV9HTE9CQUxfQklORCkKPiAgCQl2bWEt PnZtLT5jbGVhcl9yYW5nZSh2bWEtPnZtLAo+IC0JCQkJICAgICB2bWEtPm5vZGUuc3RhcnQsIHNp emUsCj4gLQkJCQkgICAgIHRydWUpOwo+ICsJCQkJICAgICB2bWEtPm5vZGUuc3RhcnQsIHNpemUp Owo+ICAKPiAgCWlmICh2bWEtPmZsYWdzICYgSTkxNV9WTUFfTE9DQUxfQklORCAmJiBhcHBndHQp Cj4gIAkJYXBwZ3R0LT5iYXNlLmNsZWFyX3JhbmdlKCZhcHBndHQtPmJhc2UsCj4gLQkJCQkJIHZt YS0+bm9kZS5zdGFydCwgc2l6ZSwKPiAtCQkJCQkgdHJ1ZSk7Cj4gKwkJCQkJIHZtYS0+bm9kZS5z dGFydCwgc2l6ZSk7Cj4gIH0KPiAgCj4gIHZvaWQgaTkxNV9nZW1fZ3R0X2ZpbmlzaF9vYmplY3Qo c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPiBAQCAtMjgxOSwxMyArMjc4OCwxMiBA QCBpbnQgaTkxNV9nZW1faW5pdF9nZ3R0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKPiAgCQlEUk1fREVCVUdfS01TKCJjbGVhcmluZyB1bnVzZWQgR1RUIHNwYWNlOiBbJWx4LCAl bHhdXG4iLAo+ICAJCQkgICAgICBob2xlX3N0YXJ0LCBob2xlX2VuZCk7Cj4gIAkJZ2d0dC0+YmFz ZS5jbGVhcl9yYW5nZSgmZ2d0dC0+YmFzZSwgaG9sZV9zdGFydCwKPiAtCQkJCSAgICAgaG9sZV9l bmQgLSBob2xlX3N0YXJ0LCB0cnVlKTsKPiArCQkJCSAgICAgICBob2xlX2VuZCAtIGhvbGVfc3Rh cnQpOwo+ICAJfQo+ICAKPiAgCS8qIEFuZCBmaW5hbGx5IGNsZWFyIHRoZSByZXNlcnZlZCBndWFy ZCBwYWdlICovCj4gIAlnZ3R0LT5iYXNlLmNsZWFyX3JhbmdlKCZnZ3R0LT5iYXNlLAo+IC0JCQkg ICAgICAgZ2d0dC0+YmFzZS50b3RhbCAtIFBBR0VfU0laRSwgUEFHRV9TSVpFLAo+IC0JCQkgICAg ICAgdHJ1ZSk7Cj4gKwkJCSAgICAgICBnZ3R0LT5iYXNlLnRvdGFsIC0gUEFHRV9TSVpFLCBQQUdF X1NJWkUpOwo+ICAKPiAgCWlmIChVU0VTX1BQR1RUKGRldl9wcml2KSAmJiAhVVNFU19GVUxMX1BQ R1RUKGRldl9wcml2KSkgewo+ICAJCXN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dDsKPiBAQCAt Mjg1MSw4ICsyODE5LDcgQEAgaW50IGk5MTVfZ2VtX2luaXRfZ2d0dChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAo+ICAJCXBwZ3R0LT5iYXNlLmNsZWFyX3JhbmdlKCZwcGd0 dC0+YmFzZSwKPiAgCQkJCQlwcGd0dC0+YmFzZS5zdGFydCwKPiAtCQkJCQlwcGd0dC0+YmFzZS50 b3RhbCwKPiAtCQkJCQl0cnVlKTsKPiArCQkJCQlwcGd0dC0+YmFzZS50b3RhbCk7Cj4gIAo+ICAJ CWRldl9wcml2LT5tbS5hbGlhc2luZ19wcGd0dCA9IHBwZ3R0Owo+ICAJCVdBUk5fT04oZ2d0dC0+ YmFzZS5iaW5kX3ZtYSAhPSBnZ3R0X2JpbmRfdm1hKTsKPiBAQCAtMzMyNyw4ICszMjk0LDcgQEAg dm9pZCBpOTE1X2dlbV9yZXN0b3JlX2d0dF9tYXBwaW5ncyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQo+ICAJaTkxNV9jaGVja19hbmRfY2xlYXJfZmF1bHRzKGRldl9wcml2KTsKPiAgCj4gIAkvKiBG aXJzdCBmaWxsIG91ciBwb3J0aW9uIG9mIHRoZSBHVFQgd2l0aCBzY3JhdGNoIHBhZ2VzICovCj4g LQlnZ3R0LT5iYXNlLmNsZWFyX3JhbmdlKCZnZ3R0LT5iYXNlLCBnZ3R0LT5iYXNlLnN0YXJ0LCBn Z3R0LT5iYXNlLnRvdGFsLAo+IC0JCQkgICAgICAgdHJ1ZSk7Cj4gKwlnZ3R0LT5iYXNlLmNsZWFy X3JhbmdlKCZnZ3R0LT5iYXNlLCBnZ3R0LT5iYXNlLnN0YXJ0LCBnZ3R0LT5iYXNlLnRvdGFsKTsK PiAgCj4gIAlnZ3R0LT5iYXNlLmNsb3NlZCA9IHRydWU7IC8qIHNraXAgcmV3cml0aW5nIFBURSBv biBWTUEgdW5iaW5kICovCj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9ndHQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCj4gaW5k ZXggZWM3OGJlMi4uOTMxZDcxMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9ndHQuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5o Cj4gQEAgLTM5NSw3ICszOTUsNyBAQCBzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlIHsKPiAgCS8q IEZJWE1FOiBOZWVkIGEgbW9yZSBnZW5lcmljIHJldHVybiB0eXBlICovCj4gIAlnZW42X3B0ZV90 ICgqcHRlX2VuY29kZSkoZG1hX2FkZHJfdCBhZGRyLAo+ICAJCQkJIGVudW0gaTkxNV9jYWNoZV9s ZXZlbCBsZXZlbCwKPiAtCQkJCSBib29sIHZhbGlkLCB1MzIgZmxhZ3MpOyAvKiBDcmVhdGUgYSB2 YWxpZCBQVEUgKi8KPiArCQkJCSB1MzIgZmxhZ3MpOyAvKiBDcmVhdGUgYSB2YWxpZCBQVEUgKi8K PiAgCS8qIGZsYWdzIGZvciBwdGVfZW5jb2RlICovCj4gICNkZWZpbmUgUFRFX1JFQURfT05MWQko MTw8MCkKPiAgCWludCAoKmFsbG9jYXRlX3ZhX3JhbmdlKShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3Nw YWNlICp2bSwKPiBAQCAtNDAzLDggKzQwMyw3IEBAIHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2Ug ewo+ICAJCQkJIHVpbnQ2NF90IGxlbmd0aCk7Cj4gIAl2b2lkICgqY2xlYXJfcmFuZ2UpKHN0cnVj dCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ICAJCQkgICAgdWludDY0X3Qgc3RhcnQsCj4gLQkJ CSAgICB1aW50NjRfdCBsZW5ndGgsCj4gLQkJCSAgICBib29sIHVzZV9zY3JhdGNoKTsKPiArCQkJ ICAgIHVpbnQ2NF90IGxlbmd0aCk7Cj4gIAl2b2lkICgqaW5zZXJ0X3BhZ2UpKHN0cnVjdCBpOTE1 X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ICAJCQkgICAgZG1hX2FkZHJfdCBhZGRyLAo+ICAJCQkgICAg dWludDY0X3Qgb2Zmc2V0LAo+IC0tIAo+IDIuNy40Cj4KPiBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==