From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v3 2/3] drm/i915: abolish separate per-ring default_context pointers Date: Tue, 19 Jan 2016 09:54:35 +0100 Message-ID: <20160119085435.GS19130@phenom.ffwll.local> References: <1452162052-22573-1-git-send-email-david.s.gordon@intel.com> <1452162052-22573-3-git-send-email-david.s.gordon@intel.com> <569D0FE7.20109@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-f47.google.com (mail-wm0-f47.google.com [74.125.82.47]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9321F6E6BE for ; Tue, 19 Jan 2016 00:54:31 -0800 (PST) Received: by mail-wm0-f47.google.com with SMTP id n5so100158492wmn.0 for ; Tue, 19 Jan 2016 00:54:31 -0800 (PST) Content-Disposition: inline In-Reply-To: <569D0FE7.20109@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Nick Hoath Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBKYW4gMTgsIDIwMTYgYXQgMDQ6MTY6MzlQTSArMDAwMCwgTmljayBIb2F0aCB3cm90 ZToKPiBPbiAwNy8wMS8yMDE2IDEwOjIwLCBEYXZlIEdvcmRvbiB3cm90ZToKPiA+Tm93IHRoYXQg d2UndmUgZWxpbWluYXRlZCBhIGxvdCBvZiB1c2VzIG9mIHJpbmctPmRlZmF1bHRfY29udGV4dCwK PiA+d2UgY2FuIGVsaW1pbmF0ZSB0aGUgcG9pbnRlciBpdHNlbGYuCj4gPgo+ID5BbGwgdGhlIGVu Z2luZXMgc2hhcmUgdGhlIHNhbWUgZGVmYXVsdCBpbnRlbF9jb250ZXh0LCBzbyB3ZSBjYW4ganVz dAo+ID5rZWVwIGEgc2luZ2xlIHJlZmVyZW5jZSB0byBpdCBpbiB0aGUgZGV2X3ByaXYgc3RydWN0 dXJlIHJhdGhlciB0aGFuIG9uZQo+ID5pbiBlYWNoIG9mIHRoZSBlbmdpbmVbXSBlbGVtZW50cy4g VGhpcyBtYWtlIHJlZmNvdW50aW5nIG1vcmUgc2Vuc2libGUKPiA+dG9vLCBhcyB3ZSBub3cgaGF2 ZSBhIHJlZmNvdW50IG9mIG9uZSBmb3IgdGhlIG9uZSBwb2ludGVyLCByYXRoZXIgdGhhbgo+ID5h IHJlZmNvdW50IG9mIG9uZSBidXQgbXVsdGlwbGUgcG9pbnRlcnMuCj4gPgo+ID4gRnJvbSBhbiBp ZGVhIGJ5IENocmlzIFdpbHNvbi4KPiA+Cj4gPlNpZ25lZC1vZmYtYnk6IERhdmUgR29yZG9uIDxk YXZpZC5zLmdvcmRvbkBpbnRlbC5jb20+Cj4gCj4gUmV2aWV3ZWQtYnk6IE5pY2sgSG9hdGggPG5p Y2hvbGFzLmhvYXRoQGludGVsLmNvbT4KCkluIHRoZSBpbnRlcmVzdCBvZiBoYW1wZXJpbmcgbXkg cG9wdWxhcml0eSBJIHdhbnRlZCB0byB0byBtZXJnZSB0aGUgZmlyc3QKdHdvIHBhdGNoZXMgaW4g dGhpcyBzZXJpZXMsIGJ1dCB0aGlzIG9uZSBoZXJlIGNvbmZsaWN0cyB3aXRoIHBhdGNoZXMKVHZy dGtvIGp1c3QgbWVyZ2VkLiBBbHNvIHRoaXMgc2VlbXMgdG8gaGF2ZSBmYWxsZW4gaW50byBhIHBl cmlvZCB3aGVyZSBDSQp3YXMgZG93biwgc28gbGFja2luZyBiYXQgcmVzdWx0cyB0b28uIENhbiB5 b3UgcGxzIHJlc2VuZD8KClRoYW5rcywgRGFuaWVsCj4gCj4gPi0tLQo+ID4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAgICAgICB8ICA0ICsrLS0KPiA+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAgfCAgMiArKwo+ID4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICB8ICA2ICsrKy0tLQo+ID4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyAgICB8IDIyICsrKysrKysrLS0tLS0tLS0t LS0tLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jICAgICAgfCAg MiArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyB8ICA2 ICsrKy0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAgICAgICAgICB8 IDI0ICsrKysrKysrKysrKystLS0tLS0tLS0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3JpbmdidWZmZXIuaCAgICB8ICAxIC0KPiA+ICA4IGZpbGVzIGNoYW5nZWQsIDMyIGluc2Vy dGlvbnMoKyksIDM1IGRlbGV0aW9ucygtKQo+ID4KPiA+ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1 Z2ZzLmMKPiA+aW5kZXggMGZjMzhiYi4uMjYxMzcwOCAxMDA2NDQKPiA+LS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiA+KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kZWJ1Z2ZzLmMKPiA+QEAgLTE5NDMsNyArMTk0Myw3IEBAIHN0YXRpYyBpbnQgaTkxNV9j b250ZXh0X3N0YXR1cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKPiA+ICAJCXNl cV9wdXRzKG0sICJIVyBjb250ZXh0ICIpOwo+ID4gIAkJZGVzY3JpYmVfY3R4KG0sIGN0eCk7Cj4g PiAgCQlmb3JfZWFjaF9yaW5nKHJpbmcsIGRldl9wcml2LCBpKSB7Cj4gPi0JCQlpZiAocmluZy0+ ZGVmYXVsdF9jb250ZXh0ID09IGN0eCkKPiA+KwkJCWlmIChkZXZfcHJpdi0+a2VybmVsX2NvbnRl eHQgPT0gY3R4KQo+ID4gIAkJCQlzZXFfcHJpbnRmKG0sICIoZGVmYXVsdCBjb250ZXh0ICVzKSAi LAo+ID4gIAkJCQkJICAgcmluZy0+bmFtZSk7Cj4gPiAgCQl9Cj4gPkBAIC0yMDM5LDcgKzIwMzks NyBAQCBzdGF0aWMgaW50IGk5MTVfZHVtcF9scmMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1 bnVzZWQpCj4gPgo+ID4gIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGN0eCwgJmRldl9wcml2LT5jb250 ZXh0X2xpc3QsIGxpbmspIHsKPiA+ICAJCWZvcl9lYWNoX3JpbmcocmluZywgZGV2X3ByaXYsIGkp IHsKPiA+LQkJCWlmIChyaW5nLT5kZWZhdWx0X2NvbnRleHQgIT0gY3R4KQo+ID4rCQkJaWYgKGRl dl9wcml2LT5rZXJuZWxfY29udGV4dCAhPSBjdHgpCj4gPiAgCQkJCWk5MTVfZHVtcF9scmNfb2Jq KG0sIHJpbmcsCj4gPiAgCQkJCQkJICBjdHgtPmVuZ2luZVtpXS5zdGF0ZSk7Cj4gPiAgCQl9Cj4g PmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID5pbmRleCBjMmIwMDBhLi5hZWY4NmE4IDEwMDY0NAo+ ID4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+QEAgLTE5NDAsNiArMTk0MCw4IEBAIHN0cnVjdCBk cm1faTkxNV9wcml2YXRlIHsKPiA+ICAJCXZvaWQgKCpzdG9wX3JpbmcpKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKnJpbmcpOwo+ID4gIAl9IGd0Owo+ID4KPiA+KwlzdHJ1Y3QgaW50ZWxfY29udGV4 dCAqa2VybmVsX2NvbnRleHQ7Cj4gPisKPiA+ICAJYm9vbCBlZHBfbG93X3Zzd2luZzsKPiA+Cj4g PiAgCS8qIHBlcmZvcm0gUEhZIHN0YXRlIHNhbml0eSBjaGVja3M/ICovCj4gPmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW0uYwo+ID5pbmRleCBjOTA4ZWQxLi44ZjEwMTEyMSAxMDA2NDQKPiA+LS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ID4rKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jCj4gPkBAIC0yNjc4LDcgKzI2NzgsNyBAQCB2b2lkIGk5MTVfZ2VtX3JlcXVl c3RfZnJlZShzdHJ1Y3Qga3JlZiAqcmVxX3JlZikKPiA+Cj4gPiAgCWlmIChjdHgpIHsKPiA+ICAJ CWlmIChpOTE1LmVuYWJsZV9leGVjbGlzdHMpIHsKPiA+LQkJCWlmIChjdHggIT0gcmVxLT5yaW5n LT5kZWZhdWx0X2NvbnRleHQpCj4gPisJCQlpZiAoY3R4ICE9IHJlcS0+aTkxNS0+a2VybmVsX2Nv bnRleHQpCj4gPiAgCQkJCWludGVsX2xyX2NvbnRleHRfdW5waW4ocmVxKTsKPiA+ICAJCX0KPiA+ Cj4gPkBAIC0yNzc0LDcgKzI3NzQsNyBAQCBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKPiA+ICAJaW50IGVycjsKPiA+Cj4gPiAgCWlmIChjdHgg PT0gTlVMTCkKPiA+LQkJY3R4ID0gZW5naW5lLT5kZWZhdWx0X2NvbnRleHQ7Cj4gPisJCWN0eCA9 IHRvX2k5MTUoZW5naW5lLT5kZXYpLT5rZXJuZWxfY29udGV4dDsKPiA+ICAJZXJyID0gX19pOTE1 X2dlbV9yZXF1ZXN0X2FsbG9jKGVuZ2luZSwgY3R4LCAmcmVxKTsKPiA+ICAJcmV0dXJuIGVyciA/ IEVSUl9QVFIoZXJyKSA6IHJlcTsKPiA+ICB9Cj4gPkBAIC00ODYyLDcgKzQ4NjIsNyBAQCBpOTE1 X2dlbV9pbml0X2h3KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiAgCSAqLwo+ID4gIAlpbml0 X3VudXNlZF9yaW5ncyhkZXYpOwo+ID4KPiA+LQlCVUdfT04oIWRldl9wcml2LT5yaW5nW1JDU10u ZGVmYXVsdF9jb250ZXh0KTsKPiA+KwlCVUdfT04oIWRldl9wcml2LT5rZXJuZWxfY29udGV4dCk7 Cj4gPgo+ID4gIAlyZXQgPSBpOTE1X3BwZ3R0X2luaXRfaHcoZGV2KTsKPiA+ICAJaWYgKHJldCkg ewo+ID5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCj4gPmluZGV4IDkwMGZm ZDAuLmUxZDc2N2UgMTAwNjQ0Cj4gPi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2NvbnRleHQuYwo+ID4rKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0 LmMKPiA+QEAgLTM1NCwxMSArMzU0LDEwIEBAIGludCBpOTE1X2dlbV9jb250ZXh0X2luaXQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKPiA+ICB7Cj4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gPiAgCXN0cnVjdCBpbnRlbF9jb250ZXh0 ICpjdHg7Cj4gPi0JaW50IGk7Cj4gPgo+ID4gIAkvKiBJbml0IHNob3VsZCBvbmx5IGJlIGNhbGxl ZCBvbmNlIHBlciBtb2R1bGUgbG9hZC4gRXZlbnR1YWxseSB0aGUKPiA+ICAJICogcmVzdHJpY3Rp b24gb24gdGhlIGNvbnRleHRfZGlzYWJsZWQgY2hlY2sgY2FuIGJlIGxvb3NlbmVkLiAqLwo+ID4t CWlmIChXQVJOX09OKGRldl9wcml2LT5yaW5nW1JDU10uZGVmYXVsdF9jb250ZXh0KSkKPiA+Kwlp ZiAoV0FSTl9PTihkZXZfcHJpdi0+a2VybmVsX2NvbnRleHQpKQo+ID4gIAkJcmV0dXJuIDA7Cj4g Pgo+ID4gIAlpZiAoaW50ZWxfdmdwdV9hY3RpdmUoZGV2KSAmJiBIQVNfTE9HSUNBTF9SSU5HX0NP TlRFWFRTKGRldikpIHsKPiA+QEAgLTM4OCwxMiArMzg3LDcgQEAgaW50IGk5MTVfZ2VtX2NvbnRl eHRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gIAkJcmV0dXJuIFBUUl9FUlIoY3R4 KTsKPiA+ICAJfQo+ID4KPiA+LQlmb3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1fUklOR1M7IGkrKykg ewo+ID4tCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gJmRldl9wcml2LT5yaW5nW2ld Owo+ID4tCj4gPi0JCS8qIE5COiBSQ1Mgd2lsbCBob2xkIGEgcmVmIGZvciBhbGwgcmluZ3MgKi8K PiA+LQkJcmluZy0+ZGVmYXVsdF9jb250ZXh0ID0gY3R4Owo+ID4tCX0KPiA+KwlkZXZfcHJpdi0+ a2VybmVsX2NvbnRleHQgPSBjdHg7Cj4gPgo+ID4gIAlEUk1fREVCVUdfRFJJVkVSKCIlcyBjb250 ZXh0IHN1cHBvcnQgaW5pdGlhbGl6ZWRcbiIsCj4gPiAgCQkJaTkxNS5lbmFibGVfZXhlY2xpc3Rz ID8gIkxSIiA6Cj4gPkBAIC00MDQsNyArMzk4LDcgQEAgaW50IGk5MTVfZ2VtX2NvbnRleHRfaW5p dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gIHZvaWQgaTkxNV9nZW1fY29udGV4dF9maW5p KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ID4tCXN0cnVjdCBpbnRlbF9jb250 ZXh0ICpkY3R4ID0gZGV2X3ByaXYtPnJpbmdbUkNTXS5kZWZhdWx0X2NvbnRleHQ7Cj4gPisJc3Ry dWN0IGludGVsX2NvbnRleHQgKmRjdHggPSBkZXZfcHJpdi0+a2VybmVsX2NvbnRleHQ7Cj4gPiAg CWludCBpOwo+ID4KPiA+ICAJaWYgKGRjdHgtPmxlZ2FjeV9od19jdHgucmNzX3N0YXRlKSB7Cj4g PkBAIC00MzEsMTcgKzQyNSwxNyBAQCB2b2lkIGk5MTVfZ2VtX2NvbnRleHRfZmluaShzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQo+ID4gIAkJaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4oZGN0eC0+ bGVnYWN5X2h3X2N0eC5yY3Nfc3RhdGUpOwo+ID4gIAl9Cj4gPgo+ID4tCWZvciAoaSA9IDA7IGkg PCBJOTE1X05VTV9SSU5HUzsgaSsrKSB7Cj4gPisJZm9yIChpID0gSTkxNV9OVU1fUklOR1M7IC0t aSA+PSAwOykgewo+ID4gIAkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9ICZkZXZfcHJp di0+cmluZ1tpXTsKPiA+Cj4gPi0JCWlmIChyaW5nLT5sYXN0X2NvbnRleHQpCj4gPisJCWlmIChy aW5nLT5sYXN0X2NvbnRleHQpIHsKPiA+ICAJCQlpOTE1X2dlbV9jb250ZXh0X3VucmVmZXJlbmNl KHJpbmctPmxhc3RfY29udGV4dCk7Cj4gPi0KPiA+LQkJcmluZy0+ZGVmYXVsdF9jb250ZXh0ID0g TlVMTDsKPiA+LQkJcmluZy0+bGFzdF9jb250ZXh0ID0gTlVMTDsKPiA+KwkJCXJpbmctPmxhc3Rf Y29udGV4dCA9IE5VTEw7Cj4gPisJCX0KPiA+ICAJfQo+ID4KPiA+ICAJaTkxNV9nZW1fY29udGV4 dF91bnJlZmVyZW5jZShkY3R4KTsKPiA+KwlkZXZfcHJpdi0+a2VybmVsX2NvbnRleHQgPSBOVUxM Owo+ID4gIH0KPiA+Cj4gPiAgaW50IGk5MTVfZ2VtX2NvbnRleHRfZW5hYmxlKHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+ID5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9ncHVfZXJyb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9y LmMKPiA+aW5kZXggMDZjYTQwOC4uN2VlYjI0NCAxMDA2NDQKPiA+LS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwo+ID4rKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dwdV9lcnJvci5jCj4gPkBAIC0xMDUwLDcgKzEwNTAsNyBAQCBzdGF0aWMgdm9pZCBpOTE1 X2dlbV9yZWNvcmRfcmluZ3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ICAJCQlpZiAocmVx dWVzdCkKPiA+ICAJCQkJcmJ1ZiA9IHJlcXVlc3QtPmN0eC0+ZW5naW5lW3JpbmctPmlkXS5yaW5n YnVmOwo+ID4gIAkJCWVsc2UKPiA+LQkJCQlyYnVmID0gcmluZy0+ZGVmYXVsdF9jb250ZXh0LT5l bmdpbmVbcmluZy0+aWRdLnJpbmdidWY7Cj4gPisJCQkJcmJ1ZiA9IGRldl9wcml2LT5rZXJuZWxf Y29udGV4dC0+ZW5naW5lW3JpbmctPmlkXS5yaW5nYnVmOwo+ID4gIAkJfSBlbHNlCj4gPiAgCQkJ cmJ1ZiA9IHJpbmctPmJ1ZmZlcjsKPiA+Cj4gPmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1 Y19zdWJtaXNzaW9uLmMKPiA+aW5kZXggOWMyNDQyNC4uNTFhZTVjMSAxMDA2NDQKPiA+LS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCj4gPisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwo+ID5AQCAtOTY0LDcgKzk2NCw3 IEBAIGludCBpOTE1X2d1Y19zdWJtaXNzaW9uX2VuYWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQo+ID4gIHsKPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKPiA+ICAJc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmRldl9wcml2LT5ndWM7 Cj4gPi0Jc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCA9IGRldl9wcml2LT5yaW5nW1JDU10uZGVm YXVsdF9jb250ZXh0Owo+ID4rCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHggPSBkZXZfcHJpdi0+ a2VybmVsX2NvbnRleHQ7Cj4gPiAgCXN0cnVjdCBpOTE1X2d1Y19jbGllbnQgKmNsaWVudDsKPiA+ Cj4gPiAgCS8qIGNsaWVudCBmb3IgZXhlY2J1ZiBzdWJtaXNzaW9uICovCj4gPkBAIC0xMDIxLDcg KzEwMjEsNyBAQCBpbnQgaW50ZWxfZ3VjX3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldikK PiA+ICAJaWYgKCFpOTE1LmVuYWJsZV9ndWNfc3VibWlzc2lvbikKPiA+ICAJCXJldHVybiAwOwo+ ID4KPiA+LQljdHggPSBkZXZfcHJpdi0+cmluZ1tSQ1NdLmRlZmF1bHRfY29udGV4dDsKPiA+Kwlj dHggPSBkZXZfcHJpdi0+a2VybmVsX2NvbnRleHQ7Cj4gPgo+ID4gIAlkYXRhWzBdID0gSE9TVDJH VUNfQUNUSU9OX0VOVEVSX1NfU1RBVEU7Cj4gPiAgCS8qIGFueSB2YWx1ZSBncmVhdGVyIHRoYW4g R1VDX1BPV0VSX0QwICovCj4gPkBAIC0xMDQ3LDcgKzEwNDcsNyBAQCBpbnQgaW50ZWxfZ3VjX3Jl c3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gIAlpZiAoIWk5MTUuZW5hYmxlX2d1Y19z dWJtaXNzaW9uKQo+ID4gIAkJcmV0dXJuIDA7Cj4gPgo+ID4tCWN0eCA9IGRldl9wcml2LT5yaW5n W1JDU10uZGVmYXVsdF9jb250ZXh0Owo+ID4rCWN0eCA9IGRldl9wcml2LT5rZXJuZWxfY29udGV4 dDsKPiA+Cj4gPiAgCWRhdGFbMF0gPSBIT1NUMkdVQ19BQ1RJT05fRVhJVF9TX1NUQVRFOwo+ID4g IAlkYXRhWzFdID0gR1VDX1BPV0VSX0QwOwo+ID5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ID5p bmRleCA4YjY1NDJkLi5hYWFhNWEzIDEwMDY0NAo+ID4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9scmMuYwo+ID4rKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ ID5AQCAtNTcxLDcgKzU3MSw3IEBAIHN0YXRpYyBpbnQgZXhlY2xpc3RzX2NvbnRleHRfcXVldWUo c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQo+ID4gIAlzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKmN1cnNvcjsKPiA+ICAJaW50IG51bV9lbGVtZW50cyA9IDA7Cj4gPgo+ ID4tCWlmIChyZXF1ZXN0LT5jdHggIT0gcmluZy0+ZGVmYXVsdF9jb250ZXh0KQo+ID4rCWlmIChy ZXF1ZXN0LT5jdHggIT0gcmVxdWVzdC0+aTkxNS0+a2VybmVsX2NvbnRleHQpCj4gPiAgCQlpbnRl bF9scl9jb250ZXh0X3BpbihyZXF1ZXN0KTsKPiA+Cj4gPiAgCWk5MTVfZ2VtX3JlcXVlc3RfcmVm ZXJlbmNlKHJlcXVlc3QpOwo+ID5AQCAtNjY0LDcgKzY2NCw3IEBAIGludCBpbnRlbF9sb2dpY2Fs X3JpbmdfYWxsb2NfcmVxdWVzdF9leHRyYXMoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXF1ZXN0Cj4gPgo+ID4gIAlyZXF1ZXN0LT5yaW5nYnVmID0gcmVxdWVzdC0+Y3R4LT5lbmdpbmVb cmVxdWVzdC0+cmluZy0+aWRdLnJpbmdidWY7Cj4gPgo+ID4tCWlmIChyZXF1ZXN0LT5jdHggIT0g cmVxdWVzdC0+cmluZy0+ZGVmYXVsdF9jb250ZXh0KSB7Cj4gPisJaWYgKHJlcXVlc3QtPmN0eCAh PSByZXF1ZXN0LT5pOTE1LT5rZXJuZWxfY29udGV4dCkgewo+ID4gIAkJcmV0ID0gaW50ZWxfbHJf Y29udGV4dF9waW4ocmVxdWVzdCk7Cj4gPiAgCQlpZiAocmV0KQo+ID4gIAkJCXJldHVybiByZXQ7 Cj4gPkBAIC05ODAsNyArOTgwLDcgQEAgdm9pZCBpbnRlbF9leGVjbGlzdHNfcmV0aXJlX3JlcXVl c3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCj4gPiAgCQlzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqY3R4X29iaiA9Cj4gPiAgCQkJCWN0eC0+ZW5naW5lW3JpbmctPmlkXS5zdGF0 ZTsKPiA+Cj4gPi0JCWlmIChjdHhfb2JqICYmIChjdHggIT0gcmluZy0+ZGVmYXVsdF9jb250ZXh0 KSkKPiA+KwkJaWYgKGN0eF9vYmogJiYgKGN0eCAhPSByZXEtPmk5MTUtPmtlcm5lbF9jb250ZXh0 KSkKPiA+ICAJCQlpbnRlbF9scl9jb250ZXh0X3VucGluKHJlcSk7Cj4gPiAgCQlsaXN0X2RlbCgm cmVxLT5leGVjbGlzdF9saW5rKTsKPiA+ICAJCWk5MTVfZ2VtX3JlcXVlc3RfdW5yZWZlcmVuY2Uo cmVxKTsKPiA+QEAgLTE0ODcsNyArMTQ4Nyw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9pbml0X2NvbW1v bl9yaW5nKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCj4gPiAgCXU4IG5leHRfY29udGV4 dF9zdGF0dXNfYnVmZmVyX2h3Owo+ID4KPiA+ICAJbHJjX3NldHVwX2hhcmR3YXJlX3N0YXR1c19w YWdlKHJpbmcsCj4gPi0JCQkJcmluZy0+ZGVmYXVsdF9jb250ZXh0LT5lbmdpbmVbcmluZy0+aWRd LnN0YXRlKTsKPiA+KwkJCQlkZXZfcHJpdi0+a2VybmVsX2NvbnRleHQtPmVuZ2luZVtyaW5nLT5p ZF0uc3RhdGUpOwo+ID4KPiA+ICAJSTkxNV9XUklURV9JTVIocmluZywgfihyaW5nLT5pcnFfZW5h YmxlX21hc2sgfCByaW5nLT5pcnFfa2VlcF9tYXNrKSk7Cj4gPiAgCUk5MTVfV1JJVEUoUklOR19I V1NUQU0ocmluZy0+bW1pb19iYXNlKSwgMHhmZmZmZmZmZik7Cj4gPkBAIC0xOTI5LDYgKzE5Mjks OSBAQCB2b2lkIGludGVsX2xvZ2ljYWxfcmluZ19jbGVhbnVwKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmcpCj4gPgo+ID4gIHN0YXRpYyBpbnQgbG9naWNhbF9yaW5nX2luaXQoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiA+ICB7Cj4gPisJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ID4rCXN0 cnVjdCBpbnRlbF9jb250ZXh0ICpkY3R4ID0gZGV2X3ByaXYtPmtlcm5lbF9jb250ZXh0Owo+ID4r CWludCByaW5nX2lkID0gcmluZy0+aWQ7Cj4gPiAgCWludCByZXQ7Cj4gPgo+ID4gIAkvKiBJbnRl bnRpb25hbGx5IGxlZnQgYmxhbmsuICovCj4gPkBAIC0xOTQ5LDE1ICsxOTUyLDE0IEBAIHN0YXRp YyBpbnQgbG9naWNhbF9yaW5nX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluCj4gPiAgCWlmIChyZXQpCj4gPiAgCQlnb3RvIGVycm9yOwo+ID4K PiA+LQlyZXQgPSBpbnRlbF9scl9jb250ZXh0X2RlZmVycmVkX2FsbG9jKHJpbmctPmRlZmF1bHRf Y29udGV4dCwgcmluZyk7Cj4gPisJcmV0ID0gaW50ZWxfbHJfY29udGV4dF9kZWZlcnJlZF9hbGxv YyhkY3R4LCByaW5nKTsKPiA+ICAJaWYgKHJldCkKPiA+ICAJCWdvdG8gZXJyb3I7Cj4gPgo+ID4g IAkvKiBBcyB0aGlzIGlzIHRoZSBkZWZhdWx0IGNvbnRleHQsIGFsd2F5cyBwaW4gaXQgKi8KPiA+ LQlyZXQgPSBpbnRlbF9scl9jb250ZXh0X2RvX3BpbigKPiA+LQkJCXJpbmcsCj4gPi0JCQlyaW5n LT5kZWZhdWx0X2NvbnRleHQtPmVuZ2luZVtyaW5nLT5pZF0uc3RhdGUsCj4gPi0JCQlyaW5nLT5k ZWZhdWx0X2NvbnRleHQtPmVuZ2luZVtyaW5nLT5pZF0ucmluZ2J1Zik7Cj4gPisJcmV0ID0gaW50 ZWxfbHJfY29udGV4dF9kb19waW4ocmluZywKPiA+KwkJCQkgICAgICBkY3R4LT5lbmdpbmVbcmlu Z19pZF0uc3RhdGUsCj4gPisJCQkJICAgICAgZGN0eC0+ZW5naW5lW3JpbmdfaWRdLnJpbmdidWYp Owo+ID4gIAlpZiAocmV0KSB7Cj4gPiAgCQlEUk1fRVJST1IoCj4gPiAgCQkJIkZhaWxlZCB0byBw aW4gYW5kIG1hcCByaW5nYnVmZmVyICVzOiAlZFxuIiwKPiA+QEAgLTIzODgsNyArMjM5MCw3IEBA IHZvaWQgaW50ZWxfbHJfY29udGV4dF9mcmVlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpCj4g PiAgCQkJCQljdHgtPmVuZ2luZVtpXS5yaW5nYnVmOwo+ID4gIAkJCXN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKnJpbmcgPSByaW5nYnVmLT5yaW5nOwo+ID4KPiA+LQkJCWlmIChjdHggPT0gcmluZy0+ ZGVmYXVsdF9jb250ZXh0KSB7Cj4gPisJCQlpZiAoY3R4ID09IGN0eC0+aTkxNS0+a2VybmVsX2Nv bnRleHQpIHsKPiA+ICAJCQkJaW50ZWxfdW5waW5fcmluZ2J1ZmZlcl9vYmoocmluZ2J1Zik7Cj4g PiAgCQkJCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKGN0eF9vYmopOwo+ID4gIAkJCX0KPiA+ QEAgLTI1MDcsNyArMjUwOSw3IEBAIGludCBpbnRlbF9scl9jb250ZXh0X2RlZmVycmVkX2FsbG9j KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCj4gPiAgCWN0eC0+ZW5naW5lW3JpbmctPmlkXS5y aW5nYnVmID0gcmluZ2J1ZjsKPiA+ICAJY3R4LT5lbmdpbmVbcmluZy0+aWRdLnN0YXRlID0gY3R4 X29iajsKPiA+Cj4gPi0JaWYgKGN0eCAhPSByaW5nLT5kZWZhdWx0X2NvbnRleHQgJiYgcmluZy0+ aW5pdF9jb250ZXh0KSB7Cj4gPisJaWYgKGN0eCAhPSBjdHgtPmk5MTUtPmtlcm5lbF9jb250ZXh0 ICYmIHJpbmctPmluaXRfY29udGV4dCkgewo+ID4gIAkJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXE7Cj4gPgo+ID4gIAkJcmVxID0gaTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhyaW5nLCBj dHgpOwo+ID5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZl ci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gPmluZGV4IDQ5 NTc0ZmYuLmU5NTBmNmMgMTAwNjQ0Cj4gPi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuaAo+ID4rKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmgKPiA+QEAgLTMwNSw3ICszMDUsNiBAQCBzdHJ1Y3QgIGludGVsX2VuZ2luZV9jcyB7Cj4g Pgo+ID4gIAl3YWl0X3F1ZXVlX2hlYWRfdCBpcnFfcXVldWU7Cj4gPgo+ID4tCXN0cnVjdCBpbnRl bF9jb250ZXh0ICpkZWZhdWx0X2NvbnRleHQ7Cj4gPiAgCXN0cnVjdCBpbnRlbF9jb250ZXh0ICps YXN0X2NvbnRleHQ7Cj4gPgo+ID4gIAlzdHJ1Y3QgaW50ZWxfcmluZ19oYW5nY2hlY2sgaGFuZ2No ZWNrOwo+ID4KPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBv cmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==