From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v2] drm/i915: Make for_each_engine_masked work on intel_gt Date: Thu, 17 Oct 2019 11:33:08 +0100 Message-ID: References: <20191017094500.21831-1-tvrtko.ursulin@linux.intel.com> <20191017095710.4272-1-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 C5A7289D67 for ; Thu, 17 Oct 2019 10:33:17 +0000 (UTC) In-Reply-To: <20191017095710.4272-1-chris@chris-wilson.co.uk> Content-Language: en-US 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 Ck5vdyB5b3UncmUgbWFraW5nIG1lIGxvb2tzIHNpbGx5IGFuZCByZXBseSB0byBteXNlbGYuIDop KQoKT24gMTcvMTAvMjAxOSAxMDo1NywgQ2hyaXMgV2lsc29uIHdyb3RlOgo+IEZyb206IFR2cnRr byBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4gCj4gTWVkaXVtIHRlcm0gZ29h bCBpcyB0byBlbGltaW5hdGUgdGhlIGk5MTUtPmVuZ2luZVtdIGFycmF5IGFuZCB0byBnZXQgdGhl cmUKPiB3ZSBoYXZlIHJlY2VudGx5IGludHJvZHVjZWQgZXF1aXZhbGVudCBhcnJheSBpbiBpbnRl bF9ndC4gTm93IHdlIG5lZWQgdG8KPiBtaWdyYXRlIHRoZSBjb2RlIGZ1cnRoZXIgdG93YXJkcyB0 aGlzIHN0YXRlLgo+IAo+IFRoaXMgbmV4dCBzdGVwIGlzIHRvIGVsaW1pbmF0ZSB1c2FnZSBvZiBp OTE1LT5lbmdpbmVzW10gZnJvbSB0aGUKPiBmb3JfZWFjaF9lbmdpbmVfbWFza2VkIGl0ZXJhdG9y Lgo+IAo+IEZvciB0aGlzIHRvIHdvcmsgd2UgYWxzbyBuZWVkIHRvIHVzZSBlbmdpbmUtPmlkIGFz IGluZGV4IHdoZW4gcG9wdWxhdGluZwo+IHRoZSBndC0+ZW5naW5lW10gYXJyYXkgYW5kIGFkanVz dCB0aGUgZGVmYXVsdCBlbmdpbmUgc2V0IGluZGV4aW5nIHRvIHVzZQo+IGVuZ2luZS0+bGVnYWN5 X2lkeCBpbnN0ZWFkIG9mIGFzc3VtaW5nIGd0LT5lbmdpbmVzW10gaW5kZXhpbmcuCj4gCj4gdjI6 Cj4gICAgKiBQb3B1bGF0ZSBndC0+ZW5naW5lW10gZWFybGllci4KPiAgICAqIENoZWNrIHRoYXQg d2UgZG9uJ3QgZHVwbGljYXRlIGVuZ2luZS0+bGVnYWN5X2lkeAo+IAo+IFNpZ25lZC1vZmYtYnk6 IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4gQ2M6IENocmlzIFdp bHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJt L2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQuYyAgfCAxMyArKysrKysrKysrLS0tCj4gICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYyAgICB8ICA0ICsrKysKPiAgIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV90eXBlcy5oIHwgIDEgKwo+ICAgZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3VzZXIuYyAgfCAxNCArKystLS0tLS0t LS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3QuYyAgICAgICAgICAgfCAg MiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfaGFuZ2NoZWNrLmMgICAgfCAg MiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuYyAgICAgICAgfCAx MiArKysrKystLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9leGVjbGlzdC5jICAg ICAgICAgIHwgIDQgKystLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L3NjaGVkdWxlci5j ICAgICAgICAgfCAgMiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9hY3RpdmUuYyAg ICAgICAgICAgfCAgNCArKy0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAg ICAgICAgICAgICB8ICA2ICsrKy0tLQo+ICAgMTEgZmlsZXMgY2hhbmdlZCwgMzQgaW5zZXJ0aW9u cygrKSwgMzAgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkx NV9nZW1fY29udGV4dC5jCj4gaW5kZXggNWQ4MjIxYzdiYTgzLi41ZTFkODlhNTcyMWIgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0LmMKPiBAQCAtMjAz LDE1ICsyMDMsMjIgQEAgc3RhdGljIHN0cnVjdCBpOTE1X2dlbV9lbmdpbmVzICpkZWZhdWx0X2Vu Z2luZXMoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCkKPiAgIAlmb3JfZWFjaF9lbmdpbmUo ZW5naW5lLCBndCwgaWQpIHsKPiAgIAkJc3RydWN0IGludGVsX2NvbnRleHQgKmNlOwo+ICAgCj4g KwkJaWYgKGVuZ2luZS0+bGVnYWN5X2lkeCA9PSBJTlZBTElEX0VOR0lORSkKPiArCQkJY29udGlu dWU7Cj4gKwo+ICsJCUdFTV9CVUdfT04oZW5naW5lLT5sZWdhY3lfaWR4ID4gSTkxNV9OVU1fRU5H SU5FUyk7CgogPj0gPwoKPiArCQlHRU1fQlVHX09OKGUtPmVuZ2luZXNbZW5naW5lLT5sZWdhY3lf aWR4XSk7Cj4gKwo+ICAgCQljZSA9IGludGVsX2NvbnRleHRfY3JlYXRlKGN0eCwgZW5naW5lKTsK PiAgIAkJaWYgKElTX0VSUihjZSkpIHsKPiAtCQkJX19mcmVlX2VuZ2luZXMoZSwgaWQpOwo+ICsJ CQlfX2ZyZWVfZW5naW5lcyhlLCBlLT5udW1fZW5naW5lcyArIDEpOwo+ICAgCQkJcmV0dXJuIEVS Ul9DQVNUKGNlKTsKPiAgIAkJfQo+ICAgCj4gLQkJZS0+ZW5naW5lc1tpZF0gPSBjZTsKPiAtCQll LT5udW1fZW5naW5lcyA9IGlkICsgMTsKPiArCQllLT5lbmdpbmVzW2VuZ2luZS0+bGVnYWN5X2lk eF0gPSBjZTsKPiArCQllLT5udW1fZW5naW5lcyA9IG1heChlLT5udW1fZW5naW5lcywgZW5naW5l LT5sZWdhY3lfaWR4KTsKPiAgIAl9Cj4gKwllLT5udW1fZW5naW5lcysrOwo+ICAgCj4gICAJcmV0 dXJuIGU7Cj4gICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVs X2VuZ2luZV9jcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX2NzLmMK PiBpbmRleCA1MDUxYTFmZDI1NjUuLjRkY2RiOTA5YjYyZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L2ludGVsX2VuZ2luZV9jcy5jCj4gQEAgLTI3Nyw2ICsyNzcsOSBAQCBzdGF0aWMg aW50IGludGVsX2VuZ2luZV9zZXR1cChzdHJ1Y3QgaW50ZWxfZ3QgKmd0LCBlbnVtIGludGVsX2Vu Z2luZV9pZCBpZCkKPiAgIAlCVUlMRF9CVUdfT04oTUFYX0VOR0lORV9DTEFTUyA+PSBCSVQoR0VO MTFfRU5HSU5FX0NMQVNTX1dJRFRIKSk7Cj4gICAJQlVJTERfQlVHX09OKE1BWF9FTkdJTkVfSU5T VEFOQ0UgPj0gQklUKEdFTjExX0VOR0lORV9JTlNUQU5DRV9XSURUSCkpOwo+ICAgCj4gKwlpZiAo R0VNX0RFQlVHX1dBUk5fT04oaWQgPj0gQVJSQVlfU0laRShndC0+ZW5naW5lKSkpCj4gKwkJcmV0 dXJuIC1FSU5WQUw7Cj4gKwo+ICAgCWlmIChHRU1fREVCVUdfV0FSTl9PTihpbmZvLT5jbGFzcyA+ IE1BWF9FTkdJTkVfQ0xBU1MpKQo+ICAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgIAo+IEBAIC0zMjgs NiArMzMxLDcgQEAgc3RhdGljIGludCBpbnRlbF9lbmdpbmVfc2V0dXAoc3RydWN0IGludGVsX2d0 ICpndCwgZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQpCj4gICAJaW50ZWxfZW5naW5lX3Nhbml0aXpl X21taW8oZW5naW5lKTsKPiAgIAo+ICAgCWd0LT5lbmdpbmVfY2xhc3NbaW5mby0+Y2xhc3NdW2lu Zm8tPmluc3RhbmNlXSA9IGVuZ2luZTsKPiArCWd0LT5lbmdpbmVbaWRdID0gZW5naW5lOwo+ICAg Cj4gICAJaW50ZWxfZW5naW5lX2FkZF91c2VyKGVuZ2luZSk7Cj4gICAJZ3QtPmk5MTUtPmVuZ2lu ZVtpZF0gPSBlbmdpbmU7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2lu dGVsX2VuZ2luZV90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5l X3R5cGVzLmgKPiBpbmRleCA2MTk5MDY0ZjMzMmIuLjM0NTFiZTAzNGNhZiAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfdHlwZXMuaAo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV90eXBlcy5oCj4gQEAgLTE0OCw2ICsx NDgsNyBAQCBlbnVtIGludGVsX2VuZ2luZV9pZCB7Cj4gICAJVkVDUzEsCj4gICAjZGVmaW5lIF9W RUNTKG4pIChWRUNTMCArIChuKSkKPiAgIAlJOTE1X05VTV9FTkdJTkVTCj4gKyNkZWZpbmUgSU5W QUxJRF9FTkdJTkUgKChlbnVtIGludGVsX2VuZ2luZV9pZCktMSkKPiAgIH07Cj4gICAKPiAgIHN0 cnVjdCBzdF9wcmVlbXB0X2hhbmcgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9pbnRlbF9lbmdpbmVfdXNlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxf ZW5naW5lX3VzZXIuYwo+IGluZGV4IDc3Y2Q1ZGU4MzkzMC4uMWUyOGJmZWFiNTE5IDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV91c2VyLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfdXNlci5jCj4gQEAgLTE3MSwy MyArMTcxLDE1IEBAIHN0YXRpYyBpbnQgbGVnYWN5X3JpbmdfaWR4KGNvbnN0IHN0cnVjdCBsZWdh Y3lfcmluZyAqcmluZykKPiAgIHN0YXRpYyB2b2lkIGFkZF9sZWdhY3lfcmluZyhzdHJ1Y3QgbGVn YWN5X3JpbmcgKnJpbmcsCj4gICAJCQkgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l KQo+ICAgewo+IC0JaW50IGlkeDsKPiAtCj4gICAJaWYgKGVuZ2luZS0+Z3QgIT0gcmluZy0+Z3Qg fHwgZW5naW5lLT5jbGFzcyAhPSByaW5nLT5jbGFzcykgewo+ICAgCQlyaW5nLT5ndCA9IGVuZ2lu ZS0+Z3Q7Cj4gICAJCXJpbmctPmNsYXNzID0gZW5naW5lLT5jbGFzczsKPiAgIAkJcmluZy0+aW5z dGFuY2UgPSAwOwo+ICAgCX0KPiAgIAo+IC0JaWR4ID0gbGVnYWN5X3JpbmdfaWR4KHJpbmcpOwo+ IC0JaWYgKHVubGlrZWx5KGlkeCA9PSAtMSkpCj4gLQkJcmV0dXJuOwo+IC0KPiAtCUdFTV9CVUdf T04oaWR4ID49IEFSUkFZX1NJWkUocmluZy0+Z3QtPmVuZ2luZSkpOwo+IC0JcmluZy0+Z3QtPmVu Z2luZVtpZHhdID0gZW5naW5lOwo+IC0JcmluZy0+aW5zdGFuY2UrKzsKPiAtCj4gLQllbmdpbmUt PmxlZ2FjeV9pZHggPSBpZHg7Cj4gKwllbmdpbmUtPmxlZ2FjeV9pZHggPSBsZWdhY3lfcmluZ19p ZHgocmluZyk7Cj4gKwlpZiAoZW5naW5lLT5sZWdhY3lfaWR4ICE9IElOVkFMSURfRU5HSU5FKQoK Qm9udXMgcG9pbnRzIGlmIGxlZ2FjeV9yaW5nX2lkeCBhY3R1YWxseSB1c2VkIHRoZSBuZXcgSU5W QUxJRF9FTkdJTkUgZGVmaW5lLgoKPiArCQlyaW5nLT5pbnN0YW5jZSsrOwo+ICAgfQo+ICAgCj4g ICB2b2lkIGludGVsX2VuZ2luZXNfZHJpdmVyX3JlZ2lzdGVyKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1KQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9n dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3QuYwo+IGluZGV4IGIzNjE5YTJh NWQwZS4uYzk5YjZiMmYzOGMyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L2ludGVsX2d0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndC5jCj4g QEAgLTE4Niw3ICsxODYsNyBAQCBpbnRlbF9ndF9jbGVhcl9lcnJvcl9yZWdpc3RlcnMoc3RydWN0 IGludGVsX2d0ICpndCwKPiAgIAkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwo+ICAg CQllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKPiAgIAo+IC0JCWZvcl9lYWNoX2VuZ2luZV9tYXNr ZWQoZW5naW5lLCBpOTE1LCBlbmdpbmVfbWFzaywgaWQpCj4gKwkJZm9yX2VhY2hfZW5naW5lX21h c2tlZChlbmdpbmUsIGd0LCBlbmdpbmVfbWFzaywgaWQpCj4gICAJCQlnZW44X2NsZWFyX2VuZ2lu ZV9lcnJvcl9yZWdpc3RlcihlbmdpbmUpOwo+ICAgCX0KPiAgIH0KPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfaGFuZ2NoZWNrLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9pbnRlbF9oYW5nY2hlY2suYwo+IGluZGV4IGMxNGRiZWIzY2NjMy4uYjJhZjczOTg0 ZjkzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2hhbmdjaGVj ay5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfaGFuZ2NoZWNrLmMKPiBA QCAtMjM3LDcgKzIzNyw3IEBAIHN0YXRpYyB2b2lkIGhhbmdjaGVja19kZWNsYXJlX2hhbmcoc3Ry dWN0IGludGVsX2d0ICpndCwKPiAgIAkJaHVuZyAmPSB+c3R1Y2s7Cj4gICAJbGVuID0gc2NucHJp bnRmKG1zZywgc2l6ZW9mKG1zZyksCj4gICAJCQkiJXMgb24gIiwgc3R1Y2sgPT0gaHVuZyA/ICJu byBwcm9ncmVzcyIgOiAiaGFuZyIpOwo+IC0JZm9yX2VhY2hfZW5naW5lX21hc2tlZChlbmdpbmUs IGd0LT5pOTE1LCBodW5nLCB0bXApCj4gKwlmb3JfZWFjaF9lbmdpbmVfbWFza2VkKGVuZ2luZSwg Z3QsIGh1bmcsIHRtcCkKPiAgIAkJbGVuICs9IHNjbnByaW50Zihtc2cgKyBsZW4sIHNpemVvZiht c2cpIC0gbGVuLAo+ICAgCQkJCSAiJXMsICIsIGVuZ2luZS0+bmFtZSk7Cj4gICAJbXNnW2xlbi0y XSA9ICdcMCc7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jl c2V0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZXNldC5jCj4gaW5kZXggNDc3 YmZhZmRiMTAzLi5iMTkxYjA3NDU3MDMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvaW50ZWxfcmVzZXQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVs X3Jlc2V0LmMKPiBAQCAtMjk4LDcgKzI5OCw3IEBAIHN0YXRpYyBpbnQgZ2VuNl9yZXNldF9lbmdp bmVzKHN0cnVjdCBpbnRlbF9ndCAqZ3QsCj4gICAJCWludGVsX2VuZ2luZV9tYXNrX3QgdG1wOwo+ ICAgCj4gICAJCWh3X21hc2sgPSAwOwo+IC0JCWZvcl9lYWNoX2VuZ2luZV9tYXNrZWQoZW5naW5l LCBndC0+aTkxNSwgZW5naW5lX21hc2ssIHRtcCkgewo+ICsJCWZvcl9lYWNoX2VuZ2luZV9tYXNr ZWQoZW5naW5lLCBndCwgZW5naW5lX21hc2ssIHRtcCkgewo+ICAgCQkJR0VNX0JVR19PTihlbmdp bmUtPmlkID49IEFSUkFZX1NJWkUoaHdfZW5naW5lX21hc2spKTsKPiAgIAkJCWh3X21hc2sgfD0g aHdfZW5naW5lX21hc2tbZW5naW5lLT5pZF07Cj4gICAJCX0KPiBAQCAtNDMyLDcgKzQzMiw3IEBA IHN0YXRpYyBpbnQgZ2VuMTFfcmVzZXRfZW5naW5lcyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0LAo+ICAg CQlod19tYXNrID0gR0VOMTFfR1JET01fRlVMTDsKPiAgIAl9IGVsc2Ugewo+ICAgCQlod19tYXNr ID0gMDsKPiAtCQlmb3JfZWFjaF9lbmdpbmVfbWFza2VkKGVuZ2luZSwgZ3QtPmk5MTUsIGVuZ2lu ZV9tYXNrLCB0bXApIHsKPiArCQlmb3JfZWFjaF9lbmdpbmVfbWFza2VkKGVuZ2luZSwgZ3QsIGVu Z2luZV9tYXNrLCB0bXApIHsKPiAgIAkJCUdFTV9CVUdfT04oZW5naW5lLT5pZCA+PSBBUlJBWV9T SVpFKGh3X2VuZ2luZV9tYXNrKSk7Cj4gICAJCQlod19tYXNrIHw9IGh3X2VuZ2luZV9tYXNrW2Vu Z2luZS0+aWRdOwo+ICAgCQkJcmV0ID0gZ2VuMTFfbG9ja19zZmMoZW5naW5lLCAmaHdfbWFzayk7 Cj4gQEAgLTQ1MSw3ICs0NTEsNyBAQCBzdGF0aWMgaW50IGdlbjExX3Jlc2V0X2VuZ2luZXMoc3Ry dWN0IGludGVsX2d0ICpndCwKPiAgIAkgKiBleHBpcmF0aW9uKS4KPiAgIAkgKi8KPiAgIAlpZiAo ZW5naW5lX21hc2sgIT0gQUxMX0VOR0lORVMpCj4gLQkJZm9yX2VhY2hfZW5naW5lX21hc2tlZChl bmdpbmUsIGd0LT5pOTE1LCBlbmdpbmVfbWFzaywgdG1wKQo+ICsJCWZvcl9lYWNoX2VuZ2luZV9t YXNrZWQoZW5naW5lLCBndCwgZW5naW5lX21hc2ssIHRtcCkKPiAgIAkJCWdlbjExX3VubG9ja19z ZmMoZW5naW5lKTsKPiAgIAo+ICAgCXJldHVybiByZXQ7Cj4gQEAgLTUxMCw3ICs1MTAsNyBAQCBz dGF0aWMgaW50IGdlbjhfcmVzZXRfZW5naW5lcyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0LAo+ICAgCWlu dGVsX2VuZ2luZV9tYXNrX3QgdG1wOwo+ICAgCWludCByZXQ7Cj4gICAKPiAtCWZvcl9lYWNoX2Vu Z2luZV9tYXNrZWQoZW5naW5lLCBndC0+aTkxNSwgZW5naW5lX21hc2ssIHRtcCkgewo+ICsJZm9y X2VhY2hfZW5naW5lX21hc2tlZChlbmdpbmUsIGd0LCBlbmdpbmVfbWFzaywgdG1wKSB7Cj4gICAJ CXJldCA9IGdlbjhfZW5naW5lX3Jlc2V0X3ByZXBhcmUoZW5naW5lKTsKPiAgIAkJaWYgKHJldCAm JiAhcmVzZXRfbm9uX3JlYWR5KQo+ICAgCQkJZ290byBza2lwX3Jlc2V0Owo+IEBAIC01MzYsNyAr NTM2LDcgQEAgc3RhdGljIGludCBnZW44X3Jlc2V0X2VuZ2luZXMoc3RydWN0IGludGVsX2d0ICpn dCwKPiAgIAkJcmV0ID0gZ2VuNl9yZXNldF9lbmdpbmVzKGd0LCBlbmdpbmVfbWFzaywgcmV0cnkp Owo+ICAgCj4gICBza2lwX3Jlc2V0Ogo+IC0JZm9yX2VhY2hfZW5naW5lX21hc2tlZChlbmdpbmUs IGd0LT5pOTE1LCBlbmdpbmVfbWFzaywgdG1wKQo+ICsJZm9yX2VhY2hfZW5naW5lX21hc2tlZChl bmdpbmUsIGd0LCBlbmdpbmVfbWFzaywgdG1wKQo+ICAgCQlnZW44X2VuZ2luZV9yZXNldF9jYW5j ZWwoZW5naW5lKTsKPiAgIAo+ICAgCXJldHVybiByZXQ7Cj4gQEAgLTEyMDYsNyArMTIwNiw3IEBA IHZvaWQgaW50ZWxfZ3RfaGFuZGxlX2Vycm9yKHN0cnVjdCBpbnRlbF9ndCAqZ3QsCj4gICAJICog c2luZ2xlIHJlc2V0IGZhaWxzLgo+ICAgCSAqLwo+ICAgCWlmIChpbnRlbF9oYXNfcmVzZXRfZW5n aW5lKGd0KSAmJiAhaW50ZWxfZ3RfaXNfd2VkZ2VkKGd0KSkgewo+IC0JCWZvcl9lYWNoX2VuZ2lu ZV9tYXNrZWQoZW5naW5lLCBndC0+aTkxNSwgZW5naW5lX21hc2ssIHRtcCkgewo+ICsJCWZvcl9l YWNoX2VuZ2luZV9tYXNrZWQoZW5naW5lLCBndCwgZW5naW5lX21hc2ssIHRtcCkgewo+ICAgCQkJ QlVJTERfQlVHX09OKEk5MTVfUkVTRVRfTU9ERVNFVCA+PSBJOTE1X1JFU0VUX0VOR0lORSk7Cj4g ICAJCQlpZiAodGVzdF9hbmRfc2V0X2JpdChJOTE1X1JFU0VUX0VOR0lORSArIGVuZ2luZS0+aWQs Cj4gICAJCQkJCSAgICAgJmd0LT5yZXNldC5mbGFncykpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d2dC9leGVjbGlzdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2V4 ZWNsaXN0LmMKPiBpbmRleCBmMjFiOGZiNWIzN2UuLmQ2ZTdhMTE4OWJhZCAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZXhlY2xpc3QuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d2dC9leGVjbGlzdC5jCj4gQEAgLTUzNCw3ICs1MzQsNyBAQCBzdGF0aWMgdm9p ZCBjbGVhbl9leGVjbGlzdChzdHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdSwKPiAgIAlzdHJ1Y3QgaW50 ZWxfdmdwdV9zdWJtaXNzaW9uICpzID0gJnZncHUtPnN1Ym1pc3Npb247Cj4gICAJaW50ZWxfZW5n aW5lX21hc2tfdCB0bXA7Cj4gICAKPiAtCWZvcl9lYWNoX2VuZ2luZV9tYXNrZWQoZW5naW5lLCBk ZXZfcHJpdiwgZW5naW5lX21hc2ssIHRtcCkgewo+ICsJZm9yX2VhY2hfZW5naW5lX21hc2tlZChl bmdpbmUsICZkZXZfcHJpdi0+Z3QsIGVuZ2luZV9tYXNrLCB0bXApIHsKPiAgIAkJa2ZyZWUocy0+ cmluZ19zY2FuX2J1ZmZlcltlbmdpbmUtPmlkXSk7Cj4gICAJCXMtPnJpbmdfc2Nhbl9idWZmZXJb ZW5naW5lLT5pZF0gPSBOVUxMOwo+ICAgCQlzLT5yaW5nX3NjYW5fYnVmZmVyX3NpemVbZW5naW5l LT5pZF0gPSAwOwo+IEBAIC01NDgsNyArNTQ4LDcgQEAgc3RhdGljIHZvaWQgcmVzZXRfZXhlY2xp c3Qoc3RydWN0IGludGVsX3ZncHUgKnZncHUsCj4gICAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lOwo+ICAgCWludGVsX2VuZ2luZV9tYXNrX3QgdG1wOwo+ICAgCj4gLQlmb3JfZWFjaF9l bmdpbmVfbWFza2VkKGVuZ2luZSwgZGV2X3ByaXYsIGVuZ2luZV9tYXNrLCB0bXApCj4gKwlmb3Jf ZWFjaF9lbmdpbmVfbWFza2VkKGVuZ2luZSwgJmRldl9wcml2LT5ndCwgZW5naW5lX21hc2ssIHRt cCkKPiAgIAkJaW5pdF92Z3B1X2V4ZWNsaXN0KHZncHUsIGVuZ2luZS0+aWQpOwo+ICAgfQo+ICAg Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9zY2hlZHVsZXIuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9zY2hlZHVsZXIuYwo+IGluZGV4IDY4NTBmMWY0MDI0MS4u OWViYjI1MzQ1NThiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9zY2hl ZHVsZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9zY2hlZHVsZXIuYwo+IEBA IC04ODcsNyArODg3LDcgQEAgdm9pZCBpbnRlbF92Z3B1X2NsZWFuX3dvcmtsb2FkcyhzdHJ1Y3Qg aW50ZWxfdmdwdSAqdmdwdSwKPiAgIAlpbnRlbF9lbmdpbmVfbWFza190IHRtcDsKPiAgIAo+ICAg CS8qIGZyZWUgdGhlIHVuc3VibWl0ZWQgd29ya2xvYWRzIGluIHRoZSBxdWV1ZXMuICovCj4gLQlm b3JfZWFjaF9lbmdpbmVfbWFza2VkKGVuZ2luZSwgZGV2X3ByaXYsIGVuZ2luZV9tYXNrLCB0bXAp IHsKPiArCWZvcl9lYWNoX2VuZ2luZV9tYXNrZWQoZW5naW5lLCAmZGV2X3ByaXYtPmd0LCBlbmdp bmVfbWFzaywgdG1wKSB7Cj4gICAJCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwb3MsIG4sCj4g ICAJCQkmcy0+d29ya2xvYWRfcV9oZWFkW2VuZ2luZS0+aWRdLCBsaXN0KSB7Cj4gICAJCQlsaXN0 X2RlbF9pbml0KCZwb3MtPmxpc3QpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2FjdGl2ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9hY3RpdmUuYwo+IGlu ZGV4IGFhMzdjMDcwMDRiOS4uNzkyN2IxYTBjN2E2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfYWN0aXZlLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2FjdGl2ZS5jCj4gQEAgLTU5MCw4ICs1OTAsOCBAQCBzdGF0aWMgc3RydWN0IGFjdGl2ZV9ub2Rl ICpyZXVzZV9pZGxlX2JhcnJpZXIoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYsIHU2NCBpZHgpCj4g ICBpbnQgaTkxNV9hY3RpdmVfYWNxdWlyZV9wcmVhbGxvY2F0ZV9iYXJyaWVyKHN0cnVjdCBpOTE1 X2FjdGl2ZSAqcmVmLAo+ICAgCQkJCQkgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l KQo+ICAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBlbmdpbmUtPmk5MTU7 Cj4gICAJaW50ZWxfZW5naW5lX21hc2tfdCB0bXAsIG1hc2sgPSBlbmdpbmUtPm1hc2s7Cj4gKwlz dHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gZW5naW5lLT5ndDsKPiAgIAlzdHJ1Y3QgbGxpc3Rfbm9kZSAq cG9zLCAqbmV4dDsKPiAgIAlpbnQgZXJyOwo+ICAgCj4gQEAgLTYwMyw3ICs2MDMsNyBAQCBpbnQg aTkxNV9hY3RpdmVfYWNxdWlyZV9wcmVhbGxvY2F0ZV9iYXJyaWVyKHN0cnVjdCBpOTE1X2FjdGl2 ZSAqcmVmLAo+ICAgCSAqIFdlIGNhbiB0aGVuIHVzZSB0aGUgcHJlYWxsb2NhdGVkIG5vZGVzIGlu Cj4gICAJICogaTkxNV9hY3RpdmVfYWNxdWlyZV9iYXJyaWVyKCkKPiAgIAkgKi8KPiAtCWZvcl9l YWNoX2VuZ2luZV9tYXNrZWQoZW5naW5lLCBpOTE1LCBtYXNrLCB0bXApIHsKPiArCWZvcl9lYWNo X2VuZ2luZV9tYXNrZWQoZW5naW5lLCBndCwgbWFzaywgdG1wKSB7Cj4gICAJCXU2NCBpZHggPSBl bmdpbmUtPmtlcm5lbF9jb250ZXh0LT50aW1lbGluZS0+ZmVuY2VfY29udGV4dDsKPiAgIAkJc3Ry dWN0IGFjdGl2ZV9ub2RlICpub2RlOwo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5k ZXggODg5NTZmMzdkOTZjLi40MGU5MjNiMGMyYzggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKPiBAQCAtMTQxNSwxMCArMTQxNSwxMCBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpwZGV2X3RvX2k5MTUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCj4gICAJCWZvcl9l YWNoX2lmICgoZW5naW5lX18pID0gKGRldl9wcml2X18pLT5lbmdpbmVbKGlkX18pXSkKPiAgIAo+ ICAgLyogSXRlcmF0b3Igb3ZlciBzdWJzZXQgb2YgZW5naW5lcyBzZWxlY3RlZCBieSBtYXNrICov Cj4gLSNkZWZpbmUgZm9yX2VhY2hfZW5naW5lX21hc2tlZChlbmdpbmVfXywgZGV2X3ByaXZfXywg bWFza19fLCB0bXBfXykgXAo+IC0JZm9yICgodG1wX18pID0gKG1hc2tfXykgJiBJTlRFTF9JTkZP KGRldl9wcml2X18pLT5lbmdpbmVfbWFzazsgXAo+ICsjZGVmaW5lIGZvcl9lYWNoX2VuZ2luZV9t YXNrZWQoZW5naW5lX18sIGd0X18sIG1hc2tfXywgdG1wX18pIFwKPiArCWZvciAoKHRtcF9fKSA9 IChtYXNrX18pICYgSU5URUxfSU5GTygoZ3RfXyktPmk5MTUpLT5lbmdpbmVfbWFzazsgXAo+ICAg CSAgICAgKHRtcF9fKSA/IFwKPiAtCSAgICAgKChlbmdpbmVfXykgPSAoZGV2X3ByaXZfXyktPmVu Z2luZVtfX21hc2tfbmV4dF9iaXQodG1wX18pXSksIDEgOiBcCj4gKwkgICAgICgoZW5naW5lX18p ID0gKGd0X18pLT5lbmdpbmVbX19tYXNrX25leHRfYml0KHRtcF9fKV0pLCAxIDogXAo+ICAgCSAg ICAgMDspCj4gICAKPiAgICNkZWZpbmUgcmJfdG9fdWFiaV9lbmdpbmUocmIpIFwKPiAKClJlZ2Fy ZHMsCgpUdnJ0a28KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eA==