From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [CI 4/6] drm/i915: Always use the GTT for error capture Date: Thu, 13 Oct 2016 17:02:50 +0200 Message-ID: <20161013150250.GG20761@phenom.ffwll.local> References: <20161012090522.367-1-chris@chris-wilson.co.uk> <20161012090522.367-4-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-lf0-x242.google.com (mail-lf0-x242.google.com [IPv6:2a00:1450:4010:c07::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 707626EACC for ; Thu, 13 Oct 2016 15:02:55 +0000 (UTC) Received: by mail-lf0-x242.google.com with SMTP id x79so13151435lff.2 for ; Thu, 13 Oct 2016 08:02:55 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20161012090522.367-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 Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBPY3QgMTIsIDIwMTYgYXQgMTA6MDU6MjBBTSArMDEwMCwgQ2hyaXMgV2lsc29uIHdy b3RlOgo+IFNpbmNlIHRoZSBHVFQgcHJvdmlkZXMgdW5pdmVyc2FsIGFjY2VzcyB0byBhbnkgR1BV IHBhZ2UsIHdlIGNhbiB1c2UgaXQKPiB0byByZWR1Y2Ugb3VyIHBsZXRob3JhIG9mIHJlYWQgbWV0 aG9kcyB0byBqdXN0IG9uZS4gSXQgYWxzbyBoYXMgdGhlCj4gaW1wb3J0YW50IGNoYXJhY3Rlcmlz dGljIG9mIGJlaW5nIGV4YWN0bHkgd2hhdCB0aGUgR1BVIHNlZXMgLSBpZiB0aGVyZQo+IGFyZSBp bmNvaGVyZW5jeSBwcm9ibGVtcywgc2VlaW5nIHRoZSBiYXRjaCBhcyBleGVjdXRlZCAocmF0aGVy IHRoYW4gYXMKPiB0cmFwcGVkIGluc2lkZSB0aGUgY3B1IGNhY2hlKSBpcyBpbXBvcnRhbnQuCj4g Cj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+ Cj4gUmV2aWV3ZWQtYnk6IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4Lmlu dGVsLmNvbT4KCk1laCwgc28gbXVjaCBmb3IgbWUgcmVhZGluZyBwYXRjaGVzIGluIG9yZGVyIDst KQoKUGxlYXNlIHJlb3JkZXIgdGhpcyBvbmUgYmVmb3JlIHRoZSBwcmV2aW91cyBvbmUgYW5kIEkn bGwgYmUgaGFwcHkgdG9vLgoKPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f Z3R0LmMgICB8ICA0MyArKysrKysrKy0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZ3R0LmggICB8ICAgMiArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9y LmMgfCAxMjAgKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAzIGZpbGVzIGNo YW5nZWQsIDc0IGluc2VydGlvbnMoKyksIDkxIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2d0dC5jCj4gaW5kZXggMGJiNDIzMmY2NmJjLi4yZDg0NmFhMzljYTUgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+IEBAIC0yNzE3LDYgKzI3MTcsNyBA QCBpbnQgaTkxNV9nZW1faW5pdF9nZ3R0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKPiAgCSAqLwo+ICAJc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9ICZkZXZfcHJpdi0+Z2d0dDsK PiAgCXVuc2lnbmVkIGxvbmcgaG9sZV9zdGFydCwgaG9sZV9lbmQ7Cj4gKwlzdHJ1Y3QgaTkxNV9o d19wcGd0dCAqcHBndHQ7Cj4gIAlzdHJ1Y3QgZHJtX21tX25vZGUgKmVudHJ5Owo+ICAJaW50IHJl dDsKPiAgCj4gQEAgLTI3MjQsNiArMjcyNSwxNSBAQCBpbnQgaTkxNV9nZW1faW5pdF9nZ3R0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCWlmIChyZXQpCj4gIAkJcmV0dXJu IHJldDsKPiAgCj4gKwkvKiBSZXNlcnZlIGEgbWFwcGFibGUgc2xvdCBmb3Igb3VyIGxvY2tsZXNz IGVycm9yIGNhcHR1cmUgKi8KPiArCXJldCA9IGRybV9tbV9pbnNlcnRfbm9kZV9pbl9yYW5nZV9n ZW5lcmljKCZnZ3R0LT5iYXNlLm1tLAo+ICsJCQkJCQkgICZnZ3R0LT5lcnJvcl9jYXB0dXJlLAo+ ICsJCQkJCQkgIDQwOTYsIDAsIC0xLAo+ICsJCQkJCQkgIDAsIGdndHQtPm1hcHBhYmxlX2VuZCwK PiArCQkJCQkJICAwLCAwKTsKPiArCWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gIAkv KiBDbGVhciBhbnkgbm9uLXByZWFsbG9jYXRlZCBibG9ja3MgKi8KPiAgCWRybV9tbV9mb3JfZWFj aF9ob2xlKGVudHJ5LCAmZ2d0dC0+YmFzZS5tbSwgaG9sZV9zdGFydCwgaG9sZV9lbmQpIHsKPiAg CQlEUk1fREVCVUdfS01TKCJjbGVhcmluZyB1bnVzZWQgR1RUIHNwYWNlOiBbJWx4LCAlbHhdXG4i LAo+IEBAIC0yNzM4LDI1ICsyNzQ4LDIxIEBAIGludCBpOTE1X2dlbV9pbml0X2dndHQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJCQkgICAgICAgdHJ1ZSk7Cj4gIAo+ICAJ aWYgKFVTRVNfUFBHVFQoZGV2X3ByaXYpICYmICFVU0VTX0ZVTExfUFBHVFQoZGV2X3ByaXYpKSB7 Cj4gLQkJc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0Owo+IC0KPiAgCQlwcGd0dCA9IGt6YWxs b2Moc2l6ZW9mKCpwcGd0dCksIEdGUF9LRVJORUwpOwo+IC0JCWlmICghcHBndHQpCj4gLQkJCXJl dHVybiAtRU5PTUVNOwo+ICsJCWlmICghcHBndHQpIHsKPiArCQkJcmV0ID0gLUVOT01FTTsKPiAr CQkJZ290byBlcnI7Cj4gKwkJfQo+ICAKPiAgCQlyZXQgPSBfX2h3X3BwZ3R0X2luaXQocHBndHQs IGRldl9wcml2KTsKPiAtCQlpZiAocmV0KSB7Cj4gLQkJCWtmcmVlKHBwZ3R0KTsKPiAtCQkJcmV0 dXJuIHJldDsKPiAtCQl9Cj4gKwkJaWYgKHJldCkKPiArCQkJZ290byBlcnJfcHBndHQ7Cj4gIAo+ IC0JCWlmIChwcGd0dC0+YmFzZS5hbGxvY2F0ZV92YV9yYW5nZSkKPiArCQlpZiAocHBndHQtPmJh c2UuYWxsb2NhdGVfdmFfcmFuZ2UpIHsKPiAgCQkJcmV0ID0gcHBndHQtPmJhc2UuYWxsb2NhdGVf dmFfcmFuZ2UoJnBwZ3R0LT5iYXNlLCAwLAo+ICAJCQkJCQkJICAgIHBwZ3R0LT5iYXNlLnRvdGFs KTsKPiAtCQlpZiAocmV0KSB7Cj4gLQkJCXBwZ3R0LT5iYXNlLmNsZWFudXAoJnBwZ3R0LT5iYXNl KTsKPiAtCQkJa2ZyZWUocHBndHQpOwo+IC0JCQlyZXR1cm4gcmV0Owo+ICsJCQlpZiAocmV0KQo+ ICsJCQkJZ290byBlcnJfcHBndHRfY2xlYW51cDsKPiAgCQl9Cj4gIAo+ICAJCXBwZ3R0LT5iYXNl LmNsZWFyX3JhbmdlKCZwcGd0dC0+YmFzZSwKPiBAQCAtMjc3MCw2ICsyNzc2LDE0IEBAIGludCBp OTE1X2dlbV9pbml0X2dndHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJ fQo+ICAKPiAgCXJldHVybiAwOwo+ICsKPiArZXJyX3BwZ3R0X2NsZWFudXA6Cj4gKwlwcGd0dC0+ YmFzZS5jbGVhbnVwKCZwcGd0dC0+YmFzZSk7Cj4gK2Vycl9wcGd0dDoKPiArCWtmcmVlKHBwZ3R0 KTsKPiArZXJyOgo+ICsJZHJtX21tX3JlbW92ZV9ub2RlKCZnZ3R0LT5lcnJvcl9jYXB0dXJlKTsK PiArCXJldHVybiByZXQ7Cj4gIH0KPiAgCj4gIC8qKgo+IEBAIC0yNzg4LDYgKzI4MDIsOSBAQCB2 b2lkIGk5MTVfZ2d0dF9jbGVhbnVwX2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKPiAgCj4gIAlpOTE1X2dlbV9jbGVhbnVwX3N0b2xlbigmZGV2X3ByaXYtPmRybSk7Cj4gIAo+ ICsJaWYgKGRybV9tbV9ub2RlX2FsbG9jYXRlZCgmZ2d0dC0+ZXJyb3JfY2FwdHVyZSkpCj4gKwkJ ZHJtX21tX3JlbW92ZV9ub2RlKCZnZ3R0LT5lcnJvcl9jYXB0dXJlKTsKPiArCj4gIAlpZiAoZHJt X21tX2luaXRpYWxpemVkKCZnZ3R0LT5iYXNlLm1tKSkgewo+ICAJCWludGVsX3ZndF9kZWJhbGxv b24oZGV2X3ByaXYpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZ3R0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAo+IGluZGV4 IGVjNzhiZTJmOGM3Ny4uYmQ5M2ZiOGY5OWQyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2d0dC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZ3R0LmgKPiBAQCAtNDUwLDYgKzQ1MCw4IEBAIHN0cnVjdCBpOTE1X2dndHQgewo+ICAJYm9v bCBkb19pZGxlX21hcHM7Cj4gIAo+ICAJaW50IG10cnI7Cj4gKwo+ICsJc3RydWN0IGRybV9tbV9u b2RlIGVycm9yX2NhcHR1cmU7Cj4gIH07Cj4gIAo+ICBzdHJ1Y3QgaTkxNV9od19wcGd0dCB7Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCj4gaW5kZXggMTU5ZDZkN2UwY2VlLi5i M2IyZTZjMWM2YzYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVf ZXJyb3IuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKPiBA QCAtNjU2LDcgKzY1Niw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZXJyb3Jfb2JqZWN0X2ZyZWUoc3Ry dWN0IGRybV9pOTE1X2Vycm9yX29iamVjdCAqb2JqKQo+ICAJCXJldHVybjsKPiAgCj4gIAlmb3Ig KHBhZ2UgPSAwOyBwYWdlIDwgb2JqLT5wYWdlX2NvdW50OyBwYWdlKyspCj4gLQkJa2ZyZWUob2Jq LT5wYWdlc1twYWdlXSk7Cj4gKwkJZnJlZV9wYWdlKCh1bnNpZ25lZCBsb25nKW9iai0+cGFnZXNb cGFnZV0pOwo+ICAKPiAgCWtmcmVlKG9iaik7Cj4gIH0KPiBAQCAtNjkzLDk4ICs2OTMsNjkgQEAg c3RhdGljIHZvaWQgaTkxNV9lcnJvcl9zdGF0ZV9mcmVlKHN0cnVjdCBrcmVmICplcnJvcl9yZWYp Cj4gIAlrZnJlZShlcnJvcik7Cj4gIH0KPiAgCj4gK3N0YXRpYyBpbnQgY29tcHJlc3NfcGFnZSh2 b2lkICpzcmMsIHN0cnVjdCBkcm1faTkxNV9lcnJvcl9vYmplY3QgKmRzdCkKCkp1bXBpbmcgYWhl YWQgYSBiaXQgd2l0aCB0aGUgbmFtZSwgYnV0IGltbyBvayAuLi4KCj4gK3sKPiArCXVuc2lnbmVk IGxvbmcgcGFnZTsKPiArCj4gKwlwYWdlID0gX19nZXRfZnJlZV9wYWdlKEdGUF9BVE9NSUMgfCBf X0dGUF9OT1dBUk4pOwo+ICsJaWYgKCFwYWdlKQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsKPiAr CWRzdC0+cGFnZXNbZHN0LT5wYWdlX2NvdW50KytdID0gKHZvaWQgKilwYWdlOwo+ICsKPiArCW1l bWNweSgodm9pZCAqKXBhZ2UsIHNyYywgUEFHRV9TSVpFKTsKPiArCXJldHVybiAwOwo+ICt9Cj4g Kwo+ICBzdGF0aWMgc3RydWN0IGRybV9pOTE1X2Vycm9yX29iamVjdCAqCj4gLWk5MTVfZXJyb3Jf b2JqZWN0X2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gK2k5MTVf ZXJyb3Jfb2JqZWN0X2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPiAgCQkJ IHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQo+ICB7Cj4gLQlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0g JmRldl9wcml2LT5nZ3R0Owo+IC0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKnNyYzsKPiAr CXN0cnVjdCBpOTE1X2dndHQgKmdndHQgPSAmaTkxNS0+Z2d0dDsKPiArCWNvbnN0IHU2NCBzbG90 ID0gZ2d0dC0+ZXJyb3JfY2FwdHVyZS5zdGFydDsKPiAgCXN0cnVjdCBkcm1faTkxNV9lcnJvcl9v YmplY3QgKmRzdDsKPiAtCWludCBudW1fcGFnZXM7Cj4gLQlib29sIHVzZV9nZ3R0Owo+IC0JaW50 IGkgPSAwOwo+IC0JdTY0IHJlbG9jX29mZnNldDsKPiArCXVuc2lnbmVkIGxvbmcgbnVtX3BhZ2Vz Owo+ICsJc3RydWN0IHNndF9pdGVyIGl0ZXI7Cj4gKwlkbWFfYWRkcl90IGRtYTsKPiAgCj4gIAlp ZiAoIXZtYSkKPiAgCQlyZXR1cm4gTlVMTDsKPiAgCj4gLQlzcmMgPSB2bWEtPm9iajsKPiAtCWlm ICghc3JjLT5wYWdlcykKPiAtCQlyZXR1cm4gTlVMTDsKPiAtCj4gLQludW1fcGFnZXMgPSBzcmMt PmJhc2Uuc2l6ZSA+PiBQQUdFX1NISUZUOwo+IC0KPiAtCWRzdCA9IGttYWxsb2Moc2l6ZW9mKCpk c3QpICsgbnVtX3BhZ2VzICogc2l6ZW9mKHUzMiAqKSwgR0ZQX0FUT01JQyk7Cj4gKwludW1fcGFn ZXMgPSBtaW5fdCh1NjQsIHZtYS0+c2l6ZSwgdm1hLT5vYmotPmJhc2Uuc2l6ZSkgPj4gUEFHRV9T SElGVDsKPiArCWRzdCA9IGttYWxsb2Moc2l6ZW9mKCpkc3QpICsgbnVtX3BhZ2VzICogc2l6ZW9m KHUzMiAqKSwKPiArCQkgICAgICBHRlBfQVRPTUlDIHwgX19HRlBfTk9XQVJOKTsKPiAgCWlmICgh ZHN0KQo+ICAJCXJldHVybiBOVUxMOwo+ICAKPiAgCWRzdC0+Z3R0X29mZnNldCA9IHZtYS0+bm9k ZS5zdGFydDsKPiAgCWRzdC0+Z3R0X3NpemUgPSB2bWEtPm5vZGUuc2l6ZTsKPiArCWRzdC0+cGFn ZV9jb3VudCA9IDA7Cj4gIAo+IC0JcmVsb2Nfb2Zmc2V0ID0gZHN0LT5ndHRfb2Zmc2V0Owo+IC0J dXNlX2dndHQgPSAoc3JjLT5jYWNoZV9sZXZlbCA9PSBJOTE1X0NBQ0hFX05PTkUgJiYKPiAtCQkg ICAodm1hLT5mbGFncyAmIEk5MTVfVk1BX0dMT0JBTF9CSU5EKSAmJgo+IC0JCSAgIHJlbG9jX29m ZnNldCArIG51bV9wYWdlcyAqIFBBR0VfU0laRSA8PSBnZ3R0LT5tYXBwYWJsZV9lbmQpOwo+IC0K PiAtCS8qIENhbm5vdCBhY2Nlc3Mgc3RvbGVuIGFkZHJlc3MgZGlyZWN0bHksIHRyeSB0byB1c2Ug dGhlIGFwZXJ0dXJlICovCj4gLQlpZiAoc3JjLT5zdG9sZW4pIHsKPiAtCQl1c2VfZ2d0dCA9IHRy dWU7Cj4gLQo+IC0JCWlmICghKHZtYS0+ZmxhZ3MgJiBJOTE1X1ZNQV9HTE9CQUxfQklORCkpCj4g LQkJCWdvdG8gdW53aW5kOwo+IC0KPiAtCQlyZWxvY19vZmZzZXQgPSB2bWEtPm5vZGUuc3RhcnQ7 Cj4gLQkJaWYgKHJlbG9jX29mZnNldCArIG51bV9wYWdlcyAqIFBBR0VfU0laRSA+IGdndHQtPm1h cHBhYmxlX2VuZCkKPiAtCQkJZ290byB1bndpbmQ7Cj4gLQl9Cj4gKwlmb3JfZWFjaF9zZ3RfZG1h KGRtYSwgaXRlciwgdm1hLT5wYWdlcykgewo+ICsJCXZvaWQgX19pb21lbSAqczsKPiArCQlpbnQg cmV0Owo+ICAKPiAtCS8qIENhbm5vdCBhY2Nlc3Mgc25vb3BlZCBwYWdlcyB0aHJvdWdoIHRoZSBh cGVydHVyZSAqLwo+IC0JaWYgKHVzZV9nZ3R0ICYmIHNyYy0+Y2FjaGVfbGV2ZWwgIT0gSTkxNV9D QUNIRV9OT05FICYmCj4gLQkgICAgIUhBU19MTEMoZGV2X3ByaXYpKQo+IC0JCWdvdG8gdW53aW5k Owo+ICsJCWdndHQtPmJhc2UuaW5zZXJ0X3BhZ2UoJmdndHQtPmJhc2UsIGRtYSwgc2xvdCwKPiAr CQkJCSAgICAgICBJOTE1X0NBQ0hFX05PTkUsIDApOwo+ICAKPiAtCWRzdC0+cGFnZV9jb3VudCA9 IG51bV9wYWdlczsKPiAtCXdoaWxlIChudW1fcGFnZXMtLSkgewo+IC0JCXZvaWQgKmQ7Cj4gKwkJ cyA9IGlvX21hcHBpbmdfbWFwX2F0b21pY193YygmZ2d0dC0+bWFwcGFibGUsIHNsb3QpOwo+ICsJ CXJldCA9IGNvbXByZXNzX3BhZ2UoKHZvaWQgKiBfX2ZvcmNlKXMsIGRzdCk7Cj4gKwkJaW9fbWFw cGluZ191bm1hcF9hdG9taWMocyk7Cj4gIAo+IC0JCWQgPSBrbWFsbG9jKFBBR0VfU0laRSwgR0ZQ X0FUT01JQyk7Cj4gLQkJaWYgKGQgPT0gTlVMTCkKPiArCQlpZiAocmV0KQo+ICAJCQlnb3RvIHVu d2luZDsKPiAtCj4gLQkJaWYgKHVzZV9nZ3R0KSB7Cj4gLQkJCXZvaWQgX19pb21lbSAqczsKPiAt Cj4gLQkJCS8qIFNpbXBseSBpZ25vcmUgdGlsaW5nIG9yIGFueSBvdmVybGFwcGluZyBmZW5jZS4K PiAtCQkJICogSXQncyBwYXJ0IG9mIHRoZSBlcnJvciBzdGF0ZSwgYW5kIHRoaXMgaG9wZWZ1bGx5 Cj4gLQkJCSAqIGNhcHR1cmVzIHdoYXQgdGhlIEdQVSByZWFkLgo+IC0JCQkgKi8KPiAtCj4gLQkJ CXMgPSBpb19tYXBwaW5nX21hcF9hdG9taWNfd2MoJmdndHQtPm1hcHBhYmxlLAo+IC0JCQkJCQkg ICAgIHJlbG9jX29mZnNldCk7Cj4gLQkJCW1lbWNweV9mcm9taW8oZCwgcywgUEFHRV9TSVpFKTsK PiAtCQkJaW9fbWFwcGluZ191bm1hcF9hdG9taWMocyk7Cj4gLQkJfSBlbHNlIHsKPiAtCQkJc3Ry dWN0IHBhZ2UgKnBhZ2U7Cj4gLQkJCXZvaWQgKnM7Cj4gLQo+IC0JCQlwYWdlID0gaTkxNV9nZW1f b2JqZWN0X2dldF9wYWdlKHNyYywgaSk7Cj4gLQo+IC0JCQlzID0ga21hcF9hdG9taWMocGFnZSk7 Cj4gLQkJCW1lbWNweShkLCBzLCBQQUdFX1NJWkUpOwo+IC0JCQlrdW5tYXBfYXRvbWljKHMpOwo+ IC0JCX0KPiAtCj4gLQkJZHN0LT5wYWdlc1tpKytdID0gZDsKPiAtCQlyZWxvY19vZmZzZXQgKz0g UEFHRV9TSVpFOwo+ICAJfQo+IC0KPiAtCXJldHVybiBkc3Q7Cj4gKwlnb3RvIG91dDsKPiAgCj4g IHVud2luZDoKPiAtCXdoaWxlIChpLS0pCj4gLQkJa2ZyZWUoZHN0LT5wYWdlc1tpXSk7Cj4gKwl3 aGlsZSAoZHN0LT5wYWdlX2NvdW50LS0pCj4gKwkJZnJlZV9wYWdlKCh1bnNpZ25lZCBsb25nKWRz dC0+cGFnZXNbZHN0LT5wYWdlX2NvdW50XSk7Cj4gIAlrZnJlZShkc3QpOwo+IC0JcmV0dXJuIE5V TEw7Cj4gKwlkc3QgPSBOVUxMOwo+ICsKPiArb3V0Ogo+ICsJZ2d0dC0+YmFzZS5jbGVhcl9yYW5n ZSgmZ2d0dC0+YmFzZSwgc2xvdCwgUEFHRV9TSVpFLCB0cnVlKTsKPiArCXJldHVybiBkc3Q7Cj4g IH0KPiAgCj4gIC8qIFRoZSBlcnJvciBjYXB0dXJlIGlzIHNwZWNpYWwgYXMgdHJpZXMgdG8gcnVu IHVuZGVybmVhdGggdGhlIG5vcm1hbAo+IEBAIC0xNDQ1LDkgKzE0MTYsNiBAQCBzdGF0aWMgaW50 IGNhcHR1cmUodm9pZCAqZGF0YSkKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRl ICplcnJvciA9IGRhdGE7Cj4gIAo+IC0JLyogRW5zdXJlIHRoYXQgd2hhdCB3ZSByZWFkYmFjayBm cm9tIG1lbW9yeSBtYXRjaGVzIHdoYXQgdGhlIEdQVSBzZWVzICovCj4gLQl3YmludmQoKTsKPiAt Cj4gIAlpOTE1X2NhcHR1cmVfZ2VuX3N0YXRlKGVycm9yLT5pOTE1LCBlcnJvcik7Cj4gIAlpOTE1 X2NhcHR1cmVfcmVnX3N0YXRlKGVycm9yLT5pOTE1LCBlcnJvcik7Cj4gIAlpOTE1X2dlbV9yZWNv cmRfZmVuY2VzKGVycm9yLT5pOTE1LCBlcnJvcik7Cj4gQEAgLTE0NjAsOSArMTQyOCw2IEBAIHN0 YXRpYyBpbnQgY2FwdHVyZSh2b2lkICpkYXRhKQo+ICAJZXJyb3ItPm92ZXJsYXkgPSBpbnRlbF9v dmVybGF5X2NhcHR1cmVfZXJyb3Jfc3RhdGUoZXJyb3ItPmk5MTUpOwo+ICAJZXJyb3ItPmRpc3Bs YXkgPSBpbnRlbF9kaXNwbGF5X2NhcHR1cmVfZXJyb3Jfc3RhdGUoZXJyb3ItPmk5MTUpOwo+ICAK PiAtCS8qIEFuZCBtYWtlIHN1cmUgd2UgZG9uJ3QgbGVhdmUgdHJhc2ggaW4gdGhlIENQVSBjYWNo ZSAqLwo+IC0Jd2JpbnZkKCk7Cj4gLQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gQEAgLTE1Mzks NyArMTUwNCw2IEBAIHZvaWQgaTkxNV9lcnJvcl9zdGF0ZV9nZXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKPiAgCWlmIChlcnJvcl9wcml2LT5lcnJvcikKPiAgCQlrcmVmX2dldCgmZXJyb3JfcHJp di0+ZXJyb3ItPnJlZik7Cj4gIAlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5ncHVfZXJyb3Iu bG9jayk7Cj4gLQo+ICB9CgpSZXZpZXdlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRl ckBmZndsbC5jaD4KLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENv cnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=