From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joonas Lahtinen Subject: Re: [PATCH 22/31] drm/i915: Unify request submission Date: Mon, 25 Jul 2016 12:49:02 +0300 Message-ID: <1469440142.5495.39.camel@linux.intel.com> References: <1469432687-22756-1-git-send-email-chris@chris-wilson.co.uk> <1469432687-22756-23-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 416916E31B for ; Mon, 25 Jul 2016 09:49:25 +0000 (UTC) In-Reply-To: <1469432687-22756-23-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 T24gbWEsIDIwMTYtMDctMjUgYXQgMDg6NDQgKzAxMDAsIENocmlzIFdpbHNvbiB3cm90ZToKPiBN b3ZlIHJlcXVlc3Qgc3VibWlzc2lvbiBmcm9tIGVtaXRfcmVxdWVzdCBpbnRvIGl0cyBvd24gY29t bW9uIHZmdW5jCj4gZnJvbSBpOTE1X2FkZF9yZXF1ZXN0KCkuCj4gCj4gdjI6IENvbnZlcnQgSTkx NV9ESVNQQVRDSF9mbGFncyB0byBCSVQoeCkgd2hpbHN0IHBhc3NpbmcKPiB2MzogUmVuYW1lIGEg ZmV3IGZ1bmN0aW9ucyB0byBtYXRjaC4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24g PGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KClJldmlld2VkLWJ5OiBKb29uYXMgTGFodGluZW4g PGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Cgo+IC0tLQo+IMKgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jwqDCoMKgwqB8wqDCoDggKysrLS0tLS0KPiDCoGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyB8wqDCoDkgKysrKysrLS0t Cj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaMKgwqDCoMKgwqDCoMKgwqDCoMKg wqB8wqDCoDEgLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmPCoMKgwqDCoMKg wqDCoMKgwqDCoMKgfCAxOCArKysrKysrLS0tLS0tLS0tLS0KPiDCoGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JpbmdidWZmZXIuY8KgwqDCoMKgfCAyMyArKysrKysrKystLS0tLS0tLS0tLS0t LQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5owqDCoMKgwqB8IDIz ICsrKysrKysrKysrLS0tLS0tLS0tLS0tCj4gwqA2IGZpbGVzIGNoYW5nZWQsIDM2IGluc2VydGlv bnMoKyksIDQ2IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9y ZXF1ZXN0LmMKPiBpbmRleCA4ODE0ZTljNTI2NmIuLmY0YmY5ZjY2OWVlZCAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMKPiBAQCAtNDY3LDEyICs0NjcsOSBAQCB2 b2lkIF9faTkxNV9hZGRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVl c3QsCj4gwqAJwqAqLwo+IMKgCXJlcXVlc3QtPnBvc3RmaXggPSByaW5nLT50YWlsOwo+IMKgCj4g LQlpZiAoaTkxNS5lbmFibGVfZXhlY2xpc3RzKQo+IC0JCXJldCA9IGVuZ2luZS0+ZW1pdF9yZXF1 ZXN0KHJlcXVlc3QpOwo+IC0JZWxzZQo+IC0JCXJldCA9IGVuZ2luZS0+YWRkX3JlcXVlc3QocmVx dWVzdCk7Cj4gwqAJLyogTm90IGFsbG93ZWQgdG8gZmFpbCEgKi8KPiAtCVdBUk4ocmV0LCAiZW1p dHxhZGRfcmVxdWVzdCBmYWlsZWQ6ICVkIVxuIiwgcmV0KTsKPiArCXJldCA9IGVuZ2luZS0+ZW1p dF9yZXF1ZXN0KHJlcXVlc3QpOwo+ICsJV0FSTihyZXQsICIoJXMpLT5lbWl0X3JlcXVlc3QgZmFp bGVkOiAlZCFcbiIsIGVuZ2luZS0+bmFtZSwgcmV0KTsKPiDCoAo+IMKgCS8qIFNhbml0eSBjaGVj ayB0aGF0IHRoZSByZXNlcnZlZCBzaXplIHdhcyBsYXJnZSBlbm91Z2guICovCj4gwqAJcmV0ID0g cmluZy0+dGFpbCAtIHJlcXVlc3Rfc3RhcnQ7Cj4gQEAgLTQ4NCw2ICs0ODEsNyBAQCB2b2lkIF9f aTkxNV9hZGRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QsCj4g wqAJCcKgwqByZXNlcnZlZF90YWlsLCByZXQpOwo+IMKgCj4gwqAJaTkxNV9nZW1fbWFya19idXN5 KGVuZ2luZSk7Cj4gKwllbmdpbmUtPnN1Ym1pdF9yZXF1ZXN0KHJlcXVlc3QpOwo+IMKgfQo+IMKg Cj4gwqBzdGF0aWMgdW5zaWduZWQgbG9uZyBsb2NhbF9jbG9ja191cyh1bnNpZ25lZCBpbnQgKmNw dSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lv bi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCj4gaW5kZXgg ZWNjZDM0ODMyZmU2Li4zMmQwZTE4OTA5NTAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9ndWNfc3VibWlzc2lvbi5jCj4gQEAgLTU4NSw3ICs1ODUsNyBAQCBzdGF0aWMgaW50IGd1 Y19yaW5nX2Rvb3JiZWxsKHN0cnVjdCBpOTE1X2d1Y19jbGllbnQgKmdjKQo+IMKgICogVGhlIG9u bHkgZXJyb3IgaGVyZSBhcmlzZXMgaWYgdGhlIGRvb3JiZWxsIGhhcmR3YXJlIGlzbid0IGZ1bmN0 aW9uaW5nCj4gwqAgKiBhcyBleHBlY3RlZCwgd2hpY2ggcmVhbGx5IHNob3Vsbid0IGhhcHBlbi4K PiDCoCAqLwo+IC1pbnQgaTkxNV9ndWNfc3VibWl0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcnEpCj4gK3N0YXRpYyB2b2lkIGk5MTVfZ3VjX3N1Ym1pdChzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKnJxKQo+IMKgewo+IMKgCXVuc2lnbmVkIGludCBlbmdpbmVfaWQgPSBycS0+ZW5n aW5lLT5pZDsKPiDCoAlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmcnEtPmk5MTUtPmd1YzsKPiBA QCAtNjAyLDggKzYwMiw2IEBAIGludCBpOTE1X2d1Y19zdWJtaXQoc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0ICpycSkKPiDCoAo+IMKgCWd1Yy0+c3VibWlzc2lvbnNbZW5naW5lX2lkXSArPSAx Owo+IMKgCWd1Yy0+bGFzdF9zZXFub1tlbmdpbmVfaWRdID0gcnEtPmZlbmNlLnNlcW5vOwo+IC0K PiAtCXJldHVybiBiX3JldDsKPiDCoH0KPiDCoAo+IMKgLyoKPiBAQCAtOTkyLDYgKzk5MCw3IEBA IGludCBpOTE1X2d1Y19zdWJtaXNzaW9uX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCj4gwqB7Cj4gwqAJc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmRldl9wcml2LT5n dWM7Cj4gwqAJc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqY2xpZW50Owo+ICsJc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lOwo+IMKgCj4gwqAJLyogY2xpZW50IGZvciBleGVjYnVmIHN1Ym1p c3Npb24gKi8KPiDCoAljbGllbnQgPSBndWNfY2xpZW50X2FsbG9jKGRldl9wcml2LAo+IEBAIC0x MDA2LDYgKzEwMDUsMTAgQEAgaW50IGk5MTVfZ3VjX3N1Ym1pc3Npb25fZW5hYmxlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiDCoAlob3N0Mmd1Y19zYW1wbGVfZm9yY2V3YWtl KGd1YywgY2xpZW50KTsKPiDCoAlndWNfaW5pdF9kb29yYmVsbF9odyhndWMpOwo+IMKgCj4gKwkv KiBUYWtlIG92ZXIgZnJvbSBtYW51YWwgY29udHJvbCBvZiBFTFNQIChleGVjbGlzdHMpICovCj4g Kwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdikKPiArCQllbmdpbmUtPnN1Ym1pdF9y ZXF1ZXN0ID0gaTkxNV9ndWNfc3VibWl0Owo+ICsKPiDCoAlyZXR1cm4gMDsKPiDCoH0KPiDCoAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oCj4gaW5kZXggM2UzZTc0Mzc0MGMwLi42MjNjZjI2Y2Q3 ODQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAo+IEBAIC0xNjAsNyArMTYwLDYgQEAg ZXh0ZXJuIGludCBpbnRlbF9ndWNfcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+IMKg aW50IGk5MTVfZ3VjX3N1Ym1pc3Npb25faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpOwo+IMKgaW50IGk5MTVfZ3VjX3N1Ym1pc3Npb25fZW5hYmxlKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdik7Cj4gwqBpbnQgaTkxNV9ndWNfd3FfY2hlY2tfc3BhY2Uoc3Ry dWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpycSk7Cj4gLWludCBpOTE1X2d1Y19zdWJtaXQoc3Ry dWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpycSk7Cj4gwqB2b2lkIGk5MTVfZ3VjX3N1Ym1pc3Np b25fZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+IMKgdm9pZCBp OTE1X2d1Y19zdWJtaXNzaW9uX2Zpbmkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KTsKPiDCoAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gaW5kZXggMjUwZWRiMmJjZWY3Li5h OWNhMzFjMTEzYzMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+IEBAIC03MzgsNyAr NzM4LDcgQEAgZXJyX3VucGluOgo+IMKgfQo+IMKgCj4gwqAvKgo+IC0gKiBpbnRlbF9sb2dpY2Fs X3JpbmdfYWR2YW5jZV9hbmRfc3VibWl0KCkgLSBhZHZhbmNlIHRoZSB0YWlsIGFuZCBzdWJtaXQg dGhlIHdvcmtsb2FkCj4gKyAqIGludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlKCkgLSBhZHZhbmNl IHRoZSB0YWlsIGFuZCBwcmVwYXJlIGZvciBzdWJtaXNzaW9uCj4gwqAgKiBAcmVxdWVzdDogUmVx dWVzdCB0byBhZHZhbmNlIHRoZSBsb2dpY2FsIHJpbmdidWZmZXIgb2YuCj4gwqAgKgo+IMKgICog VGhlIHRhaWwgaXMgdXBkYXRlZCBpbiBvdXIgbG9naWNhbCByaW5nYnVmZmVyIHN0cnVjdCwgbm90 IGluIHRoZSBhY3R1YWwgY29udGV4dC4gV2hhdAo+IEBAIC03NDcsNyArNzQ3LDcgQEAgZXJyX3Vu cGluOgo+IMKgICogcG9pbnQsIHRoZSB0YWlsICppbnNpZGUqIHRoZSBjb250ZXh0IGlzIHVwZGF0 ZWQgYW5kIHRoZSBFTFNQIHdyaXR0ZW4gdG8uCj4gwqAgKi8KPiDCoHN0YXRpYyBpbnQKPiAtaW50 ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2VfYW5kX3N1Ym1pdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJlcXVlc3QpCj4gK2ludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlKHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKPiDCoHsKPiDCoAlzdHJ1Y3QgaW50ZWxfcmluZyAq cmluZyA9IHJlcXVlc3QtPnJpbmc7Cj4gwqAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l ID0gcmVxdWVzdC0+ZW5naW5lOwo+IEBAIC03NzMsMTIgKzc3Myw2IEBAIGludGVsX2xvZ2ljYWxf cmluZ19hZHZhbmNlX2FuZF9zdWJtaXQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1 ZXN0KQo+IMKgCcKgKi8KPiDCoAlyZXF1ZXN0LT5wcmV2aW91c19jb250ZXh0ID0gZW5naW5lLT5s YXN0X2NvbnRleHQ7Cj4gwqAJZW5naW5lLT5sYXN0X2NvbnRleHQgPSByZXF1ZXN0LT5jdHg7Cj4g LQo+IC0JaWYgKGk5MTUuZW5hYmxlX2d1Y19zdWJtaXNzaW9uKQo+IC0JCWk5MTVfZ3VjX3N1Ym1p dChyZXF1ZXN0KTsKPiAtCWVsc2UKPiAtCQlleGVjbGlzdHNfY29udGV4dF9xdWV1ZShyZXF1ZXN0 KTsKPiAtCj4gwqAJcmV0dXJuIDA7Cj4gwqB9Cj4gwqAKPiBAQCAtMTc3NSw3ICsxNzY5LDcgQEAg c3RhdGljIGludCBnZW44X2VtaXRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcXVlc3QpCj4gwqAJaW50ZWxfcmluZ19lbWl0KHJpbmcsIHJlcXVlc3QtPmZlbmNlLnNlcW5v KTsKPiDCoAlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfVVNFUl9JTlRFUlJVUFQpOwo+IMKgCWlu dGVsX3JpbmdfZW1pdChyaW5nLCBNSV9OT09QKTsKPiAtCXJldHVybiBpbnRlbF9sb2dpY2FsX3Jp bmdfYWR2YW5jZV9hbmRfc3VibWl0KHJlcXVlc3QpOwo+ICsJcmV0dXJuIGludGVsX2xvZ2ljYWxf cmluZ19hZHZhbmNlKHJlcXVlc3QpOwo+IMKgfQo+IMKgCj4gwqBzdGF0aWMgaW50IGdlbjhfZW1p dF9yZXF1ZXN0X3JlbmRlcihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCj4g QEAgLTE4MDYsNyArMTgwMCw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9lbWl0X3JlcXVlc3RfcmVuZGVy KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKPiDCoAlpbnRlbF9yaW5nX2Vt aXQocmluZywgMCk7Cj4gwqAJaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX1VTRVJfSU5URVJSVVBU KTsKPiDCoAlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfTk9PUCk7Cj4gLQlyZXR1cm4gaW50ZWxf bG9naWNhbF9yaW5nX2FkdmFuY2VfYW5kX3N1Ym1pdChyZXF1ZXN0KTsKPiArCXJldHVybiBpbnRl bF9sb2dpY2FsX3JpbmdfYWR2YW5jZShyZXF1ZXN0KTsKPiDCoH0KPiDCoAo+IMKgc3RhdGljIGlu dCBpbnRlbF9scl9jb250ZXh0X3JlbmRlcl9zdGF0ZV9pbml0KHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcmVxKQo+IEBAIC0xOTEyLDggKzE5MDYsMTAgQEAgbG9naWNhbF9yaW5nX2RlZmF1 bHRfdmZ1bmNzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiDCoHsKPiDCoAkvKiBE ZWZhdWx0IHZmdW5jcyB3aGljaCBjYW4gYmUgb3ZlcnJpZGVuIGJ5IGVhY2ggZW5naW5lLiAqLwo+ IMKgCWVuZ2luZS0+aW5pdF9odyA9IGdlbjhfaW5pdF9jb21tb25fcmluZzsKPiAtCWVuZ2luZS0+ ZW1pdF9yZXF1ZXN0ID0gZ2VuOF9lbWl0X3JlcXVlc3Q7Cj4gwqAJZW5naW5lLT5lbWl0X2ZsdXNo ID0gZ2VuOF9lbWl0X2ZsdXNoOwo+ICsJZW5naW5lLT5lbWl0X3JlcXVlc3QgPSBnZW44X2VtaXRf cmVxdWVzdDsKPiArCWVuZ2luZS0+c3VibWl0X3JlcXVlc3QgPSBleGVjbGlzdHNfY29udGV4dF9x dWV1ZTsKPiArCj4gwqAJZW5naW5lLT5pcnFfZW5hYmxlID0gZ2VuOF9sb2dpY2FsX3JpbmdfZW5h YmxlX2lycTsKPiDCoAllbmdpbmUtPmlycV9kaXNhYmxlID0gZ2VuOF9sb2dpY2FsX3JpbmdfZGlz YWJsZV9pcnE7Cj4gwqAJZW5naW5lLT5lbWl0X2JiX3N0YXJ0ID0gZ2VuOF9lbWl0X2JiX3N0YXJ0 Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiBpbmRleCAzZTEwNDlj OTcyZTAuLjJmYTdkYjUzMzFjMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yaW5nYnVmZmVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5n YnVmZmVyLmMKPiBAQCAtMTQ0MSwxNSArMTQ0MSwxNCBAQCBzdGF0aWMgaW50IGdlbjZfc2lnbmFs KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqc2lnbmFsbGVyX3JlcSwKPiDCoH0KPiDCoAo+ IMKgLyoqCj4gLSAqIGdlbjZfYWRkX3JlcXVlc3QgLSBVcGRhdGUgdGhlIHNlbWFwaG9yZSBtYWls Ym94IHJlZ2lzdGVycwo+ICsgKiBnZW42X2VtaXRfcmVxdWVzdCAtIFVwZGF0ZSB0aGUgc2VtYXBo b3JlIG1haWxib3ggcmVnaXN0ZXJzCj4gwqAgKgo+IMKgICogQHJlcXVlc3QgLSByZXF1ZXN0IHRv IHdyaXRlIHRvIHRoZSByaW5nCj4gwqAgKgo+IMKgICogVXBkYXRlIHRoZSBtYWlsYm94IHJlZ2lz dGVycyBpbiB0aGUgKm90aGVyKiByaW5ncyB3aXRoIHRoZSBjdXJyZW50IHNlcW5vLgo+IMKgICog VGhpcyBhY3RzIGxpa2UgYSBzaWduYWwgaW4gdGhlIGNhbm9uaWNhbCBzZW1hcGhvcmUuCj4gwqAg Ki8KPiAtc3RhdGljIGludAo+IC1nZW42X2FkZF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcmVxKQo+ICtzdGF0aWMgaW50IGdlbjZfZW1pdF9yZXF1ZXN0KHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+IMKgewo+IMKgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSA9IHJlcS0+ZW5naW5lOwo+IMKgCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nID0gcmVx LT5yaW5nOwo+IEBAIC0xNDcwLDEzICsxNDY5LDExIEBAIGdlbjZfYWRkX3JlcXVlc3Qoc3RydWN0 IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gwqAJaW50ZWxfcmluZ19hZHZhbmNlKHJpbmcp Owo+IMKgCj4gwqAJcmVxLT50YWlsID0gcmluZy0+dGFpbDsKPiAtCWVuZ2luZS0+c3VibWl0X3Jl cXVlc3QocmVxKTsKPiDCoAo+IMKgCXJldHVybiAwOwo+IMKgfQo+IMKgCj4gLXN0YXRpYyBpbnQK PiAtZ2VuOF9yZW5kZXJfYWRkX3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXEpCj4gK3N0YXRpYyBpbnQgZ2VuOF9yZW5kZXJfZW1pdF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxKQo+IMKgewo+IMKgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSA9IHJlcS0+ZW5naW5lOwo+IMKgCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nID0gcmVxLT5y aW5nOwo+IEBAIC0xNTAwLDkgKzE0OTcsOSBAQCBnZW44X3JlbmRlcl9hZGRfcmVxdWVzdChzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiDCoAlpbnRlbF9yaW5nX2VtaXQocmluZywg MCk7Cj4gwqAJaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX1VTRVJfSU5URVJSVVBUKTsKPiDCoAlp bnRlbF9yaW5nX2VtaXQocmluZywgTUlfTk9PUCk7Cj4gKwlpbnRlbF9yaW5nX2FkdmFuY2Uocmlu Zyk7Cj4gwqAKPiDCoAlyZXEtPnRhaWwgPSByaW5nLT50YWlsOwo+IC0JZW5naW5lLT5zdWJtaXRf cmVxdWVzdChyZXEpOwo+IMKgCj4gwqAJcmV0dXJuIDA7Cj4gwqB9Cj4gQEAgLTE3MDcsOCArMTcw NCw3IEBAIGJzZF9yaW5nX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ IMKgCXJldHVybiAwOwo+IMKgfQo+IMKgCj4gLXN0YXRpYyBpbnQKPiAtaTl4eF9hZGRfcmVxdWVz dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiArc3RhdGljIGludCBpOXh4X2Vt aXRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiDCoHsKPiDCoAlz dHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmluZzsKPiDCoAlpbnQgcmV0Owo+IEBAIC0x NzI0LDcgKzE3MjAsNiBAQCBpOXh4X2FkZF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxKQo+IMKgCWludGVsX3JpbmdfYWR2YW5jZShyaW5nKTsKPiDCoAo+IMKgCXJlcS0+ dGFpbCA9IHJpbmctPnRhaWw7Cj4gLQlyZXEtPmVuZ2luZS0+c3VibWl0X3JlcXVlc3QocmVxKTsK PiDCoAo+IMKgCXJldHVybiAwOwo+IMKgfQo+IEBAIC0yODI5LDExICsyODI0LDExIEBAIHN0YXRp YyB2b2lkIGludGVsX3JpbmdfZGVmYXVsdF92ZnVuY3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAo+IMKgCQkJCcKgwqDCoMKgwqDCoHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSkKPiDCoHsKPiDCoAllbmdpbmUtPmluaXRfaHcgPSBpbml0X3JpbmdfY29tbW9uOwo+IC0J ZW5naW5lLT5zdWJtaXRfcmVxdWVzdCA9IGk5eHhfc3VibWl0X3JlcXVlc3Q7Cj4gwqAKPiAtCWVu Z2luZS0+YWRkX3JlcXVlc3QgPSBpOXh4X2FkZF9yZXF1ZXN0Owo+ICsJZW5naW5lLT5lbWl0X3Jl cXVlc3QgPSBpOXh4X2VtaXRfcmVxdWVzdDsKPiDCoAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+ PSA2KQo+IC0JCWVuZ2luZS0+YWRkX3JlcXVlc3QgPSBnZW42X2FkZF9yZXF1ZXN0Owo+ICsJCWVu Z2luZS0+ZW1pdF9yZXF1ZXN0ID0gZ2VuNl9lbWl0X3JlcXVlc3Q7Cj4gKwllbmdpbmUtPnN1Ym1p dF9yZXF1ZXN0ID0gaTl4eF9zdWJtaXRfcmVxdWVzdDsKPiDCoAo+IMKgCWlmIChJTlRFTF9HRU4o ZGV2X3ByaXYpID49IDgpCj4gwqAJCWVuZ2luZS0+ZW1pdF9iYl9zdGFydCA9IGdlbjhfZW1pdF9i Yl9zdGFydDsKPiBAQCAtMjg2Miw3ICsyODU3LDcgQEAgaW50IGludGVsX2luaXRfcmVuZGVyX3Jp bmdfYnVmZmVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiDCoAo+IMKgCWlmIChJ TlRFTF9HRU4oZGV2X3ByaXYpID49IDgpIHsKPiDCoAkJZW5naW5lLT5pbml0X2NvbnRleHQgPSBp bnRlbF9yY3NfY3R4X2luaXQ7Cj4gLQkJZW5naW5lLT5hZGRfcmVxdWVzdCA9IGdlbjhfcmVuZGVy X2FkZF9yZXF1ZXN0Owo+ICsJCWVuZ2luZS0+ZW1pdF9yZXF1ZXN0ID0gZ2VuOF9yZW5kZXJfZW1p dF9yZXF1ZXN0Owo+IMKgCQllbmdpbmUtPmVtaXRfZmx1c2ggPSBnZW44X3JlbmRlcl9yaW5nX2Zs dXNoOwo+IMKgCQlpZiAoaTkxNS5zZW1hcGhvcmVzKQo+IMKgCQkJZW5naW5lLT5zZW1hcGhvcmUu c2lnbmFsID0gZ2VuOF9yY3Nfc2lnbmFsOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5n YnVmZmVyLmgKPiBpbmRleCA1NDI4YTNjMjg4ZDUuLmZkZjA4NTQ5NWUzYSAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiBAQCAtMjA0LDcgKzIwNCwxNyBAQCBz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzIHsKPiDCoAo+IMKgCWludAkJKCppbml0X2NvbnRleHQpKHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKTsKPiDCoAo+IC0JaW50CQkoKmFkZF9yZXF1 ZXN0KShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSk7Cj4gKwlpbnQJCSgqZW1pdF9m bHVzaCkoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0LAo+ICsJCQkJwqDCoMKg wqDCoMKgdTMyIGludmFsaWRhdGVfZG9tYWlucywKPiArCQkJCcKgwqDCoMKgwqDCoHUzMiBmbHVz aF9kb21haW5zKTsKPiArCWludAkJKCplbWl0X2JiX3N0YXJ0KShzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKnJlcSwKPiArCQkJCQnCoHU2NCBvZmZzZXQsIHUzMiBsZW5ndGgsCj4gKwkJCQkJ wqB1bnNpZ25lZCBpbnQgZGlzcGF0Y2hfZmxhZ3MpOwo+ICsjZGVmaW5lIEk5MTVfRElTUEFUQ0hf U0VDVVJFIEJJVCgwKQo+ICsjZGVmaW5lIEk5MTVfRElTUEFUQ0hfUElOTkVEIEJJVCgxKQo+ICsj ZGVmaW5lIEk5MTVfRElTUEFUQ0hfUlPCoMKgwqDCoMKgQklUKDIpCj4gKwlpbnQJCSgqZW1pdF9y ZXF1ZXN0KShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSk7Cj4gKwl2b2lkCQkoKnN1 Ym1pdF9yZXF1ZXN0KShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSk7Cj4gwqAJLyog U29tZSBjaGlwc2V0cyBhcmUgbm90IHF1aXRlIGFzIGNvaGVyZW50IGFzIGFkdmVydGlzZWQgYW5k IG5lZWQKPiDCoAnCoCogYW4gZXhwZW5zaXZlIGtpY2sgdG8gZm9yY2UgYSB0cnVlIHJlYWQgb2Yg dGhlIHVwLXRvLWRhdGUgc2Vxbm8uCj4gwqAJwqAqIEhvd2V2ZXIsIHRoZSB1cC10by1kYXRlIHNl cW5vIGlzIG5vdCBhbHdheXMgcmVxdWlyZWQgYW5kIHRoZSBsYXN0Cj4gQEAgLTI4MiwxNyArMjky LDYgQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7Cj4gwqAJdW5zaWduZWQgaW50IGlkbGVfbGl0 ZV9yZXN0b3JlX3dhOwo+IMKgCWJvb2wgZGlzYWJsZV9saXRlX3Jlc3RvcmVfd2E7Cj4gwqAJdTMy IGN0eF9kZXNjX3RlbXBsYXRlOwo+IC0JaW50CQkoKmVtaXRfcmVxdWVzdCkoc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KTsKPiAtCWludAkJKCplbWl0X2ZsdXNoKShzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QsCj4gLQkJCQnCoMKgwqDCoMKgwqB1MzIgaW52 YWxpZGF0ZV9kb21haW5zLAo+IC0JCQkJwqDCoMKgwqDCoMKgdTMyIGZsdXNoX2RvbWFpbnMpOwo+ IC0JaW50CQkoKmVtaXRfYmJfc3RhcnQpKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx LAo+IC0JCQkJCcKgdTY0IG9mZnNldCwgdTMyIGxlbmd0aCwKPiAtCQkJCQnCoHVuc2lnbmVkIGlu dCBkaXNwYXRjaF9mbGFncyk7Cj4gLSNkZWZpbmUgSTkxNV9ESVNQQVRDSF9TRUNVUkUgMHgxCj4g LSNkZWZpbmUgSTkxNV9ESVNQQVRDSF9QSU5ORUQgMHgyCj4gLSNkZWZpbmUgSTkxNV9ESVNQQVRD SF9SU8KgwqDCoMKgwqAweDQKPiAtCXZvaWQJCSgqc3VibWl0X3JlcXVlc3QpKHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxKTsKPiDCoAo+IMKgCS8qKgo+IMKgCcKgKiBMaXN0IG9mIG9i amVjdHMgY3VycmVudGx5IGludm9sdmVkIGluIHJlbmRlcmluZyBmcm9tIHRoZQotLSAKSm9vbmFz IExhaHRpbmVuCk9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVyCkludGVsIENvcnBvcmF0aW9u Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=