From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 77C1A6E4EA for ; Thu, 21 Jan 2021 08:37:51 +0000 (UTC) From: Ashutosh Dixit Date: Thu, 21 Jan 2021 00:37:42 -0800 Message-Id: <20210121083742.46592-1-ashutosh.dixit@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t] lib/ioctl_wrappers: Keep IGT working without pread/pwrite ioctls 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 List-ID: VGhlIGdlbmVyYWwgZGlyZWN0aW9uIGF0IHRoaXMgdGltZSBpcyB0byBwaGFzZSBvdXQgcHJlYWQv d3JpdGUgaW9jdGxzCmFuZCBub3Qgc3VwcG9ydCB0aGVtIGluIGZ1dHVyZSBwcm9kdWN0cy4gVGhp cyBtZWFucyBJR1QgbXVzdCBoYW5kbGUKdGhlIGFic2VuY2Ugb2YgdGhlc2UgaW9jdGxzLiBUaGlz IHBhdGNoIGRvZXMgdGhpcyBieSBtb2RpZnlpbmcKZ2VtX3JlYWQoKSBhbmQgZ2VtX3dyaXRlKCkg dG8gZG8gdGhlIHJlYWQvd3JpdGUgdXNpbmcgdGhlIHByZWFkL3B3cml0ZQppb2N0bHMgZmlyc3Qg YnV0IHdoZW4gdGhlc2UgaW9jdGxzIGFyZSB1bmF2YWlsYWJsZSBmYWxsIGJhY2sgdG8gZG9pbmcK dGhlIHJlYWQvd3JpdGUgdXNpbmcgYSBjb21iaW5hdGlvbiBvZiBtbWFwIGFuZCBtZW1jcHkuCgpD YWxsZXJzIHdobyBtdXN0IGFic29sdXRlbHkgdXNlIHRoZSBwcmVhZC9wd3JpdGUgaW9jdGxzIChz dWNoIGFzIHRlc3RzCndoaWNoIHRlc3QgdGhlc2UgaW9jdGxzIG9yIG11c3Qgb3RoZXJ3aXNlIG9u bHkgdXNlIHRoZSBwcmVhZC9wd3JpdGUKaW9jdGxzKSBtdXN0IHVzZSBnZW1fcmVxdWlyZV9wcmVh ZF9wd3JpdGUoKSB0byBza2lwIHdoZW4gdGhlc2UgaW9jdGxzCmFyZSBub3QgYXZhaWxhYmxlLgoK djE6IFJlbW92ZWQgX19nZW1fcHJlYWQsIGdlbV9wcmVhZCwgX19nZW1fcHdyaXRlIGFuZCBnZW1f cHdyaXRlCiAgICBpbnRyb2R1Y2VkIHByZXZpb3VzbHkgc2luY2UgdGhleSBhcmUgbm90IG5lY2Vz c2FyeSwKICAgIGdlbV9yZXF1aXJlX3ByZWFkX3B3cml0ZSBpcyBzdWZmaWNpZW50CnYyOiBGaXgg Q0kgZmFpbHVyZXMgaW4gZ2VtX2FkdmlzZSBhbmQgZ2VuOV9leGVjX3BhcnNlIGJ5IGludHJvZHVj aW5nCiAgICBnZW1fcmVxdWlyZV9wcmVhZF9wd3JpdGUKdjM6IFNraXAgbW1hcCBmb3IgMCBsZW5n dGggcmVhZC93cml0ZSdzCnY0OiBSZW1vdmUgcmVkdW5kYW50IGlndF9hc3NlcnQncwp2NTogUmUt cnVuCnY2OiBzL0VPUE5PVFNVUFAvLUVPUE5PVFNVUFAvCnY3OiBSZWJhc2Ugb24gbGF0ZXN0IG1h c3Rlciwgc2tpcCBnZW1fZXhlY19wYXJhbGxlbEB1c2VycHRyIHdpdGgKICAgIGdlbV9yZXF1aXJl X3ByZWFkX3B3cml0ZQoKUmV2aWV3ZWQtYnk6IFpiaWduaWV3IEtlbXBjennFhHNraSA8emJpZ25p ZXcua2VtcGN6eW5za2lAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBBc2h1dG9zaCBEaXhpdCA8 YXNodXRvc2guZGl4aXRAaW50ZWwuY29tPgotLS0KIGxpYi9pb2N0bF93cmFwcGVycy5jICAgICAg ICAgICAgICAgICAgICAgICAgfCAxMzUgKysrKysrKysrKysrKysrKysrKy0KIGxpYi9pb2N0bF93 cmFwcGVycy5oICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogdGVzdHMvaTkxNS9nZW1f ZXhlY19wYXJhbGxlbC5jICAgICAgICAgICAgICB8ICAgMyArCiB0ZXN0cy9pOTE1L2dlbV9tYWR2 aXNlLmMgICAgICAgICAgICAgICAgICAgIHwgICAyICsKIHRlc3RzL2k5MTUvZ2VtX3BhcnRpYWxf cHdyaXRlX3ByZWFkLmMgICAgICAgfCAgIDEgKwogdGVzdHMvaTkxNS9nZW1fcHJlYWQuYyAgICAg ICAgICAgICAgICAgICAgICB8ICAgMSArCiB0ZXN0cy9pOTE1L2dlbV9wcmVhZF9hZnRlcl9ibGl0 LmMgICAgICAgICAgIHwgICAxICsKIHRlc3RzL2k5MTUvZ2VtX3B3cml0ZS5jICAgICAgICAgICAg ICAgICAgICAgfCAgIDEgKwogdGVzdHMvaTkxNS9nZW1fcHdyaXRlX3Nub29wZWQuYyAgICAgICAg ICAgICB8ICAgMSArCiB0ZXN0cy9pOTE1L2dlbV9yZWFkd3JpdGUuYyAgICAgICAgICAgICAgICAg IHwgICAxICsKIHRlc3RzL2k5MTUvZ2VtX3NldF90aWxpbmdfdnNfcHdyaXRlLmMgICAgICAgfCAg IDEgKwogdGVzdHMvaTkxNS9nZW1fdGlsZWRfcGFydGlhbF9wd3JpdGVfcHJlYWQuYyB8ICAgMSAr CiB0ZXN0cy9pOTE1L2dlbV90aWxlZF9wcmVhZF9iYXNpYy5jICAgICAgICAgIHwgICAxICsKIHRl c3RzL2k5MTUvZ2VtX3RpbGVkX3ByZWFkX3B3cml0ZS5jICAgICAgICAgfCAgIDEgKwogdGVzdHMv aTkxNS9nZW1fdXNlcnB0cl9ibGl0cy5jICAgICAgICAgICAgICB8ICAgMiArCiB0ZXN0cy9pOTE1 L2dlbjlfZXhlY19wYXJzZS5jICAgICAgICAgICAgICAgIHwgICA0ICstCiAxNiBmaWxlcyBjaGFu Z2VkLCAxNTIgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWIv aW9jdGxfd3JhcHBlcnMuYyBiL2xpYi9pb2N0bF93cmFwcGVycy5jCmluZGV4IDQ1NDE1NjIxYjcu LjQ0NDAwMDRjNDIgMTAwNjQ0Ci0tLSBhL2xpYi9pb2N0bF93cmFwcGVycy5jCisrKyBiL2xpYi9p b2N0bF93cmFwcGVycy5jCkBAIC01Niw2ICs1Niw3IEBACiAjaW5jbHVkZSAiaWd0X2RlYnVnZnMu aCIKICNpbmNsdWRlICJpZ3Rfc3lzZnMuaCIKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl ICJpOTE1L2dlbV9tbWFuLmgiCiAKICNpZmRlZiBIQVZFX1ZBTEdSSU5ECiAjaW5jbHVkZSA8dmFs Z3JpbmQvdmFsZ3JpbmQuaD4KQEAgLTMyNCw2ICszMjUsNzAgQEAgdm9pZCBnZW1fY2xvc2UoaW50 IGZkLCB1aW50MzJfdCBoYW5kbGUpCiAJZG9faW9jdGwoZmQsIERSTV9JT0NUTF9HRU1fQ0xPU0Us ICZjbG9zZV9ibyk7CiB9CiAKK3N0YXRpYyBib29sIGlzX2NhY2hlX2NvaGVyZW50KGludCBmZCwg dWludDMyX3QgaGFuZGxlKQoreworCXJldHVybiBnZW1fZ2V0X2NhY2hpbmcoZmQsIGhhbmRsZSkg IT0gSTkxNV9DQUNISU5HX05PTkU7Cit9CisKK3N0YXRpYyB2b2lkIG1tYXBfd3JpdGUoaW50IGZk LCB1aW50MzJfdCBoYW5kbGUsIHVpbnQ2NF90IG9mZnNldCwKKwkJICAgICAgIGNvbnN0IHZvaWQg KmJ1ZiwgdWludDY0X3QgbGVuZ3RoKQoreworCXZvaWQgKm1hcCA9IE5VTEw7CisKKwlpZiAoIWxl bmd0aCkKKwkJcmV0dXJuOworCisJaWYgKGlzX2NhY2hlX2NvaGVyZW50KGZkLCBoYW5kbGUpKSB7 CisJCS8qIG9mZnNldCBhcmcgZm9yIG1tYXAgZnVuY3Rpb25zIG11c3QgYmUgMCAqLworCQltYXAg PSBfX2dlbV9tbWFwX19jcHVfY29oZXJlbnQoZmQsIGhhbmRsZSwgMCwgb2Zmc2V0ICsgbGVuZ3Ro LAorCQkJCQkgICAgICAgUFJPVF9SRUFEIHwgUFJPVF9XUklURSk7CisJCWlmIChtYXApCisJCQln ZW1fc2V0X2RvbWFpbihmZCwgaGFuZGxlLAorCQkJCSAgICAgICBJOTE1X0dFTV9ET01BSU5fQ1BV LCBJOTE1X0dFTV9ET01BSU5fQ1BVKTsKKwl9CisKKwlpZiAoIW1hcCkgeworCQltYXAgPSBfX2dl bV9tbWFwX29mZnNldF9fd2MoZmQsIGhhbmRsZSwgMCwgb2Zmc2V0ICsgbGVuZ3RoLAorCQkJCQkg ICAgUFJPVF9SRUFEIHwgUFJPVF9XUklURSk7CisJCWlmICghbWFwKQorCQkJbWFwID0gZ2VtX21t YXBfX3djKGZkLCBoYW5kbGUsIDAsIG9mZnNldCArIGxlbmd0aCwKKwkJCQkJICAgUFJPVF9SRUFE IHwgUFJPVF9XUklURSk7CisJCWdlbV9zZXRfZG9tYWluKGZkLCBoYW5kbGUsCisJCQkgICAgICAg STkxNV9HRU1fRE9NQUlOX1dDLCBJOTE1X0dFTV9ET01BSU5fV0MpOworCX0KKworCW1lbWNweSht YXAgKyBvZmZzZXQsIGJ1ZiwgbGVuZ3RoKTsKKwltdW5tYXAobWFwLCBvZmZzZXQgKyBsZW5ndGgp OworfQorCitzdGF0aWMgdm9pZCBtbWFwX3JlYWQoaW50IGZkLCB1aW50MzJfdCBoYW5kbGUsIHVp bnQ2NF90IG9mZnNldCwgdm9pZCAqYnVmLCB1aW50NjRfdCBsZW5ndGgpCit7CisJdm9pZCAqbWFw ID0gTlVMTDsKKworCWlmICghbGVuZ3RoKQorCQlyZXR1cm47CisKKwlpZiAoZ2VtX2hhc19sbGMo ZmQpIHx8IGlzX2NhY2hlX2NvaGVyZW50KGZkLCBoYW5kbGUpKSB7CisJCS8qIG9mZnNldCBhcmcg Zm9yIG1tYXAgZnVuY3Rpb25zIG11c3QgYmUgMCAqLworCQltYXAgPSBfX2dlbV9tbWFwX19jcHVf Y29oZXJlbnQoZmQsIGhhbmRsZSwgMCwKKwkJCQkJICAgICAgIG9mZnNldCArIGxlbmd0aCwgUFJP VF9SRUFEKTsKKwkJaWYgKG1hcCkKKwkJCWdlbV9zZXRfZG9tYWluKGZkLCBoYW5kbGUsIEk5MTVf R0VNX0RPTUFJTl9DUFUsIDApOworCX0KKworCWlmICghbWFwKSB7CisJCW1hcCA9IF9fZ2VtX21t YXBfb2Zmc2V0X193YyhmZCwgaGFuZGxlLCAwLCBvZmZzZXQgKyBsZW5ndGgsCisJCQkJCSAgICBQ Uk9UX1JFQUQpOworCQlpZiAoIW1hcCkKKwkJCW1hcCA9IGdlbV9tbWFwX193YyhmZCwgaGFuZGxl LCAwLCBvZmZzZXQgKyBsZW5ndGgsCisJCQkJCSAgIFBST1RfUkVBRCk7CisJCWdlbV9zZXRfZG9t YWluKGZkLCBoYW5kbGUsIEk5MTVfR0VNX0RPTUFJTl9XQywgMCk7CisJfQorCisJbWVtY3B5KGJ1 ZiwgbWFwICsgb2Zmc2V0LCBsZW5ndGgpOworCW11bm1hcChtYXAsIG9mZnNldCArIGxlbmd0aCk7 Cit9CisKIGludCBfX2dlbV93cml0ZShpbnQgZmQsIHVpbnQzMl90IGhhbmRsZSwgdWludDY0X3Qg b2Zmc2V0LCBjb25zdCB2b2lkICpidWYsIHVpbnQ2NF90IGxlbmd0aCkKIHsKIAlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3B3cml0ZSBnZW1fcHdyaXRlOwpAQCAtMzQ5LDEyICs0MTQsMTggQEAgaW50IF9f Z2VtX3dyaXRlKGludCBmZCwgdWludDMyX3QgaGFuZGxlLCB1aW50NjRfdCBvZmZzZXQsIGNvbnN0 IHZvaWQgKmJ1ZiwgdWludDYKICAqIEBidWY6IHBvaW50ZXIgdG8gdGhlIGRhdGEgdG8gd3JpdGUg aW50byB0aGUgYnVmZmVyCiAgKiBAbGVuZ3RoOiBzaXplIG9mIHRoZSBzdWJyYW5nZQogICoKLSAq IFRoaXMgd3JhcHMgdGhlIFBXUklURSBpb2N0bCwgd2hpY2ggaXMgdG8gdXBsb2FkIGEgbGluZWFy IGRhdGEgdG8gYSBzdWJyYW5nZQotICogb2YgYSBnZW0gYnVmZmVyIG9iamVjdC4KKyAqIE1ldGhv ZCB0byB3cml0ZSB0byBhIGdlbSBvYmplY3QuIFVzZXMgdGhlIFBXUklURSBpb2N0bCB3aGVuIGl0 IGlzCisgKiBhdmFpbGFibGUsIGVsc2UgaXQgdXNlcyBtbWFwICsgbWVtY3B5IHRvIHVwbG9hZCBs aW5lYXIgZGF0YSB0byBhCisgKiBzdWJyYW5nZSBvZiBhIGdlbSBidWZmZXIgb2JqZWN0LgogICov CiB2b2lkIGdlbV93cml0ZShpbnQgZmQsIHVpbnQzMl90IGhhbmRsZSwgdWludDY0X3Qgb2Zmc2V0 LCBjb25zdCB2b2lkICpidWYsIHVpbnQ2NF90IGxlbmd0aCkKIHsKLQlpZ3RfYXNzZXJ0X2VxKF9f Z2VtX3dyaXRlKGZkLCBoYW5kbGUsIG9mZnNldCwgYnVmLCBsZW5ndGgpLCAwKTsKKwlpbnQgcmV0 ID0gX19nZW1fd3JpdGUoZmQsIGhhbmRsZSwgb2Zmc2V0LCBidWYsIGxlbmd0aCk7CisKKwlpZ3Rf YXNzZXJ0KHJldCA9PSAwIHx8IHJldCA9PSAtRU9QTk9UU1VQUCk7CisKKwlpZiAocmV0ID09IC1F T1BOT1RTVVBQKQorCQltbWFwX3dyaXRlKGZkLCBoYW5kbGUsIG9mZnNldCwgYnVmLCBsZW5ndGgp OwogfQogCiBpbnQgX19nZW1fcmVhZChpbnQgZmQsIHVpbnQzMl90IGhhbmRsZSwgdWludDY0X3Qg b2Zmc2V0LCB2b2lkICpidWYsIHVpbnQ2NF90IGxlbmd0aCkKQEAgLTM4MSwxMiArNDUyLDY0IEBA IGludCBfX2dlbV9yZWFkKGludCBmZCwgdWludDMyX3QgaGFuZGxlLCB1aW50NjRfdCBvZmZzZXQs IHZvaWQgKmJ1ZiwgdWludDY0X3QgbGVuCiAgKiBAYnVmOiBwb2ludGVyIHRvIHRoZSBkYXRhIHRv IHJlYWQgaW50bwogICogQGxlbmd0aDogc2l6ZSBvZiB0aGUgc3VicmFuZ2UKICAqCi0gKiBUaGlz IHdyYXBzIHRoZSBQUkVBRCBpb2N0bCwgd2hpY2ggaXMgdG8gZG93bmxvYWQgYSBsaW5lYXIgZGF0 YSB0byBhIHN1YnJhbmdlCi0gKiBvZiBhIGdlbSBidWZmZXIgb2JqZWN0LgorICogTWV0aG9kIHRv IHJlYWQgZnJvbSBhIGdlbSBvYmplY3QuIFVzZXMgdGhlIFBSRUFEIGlvY3RsIHdoZW4gaXQgaXMK KyAqIGF2YWlsYWJsZSwgZWxzZSBpdCB1c2VzIG1tYXAgKyBtZW1jcHkgdG8gZG93bmxvYWQgbGlu ZWFyIGRhdGEgZnJvbSBhCisgKiBzdWJyYW5nZSBvZiBhIGdlbSBidWZmZXIgb2JqZWN0LgogICov CiB2b2lkIGdlbV9yZWFkKGludCBmZCwgdWludDMyX3QgaGFuZGxlLCB1aW50NjRfdCBvZmZzZXQs IHZvaWQgKmJ1ZiwgdWludDY0X3QgbGVuZ3RoKQogewotCWlndF9hc3NlcnRfZXEoX19nZW1fcmVh ZChmZCwgaGFuZGxlLCBvZmZzZXQsIGJ1ZiwgbGVuZ3RoKSwgMCk7CisJaW50IHJldCA9IF9fZ2Vt X3JlYWQoZmQsIGhhbmRsZSwgb2Zmc2V0LCBidWYsIGxlbmd0aCk7CisKKwlpZ3RfYXNzZXJ0KHJl dCA9PSAwIHx8IHJldCA9PSAtRU9QTk9UU1VQUCk7CisKKwlpZiAocmV0ID09IC1FT1BOT1RTVVBQ KQorCQltbWFwX3JlYWQoZmQsIGhhbmRsZSwgb2Zmc2V0LCBidWYsIGxlbmd0aCk7Cit9CisKKy8q KgorICogZ2VtX2hhc19wd3JpdGUKKyAqIEBmZDogb3BlbiBpOTE1IGRybSBmaWxlIGRlc2NyaXB0 b3IKKyAqCisgKiBGZWF0dXJlIHRlc3QgbWFjcm8gdG8gcXVlcnkgd2hldGhlciBwd3JpdGUgaW9j dGwgaXMgc3VwcG9ydGVkCisgKi8KK2Jvb2wgZ2VtX2hhc19wd3JpdGUoaW50IGZkKQoreworCXVp bnQzMl90IGhhbmRsZSA9IGdlbV9jcmVhdGUoZmQsIDQwOTYpOworCWludCBidWYsIHJldDsKKwor CXJldCA9IF9fZ2VtX3dyaXRlKGZkLCBoYW5kbGUsIDAsICZidWYsIHNpemVvZihidWYpKTsKKwln ZW1fY2xvc2UoZmQsIGhhbmRsZSk7CisKKwlyZXR1cm4gcmV0ICE9IC1FT1BOT1RTVVBQOworfQor CisvKioKKyAqIGdlbV9oYXNfcHJlYWQKKyAqIEBmZDogb3BlbiBpOTE1IGRybSBmaWxlIGRlc2Ny aXB0b3IKKyAqCisgKiBGZWF0dXJlIHRlc3QgbWFjcm8gdG8gcXVlcnkgd2hldGhlciBwcmVhZCBp b2N0bCBpcyBzdXBwb3J0ZWQKKyAqLworYm9vbCBnZW1faGFzX3ByZWFkKGludCBmZCkKK3sKKwl1 aW50MzJfdCBoYW5kbGUgPSBnZW1fY3JlYXRlKGZkLCA0MDk2KTsKKwlpbnQgYnVmLCByZXQ7CisK KwlyZXQgPSBfX2dlbV9yZWFkKGZkLCBoYW5kbGUsIDAsICZidWYsIHNpemVvZihidWYpKTsKKwln ZW1fY2xvc2UoZmQsIGhhbmRsZSk7CisKKwlyZXR1cm4gcmV0ICE9IC1FT1BOT1RTVVBQOworfQor CisvKioKKyAqIGdlbV9yZXF1aXJlX3ByZWFkX3B3cml0ZQorICogQGZkOiBvcGVuIGk5MTUgZHJt IGZpbGUgZGVzY3JpcHRvcgorICoKKyAqIEZlYXR1cmUgdGVzdCBtYWNybyB0byBxdWVyeSB3aGV0 aGVyIHByZWFkL3B3cml0ZSBpb2N0bHMgYXJlIHN1cHBvcnRlZAorICogYW5kIHNraXAgaWYgdGhl eSBhcmUgbm90CisgKi8KK3ZvaWQgZ2VtX3JlcXVpcmVfcHJlYWRfcHdyaXRlKGludCBmZCkKK3sK KwlpZ3RfcmVxdWlyZShnZW1faGFzX3ByZWFkKGZkKSAmJiBnZW1faGFzX3B3cml0ZShmZCkpOwog fQogCiBpbnQgX19nZW1fc2V0X2RvbWFpbihpbnQgZmQsIHVpbnQzMl90IGhhbmRsZSwgdWludDMy X3QgcmVhZCwgdWludDMyX3Qgd3JpdGUpCmRpZmYgLS1naXQgYS9saWIvaW9jdGxfd3JhcHBlcnMu aCBiL2xpYi9pb2N0bF93cmFwcGVycy5oCmluZGV4IDY5ZTE5ODQxOWMuLjllYTY3MzY1M2UgMTAw NjQ0Ci0tLSBhL2xpYi9pb2N0bF93cmFwcGVycy5oCisrKyBiL2xpYi9pb2N0bF93cmFwcGVycy5o CkBAIC03MSw2ICs3MSw5IEBAIGludCBfX2dlbV93cml0ZShpbnQgZmQsIHVpbnQzMl90IGhhbmRs ZSwgdWludDY0X3Qgb2Zmc2V0LCBjb25zdCB2b2lkICpidWYsIHVpbnQ2CiB2b2lkIGdlbV93cml0 ZShpbnQgZmQsIHVpbnQzMl90IGhhbmRsZSwgdWludDY0X3Qgb2Zmc2V0LCAgY29uc3Qgdm9pZCAq YnVmLCB1aW50NjRfdCBsZW5ndGgpOwogaW50IF9fZ2VtX3JlYWQoaW50IGZkLCB1aW50MzJfdCBo YW5kbGUsIHVpbnQ2NF90IG9mZnNldCwgdm9pZCAqYnVmLCB1aW50NjRfdCBsZW5ndGgpOwogdm9p ZCBnZW1fcmVhZChpbnQgZmQsIHVpbnQzMl90IGhhbmRsZSwgdWludDY0X3Qgb2Zmc2V0LCB2b2lk ICpidWYsIHVpbnQ2NF90IGxlbmd0aCk7Citib29sIGdlbV9oYXNfcHdyaXRlKGludCBmZCk7Citi b29sIGdlbV9oYXNfcHJlYWQoaW50IGZkKTsKK3ZvaWQgZ2VtX3JlcXVpcmVfcHJlYWRfcHdyaXRl KGludCBmZCk7CiBpbnQgX19nZW1fc2V0X2RvbWFpbihpbnQgZmQsIHVpbnQzMl90IGhhbmRsZSwg dWludDMyX3QgcmVhZCwgdWludDMyX3Qgd3JpdGUpOwogdm9pZCBnZW1fc2V0X2RvbWFpbihpbnQg ZmQsIHVpbnQzMl90IGhhbmRsZSwgdWludDMyX3QgcmVhZCwgdWludDMyX3Qgd3JpdGUpOwogaW50 IGdlbV93YWl0KGludCBmZCwgdWludDMyX3QgaGFuZGxlLCBpbnQ2NF90ICp0aW1lb3V0X25zKTsK ZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfcGFyYWxsZWwuYyBiL3Rlc3RzL2k5MTUv Z2VtX2V4ZWNfcGFyYWxsZWwuYwppbmRleCBkM2RkMDZhNjU0Li5hMDQ2OWE2NDM4IDEwMDY0NAot LS0gYS90ZXN0cy9pOTE1L2dlbV9leGVjX3BhcmFsbGVsLmMKKysrIGIvdGVzdHMvaTkxNS9nZW1f ZXhlY19wYXJhbGxlbC5jCkBAIC0yMDQsNiArMjA0LDkgQEAgc3RhdGljIHZvaWQgYWxsKGludCBm ZCwgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplbmdpbmUsIHVuc2lnbmVkIGZsYWdz KQogCWlmIChmbGFncyAmIENPTlRFWFRTKQogCQlnZW1fcmVxdWlyZV9jb250ZXh0cyhmZCk7CiAK KwlpZiAoZmxhZ3MgJiBVU0VSUFRSKQorCQlnZW1fcmVxdWlyZV9wcmVhZF9wd3JpdGUoZmQpOwor CiAJaWYgKGZsYWdzICYgRkRTKSB7CiAJCWlndF9yZXF1aXJlKGdlbiA+IDUpOwogCQlpZ3RfcmVx dWlyZShpZ3RfYWxsb3dfdW5saW1pdGVkX2ZpbGVzKCkpOwpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkx NS9nZW1fbWFkdmlzZS5jIGIvdGVzdHMvaTkxNS9nZW1fbWFkdmlzZS5jCmluZGV4IDYyM2M4YjA5 MTMuLmY4NWMzNTE4NTcgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2VtX21hZHZpc2UuYworKysg Yi90ZXN0cy9pOTE1L2dlbV9tYWR2aXNlLmMKQEAgLTE1NSw2ICsxNTUsNyBAQCBkb250bmVlZF9i ZWZvcmVfcHdyaXRlKHZvaWQpCiAJdWludDMyX3QgYmJlID0gTUlfQkFUQ0hfQlVGRkVSX0VORDsK IAl1aW50MzJfdCBoYW5kbGU7CiAKKwlnZW1fcmVxdWlyZV9wcmVhZF9wd3JpdGUoZmQpOwogCWhh bmRsZSA9IGdlbV9jcmVhdGUoZmQsIE9CSkVDVF9TSVpFKTsKIAlnZW1fbWFkdmlzZShmZCwgaGFu ZGxlLCBJOTE1X01BRFZfRE9OVE5FRUQpOwogCkBAIC0xNzEsNiArMTcyLDcgQEAgZG9udG5lZWRf YmVmb3JlX2V4ZWModm9pZCkKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiBleGVj OwogCXVpbnQzMl90IGJ1ZltdID0geyBNSV9CQVRDSF9CVUZGRVJfRU5ELCAwIH07CiAKKwlnZW1f cmVxdWlyZV9wcmVhZF9wd3JpdGUoZmQpOwogCW1lbXNldCgmZXhlY2J1ZiwgMCwgc2l6ZW9mKGV4 ZWNidWYpKTsKIAltZW1zZXQoJmV4ZWMsIDAsIHNpemVvZihleGVjKSk7CiAKZGlmZiAtLWdpdCBh L3Rlc3RzL2k5MTUvZ2VtX3BhcnRpYWxfcHdyaXRlX3ByZWFkLmMgYi90ZXN0cy9pOTE1L2dlbV9w YXJ0aWFsX3B3cml0ZV9wcmVhZC5jCmluZGV4IDcyYzMzNTM5ZDMuLjVhMTRkNDI0YjIgMTAwNjQ0 Ci0tLSBhL3Rlc3RzL2k5MTUvZ2VtX3BhcnRpYWxfcHdyaXRlX3ByZWFkLmMKKysrIGIvdGVzdHMv aTkxNS9nZW1fcGFydGlhbF9wd3JpdGVfcHJlYWQuYwpAQCAtMjg0LDYgKzI4NCw3IEBAIGlndF9t YWluCiAJCWRhdGEuZHJtX2ZkID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9JTlRFTCk7CiAJCWln dF9yZXF1aXJlX2dlbShkYXRhLmRybV9mZCk7CiAJCWdlbV9yZXF1aXJlX2JsaXR0ZXIoZGF0YS5k cm1fZmQpOworCQlnZW1fcmVxdWlyZV9wcmVhZF9wd3JpdGUoZGF0YS5kcm1fZmQpOwogCiAJCWRh dGEuZGV2aWQgPSBpbnRlbF9nZXRfZHJtX2RldmlkKGRhdGEuZHJtX2ZkKTsKIAkJZGF0YS5ib3Bz ID0gYnVmX29wc19jcmVhdGUoZGF0YS5kcm1fZmQpOwpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9n ZW1fcHJlYWQuYyBiL3Rlc3RzL2k5MTUvZ2VtX3ByZWFkLmMKaW5kZXggMGM0ZWMwZDJmZS4uZWM5 OTkxZWViZCAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fcHJlYWQuYworKysgYi90ZXN0cy9p OTE1L2dlbV9wcmVhZC5jCkBAIC0zMDAsNiArMzAwLDcgQEAgaWd0X21haW5fYXJncygiczoiLCBO VUxMLCBoZWxwX3N0ciwgb3B0X2hhbmRsZXIsIE5VTEwpCiAKIAlpZ3RfZml4dHVyZSB7CiAJCWZk ID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9JTlRFTCk7CisJCWdlbV9yZXF1aXJlX3ByZWFkX3B3 cml0ZShmZCk7CiAKIAkJZHN0ID0gZ2VtX2NyZWF0ZShmZCwgb2JqZWN0X3NpemUpOwogCQlzcmMg PSBtYWxsb2Mob2JqZWN0X3NpemUpOwpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fcHJlYWRf YWZ0ZXJfYmxpdC5jIGIvdGVzdHMvaTkxNS9nZW1fcHJlYWRfYWZ0ZXJfYmxpdC5jCmluZGV4IGY1 ZWJhMGQ1MGEuLjNiNTZmNzg3YWEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2VtX3ByZWFkX2Fm dGVyX2JsaXQuYworKysgYi90ZXN0cy9pOTE1L2dlbV9wcmVhZF9hZnRlcl9ibGl0LmMKQEAgLTIx Niw2ICsyMTYsNyBAQCBpZ3RfbWFpbgogCWlndF9maXh0dXJlIHsKIAkJZmQgPSBkcm1fb3Blbl9k cml2ZXIoRFJJVkVSX0lOVEVMKTsKIAkJaWd0X3JlcXVpcmVfZ2VtKGZkKTsKKwkJZ2VtX3JlcXVp cmVfcHJlYWRfcHdyaXRlKGZkKTsKIAogCQlib3BzID0gYnVmX29wc19jcmVhdGUoZmQpOwogCmRp ZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dlbV9wd3JpdGUuYyBiL3Rlc3RzL2k5MTUvZ2VtX3B3cml0 ZS5jCmluZGV4IDk4YmVjNTU4MjEuLjVmZDE1ZTZhOGYgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUv Z2VtX3B3cml0ZS5jCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX3B3cml0ZS5jCkBAIC00ODgsNiArNDg4 LDcgQEAgaWd0X21haW5fYXJncygiczoiLCBOVUxMLCBoZWxwX3N0ciwgb3B0X2hhbmRsZXIsIE5V TEwpCiAKIAlpZ3RfZml4dHVyZSB7CiAJCWZkID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9JTlRF TCk7CisJCWdlbV9yZXF1aXJlX3ByZWFkX3B3cml0ZShmZCk7CiAKIAkJZHN0ID0gZ2VtX2NyZWF0 ZShmZCwgb2JqZWN0X3NpemUpOwogCQlzcmMgPSBtYWxsb2Mob2JqZWN0X3NpemUpOwpkaWZmIC0t Z2l0IGEvdGVzdHMvaTkxNS9nZW1fcHdyaXRlX3Nub29wZWQuYyBiL3Rlc3RzL2k5MTUvZ2VtX3B3 cml0ZV9zbm9vcGVkLmMKaW5kZXggNTJlYmFlYzJmMi4uZTZhMTA3NDdkNSAxMDA2NDQKLS0tIGEv dGVzdHMvaTkxNS9nZW1fcHdyaXRlX3Nub29wZWQuYworKysgYi90ZXN0cy9pOTE1L2dlbV9wd3Jp dGVfc25vb3BlZC5jCkBAIC0xMzMsNiArMTMzLDcgQEAgaWd0X3NpbXBsZV9tYWluCiAJZmQgPSBk cm1fb3Blbl9kcml2ZXIoRFJJVkVSX0lOVEVMKTsKIAlpZ3RfcmVxdWlyZV9nZW0oZmQpOwogCWdl bV9yZXF1aXJlX2JsaXR0ZXIoZmQpOworCWdlbV9yZXF1aXJlX3ByZWFkX3B3cml0ZShmZCk7CiAK IAlib3BzID0gYnVmX29wc19jcmVhdGUoZmQpOwogCmRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dl bV9yZWFkd3JpdGUuYyBiL3Rlc3RzL2k5MTUvZ2VtX3JlYWR3cml0ZS5jCmluZGV4IGQ2NzU4MTBl ZjIuLjhhOTU4Y2M5MDQgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2VtX3JlYWR3cml0ZS5jCisr KyBiL3Rlc3RzL2k5MTUvZ2VtX3JlYWR3cml0ZS5jCkBAIC04NSw2ICs4NSw3IEBAIGlndF9tYWlu CiAKIAlpZ3RfZml4dHVyZSB7CiAJCWZkID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9JTlRFTCk7 CisJCWdlbV9yZXF1aXJlX3ByZWFkX3B3cml0ZShmZCk7CiAKIAkJaGFuZGxlID0gZ2VtX2NyZWF0 ZShmZCwgT0JKRUNUX1NJWkUpOwogCX0KZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX3NldF90 aWxpbmdfdnNfcHdyaXRlLmMgYi90ZXN0cy9pOTE1L2dlbV9zZXRfdGlsaW5nX3ZzX3B3cml0ZS5j CmluZGV4IDc3MWRkMmUxMzYuLjg3OTA5ZDNjN2MgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2Vt X3NldF90aWxpbmdfdnNfcHdyaXRlLmMKKysrIGIvdGVzdHMvaTkxNS9nZW1fc2V0X3RpbGluZ192 c19wd3JpdGUuYwpAQCAtNTcsNiArNTcsNyBAQCBpZ3Rfc2ltcGxlX21haW4KIAogCWZkID0gZHJt X29wZW5fZHJpdmVyKERSSVZFUl9JTlRFTCk7CiAJaWd0X3JlcXVpcmUoZ2VtX2F2YWlsYWJsZV9m ZW5jZXMoZmQpID4gMCk7CisJZ2VtX3JlcXVpcmVfcHJlYWRfcHdyaXRlKGZkKTsKIAogCWZvciAo aW50IGkgPSAwOyBpIDwgT0JKRUNUX1NJWkUvNDsgaSsrKQogCQlkYXRhW2ldID0gaTsKZGlmZiAt LWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX3RpbGVkX3BhcnRpYWxfcHdyaXRlX3ByZWFkLmMgYi90ZXN0 cy9pOTE1L2dlbV90aWxlZF9wYXJ0aWFsX3B3cml0ZV9wcmVhZC5jCmluZGV4IDRmOGY0MTkwYjUu Ljk1ZmI2OWM2NTkgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2VtX3RpbGVkX3BhcnRpYWxfcHdy aXRlX3ByZWFkLmMKKysrIGIvdGVzdHMvaTkxNS9nZW1fdGlsZWRfcGFydGlhbF9wd3JpdGVfcHJl YWQuYwpAQCAtMjgwLDYgKzI4MCw3IEBAIGlndF9tYWluCiAJCWlndF9yZXF1aXJlX2dlbShmZCk7 CiAJCWdlbV9yZXF1aXJlX21hcHBhYmxlX2dndHQoZmQpOwogCQlnZW1fcmVxdWlyZV9ibGl0dGVy KGZkKTsKKwkJZ2VtX3JlcXVpcmVfcHJlYWRfcHdyaXRlKGZkKTsKIAogCQlib3BzID0gYnVmX29w c19jcmVhdGUoZmQpOwogCmRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dlbV90aWxlZF9wcmVhZF9i YXNpYy5jIGIvdGVzdHMvaTkxNS9nZW1fdGlsZWRfcHJlYWRfYmFzaWMuYwppbmRleCA4NjI3MTQx NDBhLi4xODZmNjMwZjdkIDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV90aWxlZF9wcmVhZF9i YXNpYy5jCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX3RpbGVkX3ByZWFkX2Jhc2ljLmMKQEAgLTEyOCw2 ICsxMjgsNyBAQCBpZ3Rfc2ltcGxlX21haW4KIAlpZ3RfcmVxdWlyZShnZW1fYXZhaWxhYmxlX2Zl bmNlcyhmZCkgPiAwKTsKIAloYW5kbGUgPSBjcmVhdGVfYm8oZmQpOwogCWlndF9yZXF1aXJlKGdl bV9nZXRfdGlsaW5nKGZkLCBoYW5kbGUsICZ0aWxpbmcsICZzd2l6emxlKSk7CisJZ2VtX3JlcXVp cmVfcHJlYWRfcHdyaXRlKGZkKTsKIAogCWRldmlkID0gaW50ZWxfZ2V0X2RybV9kZXZpZChmZCk7 CiAKZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX3RpbGVkX3ByZWFkX3B3cml0ZS5jIGIvdGVz dHMvaTkxNS9nZW1fdGlsZWRfcHJlYWRfcHdyaXRlLmMKaW5kZXggYjczZmExMjYyNi4uZWYxZTFi M2MzYyAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fdGlsZWRfcHJlYWRfcHdyaXRlLmMKKysr IGIvdGVzdHMvaTkxNS9nZW1fdGlsZWRfcHJlYWRfcHdyaXRlLmMKQEAgLTExNCw2ICsxMTQsNyBA QCBpZ3Rfc2ltcGxlX21haW4KIAkKIAlmZCA9IGRybV9vcGVuX2RyaXZlcihEUklWRVJfSU5URUwp OwogCWlndF9yZXF1aXJlKGdlbV9hdmFpbGFibGVfZmVuY2VzKGZkKSA+IDApOworCWdlbV9yZXF1 aXJlX3ByZWFkX3B3cml0ZShmZCk7CiAKIAljb3VudCA9IGdlbV9hdmFpbGFibGVfZmVuY2VzKGZk KSArIDE7CiAJaW50ZWxfcmVxdWlyZV9tZW1vcnkoMiAqIGNvdW50LCBzaXplb2YobGluZWFyKSwg Q0hFQ0tfUkFNKTsKZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX3VzZXJwdHJfYmxpdHMuYyBi L3Rlc3RzL2k5MTUvZ2VtX3VzZXJwdHJfYmxpdHMuYwppbmRleCA4NzY1MTIzZTA5Li5kZWQ3NjFh NTUwIDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV91c2VycHRyX2JsaXRzLmMKKysrIGIvdGVz dHMvaTkxNS9nZW1fdXNlcnB0cl9ibGl0cy5jCkBAIC0xMTM3LDYgKzExMzcsNyBAQCBzdGF0aWMg aW50IHRlc3RfZm9yYmlkZGVuX29wcyhpbnQgZmQpCiAJdWludDMyX3QgaGFuZGxlOwogCXZvaWQg KnB0cjsKIAorCWdlbV9yZXF1aXJlX3ByZWFkX3B3cml0ZShmZCk7CiAJaWd0X2Fzc2VydChwb3Np eF9tZW1hbGlnbigmcHRyLCBQQUdFX1NJWkUsIFBBR0VfU0laRSkgPT0gMCk7CiAJZ2VtX3VzZXJw dHIoZmQsIHB0ciwgUEFHRV9TSVpFLCAwLCB1c2VycHRyX2ZsYWdzLCAmaGFuZGxlKTsKIApAQCAt MTY2NCw2ICsxNjY1LDcgQEAgc3RhdGljIHZvaWQgdGVzdF9yZWFkb25seV9wd3JpdGUoaW50IGk5 MTUpCiAJICovCiAKIAlpZ3RfcmVxdWlyZShpZ3Rfc2V0dXBfY2xmbHVzaCgpKTsKKwlnZW1fcmVx dWlyZV9wcmVhZF9wd3JpdGUoaTkxNSk7CiAKIAlzeiA9IDE2IDw8IDEyOwogCXBhZ2VzID0gbW1h cChOVUxMLCBzeiwgUFJPVF9XUklURSwgTUFQX0FOT04gfCBNQVBfUFJJVkFURSwgLTEsIDApOwpk aWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW45X2V4ZWNfcGFyc2UuYyBiL3Rlc3RzL2k5MTUvZ2Vu OV9leGVjX3BhcnNlLmMKaW5kZXggNmY1NGM0ZTEzMy4uZjlkZTkwZDJjZiAxMDA2NDQKLS0tIGEv dGVzdHMvaTkxNS9nZW45X2V4ZWNfcGFyc2UuYworKysgYi90ZXN0cy9pOTE1L2dlbjlfZXhlY19w YXJzZS5jCkBAIC0xMjM1LDggKzEyMzUsMTAgQEAgaWd0X21haW4KIAkJCSAgIC1FSU5WQUwpOwog CX0KIAotCWlndF9zdWJ0ZXN0KCJiYXRjaC1pbnZhbGlkLWxlbmd0aCIpCisJaWd0X3N1YnRlc3Qo ImJhdGNoLWludmFsaWQtbGVuZ3RoIikgeworCQlnZW1fcmVxdWlyZV9wcmVhZF9wd3JpdGUoaTkx NSk7CiAJCXRlc3RfaW52YWxpZF9sZW5ndGgoaTkxNSwgaGFuZGxlKTsKKwl9CiAKIAlpZ3Rfc3Vi dGVzdCgiYmFzaWMtcmVqZWN0ZWQiKQogCQl0ZXN0X3JlamVjdGVkKGk5MTUsIGhhbmRsZSwgZmFs c2UpOwotLSAKMi4yOS4yCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK