From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 07/15] drm/i915: Defer default hardware context initialisation until first open Date: Wed, 17 Jun 2015 14:18:12 +0200 Message-ID: <20150617121812.GS23637@phenom.ffwll.local> References: <1434393394-21002-1-git-send-email-david.s.gordon@intel.com> <1434393394-21002-8-git-send-email-david.s.gordon@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wg0-f45.google.com (mail-wg0-f45.google.com [74.125.82.45]) by gabe.freedesktop.org (Postfix) with ESMTP id EA7076EA68 for ; Wed, 17 Jun 2015 05:15:27 -0700 (PDT) Received: by wgv5 with SMTP id 5so35389199wgv.1 for ; Wed, 17 Jun 2015 05:15:27 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1434393394-21002-8-git-send-email-david.s.gordon@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Dave Gordon Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBKdW4gMTUsIDIwMTUgYXQgMDc6MzY6MjVQTSArMDEwMCwgRGF2ZSBHb3Jkb24gd3Jv dGU6Cj4gSW4gb3JkZXIgdG8gZnVsbHkgaW5pdGlhbGlzZSB0aGUgZGVmYXVsdCBjb250ZXh0cywg d2UgaGF2ZSB0byBleGVjdXRlCj4gYmF0Y2hidWZmZXIgY29tbWFuZHMgb24gdGhlIEdQVSBlbmdp bmVzLiBCdXQgaW4gdGhlIGNhc2Ugb2YgR3VDLWJhc2VkCj4gYmF0Y2ggc3VibWlzc2lvbiwgd2Ug Y2FuJ3QgZG8gdGhhdCB1bnRpbCBhbnkgcmVxdWlyZWQgZmlybXdhcmUgaGFzCj4gYmVlbiBsb2Fk ZWQsIHdoaWNoIG1heSBub3QgYmUgcG9zc2libGUgZHVyaW5nIGRyaXZlciBsb2FkLCBiZWNhdXNl IHRoZQo+IGZpbGVzeXN0ZW0ocykgY29udGFpbmluZyB0aGUgZmlybXdhcmUgbWF5IG5vdCBiZSBt b3VudGVkIHVudGlsIGxhdGVyLgo+IAo+IFRoZXJlZm9yZSwgd2Ugbm93IGFsbG93IHRoZSBmaXJz dCBjYWxsIHRvIHRoZSBmaXJtd2FyZS1sb2FkaW5nIGNvZGUgdG8KPiByZXR1cm4gLUVBR0FJTiB0 byBpbmRpY2F0ZSB0aGF0IGl0J3Mgbm90IHlldCByZWFkeSwgYW5kIHRoYXQgaXQgc2hvdWxkCj4g YmUgcmV0cmllZCB3aGVuIHRoZSBkZXZpY2UgaXMgZmlyc3Qgb3BlbmVkIGZyb20gdXNlciBjb2Rl LCBieSB3aGljaAo+IHRpbWUgd2UgZXhwZWN0IHRoYXQgYWxsIHJlcXVpcmVkIGZpbGVzeXN0ZW1z IHdpbGwgaGF2ZSBiZWVuIG1vdW50ZWQuCj4gVGhlIGxhdGUtcmV0cnkgY29kZSB3aWxsIHRoZW4g cmUtYXR0ZW1wdCB0byBsb2FkIHRoZSBmaXJtd2FyZSBpZiB0aGUKPiBlYXJseSBhdHRlbXB0IGZh aWxlZC4KPiAKPiBJZiB0aGUgbGF0ZSByZXRyeSBmYWlscywgdGhlIGN1cnJlbnQgb3Blbi1pbi1w cm9ncmVzcyB3aWxsIGZhaWwsIGJ1dAo+IHRoZSByZWNvdmVyeSBjb2RlIHdpbGwgZGlzYWJsZSBH dUMgc3VibWlzc2lvbiBhbmQgcmVzZXQgdGhlIEdQVSBhbmQKPiBkcml2ZXIuIFRoZSBuZXh0IG9w ZW4gd2lsbCB0aGVyZWZvcmUgYmUgaW4gbm9uLUd1QyBtb2RlLCBhbmQgd2lsbCBiZQo+IGFsbG93 ZWQgdG8gY29tcGxldGUgZXZlbiBpZiB0aGUgR3VDIGNhbm5vdCBiZSBsb2FkZWQgb3IgdXNlZC4K PiAKPiBJc3N1ZTogVklaLTQ4ODQKPiBTaWduZWQtb2ZmLWJ5OiBEYXZlIEdvcmRvbiA8ZGF2aWQu cy5nb3Jkb25AaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IEFsZXggRGFpIDx5dS5kYWlAaW50 ZWwuY29tPgoKSSdtIG5vdCByZWFsbHkgc29sZCBvbiB0aGlzIHN1cGVyLWZsZXhpYmxlIGZhbGxi YWNrIHNjaGVtZSBpbXBsZW1lbnRlZApoZXJlLiBCZWNhdXNlIHN1Y2ggZmFsbGJhY2sgc2NoZW1l cyBtZWFucyBtb3JlIGNvZGUgdG8gdGVzdCAod2hpY2ggbm8gb24Kd2lsbCBkbyBsaWtlbHkpIG9y IGp1c3QgZXZlbiBiaWdnZXIgZmlyZXdvcmtzIHdoZW4gd2UgYWN0dWFsbHkgaGl0IHRoZW0gaW4K cmVhbGl0eSB3aGVuIHNvbWV0aGluZyBnb2VzIHdyb25nLiBJbW8gaWYgYW55dGhpbmcgZ29lcyB3 cm9uZyBpbiB0aGUgc2V0dXAKd2UganVzdCB0aHJvdyBpbiB0aGUgdG93ZWwgYW5kIGZhaWwgdGhl IGRyaXZlciBsb2FkaW5nLgoKVGhlcmUncyBvbmx5IG9uZSBleGNlcHRpb246IElmIHNvbWV0aGlu ZyBmYWlscyB3aXRoIEdUIGluaXQgd2UgZGVjbGFyZSB0aGUKZ3B1IHdlZGdlZCBidXQgcHJvY2Vl ZCB3aXRoIGFsbCB0aGUgbW9kZXNldCBzZXR1cC4gVGhpcyBtYWtlcyBzZW5zZQpiZWNhdXNlIHdl IG5lZWQgYWxsIHRoZSBjb2RlIHRvIGhhbmRsZSBhIHdlZGdlIGdwdSBhbnl3YXksIGRlYWQtb24t Ym9vdApncHVzIGhhcHBlbiBvY2Nhc2lvbmFsbHkgYW5kIGl0J3MgcmVhbGx5IG5vdCBuaWNlIHRv IGdyZWV0IHRoZSB1c2VyIHdpdGggYQpibGFjayBzY3JlZW4uIEJ1dCBtb3JlIGZhbGxiYWNrcyBh cmUgaW1vIGp1c3QgaGVhZGFjaGUuCgpIZW5jZSB3aGVuIHRoZSBndWMgZmFpbHMgd2UgaW1vIHJl YWxseSBzaG91bGRuJ3QgYm90aGVyIHdpdGggZmFsbGJhY2tzLApidXQgaW5zdGVhZCBqdXN0IGRl Y2xhcmUgdGhlIHRoaW5nIHdlZGdlZCBhbmQgY2Fycnkgb24uCgpUaGF0IHNob3VsZCBhbHNvIGFs bG93IHVzIHRvIHNpbXBsaWZ5IHRoZSBmaXJtd2FyZSBsb2FkaW5nOiBXZSBjYW4gZG8gdGhhdApp biBhbiBhc3luYyB3b3JrZXIgYW5kIGlmIHRoZSBibG9iIGlzbid0IHRoZXJlIGluIHRpbWUgdGhl biB3ZSBqdXN0IG1vdmUKb24uCi1EYW5pZWwKCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmggICAgICAgICB8ICAgIDIgKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYyAgICAgICAgIHwgICAgOSArKysrKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fY29udGV4dC5jIHwgICA1MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgICAgICB8ICAgNDggKysrKysrKysr KysrKysrKysrKysrKysrKysrKwo+ICA0IGZpbGVzIGNoYW5nZWQsIDEwNSBpbnNlcnRpb25zKCsp LCA2IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IGY0N2Nk ZTcuLmExZmMyNzggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtMTgzNyw2ICsx ODM3LDcgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+ICAJLyogaGRhL2k5MTUgYXVkaW8g Y29tcG9uZW50ICovCj4gIAlib29sIGF1ZGlvX2NvbXBvbmVudF9yZWdpc3RlcmVkOwo+ICAKPiAr CWJvb2wgY29udGV4dHNfcmVhZHk7Cj4gIAl1aW50MzJfdCBod19jb250ZXh0X3NpemU7Cj4gIAlz dHJ1Y3QgbGlzdF9oZWFkIGNvbnRleHRfbGlzdDsKPiAgCj4gQEAgLTI2MTQsNiArMjYxNSw3IEBA IHZvaWQgaTkxNV9xdWV1ZV9oYW5nY2hlY2soc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gIF9f cHJpbnRmKDMsIDQpCj4gIHZvaWQgaTkxNV9oYW5kbGVfZXJyb3Ioc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgYm9vbCB3ZWRnZWQsCj4gIAkJICAgICAgIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKPiAr dm9pZCBpOTE1X2hhbmRsZV9ndWNfZXJyb3Ioc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGVy cik7Cj4gIAo+ICBleHRlcm4gdm9pZCBpbnRlbF9pcnFfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpOwo+ICBleHRlcm4gdm9pZCBpbnRlbF9ocGRfaW5pdChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IGluZGV4 IGNkNGE4NjUuLmQxYTg4NjIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBAQCAtNTAy NSw4ICs1MDI1LDE1IEBAIGk5MTVfZ2VtX2luaXRfaHcoc3RydWN0IGRybV9kZXZpY2UgKmRldikK PiAgCj4gIAkvKiBXZSBjYW4ndCBlbmFibGUgY29udGV4dHMgdW50aWwgYWxsIGZpcm13YXJlIGlz IGxvYWRlZCAqLwo+ICAJcmV0ID0gaW50ZWxfZ3VjX3Vjb2RlX2xvYWQoZGV2LCBmYWxzZSk7Cj4g KwlpZiAocmV0ID09IC1FQUdBSU4pIHsKPiArCQlyZXQgPSAwOwo+ICsJCWdvdG8gb3V0OwkJLyog dG9vIGVhcmx5ICovCj4gKwl9Cj4gKwo+ICAJcmV0ID0gaTkxNV9nZW1fY29udGV4dF9lbmFibGUo ZGV2X3ByaXYpOwo+IC0JaWYgKHJldCAmJiByZXQgIT0gLUVJTykgewo+ICsJaWYgKHJldCA9PSAw KSB7Cj4gKwkJZGV2X3ByaXYtPmNvbnRleHRzX3JlYWR5ID0gdHJ1ZTsKPiArCX0gZWxzZSBpZiAo cmV0ICYmIHJldCAhPSAtRUlPKSB7Cj4gIAkJRFJNX0VSUk9SKCJDb250ZXh0IGVuYWJsZSBmYWls ZWQgJWRcbiIsIHJldCk7Cj4gIAkJaTkxNV9nZW1fY2xlYW51cF9yaW5nYnVmZmVyKGRldik7Cj4g IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKPiBpbmRleCAxMzNhZmNm Li5kZWJiZmM5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2Nv bnRleHQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwo+ IEBAIC00NDcsMjMgKzQ0Nyw2NSBAQCBzdGF0aWMgaW50IGNvbnRleHRfaWRyX2NsZWFudXAoaW50 IGlkLCB2b2lkICpwLCB2b2lkICpkYXRhKQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gKy8qIENv bXBsZXRlIGFueSBsYXRlIGluaXRpYWxpc2F0aW9uIGhlcmUgKi8KPiArc3RhdGljIGludCBpOTE1 X2dlbV9jb250ZXh0X2ZpcnN0X29wZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiArewo+ICsJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAr CWludCByZXQ7Cj4gKwo+ICsJLyoKPiArCSAqIFdlIGNhbid0IGVuYWJsZSBjb250ZXh0cyB1bnRp bCBhbGwgZmlybXdhcmUgaXMgbG9hZGVkLiBUaGlzCj4gKwkgKiBjYWxsIHNob3VsZG4ndCByZXR1 cm4gLUVBR0FJTiBiZWNhdXNlIHdlIHBhc3Mgd2FpdD10cnVlLCBidXQKPiArCSAqIGl0IGNhbiBz dGlsbCBmYWlsIHdpdGggY29kZSAtRUlPIGlmIHRoZSBHdUMgZG9lc24ndCByZXNwb25kLAo+ICsJ ICogb3IgLUVOT0VYRUMgaWYgdGhlIEd1QyBmaXJtd2FyZSBpbWFnZSBpcyBpbnZhbGlkLgo+ICsJ ICovCj4gKwlyZXQgPSBpbnRlbF9ndWNfdWNvZGVfbG9hZChkZXYsIHRydWUpOwo+ICsJV0FSTl9P TihyZXQgPT0gLUVBR0FJTik7Cj4gKwo+ICsJLyoKPiArCSAqIElmIGFuIGVycm9yIG9jY3VycmVk IGFuZCBHdUMgc3VibWlzc2lvbiBoYXMgYmVlbiByZXF1ZXN0ZWQsIHdlIGNhbgo+ICsJICogYXR0 ZW1wdCByZWNvdmVyeSBieSBkaXNhYmxpbmcgR3VDIHN1Ym1pc3Npb24gYW5kIHJlaW5pdGlhbGlz aW5nCj4gKwkgKiB0aGUgR1BVIGFuZCBkcml2ZXIuIFdlIHRoZW4gZmFpbCB0aGlzIG9wZW4oKSBh bnl3YXksIGJ1dCB0aGUgbmV4dAo+ICsJICogYXR0ZW1wdCB3aWxsIGZpbmQgdGhhdCBHdUMgc3Vi bWlzc2lvbiBpcyBhbHJlYWR5IGRpc2FibGVkLCBhbmQgc28KPiArCSAqIHByb2NlZWQgdG8gY29t cGxldGUgY29udGV4dCBpbml0aWFsaXNhdGlvbiBpbiBub24tR3VDIG1vZGUgaW5zdGVhZC4KPiAr CSAqLwo+ICsJaWYgKHJldCAmJiBpOTE1LmVuYWJsZV9ndWNfc3VibWlzc2lvbikgewo+ICsJCWk5 MTVfaGFuZGxlX2d1Y19lcnJvcihkZXYsIHJldCk7Cj4gKwkJcmV0dXJuIHJldDsKPiArCX0KPiAr Cj4gKwlyZXQgPSBpOTE1X2dlbV9jb250ZXh0X2VuYWJsZShkZXZfcHJpdik7Cj4gKwlpZiAocmV0 ID09IDApCj4gKwkJZGV2X3ByaXYtPmNvbnRleHRzX3JlYWR5ID0gdHJ1ZTsKPiArCXJldHVybiBy ZXQ7Cj4gK30KPiArCj4gIGludCBpOTE1X2dlbV9jb250ZXh0X29wZW4oc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlKQo+ICB7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAJc3RydWN0IGRybV9pOTE1 X2ZpbGVfcHJpdmF0ZSAqZmlsZV9wcml2ID0gZmlsZS0+ZHJpdmVyX3ByaXY7Cj4gIAlzdHJ1Y3Qg aW50ZWxfY29udGV4dCAqY3R4Owo+ICsJaW50IHJldCA9IDA7Cj4gIAo+ICAJaWRyX2luaXQoJmZp bGVfcHJpdi0+Y29udGV4dF9pZHIpOwo+ICAKPiAgCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211 dGV4KTsKPiAtCWN0eCA9IGk5MTVfZ2VtX2NyZWF0ZV9jb250ZXh0KGRldiwgZmlsZV9wcml2KTsK PiArCj4gKwlpZiAoIWRldl9wcml2LT5jb250ZXh0c19yZWFkeSkKPiArCQlyZXQgPSBpOTE1X2dl bV9jb250ZXh0X2ZpcnN0X29wZW4oZGV2KTsKPiArCj4gKwlpZiAocmV0ID09IDApIHsKPiArCQlj dHggPSBpOTE1X2dlbV9jcmVhdGVfY29udGV4dChkZXYsIGZpbGVfcHJpdik7Cj4gKwkJaWYgKElT X0VSUihjdHgpKQo+ICsJCQlyZXQgPSBQVFJfRVJSKGN0eCk7Cj4gKwl9Cj4gKwo+ICAJbXV0ZXhf dW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4gIAo+IC0JaWYgKElTX0VSUihjdHgpKSB7Cj4g KwlpZiAocmV0KQo+ICAJCWlkcl9kZXN0cm95KCZmaWxlX3ByaXYtPmNvbnRleHRfaWRyKTsKPiAt CQlyZXR1cm4gUFRSX0VSUihjdHgpOwo+IC0JfQo+ICAKPiAtCXJldHVybiAwOwo+ICsJcmV0dXJu IHJldDsKPiAgfQo+ICAKPiAgdm9pZCBpOTE1X2dlbV9jb250ZXh0X2Nsb3NlKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJx LmMKPiBpbmRleCA1NmRiOWU3NC4uZjdkY2Y4ZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2lycS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEu Ywo+IEBAIC0yNjY1LDYgKzI2NjUsNTQgQEAgdm9pZCBpOTE1X2hhbmRsZV9lcnJvcihzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCBib29sIHdlZGdlZCwKPiAgCWk5MTVfcmVzZXRfYW5kX3dha2V1cChk ZXYpOwo+ICB9Cj4gIAo+ICsvKioKPiArICogaTkxNV9oYW5kbGVfZXJyb3IgLSBoYW5kbGUgYSBH dUMgZXJyb3IKPiArICogQGRldjogZHJtIGRldmljZQo+ICsgKgo+ICsgKiBJZiB0aGUgR3VDIGNh bid0IGJlIChyZS0paW5pdGlhbGlzZWQsIGRpc2FibGUgR3VDIHN1Ym1pc3Npb24gYW5kCj4gKyAq IHRoZW4gcmVzZXQgYW5kIHJlaW5pdGlhbGlzZSB0aGUgcmVzdCBvZiB0aGUgR1BVLCBzbyB0aGF0 IHdlIGNhbgo+ICsgKiBmYWxsIGJhY2sgdG8gb3BlcmF0aW5nIGluIEVMU1AgbW9kZS4gRG9uJ3Qg Ym90aGVyIGNhcHR1cmluZyBlcnJvcgo+ICsgKiBzdGF0ZSwgYmVjYXVzZSBpdCBwcm9iYWJseSBp c24ndCByZWxldmFudCBoZXJlLgo+ICsgKgo+ICsgKiBVbmxpa2UgaTkxNV9oYW5kbGVfZXJyb3Io KSBhYm92ZSwgdGhpcyBpcyBjYWxsZWQgd2l0aCB0aGUgZ2xvYmFsCj4gKyAqIHN0cnVjdF9tdXRl eCBoZWxkLCBzbyB3ZSBuZWVkIHRvIHJlbGVhc2UgaXQgYWZ0ZXIgc2V0dGluZyB0aGUKPiArICog cmVzZXQtaW4tcHJvZ3Jlc3MgYml0IHNvIHRoYXQgb3RoZXIgdGhyZWFkcyBjYW4gbWFrZSBwcm9n cmVzcywKPiArICogYW5kIHJlYWNxdWlyZSBpdCBhZnRlciB0aGUgcmVzZXQgaXMgY29tcGxldGUu Cj4gKyAqLwo+ICt2b2lkIGk5MTVfaGFuZGxlX2d1Y19lcnJvcihzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBpbnQgZXJyKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSBkZXYtPmRldl9wcml2YXRlOwo+ICsKPiArCURSTV9FUlJPUigiR3VDIGZhaWx1cmUgJWQsIGRp c2FibGluZyBHdUMgc3VibWlzc2lvblxuIiwgZXJyKTsKPiArCWk5MTUuZW5hYmxlX2d1Y19zdWJt aXNzaW9uID0gZmFsc2U7Cj4gKwo+ICsJaTkxNV9yZXBvcnRfYW5kX2NsZWFyX2VpcihkZXYpOwkv KiB1bmxpa2VseT8gKi8KPiArCj4gKwlhdG9taWNfc2V0X21hc2soSTkxNV9SRVNFVF9JTl9QUk9H UkVTU19GTEFHLAo+ICsJCQkmZGV2X3ByaXYtPmdwdV9lcnJvci5yZXNldF9jb3VudGVyKTsKPiAr Cj4gKwltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKPiArCj4gKwkvKgo+ICsJICog V2FrZXVwIHdhaXRpbmcgcHJvY2Vzc2VzIHNvIHRoYXQgdGhlIHJlc2V0IGZ1bmN0aW9uCj4gKwkg KiBpOTE1X3Jlc2V0X2FuZF93YWtldXAgZG9lc24ndCBkZWFkbG9jayB0cnlpbmcgdG8gZ3JhYgo+ ICsJICogdmFyaW91cyBsb2Nrcy4gQnkgYnVtcGluZyB0aGUgcmVzZXQgY291bnRlciBmaXJzdCwg dGhlIHdva2VuCj4gKwkgKiBwcm9jZXNzZXMgd2lsbCBzZWUgYSByZXNldCBpbiBwcm9ncmVzcyBh bmQgYmFjayBvZmYsCj4gKwkgKiByZWxlYXNpbmcgdGhlaXIgbG9ja3MgYW5kIHRoZW4gd2FpdCBm b3IgdGhlIHJlc2V0IGNvbXBsZXRpb24uCj4gKwkgKiBXZSBtdXN0IGRvIHRoaXMgZm9yIF9hbGxf IGdwdSB3YWl0ZXJzIHRoYXQgbWlnaHQgaG9sZCBsb2Nrcwo+ICsJICogdGhhdCB0aGUgcmVzZXQg d29yayBuZWVkcyB0byBhY3F1aXJlLgo+ICsJICoKPiArCSAqIE5vdGU6IFRoZSB3YWtlX3VwIHNl cnZlcyBhcyB0aGUgcmVxdWlyZWQgbWVtb3J5IGJhcnJpZXIgdG8KPiArCSAqIGVuc3VyZSB0aGF0 IHRoZSB3YWl0ZXJzIHNlZSB0aGUgdXBkYXRlZCB2YWx1ZSBvZiB0aGUgcmVzZXQKPiArCSAqIGNv dW50ZXIgYXRvbWljX3QuCj4gKwkgKi8KPiArCWk5MTVfZXJyb3Jfd2FrZV91cChkZXZfcHJpdiwg ZmFsc2UpOwo+ICsKPiArCWk5MTVfcmVzZXRfYW5kX3dha2V1cChkZXYpOwo+ICsKPiArCW11dGV4 X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKPiArfQo+ICsKPiAgLyogQ2FsbGVkIGZyb20gZHJt IGdlbmVyaWMgY29kZSwgcGFzc2VkICdjcnRjJyB3aGljaAo+ICAgKiB3ZSB1c2UgYXMgYSBwaXBl IGluZGV4Cj4gICAqLwo+IC0tIAo+IDEuNy45LjUKPiAKPiBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUg RW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==