From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id BAB1289B5F for ; Mon, 25 Feb 2019 18:28:14 +0000 (UTC) From: Antonio Argenziano Date: Mon, 25 Feb 2019 10:28:03 -0800 Message-Id: <20190225182804.28810-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 v3 1/2] 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 Cgp2MzoKCS0gVXNlIG1tYXAgSU9DVEwgZm9yIGxvd3IgbGV2ZWwgd3JhcHBlcnMuIChDaHJpcykK ClNpZ25lZC1vZmYtYnk6IEx1a2FzeiBLYWxhbWFyeiA8bHVrYXN6LmthbGFtYXJ6QGludGVsLmNv bT4KQ2M6IEphbnVsZ3VlIEFiZGllbCA8YWJkaWVsLmphbnVsZ3VlQGludGVsLmNvbT4KQ2M6IE1h dHRoZXcgQXVsZCA8bWF0dGhldy5hdWxkQGludGVsLmNvbT4KQ2M6IE1pY2hhbCBXaW5pYXJza2kg PG1pY2hhbC53aW5pYXJza2lAaW50ZWwuY29tPgpDYzogQW50b25pbyBBcmdlbnppYW5vIDxhbnRv bmlvLmFyZ2Vuemlhbm9AaW50ZWwuY29tPgpDYzogRGFuaWVsZSBTcHVyaW8gQ2VyYW9sbyA8ZGFu aWVsZS5jZXJhb2xvc3B1cmlvQGludGVsLmNvbT4KQ2M6IEpvb25hcyBMYWh0aW5lbiA8am9vbmFz LmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMt d2lsc29uLmNvLnVrPgpTaWduZWQtb2ZmLWJ5OiBBbnRvbmlvIEFyZ2Vuemlhbm8gPGFudG9uaW8u YXJnZW56aWFub0BpbnRlbC5jb20+Ci0tLQogbGliL2k5MTUvZ2VtX21tYW4uYyAgfCA4OSArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogbGliL2k5MTUvZ2VtX21t YW4uaCAgfCA2MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGxpYi9pb2N0bF93cmFw cGVycy5jIHwgNjcgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCiBsaWIvaW9jdGxf d3JhcHBlcnMuaCB8ICAxICsKIGxpYi9tZXNvbi5idWlsZCAgICAgIHwgIDEgKwogNSBmaWxlcyBj aGFuZ2VkLCAxOTggaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAx MDA2NDQgbGliL2k5MTUvZ2VtX21tYW4uYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9pOTE1L2dl bV9tbWFuLmgKCmRpZmYgLS1naXQgYS9saWIvaTkxNS9nZW1fbW1hbi5jIGIvbGliL2k5MTUvZ2Vt X21tYW4uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uNTRkY2FmNDIKLS0t IC9kZXYvbnVsbAorKysgYi9saWIvaTkxNS9nZW1fbW1hbi5jCkBAIC0wLDAgKzEsODkgQEAKKy8q CisgKiBDb3B5cmlnaHQgwqkgMjAwNywgMjAxMSwgMjAxMywgMjAxNCwgMjAxOSBJbnRlbCBDb3Jw b3JhdGlvbgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hh cmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUg YW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICog dG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdp dGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVy Z2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3Bp ZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAq IFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5n IGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMg cGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFs bCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRo ZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIs IFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElO Q0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM SVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdF TUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9M REVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklM SVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0Us IEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRX QVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKKyAqIElOIFRIRSBTT0ZUV0FSRS4KKyAq CisgKi8KKworI2luY2x1ZGUgPHN0ZGJvb2wuaD4KKyNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KKyNp bmNsdWRlIDxlcnJuby5oPgorCisjaW5jbHVkZSAiaWd0X2NvcmUuaCIKKyNpbmNsdWRlICJpb2N0 bF93cmFwcGVycy5oIgorCisjaW5jbHVkZSAiZ2VtX21tYW4uaCIKKworCitib29sIGhhc19tbWFw X29mZnNldChpbnQgZmQpCit7CisJc3RhdGljIGludCBoYXNfbW1hcF9vZmZzZXQgPSAtMTsKKwor CWlmIChoYXNfbW1hcF9vZmZzZXQgPT0gLTEpIHsKKwkJc3RydWN0IGRybV9pOTE1X2dldHBhcmFt IGdwOworCisJCWhhc19tbWFwX29mZnNldCA9IDA7CisKKwkJbWVtc2V0KCZncCwgMCwgc2l6ZW9m KGdwKSk7CisJCWdwLnBhcmFtID0gMHg1NTsgLyogSTkxNV9QQVJBTV9NTUFQX09GRlNFVF9WRVJT SU9OICovCisJCWdwLnZhbHVlID0gJmhhc19tbWFwX29mZnNldDsKKwkJaW9jdGwoZmQsIERSTV9J T0NUTF9JOTE1X0dFVFBBUkFNLCAmZ3ApOworCX0KKworCXJldHVybiBoYXNfbW1hcF9vZmZzZXQg PiAwOworfQorCisvKioKKyAqIF9fZ2VtX21tYXBfb2Zmc2V0OgorICogQGZkOiBvcGVuIGk5MTUg ZHJtIGZpbGUgZGVzY3JpcHRvcgorICogQGhhbmRsZTogZ2VtIGJ1ZmZlciBvYmplY3QgaGFuZGxl CisgKiBAb2Zmc2V0OiBvZmZzZXQgaW4gdGhlIGdlbSBidWZmZXIgb2YgdGhlIG1tYXAgYXJlbmEK KyAqIEBzaXplOiBzaXplIG9mIHRoZSBtbWFwIGFyZW5hCisgKiBAcHJvdDogbWVtb3J5IHByb3Rl Y3Rpb24gYml0cyBhcyB1c2VkIGJ5IG1tYXAoKQorICogQGZsYWdzOiBmbGFncyB1c2VkIHRvIGRl dGVybWluZSBjYWNoaW5nCisgKgorICogU2ltaWxhciB0byBfX2dlbV9tbWFwIGJ1dCB1c2UgTU1B UF9PRkZTRVQgSU9DVEwuCisgKgorICogUmV0dXJuczogQSBwb2ludGVyIHRvIHRoZSBjcmVhdGVk IG1lbW9yeSBtYXBwaW5nLCBOVUxMIG9uIGZhaWx1cmUuCisgKi8KK3ZvaWQKKypfX2dlbV9tbWFw X29mZnNldChpbnQgZmQsIHVpbnQzMl90IGhhbmRsZSwgdWludDY0X3Qgb2Zmc2V0LCB1aW50NjRf dCBzaXplLCB1bnNpZ25lZCBpbnQgcHJvdCwgdWludDY0X3QgZmxhZ3MpCit7CisJc3RydWN0IGxv Y2FsX2RybV9pOTE1X2dlbV9tbWFwX29mZnNldCBhcmc7CisJdm9pZCAqcHRyOworCisJbWVtc2V0 KCZhcmcsIDAsIHNpemVvZihhcmcpKTsKKwlhcmcuaGFuZGxlID0gaGFuZGxlOworCWFyZy5vZmZz ZXQgPSBvZmZzZXQ7CisJYXJnLmZsYWdzID0gZmxhZ3M7CisKKwlpZiAoaWd0X2lvY3RsKGZkLCBM T0NBTF9EUk1fSU9DVExfSTkxNV9HRU1fTU1BUF9PRkZTRVQsICZhcmcpKQorCQlyZXR1cm4gTlVM TDsKKworCXB0ciA9IG1tYXA2NCgwLCBzaXplLCBwcm90LCBNQVBfU0hBUkVELCBmZCwgYXJnLm9m ZnNldCk7CisKKwlpZiAocHRyID09IE1BUF9GQUlMRUQpCisJCXB0ciA9IE5VTEw7CisJZWxzZQor CQllcnJubyA9IDA7CisKKwlyZXR1cm4gcHRyOworfQorCmRpZmYgLS1naXQgYS9saWIvaTkxNS9n ZW1fbW1hbi5oIGIvbGliL2k5MTUvZ2VtX21tYW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMC4uMmYyNGNhOTkKLS0tIC9kZXYvbnVsbAorKysgYi9saWIvaTkxNS9nZW1fbW1h bi5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAwNywgMjAxMSwgMjAx MywgMjAxNCwgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVy ZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisg KiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxl cyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCBy ZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0 byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vu c2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0 IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywg c3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNv cHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUg bmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1 YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRX QVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVY UFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdB UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUg QVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFN QUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05U UkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBD T05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MK KyAqIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKi8KKworI2lmbmRlZiBHRU1fTU1BTl9ICisjZGVm aW5lIEdFTV9NTUFOX0gKKworc3RydWN0IGxvY2FsX2RybV9pOTE1X2dlbV9tbWFwX29mZnNldCB7 CisJLyoqIEhhbmRsZSBmb3IgdGhlIG9iamVjdCBiZWluZyBtYXBwZWQuICovCisJX191MzIgaGFu ZGxlOworCV9fdTMyIHBhZDsKKwkvKioKKwkgKiBGYWtlIG9mZnNldCB0byB1c2UgZm9yIHN1YnNl cXVlbnQgbW1hcCBjYWxsCisJICoKKwkgKiBUaGlzIGlzIGEgZml4ZWQtc2l6ZSB0eXBlIGZvciAz Mi82NCBjb21wYXRpYmlsaXR5LgorCSAqLworCV9fdTY0IG9mZnNldDsKKworCS8qKgorCSAqIEZs YWdzIGZvciBleHRlbmRlZCBiZWhhdmlvdXIuCisJICoKKwkgKiBJdCBpcyBtYW5kYXRvcnkgdGhh dCBlaXRoZXIgb25lIG9mIHRoZSBfV0MvX1dCIGZsYWdzCisJICogc2hvdWxkIGJlIHBhc3NlZCBo ZXJlLgorCSAqLworCV9fdTY0IGZsYWdzOworfTsKKworI2RlZmluZSBMT0NBTF9EUk1fSTkxNV9H RU1fTU1BUF9PRkZTRVQgMHgyNAorI2RlZmluZSBMT0NBTF9JOTE1X01NQVBfT0ZGU0VUX1dDICgx IDw8IDApCisjZGVmaW5lIExPQ0FMX0k5MTVfTU1BUF9PRkZTRVRfV0IgKDEgPDwgMSkKKyNkZWZp bmUgTE9DQUxfSTkxNV9NTUFQX09GRlNFVF9VQyAoMSA8PCAyKQorCisjZGVmaW5lIExPQ0FMX0RS TV9JT0NUTF9JOTE1X0dFTV9NTUFQX09GRlNFVCBcCisJCURSTV9JT1dSKERSTV9DT01NQU5EX0JB U0UgKyBMT0NBTF9EUk1fSTkxNV9HRU1fTU1BUF9PRkZTRVQsIHN0cnVjdCBsb2NhbF9kcm1faTkx NV9nZW1fbW1hcF9vZmZzZXQpCisKK2Jvb2wgaGFzX21tYXBfb2Zmc2V0KGludCBmZCk7CisKK3Zv aWQgKl9fZ2VtX21tYXBfb2Zmc2V0KGludCBmZCwgdWludDMyX3QgaGFuZGxlLCB1aW50NjRfdCBv ZmZzZXQsIHVpbnQ2NF90IHNpemUsIHVuc2lnbmVkIGludCBwcm90LCB1aW50NjRfdCBmbGFncyk7 CisKKyNlbmRpZiAvKiBHRU1fTU1BTl9IICovCisKZGlmZiAtLWdpdCBhL2xpYi9pb2N0bF93cmFw cGVycy5jIGIvbGliL2lvY3RsX3dyYXBwZXJzLmMKaW5kZXggNDA0YzJmYmYuLjczYTkyN2YxIDEw MDY0NAotLS0gYS9saWIvaW9jdGxfd3JhcHBlcnMuYworKysgYi9saWIvaW9jdGxfd3JhcHBlcnMu YwpAQCAtNzA3LDM1ICs3MDcsNTAgQEAgYm9vbCBnZW1fbW1hcF9faGFzX3djKGludCBmZCkKIAlz dGF0aWMgaW50IGhhc193YyA9IC0xOwogCiAJaWYgKGhhc193YyA9PSAtMSkgewotCQlzdHJ1Y3Qg ZHJtX2k5MTVfZ2V0cGFyYW0gZ3A7Ci0JCWludCBtbWFwX3ZlcnNpb24gPSAtMTsKLQkJaW50IGd0 dF92ZXJzaW9uID0gLTE7CiAKIAkJaGFzX3djID0gMDsKIAotCQltZW1zZXQoJmdwLCAwLCBzaXpl b2YoZ3ApKTsKLQkJZ3AucGFyYW0gPSBJOTE1X1BBUkFNX01NQVBfR1RUX1ZFUlNJT047Ci0JCWdw LnZhbHVlID0gJmd0dF92ZXJzaW9uOwotCQlpb2N0bChmZCwgRFJNX0lPQ1RMX0k5MTVfR0VUUEFS QU0sICZncCk7Ci0KLQkJbWVtc2V0KCZncCwgMCwgc2l6ZW9mKGdwKSk7Ci0JCWdwLnBhcmFtID0g STkxNV9QQVJBTV9NTUFQX1ZFUlNJT047Ci0JCWdwLnZhbHVlID0gJm1tYXBfdmVyc2lvbjsKLQkJ aW9jdGwoZmQsIERSTV9JT0NUTF9JOTE1X0dFVFBBUkFNLCAmZ3ApOwotCi0JCS8qIERvIHdlIGhh dmUgdGhlIG5ldyBtbWFwX2lvY3RsIHdpdGggRE9NQUlOX1dDPyAqLwotCQlpZiAobW1hcF92ZXJz aW9uID49IDEgJiYgZ3R0X3ZlcnNpb24gPj0gMikgewotCQkJc3RydWN0IGRybV9pOTE1X2dlbV9t bWFwIGFyZzsKKwkJLyogRG8gd2UgaGF2ZSB0aGUgbmV3IG1tYXBfb2Zmc2V0IGlvY3RsPyAqLwor CQlpZiAoaGFzX21tYXBfb2Zmc2V0KGZkKSkgeworCQkJc3RydWN0IGxvY2FsX2RybV9pOTE1X2dl bV9tbWFwX29mZnNldCBhcmc7CiAKIAkJCS8qIERvZXMgdGhpcyBkZXZpY2Ugc3VwcG9ydCB3Yy1t bWFwcyA/ICovCiAJCQltZW1zZXQoJmFyZywgMCwgc2l6ZW9mKGFyZykpOwogCQkJYXJnLmhhbmRs ZSA9IGdlbV9jcmVhdGUoZmQsIDQwOTYpOwogCQkJYXJnLm9mZnNldCA9IDA7Ci0JCQlhcmcuc2l6 ZSA9IDQwOTY7Ci0JCQlhcmcuZmxhZ3MgPSBJOTE1X01NQVBfV0M7Ci0JCQloYXNfd2MgPSBpZ3Rf aW9jdGwoZmQsIERSTV9JT0NUTF9JOTE1X0dFTV9NTUFQLCAmYXJnKSA9PSAwOworCQkJYXJnLmZs YWdzID0gTE9DQUxfSTkxNV9NTUFQX09GRlNFVF9XQzsKKwkJCWhhc193YyA9IGlndF9pb2N0bChm ZCwgTE9DQUxfRFJNX0lPQ1RMX0k5MTVfR0VNX01NQVBfT0ZGU0VULCAmYXJnKSA9PSAwOwogCQkJ Z2VtX2Nsb3NlKGZkLCBhcmcuaGFuZGxlKTsKKwkJfSBlbHNlIHsKKwkJCXN0cnVjdCBkcm1faTkx NV9nZXRwYXJhbSBncDsKKwkJCWludCBtbWFwX3ZlcnNpb24gPSAtMTsKKwkJCWludCBndHRfdmVy c2lvbiA9IC0xOworCisJCQltZW1zZXQoJmdwLCAwLCBzaXplb2YoZ3ApKTsKKwkJCWdwLnBhcmFt ID0gSTkxNV9QQVJBTV9NTUFQX0dUVF9WRVJTSU9OOworCQkJZ3AudmFsdWUgPSAmZ3R0X3ZlcnNp b247CisJCQlpb2N0bChmZCwgRFJNX0lPQ1RMX0k5MTVfR0VUUEFSQU0sICZncCk7CisKKwkJCW1l bXNldCgmZ3AsIDAsIHNpemVvZihncCkpOworCQkJZ3AucGFyYW0gPSBJOTE1X1BBUkFNX01NQVBf VkVSU0lPTjsKKwkJCWdwLnZhbHVlID0gJm1tYXBfdmVyc2lvbjsKKwkJCWlvY3RsKGZkLCBEUk1f SU9DVExfSTkxNV9HRVRQQVJBTSwgJmdwKTsKKworCQkJLyogRG8gd2UgaGF2ZSB0aGUgbW1hcF9p b2N0bCB3aXRoIERPTUFJTl9XQz8gKi8KKwkJCWlmIChtbWFwX3ZlcnNpb24gPj0gMSAmJiBndHRf dmVyc2lvbiA+PSAyKSB7CisJCQkJc3RydWN0IGRybV9pOTE1X2dlbV9tbWFwIGFyZzsKKworCQkJ CS8qIERvZXMgdGhpcyBkZXZpY2Ugc3VwcG9ydCB3Yy1tbWFwcyA/ICovCisJCQkJbWVtc2V0KCZh cmcsIDAsIHNpemVvZihhcmcpKTsKKwkJCQlhcmcuaGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwgNDA5 Nik7CisJCQkJYXJnLm9mZnNldCA9IDA7CisJCQkJYXJnLnNpemUgPSA0MDk2OworCQkJCWFyZy5m bGFncyA9IEk5MTVfTU1BUF9XQzsKKwkJCQloYXNfd2MgPSBpZ3RfaW9jdGwoZmQsIERSTV9JT0NU TF9JOTE1X0dFTV9NTUFQLCAmYXJnKSA9PSAwOworCQkJCWdlbV9jbG9zZShmZCwgYXJnLmhhbmRs ZSk7CisJCQl9CiAJCX0KKwogCQllcnJubyA9IDA7CiAJfQogCkBAIC04MTIsNyArODI3LDEyIEBA IHZvaWQgKl9fZ2VtX21tYXBfX3djKGludCBmZCwgdWludDMyX3QgaGFuZGxlLCB1aW50NjRfdCBv ZmZzZXQsIHVpbnQ2NF90IHNpemUsIHVuCiAgKi8KIHZvaWQgKmdlbV9tbWFwX193YyhpbnQgZmQs IHVpbnQzMl90IGhhbmRsZSwgdWludDY0X3Qgb2Zmc2V0LCB1aW50NjRfdCBzaXplLCB1bnNpZ25l ZCBwcm90KQogewotCXZvaWQgKnB0ciA9IF9fZ2VtX21tYXBfX3djKGZkLCBoYW5kbGUsIG9mZnNl dCwgc2l6ZSwgcHJvdCk7CisJdm9pZCAqcHRyOworCisJcHRyID0gX19nZW1fbW1hcF9vZmZzZXQo ZmQsIGhhbmRsZSwgb2Zmc2V0LCBzaXplLCBwcm90LCBMT0NBTF9JOTE1X01NQVBfT0ZGU0VUX1dD KTsKKwlpZiAoIXB0cikKKwkJcHRyID0gX19nZW1fbW1hcF9fd2MoZmQsIGhhbmRsZSwgb2Zmc2V0 LCBzaXplLCBwcm90KTsKKwogCWlndF9hc3NlcnQocHRyKTsKIAlyZXR1cm4gcHRyOwogfQpAQCAt ODQ5LDcgKzg2OSwxMiBAQCB2b2lkICpfX2dlbV9tbWFwX19jcHUoaW50IGZkLCB1aW50MzJfdCBo YW5kbGUsIHVpbnQ2NF90IG9mZnNldCwgdWludDY0X3Qgc2l6ZSwgdQogICovCiB2b2lkICpnZW1f bW1hcF9fY3B1KGludCBmZCwgdWludDMyX3QgaGFuZGxlLCB1aW50NjRfdCBvZmZzZXQsIHVpbnQ2 NF90IHNpemUsIHVuc2lnbmVkIHByb3QpCiB7Ci0Jdm9pZCAqcHRyID0gX19nZW1fbW1hcF9fY3B1 KGZkLCBoYW5kbGUsIG9mZnNldCwgc2l6ZSwgcHJvdCk7CisJdm9pZCAqcHRyOworCisJcHRyID0g X19nZW1fbW1hcF9vZmZzZXQoZmQsIGhhbmRsZSwgb2Zmc2V0LCBzaXplLCBwcm90LCBMT0NBTF9J OTE1X01NQVBfT0ZGU0VUX1dCKTsKKwlpZiAoIXB0cikKKwkJcHRyID0gX19nZW1fbW1hcChmZCwg aGFuZGxlLCBvZmZzZXQsIHNpemUsIHByb3QsIDApOworCiAJaWd0X2Fzc2VydChwdHIpOwogCXJl dHVybiBwdHI7CiB9CmRpZmYgLS1naXQgYS9saWIvaW9jdGxfd3JhcHBlcnMuaCBiL2xpYi9pb2N0 bF93cmFwcGVycy5oCmluZGV4IGIyMmIzNmIwLi5mZjRlNzY4MSAxMDA2NDQKLS0tIGEvbGliL2lv Y3RsX3dyYXBwZXJzLmgKKysrIGIvbGliL2lvY3RsX3dyYXBwZXJzLmgKQEAgLTM4LDYgKzM4LDcg QEAKIAogI2luY2x1ZGUgImk5MTUvZ2VtX2NvbnRleHQuaCIKICNpbmNsdWRlICJpOTE1L2dlbV9z Y2hlZHVsZXIuaCIKKyNpbmNsdWRlICJpOTE1L2dlbV9tbWFuLmgiCiAKIC8qKgogICogaWd0X2lv Y3RsOgpkaWZmIC0tZ2l0IGEvbGliL21lc29uLmJ1aWxkIGIvbGliL21lc29uLmJ1aWxkCmluZGV4 IGRkMzZmODE4Li4wZWI1NTg1ZCAxMDA2NDQKLS0tIGEvbGliL21lc29uLmJ1aWxkCisrKyBiL2xp Yi9tZXNvbi5idWlsZApAQCAtNCw2ICs0LDcgQEAgbGliX3NvdXJjZXMgPSBbCiAJJ2k5MTUvZ2Vt X3NjaGVkdWxlci5jJywKIAknaTkxNS9nZW1fc3VibWlzc2lvbi5jJywKIAknaTkxNS9nZW1fcmlu Zy5jJywKKwknaTkxNS9nZW1fbW1hbi5jJywKIAknaWd0X2NvbG9yX2VuY29kaW5nLmMnLAogCSdp Z3RfZGVidWdmcy5jJywKIAknaWd0X2RldmljZS5jJywKLS0gCjIuMjAuMQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QK aWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2