From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 073/190] drm/i915: Introduce i915_gem_active for request tracking Date: Mon, 11 Jan 2016 17:32:27 +0000 Message-ID: <5693E72B.7080304@linux.intel.com> References: <1452503961-14837-1-git-send-email-chris@chris-wilson.co.uk> <1452503961-14837-73-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 B18206E231 for ; Mon, 11 Jan 2016 09:32:29 -0800 (PST) In-Reply-To: <1452503961-14837-73-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 Ck9uIDExLzAxLzE2IDA5OjE3LCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4gSW4gdGhlIG5leHQgcGF0 Y2gsIHJlcXVlc3QgdHJhY2tpbmcgaXMgbWFkZSBtb3JlIGdlbmVyaWMgYW5kIGZvciB0aGF0IHdl Cj4gbmVlZCBhIG5ldyBleHBhbmRlZCBzdHJ1Y3QgYW5kIHRvIHNlcGFyYXRlIG91dCB0aGUgbG9n aWMgY2hhbmdlcyBmcm9tCj4gdGhlIG1lY2hhbmljYWwgY2h1cm4sIHdlIHNwbGl0IG91dCB0aGUg c3RydWN0dXJlIHJlbmFtaW5nIGludG8gdGhpcwo+IHBhdGNoLgo+Cj4gdjI6IFdyaXRlcidzIGJs b2NrLiBBZGQgc29tZSBzcGllbCBhYm91dCB3aHkgd2UgdHJhY2sgcmVxdWVzdHMuCj4gdjM6IE5v dyBpOTE1X2dlbV9hY3RpdmUuCj4KPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlz QGNocmlzLXdpbHNvbi5jby51az4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZGVidWdmcy5jICAgICAgICB8IDEwICsrKy0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaCAgICAgICAgICAgIHwgIDkgKysrLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtLmMgICAgICAgICAgICB8IDU2ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQo+ ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIHwgIDQgKy0tCj4g ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9mZW5jZS5jICAgICAgfCAgNiArKy0tCj4g ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmggICAgfCAzOCArKysrKysr KysrKysrKysrKysrKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdGlsaW5nLmMg ICAgIHwgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgICAg ICB8ICA2ICsrLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICAg ICB8IDEwICsrKy0tLQo+ICAgOSBmaWxlcyBjaGFuZ2VkLCA4OSBpbnNlcnRpb25zKCspLCA1MiBk ZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rl YnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gaW5kZXggOGRl OTQ0ZWQzMzY5Li42NWNiMWQ2YTVkNjQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kZWJ1Z2ZzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVn ZnMuYwo+IEBAIC0xNDYsMTAgKzE0NiwxMCBAQCBkZXNjcmliZV9vYmooc3RydWN0IHNlcV9maWxl ICptLCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+ICAgCQkgICBvYmotPmJhc2Uu d3JpdGVfZG9tYWluKTsKPiAgIAlmb3JfZWFjaF9yaW5nKHJpbmcsIGRldl9wcml2LCBpKQo+ICAg CQlzZXFfcHJpbnRmKG0sICIleCAiLAo+IC0JCQkJaTkxNV9nZW1fcmVxdWVzdF9nZXRfc2Vxbm8o b2JqLT5sYXN0X3JlYWRfcmVxW2ldKSk7Cj4gKwkJCQlpOTE1X2dlbV9yZXF1ZXN0X2dldF9zZXFu byhvYmotPmxhc3RfcmVhZFtpXS5yZXF1ZXN0KSk7Cj4gICAJc2VxX3ByaW50ZihtLCAiXSAleCAl eCVzJXMlcyIsCj4gLQkJICAgaTkxNV9nZW1fcmVxdWVzdF9nZXRfc2Vxbm8ob2JqLT5sYXN0X3dy aXRlX3JlcSksCj4gLQkJICAgaTkxNV9nZW1fcmVxdWVzdF9nZXRfc2Vxbm8ob2JqLT5sYXN0X2Zl bmNlZF9yZXEpLAo+ICsJCSAgIGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3NlcW5vKG9iai0+bGFzdF93 cml0ZS5yZXF1ZXN0KSwKPiArCQkgICBpOTE1X2dlbV9yZXF1ZXN0X2dldF9zZXFubyhvYmotPmxh c3RfZmVuY2UucmVxdWVzdCksCj4gICAJCSAgIGk5MTVfY2FjaGVfbGV2ZWxfc3RyKHRvX2k5MTUo b2JqLT5iYXNlLmRldiksIG9iai0+Y2FjaGVfbGV2ZWwpLAo+ICAgCQkgICBvYmotPmRpcnR5ID8g IiBkaXJ0eSIgOiAiIiwKPiAgIAkJICAgb2JqLT5tYWR2ID09IEk5MTVfTUFEVl9ET05UTkVFRCA/ ICIgcHVyZ2VhYmxlIiA6ICIiKTsKPiBAQCAtMTg0LDggKzE4NCw4IEBAIGRlc2NyaWJlX29iaihz dHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4gICAJ CSp0ID0gJ1wwJzsKPiAgIAkJc2VxX3ByaW50ZihtLCAiICglcyBtYXBwYWJsZSkiLCBzKTsKPiAg IAl9Cj4gLQlpZiAob2JqLT5sYXN0X3dyaXRlX3JlcSAhPSBOVUxMKQo+IC0JCXNlcV9wcmludGYo bSwgIiAoJXMpIiwgb2JqLT5sYXN0X3dyaXRlX3JlcS0+ZW5naW5lLT5uYW1lKTsKPiArCWlmIChv YmotPmxhc3Rfd3JpdGUucmVxdWVzdCAhPSBOVUxMKQo+ICsJCXNlcV9wcmludGYobSwgIiAoJXMp Iiwgb2JqLT5sYXN0X3dyaXRlLnJlcXVlc3QtPmVuZ2luZS0+bmFtZSk7Cj4gICAJaWYgKG9iai0+ ZnJvbnRidWZmZXJfYml0cykKPiAgIAkJc2VxX3ByaW50ZihtLCAiIChmcm9udGJ1ZmZlcjogMHgl MDN4KSIsIG9iai0+ZnJvbnRidWZmZXJfYml0cyk7Cj4gICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCj4gaW5kZXggY2FlNDQ4ZTIzOGNhLi5jNTc3Zjg2ZDk0ZjggMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKPiBAQCAtMjExMCwxMSArMjExMCwxMCBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCB7Cj4gICAJICogcmVxdWVzdHMgb24gb25lIHJpbmcgd2hlcmUgdGhlIHdyaXRlIHJl cXVlc3QgaXMgb2xkZXIgdGhhbiB0aGUKPiAgIAkgKiByZWFkIHJlcXVlc3QuIFRoaXMgYWxsb3dz IGZvciB0aGUgQ1BVIHRvIHJlYWQgZnJvbSBhbiBhY3RpdmUKPiAgIAkgKiBidWZmZXIgYnkgb25s eSB3YWl0aW5nIGZvciB0aGUgd3JpdGUgdG8gY29tcGxldGUuCj4gLQkgKiAqLwo+IC0Jc3RydWN0 IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpsYXN0X3JlYWRfcmVxW0k5MTVfTlVNX1JJTkdTXTsKPiAt CXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqbGFzdF93cml0ZV9yZXE7Cj4gLQkvKiogQnJl YWRjcnVtYiBvZiBsYXN0IGZlbmNlZCBHUFUgYWNjZXNzIHRvIHRoZSBidWZmZXIuICovCj4gLQlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKmxhc3RfZmVuY2VkX3JlcTsKPiArCSAqLwo+ICsJ c3RydWN0IGk5MTVfZ2VtX2FjdGl2ZSBsYXN0X3JlYWRbSTkxNV9OVU1fUklOR1NdOwo+ICsJc3Ry dWN0IGk5MTVfZ2VtX2FjdGl2ZSBsYXN0X3dyaXRlOwo+ICsJc3RydWN0IGk5MTVfZ2VtX2FjdGl2 ZSBsYXN0X2ZlbmNlOwo+Cj4gICAJLyoqIEN1cnJlbnQgdGlsaW5nIHN0cmlkZSBmb3IgdGhlIG9i amVjdCwgaWYgaXQncyB0aWxlZC4gKi8KPiAgIAl1aW50MzJfdCBzdHJpZGU7Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jCj4gaW5kZXggYjAyMzBlNzE1MWNlLi43N2MyNTNkZGYwNjAgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBAQCAtMTExNywyMyArMTExNywyMyBAQCBpOTE1X2dlbV9v YmplY3Rfd2FpdF9yZW5kZXJpbmcoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAg IAkJcmV0dXJuIDA7Cj4KPiAgIAlpZiAocmVhZG9ubHkpIHsKPiAtCQlpZiAob2JqLT5sYXN0X3dy aXRlX3JlcSAhPSBOVUxMKSB7Cj4gLQkJCXJldCA9IGk5MTVfd2FpdF9yZXF1ZXN0KG9iai0+bGFz dF93cml0ZV9yZXEpOwo+ICsJCWlmIChvYmotPmxhc3Rfd3JpdGUucmVxdWVzdCAhPSBOVUxMKSB7 Cj4gKwkJCXJldCA9IGk5MTVfd2FpdF9yZXF1ZXN0KG9iai0+bGFzdF93cml0ZS5yZXF1ZXN0KTsK PiAgIAkJCWlmIChyZXQpCj4gICAJCQkJcmV0dXJuIHJldDsKPgo+IC0JCQlpID0gb2JqLT5sYXN0 X3dyaXRlX3JlcS0+ZW5naW5lLT5pZDsKPiAtCQkJaWYgKG9iai0+bGFzdF9yZWFkX3JlcVtpXSA9 PSBvYmotPmxhc3Rfd3JpdGVfcmVxKQo+ICsJCQlpID0gb2JqLT5sYXN0X3dyaXRlLnJlcXVlc3Qt PmVuZ2luZS0+aWQ7Cj4gKwkJCWlmIChvYmotPmxhc3RfcmVhZFtpXS5yZXF1ZXN0ID09IG9iai0+ bGFzdF93cml0ZS5yZXF1ZXN0KQo+ICAgCQkJCWk5MTVfZ2VtX29iamVjdF9yZXRpcmVfX3JlYWQo b2JqLCBpKTsKPiAgIAkJCWVsc2UKPiAgIAkJCQlpOTE1X2dlbV9vYmplY3RfcmV0aXJlX193cml0 ZShvYmopOwo+ICAgCQl9Cj4gICAJfSBlbHNlIHsKPiAgIAkJZm9yIChpID0gMDsgaSA8IEk5MTVf TlVNX1JJTkdTOyBpKyspIHsKPiAtCQkJaWYgKG9iai0+bGFzdF9yZWFkX3JlcVtpXSA9PSBOVUxM KQo+ICsJCQlpZiAob2JqLT5sYXN0X3JlYWRbaV0ucmVxdWVzdCA9PSBOVUxMKQo+ICAgCQkJCWNv bnRpbnVlOwo+Cj4gLQkJCXJldCA9IGk5MTVfd2FpdF9yZXF1ZXN0KG9iai0+bGFzdF9yZWFkX3Jl cVtpXSk7Cj4gKwkJCXJldCA9IGk5MTVfd2FpdF9yZXF1ZXN0KG9iai0+bGFzdF9yZWFkW2ldLnJl cXVlc3QpOwo+ICAgCQkJaWYgKHJldCkKPiAgIAkJCQlyZXR1cm4gcmV0Owo+Cj4gQEAgLTExNTEs OSArMTE1MSw5IEBAIGk5MTVfZ2VtX29iamVjdF9yZXRpcmVfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAgewo+ICAgCWludCByaW5nID0gcmVxLT5lbmdpbmUtPmlk Owo+Cj4gLQlpZiAob2JqLT5sYXN0X3JlYWRfcmVxW3JpbmddID09IHJlcSkKPiArCWlmIChvYmot Pmxhc3RfcmVhZFtyaW5nXS5yZXF1ZXN0ID09IHJlcSkKPiAgIAkJaTkxNV9nZW1fb2JqZWN0X3Jl dGlyZV9fcmVhZChvYmosIHJpbmcpOwo+IC0JZWxzZSBpZiAob2JqLT5sYXN0X3dyaXRlX3JlcSA9 PSByZXEpCj4gKwllbHNlIGlmIChvYmotPmxhc3Rfd3JpdGUucmVxdWVzdCA9PSByZXEpCj4gICAJ CWk5MTVfZ2VtX29iamVjdF9yZXRpcmVfX3dyaXRlKG9iaik7Cj4KPiAgIAlpOTE1X2dlbV9yZXF1 ZXN0X3JldGlyZV91cHRvKHJlcSk7Cj4gQEAgLTExODEsNyArMTE4MSw3IEBAIGk5MTVfZ2VtX29i amVjdF93YWl0X3JlbmRlcmluZ19fbm9uYmxvY2tpbmcoc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaiwKPiAgIAlpZiAocmVhZG9ubHkpIHsKPiAgIAkJc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpyZXE7Cj4KPiAtCQlyZXEgPSBvYmotPmxhc3Rfd3JpdGVfcmVxOwo+ICsJCXJlcSA9 IG9iai0+bGFzdF93cml0ZS5yZXF1ZXN0Owo+ICAgCQlpZiAocmVxID09IE5VTEwpCj4gICAJCQly ZXR1cm4gMDsKPgo+IEBAIC0xMTkwLDcgKzExOTAsNyBAQCBpOTE1X2dlbV9vYmplY3Rfd2FpdF9y ZW5kZXJpbmdfX25vbmJsb2NraW5nKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4g ICAJCWZvciAoaSA9IDA7IGkgPCBJOTE1X05VTV9SSU5HUzsgaSsrKSB7Cj4gICAJCQlzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsKPgo+IC0JCQlyZXEgPSBvYmotPmxhc3RfcmVhZF9y ZXFbaV07Cj4gKwkJCXJlcSA9IG9iai0+bGFzdF9yZWFkW2ldLnJlcXVlc3Q7Cj4gICAJCQlpZiAo cmVxID09IE5VTEwpCj4gICAJCQkJY29udGludWU7Cj4KPiBAQCAtMjA3MCw3ICsyMDcwLDcgQEAg dm9pZCBpOTE1X3ZtYV9tb3ZlX3RvX2FjdGl2ZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKPiAgIAlv YmotPmFjdGl2ZSB8PSBpbnRlbF9lbmdpbmVfZmxhZyhlbmdpbmUpOwo+Cj4gICAJbGlzdF9tb3Zl X3RhaWwoJm9iai0+cmluZ19saXN0W2VuZ2luZS0+aWRdLCAmZW5naW5lLT5hY3RpdmVfbGlzdCk7 Cj4gLQlpOTE1X2dlbV9yZXF1ZXN0X2Fzc2lnbigmb2JqLT5sYXN0X3JlYWRfcmVxW2VuZ2luZS0+ aWRdLCByZXEpOwo+ICsJaTkxNV9nZW1fcmVxdWVzdF9tYXJrX2FjdGl2ZShyZXEsICZvYmotPmxh c3RfcmVhZFtlbmdpbmUtPmlkXSk7Cj4KPiAgIAlsaXN0X21vdmVfdGFpbCgmdm1hLT5tbV9saXN0 LCAmdm1hLT52bS0+YWN0aXZlX2xpc3QpOwo+ICAgfQo+IEBAIC0yMDc4LDEwICsyMDc4LDEwIEBA IHZvaWQgaTkxNV92bWFfbW92ZV90b19hY3RpdmUoc3RydWN0IGk5MTVfdm1hICp2bWEsCj4gICBz dGF0aWMgdm9pZAo+ICAgaTkxNV9nZW1fb2JqZWN0X3JldGlyZV9fd3JpdGUoc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaikKPiAgIHsKPiAtCUdFTV9CVUdfT04ob2JqLT5sYXN0X3dyaXRl X3JlcSA9PSBOVUxMKTsKPiAtCUdFTV9CVUdfT04oIShvYmotPmFjdGl2ZSAmIGludGVsX2VuZ2lu ZV9mbGFnKG9iai0+bGFzdF93cml0ZV9yZXEtPmVuZ2luZSkpKTsKPiArCUdFTV9CVUdfT04ob2Jq LT5sYXN0X3dyaXRlLnJlcXVlc3QgPT0gTlVMTCk7Cj4gKwlHRU1fQlVHX09OKCEob2JqLT5hY3Rp dmUgJiBpbnRlbF9lbmdpbmVfZmxhZyhvYmotPmxhc3Rfd3JpdGUucmVxdWVzdC0+ZW5naW5lKSkp Owo+Cj4gLQlpOTE1X2dlbV9yZXF1ZXN0X2Fzc2lnbigmb2JqLT5sYXN0X3dyaXRlX3JlcSwgTlVM TCk7Cj4gKwlpOTE1X2dlbV9yZXF1ZXN0X2Fzc2lnbigmb2JqLT5sYXN0X3dyaXRlLnJlcXVlc3Qs IE5VTEwpOwo+ICAgCWludGVsX2ZiX29ial9mbHVzaChvYmosIHRydWUsIE9SSUdJTl9DUyk7Cj4g ICB9Cj4KPiBAQCAtMjA5MCwxMyArMjA5MCwxMyBAQCBpOTE1X2dlbV9vYmplY3RfcmV0aXJlX19y ZWFkKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosIGludCByaW5nKQo+ICAgewo+ICAg CXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwo+Cj4gLQlHRU1fQlVHX09OKG9iai0+bGFzdF9yZWFkX3Jl cVtyaW5nXSA9PSBOVUxMKTsKPiArCUdFTV9CVUdfT04ob2JqLT5sYXN0X3JlYWRbcmluZ10ucmVx dWVzdCA9PSBOVUxMKTsKPiAgIAlHRU1fQlVHX09OKCEob2JqLT5hY3RpdmUgJiAoMSA8PCByaW5n KSkpOwo+Cj4gICAJbGlzdF9kZWxfaW5pdCgmb2JqLT5yaW5nX2xpc3RbcmluZ10pOwo+IC0JaTkx NV9nZW1fcmVxdWVzdF9hc3NpZ24oJm9iai0+bGFzdF9yZWFkX3JlcVtyaW5nXSwgTlVMTCk7Cj4g KwlpOTE1X2dlbV9yZXF1ZXN0X2Fzc2lnbigmb2JqLT5sYXN0X3JlYWRbcmluZ10ucmVxdWVzdCwg TlVMTCk7Cj4KPiAtCWlmIChvYmotPmxhc3Rfd3JpdGVfcmVxICYmIG9iai0+bGFzdF93cml0ZV9y ZXEtPmVuZ2luZS0+aWQgPT0gcmluZykKPiArCWlmIChvYmotPmxhc3Rfd3JpdGUucmVxdWVzdCAm JiBvYmotPmxhc3Rfd3JpdGUucmVxdWVzdC0+ZW5naW5lLT5pZCA9PSByaW5nKQo+ICAgCQlpOTE1 X2dlbV9vYmplY3RfcmV0aXJlX193cml0ZShvYmopOwo+Cj4gICAJb2JqLT5hY3RpdmUgJj0gfigx IDw8IHJpbmcpOwo+IEBAIC0yMTE1LDcgKzIxMTUsNyBAQCBpOTE1X2dlbV9vYmplY3RfcmV0aXJl X19yZWFkKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosIGludCByaW5nKQo+ICAgCQkJ bGlzdF9tb3ZlX3RhaWwoJnZtYS0+bW1fbGlzdCwgJnZtYS0+dm0tPmluYWN0aXZlX2xpc3QpOwo+ ICAgCX0KPgo+IC0JaTkxNV9nZW1fcmVxdWVzdF9hc3NpZ24oJm9iai0+bGFzdF9mZW5jZWRfcmVx LCBOVUxMKTsKPiArCWk5MTVfZ2VtX3JlcXVlc3RfYXNzaWduKCZvYmotPmxhc3RfZmVuY2UucmVx dWVzdCwgTlVMTCk7Cj4gICAJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJm9iai0+YmFzZSk7 Cj4gICB9Cj4KPiBAQCAtMjMzNiw3ICsyMzM2LDcgQEAgaTkxNV9nZW1fcmV0aXJlX3JlcXVlc3Rz X3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiAgIAkJCQkgICAgICBzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCwKPiAgIAkJCQkgICAgICByaW5nX2xpc3RbcmluZy0+aWRdKTsK Pgo+IC0JCWlmICghbGlzdF9lbXB0eSgmb2JqLT5sYXN0X3JlYWRfcmVxW3JpbmctPmlkXS0+bGlz dCkpCj4gKwkJaWYgKCFsaXN0X2VtcHR5KCZvYmotPmxhc3RfcmVhZFtyaW5nLT5pZF0ucmVxdWVz dC0+bGlzdCkpCj4gICAJCQlicmVhazsKPgo+ICAgCQlpOTE1X2dlbV9vYmplY3RfcmV0aXJlX19y ZWFkKG9iaiwgcmluZy0+aWQpOwo+IEBAIC0yNDQ1LDcgKzI0NDUsNyBAQCBpOTE1X2dlbV9vYmpl Y3RfZmx1c2hfYWN0aXZlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4gICAJZm9y IChpID0gMDsgaSA8IEk5MTVfTlVNX1JJTkdTOyBpKyspIHsKPiAgIAkJc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXE7Cj4KPiAtCQlyZXEgPSBvYmotPmxhc3RfcmVhZF9yZXFbaV07Cj4g KwkJcmVxID0gb2JqLT5sYXN0X3JlYWRbaV0ucmVxdWVzdDsKPiAgIAkJaWYgKHJlcSA9PSBOVUxM KQo+ICAgCQkJY29udGludWU7Cj4KPiBAQCAtMjUyNSwxMCArMjUyNSwxMCBAQCBpOTE1X2dlbV93 YWl0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1f ZmlsZSAqZmlsZSkKPiAgIAlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgmb2JqLT5iYXNlKTsK Pgo+ICAgCWZvciAoaSA9IDA7IGkgPCBJOTE1X05VTV9SSU5HUzsgaSsrKSB7Cj4gLQkJaWYgKG9i ai0+bGFzdF9yZWFkX3JlcVtpXSA9PSBOVUxMKQo+ICsJCWlmIChvYmotPmxhc3RfcmVhZFtpXS5y ZXF1ZXN0ID09IE5VTEwpCj4gICAJCQljb250aW51ZTsKPgo+IC0JCXJlcVtuKytdID0gaTkxNV9n ZW1fcmVxdWVzdF9nZXQob2JqLT5sYXN0X3JlYWRfcmVxW2ldKTsKPiArCQlyZXFbbisrXSA9IGk5 MTVfZ2VtX3JlcXVlc3RfZ2V0KG9iai0+bGFzdF9yZWFkW2ldLnJlcXVlc3QpOwo+ICAgCX0KPgo+ ICAgCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+IEBAIC0yNjE5LDEyICsyNjE5 LDEyIEBAIGk5MTVfZ2VtX29iamVjdF9zeW5jKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmosCj4KPiAgIAluID0gMDsKPiAgIAlpZiAocmVhZG9ubHkpIHsKPiAtCQlpZiAob2JqLT5sYXN0 X3dyaXRlX3JlcSkKPiAtCQkJcmVxW24rK10gPSBvYmotPmxhc3Rfd3JpdGVfcmVxOwo+ICsJCWlm IChvYmotPmxhc3Rfd3JpdGUucmVxdWVzdCkKPiArCQkJcmVxW24rK10gPSBvYmotPmxhc3Rfd3Jp dGUucmVxdWVzdDsKPiAgIAl9IGVsc2Ugewo+ICAgCQlmb3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1f UklOR1M7IGkrKykKPiAtCQkJaWYgKG9iai0+bGFzdF9yZWFkX3JlcVtpXSkKPiAtCQkJCXJlcVtu KytdID0gb2JqLT5sYXN0X3JlYWRfcmVxW2ldOwo+ICsJCQlpZiAob2JqLT5sYXN0X3JlYWRbaV0u cmVxdWVzdCkKPiArCQkJCXJlcVtuKytdID0gb2JqLT5sYXN0X3JlYWRbaV0ucmVxdWVzdDsKPiAg IAl9Cj4gICAJZm9yIChpID0gMDsgaSA8IG47IGkrKykgewo+ICAgCQlyZXQgPSBfX2k5MTVfZ2Vt X29iamVjdF9zeW5jKG9iaiwgdG8sIHJlcVtpXSk7Cj4gQEAgLTM2OTUsOCArMzY5NSw4IEBAIGk5 MTVfZ2VtX2J1c3lfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPgo+ ICAgCUJVSUxEX0JVR19PTihJOTE1X05VTV9SSU5HUyA+IDE2KTsKPiAgIAlhcmdzLT5idXN5ID0g b2JqLT5hY3RpdmUgPDwgMTY7Cj4gLQlpZiAob2JqLT5sYXN0X3dyaXRlX3JlcSkKPiAtCQlhcmdz LT5idXN5IHw9IG9iai0+bGFzdF93cml0ZV9yZXEtPmVuZ2luZS0+aWQ7Cj4gKwlpZiAob2JqLT5s YXN0X3dyaXRlLnJlcXVlc3QpCj4gKwkJYXJncy0+YnVzeSB8PSBvYmotPmxhc3Rfd3JpdGUucmVx dWVzdC0+ZW5naW5lLT5pZDsKPgo+ICAgdW5yZWY6Cj4gICAJZHJtX2dlbV9vYmplY3RfdW5yZWZl cmVuY2UoJm9iai0+YmFzZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2V4ZWNidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNi dWZmZXIuYwo+IGluZGV4IDZkZWUyNzIyNGRkYi4uNTZkNmI1ZGJiMTIxIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwo+IEBAIC0xMTI1LDcgKzExMjUs NyBAQCBpOTE1X2dlbV9leGVjYnVmZmVyX21vdmVfdG9fYWN0aXZlKHN0cnVjdCBsaXN0X2hlYWQg KnZtYXMsCj4KPiAgIAkJaTkxNV92bWFfbW92ZV90b19hY3RpdmUodm1hLCByZXEpOwo+ICAgCQlp ZiAob2JqLT5iYXNlLndyaXRlX2RvbWFpbikgewo+IC0JCQlpOTE1X2dlbV9yZXF1ZXN0X2Fzc2ln bigmb2JqLT5sYXN0X3dyaXRlX3JlcSwgcmVxKTsKPiArCQkJaTkxNV9nZW1fcmVxdWVzdF9tYXJr X2FjdGl2ZShyZXEsICZvYmotPmxhc3Rfd3JpdGUpOwo+Cj4gICAJCQlpbnRlbF9mYl9vYmpfaW52 YWxpZGF0ZShvYmosIE9SSUdJTl9DUyk7Cj4KPiBAQCAtMTEzMyw3ICsxMTMzLDcgQEAgaTkxNV9n ZW1fZXhlY2J1ZmZlcl9tb3ZlX3RvX2FjdGl2ZShzdHJ1Y3QgbGlzdF9oZWFkICp2bWFzLAo+ICAg CQkJb2JqLT5iYXNlLndyaXRlX2RvbWFpbiAmPSB+STkxNV9HRU1fR1BVX0RPTUFJTlM7Cj4gICAJ CX0KPiAgIAkJaWYgKGVudHJ5LT5mbGFncyAmIEVYRUNfT0JKRUNUX05FRURTX0ZFTkNFKSB7Cj4g LQkJCWk5MTVfZ2VtX3JlcXVlc3RfYXNzaWduKCZvYmotPmxhc3RfZmVuY2VkX3JlcSwgcmVxKTsK PiArCQkJaTkxNV9nZW1fcmVxdWVzdF9tYXJrX2FjdGl2ZShyZXEsICZvYmotPmxhc3RfZmVuY2Up Owo+ICAgCQkJaWYgKGVudHJ5LT5mbGFncyAmIF9fRVhFQ19PQkpFQ1RfSEFTX0ZFTkNFKSB7Cj4g ICAJCQkJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gcmVxLT5pOTE1Owo+ICAg CQkJCWxpc3RfbW92ZV90YWlsKCZkZXZfcHJpdi0+ZmVuY2VfcmVnc1tvYmotPmZlbmNlX3JlZ10u bHJ1X2xpc3QsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2Zl bmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9mZW5jZS5jCj4gaW5kZXggNTk4 MTk4NTQzZGNkLi5hYjI5YzIzN2ZmYTkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZmVuY2UuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2ZlbmNlLmMKPiBAQCAtMjYxLDEyICsyNjEsMTIgQEAgc3RhdGljIGlubGluZSB2b2lkIGk5MTVf Z2VtX29iamVjdF9mZW5jZV9sb3N0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4g ICBzdGF0aWMgaW50Cj4gICBpOTE1X2dlbV9vYmplY3Rfd2FpdF9mZW5jZShzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqKQo+ICAgewo+IC0JaWYgKG9iai0+bGFzdF9mZW5jZWRfcmVxKSB7 Cj4gLQkJaW50IHJldCA9IGk5MTVfd2FpdF9yZXF1ZXN0KG9iai0+bGFzdF9mZW5jZWRfcmVxKTsK PiArCWlmIChvYmotPmxhc3RfZmVuY2UucmVxdWVzdCkgewo+ICsJCWludCByZXQgPSBpOTE1X3dh aXRfcmVxdWVzdChvYmotPmxhc3RfZmVuY2UucmVxdWVzdCk7Cj4gICAJCWlmIChyZXQpCj4gICAJ CQlyZXR1cm4gcmV0Owo+Cj4gLQkJaTkxNV9nZW1fcmVxdWVzdF9hc3NpZ24oJm9iai0+bGFzdF9m ZW5jZWRfcmVxLCBOVUxMKTsKPiArCQlpOTE1X2dlbV9yZXF1ZXN0X2Fzc2lnbigmb2JqLT5sYXN0 X2ZlbmNlLnJlcXVlc3QsIE5VTEwpOwo+ICAgCX0KPgo+ICAgCXJldHVybiAwOwo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmgKPiBpbmRleCAyZGE5ZTBiNWRmYzcuLjBhMjE5 ODZjMzMyYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1 ZXN0LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmgKPiBA QCAtMjA4LDQgKzIwOCw0MiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaTkxNV9nZW1fcmVxdWVzdF9j b21wbGV0ZWQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gICAJCQkJIHJlcS0+ ZmVuY2Uuc2Vxbm8pOwo+ICAgfQo+Cj4gKy8qIFdlIHRyZWF0IHJlcXVlc3RzIGFzIGZlbmNlcy4g VGhpcyBpcyBub3QgYmUgdG8gY29uZnVzZWQgd2l0aCBvdXIKPiArICogImZlbmNlIHJlZ2lzdGVy cyIgYnV0IHBpcGVsaW5lIHN5bmNocm9uaXNhdGlvbiBvYmplY3RzIGFsYSBHTF9BUkJfc3luYy4K PiArICogV2UgdXNlIHRoZSBmZW5jZXMgdG8gc3luY2hyb25pemUgYWNjZXNzIGZyb20gdGhlIENQ VSB3aXRoIGFjdGl2aXR5IG9uIHRoZQo+ICsgKiBHUFUsIGZvciBleGFtcGxlLCB3ZSBzaG91bGQg bm90IHJld3JpdGUgYW4gb2JqZWN0J3MgUFRFIHdoaWxzdCB0aGUgR1BVCj4gKyAqIGlzIHJlYWRp bmcgdGhlbS4gV2UgYWxzbyB0cmFjayBmZW5jZXMgYXQgYSBoaWdoZXIgbGV2ZWwgdG8gcHJvdmlk ZQo+ICsgKiBpbXBsaWNpdCBzeW5jaHJvbmlzYXRpb24gYXJvdW5kIEdFTSBvYmplY3RzLCBlLmcu IHNldC1kb21haW4gd2lsbCB3YWl0Cj4gKyAqIGZvciBvdXRzdGFuZGluZyBHUFUgcmVuZGVyaW5n IGJlZm9yZSBtYXJraW5nIHRoZSBvYmplY3QgcmVhZHkgZm9yIENQVQo+ICsgKiBhY2Nlc3MsIG9y IGEgcGFnZWZsaXAgd2lsbCB3YWl0IHVudGlsIHRoZSBHUFUgaXMgY29tcGxldGUgYmVmb3JlIHNo b3dpbmcKPiArICogdGhlIGZyYW1lIG9uIHRoZSBzY2Fub3V0Lgo+ICsgKgo+ICsgKiBJbiBvcmRl ciB0byB1c2UgYSBmZW5jZSwgdGhlIG9iamVjdCBtdXN0IHRyYWNrIHRoZSBmZW5jZSBpdCBuZWVk cyB0bwo+ICsgKiBzZXJpYWxpc2Ugd2l0aC4gRm9yIGV4YW1wbGUsIEdFTSBvYmplY3RzIHdhbnQg dG8gdHJhY2sgYm90aCByZWFkIGFuZAo+ICsgKiB3cml0ZSBhY2Nlc3Mgc28gdGhhdCB3ZSBjYW4g cGVyZm9ybSBjb25jdXJyZW50IHJlYWQgb3BlcmF0aW9ucyBiZXR3ZWVuCj4gKyAqIHRoZSBDUFUg YW5kIEdQVSBlbmdpbmVzLCBhcyB3ZWxsIGFzIHdhaXRpbmcgZm9yIGFsbCByZW5kZXJpbmcgdG8K PiArICogY29tcGxldGUsIG9yIHdhaXRpbmcgZm9yIHRoZSBsYXN0IEdQVSB1c2VyIG9mIGEgImZl bmNlIHJlZ2lzdGVyIi4gVGhlCj4gKyAqIG9iamVjdCB0aGVuIGVtYmVkcyBhIEBpOTE1X2dlbV9h Y3RpdmUgdG8gdHJhY2sgdGhlIG1vc3QgcmVjZW50IChpbgo+ICsgKiByZXRpcm1lbnQgb3JkZXIp IHJlcXVlc3QgcmVsZXZhbnQgZm9yIHRoZSBkZXNpcmVkIG1vZGUgb2YgYWNjZXNzLgo+ICsgKiBU aGUgQGk5MTVfZ2VtX2FjdGl2ZSBpcyB1cGRhdGVkIHdpdGggaTkxNV9nZW1fcmVxdWVzdF9tYXJr X2FjdGl2ZSgpIHRvCj4gKyAqIHRyYWNrIHRoZSBtb3N0IHJlY2VudCBmZW5jZSByZXF1ZXN0LCB0 eXBpY2FsbHkgdGhpcyBpcyBkb25lIGFzIHBhcnQgb2YKPiArICogaTkxNV92bWFfbW92ZV90b19h Y3RpdmUoKS4KPiArICoKPiArICogV2hlbiB0aGUgQGk5MTVfZ2VtX2FjdGl2ZSBjb21wbGV0ZXMg KGlzIHJldGlyZWQpLCBpdCB3aWxsCj4gKyAqIHNpZ25hbCBpdHMgY29tcGxldGlvbiB0byB0aGUg b3duZXIgdGhyb3VnaCBhIGNhbGxiYWNrIGFzIHdlbGwgYXMgbWFyawo+ICsgKiBpdHNlbGYgYXMg aWRsZSAoaTkxNV9nZW1fYWN0aXZlLnJlcXVlc3QgPT0gTlVMTCkuIFRoZSBvd25lcgo+ICsgKiBj YW4gdGhlbiBwZXJmb3JtIGFueSBhY3Rpb24sIHN1Y2ggYXMgZGVsYXllZCBmcmVlaW5nIG9mIGFu IGFjdGl2ZQo+ICsgKiByZXNvdXJjZSBpbmNsdWRpbmcgaXRzZWxmLgo+ICsgKi8KPiArc3RydWN0 IGk5MTVfZ2VtX2FjdGl2ZSB7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVl c3Q7Cj4gK307Cj4gKwo+ICtzdGF0aWMgaW5saW5lIHZvaWQKPiAraTkxNV9nZW1fcmVxdWVzdF9t YXJrX2FjdGl2ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QsCj4gKwkJCSAg ICAgc3RydWN0IGk5MTVfZ2VtX2FjdGl2ZSAqYWN0aXZlKQo+ICt7Cj4gKwlpOTE1X2dlbV9yZXF1 ZXN0X2Fzc2lnbigmYWN0aXZlLT5yZXF1ZXN0LCByZXF1ZXN0KTsKPiArfQoKVGhpcyBmdW5jdGlv biBuYW1lIGJvdGhlcnMgbWUgc2luY2UgSSB0aGluayB0aGUgbmFtZSBpcyBtaXNsZWFkaW5nIGFu ZCAKdW5pbnR1aXRpdmUuIEl0IGlzIG5vdCBtYXJraW5nIGEgcmVxdWVzdCBhcyBhY3RpdmUgYnV0 IGFzc29jaWF0aW5nIGl0IAp3aXRoIHRoZSBzZWNvbmQgZGF0YSBzdHJ1Y3R1cmUuCgpNYXliZSBp OTE1X2dlbV9yZXF1ZXN0X21vdmVfdG9fYWN0aXZlIHRvIGtlZXAgdGhlIG1lbnRhbCBhc3NvY2lh dGlvbiAKd2l0aCB0aGUgd2VsbCBlc3RhYmxpc2hlZCB2bWFfbW92ZV90b19hY3RpdmUgPwoKTWF5 YmUgc3RydWN0IGk5MTVfZ2VtX2FjdGl2ZSBjb3VsZCBhbHNvIGJlIGJldHRlciBjYWxsZWQgCmk5 MTVfZ2VtX2FjdGl2ZV9saXN0ID8KCkl0IGlzIG5vdCBpZGVhbCBiZWNhdXNlIG9mIHRoZSBmdXR1 cmUgbGl0dGxlIHJldmVyc2FsIG9mIHdobyBpcyBpbiB3aG8ncyAKbGlzdCwgc28gbWF5YmUgdGhl cmUgaXMgc29tZXRoaW5nIGV2ZW4gYmV0dGVyLiBCdXQgSSB0aGluayBhbiBpbnR1aXRpdmUgCm5h bWUgaXMgcmVhbGx5IGltcG9ydGFudCBmb3IgY29kZSBjbGFyaXR5IGFuZCBtYWludGFpbmFiaWxp dHkuCgpSZWdhcmRzLAoKVHZydGtvCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==