From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Gordon Subject: Re: [PATCH 1/2] drm/i915: Kill DRI1 cliprects Date: Tue, 6 Oct 2015 15:29:20 +0100 Message-ID: <5613DAC0.5090302@intel.com> References: <1444127996-23561-1-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 mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 38DF86E42F for ; Tue, 6 Oct 2015 07:29:27 -0700 (PDT) In-Reply-To: <1444127996-23561-1-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: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gMDYvMTAvMTUgMTE6MzksIENocmlzIFdpbHNvbiB3cm90ZToKPiBQYXNzaW5nIGNsaXByZWN0 cyBpbnRvIHRoZSBrZXJuZWwgZm9yIGl0IHRvIHJlLWV4ZWN1dGUgdGhlIGJhdGNoIGJ1ZmZlcgo+ IHdpdGggZGlmZmVyZW50IENNRF9EUkFXUkVDVCBkaWVkIG91dCBsb25nIGFnby4gQXMgRFJJMSBz dXBwb3J0IGhhcyBiZWVuCj4gcmVtb3ZlZCBmcm9tIHRoZSBrZXJuZWwsIHdlIGNhbiBub3cgc2lt cGx5IHJlamVjdCBhbnkgZXhlY2J1ZiB0cnlpbmcgdG8KPiB1c2UgdGhpcyAiZmVhdHVyZSIuCj4K PiBUbyBrZWVwIERhbmllbCBoYXBweSB3aXRoIHRoZSBwcm9zcGVjdCBvZiBiZWluZyBhYmxlIHRv IHJldXNlIHRoZXNlCj4gZmllbGRzIGluIHRoZSBuZXh0IGRlY2FkZSwgY29udGludWUgdG8gZW5z dXJlIHRoYXQgY3VycmVudCB1c2Vyc3BhY2UgaXMKPiBub3QgcGFzc2luZyBnYXJiYWdlIGluIHRo cm91Z2ggdGhlIGRlYWQgZmllbGRzLgo+Cj4gdjI6IEZpeCB0aGUgY2xpcHJlY3RzX3B0ciBjaGVj awo+Cj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28u dWs+Cj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gLS0tCj4g ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgfCAxNTQgKysrKysr LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5jICAgICAgICAgICB8ICAxNSAtLS0KPiAgIDIgZmlsZXMgY2hhbmdlZCwgMzEgaW5zZXJ0aW9u cygrKSwgMTM4IGRlbGV0aW9ucygtKQoKVGhpcyB3aWxsIGNhdXNlIEpvaG4gSGFycmlzb24gJiBt eXNlbGYgYSBjZXJ0YWluIGFtb3VudCBvZiBwYWluIChiZWNhdXNlIAp0aGUgY2hhbmdlcyBjb2xs aWRlIHdpdGggdGhlIHNjaGVkdWxlcidzIHJlb3JnYW5pc2F0aW9uIG9mIHRoZSAKZXhlY2J1ZmZl ciBwYXRoKSwgYnV0IEknbSBhbGwgaW4gZmF2b3VyIG9mIGdldHRpbmcgcmlkIG9mIHRoZSBsZWdh Y3kgCmNydWQgY2x1dHRlcmluZyB1cCB0aGlzIGNvZGUsIHNvIC4uLgoKUmV2aWV3ZWQtYnk6IERh dmUgR29yZG9uIDxkYXZpZC5zLmdvcmRvbkBpbnRlbC5jb20+CgpQZXJoYXBzIHdlIGNvdWxkIGdl dCByaWQgb2YgcmVsYXRpdmUtY29uc3RhbnRzLW1vZGUgbmV4dCA6KQoKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4gaW5kZXggNzVhMGM4YjUzMDViLi4wNDVh NzYzMWZhYTAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhl Y2J1ZmZlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZl ci5jCj4gQEAgLTk0Nyw3ICs5NDcsMjEgQEAgaTkxNV9nZW1fY2hlY2tfZXhlY2J1ZmZlcihzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyICpleGVjKQo+ICAgCWlmIChleGVjLT5mbGFncyAm IF9fSTkxNV9FWEVDX1VOS05PV05fRkxBR1MpCj4gICAJCXJldHVybiBmYWxzZTsKPgo+IC0JcmV0 dXJuICgoZXhlYy0+YmF0Y2hfc3RhcnRfb2Zmc2V0IHwgZXhlYy0+YmF0Y2hfbGVuKSAmIDB4Nykg PT0gMDsKPiArCS8qIEtlcm5lbCBjbGlwcGluZyB3YXMgYSBEUkkxIG1pc2ZlYXR1cmUgKi8KPiAr CWlmIChleGVjLT5udW1fY2xpcHJlY3RzIHx8IGV4ZWMtPmNsaXByZWN0c19wdHIpCj4gKwkJcmV0 dXJuIGZhbHNlOwo+ICsKPiArCWlmIChleGVjLT5EUjQgPT0gMHhmZmZmZmZmZikgewo+ICsJCURS TV9ERUJVRygiVVhBIHN1Ym1pdHRpbmcgZ2FyYmFnZSBEUjQsIGZpeGluZyB1cFxuIik7Cj4gKwkJ ZXhlYy0+RFI0ID0gMDsKPiArCX0KPiArCWlmIChleGVjLT5EUjEgfHwgZXhlYy0+RFI0KQo+ICsJ CXJldHVybiBmYWxzZTsKPiArCj4gKwlpZiAoKGV4ZWMtPmJhdGNoX3N0YXJ0X29mZnNldCB8IGV4 ZWMtPmJhdGNoX2xlbikgJiAweDcpCj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsKPiArCXJldHVybiB0 cnVlOwo+ICAgfQo+Cj4gICBzdGF0aWMgaW50Cj4gQEAgLTExMTEsNDcgKzExMjUsNiBAQCBpOTE1 X3Jlc2V0X2dlbjdfc29sX29mZnNldHMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIAlyZXR1 cm4gMDsKPiAgIH0KPgo+IC1zdGF0aWMgaW50Cj4gLWk5MTVfZW1pdF9ib3goc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gLQkgICAgICBzdHJ1Y3QgZHJtX2NsaXBfcmVjdCAqYm94 LAo+IC0JICAgICAgaW50IERSMSwgaW50IERSNCkKPiAtewo+IC0Jc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKPiAtCWludCByZXQ7Cj4gLQo+IC0JaWYgKGJveC0+eTIg PD0gYm94LT55MSB8fCBib3gtPngyIDw9IGJveC0+eDEgfHwKPiAtCSAgICBib3gtPnkyIDw9IDAg fHwgYm94LT54MiA8PSAwKSB7Cj4gLQkJRFJNX0VSUk9SKCJCYWQgYm94ICVkLCVkLi4lZCwlZFxu IiwKPiAtCQkJICBib3gtPngxLCBib3gtPnkxLCBib3gtPngyLCBib3gtPnkyKTsKPiAtCQlyZXR1 cm4gLUVJTlZBTDsKPiAtCX0KPiAtCj4gLQlpZiAoSU5URUxfSU5GTyhyaW5nLT5kZXYpLT5nZW4g Pj0gNCkgewo+IC0JCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCA0KTsKPiAtCQlpZiAocmV0 KQo+IC0JCQlyZXR1cm4gcmV0Owo+IC0KPiAtCQlpbnRlbF9yaW5nX2VtaXQocmluZywgR0ZYX09Q X0RSQVdSRUNUX0lORk9fSTk2NSk7Cj4gLQkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIChib3gtPngx ICYgMHhmZmZmKSB8IGJveC0+eTEgPDwgMTYpOwo+IC0JCWludGVsX3JpbmdfZW1pdChyaW5nLCAo KGJveC0+eDIgLSAxKSAmIDB4ZmZmZikgfCAoYm94LT55MiAtIDEpIDw8IDE2KTsKPiAtCQlpbnRl bF9yaW5nX2VtaXQocmluZywgRFI0KTsKPiAtCX0gZWxzZSB7Cj4gLQkJcmV0ID0gaW50ZWxfcmlu Z19iZWdpbihyZXEsIDYpOwo+IC0JCWlmIChyZXQpCj4gLQkJCXJldHVybiByZXQ7Cj4gLQo+IC0J CWludGVsX3JpbmdfZW1pdChyaW5nLCBHRlhfT1BfRFJBV1JFQ1RfSU5GTyk7Cj4gLQkJaW50ZWxf cmluZ19lbWl0KHJpbmcsIERSMSk7Cj4gLQkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIChib3gtPngx ICYgMHhmZmZmKSB8IGJveC0+eTEgPDwgMTYpOwo+IC0JCWludGVsX3JpbmdfZW1pdChyaW5nLCAo KGJveC0+eDIgLSAxKSAmIDB4ZmZmZikgfCAoYm94LT55MiAtIDEpIDw8IDE2KTsKPiAtCQlpbnRl bF9yaW5nX2VtaXQocmluZywgRFI0KTsKPiAtCQlpbnRlbF9yaW5nX2VtaXQocmluZywgMCk7Cj4g LQl9Cj4gLQlpbnRlbF9yaW5nX2FkdmFuY2UocmluZyk7Cj4gLQo+IC0JcmV0dXJuIDA7Cj4gLX0K PiAtCj4gICBzdGF0aWMgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QqCj4gICBpOTE1X2dlbV9l eGVjYnVmZmVyX3BhcnNlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gICAJCQkgIHN0 cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyICpzaGFkb3dfZXhlY19lbnRyeSwKPiBAQCAt MTIxMCw2NSArMTE4MywyMSBAQCBpOTE1X2dlbV9yaW5nYnVmZmVyX3N1Ym1pc3Npb24oc3RydWN0 IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcywKPiAgIAkJCSAgICAgICBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX2V4ZWNidWZmZXIyICphcmdzLAo+ICAgCQkJICAgICAgIHN0cnVjdCBsaXN0X2hl YWQgKnZtYXMpCj4gICB7Cj4gLQlzdHJ1Y3QgZHJtX2NsaXBfcmVjdCAqY2xpcHJlY3RzID0gTlVM TDsKPiAgIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGFyYW1zLT5kZXY7Cj4gICAJc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHBhcmFtcy0+cmluZzsKPiAgIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAgCXU2NCBleGVjX3N0 YXJ0LCBleGVjX2xlbjsKPiAgIAlpbnQgaW5zdHBfbW9kZTsKPiAgIAl1MzIgaW5zdHBfbWFzazsK PiAtCWludCBpLCByZXQgPSAwOwo+IC0KPiAtCWlmIChhcmdzLT5udW1fY2xpcHJlY3RzICE9IDAp IHsKPiAtCQlpZiAocmluZyAhPSAmZGV2X3ByaXYtPnJpbmdbUkNTXSkgewo+IC0JCQlEUk1fREVC VUcoImNsaXAgcmVjdGFuZ2xlcyBhcmUgb25seSB2YWxpZCB3aXRoIHRoZSByZW5kZXIgcmluZ1xu Iik7Cj4gLQkJCXJldHVybiAtRUlOVkFMOwo+IC0JCX0KPiAtCj4gLQkJaWYgKElOVEVMX0lORk8o ZGV2KS0+Z2VuID49IDUpIHsKPiAtCQkJRFJNX0RFQlVHKCJjbGlwIHJlY3RhbmdsZXMgYXJlIG9u bHkgdmFsaWQgb24gcHJlLWdlbjVcbiIpOwo+IC0JCQlyZXR1cm4gLUVJTlZBTDsKPiAtCQl9Cj4g LQo+IC0JCWlmIChhcmdzLT5udW1fY2xpcHJlY3RzID4gVUlOVF9NQVggLyBzaXplb2YoKmNsaXBy ZWN0cykpIHsKPiAtCQkJRFJNX0RFQlVHKCJleGVjYnVmIHdpdGggJXUgY2xpcHJlY3RzXG4iLAo+ IC0JCQkJICBhcmdzLT5udW1fY2xpcHJlY3RzKTsKPiAtCQkJcmV0dXJuIC1FSU5WQUw7Cj4gLQkJ fQo+IC0KPiAtCQljbGlwcmVjdHMgPSBrY2FsbG9jKGFyZ3MtPm51bV9jbGlwcmVjdHMsCj4gLQkJ CQkgICAgc2l6ZW9mKCpjbGlwcmVjdHMpLAo+IC0JCQkJICAgIEdGUF9LRVJORUwpOwo+IC0JCWlm IChjbGlwcmVjdHMgPT0gTlVMTCkgewo+IC0JCQlyZXQgPSAtRU5PTUVNOwo+IC0JCQlnb3RvIGVy cm9yOwo+IC0JCX0KPiAtCj4gLQkJaWYgKGNvcHlfZnJvbV91c2VyKGNsaXByZWN0cywKPiAtCQkJ CSAgIHRvX3VzZXJfcHRyKGFyZ3MtPmNsaXByZWN0c19wdHIpLAo+IC0JCQkJICAgc2l6ZW9mKCpj bGlwcmVjdHMpKmFyZ3MtPm51bV9jbGlwcmVjdHMpKSB7Cj4gLQkJCXJldCA9IC1FRkFVTFQ7Cj4g LQkJCWdvdG8gZXJyb3I7Cj4gLQkJfQo+IC0JfSBlbHNlIHsKPiAtCQlpZiAoYXJncy0+RFI0ID09 IDB4ZmZmZmZmZmYpIHsKPiAtCQkJRFJNX0RFQlVHKCJVWEEgc3VibWl0dGluZyBnYXJiYWdlIERS NCwgZml4aW5nIHVwXG4iKTsKPiAtCQkJYXJncy0+RFI0ID0gMDsKPiAtCQl9Cj4gLQo+IC0JCWlm IChhcmdzLT5EUjEgfHwgYXJncy0+RFI0IHx8IGFyZ3MtPmNsaXByZWN0c19wdHIpIHsKPiAtCQkJ RFJNX0RFQlVHKCIwIGNsaXByZWN0cyBidXQgZGlydCBpbiBjbGlwcmVjdHMgZmllbGRzXG4iKTsK PiAtCQkJcmV0dXJuIC1FSU5WQUw7Cj4gLQkJfQo+IC0JfQo+ICsJaW50IHJldDsKPgo+ICAgCXJl dCA9IGk5MTVfZ2VtX2V4ZWNidWZmZXJfbW92ZV90b19ncHUocGFyYW1zLT5yZXF1ZXN0LCB2bWFz KTsKPiAgIAlpZiAocmV0KQo+IC0JCWdvdG8gZXJyb3I7Cj4gKwkJcmV0dXJuIHJldDsKPgo+ICAg CXJldCA9IGk5MTVfc3dpdGNoX2NvbnRleHQocGFyYW1zLT5yZXF1ZXN0KTsKPiAgIAlpZiAocmV0 KQo+IC0JCWdvdG8gZXJyb3I7Cj4gKwkJcmV0dXJuIHJldDsKPgo+ICAgCVdBUk4ocGFyYW1zLT5j dHgtPnBwZ3R0ICYmIHBhcmFtcy0+Y3R4LT5wcGd0dC0+cGRfZGlydHlfcmluZ3MgJiAoMTw8cmlu Zy0+aWQpLAo+ICAgCSAgICAgIiVzIGRpZG4ndCBjbGVhciByZWxvYWRcbiIsIHJpbmctPm5hbWUp Owo+IEBAIC0xMjgxLDIyICsxMjEwLDE5IEBAIGk5MTVfZ2VtX3JpbmdidWZmZXJfc3VibWlzc2lv bihzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1zLAo+ICAgCWNhc2UgSTkxNV9F WEVDX0NPTlNUQU5UU19SRUxfU1VSRkFDRToKPiAgIAkJaWYgKGluc3RwX21vZGUgIT0gMCAmJiBy aW5nICE9ICZkZXZfcHJpdi0+cmluZ1tSQ1NdKSB7Cj4gICAJCQlEUk1fREVCVUcoIm5vbi0wIHJl bCBjb25zdGFudHMgbW9kZSBvbiBub24tUkNTXG4iKTsKPiAtCQkJcmV0ID0gLUVJTlZBTDsKPiAt CQkJZ290byBlcnJvcjsKPiArCQkJcmV0dXJuIC1FSU5WQUw7Cj4gICAJCX0KPgo+ICAgCQlpZiAo aW5zdHBfbW9kZSAhPSBkZXZfcHJpdi0+cmVsYXRpdmVfY29uc3RhbnRzX21vZGUpIHsKPiAgIAkJ CWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8IDQpIHsKPiAgIAkJCQlEUk1fREVCVUcoIm5vIHJl bCBjb25zdGFudHMgb24gcHJlLWdlbjRcbiIpOwo+IC0JCQkJcmV0ID0gLUVJTlZBTDsKPiAtCQkJ CWdvdG8gZXJyb3I7Cj4gKwkJCQlyZXR1cm4gLUVJTlZBTDsKPiAgIAkJCX0KPgo+ICAgCQkJaWYg KElOVEVMX0lORk8oZGV2KS0+Z2VuID4gNSAmJgo+ICAgCQkJICAgIGluc3RwX21vZGUgPT0gSTkx NV9FWEVDX0NPTlNUQU5UU19SRUxfU1VSRkFDRSkgewo+ICAgCQkJCURSTV9ERUJVRygicmVsIHN1 cmZhY2UgY29uc3RhbnRzIG1vZGUgaW52YWxpZCBvbiBnZW41K1xuIik7Cj4gLQkJCQlyZXQgPSAt RUlOVkFMOwo+IC0JCQkJZ290byBlcnJvcjsKPiArCQkJCXJldHVybiAtRUlOVkFMOwo+ICAgCQkJ fQo+Cj4gICAJCQkvKiBUaGUgSFcgY2hhbmdlZCB0aGUgbWVhbmluZyBvbiB0aGlzIGJpdCBvbiBn ZW42ICovCj4gQEAgLTEzMDYsMTUgKzEyMzIsMTQgQEAgaTkxNV9nZW1fcmluZ2J1ZmZlcl9zdWJt aXNzaW9uKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zICpwYXJhbXMsCj4gICAJCWJyZWFr Owo+ICAgCWRlZmF1bHQ6Cj4gICAJCURSTV9ERUJVRygiZXhlY2J1ZiB3aXRoIHVua25vd24gY29u c3RhbnRzOiAlZFxuIiwgaW5zdHBfbW9kZSk7Cj4gLQkJcmV0ID0gLUVJTlZBTDsKPiAtCQlnb3Rv IGVycm9yOwo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICAgCX0KPgo+ICAgCWlmIChyaW5nID09ICZk ZXZfcHJpdi0+cmluZ1tSQ1NdICYmCj4gLQkJCWluc3RwX21vZGUgIT0gZGV2X3ByaXYtPnJlbGF0 aXZlX2NvbnN0YW50c19tb2RlKSB7Cj4gKwkgICAgaW5zdHBfbW9kZSAhPSBkZXZfcHJpdi0+cmVs YXRpdmVfY29uc3RhbnRzX21vZGUpIHsKPiAgIAkJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihwYXJh bXMtPnJlcXVlc3QsIDQpOwo+ICAgCQlpZiAocmV0KQo+IC0JCQlnb3RvIGVycm9yOwo+ICsJCQly ZXR1cm4gcmV0Owo+Cj4gICAJCWludGVsX3JpbmdfZW1pdChyaW5nLCBNSV9OT09QKTsKPiAgIAkJ aW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX0xPQURfUkVHSVNURVJfSU1NKDEpKTsKPiBAQCAtMTMy OCw0MiArMTI1MywyNSBAQCBpOTE1X2dlbV9yaW5nYnVmZmVyX3N1Ym1pc3Npb24oc3RydWN0IGk5 MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcywKPiAgIAlpZiAoYXJncy0+ZmxhZ3MgJiBJOTE1 X0VYRUNfR0VON19TT0xfUkVTRVQpIHsKPiAgIAkJcmV0ID0gaTkxNV9yZXNldF9nZW43X3NvbF9v ZmZzZXRzKGRldiwgcGFyYW1zLT5yZXF1ZXN0KTsKPiAgIAkJaWYgKHJldCkKPiAtCQkJZ290byBl cnJvcjsKPiArCQkJcmV0dXJuIHJldDsKPiAgIAl9Cj4KPiAgIAlleGVjX2xlbiAgID0gYXJncy0+ YmF0Y2hfbGVuOwo+ICAgCWV4ZWNfc3RhcnQgPSBwYXJhbXMtPmJhdGNoX29ial92bV9vZmZzZXQg Kwo+ICAgCQkgICAgIHBhcmFtcy0+YXJnc19iYXRjaF9zdGFydF9vZmZzZXQ7Cj4KPiAtCWlmIChj bGlwcmVjdHMpIHsKPiAtCQlmb3IgKGkgPSAwOyBpIDwgYXJncy0+bnVtX2NsaXByZWN0czsgaSsr KSB7Cj4gLQkJCXJldCA9IGk5MTVfZW1pdF9ib3gocGFyYW1zLT5yZXF1ZXN0LCAmY2xpcHJlY3Rz W2ldLAo+IC0JCQkJCSAgICBhcmdzLT5EUjEsIGFyZ3MtPkRSNCk7Cj4gLQkJCWlmIChyZXQpCj4g LQkJCQlnb3RvIGVycm9yOwo+IC0KPiAtCQkJcmV0ID0gcmluZy0+ZGlzcGF0Y2hfZXhlY2J1ZmZl cihwYXJhbXMtPnJlcXVlc3QsCj4gLQkJCQkJCQlleGVjX3N0YXJ0LCBleGVjX2xlbiwKPiAtCQkJ CQkJCXBhcmFtcy0+ZGlzcGF0Y2hfZmxhZ3MpOwo+IC0JCQlpZiAocmV0KQo+IC0JCQkJZ290byBl cnJvcjsKPiAtCQl9Cj4gLQl9IGVsc2Ugewo+IC0JCXJldCA9IHJpbmctPmRpc3BhdGNoX2V4ZWNi dWZmZXIocGFyYW1zLT5yZXF1ZXN0LAo+IC0JCQkJCQlleGVjX3N0YXJ0LCBleGVjX2xlbiwKPiAt CQkJCQkJcGFyYW1zLT5kaXNwYXRjaF9mbGFncyk7Cj4gLQkJaWYgKHJldCkKPiAtCQkJcmV0dXJu IHJldDsKPiAtCX0KPiArCXJldCA9IHJpbmctPmRpc3BhdGNoX2V4ZWNidWZmZXIocGFyYW1zLT5y ZXF1ZXN0LAo+ICsJCQkJCWV4ZWNfc3RhcnQsIGV4ZWNfbGVuLAo+ICsJCQkJCXBhcmFtcy0+ZGlz cGF0Y2hfZmxhZ3MpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+Cj4gICAJdHJhY2Vf aTkxNV9nZW1fcmluZ19kaXNwYXRjaChwYXJhbXMtPnJlcXVlc3QsIHBhcmFtcy0+ZGlzcGF0Y2hf ZmxhZ3MpOwo+Cj4gICAJaTkxNV9nZW1fZXhlY2J1ZmZlcl9tb3ZlX3RvX2FjdGl2ZSh2bWFzLCBw YXJhbXMtPnJlcXVlc3QpOwo+ICAgCWk5MTVfZ2VtX2V4ZWNidWZmZXJfcmV0aXJlX2NvbW1hbmRz KHBhcmFtcyk7Cj4KPiAtZXJyb3I6Cj4gLQlrZnJlZShjbGlwcmVjdHMpOwo+IC0JcmV0dXJuIHJl dDsKPiArCXJldHVybiAwOwo+ICAgfQo+Cj4gICAvKioKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu Ywo+IGluZGV4IDc4YWFiOTQ2ZGIwNC4uZDM4NzQ2YzUzNzBkIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbHJjLmMKPiBAQCAtODc4LDIxICs4NzgsNiBAQCBpbnQgaW50ZWxfZXhlY2xpc3RzX3N1 Ym1pc3Npb24oc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcywKPiAgIAkJcmV0 dXJuIC1FSU5WQUw7Cj4gICAJfQo+Cj4gLQlpZiAoYXJncy0+bnVtX2NsaXByZWN0cyAhPSAwKSB7 Cj4gLQkJRFJNX0RFQlVHKCJjbGlwIHJlY3RhbmdsZXMgYXJlIG9ubHkgdmFsaWQgb24gcHJlLWdl bjVcbiIpOwo+IC0JCXJldHVybiAtRUlOVkFMOwo+IC0JfSBlbHNlIHsKPiAtCQlpZiAoYXJncy0+ RFI0ID09IDB4ZmZmZmZmZmYpIHsKPiAtCQkJRFJNX0RFQlVHKCJVWEEgc3VibWl0dGluZyBnYXJi YWdlIERSNCwgZml4aW5nIHVwXG4iKTsKPiAtCQkJYXJncy0+RFI0ID0gMDsKPiAtCQl9Cj4gLQo+ IC0JCWlmIChhcmdzLT5EUjEgfHwgYXJncy0+RFI0IHx8IGFyZ3MtPmNsaXByZWN0c19wdHIpIHsK PiAtCQkJRFJNX0RFQlVHKCIwIGNsaXByZWN0cyBidXQgZGlydCBpbiBjbGlwcmVjdHMgZmllbGRz XG4iKTsKPiAtCQkJcmV0dXJuIC1FSU5WQUw7Cj4gLQkJfQo+IC0JfQo+IC0KPiAgIAlpZiAoYXJn cy0+ZmxhZ3MgJiBJOTE1X0VYRUNfR0VON19TT0xfUkVTRVQpIHsKPiAgIAkJRFJNX0RFQlVHKCJz b2wgcmVzZXQgaXMgZ2VuNyBvbmx5XG4iKTsKPiAgIAkJcmV0dXJuIC1FSU5WQUw7Cj4KCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==