From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v2 03/11] drm/i915: Defer transfer onto execution timeline to actual hw submission Date: Thu, 10 Nov 2016 10:43:29 +0000 Message-ID: <01f68be6-e847-522f-b9b1-ad015ff89c5e@linux.intel.com> References: <20161107135950.28861-1-chris@chris-wilson.co.uk> <20161107135950.28861-4-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 mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 546886E7AF for ; Thu, 10 Nov 2016 10:43:32 +0000 (UTC) In-Reply-To: <20161107135950.28861-4-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 Ck9uIDA3LzExLzIwMTYgMTM6NTksIENocmlzIFdpbHNvbiB3cm90ZToKPiBEZWZlciB0aGUgdHJh bnNmZXIgZnJvbSB0aGUgY2xpZW50J3MgdGltZWxpbmUgb250byB0aGUgZXhlY3V0aW9uCj4gdGlt ZWxpbmUgZnJvbSB0aGUgcG9pbnQgb2YgcmVhZGluZXNzIHRvIHRoZSBwb2ludCBvZiBhY3R1YWwg c3VibWlzc2lvbi4KPiBGb3IgZXhhbXBsZSwgaW4gZXhlY2xpc3RzLCBhIHJlcXVlc3QgaXMgZmlu YWxseSBzdWJtaXR0ZWQgdG8gaGFyZHdhcmUKPiB3aGVuIHRoZSBoYXJkd2FyZSBpcyByZWFkeSwg YW5kIG9ubHkgcHV0IG9udG8gdGhlIGhhcmR3YXJlIHF1ZXVlIHdoZW4KPiB0aGUgcmVxdWVzdCBp cyByZWFkeS4gQnkgZGVmZXJyaW5nIHRoZSB0cmFuc2Zlciwgd2UgZW5zdXJlIHRoYXQgdGhlCj4g dGltZWxpbmUgaXMgbWFpbnRhaW5lZCBpbiByZXRpcmVtZW50IG9yZGVyIGlmIHdlIGRlY2lkZSB0 byBxdWV1ZSB0aGUKPiByZXF1ZXN0cyBvbnRvIHRoZSBoYXJkd2FyZSBpbiBhIGRpZmZlcmVudCBv cmRlciB0aGFuIGZpZm8uCj4KPiB2MjogUmViYXNlZCBvbnRvIGRpc3RpbmN0IGdsb2JhbC91c2Vy IHRpbWVsaW5lIGxvY2sgY2xhc3Nlcy4KPgo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8 Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9yZXF1ZXN0LmMgICAgfCAzMSArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0K PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5oICAgIHwgIDIgKysKPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIHwgMTQgKysrKysrKysr KysrKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgICAgIHwgMjMg KysrKysrKysrKysrKy0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5n YnVmZmVyLmMgICAgfCAgMiArKwo+ICA1IGZpbGVzIGNoYW5nZWQsIDQ5IGluc2VydGlvbnMoKyks IDIzIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX3JlcXVlc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3Qu Ywo+IGluZGV4IGU0MWQ1MWE2OGVkOC4uMTljMjlmYWZiMDdhIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYwo+IEBAIC0zMDcsMjUgKzMwNywxNiBAQCBzdGF0aWMg dTMyIHRpbWVsaW5lX2dldF9zZXFubyhzdHJ1Y3QgaTkxNV9nZW1fdGltZWxpbmUgKnRsKQo+ICAJ cmV0dXJuIGF0b21pY19pbmNfcmV0dXJuKCZ0bC0+bmV4dF9zZXFubyk7Cj4gIH0KPgo+IC1zdGF0 aWMgaW50IF9faTkxNV9zd19mZW5jZV9jYWxsCj4gLXN1Ym1pdF9ub3RpZnkoc3RydWN0IGk5MTVf c3dfZmVuY2UgKmZlbmNlLCBlbnVtIGk5MTVfc3dfZmVuY2Vfbm90aWZ5IHN0YXRlKQo+ICt2b2lk IF9faTkxNV9nZW1fcmVxdWVzdF9zdWJtaXQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXF1ZXN0KQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QgPQo+ IC0JCWNvbnRhaW5lcl9vZihmZW5jZSwgdHlwZW9mKCpyZXF1ZXN0KSwgc3VibWl0KTsKPiAgCXN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJlcXVlc3QtPmVuZ2luZTsKPiAgCXN0cnVj dCBpbnRlbF90aW1lbGluZSAqdGltZWxpbmU7Cj4gLQl1bnNpZ25lZCBsb25nIGZsYWdzOwo+ICAJ dTMyIHNlcW5vOwo+Cj4gLQlpZiAoc3RhdGUgIT0gRkVOQ0VfQ09NUExFVEUpCj4gLQkJcmV0dXJu IE5PVElGWV9ET05FOwo+IC0KPiAgCS8qIFRyYW5zZmVyIGZyb20gcGVyLWNvbnRleHQgb250byB0 aGUgZ2xvYmFsIHBlci1lbmdpbmUgdGltZWxpbmUgKi8KPiAgCXRpbWVsaW5lID0gZW5naW5lLT50 aW1lbGluZTsKPiAgCUdFTV9CVUdfT04odGltZWxpbmUgPT0gcmVxdWVzdC0+dGltZWxpbmUpOwo+ IC0KPiAtCS8qIFdpbGwgYmUgY2FsbGVkIGZyb20gaXJxLWNvbnRleHQgd2hlbiB1c2luZyBmb3Jl aWduIERNQSBmZW5jZXMgKi8KPiAtCXNwaW5fbG9ja19pcnFzYXZlKCZ0aW1lbGluZS0+bG9jaywg ZmxhZ3MpOwo+ICsJYXNzZXJ0X3NwaW5fbG9ja2VkKCZ0aW1lbGluZS0+bG9jayk7Cj4KPiAgCXNl cW5vID0gdGltZWxpbmVfZ2V0X3NlcW5vKHRpbWVsaW5lLT5jb21tb24pOwo+ICAJR0VNX0JVR19P Tighc2Vxbm8pOwo+IEBAIC0zNDUsMTUgKzMzNiwyOSBAQCBzdWJtaXRfbm90aWZ5KHN0cnVjdCBp OTE1X3N3X2ZlbmNlICpmZW5jZSwgZW51bSBpOTE1X3N3X2ZlbmNlX25vdGlmeSBzdGF0ZSkKPiAg CUdFTV9CVUdfT04oIXJlcXVlc3QtPmdsb2JhbF9zZXFubyk7Cj4gIAllbmdpbmUtPmVtaXRfYnJl YWRjcnVtYihyZXF1ZXN0LAo+ICAJCQkJcmVxdWVzdC0+cmluZy0+dmFkZHIgKyByZXF1ZXN0LT5w b3N0Zml4KTsKPiAtCWVuZ2luZS0+c3VibWl0X3JlcXVlc3QocmVxdWVzdCk7Cj4KPiAgCXNwaW5f bG9jaygmcmVxdWVzdC0+dGltZWxpbmUtPmxvY2spOwo+ICAJbGlzdF9tb3ZlX3RhaWwoJnJlcXVl c3QtPmxpbmssICZ0aW1lbGluZS0+cmVxdWVzdHMpOwo+ICAJc3Bpbl91bmxvY2soJnJlcXVlc3Qt PnRpbWVsaW5lLT5sb2NrKTsKPgo+ICAJaTkxNV9zd19mZW5jZV9jb21taXQoJnJlcXVlc3QtPmV4 ZWN1dGUpOwo+ICt9Cj4KPiAtCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnRpbWVsaW5lLT5sb2Nr LCBmbGFncyk7Cj4gK3N0YXRpYyBpbnQgX19pOTE1X3N3X2ZlbmNlX2NhbGwKPiArc3VibWl0X25v dGlmeShzdHJ1Y3QgaTkxNV9zd19mZW5jZSAqZmVuY2UsIGVudW0gaTkxNV9zd19mZW5jZV9ub3Rp Znkgc3RhdGUpCj4gK3sKPiArCWlmIChzdGF0ZSA9PSBGRU5DRV9DT01QTEVURSkgewo+ICsJCXN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCA9Cj4gKwkJCWNvbnRhaW5lcl9vZihm ZW5jZSwgdHlwZW9mKCpyZXF1ZXN0KSwgc3VibWl0KTsKPiArCQlzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUgPSByZXF1ZXN0LT5lbmdpbmU7Cj4gKwkJdW5zaWduZWQgbG9uZyBmbGFnczsK PiArCj4gKwkJLyogV2lsbCBiZSBjYWxsZWQgZnJvbSBpcnEtY29udGV4dCB3aGVuIHVzaW5nIGZv cmVpZ24gZmVuY2VzLiAqLwo+ICsJCXNwaW5fbG9ja19pcnFzYXZlX25lc3RlZCgmZW5naW5lLT50 aW1lbGluZS0+bG9jaywgZmxhZ3MsCj4gKwkJCQkJIFNJTkdMRV9ERVBUSF9ORVNUSU5HKTsKPiAr CQllbmdpbmUtPnN1Ym1pdF9yZXF1ZXN0KHJlcXVlc3QpOwo+ICsJCXNwaW5fdW5sb2NrX2lycXJl c3RvcmUoJmVuZ2luZS0+dGltZWxpbmUtPmxvY2ssIGZsYWdzKTsKCldvdWxkIGl0IGJlIGNsZWFu ZXIgdG8gbW92ZSB0aGUgbG9jayB0YWtpbmcgdG8gZW5naW5lLT5zdWJtaXRfcmVxdWVzdD8KCkFu ZCBpcyBfbmVzdGVkIHN0aWxsIHJlcXVpcmVkPyBJIHRob3VnaHQgeW91IHNhaWQgaXQgaXMgbm90 LiBJIGNhbid0IApmaW5kIHNpZ25hbGxpbmcgdW5kZXIgdGhlIHRpbWVsaW5lIGxvY2sgZWl0aGVy LgoKUmVnYXJkcywKClR2cnRrbwoKCgo+ICsJfQo+Cj4gIAlyZXR1cm4gTk9USUZZX0RPTkU7Cj4g IH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5oCj4gaW5kZXggYzg1NDdk OWI5MDA0Li5kODkwNDg2M2QzZDkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fcmVxdWVzdC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f cmVxdWVzdC5oCj4gQEAgLTI0MSw2ICsyNDEsOCBAQCB2b2lkIF9faTkxNV9hZGRfcmVxdWVzdChz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwgYm9vbCBmbHVzaF9jYWNoZXMpOwo+ICAj ZGVmaW5lIGk5MTVfYWRkX3JlcXVlc3Rfbm9fZmx1c2gocmVxKSBcCj4gIAlfX2k5MTVfYWRkX3Jl cXVlc3QocmVxLCBmYWxzZSkKPgo+ICt2b2lkIF9faTkxNV9nZW1fcmVxdWVzdF9zdWJtaXQoc3Ry dWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KTsKPiArCj4gIHN0cnVjdCBpbnRlbF9y cHNfY2xpZW50Owo+ICAjZGVmaW5lIE5PX1dBSVRCT09TVCBFUlJfUFRSKC0xKQo+ICAjZGVmaW5l IElTX1JQU19DTElFTlQocCkgKCFJU19FUlIocCkpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ3VjX3N1Ym1pc3Npb24uYwo+IGluZGV4IDY2NmRhYjdhNjc1YS4uODM0MzhjNmE4ODY0IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwo+IEBAIC02 MjksMTEgKzYyOSwyMyBAQCBzdGF0aWMgaW50IGd1Y19yaW5nX2Rvb3JiZWxsKHN0cnVjdCBpOTE1 X2d1Y19jbGllbnQgKmdjKQo+ICBzdGF0aWMgdm9pZCBpOTE1X2d1Y19zdWJtaXQoc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpycSkKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gcnEtPmk5MTU7Cj4gLQl1bnNpZ25lZCBpbnQgZW5naW5lX2lkID0gcnEtPmVu Z2luZS0+aWQ7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSBycS0+ZW5naW5l Owo+ICsJdW5zaWduZWQgaW50IGVuZ2luZV9pZCA9IGVuZ2luZS0+aWQ7Cj4gIAlzdHJ1Y3QgaW50 ZWxfZ3VjICpndWMgPSAmcnEtPmk5MTUtPmd1YzsKPiAgCXN0cnVjdCBpOTE1X2d1Y19jbGllbnQg KmNsaWVudCA9IGd1Yy0+ZXhlY2J1Zl9jbGllbnQ7Cj4gIAlpbnQgYl9yZXQ7Cj4KPiArCS8qIFdl IGtlZXAgdGhlIHByZXZpb3VzIGNvbnRleHQgYWxpdmUgdW50aWwgd2UgcmV0aXJlIHRoZSBmb2xs b3dpbmcKPiArCSAqIHJlcXVlc3QuIFRoaXMgZW5zdXJlcyB0aGF0IGFueSB0aGUgY29udGV4dCBv YmplY3QgaXMgc3RpbGwgcGlubmVkCj4gKwkgKiBmb3IgYW55IHJlc2lkdWFsIHdyaXRlcyB0aGUg SFcgbWFrZXMgaW50byBpdCBvbiB0aGUgY29udGV4dCBzd2l0Y2gKPiArCSAqIGludG8gdGhlIG5l eHQgb2JqZWN0IGZvbGxvd2luZyB0aGUgYnJlYWRjcnVtYi4gT3RoZXJ3aXNlLCB3ZSBtYXkKPiAr CSAqIHJldGlyZSB0aGUgY29udGV4dCB0b28gZWFybHkuCj4gKwkgKi8KPiArCXJxLT5wcmV2aW91 c19jb250ZXh0ID0gZW5naW5lLT5sYXN0X2NvbnRleHQ7Cj4gKwllbmdpbmUtPmxhc3RfY29udGV4 dCA9IHJxLT5jdHg7Cj4gKwo+ICsJX19pOTE1X2dlbV9yZXF1ZXN0X3N1Ym1pdChycSk7Cj4gKwo+ ICAJc3Bpbl9sb2NrKCZjbGllbnQtPndxX2xvY2spOwo+ICAJZ3VjX3dxX2l0ZW1fYXBwZW5kKGNs aWVudCwgcnEpOwo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBpbmRleCBmYTMwMTJjMzQy Y2MuLmZhNDkyMGU3MmU5MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gQEAgLTQz NCw2ICs0MzQsNyBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfZGVxdWV1ZShzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq Y3Vyc29yLCAqbGFzdDsKPiAgCXN0cnVjdCBleGVjbGlzdF9wb3J0ICpwb3J0ID0gZW5naW5lLT5l eGVjbGlzdF9wb3J0Owo+ICsJdW5zaWduZWQgbG9uZyBmbGFnczsKPiAgCWJvb2wgc3VibWl0ID0g ZmFsc2U7Cj4KPiAgCWxhc3QgPSBwb3J0LT5yZXF1ZXN0Owo+IEBAIC00NjksNiArNDcwLDcgQEAg c3RhdGljIHZvaWQgZXhlY2xpc3RzX2RlcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQo+ICAJICogYW5kIGNvbnRleHQgc3dpdGNoZXMpIHN1Ym1pc3Npb24uCj4gIAkgKi8KPgo+ ICsJc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+dGltZWxpbmUtPmxvY2ssIGZsYWdzKTsKPiAg CXNwaW5fbG9jaygmZW5naW5lLT5leGVjbGlzdF9sb2NrKTsKPiAgCWxpc3RfZm9yX2VhY2hfZW50 cnkoY3Vyc29yLCAmZW5naW5lLT5leGVjbGlzdF9xdWV1ZSwgZXhlY2xpc3RfbGluaykgewo+ICAJ CS8qIENhbiB3ZSBjb21iaW5lIHRoaXMgcmVxdWVzdCB3aXRoIHRoZSBjdXJyZW50IHBvcnQ/IEl0 IGhhcyB0bwo+IEBAIC01MDEsNiArNTAzLDE3IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19kZXF1 ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgCQkJaTkxNV9nZW1fcmVxdWVz dF9hc3NpZ24oJnBvcnQtPnJlcXVlc3QsIGxhc3QpOwo+ICAJCQlwb3J0Kys7Cj4gIAkJfQo+ICsK PiArCQkvKiBXZSBrZWVwIHRoZSBwcmV2aW91cyBjb250ZXh0IGFsaXZlIHVudGlsIHdlIHJldGly ZSB0aGUKPiArCQkgKiBmb2xsb3dpbmcgcmVxdWVzdC4gVGhpcyBlbnN1cmVzIHRoYXQgYW55IHRo ZSBjb250ZXh0IG9iamVjdAo+ICsJCSAqIGlzIHN0aWxsIHBpbm5lZCBmb3IgYW55IHJlc2lkdWFs IHdyaXRlcyB0aGUgSFcgbWFrZXMgaW50byBpdAo+ICsJCSAqIG9uIHRoZSBjb250ZXh0IHN3aXRj aCBpbnRvIHRoZSBuZXh0IG9iamVjdCBmb2xsb3dpbmcgdGhlCj4gKwkJICogYnJlYWRjcnVtYi4g T3RoZXJ3aXNlLCB3ZSBtYXkgcmV0aXJlIHRoZSBjb250ZXh0IHRvbyBlYXJseS4KPiArCQkgKi8K PiArCQljdXJzb3ItPnByZXZpb3VzX2NvbnRleHQgPSBlbmdpbmUtPmxhc3RfY29udGV4dDsKPiAr CQllbmdpbmUtPmxhc3RfY29udGV4dCA9IGN1cnNvci0+Y3R4Owo+ICsKPiArCQlfX2k5MTVfZ2Vt X3JlcXVlc3Rfc3VibWl0KGN1cnNvcik7Cj4gIAkJbGFzdCA9IGN1cnNvcjsKPiAgCQlzdWJtaXQg PSB0cnVlOwo+ICAJfQo+IEBAIC01MTIsNiArNTI1LDcgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3Rz X2RlcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAJCWk5MTVfZ2VtX3Jl cXVlc3RfYXNzaWduKCZwb3J0LT5yZXF1ZXN0LCBsYXN0KTsKPiAgCX0KPiAgCXNwaW5fdW5sb2Nr KCZlbmdpbmUtPmV4ZWNsaXN0X2xvY2spOwo+ICsJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5n aW5lLT50aW1lbGluZS0+bG9jaywgZmxhZ3MpOwo+Cj4gIAlpZiAoc3VibWl0KQo+ICAJCWV4ZWNs aXN0c19zdWJtaXRfcG9ydHMoZW5naW5lKTsKPiBAQCAtNTk5LDE1ICs2MTMsNiBAQCBzdGF0aWMg dm9pZCBleGVjbGlzdHNfc3VibWl0X3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpyZXF1ZXN0KQo+Cj4gIAlzcGluX2xvY2tfaXJxc2F2ZSgmZW5naW5lLT5leGVjbGlzdF9sb2Nr LCBmbGFncyk7Cj4KPiAtCS8qIFdlIGtlZXAgdGhlIHByZXZpb3VzIGNvbnRleHQgYWxpdmUgdW50 aWwgd2UgcmV0aXJlIHRoZSBmb2xsb3dpbmcKPiAtCSAqIHJlcXVlc3QuIFRoaXMgZW5zdXJlcyB0 aGF0IGFueSB0aGUgY29udGV4dCBvYmplY3QgaXMgc3RpbGwgcGlubmVkCj4gLQkgKiBmb3IgYW55 IHJlc2lkdWFsIHdyaXRlcyB0aGUgSFcgbWFrZXMgaW50byBpdCBvbiB0aGUgY29udGV4dCBzd2l0 Y2gKPiAtCSAqIGludG8gdGhlIG5leHQgb2JqZWN0IGZvbGxvd2luZyB0aGUgYnJlYWRjcnVtYi4g T3RoZXJ3aXNlLCB3ZSBtYXkKPiAtCSAqIHJldGlyZSB0aGUgY29udGV4dCB0b28gZWFybHkuCj4g LQkgKi8KPiAtCXJlcXVlc3QtPnByZXZpb3VzX2NvbnRleHQgPSBlbmdpbmUtPmxhc3RfY29udGV4 dDsKPiAtCWVuZ2luZS0+bGFzdF9jb250ZXh0ID0gcmVxdWVzdC0+Y3R4Owo+IC0KPiAgCWxpc3Rf YWRkX3RhaWwoJnJlcXVlc3QtPmV4ZWNsaXN0X2xpbmssICZlbmdpbmUtPmV4ZWNsaXN0X3F1ZXVl KTsKPiAgCWlmIChleGVjbGlzdHNfZWxzcF9pZGxlKGVuZ2luZSkpCj4gIAkJdGFza2xldF9oaV9z Y2hlZHVsZSgmZW5naW5lLT5pcnFfdGFza2xldCk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuYwo+IGluZGV4IDcwMGU5M2Q4MDYxNi4uZjkxZWUyNGUyNzYzIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+IEBAIC0xMjk0LDYgKzEyOTQs OCBAQCBzdGF0aWMgdm9pZCBpOXh4X3N1Ym1pdF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcmVxdWVzdCkKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gcmVxdWVzdC0+aTkxNTsKPgo+ICsJX19pOTE1X2dlbV9yZXF1ZXN0X3N1Ym1pdChyZXF1 ZXN0KTsKPiArCj4gIAlJOTE1X1dSSVRFX1RBSUwocmVxdWVzdC0+ZW5naW5lLCByZXF1ZXN0LT50 YWlsKTsKPiAgfQo+Cj4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4Cg==