From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joonas Lahtinen Subject: Re: [PATCH 14/73] drm/i915: Unify request submission Date: Mon, 01 Aug 2016 17:30:08 +0300 Message-ID: <1470061808.4174.24.camel@linux.intel.com> References: <1470042681-25318-1-git-send-email-chris@chris-wilson.co.uk> <1470042681-25318-15-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 mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 6EAA86E2FC for ; Mon, 1 Aug 2016 14:30:11 +0000 (UTC) In-Reply-To: <1470042681-25318-15-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 T24gbWEsIDIwMTYtMDgtMDEgYXQgMTA6MTAgKzAxMDAsIENocmlzIFdpbHNvbiB3cm90ZToKPiBN b3ZlIHJlcXVlc3Qgc3VibWlzc2lvbiBmcm9tIGVtaXRfcmVxdWVzdCBpbnRvIGl0cyBvd24gY29t bW9uIHZmdW5jCj4gZnJvbSBpOTE1X2FkZF9yZXF1ZXN0KCkuCj4gCj4gdjI6IENvbnZlcnQgSTkx NV9ESVNQQVRDSF9mbGFncyB0byBCSVQoeCkgd2hpbHN0IHBhc3NpbmcKPiB2MzogUmVuYW1lIGEg ZmV3IGZ1bmN0aW9ucyB0byBtYXRjaC4KPiB2NDogUmVlbmFibGUgZXhlY2xpc3RzIHN1Ym1pc3Np b24gYWZ0ZXIgZGlzYWJsaW5nIGd1Yy4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24g PGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiBMaW5rOiBodHRwOi8vcGF0Y2h3b3JrLmZyZWVk ZXNrdG9wLm9yZy9wYXRjaC9tc2dpZC8xNDY5NDMyNjg3LTIyNzU2LTIzLWdpdC1zZW5kLWVtYWls LWNocmlzQGNocmlzLXdpbHNvbi5jby51awo+IFJldmlld2VkLWJ5OiBKb29uYXMgTGFodGluZW4g PGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+ICN2MwoKSSdsbCBrZWVwIG1pbmUsIERh dmUgbWlnaHQgd2FudCB0byBnaXZlIGEgbG9vayB0b28gKENDJ2QpLgoKUmV2aWV3ZWQtYnk6IEpv b25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KCj4gLS0tCj4g wqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmPCoMKgwqDCoHzCoMKgOCAr KystLS0tLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIHwg MTIgKysrKysrKysrLS0tCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaMKgwqDC oMKgwqDCoMKgwqDCoMKgwqB8wqDCoDEgLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfCAyNiArKysrKysrKysrKysrKystLS0tLS0tLS0t LQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmjCoMKgwqDCoMKgwqDCoMKgwqDC oMKgfMKgwqAyICsrCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmPC oMKgwqDCoHwgMjMgKysrKysrKysrLS0tLS0tLS0tLS0tLS0KPiDCoGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JpbmdidWZmZXIuaMKgwqDCoMKgfCAyNyArKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0KPiDCoDcgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKSwgNDggZGVsZXRpb25z KC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVl c3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYwo+IGluZGV4IGE4 ODU5MDVkZjNiYi4uZTM3OGViNjE5NzliIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX3JlcXVlc3QuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX3JlcXVlc3QuYwo+IEBAIC00NjYsMTIgKzQ2Niw5IEBAIHZvaWQgX19pOTE1X2FkZF9yZXF1 ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCwKPiDCoAnCoCovCj4gwqAJ cmVxdWVzdC0+cG9zdGZpeCA9IHJpbmctPnRhaWw7Cj4gwqAKPiAtCWlmIChpOTE1LmVuYWJsZV9l eGVjbGlzdHMpCj4gLQkJcmV0ID0gZW5naW5lLT5lbWl0X3JlcXVlc3QocmVxdWVzdCk7Cj4gLQll bHNlCj4gLQkJcmV0ID0gZW5naW5lLT5hZGRfcmVxdWVzdChyZXF1ZXN0KTsKPiDCoAkvKiBOb3Qg YWxsb3dlZCB0byBmYWlsISAqLwo+IC0JV0FSTihyZXQsICJlbWl0fGFkZF9yZXF1ZXN0IGZhaWxl ZDogJWQhXG4iLCByZXQpOwo+ICsJcmV0ID0gZW5naW5lLT5lbWl0X3JlcXVlc3QocmVxdWVzdCk7 Cj4gKwlXQVJOKHJldCwgIiglcyktPmVtaXRfcmVxdWVzdCBmYWlsZWQ6ICVkIVxuIiwgZW5naW5l LT5uYW1lLCByZXQpOwo+IMKgCj4gwqAJLyogU2FuaXR5IGNoZWNrIHRoYXQgdGhlIHJlc2VydmVk IHNpemUgd2FzIGxhcmdlIGVub3VnaC4gKi8KPiDCoAlyZXQgPSByaW5nLT50YWlsIC0gcmVxdWVz dF9zdGFydDsKPiBAQCAtNDgzLDYgKzQ4MCw3IEBAIHZvaWQgX19pOTE1X2FkZF9yZXF1ZXN0KHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCwKPiDCoAkJwqDCoHJlc2VydmVkX3Rh aWwsIHJldCk7Cj4gwqAKPiDCoAlpOTE1X2dlbV9tYXJrX2J1c3koZW5naW5lKTsKPiArCWVuZ2lu ZS0+c3VibWl0X3JlcXVlc3QocmVxdWVzdCk7Cj4gwqB9Cj4gwqAKPiDCoHN0YXRpYyB1bnNpZ25l ZCBsb25nIGxvY2FsX2Nsb2NrX3VzKHVuc2lnbmVkIGludCAqY3B1KQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKPiBpbmRleCBlY2NkMzQ4MzJmZTYuLjIzYmJk MGZmODZjNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJt aXNzaW9uLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9u LmMKPiBAQCAtNTg1LDcgKzU4NSw3IEBAIHN0YXRpYyBpbnQgZ3VjX3JpbmdfZG9vcmJlbGwoc3Ry dWN0IGk5MTVfZ3VjX2NsaWVudCAqZ2MpCj4gwqAgKiBUaGUgb25seSBlcnJvciBoZXJlIGFyaXNl cyBpZiB0aGUgZG9vcmJlbGwgaGFyZHdhcmUgaXNuJ3QgZnVuY3Rpb25pbmcKPiDCoCAqIGFzIGV4 cGVjdGVkLCB3aGljaCByZWFsbHkgc2hvdWxuJ3QgaGFwcGVuLgo+IMKgICovCj4gLWludCBpOTE1 X2d1Y19zdWJtaXQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpycSkKPiArc3RhdGljIHZv aWQgaTkxNV9ndWNfc3VibWl0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcnEpCj4gwqB7 Cj4gwqAJdW5zaWduZWQgaW50IGVuZ2luZV9pZCA9IHJxLT5lbmdpbmUtPmlkOwo+IMKgCXN0cnVj dCBpbnRlbF9ndWMgKmd1YyA9ICZycS0+aTkxNS0+Z3VjOwo+IEBAIC02MDIsOCArNjAyLDYgQEAg aW50IGk5MTVfZ3VjX3N1Ym1pdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJxKQo+IMKg Cj4gwqAJZ3VjLT5zdWJtaXNzaW9uc1tlbmdpbmVfaWRdICs9IDE7Cj4gwqAJZ3VjLT5sYXN0X3Nl cW5vW2VuZ2luZV9pZF0gPSBycS0+ZmVuY2Uuc2Vxbm87Cj4gLQo+IC0JcmV0dXJuIGJfcmV0Owo+ IMKgfQo+IMKgCj4gwqAvKgo+IEBAIC05OTIsNiArOTkwLDcgQEAgaW50IGk5MTVfZ3VjX3N1Ym1p c3Npb25fZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiDCoHsKPiDC oAlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmZGV2X3ByaXYtPmd1YzsKPiDCoAlzdHJ1Y3QgaTkx NV9ndWNfY2xpZW50ICpjbGllbnQ7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7 Cj4gwqAKPiDCoAkvKiBjbGllbnQgZm9yIGV4ZWNidWYgc3VibWlzc2lvbiAqLwo+IMKgCWNsaWVu dCA9IGd1Y19jbGllbnRfYWxsb2MoZGV2X3ByaXYsCj4gQEAgLTEwMDYsNiArMTAwNSwxMCBAQCBp bnQgaTkxNV9ndWNfc3VibWlzc2lvbl9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQo+IMKgCWhvc3QyZ3VjX3NhbXBsZV9mb3JjZXdha2UoZ3VjLCBjbGllbnQpOwo+IMKg CWd1Y19pbml0X2Rvb3JiZWxsX2h3KGd1Yyk7Cj4gwqAKPiArCS8qIFRha2Ugb3ZlciBmcm9tIG1h bnVhbCBjb250cm9sIG9mIEVMU1AgKGV4ZWNsaXN0cykgKi8KPiArCWZvcl9lYWNoX2VuZ2luZShl bmdpbmUsIGRldl9wcml2KQo+ICsJCWVuZ2luZS0+c3VibWl0X3JlcXVlc3QgPSBpOTE1X2d1Y19z dWJtaXQ7Cj4gKwo+IMKgCXJldHVybiAwOwo+IMKgfQo+IMKgCj4gQEAgLTEwMTUsNiArMTAxOCw5 IEBAIHZvaWQgaTkxNV9ndWNfc3VibWlzc2lvbl9kaXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKPiDCoAo+IMKgCWd1Y19jbGllbnRfZnJlZShkZXZfcHJpdiwgZ3VjLT5l eGVjYnVmX2NsaWVudCk7Cj4gwqAJZ3VjLT5leGVjYnVmX2NsaWVudCA9IE5VTEw7Cj4gKwo+ICsJ LyogUmV2ZXJ0IGJhY2sgdG8gbWFudWFsIEVMU1Agc3VibWlzc2lvbiAqLwo+ICsJaW50ZWxfZXhl Y2xpc3RzX2VuYWJsZV9zdWJtaXNzaW9uKGRldl9wcml2KTsKPiDCoH0KPiDCoAo+IMKgdm9pZCBp OTE1X2d1Y19zdWJtaXNzaW9uX2Zpbmkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oCj4gaW5kZXggM2UzZTc0Mzc0MGMwLi42MjNjZjI2 Y2Q3ODQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAo+IEBAIC0xNjAsNyArMTYwLDYg QEAgZXh0ZXJuIGludCBpbnRlbF9ndWNfcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ IMKgaW50IGk5MTVfZ3VjX3N1Ym1pc3Npb25faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpOwo+IMKgaW50IGk5MTVfZ3VjX3N1Ym1pc3Npb25fZW5hYmxlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gwqBpbnQgaTkxNV9ndWNfd3FfY2hlY2tfc3BhY2Uo c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpycSk7Cj4gLWludCBpOTE1X2d1Y19zdWJtaXQo c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpycSk7Cj4gwqB2b2lkIGk5MTVfZ3VjX3N1Ym1p c3Npb25fZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+IMKgdm9p ZCBpOTE1X2d1Y19zdWJtaXNzaW9uX2Zpbmkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KTsKPiDCoAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gaW5kZXggODI0ZjdlZmU0ZTY0 Li44YTcyZWU4NmU4MjUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+IEBAIC03Mzgs NyArNzM4LDcgQEAgZXJyX3VucGluOgo+IMKgfQo+IMKgCj4gwqAvKgo+IC0gKiBpbnRlbF9sb2dp Y2FsX3JpbmdfYWR2YW5jZV9hbmRfc3VibWl0KCkgLSBhZHZhbmNlIHRoZSB0YWlsIGFuZCBzdWJt aXQgdGhlIHdvcmtsb2FkCj4gKyAqIGludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlKCkgLSBhZHZh bmNlIHRoZSB0YWlsIGFuZCBwcmVwYXJlIGZvciBzdWJtaXNzaW9uCj4gwqAgKiBAcmVxdWVzdDog UmVxdWVzdCB0byBhZHZhbmNlIHRoZSBsb2dpY2FsIHJpbmdidWZmZXIgb2YuCj4gwqAgKgo+IMKg ICogVGhlIHRhaWwgaXMgdXBkYXRlZCBpbiBvdXIgbG9naWNhbCByaW5nYnVmZmVyIHN0cnVjdCwg bm90IGluIHRoZSBhY3R1YWwgY29udGV4dC4gV2hhdAo+IEBAIC03NDcsNyArNzQ3LDcgQEAgZXJy X3VucGluOgo+IMKgICogcG9pbnQsIHRoZSB0YWlsICppbnNpZGUqIHRoZSBjb250ZXh0IGlzIHVw ZGF0ZWQgYW5kIHRoZSBFTFNQIHdyaXR0ZW4gdG8uCj4gwqAgKi8KPiDCoHN0YXRpYyBpbnQKPiAt aW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2VfYW5kX3N1Ym1pdChzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKnJlcXVlc3QpCj4gK2ludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlKHN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKPiDCoHsKPiDCoAlzdHJ1Y3QgaW50ZWxfcmlu ZyAqcmluZyA9IHJlcXVlc3QtPnJpbmc7Cj4gwqAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lID0gcmVxdWVzdC0+ZW5naW5lOwo+IEBAIC03NzMsMTIgKzc3Myw2IEBAIGludGVsX2xvZ2lj YWxfcmluZ19hZHZhbmNlX2FuZF9zdWJtaXQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXF1ZXN0KQo+IMKgCcKgKi8KPiDCoAlyZXF1ZXN0LT5wcmV2aW91c19jb250ZXh0ID0gZW5naW5l LT5sYXN0X2NvbnRleHQ7Cj4gwqAJZW5naW5lLT5sYXN0X2NvbnRleHQgPSByZXF1ZXN0LT5jdHg7 Cj4gLQo+IC0JaWYgKGk5MTUuZW5hYmxlX2d1Y19zdWJtaXNzaW9uKQo+IC0JCWk5MTVfZ3VjX3N1 Ym1pdChyZXF1ZXN0KTsKPiAtCWVsc2UKPiAtCQlleGVjbGlzdHNfY29udGV4dF9xdWV1ZShyZXF1 ZXN0KTsKPiAtCj4gwqAJcmV0dXJuIDA7Cj4gwqB9Cj4gwqAKPiBAQCAtMTc3MCw3ICsxNzY0LDcg QEAgc3RhdGljIGludCBnZW44X2VtaXRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJlcXVlc3QpCj4gwqAJaW50ZWxfcmluZ19lbWl0KHJpbmcsIHJlcXVlc3QtPmZlbmNlLnNl cW5vKTsKPiDCoAlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfVVNFUl9JTlRFUlJVUFQpOwo+IMKg CWludGVsX3JpbmdfZW1pdChyaW5nLCBNSV9OT09QKTsKPiAtCXJldHVybiBpbnRlbF9sb2dpY2Fs X3JpbmdfYWR2YW5jZV9hbmRfc3VibWl0KHJlcXVlc3QpOwo+ICsJcmV0dXJuIGludGVsX2xvZ2lj YWxfcmluZ19hZHZhbmNlKHJlcXVlc3QpOwo+IMKgfQo+IMKgCj4gwqBzdGF0aWMgaW50IGdlbjhf ZW1pdF9yZXF1ZXN0X3JlbmRlcihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3Qp Cj4gQEAgLTE4MDEsNyArMTc5NSw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9lbWl0X3JlcXVlc3RfcmVu ZGVyKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKPiDCoAlpbnRlbF9yaW5n X2VtaXQocmluZywgMCk7Cj4gwqAJaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX1VTRVJfSU5URVJS VVBUKTsKPiDCoAlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfTk9PUCk7Cj4gLQlyZXR1cm4gaW50 ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2VfYW5kX3N1Ym1pdChyZXF1ZXN0KTsKPiArCXJldHVybiBp bnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5jZShyZXF1ZXN0KTsKPiDCoH0KPiDCoAo+IMKgc3RhdGlj IGludCBpbnRlbF9scl9jb250ZXh0X3JlbmRlcl9zdGF0ZV9pbml0KHN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxKQo+IEBAIC0xOTAyLDEzICsxODk2LDIzIEBAIHZvaWQgaW50ZWxfbG9n aWNhbF9yaW5nX2NsZWFudXAoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+IMKgCWVu Z2luZS0+aTkxNSA9IE5VTEw7Cj4gwqB9Cj4gwqAKPiArdm9pZCBpbnRlbF9leGVjbGlzdHNfZW5h YmxlX3N1Ym1pc3Npb24oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICt7Cj4g KwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Cj4gKwo+ICsJZm9yX2VhY2hfZW5naW5l KGVuZ2luZSwgZGV2X3ByaXYpCj4gKwkJZW5naW5lLT5zdWJtaXRfcmVxdWVzdCA9IGV4ZWNsaXN0 c19jb250ZXh0X3F1ZXVlOwo+ICt9Cj4gKwo+IMKgc3RhdGljIHZvaWQKPiDCoGxvZ2ljYWxfcmlu Z19kZWZhdWx0X3ZmdW5jcyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gwqB7Cj4g wqAJLyogRGVmYXVsdCB2ZnVuY3Mgd2hpY2ggY2FuIGJlIG92ZXJyaWRlbiBieSBlYWNoIGVuZ2lu ZS4gKi8KPiDCoAllbmdpbmUtPmluaXRfaHcgPSBnZW44X2luaXRfY29tbW9uX3Jpbmc7Cj4gLQll bmdpbmUtPmVtaXRfcmVxdWVzdCA9IGdlbjhfZW1pdF9yZXF1ZXN0Owo+IMKgCWVuZ2luZS0+ZW1p dF9mbHVzaCA9IGdlbjhfZW1pdF9mbHVzaDsKPiArCWVuZ2luZS0+ZW1pdF9yZXF1ZXN0ID0gZ2Vu OF9lbWl0X3JlcXVlc3Q7Cj4gKwllbmdpbmUtPnN1Ym1pdF9yZXF1ZXN0ID0gZXhlY2xpc3RzX2Nv bnRleHRfcXVldWU7Cj4gKwo+IMKgCWVuZ2luZS0+aXJxX2VuYWJsZSA9IGdlbjhfbG9naWNhbF9y aW5nX2VuYWJsZV9pcnE7Cj4gwqAJZW5naW5lLT5pcnFfZGlzYWJsZSA9IGdlbjhfbG9naWNhbF9y aW5nX2Rpc2FibGVfaXJxOwo+IMKgCWVuZ2luZS0+ZW1pdF9iYl9zdGFydCA9IGdlbjhfZW1pdF9i Yl9zdGFydDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAo+IGluZGV4IDMzZTAxOTNlNTQ1MS4u YmRkNzY0YWY2ZDA2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKPiBAQCAtOTUsNiAr OTUsOCBAQCB1aW50NjRfdCBpbnRlbF9scl9jb250ZXh0X2Rlc2NyaXB0b3Ioc3RydWN0IGk5MTVf Z2VtX2NvbnRleHQgKmN0eCwKPiDCoC8qIEV4ZWNsaXN0cyAqLwo+IMKgaW50IGludGVsX3Nhbml0 aXplX2VuYWJsZV9leGVjbGlzdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ IMKgCQkJCcKgwqDCoMKgaW50IGVuYWJsZV9leGVjbGlzdHMpOwo+ICt2b2lkIGludGVsX2V4ZWNs aXN0c19lbmFibGVfc3VibWlzc2lvbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp Owo+ICsKPiDCoHN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zOwo+IMKgaW50IGludGVsX2V4 ZWNsaXN0c19zdWJtaXNzaW9uKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zICpwYXJhbXMs Cj4gwqAJCQnCoMKgwqDCoMKgwqDCoHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgKmFy Z3MsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+IGluZGV4IDIxZDVl ODIwOTQwMC4uYWJlYTQyNDA4YjVhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3JpbmdidWZmZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuYwo+IEBAIC0xNDI4LDE1ICsxNDI4LDE0IEBAIHN0YXRpYyBpbnQgZ2VuNl9zaWdu YWwoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpzaWduYWxsZXJfcmVxLAo+IMKgfQo+IMKg Cj4gwqAvKioKPiAtICogZ2VuNl9hZGRfcmVxdWVzdCAtIFVwZGF0ZSB0aGUgc2VtYXBob3JlIG1h aWxib3ggcmVnaXN0ZXJzCj4gKyAqIGdlbjZfZW1pdF9yZXF1ZXN0IC0gVXBkYXRlIHRoZSBzZW1h cGhvcmUgbWFpbGJveCByZWdpc3RlcnMKPiDCoCAqCj4gwqAgKiBAcmVxdWVzdCAtIHJlcXVlc3Qg dG8gd3JpdGUgdG8gdGhlIHJpbmcKPiDCoCAqCj4gwqAgKiBVcGRhdGUgdGhlIG1haWxib3ggcmVn aXN0ZXJzIGluIHRoZSAqb3RoZXIqIHJpbmdzIHdpdGggdGhlIGN1cnJlbnQgc2Vxbm8uCj4gwqAg KiBUaGlzIGFjdHMgbGlrZSBhIHNpZ25hbCBpbiB0aGUgY2Fub25pY2FsIHNlbWFwaG9yZS4KPiDC oCAqLwo+IC1zdGF0aWMgaW50Cj4gLWdlbjZfYWRkX3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0ICpyZXEpCj4gK3N0YXRpYyBpbnQgZ2VuNl9lbWl0X3JlcXVlc3Qoc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gwqB7Cj4gwqAJc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lID0gcmVxLT5lbmdpbmU7Cj4gwqAJc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSBy ZXEtPnJpbmc7Cj4gQEAgLTE0NTcsMTMgKzE0NTYsMTEgQEAgZ2VuNl9hZGRfcmVxdWVzdChzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiDCoAlpbnRlbF9yaW5nX2FkdmFuY2Uocmlu Zyk7Cj4gwqAKPiDCoAlyZXEtPnRhaWwgPSByaW5nLT50YWlsOwo+IC0JZW5naW5lLT5zdWJtaXRf cmVxdWVzdChyZXEpOwo+IMKgCj4gwqAJcmV0dXJuIDA7Cj4gwqB9Cj4gwqAKPiAtc3RhdGljIGlu dAo+IC1nZW44X3JlbmRlcl9hZGRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcSkKPiArc3RhdGljIGludCBnZW44X3JlbmRlcl9lbWl0X3JlcXVlc3Qoc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gwqB7Cj4gwqAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lID0gcmVxLT5lbmdpbmU7Cj4gwqAJc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSByZXEt PnJpbmc7Cj4gQEAgLTE0ODcsOSArMTQ4NCw5IEBAIGdlbjhfcmVuZGVyX2FkZF9yZXF1ZXN0KHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+IMKgCWludGVsX3JpbmdfZW1pdChyaW5n LCAwKTsKPiDCoAlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfVVNFUl9JTlRFUlJVUFQpOwo+IMKg CWludGVsX3JpbmdfZW1pdChyaW5nLCBNSV9OT09QKTsKPiArCWludGVsX3JpbmdfYWR2YW5jZShy aW5nKTsKPiDCoAo+IMKgCXJlcS0+dGFpbCA9IHJpbmctPnRhaWw7Cj4gLQllbmdpbmUtPnN1Ym1p dF9yZXF1ZXN0KHJlcSk7Cj4gwqAKPiDCoAlyZXR1cm4gMDsKPiDCoH0KPiBAQCAtMTY5Miw4ICsx Njg5LDcgQEAgYnNkX3JpbmdfZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEs IHUzMiBtb2RlKQo+IMKgCXJldHVybiAwOwo+IMKgfQo+IMKgCj4gLXN0YXRpYyBpbnQKPiAtaTl4 eF9hZGRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiArc3RhdGlj IGludCBpOXh4X2VtaXRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkK PiDCoHsKPiDCoAlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcS0+cmluZzsKPiDCoAlpbnQg cmV0Owo+IEBAIC0xNzA5LDcgKzE3MDUsNiBAQCBpOXh4X2FkZF9yZXF1ZXN0KHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+IMKgCWludGVsX3JpbmdfYWR2YW5jZShyaW5nKTsKPiDC oAo+IMKgCXJlcS0+dGFpbCA9IHJpbmctPnRhaWw7Cj4gLQlyZXEtPmVuZ2luZS0+c3VibWl0X3Jl cXVlc3QocmVxKTsKPiDCoAo+IMKgCXJldHVybiAwOwo+IMKgfQo+IEBAIC0yODEyLDExICsyODA3 LDExIEBAIHN0YXRpYyB2b2lkIGludGVsX3JpbmdfZGVmYXVsdF92ZnVuY3Moc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IMKgCQkJCcKgwqDCoMKgwqDCoHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSkKPiDCoHsKPiDCoAllbmdpbmUtPmluaXRfaHcgPSBpbml0X3Jpbmdf Y29tbW9uOwo+IC0JZW5naW5lLT5zdWJtaXRfcmVxdWVzdCA9IGk5eHhfc3VibWl0X3JlcXVlc3Q7 Cj4gwqAKPiAtCWVuZ2luZS0+YWRkX3JlcXVlc3QgPSBpOXh4X2FkZF9yZXF1ZXN0Owo+ICsJZW5n aW5lLT5lbWl0X3JlcXVlc3QgPSBpOXh4X2VtaXRfcmVxdWVzdDsKPiDCoAlpZiAoSU5URUxfR0VO KGRldl9wcml2KSA+PSA2KQo+IC0JCWVuZ2luZS0+YWRkX3JlcXVlc3QgPSBnZW42X2FkZF9yZXF1 ZXN0Owo+ICsJCWVuZ2luZS0+ZW1pdF9yZXF1ZXN0ID0gZ2VuNl9lbWl0X3JlcXVlc3Q7Cj4gKwll bmdpbmUtPnN1Ym1pdF9yZXF1ZXN0ID0gaTl4eF9zdWJtaXRfcmVxdWVzdDsKPiDCoAo+IMKgCWlm IChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDgpCj4gwqAJCWVuZ2luZS0+ZW1pdF9iYl9zdGFydCA9 IGdlbjhfZW1pdF9iYl9zdGFydDsKPiBAQCAtMjg0NSw3ICsyODQwLDcgQEAgaW50IGludGVsX2lu aXRfcmVuZGVyX3JpbmdfYnVmZmVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiDC oAo+IMKgCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDgpIHsKPiDCoAkJZW5naW5lLT5pbml0 X2NvbnRleHQgPSBpbnRlbF9yY3NfY3R4X2luaXQ7Cj4gLQkJZW5naW5lLT5hZGRfcmVxdWVzdCA9 IGdlbjhfcmVuZGVyX2FkZF9yZXF1ZXN0Owo+ICsJCWVuZ2luZS0+ZW1pdF9yZXF1ZXN0ID0gZ2Vu OF9yZW5kZXJfZW1pdF9yZXF1ZXN0Owo+IMKgCQllbmdpbmUtPmVtaXRfZmx1c2ggPSBnZW44X3Jl bmRlcl9yaW5nX2ZsdXNoOwo+IMKgCQlpZiAoaTkxNS5zZW1hcGhvcmVzKQo+IMKgCQkJZW5naW5l LT5zZW1hcGhvcmUuc2lnbmFsID0gZ2VuOF9yY3Nfc2lnbmFsOwo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmgKPiBpbmRleCA5YWM5NmRkYjAxZWUuLjVlMDZkNmZiZDUwNiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiBAQCAtMjA0LDcg KzIwNCwxOSBAQCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzIHsKPiDCoAo+IMKgCWludAkJKCppbml0 X2NvbnRleHQpKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKTsKPiDCoAo+IC0JaW50 CQkoKmFkZF9yZXF1ZXN0KShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSk7Cj4gKwlp bnQJCSgqZW1pdF9mbHVzaCkoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0LAo+ ICsJCQkJwqDCoMKgwqDCoMKgdTMyIG1vZGUpOwo+ICsjZGVmaW5lIEVNSVRfSU5WQUxJREFURQlC SVQoMCkKPiArI2RlZmluZSBFTUlUX0ZMVVNICUJJVCgxKQo+ICsjZGVmaW5lIEVNSVRfQkFSUklF UgkoRU1JVF9JTlZBTElEQVRFIHwgRU1JVF9GTFVTSCkKPiArCWludAkJKCplbWl0X2JiX3N0YXJ0 KShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiArCQkJCQnCoHU2NCBvZmZzZXQs IHUzMiBsZW5ndGgsCj4gKwkJCQkJwqB1bnNpZ25lZCBpbnQgZGlzcGF0Y2hfZmxhZ3MpOwo+ICsj ZGVmaW5lIEk5MTVfRElTUEFUQ0hfU0VDVVJFIEJJVCgwKQo+ICsjZGVmaW5lIEk5MTVfRElTUEFU Q0hfUElOTkVEIEJJVCgxKQo+ICsjZGVmaW5lIEk5MTVfRElTUEFUQ0hfUlPCoMKgwqDCoMKgQklU KDIpCj4gKwlpbnQJCSgqZW1pdF9yZXF1ZXN0KShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcSk7Cj4gKwl2b2lkCQkoKnN1Ym1pdF9yZXF1ZXN0KShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJlcSk7Cj4gwqAJLyogU29tZSBjaGlwc2V0cyBhcmUgbm90IHF1aXRlIGFzIGNvaGVy ZW50IGFzIGFkdmVydGlzZWQgYW5kIG5lZWQKPiDCoAnCoCogYW4gZXhwZW5zaXZlIGtpY2sgdG8g Zm9yY2UgYSB0cnVlIHJlYWQgb2YgdGhlIHVwLXRvLWRhdGUgc2Vxbm8uCj4gwqAJwqAqIEhvd2V2 ZXIsIHRoZSB1cC10by1kYXRlIHNlcW5vIGlzIG5vdCBhbHdheXMgcmVxdWlyZWQgYW5kIHRoZSBs YXN0Cj4gQEAgLTI4MiwxOSArMjk0LDYgQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7Cj4gwqAJ dW5zaWduZWQgaW50IGlkbGVfbGl0ZV9yZXN0b3JlX3dhOwo+IMKgCWJvb2wgZGlzYWJsZV9saXRl X3Jlc3RvcmVfd2E7Cj4gwqAJdTMyIGN0eF9kZXNjX3RlbXBsYXRlOwo+IC0JaW50CQkoKmVtaXRf cmVxdWVzdCkoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KTsKPiAtCWludAkJ KCplbWl0X2ZsdXNoKShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QsCj4gLQkJ CQnCoMKgwqDCoMKgwqB1MzIgbW9kZSk7Cj4gLSNkZWZpbmUgRU1JVF9JTlZBTElEQVRFCUJJVCgw KQo+IC0jZGVmaW5lIEVNSVRfRkxVU0gJQklUKDEpCj4gLSNkZWZpbmUgRU1JVF9CQVJSSUVSCShF TUlUX0lOVkFMSURBVEUgfCBFTUlUX0ZMVVNIKQo+IC0JaW50CQkoKmVtaXRfYmJfc3RhcnQpKHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+IC0JCQkJCcKgdTY0IG9mZnNldCwgdTMy IGxlbmd0aCwKPiAtCQkJCQnCoHVuc2lnbmVkIGludCBkaXNwYXRjaF9mbGFncyk7Cj4gLSNkZWZp bmUgSTkxNV9ESVNQQVRDSF9TRUNVUkUgMHgxCj4gLSNkZWZpbmUgSTkxNV9ESVNQQVRDSF9QSU5O RUQgMHgyCj4gLSNkZWZpbmUgSTkxNV9ESVNQQVRDSF9SU8KgwqDCoMKgwqAweDQKPiAtCXZvaWQJ CSgqc3VibWl0X3JlcXVlc3QpKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKTsKPiDC oAo+IMKgCS8qKgo+IMKgCcKgKiBMaXN0IG9mIG9iamVjdHMgY3VycmVudGx5IGludm9sdmVkIGlu IHJlbmRlcmluZyBmcm9tIHRoZQotLSAKSm9vbmFzIExhaHRpbmVuCk9wZW4gU291cmNlIFRlY2hu b2xvZ3kgQ2VudGVyCkludGVsIENvcnBvcmF0aW9uCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=