From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Conselvan De Oliveira, Ander" Subject: Re: [PATCH 21/23] drm/i915: Convert intel_pipe_will_have_type() to using atomic state Date: Wed, 4 Mar 2015 16:51:20 +0000 Message-ID: <1425487880.2416.3.camel@intel.com> References: <1425388937-1247-1-git-send-email-ander.conselvan.de.oliveira@intel.com> <1425388937-1247-22-git-send-email-ander.conselvan.de.oliveira@intel.com> <20150304160337.GF18775@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 9D0286E2B3 for ; Wed, 4 Mar 2015 08:51:25 -0800 (PST) In-Reply-To: <20150304160337.GF18775@phenom.ffwll.local> Content-Language: en-US Content-ID: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "daniel@ffwll.ch" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAyMDE1LTAzLTA0IGF0IDE3OjAzICswMTAwLCBEYW5pZWwgVmV0dGVyIHdyb3RlOg0K PiBPbiBUdWUsIE1hciAwMywgMjAxNSBhdCAwMzoyMjoxNVBNICswMjAwLCBBbmRlciBDb25zZWx2 YW4gZGUgT2xpdmVpcmEgd3JvdGU6DQo+ID4gUGFzcyBhIGNydGNfc3RhdGUgdG8gaXQgYW5kIGZp bmQgd2hldGhlciB0aGUgcGlwZSBoYXMgYW4gZW5jb2RlciBvZiBhDQo+ID4gZ2l2ZW4gdHlwZSBi eSBsb29raW5nIGF0IHRoZSBkcm1fYXRvbWljX3N0YXRlIHRoZSBjcnRjX3N0YXRlIHBvaW50cyB0 by4NCj4gPiANCj4gPiBOb3RlIHRoYXQgaXMgcG9zc2libGUgdG8gcmVhY2ggaTl4eF9nZXRfcmVm Y2xrKCkgd2l0aG91dCBhIHByb3BlciBhdG9taWMNCj4gPiBzdGF0ZSwgc2luY2UgaW4gdGhlIGZ1 bmN0aW9uIHZsdl9mb3JjZV9wbGxfb24oKSBhIG1pbmltYWxseSBpbml0aWFsaXplZA0KPiA+IGNy dGNfc3RhdGUgaXMgYWxsb2NhdGVkIGluIHRoZSBzdGFjay4gV2l0aCB0aGUgY3VycmVudCBjb2Rl LCBpdCBpcyBub3QNCj4gPiBwb3NzaWJsZSB0byBlbmQgdXAgaW4gYSBjYWxsIHRvIGludGVsX3Bp cGVfd2lsbF9oYXZlX3R5cGUoKSB3aXRoIHRoYXQNCj4gPiBib2d1cyBhdG9taWMgc3RhdGUuIFRv IGF2b2lkIGZ1dHVyZSBwcm9ibGVtcywgYSBjb21tZW50IGlzIGFkZGVkIHRvIHdhcm4NCj4gPiBw ZW9wbGUgY2hhbmdpbmcgdGhhdCBjb2RlLg0KPiA+IA0KPiA+IFNpZ25lZC1vZmYtYnk6IEFuZGVy IENvbnNlbHZhbiBkZSBPbGl2ZWlyYSA8YW5kZXIuY29uc2VsdmFuLmRlLm9saXZlaXJhQGludGVs LmNvbT4NCj4gPiAtLS0NCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAg IHwgICAyICstDQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDEz NCArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQ0KPiA+ICAyIGZpbGVzIGNoYW5n ZWQsIDgzIGluc2VydGlvbnMoKyksIDUzIGRlbGV0aW9ucygtKQ0KPiA+IA0KPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaA0KPiA+IGluZGV4IDBjNmJhMmQuLmFhYjQ0MjEgMTAwNjQ0DQo+ID4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaA0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgNCj4gPiBAQCAtNTQxLDcgKzU0MSw3IEBAIHN0cnVjdCBkcm1f aTkxNV9kaXNwbGF5X2Z1bmNzIHsNCj4gPiAgCSAqIFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLCBm YWxzZSBvbiBmYWlsdXJlLg0KPiA+ICAJICovDQo+ID4gIAlib29sICgqZmluZF9kcGxsKShjb25z dCBzdHJ1Y3QgaW50ZWxfbGltaXQgKmxpbWl0LA0KPiA+IC0JCQkgIHN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjLA0KPiA+ICsJCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLA0K PiA+ICAJCQkgIGludCB0YXJnZXQsIGludCByZWZjbGssDQo+ID4gIAkJCSAgc3RydWN0IGRwbGwg Km1hdGNoX2Nsb2NrLA0KPiA+ICAJCQkgIHN0cnVjdCBkcGxsICpiZXN0X2Nsb2NrKTsNCj4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jDQo+ID4gaW5kZXggNTE4OTAzZS4uZjM2NTJm OSAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMN Cj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMNCj4gPiBAQCAt NDMxLDI1ICs0MzEsMzcgQEAgYm9vbCBpbnRlbF9waXBlX2hhc190eXBlKHN0cnVjdCBpbnRlbF9j cnRjICpjcnRjLCBlbnVtIGludGVsX291dHB1dF90eXBlIHR5cGUpDQo+ID4gICAqIGludGVsX3Bp cGVfaGFzX3R5cGUoKSBidXQgbG9va2luZyBhdCBlbmNvZGVyLT5uZXdfY3J0YyBpbnN0ZWFkIG9m DQo+ID4gICAqIGVuY29kZXItPmNydGMuDQo+ID4gICAqLw0KPiA+IC1zdGF0aWMgYm9vbCBpbnRl bF9waXBlX3dpbGxfaGF2ZV90eXBlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLCBpbnQgdHlwZSkN Cj4gPiArc3RhdGljIGJvb2wgaW50ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwNCj4gPiArCQkJCSAgICAgIGludCB0eXBlKQ0K PiA+ICB7DQo+ID4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7DQo+ ID4gKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT5iYXNlLnN0 YXRlOw0KPiA+ICsJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5lY3Rvcl9zdGF0ZTsN Cj4gPiAgCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOw0KPiA+ICsJaW50IGk7DQo+ID4g Kw0KPiA+ICsJZm9yIChpID0gMDsgaSA8IHN0YXRlLT5udW1fY29ubmVjdG9yOyBpKyspIHsNCj4g PiArCQlpZiAoIXN0YXRlLT5jb25uZWN0b3JzW2ldKQ0KPiA+ICsJCQljb250aW51ZTsNCj4gPiAr DQo+ID4gKwkJY29ubmVjdG9yX3N0YXRlID0gc3RhdGUtPmNvbm5lY3Rvcl9zdGF0ZXNbaV07DQo+ ID4gKwkJaWYgKGNvbm5lY3Rvcl9zdGF0ZS0+Y3J0YyAhPSBjcnRjX3N0YXRlLT5iYXNlLmNydGMp DQo+ID4gKwkJCWNvbnRpbnVlOw0KPiA+ICANCj4gPiAtCWZvcl9lYWNoX2ludGVsX2VuY29kZXIo ZGV2LCBlbmNvZGVyKQ0KPiA+IC0JCWlmIChlbmNvZGVyLT5uZXdfY3J0YyA9PSBjcnRjICYmIGVu Y29kZXItPnR5cGUgPT0gdHlwZSkNCj4gPiArCQllbmNvZGVyID0gdG9faW50ZWxfZW5jb2Rlcihj b25uZWN0b3Jfc3RhdGUtPmJlc3RfZW5jb2Rlcik7DQo+ID4gKwkJaWYgKGVuY29kZXItPnR5cGUg PT0gdHlwZSkNCj4gPiAgCQkJcmV0dXJuIHRydWU7DQo+ID4gKwl9DQo+ID4gIA0KPiA+ICAJcmV0 dXJuIGZhbHNlOw0KPiA+ICB9DQo+IA0KPiBUaGUgdHJpY2t5IGJpdCBoZXJlIGlzIHRoYXQgd2Ug bXVzdCBoYXZlIGFsbCB0aGUgY29ubmVjdG9ycyBhZGRlZCB0byB0aGUNCj4gZHJtX2F0b21pY19z YXRlIGZvciB0aGUgZ2l2ZW4gY3J0Yy4gT3RoZXJ3aXNlIHRoZXJlIG1pZ2h0IGJlIG5vIGNvbm5l Y3Rvcg0KPiBhdCBhbGwgYW5kIHdlJ2QgcmV0dXJuIGEgYm9ndXMgYW5zd2VyLiBkcm1fYXRvbWlj X2FkZF9hZmZlY3RlZF9jb25uZWN0b3JzDQo+IGlzIHRoZSBmdW5jdGlvbiB3aGljaCBkb2VzIHRo aXMgZm9yIHlvdSwgYW5kIEkgdGhpbmsgd2UgbmVlZCB0byBjYWxsIGl0DQo+IHNvbWV3aGVyZSBp biB0aGUgdG9wLWxldmVsIGNvbXB1dGVfY29uZmlnIGNvZGUuIEFuZCBJIGhhdmVuJ3Qgc3BvdHRl ZCB0aGF0DQo+IGNhbGwgYW55d2hlcmUgaW4geW91ciBzZXJpZXMuDQoNCkkgZGlkIGFkZCBpdCBp biBwYXRjaCAxMiwgYnV0IG5vdyBJIHJlYWxpemUgaXQgd29uJ3QgYmUgY2FsbGVkIGZvciB0aGUN CmRpc2FibGUgY2FzZSwgc2luY2UgdGhlIGNhbGwgaXMgaW4gaW50ZWxfbW9kZXNldF9waXBlX2Nv bmZpZygpLiBJJ2xsDQptb3ZlIHRoYXQgdG8gaW50ZWxfbW9kZXNldF9jb21wdXRlX2NvbmZpZygp Lg0KDQpBbmRlcg0KDQo+IE90aGVyd2lzZSB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIG5ldyB3 aWxsX2hhdmVfdHlwZSBsb29rcyBjb3JyZWN0Lg0KPiAtRGFuaWVsDQo+IA0KPiA+ICANCj4gPiAt c3RhdGljIGNvbnN0IGludGVsX2xpbWl0X3QgKmludGVsX2lyb25sYWtlX2xpbWl0KHN0cnVjdCBp bnRlbF9jcnRjICpjcnRjLA0KPiA+IC0JCQkJCQlpbnQgcmVmY2xrKQ0KPiA+ICtzdGF0aWMgY29u c3QgaW50ZWxfbGltaXRfdCAqDQo+ID4gK2ludGVsX2lyb25sYWtlX2xpbWl0KHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLCBpbnQgcmVmY2xrKQ0KPiA+ICB7DQo+ID4gLQlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7DQo+ID4gKwlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXY7DQo+ID4gIAljb25zdCBpbnRl bF9saW1pdF90ICpsaW1pdDsNCj4gPiAgDQo+ID4gLQlpZiAoaW50ZWxfcGlwZV93aWxsX2hhdmVf dHlwZShjcnRjLCBJTlRFTF9PVVRQVVRfTFZEUykpIHsNCj4gPiArCWlmIChpbnRlbF9waXBlX3dp bGxfaGF2ZV90eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9MVkRTKSkgew0KPiA+ICAJCWlm IChpbnRlbF9pc19kdWFsX2xpbmtfbHZkcyhkZXYpKSB7DQo+ID4gIAkJCWlmIChyZWZjbGsgPT0g MTAwMDAwKQ0KPiA+ICAJCQkJbGltaXQgPSAmaW50ZWxfbGltaXRzX2lyb25sYWtlX2R1YWxfbHZk c18xMDBtOw0KPiA+IEBAIC00NjcsMjAgKzQ3OSwyMSBAQCBzdGF0aWMgY29uc3QgaW50ZWxfbGlt aXRfdCAqaW50ZWxfaXJvbmxha2VfbGltaXQoc3RydWN0IGludGVsX2NydGMgKmNydGMsDQo+ID4g IAlyZXR1cm4gbGltaXQ7DQo+ID4gIH0NCj4gPiAgDQo+ID4gLXN0YXRpYyBjb25zdCBpbnRlbF9s aW1pdF90ICppbnRlbF9nNHhfbGltaXQoc3RydWN0IGludGVsX2NydGMgKmNydGMpDQo+ID4gK3N0 YXRpYyBjb25zdCBpbnRlbF9saW1pdF90ICoNCj4gPiAraW50ZWxfZzR4X2xpbWl0KHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQ0KPiA+ICB7DQo+ID4gLQlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7DQo+ID4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXY7DQo+ID4gIAljb25zdCBpbnRlbF9saW1pdF90 ICpsaW1pdDsNCj4gPiAgDQo+ID4gLQlpZiAoaW50ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjcnRj LCBJTlRFTF9PVVRQVVRfTFZEUykpIHsNCj4gPiArCWlmIChpbnRlbF9waXBlX3dpbGxfaGF2ZV90 eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9MVkRTKSkgew0KPiA+ICAJCWlmIChpbnRlbF9p c19kdWFsX2xpbmtfbHZkcyhkZXYpKQ0KPiA+ICAJCQlsaW1pdCA9ICZpbnRlbF9saW1pdHNfZzR4 X2R1YWxfY2hhbm5lbF9sdmRzOw0KPiA+ICAJCWVsc2UNCj4gPiAgCQkJbGltaXQgPSAmaW50ZWxf bGltaXRzX2c0eF9zaW5nbGVfY2hhbm5lbF9sdmRzOw0KPiA+IC0JfSBlbHNlIGlmIChpbnRlbF9w aXBlX3dpbGxfaGF2ZV90eXBlKGNydGMsIElOVEVMX09VVFBVVF9IRE1JKSB8fA0KPiA+IC0JCSAg IGludGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUoY3J0YywgSU5URUxfT1VUUFVUX0FOQUxPRykpIHsN Cj4gPiArCX0gZWxzZSBpZiAoaW50ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjcnRjX3N0YXRlLCBJ TlRFTF9PVVRQVVRfSERNSSkgfHwNCj4gPiArCQkgICBpbnRlbF9waXBlX3dpbGxfaGF2ZV90eXBl KGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9BTkFMT0cpKSB7DQo+ID4gIAkJbGltaXQgPSAmaW50 ZWxfbGltaXRzX2c0eF9oZG1pOw0KPiA+IC0JfSBlbHNlIGlmIChpbnRlbF9waXBlX3dpbGxfaGF2 ZV90eXBlKGNydGMsIElOVEVMX09VVFBVVF9TRFZPKSkgew0KPiA+ICsJfSBlbHNlIGlmIChpbnRl bF9waXBlX3dpbGxfaGF2ZV90eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9TRFZPKSkgew0K PiA+ICAJCWxpbWl0ID0gJmludGVsX2xpbWl0c19nNHhfc2R2bzsNCj4gPiAgCX0gZWxzZSAvKiBU aGUgb3B0aW9uIGlzIGZvciBvdGhlciBvdXRwdXRzICovDQo+ID4gIAkJbGltaXQgPSAmaW50ZWxf bGltaXRzX2k5eHhfc2R2bzsNCj4gPiBAQCAtNDg4LDE3ICs1MDEsMTggQEAgc3RhdGljIGNvbnN0 IGludGVsX2xpbWl0X3QgKmludGVsX2c0eF9saW1pdChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykN Cj4gPiAgCXJldHVybiBsaW1pdDsNCj4gPiAgfQ0KPiA+ICANCj4gPiAtc3RhdGljIGNvbnN0IGlu dGVsX2xpbWl0X3QgKmludGVsX2xpbWl0KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLCBpbnQgcmVm Y2xrKQ0KPiA+ICtzdGF0aWMgY29uc3QgaW50ZWxfbGltaXRfdCAqDQo+ID4gK2ludGVsX2xpbWl0 KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLCBpbnQgcmVmY2xrKQ0KPiA+ICB7 DQo+ID4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7DQo+ID4gKwlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXY7DQo+ID4g IAljb25zdCBpbnRlbF9saW1pdF90ICpsaW1pdDsNCj4gPiAgDQo+ID4gIAlpZiAoSEFTX1BDSF9T UExJVChkZXYpKQ0KPiA+IC0JCWxpbWl0ID0gaW50ZWxfaXJvbmxha2VfbGltaXQoY3J0YywgcmVm Y2xrKTsNCj4gPiArCQlsaW1pdCA9IGludGVsX2lyb25sYWtlX2xpbWl0KGNydGNfc3RhdGUsIHJl ZmNsayk7DQo+ID4gIAllbHNlIGlmIChJU19HNFgoZGV2KSkgew0KPiA+IC0JCWxpbWl0ID0gaW50 ZWxfZzR4X2xpbWl0KGNydGMpOw0KPiA+ICsJCWxpbWl0ID0gaW50ZWxfZzR4X2xpbWl0KGNydGNf c3RhdGUpOw0KPiA+ICAJfSBlbHNlIGlmIChJU19QSU5FVklFVyhkZXYpKSB7DQo+ID4gLQkJaWYg KGludGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUoY3J0YywgSU5URUxfT1VUUFVUX0xWRFMpKQ0KPiA+ ICsJCWlmIChpbnRlbF9waXBlX3dpbGxfaGF2ZV90eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBV VF9MVkRTKSkNCj4gPiAgCQkJbGltaXQgPSAmaW50ZWxfbGltaXRzX3BpbmV2aWV3X2x2ZHM7DQo+ ID4gIAkJZWxzZQ0KPiA+ICAJCQlsaW1pdCA9ICZpbnRlbF9saW1pdHNfcGluZXZpZXdfc2R2bzsN Cj4gPiBAQCAtNTA3LDE0ICs1MjEsMTQgQEAgc3RhdGljIGNvbnN0IGludGVsX2xpbWl0X3QgKmlu dGVsX2xpbWl0KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLCBpbnQgcmVmY2xrKQ0KPiA+ICAJfSBl bHNlIGlmIChJU19WQUxMRVlWSUVXKGRldikpIHsNCj4gPiAgCQlsaW1pdCA9ICZpbnRlbF9saW1p dHNfdmx2Ow0KPiA+ICAJfSBlbHNlIGlmICghSVNfR0VOMihkZXYpKSB7DQo+ID4gLQkJaWYgKGlu dGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUoY3J0YywgSU5URUxfT1VUUFVUX0xWRFMpKQ0KPiA+ICsJ CWlmIChpbnRlbF9waXBlX3dpbGxfaGF2ZV90eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9M VkRTKSkNCj4gPiAgCQkJbGltaXQgPSAmaW50ZWxfbGltaXRzX2k5eHhfbHZkczsNCj4gPiAgCQll bHNlDQo+ID4gIAkJCWxpbWl0ID0gJmludGVsX2xpbWl0c19pOXh4X3Nkdm87DQo+ID4gIAl9IGVs c2Ugew0KPiA+IC0JCWlmIChpbnRlbF9waXBlX3dpbGxfaGF2ZV90eXBlKGNydGMsIElOVEVMX09V VFBVVF9MVkRTKSkNCj4gPiArCQlpZiAoaW50ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjcnRjX3N0 YXRlLCBJTlRFTF9PVVRQVVRfTFZEUykpDQo+ID4gIAkJCWxpbWl0ID0gJmludGVsX2xpbWl0c19p OHh4X2x2ZHM7DQo+ID4gLQkJZWxzZSBpZiAoaW50ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjcnRj LCBJTlRFTF9PVVRQVVRfRFZPKSkNCj4gPiArCQllbHNlIGlmIChpbnRlbF9waXBlX3dpbGxfaGF2 ZV90eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9EVk8pKQ0KPiA+ICAJCQlsaW1pdCA9ICZp bnRlbF9saW1pdHNfaTh4eF9kdm87DQo+ID4gIAkJZWxzZQ0KPiA+ICAJCQlsaW1pdCA9ICZpbnRl bF9saW1pdHNfaTh4eF9kYWM7DQo+ID4gQEAgLTYwMSwxNSArNjE1LDE3IEBAIHN0YXRpYyBib29s IGludGVsX1BMTF9pc192YWxpZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LA0KPiA+ICB9DQo+ID4g IA0KPiA+ICBzdGF0aWMgYm9vbA0KPiA+IC1pOXh4X2ZpbmRfYmVzdF9kcGxsKGNvbnN0IGludGVs X2xpbWl0X3QgKmxpbWl0LCBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywNCj4gPiAraTl4eF9maW5k X2Jlc3RfZHBsbChjb25zdCBpbnRlbF9saW1pdF90ICpsaW1pdCwNCj4gPiArCQkgICAgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsDQo+ID4gIAkJICAgIGludCB0YXJnZXQsIGlu dCByZWZjbGssIGludGVsX2Nsb2NrX3QgKm1hdGNoX2Nsb2NrLA0KPiA+ICAJCSAgICBpbnRlbF9j bG9ja190ICpiZXN0X2Nsb2NrKQ0KPiA+ICB7DQo+ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsNCj4gPiAgCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsNCj4gPiAgCWludGVsX2Nsb2NrX3QgY2xv Y2s7DQo+ID4gIAlpbnQgZXJyID0gdGFyZ2V0Ow0KPiA+ICANCj4gPiAtCWlmIChpbnRlbF9waXBl X3dpbGxfaGF2ZV90eXBlKGNydGMsIElOVEVMX09VVFBVVF9MVkRTKSkgew0KPiA+ICsJaWYgKGlu dGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0xWRFMpKSB7 DQo+ID4gIAkJLyoNCj4gPiAgCQkgKiBGb3IgTFZEUyBqdXN0IHJlbHkgb24gaXRzIGN1cnJlbnQg c2V0dGluZ3MgZm9yIGR1YWwtY2hhbm5lbC4NCj4gPiAgCQkgKiBXZSBoYXZlbid0IGZpZ3VyZWQg b3V0IGhvdyB0byByZWxpYWJseSBzZXQgdXAgZGlmZmVyZW50DQo+ID4gQEAgLTY2MiwxNSArNjc4 LDE3IEBAIGk5eHhfZmluZF9iZXN0X2RwbGwoY29uc3QgaW50ZWxfbGltaXRfdCAqbGltaXQsIHN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjLA0KPiA+ICB9DQo+ID4gIA0KPiA+ICBzdGF0aWMgYm9vbA0K PiA+IC1wbnZfZmluZF9iZXN0X2RwbGwoY29uc3QgaW50ZWxfbGltaXRfdCAqbGltaXQsIHN0cnVj dCBpbnRlbF9jcnRjICpjcnRjLA0KPiA+ICtwbnZfZmluZF9iZXN0X2RwbGwoY29uc3QgaW50ZWxf bGltaXRfdCAqbGltaXQsDQo+ID4gKwkJICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUsDQo+ID4gIAkJICAgaW50IHRhcmdldCwgaW50IHJlZmNsaywgaW50ZWxfY2xvY2tfdCAq bWF0Y2hfY2xvY2ssDQo+ID4gIAkJICAgaW50ZWxfY2xvY2tfdCAqYmVzdF9jbG9jaykNCj4gPiAg ew0KPiA+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3Rh dGUtPmJhc2UuY3J0Yyk7DQo+ID4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFz ZS5kZXY7DQo+ID4gIAlpbnRlbF9jbG9ja190IGNsb2NrOw0KPiA+ICAJaW50IGVyciA9IHRhcmdl dDsNCj4gPiAgDQo+ID4gLQlpZiAoaW50ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjcnRjLCBJTlRF TF9PVVRQVVRfTFZEUykpIHsNCj4gPiArCWlmIChpbnRlbF9waXBlX3dpbGxfaGF2ZV90eXBlKGNy dGNfc3RhdGUsIElOVEVMX09VVFBVVF9MVkRTKSkgew0KPiA+ICAJCS8qDQo+ID4gIAkJICogRm9y IExWRFMganVzdCByZWx5IG9uIGl0cyBjdXJyZW50IHNldHRpbmdzIGZvciBkdWFsLWNoYW5uZWwu DQo+ID4gIAkJICogV2UgaGF2ZW4ndCBmaWd1cmVkIG91dCBob3cgdG8gcmVsaWFibHkgc2V0IHVw IGRpZmZlcmVudA0KPiA+IEBAIC03MjEsMTAgKzczOSwxMiBAQCBwbnZfZmluZF9iZXN0X2RwbGwo Y29uc3QgaW50ZWxfbGltaXRfdCAqbGltaXQsIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLA0KPiA+ ICB9DQo+ID4gIA0KPiA+ICBzdGF0aWMgYm9vbA0KPiA+IC1nNHhfZmluZF9iZXN0X2RwbGwoY29u c3QgaW50ZWxfbGltaXRfdCAqbGltaXQsIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLA0KPiA+ICtn NHhfZmluZF9iZXN0X2RwbGwoY29uc3QgaW50ZWxfbGltaXRfdCAqbGltaXQsDQo+ID4gKwkJICAg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsDQo+ID4gIAkJICAgaW50IHRhcmdl dCwgaW50IHJlZmNsaywgaW50ZWxfY2xvY2tfdCAqbWF0Y2hfY2xvY2ssDQo+ID4gIAkJICAgaW50 ZWxfY2xvY2tfdCAqYmVzdF9jbG9jaykNCj4gPiAgew0KPiA+ICsJc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7DQo+ID4gIAlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7DQo+ID4gIAlpbnRlbF9jbG9ja190 IGNsb2NrOw0KPiA+ICAJaW50IG1heF9uOw0KPiA+IEBAIC03MzMsNyArNzUzLDcgQEAgZzR4X2Zp bmRfYmVzdF9kcGxsKGNvbnN0IGludGVsX2xpbWl0X3QgKmxpbWl0LCBzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YywNCj4gPiAgCWludCBlcnJfbW9zdCA9ICh0YXJnZXQgPj4gOCkgKyAodGFyZ2V0ID4+ IDkpOw0KPiA+ICAJZm91bmQgPSBmYWxzZTsNCj4gPiAgDQo+ID4gLQlpZiAoaW50ZWxfcGlwZV93 aWxsX2hhdmVfdHlwZShjcnRjLCBJTlRFTF9PVVRQVVRfTFZEUykpIHsNCj4gPiArCWlmIChpbnRl bF9waXBlX3dpbGxfaGF2ZV90eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9MVkRTKSkgew0K PiA+ICAJCWlmIChpbnRlbF9pc19kdWFsX2xpbmtfbHZkcyhkZXYpKQ0KPiA+ICAJCQljbG9jay5w MiA9IGxpbWl0LT5wMi5wMl9mYXN0Ow0KPiA+ICAJCWVsc2UNCj4gPiBAQCAtNzc4LDEwICs3OTgs MTIgQEAgZzR4X2ZpbmRfYmVzdF9kcGxsKGNvbnN0IGludGVsX2xpbWl0X3QgKmxpbWl0LCBzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YywNCj4gPiAgfQ0KPiA+ICANCj4gPiAgc3RhdGljIGJvb2wNCj4g PiAtdmx2X2ZpbmRfYmVzdF9kcGxsKGNvbnN0IGludGVsX2xpbWl0X3QgKmxpbWl0LCBzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YywNCj4gPiArdmx2X2ZpbmRfYmVzdF9kcGxsKGNvbnN0IGludGVsX2xp bWl0X3QgKmxpbWl0LA0KPiA+ICsJCSAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlLA0KPiA+ICAJCSAgIGludCB0YXJnZXQsIGludCByZWZjbGssIGludGVsX2Nsb2NrX3QgKm1h dGNoX2Nsb2NrLA0KPiA+ICAJCSAgIGludGVsX2Nsb2NrX3QgKmJlc3RfY2xvY2spDQo+ID4gIHsN Cj4gPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRl LT5iYXNlLmNydGMpOw0KPiA+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2Uu ZGV2Ow0KPiA+ICAJaW50ZWxfY2xvY2tfdCBjbG9jazsNCj4gPiAgCXVuc2lnbmVkIGludCBiZXN0 cHBtID0gMTAwMDAwMDsNCj4gPiBAQCAtODM1LDEwICs4NTcsMTIgQEAgdmx2X2ZpbmRfYmVzdF9k cGxsKGNvbnN0IGludGVsX2xpbWl0X3QgKmxpbWl0LCBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywN Cj4gPiAgfQ0KPiA+ICANCj4gPiAgc3RhdGljIGJvb2wNCj4gPiAtY2h2X2ZpbmRfYmVzdF9kcGxs KGNvbnN0IGludGVsX2xpbWl0X3QgKmxpbWl0LCBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywNCj4g PiArY2h2X2ZpbmRfYmVzdF9kcGxsKGNvbnN0IGludGVsX2xpbWl0X3QgKmxpbWl0LA0KPiA+ICsJ CSAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLA0KPiA+ICAJCSAgIGludCB0 YXJnZXQsIGludCByZWZjbGssIGludGVsX2Nsb2NrX3QgKm1hdGNoX2Nsb2NrLA0KPiA+ICAJCSAg IGludGVsX2Nsb2NrX3QgKmJlc3RfY2xvY2spDQo+ID4gIHsNCj4gPiArCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOw0KPiA+ICAJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2Ow0KPiA+ICAJaW50ZWxfY2xv Y2tfdCBjbG9jazsNCj4gPiAgCXVpbnQ2NF90IG0yOw0KPiA+IEBAIC01Njc4LDcgKzU3MDIsNyBA QCBzdGF0aWMgaW50IGludGVsX2NydGNfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2NydGMg KmNydGMsDQo+ID4gIAkgKiAtIExWRFMgZHVhbCBjaGFubmVsIG1vZGUNCj4gPiAgCSAqIC0gRG91 YmxlIHdpZGUgcGlwZQ0KPiA+ICAJICovDQo+ID4gLQlpZiAoKGludGVsX3BpcGVfd2lsbF9oYXZl X3R5cGUoY3J0YywgSU5URUxfT1VUUFVUX0xWRFMpICYmDQo+ID4gKwlpZiAoKGludGVsX3BpcGVf d2lsbF9oYXZlX3R5cGUocGlwZV9jb25maWcsIElOVEVMX09VVFBVVF9MVkRTKSAmJg0KPiA+ICAJ ICAgICBpbnRlbF9pc19kdWFsX2xpbmtfbHZkcyhkZXYpKSB8fCBwaXBlX2NvbmZpZy0+ZG91Ymxl X3dpZGUpDQo+ID4gIAkJcGlwZV9jb25maWctPnBpcGVfc3JjX3cgJj0gfjE7DQo+ID4gIA0KPiA+ IEBAIC01ODYxLDE1ICs1ODg1LDIxIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF9wYW5lbF91 c2Vfc3NjKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikNCj4gPiAgCQkmJiAhKGRl dl9wcml2LT5xdWlya3MgJiBRVUlSS19MVkRTX1NTQ19ESVNBQkxFKTsNCj4gPiAgfQ0KPiA+ICAN Cj4gPiAtc3RhdGljIGludCBpOXh4X2dldF9yZWZjbGsoc3RydWN0IGludGVsX2NydGMgKmNydGMs IGludCBudW1fY29ubmVjdG9ycykNCj4gPiArc3RhdGljIGludCBpOXh4X2dldF9yZWZjbGsoY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsDQo+ID4gKwkJCSAgIGludCBu dW1fY29ubmVjdG9ycykNCj4gPiAgew0KPiA+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNy dGMtPmJhc2UuZGV2Ow0KPiA+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGNfc3RhdGUt PmJhc2UuY3J0Yy0+ZGV2Ow0KPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsNCj4gPiAgCWludCByZWZjbGs7DQo+ID4gIA0KPiA+ICAJaWYg KElTX1ZBTExFWVZJRVcoZGV2KSkgew0KPiA+ICsJCS8qIE5vdGUgdGhhdCB0aGlzIHBhdGggbWF5 IGJlIHJlYWNoZWQgd2l0aCBhIGNydGNfc3RhdGUgdGhhdA0KPiA+ICsJCSAqIGlzIG5vdCBwYXJ0 IG9mIGFuIGF0b21pYyBzdGF0ZSwgZHVlIHRvIHZsdl9mb3JjZV9wbGxfb24oKS4NCj4gPiArCQkg KiBUaGF0IG1lYW5zIHdlIGNhbid0IHVzZSBpbnRlbF9waXBlX3dpbGxfaGF2ZV90eXBlKCkgb3IN Cj4gPiArCQkgKiBhbnl0aGluZyB0aGF0IGRlcGVuZHMgb24gdGhlIHdob2xlIGF0b21pYyBzdGF0 ZSBoZXJlLg0KPiA+ICsJCSAqLw0KPiA+ICAJCXJlZmNsayA9IDEwMDAwMDsNCj4gPiAtCX0gZWxz ZSBpZiAoaW50ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjcnRjLCBJTlRFTF9PVVRQVVRfTFZEUykg JiYNCj4gPiArCX0gZWxzZSBpZiAoaW50ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjcnRjX3N0YXRl LCBJTlRFTF9PVVRQVVRfTFZEUykgJiYNCj4gPiAgCSAgICBpbnRlbF9wYW5lbF91c2Vfc3NjKGRl dl9wcml2KSAmJiBudW1fY29ubmVjdG9ycyA8IDIpIHsNCj4gPiAgCQlyZWZjbGsgPSBkZXZfcHJp di0+dmJ0Lmx2ZHNfc3NjX2ZyZXE7DQo+ID4gIAkJRFJNX0RFQlVHX0tNUygidXNpbmcgU1NDIHJl ZmVyZW5jZSBjbG9jayBvZiAlZCBrSHpcbiIsIHJlZmNsayk7DQo+ID4gQEAgLTU5MTIsNyArNTk0 Miw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX3BsbF9kaXZpZGVycyhzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YywNCj4gPiAgCWNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUuZnAwID0gZnA7DQo+ ID4gIA0KPiA+ICAJY3J0Yy0+bG93ZnJlcV9hdmFpbCA9IGZhbHNlOw0KPiA+IC0JaWYgKGludGVs X3BpcGVfd2lsbF9oYXZlX3R5cGUoY3J0YywgSU5URUxfT1VUUFVUX0xWRFMpICYmDQo+ID4gKwlp ZiAoaW50ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfTFZE UykgJiYNCj4gPiAgCSAgICByZWR1Y2VkX2Nsb2NrICYmIGk5MTUucG93ZXJzYXZlKSB7DQo+ID4g IAkJY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZS5mcDEgPSBmcDI7DQo+ID4gIAkJY3J0Yy0+bG93 ZnJlcV9hdmFpbCA9IHRydWU7DQo+ID4gQEAgLTYyMDAsNyArNjIzMCw3IEBAIHN0YXRpYyB2b2lk IGNodl9wcmVwYXJlX3BsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywNCj4gPiAgCQkgICAgICAg KDIgPDwgRFBJT19DSFZfRkVFREZXRF9HQUlOX1NISUZUKSk7DQo+ID4gIA0KPiA+ICAJLyogTG9v cCBmaWx0ZXIgKi8NCj4gPiAtCXJlZmNsayA9IGk5eHhfZ2V0X3JlZmNsayhjcnRjLCAwKTsNCj4g PiArCXJlZmNsayA9IGk5eHhfZ2V0X3JlZmNsayhwaXBlX2NvbmZpZywgMCk7DQo+ID4gIAlsb29w ZmlsdGVyID0gNSA8PCBEUElPX0NIVl9QUk9QX0NPRUZGX1NISUZUIHwNCj4gPiAgCQkyIDw8IERQ SU9fQ0hWX0dBSU5fQ1RSTF9TSElGVDsNCj4gPiAgCWlmIChyZWZjbGsgPT0gMTAwMDAwKQ0KPiA+ IEBAIC02MjM2LDYgKzYyNjYsNyBAQCB2b2lkIHZsdl9mb3JjZV9wbGxfb24oc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgZW51bSBwaXBlIHBpcGUsDQo+ID4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YyA9DQo+ID4gIAkJdG9faW50ZWxfY3J0YyhpbnRlbF9nZXRfY3J0Y19mb3JfcGlwZShkZXYsIHBp cGUpKTsNCj4gPiAgCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlIHBpcGVfY29uZmlnID0gew0KPiA+ ICsJCS5iYXNlLmNydGMgPSAmY3J0Yy0+YmFzZSwNCj4gPiAgCQkucGl4ZWxfbXVsdGlwbGllciA9 IDEsDQo+ID4gIAkJLmRwbGwgPSAqZHBsbCwNCj4gPiAgCX07DQo+ID4gQEAgLTYyODAsMTIgKzYz MTEsMTIgQEAgc3RhdGljIHZvaWQgaTl4eF91cGRhdGVfcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpj cnRjLA0KPiA+ICANCj4gPiAgCWk5eHhfdXBkYXRlX3BsbF9kaXZpZGVycyhjcnRjLCBjcnRjX3N0 YXRlLCByZWR1Y2VkX2Nsb2NrKTsNCj4gPiAgDQo+ID4gLQlpc19zZHZvID0gaW50ZWxfcGlwZV93 aWxsX2hhdmVfdHlwZShjcnRjLCBJTlRFTF9PVVRQVVRfU0RWTykgfHwNCj4gPiAtCQlpbnRlbF9w aXBlX3dpbGxfaGF2ZV90eXBlKGNydGMsIElOVEVMX09VVFBVVF9IRE1JKTsNCj4gPiArCWlzX3Nk dm8gPSBpbnRlbF9waXBlX3dpbGxfaGF2ZV90eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9T RFZPKSB8fA0KPiA+ICsJCWludGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUoY3J0Y19zdGF0ZSwgSU5U RUxfT1VUUFVUX0hETUkpOw0KPiA+ICANCj4gPiAgCWRwbGwgPSBEUExMX1ZHQV9NT0RFX0RJUzsN Cj4gPiAgDQo+ID4gLQlpZiAoaW50ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjcnRjLCBJTlRFTF9P VVRQVVRfTFZEUykpDQo+ID4gKwlpZiAoaW50ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjcnRjX3N0 YXRlLCBJTlRFTF9PVVRQVVRfTFZEUykpDQo+ID4gIAkJZHBsbCB8PSBEUExMQl9NT0RFX0xWRFM7 DQo+ID4gIAllbHNlDQo+ID4gIAkJZHBsbCB8PSBEUExMQl9NT0RFX0RBQ19TRVJJQUw7DQo+ID4g QEAgLTYzMjgsNyArNjM1OSw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX3BsbChzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YywNCj4gPiAgDQo+ID4gIAlpZiAoY3J0Y19zdGF0ZS0+c2R2b190dl9j bG9jaykNCj4gPiAgCQlkcGxsIHw9IFBMTF9SRUZfSU5QVVRfVFZDTEtJTkJDOw0KPiA+IC0JZWxz ZSBpZiAoaW50ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjcnRjLCBJTlRFTF9PVVRQVVRfTFZEUykg JiYNCj4gPiArCWVsc2UgaWYgKGludGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUoY3J0Y19zdGF0ZSwg SU5URUxfT1VUUFVUX0xWRFMpICYmDQo+ID4gIAkJIGludGVsX3BhbmVsX3VzZV9zc2MoZGV2X3By aXYpICYmIG51bV9jb25uZWN0b3JzIDwgMikNCj4gPiAgCQlkcGxsIHw9IFBMTEJfUkVGX0lOUFVU X1NQUkVBRFNQRUNUUlVNSU47DQo+ID4gIAllbHNlDQo+ID4gQEAgLTYzNTgsNyArNjM4OSw3IEBA IHN0YXRpYyB2b2lkIGk4eHhfdXBkYXRlX3BsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywNCj4g PiAgDQo+ID4gIAlkcGxsID0gRFBMTF9WR0FfTU9ERV9ESVM7DQo+ID4gIA0KPiA+IC0JaWYgKGlu dGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUoY3J0YywgSU5URUxfT1VUUFVUX0xWRFMpKSB7DQo+ID4g KwlpZiAoaW50ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRf TFZEUykpIHsNCj4gPiAgCQlkcGxsIHw9ICgxIDw8IChjbG9jay0+cDEgLSAxKSkgPDwgRFBMTF9G UEEwMV9QMV9QT1NUX0RJVl9TSElGVDsNCj4gPiAgCX0gZWxzZSB7DQo+ID4gIAkJaWYgKGNsb2Nr LT5wMSA9PSAyKQ0KPiA+IEBAIC02MzY5LDEwICs2NDAwLDEwIEBAIHN0YXRpYyB2b2lkIGk4eHhf dXBkYXRlX3BsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywNCj4gPiAgCQkJZHBsbCB8PSBQTExf UDJfRElWSURFX0JZXzQ7DQo+ID4gIAl9DQo+ID4gIA0KPiA+IC0JaWYgKCFJU19JODMwKGRldikg JiYgaW50ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjcnRjLCBJTlRFTF9PVVRQVVRfRFZPKSkNCj4g PiArCWlmICghSVNfSTgzMChkZXYpICYmIGludGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUoY3J0Y19z dGF0ZSwgSU5URUxfT1VUUFVUX0RWTykpDQo+ID4gIAkJZHBsbCB8PSBEUExMX0RWT18yWF9NT0RF Ow0KPiA+ICANCj4gPiAtCWlmIChpbnRlbF9waXBlX3dpbGxfaGF2ZV90eXBlKGNydGMsIElOVEVM X09VVFBVVF9MVkRTKSAmJg0KPiA+ICsJaWYgKGludGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUoY3J0 Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0xWRFMpICYmDQo+ID4gIAkJIGludGVsX3BhbmVsX3VzZV9z c2MoZGV2X3ByaXYpICYmIG51bV9jb25uZWN0b3JzIDwgMikNCj4gPiAgCQlkcGxsIHw9IFBMTEJf UkVGX0lOUFVUX1NQUkVBRFNQRUNUUlVNSU47DQo+ID4gIAllbHNlDQo+ID4gQEAgLTY2MDksNyAr NjY0MCw3IEBAIHN0YXRpYyBpbnQgaTl4eF9jcnRjX2NvbXB1dGVfY2xvY2soc3RydWN0IGludGVs X2NydGMgKmNydGMsDQo+ID4gIAkJcmV0dXJuIDA7DQo+ID4gIA0KPiA+ICAJaWYgKCFjcnRjX3N0 YXRlLT5jbG9ja19zZXQpIHsNCj4gPiAtCQlyZWZjbGsgPSBpOXh4X2dldF9yZWZjbGsoY3J0Yywg bnVtX2Nvbm5lY3RvcnMpOw0KPiA+ICsJCXJlZmNsayA9IGk5eHhfZ2V0X3JlZmNsayhjcnRjX3N0 YXRlLCBudW1fY29ubmVjdG9ycyk7DQo+ID4gIA0KPiA+ICAJCS8qDQo+ID4gIAkJICogUmV0dXJu cyBhIHNldCBvZiBkaXZpc29ycyBmb3IgdGhlIGRlc2lyZWQgdGFyZ2V0IGNsb2NrIHdpdGgNCj4g PiBAQCAtNjYxNyw4ICs2NjQ4LDggQEAgc3RhdGljIGludCBpOXh4X2NydGNfY29tcHV0ZV9jbG9j ayhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywNCj4gPiAgCQkgKiB0aGUgY2xvY2sgZXF1YXRpb246 IHJlZmxjayAqICg1ICogKG0xICsgMikgKyAobTIgKyAyKSkgLyAobiArDQo+ID4gIAkJICogMikg LyBwMSAvIHAyLg0KPiA+ICAJCSAqLw0KPiA+IC0JCWxpbWl0ID0gaW50ZWxfbGltaXQoY3J0Yywg cmVmY2xrKTsNCj4gPiAtCQlvayA9IGRldl9wcml2LT5kaXNwbGF5LmZpbmRfZHBsbChsaW1pdCwg Y3J0YywNCj4gPiArCQlsaW1pdCA9IGludGVsX2xpbWl0KGNydGNfc3RhdGUsIHJlZmNsayk7DQo+ ID4gKwkJb2sgPSBkZXZfcHJpdi0+ZGlzcGxheS5maW5kX2RwbGwobGltaXQsIGNydGNfc3RhdGUs DQo+ID4gIAkJCQkJCSBjcnRjX3N0YXRlLT5wb3J0X2Nsb2NrLA0KPiA+ICAJCQkJCQkgcmVmY2xr LCBOVUxMLCAmY2xvY2spOw0KPiA+ICAJCWlmICghb2spIHsNCj4gPiBAQCAtNjYzNCw3ICs2NjY1 LDcgQEAgc3RhdGljIGludCBpOXh4X2NydGNfY29tcHV0ZV9jbG9jayhzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YywNCj4gPiAgCQkJICogd2Ugd2lsbCBkaXNhYmxlIHRoZSBMVkRTIGRvd25jbG9jayBm ZWF0dXJlLg0KPiA+ICAJCQkgKi8NCj4gPiAgCQkJaGFzX3JlZHVjZWRfY2xvY2sgPQ0KPiA+IC0J CQkJZGV2X3ByaXYtPmRpc3BsYXkuZmluZF9kcGxsKGxpbWl0LCBjcnRjLA0KPiA+ICsJCQkJZGV2 X3ByaXYtPmRpc3BsYXkuZmluZF9kcGxsKGxpbWl0LCBjcnRjX3N0YXRlLA0KPiA+ICAJCQkJCQkJ ICAgIGRldl9wcml2LT5sdmRzX2Rvd25jbG9jaywNCj4gPiAgCQkJCQkJCSAgICByZWZjbGssICZj bG9jaywNCj4gPiAgCQkJCQkJCSAgICAmcmVkdWNlZF9jbG9jayk7DQo+ID4gQEAgLTc0NjIsMTIg Kzc0OTMsMTEgQEAgc3RhdGljIGJvb2wgaXJvbmxha2VfY29tcHV0ZV9jbG9ja3Moc3RydWN0IGRy bV9jcnRjICpjcnRjLA0KPiA+ICB7DQo+ID4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0 Yy0+ZGV2Ow0KPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsNCj4gPiAtCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50 ZWxfY3J0YyhjcnRjKTsNCj4gPiAgCWludCByZWZjbGs7DQo+ID4gIAljb25zdCBpbnRlbF9saW1p dF90ICpsaW1pdDsNCj4gPiAgCWJvb2wgcmV0LCBpc19sdmRzID0gZmFsc2U7DQo+ID4gIA0KPiA+ IC0JaXNfbHZkcyA9IGludGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUoaW50ZWxfY3J0YywgSU5URUxf T1VUUFVUX0xWRFMpOw0KPiA+ICsJaXNfbHZkcyA9IGludGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUo Y3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0xWRFMpOw0KPiA+ICANCj4gPiAgCXJlZmNsayA9IGly b25sYWtlX2dldF9yZWZjbGsoY3J0Yyk7DQo+ID4gIA0KPiA+IEBAIC03NDc2LDggKzc1MDYsOCBA QCBzdGF0aWMgYm9vbCBpcm9ubGFrZV9jb21wdXRlX2Nsb2NrcyhzdHJ1Y3QgZHJtX2NydGMgKmNy dGMsDQo+ID4gIAkgKiByZWZjbGssIG9yIEZBTFNFLiAgVGhlIHJldHVybmVkIHZhbHVlcyByZXBy ZXNlbnQgdGhlIGNsb2NrIGVxdWF0aW9uOg0KPiA+ICAJICogcmVmbGNrICogKDUgKiAobTEgKyAy KSArIChtMiArIDIpKSAvIChuICsgMikgLyBwMSAvIHAyLg0KPiA+ICAJICovDQo+ID4gLQlsaW1p dCA9IGludGVsX2xpbWl0KGludGVsX2NydGMsIHJlZmNsayk7DQo+ID4gLQlyZXQgPSBkZXZfcHJp di0+ZGlzcGxheS5maW5kX2RwbGwobGltaXQsIGludGVsX2NydGMsDQo+ID4gKwlsaW1pdCA9IGlu dGVsX2xpbWl0KGNydGNfc3RhdGUsIHJlZmNsayk7DQo+ID4gKwlyZXQgPSBkZXZfcHJpdi0+ZGlz cGxheS5maW5kX2RwbGwobGltaXQsIGNydGNfc3RhdGUsDQo+ID4gIAkJCQkJICBjcnRjX3N0YXRl LT5wb3J0X2Nsb2NrLA0KPiA+ICAJCQkJCSAgcmVmY2xrLCBOVUxMLCBjbG9jayk7DQo+ID4gIAlp ZiAoIXJldCkNCj4gPiBAQCAtNzQ5MSw3ICs3NTIxLDcgQEAgc3RhdGljIGJvb2wgaXJvbmxha2Vf Y29tcHV0ZV9jbG9ja3Moc3RydWN0IGRybV9jcnRjICpjcnRjLA0KPiA+ICAJCSAqIGRvd25jbG9j ayBmZWF0dXJlLg0KPiA+ICAJCSovDQo+ID4gIAkJKmhhc19yZWR1Y2VkX2Nsb2NrID0NCj4gPiAt CQkJZGV2X3ByaXYtPmRpc3BsYXkuZmluZF9kcGxsKGxpbWl0LCBpbnRlbF9jcnRjLA0KPiA+ICsJ CQlkZXZfcHJpdi0+ZGlzcGxheS5maW5kX2RwbGwobGltaXQsIGNydGNfc3RhdGUsDQo+ID4gIAkJ CQkJCSAgICBkZXZfcHJpdi0+bHZkc19kb3duY2xvY2ssDQo+ID4gIAkJCQkJCSAgICByZWZjbGss IGNsb2NrLA0KPiA+ICAJCQkJCQkgICAgcmVkdWNlZF9jbG9jayk7DQo+ID4gLS0gDQo+ID4gMi4x LjANCj4gPiANCj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXw0KPiA+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QNCj4gPiBJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnDQo+ID4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeA0KPiANCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkludGVsIEZpbmxhbmQgT3kKUmVn aXN0ZXJlZCBBZGRyZXNzOiBQTCAyODEsIDAwMTgxIEhlbHNpbmtpIApCdXNpbmVzcyBJZGVudGl0 eSBDb2RlOiAwMzU3NjA2IC0gNCAKRG9taWNpbGVkIGluIEhlbHNpbmtpIAoKVGhpcyBlLW1haWwg YW5kIGFueSBhdHRhY2htZW50cyBtYXkgY29udGFpbiBjb25maWRlbnRpYWwgbWF0ZXJpYWwgZm9y CnRoZSBzb2xlIHVzZSBvZiB0aGUgaW50ZW5kZWQgcmVjaXBpZW50KHMpLiBBbnkgcmV2aWV3IG9y IGRpc3RyaWJ1dGlvbgpieSBvdGhlcnMgaXMgc3RyaWN0bHkgcHJvaGliaXRlZC4gSWYgeW91IGFy ZSBub3QgdGhlIGludGVuZGVkCnJlY2lwaWVudCwgcGxlYXNlIGNvbnRhY3QgdGhlIHNlbmRlciBh bmQgZGVsZXRlIGFsbCBjb3BpZXMuCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==