From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 89B4F898F5 for ; Fri, 22 Feb 2019 21:59:53 +0000 (UTC) From: Antonio Argenziano Date: Fri, 22 Feb 2019 13:59:31 -0800 Message-Id: <20190222215931.5881-1-antonio.argenziano@intel.com> In-Reply-To: <20190221192745.31178-3-antonio.argenziano@intel.com> References: <20190221192745.31178-3-antonio.argenziano@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t] lib/i915: add mmap_offset support List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org Cc: Janulgue Abdiel , Matthew Auld List-ID: RnJvbTogIkthbGFtYXJ6LCBMdWthc3oiIDxsdWthc3oua2FsYW1hcnpAaW50ZWwuY29tPgoKV2l0 aCByZWNlbnRseSBwcm9wb3NlZCBjaGFuZ2VzLCBJR1QgbmVlZCB0byBzdGFydCBzdXBwb3J0aW5n IG5ldwp3YXkgb2YgbW1hcGluZyBvYmplY3QsIHdoaWNoIHdpbGwgYmUgdXNlZCBmcm9tIG5vdyBi eSBkZWZhdWx0LgpUaGlzIHBhdGNoIG1vZGlmeSBnZW1fbW1hcF93YyBhbmQgZ2VtX21tYXAgZnVu Y3Rpb25zIHRvIGJlCmluIHN5bmMgd2l0aCB0aG9zZSBjaGFuZ2VzLgoKdjI6CgktIEZpeCBJT0NU TCBudW1iZXIuIChEYW5pZWxlKQoJLSBNb3ZlIHdyYXBwZXJzIHRvIG5ldyBmaWxlLiAoQ2hyaXMp CgpTaWduZWQtb2ZmLWJ5OiBMdWthc3ogS2FsYW1hcnogPGx1a2Fzei5rYWxhbWFyekBpbnRlbC5j b20+CkNjOiBKYW51bGd1ZSBBYmRpZWwgPGFiZGllbC5qYW51bGd1ZUBpbnRlbC5jb20+CkNjOiBN YXR0aGV3IEF1bGQgPG1hdHRoZXcuYXVsZEBpbnRlbC5jb20+CkNjOiBNaWNoYWwgV2luaWFyc2tp IDxtaWNoYWwud2luaWFyc2tpQGludGVsLmNvbT4KQ2M6IEFudG9uaW8gQXJnZW56aWFubyA8YW50 b25pby5hcmdlbnppYW5vQGludGVsLmNvbT4KQ2M6IERhbmllbGUgU3B1cmlvIENlcmFvbG8gPGRh bmllbGUuY2VyYW9sb3NwdXJpb0BpbnRlbC5jb20+CkNjOiBKb29uYXMgTGFodGluZW4gPGpvb25h cy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+CkNjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlz LXdpbHNvbi5jby51az4KU2lnbmVkLW9mZi1ieTogQW50b25pbyBBcmdlbnppYW5vIDxhbnRvbmlv LmFyZ2Vuemlhbm9AaW50ZWwuY29tPgotLS0KIGxpYi9pOTE1L2dlbV9tbWFuLmMgIHwgODcgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGxpYi9pOTE1L2dlbV9t bWFuLmggIHwgNjEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogbGliL2lvY3RsX3dy YXBwZXJzLmMgfCA2NyArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCiBsaWIvaW9j dGxfd3JhcHBlcnMuaCB8ICAxICsKIGxpYi9tZXNvbi5idWlsZCAgICAgIHwgIDEgKwogNSBmaWxl cyBjaGFuZ2VkLCAxOTYgaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k ZSAxMDA2NDQgbGliL2k5MTUvZ2VtX21tYW4uYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9pOTE1 L2dlbV9tbWFuLmgKCmRpZmYgLS1naXQgYS9saWIvaTkxNS9nZW1fbW1hbi5jIGIvbGliL2k5MTUv Z2VtX21tYW4uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uZmI5NDlmNDQK LS0tIC9kZXYvbnVsbAorKysgYi9saWIvaTkxNS9nZW1fbW1hbi5jCkBAIC0wLDAgKzEsODcgQEAK Ky8qCisgKiBDb3B5cmlnaHQgwqkgMjAwNywgMjAxMSwgMjAxMywgMjAxNCwgMjAxOSBJbnRlbCBD b3Jwb3JhdGlvbgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2Yg Y2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdh cmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAor ICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5n IHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwg bWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBj b3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUK KyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93 aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRo aXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBz aGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9m IHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJ UyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQs IElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB QklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJ TkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQg SE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElB QklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJ U0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNP RlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKKyAqIElOIFRIRSBTT0ZUV0FSRS4K KyAqCisgKi8KKworI2luY2x1ZGUgPHN0ZGJvb2wuaD4KKyNpbmNsdWRlIDxzeXMvaW9jdGwuaD4K KworI2luY2x1ZGUgImlndF9jb3JlLmgiCisjaW5jbHVkZSAiaW9jdGxfd3JhcHBlcnMuaCIKKwor I2luY2x1ZGUgImdlbV9tbWFuLmgiCisKKworYm9vbCBoYXNfbW1hcF9vZmZzZXQoaW50IGZkKQor eworCXN0YXRpYyBpbnQgaGFzX21tYXBfb2Zmc2V0ID0gLTE7CisKKwlpZiAoaGFzX21tYXBfb2Zm c2V0ID09IC0xKSB7CisJCXN0cnVjdCBkcm1faTkxNV9nZXRwYXJhbSBncDsKKworCQloYXNfbW1h cF9vZmZzZXQgPSAwOworCisJCW1lbXNldCgmZ3AsIDAsIHNpemVvZihncCkpOworCQlncC5wYXJh bSA9IDB4NTU7IC8qIEk5MTVfUEFSQU1fTU1BUF9PRkZTRVRfVkVSU0lPTiAqLworCQlncC52YWx1 ZSA9ICZoYXNfbW1hcF9vZmZzZXQ7CisJCWlvY3RsKGZkLCBEUk1fSU9DVExfSTkxNV9HRVRQQVJB TSwgJmdwKTsKKwl9CisKKwlyZXR1cm4gaGFzX21tYXBfb2Zmc2V0ID4gMDsKK30KKworLyoqCisg KiBfX2dlbV9tbWFwX29mZnNldDoKKyAqIEBmZDogb3BlbiBpOTE1IGRybSBmaWxlIGRlc2NyaXB0 b3IKKyAqIEBoYW5kbGU6IGdlbSBidWZmZXIgb2JqZWN0IGhhbmRsZQorICogQG9mZnNldDogb2Zm c2V0IGluIHRoZSBnZW0gYnVmZmVyIG9mIHRoZSBtbWFwIGFyZW5hCisgKiBAc2l6ZTogc2l6ZSBv ZiB0aGUgbW1hcCBhcmVuYQorICogQHByb3Q6IG1lbW9yeSBwcm90ZWN0aW9uIGJpdHMgYXMgdXNl ZCBieSBtbWFwKCkKKyAqIEBmbGFnczogZmxhZ3MgdXNlZCB0byBkZXRlcm1pbmUgY2FjaGluZwor ICoKKyAqIFNpbWlsYXIgdG8gX19nZW1fbW1hcCBidXQgdXNlIE1NQVBfT0ZGU0VUIElPQ1RMLgor ICoKKyAqIFJldHVybnM6IEEgcG9pbnRlciB0byB0aGUgY3JlYXRlZCBtZW1vcnkgbWFwcGluZywg TlVMTCBvbiBmYWlsdXJlLgorICovCit2b2lkCisqX19nZW1fbW1hcF9vZmZzZXQoaW50IGZkLCB1 aW50MzJfdCBoYW5kbGUsIHVpbnQ2NF90IG9mZnNldCwgdWludDY0X3Qgc2l6ZSwgdW5zaWduZWQg aW50IHByb3QsIHVpbnQ2NF90IGZsYWdzKQoreworCXN0cnVjdCBsb2NhbF9kcm1faTkxNV9nZW1f bW1hcF9vZmZzZXQgYXJnOworCXZvaWQgKnB0cjsKKworCW1lbXNldCgmYXJnLCAwLCBzaXplb2Yo YXJnKSk7CisJYXJnLmhhbmRsZSA9IGhhbmRsZTsKKwlhcmcub2Zmc2V0ID0gb2Zmc2V0OworCWFy Zy5mbGFncyA9IGZsYWdzOworCisJaWYgKGlndF9pb2N0bChmZCwgTE9DQUxfRFJNX0lPQ1RMX0k5 MTVfR0VNX01NQVBfT0ZGU0VULCAmYXJnKSkKKwkJcmV0dXJuIE5VTEw7CisKKwlwdHIgPSBtbWFw NjQoMCwgc2l6ZSwgcHJvdCwgTUFQX1NIQVJFRCwgZmQsIGFyZy5vZmZzZXQpOworCisJaWYgKHB0 ciA9PSBNQVBfRkFJTEVEKQorCQlwdHIgPSBOVUxMOworCWVsc2UKKwkJZXJybm8gPSAwOworCisJ cmV0dXJuIHB0cjsKK30KZGlmZiAtLWdpdCBhL2xpYi9pOTE1L2dlbV9tbWFuLmggYi9saWIvaTkx NS9nZW1fbW1hbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi4yZjI0Y2E5 OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYi9pOTE1L2dlbV9tbWFuLmgKQEAgLTAsMCArMSw2MSBA QAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDA3LCAyMDExLCAyMDEzLCAyMDE0LCAyMDE5IEludGVs IENvcnBvcmF0aW9uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBv ZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0 d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiks CisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRp bmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5 LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxs IGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRo ZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xs b3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQg dGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgp IHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMg b2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFT IElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElF RCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFO VEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5G UklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdI VCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBM SUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVS V0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUg U09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUworICogSU4gVEhFIFNPRlRXQVJF LgorICoKKyAqLworCisjaWZuZGVmIEdFTV9NTUFOX0gKKyNkZWZpbmUgR0VNX01NQU5fSAorCitz dHJ1Y3QgbG9jYWxfZHJtX2k5MTVfZ2VtX21tYXBfb2Zmc2V0IHsKKwkvKiogSGFuZGxlIGZvciB0 aGUgb2JqZWN0IGJlaW5nIG1hcHBlZC4gKi8KKwlfX3UzMiBoYW5kbGU7CisJX191MzIgcGFkOwor CS8qKgorCSAqIEZha2Ugb2Zmc2V0IHRvIHVzZSBmb3Igc3Vic2VxdWVudCBtbWFwIGNhbGwKKwkg KgorCSAqIFRoaXMgaXMgYSBmaXhlZC1zaXplIHR5cGUgZm9yIDMyLzY0IGNvbXBhdGliaWxpdHku CisJICovCisJX191NjQgb2Zmc2V0OworCisJLyoqCisJICogRmxhZ3MgZm9yIGV4dGVuZGVkIGJl aGF2aW91ci4KKwkgKgorCSAqIEl0IGlzIG1hbmRhdG9yeSB0aGF0IGVpdGhlciBvbmUgb2YgdGhl IF9XQy9fV0IgZmxhZ3MKKwkgKiBzaG91bGQgYmUgcGFzc2VkIGhlcmUuCisJICovCisJX191NjQg ZmxhZ3M7Cit9OworCisjZGVmaW5lIExPQ0FMX0RSTV9JOTE1X0dFTV9NTUFQX09GRlNFVCAweDI0 CisjZGVmaW5lIExPQ0FMX0k5MTVfTU1BUF9PRkZTRVRfV0MgKDEgPDwgMCkKKyNkZWZpbmUgTE9D QUxfSTkxNV9NTUFQX09GRlNFVF9XQiAoMSA8PCAxKQorI2RlZmluZSBMT0NBTF9JOTE1X01NQVBf T0ZGU0VUX1VDICgxIDw8IDIpCisKKyNkZWZpbmUgTE9DQUxfRFJNX0lPQ1RMX0k5MTVfR0VNX01N QVBfT0ZGU0VUIFwKKwkJRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIExPQ0FMX0RSTV9JOTE1 X0dFTV9NTUFQX09GRlNFVCwgc3RydWN0IGxvY2FsX2RybV9pOTE1X2dlbV9tbWFwX29mZnNldCkK KworYm9vbCBoYXNfbW1hcF9vZmZzZXQoaW50IGZkKTsKKwordm9pZCAqX19nZW1fbW1hcF9vZmZz ZXQoaW50IGZkLCB1aW50MzJfdCBoYW5kbGUsIHVpbnQ2NF90IG9mZnNldCwgdWludDY0X3Qgc2l6 ZSwgdW5zaWduZWQgaW50IHByb3QsIHVpbnQ2NF90IGZsYWdzKTsKKworI2VuZGlmIC8qIEdFTV9N TUFOX0ggKi8KKwpkaWZmIC0tZ2l0IGEvbGliL2lvY3RsX3dyYXBwZXJzLmMgYi9saWIvaW9jdGxf d3JhcHBlcnMuYwppbmRleCA0MDRjMmZiZi4uYzExYjAxNDYgMTAwNjQ0Ci0tLSBhL2xpYi9pb2N0 bF93cmFwcGVycy5jCisrKyBiL2xpYi9pb2N0bF93cmFwcGVycy5jCkBAIC03MDcsMzUgKzcwNyw1 MCBAQCBib29sIGdlbV9tbWFwX19oYXNfd2MoaW50IGZkKQogCXN0YXRpYyBpbnQgaGFzX3djID0g LTE7CiAKIAlpZiAoaGFzX3djID09IC0xKSB7Ci0JCXN0cnVjdCBkcm1faTkxNV9nZXRwYXJhbSBn cDsKLQkJaW50IG1tYXBfdmVyc2lvbiA9IC0xOwotCQlpbnQgZ3R0X3ZlcnNpb24gPSAtMTsKIAog CQloYXNfd2MgPSAwOwogCi0JCW1lbXNldCgmZ3AsIDAsIHNpemVvZihncCkpOwotCQlncC5wYXJh bSA9IEk5MTVfUEFSQU1fTU1BUF9HVFRfVkVSU0lPTjsKLQkJZ3AudmFsdWUgPSAmZ3R0X3ZlcnNp b247Ci0JCWlvY3RsKGZkLCBEUk1fSU9DVExfSTkxNV9HRVRQQVJBTSwgJmdwKTsKLQotCQltZW1z ZXQoJmdwLCAwLCBzaXplb2YoZ3ApKTsKLQkJZ3AucGFyYW0gPSBJOTE1X1BBUkFNX01NQVBfVkVS U0lPTjsKLQkJZ3AudmFsdWUgPSAmbW1hcF92ZXJzaW9uOwotCQlpb2N0bChmZCwgRFJNX0lPQ1RM X0k5MTVfR0VUUEFSQU0sICZncCk7Ci0KLQkJLyogRG8gd2UgaGF2ZSB0aGUgbmV3IG1tYXBfaW9j dGwgd2l0aCBET01BSU5fV0M/ICovCi0JCWlmIChtbWFwX3ZlcnNpb24gPj0gMSAmJiBndHRfdmVy c2lvbiA+PSAyKSB7Ci0JCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX21tYXAgYXJnOworCQkvKiBEbyB3 ZSBoYXZlIHRoZSBuZXcgbW1hcF9vZmZzZXQgaW9jdGw/ICovCisJCWlmIChoYXNfbW1hcF9vZmZz ZXQoZmQpKSB7CisJCQlzdHJ1Y3QgbG9jYWxfZHJtX2k5MTVfZ2VtX21tYXBfb2Zmc2V0IGFyZzsK IAogCQkJLyogRG9lcyB0aGlzIGRldmljZSBzdXBwb3J0IHdjLW1tYXBzID8gKi8KIAkJCW1lbXNl dCgmYXJnLCAwLCBzaXplb2YoYXJnKSk7CiAJCQlhcmcuaGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwg NDA5Nik7CiAJCQlhcmcub2Zmc2V0ID0gMDsKLQkJCWFyZy5zaXplID0gNDA5NjsKLQkJCWFyZy5m bGFncyA9IEk5MTVfTU1BUF9XQzsKLQkJCWhhc193YyA9IGlndF9pb2N0bChmZCwgRFJNX0lPQ1RM X0k5MTVfR0VNX01NQVAsICZhcmcpID09IDA7CisJCQlhcmcuZmxhZ3MgPSBMT0NBTF9JOTE1X01N QVBfT0ZGU0VUX1dDOworCQkJaGFzX3djID0gaWd0X2lvY3RsKGZkLCBMT0NBTF9EUk1fSU9DVExf STkxNV9HRU1fTU1BUF9PRkZTRVQsICZhcmcpID09IDA7CiAJCQlnZW1fY2xvc2UoZmQsIGFyZy5o YW5kbGUpOworCQl9IGVsc2UgeworCQkJc3RydWN0IGRybV9pOTE1X2dldHBhcmFtIGdwOworCQkJ aW50IG1tYXBfdmVyc2lvbiA9IC0xOworCQkJaW50IGd0dF92ZXJzaW9uID0gLTE7CisKKwkJCW1l bXNldCgmZ3AsIDAsIHNpemVvZihncCkpOworCQkJZ3AucGFyYW0gPSBJOTE1X1BBUkFNX01NQVBf R1RUX1ZFUlNJT047CisJCQlncC52YWx1ZSA9ICZndHRfdmVyc2lvbjsKKwkJCWlvY3RsKGZkLCBE Uk1fSU9DVExfSTkxNV9HRVRQQVJBTSwgJmdwKTsKKworCQkJbWVtc2V0KCZncCwgMCwgc2l6ZW9m KGdwKSk7CisJCQlncC5wYXJhbSA9IEk5MTVfUEFSQU1fTU1BUF9WRVJTSU9OOworCQkJZ3AudmFs dWUgPSAmbW1hcF92ZXJzaW9uOworCQkJaW9jdGwoZmQsIERSTV9JT0NUTF9JOTE1X0dFVFBBUkFN LCAmZ3ApOworCisJCQkvKiBEbyB3ZSBoYXZlIHRoZSBtbWFwX2lvY3RsIHdpdGggRE9NQUlOX1dD PyAqLworCQkJaWYgKG1tYXBfdmVyc2lvbiA+PSAxICYmIGd0dF92ZXJzaW9uID49IDIpIHsKKwkJ CQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX21tYXAgYXJnOworCisJCQkJLyogRG9lcyB0aGlzIGRldmlj ZSBzdXBwb3J0IHdjLW1tYXBzID8gKi8KKwkJCQltZW1zZXQoJmFyZywgMCwgc2l6ZW9mKGFyZykp OworCQkJCWFyZy5oYW5kbGUgPSBnZW1fY3JlYXRlKGZkLCA0MDk2KTsKKwkJCQlhcmcub2Zmc2V0 ID0gMDsKKwkJCQlhcmcuc2l6ZSA9IDQwOTY7CisJCQkJYXJnLmZsYWdzID0gSTkxNV9NTUFQX1dD OworCQkJCWhhc193YyA9IGlndF9pb2N0bChmZCwgRFJNX0lPQ1RMX0k5MTVfR0VNX01NQVAsICZh cmcpID09IDA7CisJCQkJZ2VtX2Nsb3NlKGZkLCBhcmcuaGFuZGxlKTsKKwkJCX0KIAkJfQorCiAJ CWVycm5vID0gMDsKIAl9CiAKQEAgLTc5NSw3ICs4MTAsMTAgQEAgc3RhdGljIHZvaWQKICAqLwog dm9pZCAqX19nZW1fbW1hcF9fd2MoaW50IGZkLCB1aW50MzJfdCBoYW5kbGUsIHVpbnQ2NF90IG9m ZnNldCwgdWludDY0X3Qgc2l6ZSwgdW5zaWduZWQgcHJvdCkKIHsKLQlyZXR1cm4gX19nZW1fbW1h cChmZCwgaGFuZGxlLCBvZmZzZXQsIHNpemUsIHByb3QsIEk5MTVfTU1BUF9XQyk7CisJaWYgKGhh c19tbWFwX29mZnNldChmZCkpCisJCXJldHVybiBfX2dlbV9tbWFwX29mZnNldChmZCwgaGFuZGxl LCBvZmZzZXQsIHNpemUsIHByb3QsIExPQ0FMX0k5MTVfTU1BUF9PRkZTRVRfV0MpOworCWVsc2UK KwkJcmV0dXJuIF9fZ2VtX21tYXAoZmQsIGhhbmRsZSwgb2Zmc2V0LCBzaXplLCBwcm90LCBJOTE1 X01NQVBfV0MpOwogfQogCiAvKioKQEAgLTgzMiw3ICs4NTAsMTQgQEAgdm9pZCAqZ2VtX21tYXBf X3djKGludCBmZCwgdWludDMyX3QgaGFuZGxlLCB1aW50NjRfdCBvZmZzZXQsIHVpbnQ2NF90IHNp emUsIHVuc2kKICAqLwogdm9pZCAqX19nZW1fbW1hcF9fY3B1KGludCBmZCwgdWludDMyX3QgaGFu ZGxlLCB1aW50NjRfdCBvZmZzZXQsIHVpbnQ2NF90IHNpemUsIHVuc2lnbmVkIHByb3QpCiB7Ci0J cmV0dXJuIF9fZ2VtX21tYXAoZmQsIGhhbmRsZSwgb2Zmc2V0LCBzaXplLCBwcm90LCAwKTsKKwl2 b2lkICpwdHI7CisKKwlpZiAoaGFzX21tYXBfb2Zmc2V0KGZkKSkKKwkJcHRyID0gX19nZW1fbW1h cF9vZmZzZXQoZmQsIGhhbmRsZSwgb2Zmc2V0LCBzaXplLCBwcm90LCBMT0NBTF9JOTE1X01NQVBf T0ZGU0VUX1dCKTsKKwllbHNlCisJCXB0ciA9IF9fZ2VtX21tYXAoZmQsIGhhbmRsZSwgb2Zmc2V0 LCBzaXplLCBwcm90LCAwKTsKKworCXJldHVybiBwdHI7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEv bGliL2lvY3RsX3dyYXBwZXJzLmggYi9saWIvaW9jdGxfd3JhcHBlcnMuaAppbmRleCBiMjJiMzZi MC4uZmY0ZTc2ODEgMTAwNjQ0Ci0tLSBhL2xpYi9pb2N0bF93cmFwcGVycy5oCisrKyBiL2xpYi9p b2N0bF93cmFwcGVycy5oCkBAIC0zOCw2ICszOCw3IEBACiAKICNpbmNsdWRlICJpOTE1L2dlbV9j b250ZXh0LmgiCiAjaW5jbHVkZSAiaTkxNS9nZW1fc2NoZWR1bGVyLmgiCisjaW5jbHVkZSAiaTkx NS9nZW1fbW1hbi5oIgogCiAvKioKICAqIGlndF9pb2N0bDoKZGlmZiAtLWdpdCBhL2xpYi9tZXNv bi5idWlsZCBiL2xpYi9tZXNvbi5idWlsZAppbmRleCBkZDM2ZjgxOC4uMGViNTU4NWQgMTAwNjQ0 Ci0tLSBhL2xpYi9tZXNvbi5idWlsZAorKysgYi9saWIvbWVzb24uYnVpbGQKQEAgLTQsNiArNCw3 IEBAIGxpYl9zb3VyY2VzID0gWwogCSdpOTE1L2dlbV9zY2hlZHVsZXIuYycsCiAJJ2k5MTUvZ2Vt X3N1Ym1pc3Npb24uYycsCiAJJ2k5MTUvZ2VtX3JpbmcuYycsCisJJ2k5MTUvZ2VtX21tYW4uYycs CiAJJ2lndF9jb2xvcl9lbmNvZGluZy5jJywKIAknaWd0X2RlYnVnZnMuYycsCiAJJ2lndF9kZXZp Y2UuYycsCi0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRl dg==