From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 06/12] drm/i915: Name the inner most per-engine intel_context struct Date: Mon, 23 May 2016 10:26:39 +0100 Message-ID: <5742CCCF.5010200@linux.intel.com> References: <1463922152-2709-1-git-send-email-chris@chris-wilson.co.uk> <1463922152-2709-6-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id 90FD66E52C for ; Mon, 23 May 2016 09:26:41 +0000 (UTC) In-Reply-To: <1463922152-2709-6-git-send-email-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDIyLzA1LzE2IDE0OjAyLCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4gV2Ugd2FudCB0byBnaXZl IGEgbmFtZSB0byB0aGUgY3VycmVudGx5IGFub255bW91cyBwZXItZW5naW5lIHN0cnVjdAo+IGlu c2lkZSB0aGUgY29udGV4dCwgc28gdGhhdCB3ZSBjYW4gYXNzaWduIGl0IHRvIGEgbG9jYWwgdmFy aWFibGUgYW5kCj4gc2F2ZSBjbHVtc3kgdHlwaW5nLiBUaGUgbmFtZSB3ZSBoYXZlIGNob3NlbiBp cyBpbnRlbF9jb250ZXh0IGFzIGl0Cj4gcmVmbGVjdHMgdGhlIEhXIGZhY2luZyBwb3J0aW9uIG9m IHRoZSBjb250ZXh0IHN0YXRlICh0aGUgbG9naWNhbCBjb250ZXh0Cj4gc3RhdGUsIHRoZSByZWdp c3RlcnMsIHRoZSByaW5nYnVmZmVyIGV0YykuCj4KPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxz b24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiBDYzogRGF2ZSBHb3Jkb24gPGRhdmlkLnMu Z29yZG9uQGludGVsLmNvbT4KPiBDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGlu dGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAg ICAgICB8ICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9u LmMgfCAxNSArKy0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAg ICAgIHwgOTAgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCj4gICAzIGZpbGVzIGNoYW5n ZWQsIDUxIGluc2VydGlvbnMoKyksIDU2IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCj4gaW5kZXggMGEzNDQyZmNkOTNlLi5lNjczNWRjOWVlYjIgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKPiBAQCAtODY5LDcgKzg2OSw3IEBAIHN0cnVjdCBpOTE1X2dlbV9jb250 ZXh0IHsKPiAgIAl9IGxlZ2FjeV9od19jdHg7Cj4KPiAgIAkvKiBFeGVjbGlzdHMgKi8KPiAtCXN0 cnVjdCB7Cj4gKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCB7Cj4gICAJCXN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpzdGF0ZTsKPiAgIAkJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWY7 Cj4gICAJCWludCBwaW5fY291bnQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1 Ym1pc3Npb24uYwo+IGluZGV4IGEyOTI2NzJmMzZkNS4uYzI5YzFkMTk3NjRmIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwo+IEBAIC0zNjMsNyArMzYz LDYgQEAgc3RhdGljIHZvaWQgZ3VjX2luaXRfY3R4X2Rlc2Moc3RydWN0IGludGVsX2d1YyAqZ3Vj LAo+ICAgCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHggPSBjbGllbnQtPm93bmVyOwo+ICAg CXN0cnVjdCBndWNfY29udGV4dF9kZXNjIGRlc2M7Cj4gICAJc3RydWN0IHNnX3RhYmxlICpzZzsK PiAtCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwo+ICAgCXUzMiBnZnhfYWRkcjsKPgo+ICAgCW1l bXNldCgmZGVzYywgMCwgc2l6ZW9mKGRlc2MpKTsKPiBAQCAtMzczLDEwICszNzIsMTAgQEAgc3Rh dGljIHZvaWQgZ3VjX2luaXRfY3R4X2Rlc2Moc3RydWN0IGludGVsX2d1YyAqZ3VjLAo+ICAgCWRl c2MucHJpb3JpdHkgPSBjbGllbnQtPnByaW9yaXR5Owo+ICAgCWRlc2MuZGJfaWQgPSBjbGllbnQt PmRvb3JiZWxsX2lkOwo+Cj4gLQlmb3JfZWFjaF9lbmdpbmVfaWQoZW5naW5lLCBkZXZfcHJpdiwg aWQpIHsKPiArCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2KSB7Cj4gKwkJc3RydWN0 IGludGVsX2NvbnRleHQgKmNlID0gJmN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdOwo+ICAgCQlzdHJ1 Y3QgZ3VjX2V4ZWNsaXN0X2NvbnRleHQgKmxyYyA9ICZkZXNjLmxyY1tlbmdpbmUtPmd1Y19pZF07 Cj4gICAJCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7Cj4gLQkJdWludDY0X3QgY3R4 X2Rlc2M7Cj4KPiAgIAkJLyogVE9ETzogV2UgaGF2ZSBhIGRlc2lnbiBpc3N1ZSB0byBiZSBzb2x2 ZWQgaGVyZS4gT25seSB3aGVuIHdlCj4gICAJCSAqIHJlY2VpdmUgdGhlIGZpcnN0IGJhdGNoLCB3 ZSBrbm93IHdoaWNoIGVuZ2luZSBpcyB1c2VkIGJ5IHRoZQo+IEBAIC0zODUsMjAgKzM4NCwxOCBA QCBzdGF0aWMgdm9pZCBndWNfaW5pdF9jdHhfZGVzYyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsCj4g ICAJCSAqIGZvciBub3cgd2hvIG93bnMgYSBHdUMgY2xpZW50LiBCdXQgZm9yIGZ1dHVyZSBvd25l ciBvZiBHdUMKPiAgIAkJICogY2xpZW50LCBuZWVkIHRvIG1ha2Ugc3VyZSBscmMgaXMgcGlubmVk IHByaW9yIHRvIGVudGVyIGhlcmUuCj4gICAJCSAqLwo+IC0JCW9iaiA9IGN0eC0+ZW5naW5lW2lk XS5zdGF0ZTsKPiAtCQlpZiAoIW9iaikKPiArCQlpZiAoIWNlLT5zdGF0ZSkKPiAgIAkJCWJyZWFr OwkvKiBYWFg6IGNvbnRpbnVlPyAqLwo+Cj4gLQkJY3R4X2Rlc2MgPSBpbnRlbF9scl9jb250ZXh0 X2Rlc2NyaXB0b3IoY3R4LCBlbmdpbmUpOwo+IC0JCWxyYy0+Y29udGV4dF9kZXNjID0gKHUzMilj dHhfZGVzYzsKPiArCQlscmMtPmNvbnRleHRfZGVzYyA9IGxvd2VyXzMyX2JpdHMoY2UtPmxyY19k ZXNjKTsKCkNvdWxkIGhhdmUga2VwdCB1c2Ugb2YgaW50ZWxfbHJfY29udGV4dF9kZXNjcmlwdG9y IGZvciBiZXR0ZXIgc2VwYXJhdGlvbi4KCj4KPiAgIAkJLyogVGhlIHN0YXRlIHBhZ2UgaXMgYWZ0 ZXIgUFBIV1NQICovCj4gLQkJZ2Z4X2FkZHIgPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQob2Jq KTsKPiArCQlnZnhfYWRkciA9IGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChjZS0+c3RhdGUpOwo+ ICAgCQlscmMtPnJpbmdfbGNyYSA9IGdmeF9hZGRyICsgTFJDX1NUQVRFX1BOICogUEFHRV9TSVpF Owo+ICAgCQlscmMtPmNvbnRleHRfaWQgPSAoY2xpZW50LT5jdHhfaW5kZXggPDwgR1VDX0VMQ19D VFhJRF9PRkZTRVQpIHwKPiAgIAkJCQkoZW5naW5lLT5ndWNfaWQgPDwgR1VDX0VMQ19FTkdJTkVf T0ZGU0VUKTsKPgo+IC0JCW9iaiA9IGN0eC0+ZW5naW5lW2lkXS5yaW5nYnVmLT5vYmo7Cj4gKwkJ b2JqID0gY2UtPnJpbmdidWYtPm9iajsKPiAgIAkJZ2Z4X2FkZHIgPSBpOTE1X2dlbV9vYmpfZ2d0 dF9vZmZzZXQob2JqKTsKPgo+ICAgCQlscmMtPnJpbmdfYmVnaW4gPSBnZnhfYWRkcjsKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9scmMuYwo+IGluZGV4IDlhNTU0NzhlMjNhYy4uNGI3Yzk2ODBiMDk3IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBAQCAtMzAwLDcgKzMwMCw3IEBAIGxvZ2lj YWxfcmluZ19pbml0X3BsYXRmb3JtX2ludmFyaWFudHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lKQo+ICAgICogCQkJCQkgIGRlc2NyaXB0b3IgZm9yIGEgcGlubmVkIGNvbnRleHQKPiAg ICAqCj4gICAgKiBAY3R4OiBDb250ZXh0IHRvIHdvcmsgb24KPiAtICogQHJpbmc6IEVuZ2luZSB0 aGUgZGVzY3JpcHRvciB3aWxsIGJlIHVzZWQgd2l0aAo+ICsgKiBAZW5naW5lOiBFbmdpbmUgdGhl IGRlc2NyaXB0b3Igd2lsbCBiZSB1c2VkIHdpdGgKPiAgICAqCj4gICAgKiBUaGUgY29udGV4dCBk ZXNjcmlwdG9yIGVuY29kZXMgdmFyaW91cyBhdHRyaWJ1dGVzIG9mIGEgY29udGV4dCwKPiAgICAq IGluY2x1ZGluZyBpdHMgR1RUIGFkZHJlc3MgYW5kIHNvbWUgZmxhZ3MuIEJlY2F1c2UgaXQncyBm YWlybHkKPiBAQCAtMzE4LDE2ICszMTgsMTcgQEAgc3RhdGljIHZvaWQKPiAgIGludGVsX2xyX2Nv bnRleHRfZGVzY3JpcHRvcl91cGRhdGUoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKPiAg IAkJCQkgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gICB7Cj4gKwlzdHJ1Y3Qg aW50ZWxfY29udGV4dCAqY2UgPSAmY3R4LT5lbmdpbmVbZW5naW5lLT5pZF07Cj4gICAJdTY0IGRl c2M7Cj4KPiAgIAlCVUlMRF9CVUdfT04oTUFYX0NPTlRFWFRfSFdfSUQgPiAoMTw8R0VOOF9DVFhf SURfV0lEVEgpKTsKPgo+ICAgCWRlc2MgPSBlbmdpbmUtPmN0eF9kZXNjX3RlbXBsYXRlOwkJCS8q IGJpdHMgIDAtMTEgKi8KPiAtCWRlc2MgfD0gY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0ubHJjX3Zt YS0+bm9kZS5zdGFydCArCS8qIGJpdHMgMTItMzEgKi8KPiAtCSAgICAgICBMUkNfUFBIV1NQX1BO ICogUEFHRV9TSVpFOwo+ICsJZGVzYyB8PSBjZS0+bHJjX3ZtYS0+bm9kZS5zdGFydCArIExSQ19Q UEhXU1BfUE4gKiBQQUdFX1NJWkU7Cj4gKwkJCQkJCQkJLyogYml0cyAxMi0zMSAqLwo+ICAgCWRl c2MgfD0gKHU2NCljdHgtPmh3X2lkIDw8IEdFTjhfQ1RYX0lEX1NISUZUOwkJLyogYml0cyAzMi01 MiAqLwo+Cj4gLQljdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5scmNfZGVzYyA9IGRlc2M7Cj4gKwlj ZS0+bHJjX2Rlc2MgPSBkZXNjOwo+ICAgfQo+Cj4gICB1aW50NjRfdCBpbnRlbF9scl9jb250ZXh0 X2Rlc2NyaXB0b3Ioc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKPiBAQCAtNjc0LDYgKzY3 NSw3IEBAIHN0YXRpYyBpbnQgZXhlY2xpc3RzX21vdmVfdG9fZ3B1KHN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxLAo+ICAgaW50IGludGVsX2xvZ2ljYWxfcmluZ19hbGxvY19yZXF1ZXN0 X2V4dHJhcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCj4gICB7Cj4gICAJ c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcmVxdWVzdC0+ZW5naW5lOwo+ICsJc3Ry dWN0IGludGVsX2NvbnRleHQgKmNlID0gJnJlcXVlc3QtPmN0eC0+ZW5naW5lW2VuZ2luZS0+aWRd Owo+ICAgCWludCByZXQ7Cj4KPiAgIAkvKiBGbHVzaCBlbm91Z2ggc3BhY2UgdG8gcmVkdWNlIHRo ZSBsaWtlbGlob29kIG9mIHdhaXRpbmcgYWZ0ZXIKPiBAQCAtNjgyLDEzICs2ODQsMTMgQEAgaW50 IGludGVsX2xvZ2ljYWxfcmluZ19hbGxvY19yZXF1ZXN0X2V4dHJhcyhzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcXVlc3QKPiAgIAkgKi8KPiAgIAlyZXF1ZXN0LT5yZXNlcnZlZF9zcGFj ZSArPSBFWEVDTElTVFNfUkVRVUVTVF9TSVpFOwo+Cj4gLQlpZiAocmVxdWVzdC0+Y3R4LT5lbmdp bmVbZW5naW5lLT5pZF0uc3RhdGUgPT0gTlVMTCkgewo+ICsJaWYgKCFjZS0+c3RhdGUpIHsKPiAg IAkJcmV0ID0gZXhlY2xpc3RzX2NvbnRleHRfZGVmZXJyZWRfYWxsb2MocmVxdWVzdC0+Y3R4LCBl bmdpbmUpOwo+ICAgCQlpZiAocmV0KQo+ICAgCQkJcmV0dXJuIHJldDsKPiAgIAl9Cj4KPiAtCXJl cXVlc3QtPnJpbmdidWYgPSByZXF1ZXN0LT5jdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5yaW5nYnVm Owo+ICsJcmVxdWVzdC0+cmluZ2J1ZiA9IGNlLT5yaW5nYnVmOwo+Cj4gICAJaWYgKGk5MTUuZW5h YmxlX2d1Y19zdWJtaXNzaW9uKSB7Cj4gICAJCS8qCj4gQEAgLTcxMSwxMiArNzEzLDEyIEBAIGlu dCBpbnRlbF9sb2dpY2FsX3JpbmdfYWxsb2NfcmVxdWVzdF9leHRyYXMoc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0Cj4gICAJaWYgKHJldCkKPiAgIAkJZ290byBlcnJfdW5waW47 Cj4KPiAtCWlmICghcmVxdWVzdC0+Y3R4LT5lbmdpbmVbZW5naW5lLT5pZF0uaW5pdGlhbGlzZWQp IHsKPiArCWlmICghY2UtPmluaXRpYWxpc2VkKSB7Cj4gICAJCXJldCA9IGVuZ2luZS0+aW5pdF9j b250ZXh0KHJlcXVlc3QpOwo+ICAgCQlpZiAocmV0KQo+ICAgCQkJZ290byBlcnJfdW5waW47Cj4K PiAtCQlyZXF1ZXN0LT5jdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5pbml0aWFsaXNlZCA9IHRydWU7 Cj4gKwkJY2UtPmluaXRpYWxpc2VkID0gdHJ1ZTsKPiAgIAl9Cj4KPiAgIAkvKiBOb3RlIHRoYXQg YWZ0ZXIgdGhpcyBwb2ludCwgd2UgaGF2ZSBjb21taXR0ZWQgdG8gdXNpbmcKPiBAQCAtOTM2LDI0 ICs5MzgsMjIgQEAgc3RhdGljIGludCBpbnRlbF9scl9jb250ZXh0X3BpbihzdHJ1Y3QgaTkxNV9n ZW1fY29udGV4dCAqY3R4LAo+ICAgCQkJCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkK PiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBjdHgtPmk5MTU7 Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iajsKPiAtCXN0cnVjdCBpbnRl bF9yaW5nYnVmZmVyICpyaW5nYnVmOwo+ICsJc3RydWN0IGludGVsX2NvbnRleHQgKmNlID0gJmN0 eC0+ZW5naW5lW2VuZ2luZS0+aWRdOwo+ICAgCXZvaWQgKnZhZGRyOwo+ICAgCXUzMiAqbHJjX3Jl Z19zdGF0ZTsKPiAgIAlpbnQgcmV0Owo+Cj4gICAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmY3R4LT5p OTE1LT5kZXYtPnN0cnVjdF9tdXRleCk7Cj4KPiAtCWlmIChjdHgtPmVuZ2luZVtlbmdpbmUtPmlk XS5waW5fY291bnQrKykKPiArCWlmIChjZS0+cGluX2NvdW50KyspCj4gICAJCXJldHVybiAwOwo+ Cj4gLQljdHhfb2JqID0gY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0uc3RhdGU7Cj4gLQlyZXQgPSBp OTE1X2dlbV9vYmpfZ2d0dF9waW4oY3R4X29iaiwgR0VOOF9MUl9DT05URVhUX0FMSUdOLAo+IC0J CQlQSU5fT0ZGU0VUX0JJQVMgfCBHVUNfV09QQ01fVE9QKTsKPiArCXJldCA9IGk5MTVfZ2VtX29i al9nZ3R0X3BpbihjZS0+c3RhdGUsIEdFTjhfTFJfQ09OVEVYVF9BTElHTiwKPiArCQkJCSAgICBQ SU5fT0ZGU0VUX0JJQVMgfCBHVUNfV09QQ01fVE9QKTsKPiAgIAlpZiAocmV0KQo+ICAgCQlnb3Rv IGVycjsKPgo+IC0JdmFkZHIgPSBpOTE1X2dlbV9vYmplY3RfcGluX21hcChjdHhfb2JqKTsKPiAr CXZhZGRyID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAoY2UtPnN0YXRlKTsKPiAgIAlpZiAoSVNf RVJSKHZhZGRyKSkgewo+ICAgCQlyZXQgPSBQVFJfRVJSKHZhZGRyKTsKPiAgIAkJZ290byB1bnBp bl9jdHhfb2JqOwo+IEBAIC05NjEsMTYgKzk2MSwxNiBAQCBzdGF0aWMgaW50IGludGVsX2xyX2Nv bnRleHRfcGluKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCj4KPiAgIAlscmNfcmVnX3N0 YXRlID0gdmFkZHIgKyBMUkNfU1RBVEVfUE4gKiBQQUdFX1NJWkU7Cj4KPiAtCXJpbmdidWYgPSBj dHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5yaW5nYnVmOwo+IC0JcmV0ID0gaW50ZWxfcGluX2FuZF9t YXBfcmluZ2J1ZmZlcl9vYmooZGV2X3ByaXYsIHJpbmdidWYpOwo+ICsJcmV0ID0gaW50ZWxfcGlu X2FuZF9tYXBfcmluZ2J1ZmZlcl9vYmooZGV2X3ByaXYsIGNlLT5yaW5nYnVmKTsKPiAgIAlpZiAo cmV0KQo+ICAgCQlnb3RvIHVucGluX21hcDsKPgo+IC0JY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0u bHJjX3ZtYSA9IGk5MTVfZ2VtX29ial90b19nZ3R0KGN0eF9vYmopOwo+ICsJY2UtPmxyY192bWEg PSBpOTE1X2dlbV9vYmpfdG9fZ2d0dChjZS0+c3RhdGUpOwo+ICAgCWludGVsX2xyX2NvbnRleHRf ZGVzY3JpcHRvcl91cGRhdGUoY3R4LCBlbmdpbmUpOwo+IC0JbHJjX3JlZ19zdGF0ZVtDVFhfUklO R19CVUZGRVJfU1RBUlQrMV0gPSByaW5nYnVmLT52bWEtPm5vZGUuc3RhcnQ7Cj4gLQljdHgtPmVu Z2luZVtlbmdpbmUtPmlkXS5scmNfcmVnX3N0YXRlID0gbHJjX3JlZ19zdGF0ZTsKPiAtCWN0eF9v YmotPmRpcnR5ID0gdHJ1ZTsKPiArCj4gKwlscmNfcmVnX3N0YXRlW0NUWF9SSU5HX0JVRkZFUl9T VEFSVCsxXSA9IGNlLT5yaW5nYnVmLT52bWEtPm5vZGUuc3RhcnQ7Cj4gKwljZS0+bHJjX3JlZ19z dGF0ZSA9IGxyY19yZWdfc3RhdGU7Cj4gKwljZS0+c3RhdGUtPmRpcnR5ID0gdHJ1ZTsKPgo+ICAg CS8qIEludmFsaWRhdGUgR3VDIFRMQi4gKi8KPiAgIAlpZiAoaTkxNS5lbmFibGVfZ3VjX3N1Ym1p c3Npb24pCj4gQEAgLTk4MCwzNCArOTgwLDMzIEBAIHN0YXRpYyBpbnQgaW50ZWxfbHJfY29udGV4 dF9waW4oc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKPiAgIAlyZXR1cm4gMDsKPgo+ICAg dW5waW5fbWFwOgo+IC0JaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcChjdHhfb2JqKTsKPiArCWk5 MTVfZ2VtX29iamVjdF91bnBpbl9tYXAoY2UtPnN0YXRlKTsKPiAgIHVucGluX2N0eF9vYmo6Cj4g LQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihjdHhfb2JqKTsKPiArCWk5MTVfZ2VtX29iamVj dF9nZ3R0X3VucGluKGNlLT5zdGF0ZSk7Cj4gICBlcnI6Cj4gLQljdHgtPmVuZ2luZVtlbmdpbmUt PmlkXS5waW5fY291bnQgPSAwOwo+ICsJY2UtPnBpbl9jb3VudCA9IDA7Cj4gICAJcmV0dXJuIHJl dDsKPiAgIH0KPgo+ICAgdm9pZCBpbnRlbF9scl9jb250ZXh0X3VucGluKHN0cnVjdCBpOTE1X2dl bV9jb250ZXh0ICpjdHgsCj4gICAJCQkgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l KQo+ICAgewo+IC0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmo7Cj4gKwlzdHJ1 Y3QgaW50ZWxfY29udGV4dCAqY2UgPSAmY3R4LT5lbmdpbmVbZW5naW5lLT5pZF07Cj4KPiAgIAls b2NrZGVwX2Fzc2VydF9oZWxkKCZjdHgtPmk5MTUtPmRldi0+c3RydWN0X211dGV4KTsKPiAtCUdF TV9CVUdfT04oY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0ucGluX2NvdW50ID09IDApOwo+ICsJR0VN X0JVR19PTihjZS0+cGluX2NvdW50ID09IDApOwo+Cj4gLQlpZiAoLS1jdHgtPmVuZ2luZVtlbmdp bmUtPmlkXS5waW5fY291bnQpCj4gKwlpZiAoLS1jZS0+cGluX2NvdW50KQo+ICAgCQlyZXR1cm47 Cj4KPiAtCWludGVsX3VucGluX3JpbmdidWZmZXJfb2JqKGN0eC0+ZW5naW5lW2VuZ2luZS0+aWRd LnJpbmdidWYpOwo+ICsJaW50ZWxfdW5waW5fcmluZ2J1ZmZlcl9vYmooY2UtPnJpbmdidWYpOwo+ Cj4gLQljdHhfb2JqID0gY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0uc3RhdGU7Cj4gLQlpOTE1X2dl bV9vYmplY3RfdW5waW5fbWFwKGN0eF9vYmopOwo+IC0JaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5w aW4oY3R4X29iaik7Cj4gKwlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKGNlLT5zdGF0ZSk7Cj4g KwlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihjZS0+c3RhdGUpOwo+Cj4gLQljdHgtPmVuZ2lu ZVtlbmdpbmUtPmlkXS5scmNfdm1hID0gTlVMTDsKPiAtCWN0eC0+ZW5naW5lW2VuZ2luZS0+aWRd LmxyY19kZXNjID0gMDsKPiAtCWN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLmxyY19yZWdfc3RhdGUg PSBOVUxMOwo+ICsJY2UtPmxyY192bWEgPSBOVUxMOwo+ICsJY2UtPmxyY19kZXNjID0gMDsKPiAr CWNlLT5scmNfcmVnX3N0YXRlID0gTlVMTDsKPgo+ICAgCWk5MTVfZ2VtX2NvbnRleHRfcHV0KGN0 eCk7Cj4gICB9Cj4gQEAgLTI0OTMsMTIgKzI0OTIsMTMgQEAgc3RhdGljIGludCBleGVjbGlzdHNf Y29udGV4dF9kZWZlcnJlZF9hbGxvYyhzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAo+ICAg CQkJCQkgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgewo+ICAgCXN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqOwo+ICsJc3RydWN0IGludGVsX2NvbnRleHQg KmNlID0gJmN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdOwo+ICAgCXVpbnQzMl90IGNvbnRleHRfc2l6 ZTsKPiAgIAlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZjsKPiAgIAlpbnQgcmV0Owo+ Cj4gICAJV0FSTl9PTihjdHgtPmxlZ2FjeV9od19jdHgucmNzX3N0YXRlICE9IE5VTEwpOwo+IC0J V0FSTl9PTihjdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5zdGF0ZSk7Cj4gKwlXQVJOX09OKGNlLT5z dGF0ZSk7Cj4KPiAgIAljb250ZXh0X3NpemUgPSByb3VuZF91cChpbnRlbF9scl9jb250ZXh0X3Np emUoZW5naW5lKSwgNDA5Nik7Cj4KPiBAQCAtMjUyMyw5ICsyNTIzLDkgQEAgc3RhdGljIGludCBl eGVjbGlzdHNfY29udGV4dF9kZWZlcnJlZF9hbGxvYyhzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAq Y3R4LAo+ICAgCQlnb3RvIGVycm9yX3JpbmdidWY7Cj4gICAJfQo+Cj4gLQljdHgtPmVuZ2luZVtl bmdpbmUtPmlkXS5yaW5nYnVmID0gcmluZ2J1ZjsKPiAtCWN0eC0+ZW5naW5lW2VuZ2luZS0+aWRd LnN0YXRlID0gY3R4X29iajsKPiAtCWN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLmluaXRpYWxpc2Vk ID0gZW5naW5lLT5pbml0X2NvbnRleHQgPT0gTlVMTDsKPiArCWNlLT5yaW5nYnVmID0gcmluZ2J1 ZjsKPiArCWNlLT5zdGF0ZSA9IGN0eF9vYmo7Cj4gKwljZS0+aW5pdGlhbGlzZWQgPSBlbmdpbmUt PmluaXRfY29udGV4dCA9PSBOVUxMOwo+Cj4gICAJcmV0dXJuIDA7Cj4KPiBAQCAtMjUzMyw4ICsy NTMzLDggQEAgZXJyb3JfcmluZ2J1ZjoKPiAgIAlpbnRlbF9yaW5nYnVmZmVyX2ZyZWUocmluZ2J1 Zik7Cj4gICBlcnJvcl9kZXJlZl9vYmo6Cj4gICAJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2Uo JmN0eF9vYmotPmJhc2UpOwo+IC0JY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0ucmluZ2J1ZiA9IE5V TEw7Cj4gLQljdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5zdGF0ZSA9IE5VTEw7Cj4gKwljZS0+cmlu Z2J1ZiA9IE5VTEw7Cj4gKwljZS0+c3RhdGUgPSBOVUxMOwo+ICAgCXJldHVybiByZXQ7Cj4gICB9 Cj4KPiBAQCAtMjU0NCwxMCArMjU0NCw4IEBAIHZvaWQgaW50ZWxfbHJfY29udGV4dF9yZXNldChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gICAJc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lOwo+Cj4gICAJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYpIHsK PiAtCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiA9Cj4gLQkJCQljdHgtPmVu Z2luZVtlbmdpbmUtPmlkXS5zdGF0ZTsKPiAtCQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmlu Z2J1ZiA9Cj4gLQkJCQljdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5yaW5nYnVmOwo+ICsJCXN0cnVj dCBpbnRlbF9jb250ZXh0ICpjZSA9ICZjdHgtPmVuZ2luZVtlbmdpbmUtPmlkXTsKPiArCQlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiA9IGNlLT5zdGF0ZTsKPiAgIAkJdm9pZCAq dmFkZHI7Cj4gICAJCXVpbnQzMl90ICpyZWdfc3RhdGU7Cj4KPiBAQCAtMjU2Niw3ICsyNTY0LDcg QEAgdm9pZCBpbnRlbF9scl9jb250ZXh0X3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPgo+ICAgCQlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKGN0eF9vYmopOwo+Cj4g LQkJcmluZ2J1Zi0+aGVhZCA9IDA7Cj4gLQkJcmluZ2J1Zi0+dGFpbCA9IDA7Cj4gKwkJY2UtPnJp bmdidWYtPmhlYWQgPSAwOwo+ICsJCWNlLT5yaW5nYnVmLT50YWlsID0gMDsKPiAgIAl9Cj4gICB9 Cj4KCkxvb2tzIE9LIGFueXdheS4KClJldmlld2VkLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtv LnVyc3VsaW5AaW50ZWwuY29tPgoKUmVnYXJkcywKClR2cnRrbwoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==