From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 43887C432C0 for ; Tue, 3 Dec 2019 13:16:33 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1CA5A2068E for ; Tue, 3 Dec 2019 13:16:33 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1CA5A2068E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B5F306E511; Tue, 3 Dec 2019 13:16:32 +0000 (UTC) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5118A6E511 for ; Tue, 3 Dec 2019 13:16:31 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 Dec 2019 05:16:30 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,273,1571727600"; d="scan'208";a="410839626" Received: from gaia.fi.intel.com ([10.237.72.192]) by fmsmga005.fm.intel.com with ESMTP; 03 Dec 2019 05:16:29 -0800 Received: by gaia.fi.intel.com (Postfix, from userid 1000) id D79235C1E08; Tue, 3 Dec 2019 15:16:28 +0200 (EET) From: Mika Kuoppala To: Chris Wilson , intel-gfx@lists.freedesktop.org In-Reply-To: <20191202204316.2665847-1-chris@chris-wilson.co.uk> References: <20191202204316.2665847-1-chris@chris-wilson.co.uk> Date: Tue, 03 Dec 2019 15:16:28 +0200 Message-ID: <87eexlv9ar.fsf@gaia.fi.intel.com> MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH 1/3] drm/i915: Lift i915_vma_pin() out of intel_renderstate_emit() X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gT25jZSBp bnNpZGUgYSByZXF1ZXN0LCBpbnNpZGUgdGhlIHRpbWVsaW5lLT5tdXRleCwgcGlubmluZyBpcyB2 ZXJib3Rlbi4KPgo+IDw0PiBbODk2LjAzMjgyOV0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4gPDQ+IFs4OTYuMDMyODMxXSBXQVJOSU5HOiBw b3NzaWJsZSBjaXJjdWxhciBsb2NraW5nIGRlcGVuZGVuY3kgZGV0ZWN0ZWQKPiA8ND4gWzg5Ni4w MzI4MzVdIDUuNC4wLXJjOC1DSS1QYXRjaHdvcmtfMTU1MzMrICMxIFRhaW50ZWQ6IEcgICAgIFUK PiA8ND4gWzg5Ni4wMzI4MzhdIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQo+IDw0PiBbODk2LjAzMjg0MV0gZ2VtX2V4ZWNfcGFyYWxsLzM3MjAg aXMgdHJ5aW5nIHRvIGFjcXVpcmUgbG9jazoKPiA8ND4gWzg5Ni4wMzI4NDRdIGZmZmY4ODg0MDE4 NjMyNzAgKCZrZXJuZWwjMil7Ky4rLn0sIGF0OiBpOTE1X3JlcXVlc3RfY3JlYXRlKzB4MTYvMHgx YzAgW2k5MTVdCj4gPDQ+IFs4OTYuMDMyOTE1XQo+IGJ1dCB0YXNrIGlzIGFscmVhZHkgaG9sZGlu ZyBsb2NrOgo+IDw0PiBbODk2LjAzMjkxN10gZmZmZjg4ODNlYzFjOTNjMCAoJnZtLT5tdXRleCl7 Ky4rLn0sIGF0OiBpOTE1X3ZtYV9waW4rMHhmMy8weDExYzAgW2k5MTVdCj4gPDQ+IFs4OTYuMDMy OTUyXQo+IHdoaWNoIGxvY2sgYWxyZWFkeSBkZXBlbmRzIG9uIHRoZSBuZXcgbG9jay4KPgo+IDw0 PiBbODk2LjAzMjk1NF0KPiB0aGUgZXhpc3RpbmcgZGVwZW5kZW5jeSBjaGFpbiAoaW4gcmV2ZXJz ZSBvcmRlcikgaXM6Cj4gPDQ+IFs4OTYuMDMyOTU2XQo+IC0+ICMxICgmdm0tPm11dGV4KXsrLisu fToKPiA8ND4gWzg5Ni4wMzI5NjFdICAgICAgICBfX211dGV4X2xvY2srMHg5YS8weDlkMAo+IDw0 PiBbODk2LjAzMjk5NV0gICAgICAgIGk5MTVfdm1hX3BpbisweGYzLzB4MTFjMCBbaTkxNV0KPiA8 ND4gWzg5Ni4wMzMwMzNdICAgICAgICBpbnRlbF9yZW5kZXJzdGF0ZV9lbWl0KzB4YjkvMHg5ZTAg W2k5MTVdCj4gPDQ+IFs4OTYuMDMzMDgxXSAgICAgICAgaTkxNV9nZW1faW5pdCsweDVhOS8weGE1 MCBbaTkxNV0KPiA8ND4gWzg5Ni4wMzMxMTJdICAgICAgICBpOTE1X2RyaXZlcl9wcm9iZSsweGIw MC8weDE1ZjAgW2k5MTVdCj4gPDQ+IFs4OTYuMDMzMTQ0XSAgICAgICAgaTkxNV9wY2lfcHJvYmUr MHg0My8weDFjMCBbaTkxNV0KPiA8ND4gWzg5Ni4wMzMxNDldICAgICAgICBwY2lfZGV2aWNlX3By b2JlKzB4OWUvMHgxMjAKPiA8ND4gWzg5Ni4wMzMxNTRdICAgICAgICByZWFsbHlfcHJvYmUrMHhl YS8weDQyMAo+IDw0PiBbODk2LjAzMzE1OF0gICAgICAgIGRyaXZlcl9wcm9iZV9kZXZpY2UrMHgx MGIvMHgxMjAKPiA8ND4gWzg5Ni4wMzMxNjFdICAgICAgICBkZXZpY2VfZHJpdmVyX2F0dGFjaCsw eDRhLzB4NTAKPiA8ND4gWzg5Ni4wMzMxNjRdICAgICAgICBfX2RyaXZlcl9hdHRhY2grMHg5Ny8w eDEzMAo+IDw0PiBbODk2LjAzMzE2OF0gICAgICAgIGJ1c19mb3JfZWFjaF9kZXYrMHg3NC8weGMw Cj4gPDQ+IFs4OTYuMDMzMTcxXSAgICAgICAgYnVzX2FkZF9kcml2ZXIrMHgxNDIvMHgyMjAKPiA8 ND4gWzg5Ni4wMzMxNzRdICAgICAgICBkcml2ZXJfcmVnaXN0ZXIrMHg1Ni8weGYwCj4gPDQ+IFs4 OTYuMDMzMTc4XSAgICAgICAgZG9fb25lX2luaXRjYWxsKzB4NTgvMHgyZmYKPiA8ND4gWzg5Ni4w MzMxODNdICAgICAgICBkb19pbml0X21vZHVsZSsweDU2LzB4MWY4Cj4gPDQ+IFs4OTYuMDMzMTg3 XSAgICAgICAgbG9hZF9tb2R1bGUrMHgyNDNlLzB4MjlmMAo+IDw0PiBbODk2LjAzMzE5MF0gICAg ICAgIF9fZG9fc3lzX2Zpbml0X21vZHVsZSsweGU5LzB4MTEwCj4gPDQ+IFs4OTYuMDMzMTk0XSAg ICAgICAgZG9fc3lzY2FsbF82NCsweDRmLzB4MjEwCj4gPDQ+IFs4OTYuMDMzMTk3XSAgICAgICAg ZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDkvMHhiZQo+IDw0PiBbODk2LjAzMzIw MF0KPiAtPiAjMCAoJmtlcm5lbCMyKXsrLisufToKPiA8ND4gWzg5Ni4wMzMyMDZdICAgICAgICBf X2xvY2tfYWNxdWlyZSsweDEzMjgvMHgxNWQwCj4gPDQ+IFs4OTYuMDMzMjA5XSAgICAgICAgbG9j a19hY3F1aXJlKzB4YTcvMHgxYzAKPiA8ND4gWzg5Ni4wMzMyMTNdICAgICAgICBfX211dGV4X2xv Y2srMHg5YS8weDlkMAo+IDw0PiBbODk2LjAzMzI1NV0gICAgICAgIGk5MTVfcmVxdWVzdF9jcmVh dGUrMHgxNi8weDFjMCBbaTkxNV0KPiA8ND4gWzg5Ni4wMzMyODddICAgICAgICBpbnRlbF9lbmdp bmVfZmx1c2hfYmFycmllcnMrMHg0Yy8weDEwMCBbaTkxNV0KPiA8ND4gWzg5Ni4wMzMzMjddICAg ICAgICBnZ3R0X2ZsdXNoKzB4MzcvMHg2MCBbaTkxNV0KPiA8ND4gWzg5Ni4wMzMzNjZdICAgICAg ICBpOTE1X2dlbV9ldmljdF9zb21ldGhpbmcrMHg0NmIvMHg1YTAgW2k5MTVdCj4gPDQ+IFs4OTYu MDMzNDA3XSAgICAgICAgaTkxNV9nZW1fZ3R0X2luc2VydCsweDIxZC8weDZhMCBbaTkxNV0KPiA8 ND4gWzg5Ni4wMzM0NDldICAgICAgICBpOTE1X3ZtYV9waW4rMHhiMzYvMHgxMWMwIFtpOTE1XQo+ IDw0PiBbODk2LjAzMzQ4OF0gICAgICAgIGdlbjZfcHBndHRfcGluKzB4ZDUvMHgxNzAgW2k5MTVd Cj4gPDQ+IFs4OTYuMDMzNTIzXSAgICAgICAgcmluZ19jb250ZXh0X3BpbisweDJlLzB4YzAgW2k5 MTVdCj4gPDQ+IFs4OTYuMDMzNTU0XSAgICAgICAgX19pbnRlbF9jb250ZXh0X2RvX3BpbisweDZi LzB4MTkwIFtpOTE1XQo+IDw0PiBbODk2LjAzMzU5MV0gICAgICAgIGk5MTVfZ2VtX2RvX2V4ZWNi dWZmZXIrMHgxODE0LzB4MjZjMCBbaTkxNV0KPiA8ND4gWzg5Ni4wMzM2MjddICAgICAgICBpOTE1 X2dlbV9leGVjYnVmZmVyMl9pb2N0bCsweDExYi8weDQ2MCBbaTkxNV0KPiA8ND4gWzg5Ni4wMzM2 MzJdICAgICAgICBkcm1faW9jdGxfa2VybmVsKzB4YTcvMHhmMAo+IDw0PiBbODk2LjAzMzYzNV0g ICAgICAgIGRybV9pb2N0bCsweDJlMS8weDM5MAo+IDw0PiBbODk2LjAzMzYzOF0gICAgICAgIGRv X3Zmc19pb2N0bCsweGEwLzB4NmYwCj4gPDQ+IFs4OTYuMDMzNjQxXSAgICAgICAga3N5c19pb2N0 bCsweDM1LzB4NjAKPiA8ND4gWzg5Ni4wMzM2NDRdICAgICAgICBfX3g2NF9zeXNfaW9jdGwrMHgx MS8weDIwCj4gPDQ+IFs4OTYuMDMzNjQ3XSAgICAgICAgZG9fc3lzY2FsbF82NCsweDRmLzB4MjEw Cj4gPDQ+IFs4OTYuMDMzNjUwXSAgICAgICAgZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1l KzB4NDkvMHhiZQo+Cj4gTGlmdCB0aGUgb2JqZWN0IGFsbG9jYXRpb24gYW5kIHBpbiBwcmlvciB0 byB0aGUgcmVxdWVzdCBjb25zdHJ1Y3Rpb24uCj4KPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxz b24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiBDYzogTWlrYSBLdW9wcGFsYSA8bWlrYS5r dW9wcGFsYUBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVu Lmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+CgpSZXZpZXdlZC1ieTogTWlrYSBLdW9wcGFsYSA8 bWlrYS5rdW9wcGFsYUBsaW51eC5pbnRlbC5jb20+Cgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9pbnRlbF9yZW5kZXJzdGF0ZS5jIHwgOTcgKysrKysrKysrKysrLS0tLS0tLS0tCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3JlbmRlcnN0YXRlLmggfCAxNyArKystCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICAgfCAgOCArLQo+ICAz IGZpbGVzIGNoYW5nZWQsIDc4IGluc2VydGlvbnMoKyksIDQ0IGRlbGV0aW9ucygtKQo+Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3JlbmRlcnN0YXRlLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZW5kZXJzdGF0ZS5jCj4gaW5kZXggYzRlZGMz NWU3ZDg5Li41OTU0ZWNjMzIwN2YgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvaW50ZWxfcmVuZGVyc3RhdGUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2lu dGVsX3JlbmRlcnN0YXRlLmMKPiBAQCAtMjksMTYgKzI5LDYgQEAKPiAgI2luY2x1ZGUgImludGVs X3JlbmRlcnN0YXRlLmgiCj4gICNpbmNsdWRlICJpbnRlbF9yaW5nLmgiCj4gIAo+IC1zdHJ1Y3Qg aW50ZWxfcmVuZGVyc3RhdGUgewo+IC0JY29uc3Qgc3RydWN0IGludGVsX3JlbmRlcnN0YXRlX3Jv ZGF0YSAqcm9kYXRhOwo+IC0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKPiAtCXN0 cnVjdCBpOTE1X3ZtYSAqdm1hOwo+IC0JdTMyIGJhdGNoX29mZnNldDsKPiAtCXUzMiBiYXRjaF9z aXplOwo+IC0JdTMyIGF1eF9vZmZzZXQ7Cj4gLQl1MzIgYXV4X3NpemU7Cj4gLX07Cj4gLQo+ICBz dGF0aWMgY29uc3Qgc3RydWN0IGludGVsX3JlbmRlcnN0YXRlX3JvZGF0YSAqCj4gIHJlbmRlcl9z dGF0ZV9nZXRfcm9kYXRhKGNvbnN0IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAg ewo+IEBAIC04NCwxMSArNzQsMTEgQEAgc3RhdGljIGludCByZW5kZXJfc3RhdGVfc2V0dXAoc3Ry dWN0IGludGVsX3JlbmRlcnN0YXRlICpzbywKPiAgCXUzMiAqZDsKPiAgCWludCByZXQ7Cj4gIAo+ IC0JcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3ByZXBhcmVfd3JpdGUoc28tPm9iaiwgJm5lZWRzX2Ns Zmx1c2gpOwo+ICsJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3ByZXBhcmVfd3JpdGUoc28tPnZtYS0+ b2JqLCAmbmVlZHNfY2xmbHVzaCk7Cj4gIAlpZiAocmV0KQo+ICAJCXJldHVybiByZXQ7Cj4gIAo+ IC0JZCA9IGttYXBfYXRvbWljKGk5MTVfZ2VtX29iamVjdF9nZXRfZGlydHlfcGFnZShzby0+b2Jq LCAwKSk7Cj4gKwlkID0ga21hcF9hdG9taWMoaTkxNV9nZW1fb2JqZWN0X2dldF9kaXJ0eV9wYWdl KHNvLT52bWEtPm9iaiwgMCkpOwo+ICAKPiAgCXdoaWxlIChpIDwgcm9kYXRhLT5iYXRjaF9pdGVt cykgewo+ICAJCXUzMiBzID0gcm9kYXRhLT5iYXRjaFtpXTsKPiBAQCAtMTY2LDcgKzE1Niw3IEBA IHN0YXRpYyBpbnQgcmVuZGVyX3N0YXRlX3NldHVwKHN0cnVjdCBpbnRlbF9yZW5kZXJzdGF0ZSAq c28sCj4gIAo+ICAJcmV0ID0gMDsKPiAgb3V0Ogo+IC0JaTkxNV9nZW1fb2JqZWN0X2ZpbmlzaF9h Y2Nlc3Moc28tPm9iaik7Cj4gKwlpOTE1X2dlbV9vYmplY3RfZmluaXNoX2FjY2Vzcyhzby0+dm1h LT5vYmopOwo+ICAJcmV0dXJuIHJldDsKPiAgCj4gIGVycjoKPiBAQCAtMTc3LDYxICsxNjcsODQg QEAgc3RhdGljIGludCByZW5kZXJfc3RhdGVfc2V0dXAoc3RydWN0IGludGVsX3JlbmRlcnN0YXRl ICpzbywKPiAgCj4gICN1bmRlZiBPVVRfQkFUQ0gKPiAgCj4gLWludCBpbnRlbF9yZW5kZXJzdGF0 ZV9lbWl0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQo+ICtpbnQgaW50ZWxfcmVuZGVyc3RhdGVf aW5pdChzdHJ1Y3QgaW50ZWxfcmVuZGVyc3RhdGUgKnNvLAo+ICsJCQkgICBzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSA9IHJxLT5lbmdpbmU7Cj4gLQlzdHJ1Y3QgaW50ZWxfcmVuZGVyc3RhdGUgc28gPSB7fTsgLyog a2VlcCB0aGUgY29tcGlsZXIgaGFwcHkgKi8KPiArCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmo7Cj4gIAlpbnQgZXJyOwo+ICAKPiAtCXNvLnJvZGF0YSA9IHJlbmRlcl9zdGF0ZV9nZXRf cm9kYXRhKGVuZ2luZSk7Cj4gLQlpZiAoIXNvLnJvZGF0YSkKPiArCW1lbXNldChzbywgMCwgc2l6 ZW9mKCpzbykpOwo+ICsKPiArCXNvLT5yb2RhdGEgPSByZW5kZXJfc3RhdGVfZ2V0X3JvZGF0YShl bmdpbmUpOwo+ICsJaWYgKCFzby0+cm9kYXRhKQo+ICAJCXJldHVybiAwOwo+ICAKPiAtCWlmIChz by5yb2RhdGEtPmJhdGNoX2l0ZW1zICogNCA+IFBBR0VfU0laRSkKPiArCWlmIChzby0+cm9kYXRh LT5iYXRjaF9pdGVtcyAqIDQgPiBQQUdFX1NJWkUpCj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gIAo+ IC0Jc28ub2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9pbnRlcm5hbChlbmdpbmUtPmk5MTUs IFBBR0VfU0laRSk7Cj4gLQlpZiAoSVNfRVJSKHNvLm9iaikpCj4gLQkJcmV0dXJuIFBUUl9FUlIo c28ub2JqKTsKPiArCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfaW50ZXJuYWwoZW5naW5l LT5pOTE1LCBQQUdFX1NJWkUpOwo+ICsJaWYgKElTX0VSUihvYmopKQo+ICsJCXJldHVybiBQVFJf RVJSKG9iaik7Cj4gIAo+IC0Jc28udm1hID0gaTkxNV92bWFfaW5zdGFuY2Uoc28ub2JqLCAmZW5n aW5lLT5ndC0+Z2d0dC0+dm0sIE5VTEwpOwo+IC0JaWYgKElTX0VSUihzby52bWEpKSB7Cj4gLQkJ ZXJyID0gUFRSX0VSUihzby52bWEpOwo+ICsJc28tPnZtYSA9IGk5MTVfdm1hX2luc3RhbmNlKG9i aiwgJmVuZ2luZS0+Z3QtPmdndHQtPnZtLCBOVUxMKTsKPiArCWlmIChJU19FUlIoc28tPnZtYSkp IHsKPiArCQllcnIgPSBQVFJfRVJSKHNvLT52bWEpOwo+ICAJCWdvdG8gZXJyX29iajsKPiAgCX0K PiAgCj4gLQllcnIgPSBpOTE1X3ZtYV9waW4oc28udm1hLCAwLCAwLCBQSU5fR0xPQkFMIHwgUElO X0hJR0gpOwo+ICsJZXJyID0gaTkxNV92bWFfcGluKHNvLT52bWEsIDAsIDAsIFBJTl9HTE9CQUwg fCBQSU5fSElHSCk7Cj4gIAlpZiAoZXJyKQo+ICAJCWdvdG8gZXJyX3ZtYTsKPiAgCj4gLQllcnIg PSByZW5kZXJfc3RhdGVfc2V0dXAoJnNvLCBycS0+aTkxNSk7Cj4gKwllcnIgPSByZW5kZXJfc3Rh dGVfc2V0dXAoc28sIGVuZ2luZS0+aTkxNSk7Cj4gIAlpZiAoZXJyKQo+ICAJCWdvdG8gZXJyX3Vu cGluOwo+ICAKPiArCXJldHVybiAwOwo+ICsKPiArZXJyX3VucGluOgo+ICsJaTkxNV92bWFfdW5w aW4oc28tPnZtYSk7Cj4gK2Vycl92bWE6Cj4gKwlpOTE1X3ZtYV9jbG9zZShzby0+dm1hKTsKPiAr ZXJyX29iajoKPiArCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKPiArCXNvLT52bWEgPSBOVUxM Owo+ICsJcmV0dXJuIGVycjsKPiArfQo+ICsKPiAraW50IGludGVsX3JlbmRlcnN0YXRlX2VtaXQo c3RydWN0IGludGVsX3JlbmRlcnN0YXRlICpzbywKPiArCQkJICAgc3RydWN0IGk5MTVfcmVxdWVz dCAqcnEpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJxLT5lbmdp bmU7Cj4gKwlpbnQgZXJyOwo+ICsKPiArCWlmICghc28tPnZtYSkKPiArCQlyZXR1cm4gMDsKPiAr Cj4gIAllcnIgPSBlbmdpbmUtPmVtaXRfYmJfc3RhcnQocnEsCj4gLQkJCQkgICAgc28uYmF0Y2hf b2Zmc2V0LCBzby5iYXRjaF9zaXplLAo+ICsJCQkJICAgIHNvLT5iYXRjaF9vZmZzZXQsIHNvLT5i YXRjaF9zaXplLAo+ICAJCQkJICAgIEk5MTVfRElTUEFUQ0hfU0VDVVJFKTsKPiAgCWlmIChlcnIp Cj4gLQkJZ290byBlcnJfdW5waW47Cj4gKwkJcmV0dXJuIGVycjsKPiAgCj4gLQlpZiAoc28uYXV4 X3NpemUgPiA4KSB7Cj4gKwlpZiAoc28tPmF1eF9zaXplID4gOCkgewo+ICAJCWVyciA9IGVuZ2lu ZS0+ZW1pdF9iYl9zdGFydChycSwKPiAtCQkJCQkgICAgc28uYXV4X29mZnNldCwgc28uYXV4X3Np emUsCj4gKwkJCQkJICAgIHNvLT5hdXhfb2Zmc2V0LCBzby0+YXV4X3NpemUsCj4gIAkJCQkJICAg IEk5MTVfRElTUEFUQ0hfU0VDVVJFKTsKPiAgCQlpZiAoZXJyKQo+IC0JCQlnb3RvIGVycl91bnBp bjsKPiArCQkJcmV0dXJuIGVycjsKPiAgCX0KPiAgCj4gLQlpOTE1X3ZtYV9sb2NrKHNvLnZtYSk7 Cj4gLQllcnIgPSBpOTE1X3JlcXVlc3RfYXdhaXRfb2JqZWN0KHJxLCBzby52bWEtPm9iaiwgZmFs c2UpOwo+ICsJaTkxNV92bWFfbG9jayhzby0+dm1hKTsKPiArCWVyciA9IGk5MTVfcmVxdWVzdF9h d2FpdF9vYmplY3QocnEsIHNvLT52bWEtPm9iaiwgZmFsc2UpOwo+ICAJaWYgKGVyciA9PSAwKQo+ IC0JCWVyciA9IGk5MTVfdm1hX21vdmVfdG9fYWN0aXZlKHNvLnZtYSwgcnEsIDApOwo+IC0JaTkx NV92bWFfdW5sb2NrKHNvLnZtYSk7Cj4gLWVycl91bnBpbjoKPiAtCWk5MTVfdm1hX3VucGluKHNv LnZtYSk7Cj4gLWVycl92bWE6Cj4gLQlpOTE1X3ZtYV9jbG9zZShzby52bWEpOwo+IC1lcnJfb2Jq Ogo+IC0JaTkxNV9nZW1fb2JqZWN0X3B1dChzby5vYmopOwo+ICsJCWVyciA9IGk5MTVfdm1hX21v dmVfdG9fYWN0aXZlKHNvLT52bWEsIHJxLCAwKTsKPiArCWk5MTVfdm1hX3VubG9jayhzby0+dm1h KTsKPiArCj4gIAlyZXR1cm4gZXJyOwo+ICB9Cj4gKwo+ICt2b2lkIGludGVsX3JlbmRlcnN0YXRl X2Zpbmkoc3RydWN0IGludGVsX3JlbmRlcnN0YXRlICpzbykKPiArewo+ICsJaTkxNV92bWFfdW5w aW5fYW5kX3JlbGVhc2UoJnNvLT52bWEsIDApOwo+ICt9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L2ludGVsX3JlbmRlcnN0YXRlLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9pbnRlbF9yZW5kZXJzdGF0ZS5oCj4gaW5kZXggOGQ1MDc5MTQ1MDU0Li41NzAwYmU2OWEw NWEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVuZGVyc3Rh dGUuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3JlbmRlcnN0YXRlLmgK PiBAQCAtMjcsNiArMjcsOCBAQAo+ICAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KPiAgCj4gIHN0 cnVjdCBpOTE1X3JlcXVlc3Q7Cj4gK3N0cnVjdCBpbnRlbF9lbmdpbmVfY3M7Cj4gK3N0cnVjdCBp OTE1X3ZtYTsKPiAgCj4gIHN0cnVjdCBpbnRlbF9yZW5kZXJzdGF0ZV9yb2RhdGEgewo+ICAJY29u c3QgdTMyICpyZWxvYzsKPiBAQCAtNDYsNiArNDgsMTkgQEAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBp bnRlbF9yZW5kZXJzdGF0ZV9yb2RhdGEgZ2VuN19udWxsX3N0YXRlOwo+ICBleHRlcm4gY29uc3Qg c3RydWN0IGludGVsX3JlbmRlcnN0YXRlX3JvZGF0YSBnZW44X251bGxfc3RhdGU7Cj4gIGV4dGVy biBjb25zdCBzdHJ1Y3QgaW50ZWxfcmVuZGVyc3RhdGVfcm9kYXRhIGdlbjlfbnVsbF9zdGF0ZTsK PiAgCj4gLWludCBpbnRlbF9yZW5kZXJzdGF0ZV9lbWl0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJx KTsKPiArc3RydWN0IGludGVsX3JlbmRlcnN0YXRlIHsKPiArCWNvbnN0IHN0cnVjdCBpbnRlbF9y ZW5kZXJzdGF0ZV9yb2RhdGEgKnJvZGF0YTsKPiArCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwo+ICsJ dTMyIGJhdGNoX29mZnNldDsKPiArCXUzMiBiYXRjaF9zaXplOwo+ICsJdTMyIGF1eF9vZmZzZXQ7 Cj4gKwl1MzIgYXV4X3NpemU7Cj4gK307Cj4gKwo+ICtpbnQgaW50ZWxfcmVuZGVyc3RhdGVfaW5p dChzdHJ1Y3QgaW50ZWxfcmVuZGVyc3RhdGUgKnNvLAo+ICsJCQkgICBzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpOwo+ICtpbnQgaW50ZWxfcmVuZGVyc3RhdGVfZW1pdChzdHJ1Y3QgaW50 ZWxfcmVuZGVyc3RhdGUgKnNvLAo+ICsJCQkgICBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSk7Cj4g K3ZvaWQgaW50ZWxfcmVuZGVyc3RhdGVfZmluaShzdHJ1Y3QgaW50ZWxfcmVuZGVyc3RhdGUgKnNv KTsKPiAgCj4gICNlbmRpZiAvKiBfSU5URUxfUkVOREVSU1RBVEVfSF8gKi8KPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtLmMKPiBpbmRleCA2MTM5NWIwMzQ0M2UuLmQyYzJkNjZiYjVmMiAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW0uYwo+IEBAIC0xMDcxLDkgKzEwNzEsMTQgQEAgc3RhdGljIGludCBf X2ludGVsX2VuZ2luZXNfcmVjb3JkX2RlZmF1bHRzKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCj4gIAkg Ki8KPiAgCj4gIAlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndCwgaWQpIHsKPiArCQlzdHJ1Y3Qg aW50ZWxfcmVuZGVyc3RhdGUgc287Cj4gIAkJc3RydWN0IGludGVsX2NvbnRleHQgKmNlOwo+ICAJ CXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOwo+ICAKPiArCQllcnIgPSBpbnRlbF9yZW5kZXJzdGF0 ZV9pbml0KCZzbywgZW5naW5lKTsKPiArCQlpZiAoZXJyKQo+ICsJCQlnb3RvIG91dDsKPiArCj4g IAkJLyogV2UgbXVzdCBiZSBhYmxlIHRvIHN3aXRjaCB0byBzb21ldGhpbmchICovCj4gIAkJR0VN X0JVR19PTighZW5naW5lLT5rZXJuZWxfY29udGV4dCk7Cj4gIAkJZW5naW5lLT5zZXJpYWwrKzsg LyogZm9yY2UgdGhlIGtlcm5lbCBjb250ZXh0IHN3aXRjaCAqLwo+IEBAIC0xMDk2LDEzICsxMTAx LDE0IEBAIHN0YXRpYyBpbnQgX19pbnRlbF9lbmdpbmVzX3JlY29yZF9kZWZhdWx0cyhzdHJ1Y3Qg aW50ZWxfZ3QgKmd0KQo+ICAJCWlmIChlcnIpCj4gIAkJCWdvdG8gZXJyX3JxOwo+ICAKPiAtCQll cnIgPSBpbnRlbF9yZW5kZXJzdGF0ZV9lbWl0KHJxKTsKPiArCQllcnIgPSBpbnRlbF9yZW5kZXJz dGF0ZV9lbWl0KCZzbywgcnEpOwo+ICAJCWlmIChlcnIpCj4gIAkJCWdvdG8gZXJyX3JxOwo+ICAK PiAgZXJyX3JxOgo+ICAJCXJlcXVlc3RzW2lkXSA9IGk5MTVfcmVxdWVzdF9nZXQocnEpOwo+ICAJ CWk5MTVfcmVxdWVzdF9hZGQocnEpOwo+ICsJCWludGVsX3JlbmRlcnN0YXRlX2ZpbmkoJnNvKTsK PiAgCQlpZiAoZXJyKQo+ICAJCQlnb3RvIG91dDsKPiAgCX0KPiAtLSAKPiAyLjI0LjAKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4