From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yu Dai Subject: Re: [PATCH] drm/i915: Change context lifecycle Date: Wed, 25 Nov 2015 12:27:07 -0800 Message-ID: <5656199B.5050106@intel.com> References: <1448456237-31421-1-git-send-email-nicholas.hoath@intel.com> <877fl65dgr.fsf@gaia.fi.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 D472B6EB29 for ; Wed, 25 Nov 2015 12:29:33 -0800 (PST) In-Reply-To: <877fl65dgr.fsf@gaia.fi.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CgpPbiAxMS8yNS8yMDE1IDA3OjAyIEFNLCBNaWthIEt1b3BwYWxhIHdyb3RlOgo+IE5pY2sgSG9h dGggPG5pY2hvbGFzLmhvYXRoQGludGVsLmNvbT4gd3JpdGVzOgo+Cj4gPiBVc2UgdGhlIGZpcnN0 IHJldGlyZWQgcmVxdWVzdCBvbiBhIG5ldyBjb250ZXh0IHRvIHVucGluCj4gPiB0aGUgb2xkIGNv bnRleHQuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBodyBjb250ZXh0IHJlbWFpbnMKPiA+IGJvdW5k IHVudGlsIGl0IGhhcyBiZWVuIHdyaXR0ZW4gYmFjayB0byBieSB0aGUgR1BVLgo+ID4gTm93IHRo YXQgdGhlIGNvbnRleHQgaXMgcGlubmVkIHVudGlsIGxhdGVyIGluIHRoZSByZXF1ZXN0L2NvbnRl eHQKPiA+IGxpZmVjeWNsZSwgaXQgbm8gbG9uZ2VyIG5lZWRzIHRvIGJlIHBpbm5lZCBmcm9tIGNv bnRleHRfcXVldWUgdG8KPiA+IHJldGlyZV9yZXF1ZXN0cy4KPiA+Cj4gPiB2MjogTW92ZWQgdGhl IG5ldyBwaW4gdG8gY292ZXIgR3VDIHN1Ym1pc3Npb24gKEFsZXggRGFpKQo+ID4gICAgIE1vdmVk IHRoZSBuZXcgdW5waW4gdG8gcmVxdWVzdF9yZXRpcmUgdG8gZml4IGNvdmVyYWdlIGxlYWsKPiA+ IHYzOiBBZGRlZCBzd2l0Y2ggdG8gZGVmYXVsdCBjb250ZXh0IGlmIGZyZWVpbmcgYSBzdGlsbCBw aW5uZWQKPiA+ICAgICBjb250ZXh0IGp1c3QgaW4gY2FzZSB0aGUgaHcgd2FzIGFjdHVhbGx5IHN0 aWxsIHVzaW5nIGl0Cj4gPiB2NDogVW53cmFwcGVkIGNvbnRleHQgdW5waW4gdG8gYWxsb3cgY2Fs bGluZyB3aXRob3V0IGEgcmVxdWVzdAo+ID4gdjU6IE9ubHkgY3JlYXRlIGEgc3dpdGNoIHRvIGlk bGUgY29udGV4dCBpZiB0aGUgcmluZyBkb2Vzbid0Cj4gPiAgICAgYWxyZWFkeSBoYXZlIGEgcmVx dWVzdCBwZW5kaW5nIG9uIGl0IChBbGV4IERhaSkKPiA+ICAgICBSZW5hbWUgdW5zYXZlZCB0byBk aXJ0eSB0byBhdm9pZCBkb3VibGUgbmVnYXRpdmVzIChEYXZlIEdvcmRvbikKPiA+ICAgICBDaGFu Z2VkIF9ub19yZXEgcG9zdGZpeCB0byBfXyBwcmVmaXggZm9yIGNvbnNpc3RlbmN5IChEYXZlIEdv cmRvbikKPiA+ICAgICBTcGxpdCBvdXQgcGVyIGVuZ2luZSBjbGVhbnVwIGZyb20gY29udGV4dF9m cmVlIGFzIGl0Cj4gPiAgICAgd2FzIGdldHRpbmcgdW53aWVsZHkKPiA+ICAgICBDb3JyZWN0ZWQg bG9ja2luZyAoRGF2ZSBHb3Jkb24pCj4gPgo+ID4gU2lnbmVkLW9mZi1ieTogTmljayBIb2F0aCA8 bmljaG9sYXMuaG9hdGhAaW50ZWwuY29tPgo+ID4gSXNzdWU6IFZJWi00Mjc3Cj4gPiBDYzogRGFu aWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiA+IENjOiBEYXZpZCBHb3Jkb24g PGRhdmlkLnMuZ29yZG9uQGludGVsLmNvbT4KPiA+IENjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNo cmlzLXdpbHNvbi5jby51az4KPiA+IENjOiBBbGV4IERhaSA8eXUuZGFpQGludGVsLmNvbT4KPiA+ IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggIHwgICAxICsKPiA+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICB8ICAgMyArCj4gPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHJjLmMgfCAxMjQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmggfCAgIDEgKwo+ ID4gIDQgZmlsZXMgY2hhbmdlZCwgMTA1IGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQo+ ID4KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gaW5kZXggZDVjZjMwYi4uZTgyNzE3YSAx MDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+IEBAIC04ODksNiArODg5LDcgQEAg c3RydWN0IGludGVsX2NvbnRleHQgewo+ID4gIAlzdHJ1Y3Qgewo+ID4gIAkJc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKnN0YXRlOwo+ID4gIAkJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJp bmdidWY7Cj4gPiArCQlib29sIGRpcnR5Owo+ID4gIAkJaW50IHBpbl9jb3VudDsKPiA+ICAJfSBl bmdpbmVbSTkxNV9OVU1fUklOR1NdOwo+ID4KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ID4g aW5kZXggZTk1NTQ5OS4uMzgyOWJjMSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMK PiA+IEBAIC0xMzU0LDYgKzEzNTQsOSBAQCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X3Jl dGlyZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCj4gPiAgewo+ID4gIAl0 cmFjZV9pOTE1X2dlbV9yZXF1ZXN0X3JldGlyZShyZXF1ZXN0KTsKPiA+Cj4gPiArCWlmIChpOTE1 LmVuYWJsZV9leGVjbGlzdHMpCj4gPiArCQlpbnRlbF9scl9jb250ZXh0X2NvbXBsZXRlX2NoZWNr KHJlcXVlc3QpOwo+ID4gKwo+ID4gIAkvKiBXZSBrbm93IHRoZSBHUFUgbXVzdCBoYXZlIHJlYWQg dGhlIHJlcXVlc3QgdG8gaGF2ZQo+ID4gIAkgKiBzZW50IHVzIHRoZSBzZXFubyArIGludGVycnVw dCwgc28gdXNlIHRoZSBwb3NpdGlvbgo+ID4gIAkgKiBvZiB0YWlsIG9mIHRoZSByZXF1ZXN0IHRv IHVwZGF0ZSB0aGUgbGFzdCBrbm93biBwb3NpdGlvbgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmMKPiA+IGluZGV4IDA2MTgwZGMuLjAzZDViY2EgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMKPiA+IEBAIC01NjYsOSArNTY2LDYgQEAgc3RhdGljIGludCBleGVjbGlzdHNfY29u dGV4dF9xdWV1ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCj4gPiAgCXN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqY3Vyc29yOwo+ID4gIAlpbnQgbnVtX2VsZW1lbnRz ID0gMDsKPiA+Cj4gPiAtCWlmIChyZXF1ZXN0LT5jdHggIT0gcmluZy0+ZGVmYXVsdF9jb250ZXh0 KQo+ID4gLQkJaW50ZWxfbHJfY29udGV4dF9waW4ocmVxdWVzdCk7Cj4gPiAtCj4gPiAgCWk5MTVf Z2VtX3JlcXVlc3RfcmVmZXJlbmNlKHJlcXVlc3QpOwo+ID4KPiA+ICAJc3Bpbl9sb2NrX2lycSgm cmluZy0+ZXhlY2xpc3RfbG9jayk7Cj4gPiBAQCAtNzMyLDYgKzcyOSwxMyBAQCBpbnRlbF9sb2dp Y2FsX3JpbmdfYWR2YW5jZV9hbmRfc3VibWl0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxdWVzdCkKPiA+ICAJaWYgKGludGVsX3Jpbmdfc3RvcHBlZChyaW5nKSkKPiA+ICAJCXJldHVy bjsKPiA+Cj4gPiArCWlmIChyZXF1ZXN0LT5jdHggIT0gcmluZy0+ZGVmYXVsdF9jb250ZXh0KSB7 Cj4gPiArCQlpZiAoIXJlcXVlc3QtPmN0eC0+ZW5naW5lW3JpbmctPmlkXS5kaXJ0eSkgewo+ID4g KwkJCWludGVsX2xyX2NvbnRleHRfcGluKHJlcXVlc3QpOwo+ID4gKwkJCXJlcXVlc3QtPmN0eC0+ ZW5naW5lW3JpbmctPmlkXS5kaXJ0eSA9IHRydWU7Cj4gPiArCQl9Cj4gPiArCX0KPiA+ICsKPiA+ ICAJaWYgKGRldl9wcml2LT5ndWMuZXhlY2J1Zl9jbGllbnQpCj4gPiAgCQlpOTE1X2d1Y19zdWJt aXQoZGV2X3ByaXYtPmd1Yy5leGVjYnVmX2NsaWVudCwgcmVxdWVzdCk7Cj4gPiAgCWVsc2UKPiA+ IEBAIC05NTgsMTIgKzk2Miw2IEBAIHZvaWQgaW50ZWxfZXhlY2xpc3RzX3JldGlyZV9yZXF1ZXN0 cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+ID4gIAlzcGluX3VubG9ja19pcnEoJnJp bmctPmV4ZWNsaXN0X2xvY2spOwo+ID4KPiA+ICAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHJl cSwgdG1wLCAmcmV0aXJlZF9saXN0LCBleGVjbGlzdF9saW5rKSB7Cj4gPiAtCQlzdHJ1Y3QgaW50 ZWxfY29udGV4dCAqY3R4ID0gcmVxLT5jdHg7Cj4gPiAtCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqY3R4X29iaiA9Cj4gPiAtCQkJCWN0eC0+ZW5naW5lW3JpbmctPmlkXS5zdGF0ZTsKPiA+ IC0KPiA+IC0JCWlmIChjdHhfb2JqICYmIChjdHggIT0gcmluZy0+ZGVmYXVsdF9jb250ZXh0KSkK PiA+IC0JCQlpbnRlbF9scl9jb250ZXh0X3VucGluKHJlcSk7Cj4gPiAgCQlsaXN0X2RlbCgmcmVx LT5leGVjbGlzdF9saW5rKTsKPiA+ICAJCWk5MTVfZ2VtX3JlcXVlc3RfdW5yZWZlcmVuY2UocmVx KTsKPiA+ICAJfQo+ID4gQEAgLTEwNTgsMjEgKzEwNTYsMzkgQEAgcmVzZXRfcGluX2NvdW50Ogo+ ID4gIAlyZXR1cm4gcmV0Owo+ID4gIH0KPiA+Cj4gPiAtdm9pZCBpbnRlbF9scl9jb250ZXh0X3Vu cGluKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcnEpCj4gPiArc3RhdGljIHZvaWQgX19p bnRlbF9scl9jb250ZXh0X3VucGluKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gPiAr CQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4KQo+ID4gIHsKPiA+IC0Jc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqcmluZyA9IHJxLT5yaW5nOwo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqY3R4X29iaiA9IHJxLT5jdHgtPmVuZ2luZVtyaW5nLT5pZF0uc3RhdGU7Cj4gPiAtCXN0cnVj dCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0gcnEtPnJpbmdidWY7Cj4gPiAtCj4gPiArCXN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqID0gY3R4LT5lbmdpbmVbcmluZy0+aWRd LnN0YXRlOwo+ID4gKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IGN0eC0+ZW5n aW5lW3JpbmctPmlkXS5yaW5nYnVmOwo+ID4gIAlpZiAoY3R4X29iaikgewo+ID4gIAkJV0FSTl9P TighbXV0ZXhfaXNfbG9ja2VkKCZyaW5nLT5kZXYtPnN0cnVjdF9tdXRleCkpOwo+ID4gLQkJaWYg KC0tcnEtPmN0eC0+ZW5naW5lW3JpbmctPmlkXS5waW5fY291bnQgPT0gMCkgewo+ID4gKwkJaWYg KC0tY3R4LT5lbmdpbmVbcmluZy0+aWRdLnBpbl9jb3VudCA9PSAwKSB7Cj4gPiAgCQkJaW50ZWxf dW5waW5fcmluZ2J1ZmZlcl9vYmoocmluZ2J1Zik7Cj4gPiAgCQkJaTkxNV9nZW1fb2JqZWN0X2dn dHRfdW5waW4oY3R4X29iaik7Cj4gPiAgCQl9Cj4gPiAgCX0KPiA+ICB9Cj4gPgo+ID4gK3ZvaWQg aW50ZWxfbHJfY29udGV4dF91bnBpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJxKQo+ ID4gK3sKPiA+ICsJX19pbnRlbF9scl9jb250ZXh0X3VucGluKHJxLT5yaW5nLCBycS0+Y3R4KTsK PiA+ICt9Cj4gPiArCj4gPiArdm9pZCBpbnRlbF9scl9jb250ZXh0X2NvbXBsZXRlX2NoZWNrKHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+ID4gK3sKPiA+ICsJc3RydWN0IGludGVs X2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKPiA+ICsKPiA+ICsJaWYgKHJpbmctPmxhc3Rf Y29udGV4dCAmJiByaW5nLT5sYXN0X2NvbnRleHQgIT0gcmVxLT5jdHggJiYKPiA+ICsJCQlyaW5n LT5sYXN0X2NvbnRleHQtPmVuZ2luZVtyaW5nLT5pZF0uZGlydHkpIHsKPiA+ICsJCV9faW50ZWxf bHJfY29udGV4dF91bnBpbigKPiA+ICsJCQkJcmluZywKPiA+ICsJCQkJcmluZy0+bGFzdF9jb250 ZXh0KTsKPiA+ICsJCXJpbmctPmxhc3RfY29udGV4dC0+ZW5naW5lW3JpbmctPmlkXS5kaXJ0eSA9 IGZhbHNlOwo+ID4gKwl9Cj4gPiArCXJpbmctPmxhc3RfY29udGV4dCA9IHJlcS0+Y3R4Owo+Cj4g V2hhdCBlbnN1cmVzIHRoYXQgdGhlIGxhc3RfY29udGV4dCBzdGF5cyBhbGl2ZT8KClRoZSB3YWl0 IGluIGludGVsX2xyX2NvbnRleHRfY2xlYW5fcmluZy4gSWYgdGhlIGxhc3RfY29udGV4dCBpcyB0 aGUgb25lIAp0byBiZSByZWxlYXNlZCwgaXQgd2lsbCB3YWl0IGZvciByZXRpcmluZyBvZiBhIHJl cXVlc3QgZnJvbSBkaWZmZXJlbnQgCmNvbnRleHQuIElmIG5vIHJlcXVlc3QgaW4gcXVldWUsIHdl IHdpbGwgc3dpdGNoIHRvIGRlZmF1bHRfY29udGV4dC4gU28sIAp0aGUgcmluZy0+bGFzdF9jb250 ZXh0IGNvdWxkIGJlIHJpbmctPmRlZmF1bHRfY29udGV4dC4gSG93ZXZlciwgdGhlIAonZGlydHkn IGJpdCBvZiBkZWZhdWx0X2NvbnRleHQgaXMgbmV2ZXIgc2V0LiBUaGVyZWZvcmUsIGl0IHdvbid0 IGJlIAp1bnBpbiBoZXJlIGFueXdheS4KCkhvd2V2ZXIsIHRoaXMgZG9lcyBtYWtlIG1lIHRoaW5r IGFib3V0IG9uZSB0aGluZy4gSXQgaXMgaW4gCmk5MTVfZ2VtX2NvbnRleHRfZmluaSgpLCB3aGVy ZSB3ZSB1bnJlZiByaW5nLT5sYXN0X2NvbnRleHQuIFdlIHByb2JhYmx5IApuZWVkIHRvIG1ha2Ug c3VyZSB0aGUgZGVmYXVsdCBjb250ZXh0IGlzIG5vdCB1bnJlZiB0d2ljZS4KClRoYW5rcywKQWxl eAo+ID4gK30KPiA+ICsKPiA+ICBzdGF0aWMgaW50IGludGVsX2xvZ2ljYWxfcmluZ193b3JrYXJv dW5kc19lbWl0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+ID4gIHsKPiA+ICAJ aW50IHJldCwgaTsKPiA+IEBAIC0yMzY3LDYgKzIzODMsNjIgQEAgcG9wdWxhdGVfbHJfY29udGV4 dChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq Y3R4X28KPiA+ICB9Cj4gPgo+ID4gIC8qKgo+ID4gKyAqIGludGVsX2xyX2NvbnRleHRfY2xlYW5f cmluZygpIC0gY2xlYW4gdGhlIHJpbmcgc3BlY2lmaWMgcGFydHMgb2YgYW4gTFJDCj4gPiArICog QGN0eDogdGhlIExSIGNvbnRleHQgYmVpbmcgZnJlZWQuCj4gPiArICogQHJpbmc6IHRoZSBlbmdp bmUgYmVpbmcgY2xlYW5lZAo+ID4gKyAqIEBjdHhfb2JqOiB0aGUgaHcgY29udGV4dCBiZWluZyB1 bnJlZmVyZW5jZWQKPiA+ICsgKiBAcmluZ2J1ZjogdGhlIHJpbmdidWYgYmVpbmcgZnJlZWQKPiA+ ICsgKgo+ID4gKyAqIFRha2UgY2FyZSBvZiBjbGVhbmluZyB1cCB0aGUgcGVyLWVuZ2luZSBiYWNr aW5nCj4gPiArICogb2JqZWN0cyBhbmQgdGhlIGxvZ2ljYWwgcmluZ2J1ZmZlci4KPiA+ICsgKi8K PiA+ICtzdGF0aWMgdm9pZAo+ID4gK2ludGVsX2xyX2NvbnRleHRfY2xlYW5fcmluZyhzdHJ1Y3Qg aW50ZWxfY29udGV4dCAqY3R4LAo+ID4gKwkJCSAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nLAo+ID4gKwkJCSAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiwKPiA+ ICsJCQkgICAgc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCj4gPiArewo+ID4gKwlX QVJOX09OKCFtdXRleF9pc19sb2NrZWQoJnJpbmctPmRldi0+c3RydWN0X211dGV4KSk7Cj4gPiAr Cj4gPiArCWlmIChjdHggPT0gcmluZy0+ZGVmYXVsdF9jb250ZXh0KSB7Cj4gPiArCQlpbnRlbF91 bnBpbl9yaW5nYnVmZmVyX29iaihyaW5nYnVmKTsKPiA+ICsJCWk5MTVfZ2VtX29iamVjdF9nZ3R0 X3VucGluKGN0eF9vYmopOwo+ID4gKwl9Cj4gPiArCj4gPiArCWlmIChjdHgtPmVuZ2luZVtyaW5n LT5pZF0uZGlydHkpIHsKPiA+ICsJCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxID0g TlVMTDsKPiA+ICsKPiA+ICsJCS8qKgo+ID4gKwkJICogSWYgdGhlcmUgaXMgYWxyZWFkeSBhIHJl cXVlc3QgcGVuZGluZyBvbgo+ID4gKwkJICogdGhpcyByaW5nLCB3YWl0IGZvciB0aGF0IHRvIGNv bXBsZXRlLAo+ID4gKwkJICogb3RoZXJ3aXNlIGNyZWF0ZSBhIHN3aXRjaCB0byBpZGxlIHJlcXVl c3QKPiA+ICsJCSAqLwo+ID4gKwkJaWYgKGxpc3RfZW1wdHkoJnJpbmctPnJlcXVlc3RfbGlzdCkp IHsKPiA+ICsJCQlpbnQgcmV0Owo+ID4gKwo+ID4gKwkJCXJldCA9IGk5MTVfZ2VtX3JlcXVlc3Rf YWxsb2MoCj4gPiArCQkJCQlyaW5nLAo+ID4gKwkJCQkJcmluZy0+ZGVmYXVsdF9jb250ZXh0LAo+ ID4gKwkJCQkJJnJlcSk7Cj4gPiArCQkJaWYgKCFyZXQpCj4gPiArCQkJCWk5MTVfYWRkX3JlcXVl c3QocmVxKTsKPiA+ICsJCQllbHNlCj4gPiArCQkJCURSTV9ERUJVRygiRmFpbGVkIHRvIGVuc3Vy ZSBjb250ZXh0IHNhdmVkIik7Cj4gPiArCQl9IGVsc2Ugewo+ID4gKwkJCXJlcSA9IGxpc3RfZmly c3RfZW50cnkoCj4gPiArCQkJCQkmcmluZy0+cmVxdWVzdF9saXN0LAo+ID4gKwkJCQkJdHlwZW9m KCpyZXEpLCBsaXN0KTsKPiA+ICsJCX0KPiA+ICsJCWlmIChyZXEpCj4gPiArCQkJaTkxNV93YWl0 X3JlcXVlc3QocmVxKTsKPiA+ICsJfQo+ID4gKwo+ID4gKwlXQVJOX09OKGN0eC0+ZW5naW5lW3Jp bmctPmlkXS5waW5fY291bnQpOwo+ID4gKwlpbnRlbF9yaW5nYnVmZmVyX2ZyZWUocmluZ2J1Zik7 Cj4gPiArCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZjdHhfb2JqLT5iYXNlKTsKPiA+ICt9 Cj4gPiArCj4gPiArLyoqCj4gPiAgICogaW50ZWxfbHJfY29udGV4dF9mcmVlKCkgLSBmcmVlIHRo ZSBMUkMgc3BlY2lmaWMgYml0cyBvZiBhIGNvbnRleHQKPiA+ICAgKiBAY3R4OiB0aGUgTFIgY29u dGV4dCB0byBmcmVlLgo+ID4gICAqCj4gPiBAQCAtMjM3OCwyMSArMjQ1MCwxOCBAQCB2b2lkIGlu dGVsX2xyX2NvbnRleHRfZnJlZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4KQo+ID4gIHsKPiA+ ICAJaW50IGk7Cj4gPgo+ID4gLQlmb3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1fUklOR1M7IGkrKykg ewo+ID4gKwlmb3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1fUklOR1M7ICsraSkgewo+ID4gIAkJc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmogPSBjdHgtPmVuZ2luZVtpXS5zdGF0ZTsK PiA+Cj4gPiAtCQlpZiAoY3R4X29iaikgewo+ID4gKwkJaWYgKGN0eC0+ZW5naW5lW2ldLnN0YXRl KSB7Cj4KPiArK2kgYW5kIHRoZSBhYm92ZSBhcmUgc3VwZXJmbG91b3VzPwo+Cj4gLU1pa2EKPgo+ ID4gIAkJCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0KPiA+ICAJCQkJCWN0eC0+ ZW5naW5lW2ldLnJpbmdidWY7Cj4gPiAgCQkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9 IHJpbmdidWYtPnJpbmc7Cj4gPgo+ID4gLQkJCWlmIChjdHggPT0gcmluZy0+ZGVmYXVsdF9jb250 ZXh0KSB7Cj4gPiAtCQkJCWludGVsX3VucGluX3JpbmdidWZmZXJfb2JqKHJpbmdidWYpOwo+ID4g LQkJCQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihjdHhfb2JqKTsKPiA+IC0JCQl9Cj4gPiAt CQkJV0FSTl9PTihjdHgtPmVuZ2luZVtyaW5nLT5pZF0ucGluX2NvdW50KTsKPiA+IC0JCQlpbnRl bF9yaW5nYnVmZmVyX2ZyZWUocmluZ2J1Zik7Cj4gPiAtCQkJZHJtX2dlbV9vYmplY3RfdW5yZWZl cmVuY2UoJmN0eF9vYmotPmJhc2UpOwo+ID4gKwkJCWludGVsX2xyX2NvbnRleHRfY2xlYW5fcmlu ZyhjdHgsCj4gPiArCQkJCQkJICAgIHJpbmcsCj4gPiArCQkJCQkJICAgIGN0eF9vYmosCj4gPiAr CQkJCQkJICAgIHJpbmdidWYpOwo+ID4gIAkJfQo+ID4gIAl9Cj4gPiAgfQo+ID4gQEAgLTI1NTQs NSArMjYyMywxMiBAQCB2b2lkIGludGVsX2xyX2NvbnRleHRfcmVzZXQoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKPiA+Cj4gPiAgCQlyaW5nYnVmLT5oZWFkID0gMDsKPiA+ICAJCXJpbmdidWYtPnRh aWwgPSAwOwo+ID4gKwo+ID4gKwkJaWYgKGN0eC0+ZW5naW5lW3JpbmctPmlkXS5kaXJ0eSkgewo+ ID4gKwkJCV9faW50ZWxfbHJfY29udGV4dF91bnBpbigKPiA+ICsJCQkJCXJpbmcsCj4gPiArCQkJ CQljdHgpOwo+ID4gKwkJCWN0eC0+ZW5naW5lW3JpbmctPmlkXS5kaXJ0eSA9IGZhbHNlOwo+ID4g KwkJfQo+ID4gIAl9Cj4gPiAgfQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKPiA+IGluZGV4 IDRlNjBkNTQuLmNiYzQyYjggMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKPiA+ IEBAIC04Niw2ICs4Niw3IEBAIHZvaWQgaW50ZWxfbHJfY29udGV4dF9yZXNldChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAo+ID4gIAkJCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpOwo+ID4gIHVp bnQ2NF90IGludGVsX2xyX2NvbnRleHRfZGVzY3JpcHRvcihzdHJ1Y3QgaW50ZWxfY29udGV4dCAq Y3R4LAo+ID4gIAkJCQkgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOwo+ID4gK3Zv aWQgaW50ZWxfbHJfY29udGV4dF9jb21wbGV0ZV9jaGVjayhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJlcSk7Cj4gPgo+ID4gIC8qIEV4ZWNsaXN0cyAqLwo+ID4gIGludCBpbnRlbF9zYW5p dGl6ZV9lbmFibGVfZXhlY2xpc3RzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBlbmFibGVf ZXhlY2xpc3RzKTsKPiA+IC0tCj4gPiAxLjkuMQo+ID4KPiA+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4g PiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBodHRwOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cj4gX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4g SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==