From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lionel Landwerlin Subject: [PATCH v8 7/8] drm/i915: Expose RPCS (SSEU) configuration to userspace Date: Tue, 29 May 2018 20:16:17 +0100 Message-ID: <20180529191618.19050-8-lionel.g.landwerlin@intel.com> References: <20180529191618.19050-1-lionel.g.landwerlin@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3CCA489D5F for ; Tue, 29 May 2018 19:16:30 +0000 (UTC) In-Reply-To: <20180529191618.19050-1-lionel.g.landwerlin@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CgpXZSB3YW50IHRv IGFsbG93IHVzZXJzcGFjZSB0byByZWNvbmZpZ3VyZSB0aGUgc3Vic2xpY2UgY29uZmlndXJhdGlv biBmb3IKaXRzIG93biB1c2UgY2FzZS4gVG8gZG8gc28sIHdlIGV4cG9zZSBhIGNvbnRleHQgcGFy YW1ldGVyIHRvIGFsbG93CmFkanVzdG1lbnQgb2YgdGhlIFJQQ1MgcmVnaXN0ZXIgc3RvcmVkIHdp dGhpbiB0aGUgY29udGV4dCBpbWFnZSAoYW5kCmN1cnJlbnRseSBub3QgYWNjZXNzaWJsZSB2aWEg TFJJKS4gSWYgdGhlIGNvbnRleHQgaXMgYWRqdXN0ZWQgYmVmb3JlCmZpcnN0IHVzZSwgdGhlIGFk anVzdG1lbnQgaXMgZm9yICJmcmVlIjsgb3RoZXJ3aXNlIGlmIHRoZSBjb250ZXh0IGlzCmFjdGl2 ZSB3ZSBmbHVzaCB0aGUgY29udGV4dCBvZmYgdGhlIEdQVSAoc3RhbGxpbmcgYWxsIHVzZXJzKSBh bmQgZm9yY2luZwp0aGUgR1BVIHRvIHNhdmUgdGhlIGNvbnRleHQgdG8gbWVtb3J5IHdoZXJlIHdl IGNhbiBtb2RpZnkgaXQgYW5kIHNvCmVuc3VyZSB0aGF0IHRoZSByZWdpc3RlciBpcyByZWxvYWRl ZCBvbiBuZXh0IGV4ZWN1dGlvbi4KClRoZSBvdmVyaGVhZCBvZiBtYW5hZ2luZyBhZGRpdGlvbmFs IEVVIHN1YnNsaWNlcyBjYW4gYmUgc2lnbmlmaWNhbnQsCmVzcGVjaWFsbHkgaW4gbXVsdGktY29u dGV4dCB3b3JrbG9hZHMuIE5vbi1HUEdQVSBjb250ZXh0cyBzaG91bGQKcHJlZmVyYWJseSBkaXNh YmxlIHRoZSBzdWJzbGljZXMgaXQgaXMgbm90IHVzaW5nLCBhbmQgb3RoZXJzIHNob3VsZApmaW5l LXR1bmUgdGhlIG51bWJlciB0byBtYXRjaCB0aGVpciB3b3JrbG9hZC4KCldlIGV4cG9zZSBjb21w bGV0ZSBjb250cm9sIG92ZXIgdGhlIFJQQ1MgcmVnaXN0ZXIsIGFsbG93aW5nCmNvbmZpZ3VyYXRp b24gb2Ygc2xpY2Uvc3Vic2xpY2UsIHZpYSBtYXNrcyBwYWNrZWQgaW50byBhIHU2NCBmb3IKc2lt cGxpY2l0eS4gRm9yIGV4YW1wbGUsCgoJc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X3BhcmFt IGFyZzsKCXN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbV9zc2V1IHNzZXUgPSB7IC5j bGFzcyA9IDAsCgkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAuaW5zdGFuY2UgPSAwLCB9OwoKCW1lbXNldCgmYXJnLCAwLCBzaXplb2YoYXJnKSk7Cglhcmcu Y3R4X2lkID0gY3R4OwoJYXJnLnBhcmFtID0gSTkxNV9DT05URVhUX1BBUkFNX1NTRVU7Cglhcmcu dmFsdWUgPSAodWludHB0cl90KSAmc3NldTsKCWlmIChkcm1Jb2N0bChmZCwgRFJNX0lPQ1RMX0k5 MTVfR0VNX0NPTlRFWFRfR0VUUEFSQU0sICZhcmcpID09IDApIHsKCQlzc2V1LnBhY2tlZC5zdWJz bGljZV9tYXNrID0gMDsKCgkJZHJtSW9jdGwoZmQsIERSTV9JT0NUTF9JOTE1X0dFTV9DT05URVhU X1NFVFBBUkFNLCAmYXJnKTsKCX0KCmNvdWxkIGJlIHVzZWQgdG8gZGlzYWJsZSBhbGwgc3Vic2xp Y2VzIHdoZXJlIHN1cHBvcnRlZC4KCnYyOiBGaXggb2Zmc2V0IG9mIENUWF9SX1BXUl9DTEtfU1RB VEUgaW4gaW50ZWxfbHJfY29udGV4dF9zZXRfc3NldSgpIChMaW9uZWwpCgp2MzogQWRkIGFiaWxp dHkgdG8gcHJvZ3JhbSB0aGlzIHBlciBlbmdpbmUgKENocmlzKQoKdjQ6IE1vdmUgbW9zdCBnZXRf c3NldSgpIGludG8gaTkxNV9nZW1fY29udGV4dC5jIChMaW9uZWwpCgp2NTogVmFsaWRhdGUgc3Nl dSBjb25maWd1cmF0aW9uIGFnYWluc3QgdGhlIGRldmljZSdzIGNhcGFiaWxpdGllcyAoTGlvbmVs KQoKdjY6IENoYW5nZSBjb250ZXh0IHBvd2VyZ2F0aW5nIHNldHRpbmdzIHRocm91Z2ggTUlfU0RN IG9uIGtlcm5lbCBjb250ZXh0IChDaHJpcykKCnY3OiBTeW5jaHJvbml6ZSB0aGUgcmVxdWVzdHMg Zm9sbG93aW5nIGEgcG93ZXJnYXRpbmcgc2V0dGluZyBjaGFuZ2UgdXNpbmcgYSBnbG9iYWwKICAg IGRlcGVuZGVuY3kgKENocmlzKQogICAgSXRlcmF0ZSB0aW1lbGluZXMgdGhyb3VnaCBkZXZfcHJp di5ndC5hY3RpdmVfcmluZ3MgKFR2cnRrbykKICAgIERpc2FibGUgUlBDUyBjb25maWd1cmF0aW9u IHNldHRpbmcgZm9yIG5vbiBjYXBhYmxlIHVzZXJzIChMaW9uZWwvVHZydGtvKQoKdjg6IHMvdW5p b24gaW50ZWxfc3NldS9zdHJ1Y3QgaW50ZWxfc3NldS8gKExpb25lbCkKICAgIHMvZGV2X3ByaXYv aTkxNS8gKFR2cnRrbykKICAgIENoYW5nZSB1YXBpIGNsYXNzL2luc3RhbmNlIGZpZWxkcyB0byB1 MTYgKFR2cnRrbykKICAgIEJ1bXAgbWFzayBmaWVsZHMgdG8gNjRiaXRzIChMaW9uZWwpCiAgICBE b24ndCByZXR1cm4gRVBFUk0gd2hlbiBkeW5hbWljIHNzZXUgaXMgZGlzYWJsZWQgKFR2cnRrbykK CkJ1Z3ppbGxhOiBodHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD0x MDA4OTkKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28u dWs+ClNpZ25lZC1vZmYtYnk6IExpb25lbCBMYW5kd2VybGluIDxsaW9uZWwuZy5sYW5kd2VybGlu QGludGVsLmNvbT4KYzogRG1pdHJ5IFJvZ296aGtpbiA8ZG1pdHJ5LnYucm9nb3poa2luQGludGVs LmNvbT4KQ0M6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+CkNDOiBa aGlwZW5nIEdvbmcgPHpoaXBlbmcuZ29uZ0BpbnRlbC5jb20+CkNDOiBKb29uYXMgTGFodGluZW4g PGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaCAgICAgICAgIHwgIDEzICsrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbS5jICAgICAgICAgfCAgIDIgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29u dGV4dC5jIHwgMTc2ICsrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9yZXF1ZXN0LmMgICAgIHwgIDIwICsrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMgICAgICAgIHwgMTEzICsrKysrKysrKystLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcmluZ2J1ZmZlci5jIHwgICAyICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuaCB8ICAgNCArCiBpbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmggICAgICAg ICAgICAgfCAgNDMgKysrKysrCiA4IGZpbGVzIGNoYW5nZWQsIDMzOCBpbnNlcnRpb25zKCspLCAz NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCAyNWZmYWRmY2QwNGIu LmIyMzg2YzM3NDM3ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0yMDY2LDYgKzIwNjYs MTIgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewogCQl1MzIgYWN0aXZlX3JlcXVlc3RzOwog CQl1MzIgcmVxdWVzdF9zZXJpYWw7CiAKKwkJLyoqCisJCSAqIEdsb2JhbCBiYXJyaWVyIHRvIGVu c3VyaW5nIG9yZGVyaW5nIG9mIHNzZXUgdHJhbnNpdGlvbnMKKwkJICogcmVxdWVzdHMuCisJCSAq LworCQlzdHJ1Y3QgaTkxNV9nZW1fYWN0aXZlIGdsb2JhbF9iYXJyaWVyOworCiAJCS8qKgogCQkg KiBJcyB0aGUgR1BVIGN1cnJlbnRseSBjb25zaWRlcmVkIGlkbGUsIG9yIGJ1c3kgZXhlY3V0aW5n CiAJCSAqIHVzZXJzcGFjZSByZXF1ZXN0cz8gV2hpbHN0IGlkbGUsIHdlIGFsbG93IHJ1bnRpbWUg cG93ZXIKQEAgLTMyMTIsNiArMzIxOCwxMyBAQCBpOTE1X3ZtX3RvX3BwZ3R0KHN0cnVjdCBpOTE1 X2FkZHJlc3Nfc3BhY2UgKnZtKQogCXJldHVybiBjb250YWluZXJfb2Yodm0sIHN0cnVjdCBpOTE1 X2h3X3BwZ3R0LCBiYXNlKTsKIH0KIAorc3RhdGljIGlubGluZSB2b2lkIGk5MTVfZ2VtX3NldF9n bG9iYWxfYmFycmllcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKKwkJCQkJICAgICAg IHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQoreworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmk5MTUt PmRybS5zdHJ1Y3RfbXV0ZXgpOworCWk5MTVfZ2VtX2FjdGl2ZV9zZXQoJmk5MTUtPmd0Lmdsb2Jh bF9iYXJyaWVyLCBycSk7Cit9CisKIC8qIGk5MTVfZ2VtX2ZlbmNlX3JlZy5jICovCiBzdHJ1Y3Qg ZHJtX2k5MTVfZmVuY2VfcmVnICoKIGk5MTVfcmVzZXJ2ZV9mZW5jZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggMDVmNDRjYTM1 YTA2Li4zODcyZTQyMzUyNTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAtNTU1NSw2ICs1 NTU1LDggQEAgaW50IGk5MTVfZ2VtX2luaXRfZWFybHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQogCWlmICghZGV2X3ByaXYtPnByaW9yaXRpZXMpCiAJCWdvdG8gZXJyX2RlcGVu ZGVuY2llczsKIAorCWluaXRfcmVxdWVzdF9hY3RpdmUoJmRldl9wcml2LT5ndC5nbG9iYWxfYmFy cmllciwgTlVMTCk7CisKIAlJTklUX0xJU1RfSEVBRCgmZGV2X3ByaXYtPmd0LnRpbWVsaW5lcyk7 CiAJSU5JVF9MSVNUX0hFQUQoJmRldl9wcml2LT5ndC5hY3RpdmVfcmluZ3MpOwogCUlOSVRfTElT VF9IRUFEKCZkZXZfcHJpdi0+Z3QuY2xvc2VkX3ZtYSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9jb250ZXh0LmMKaW5kZXggZWUyZWU2YjRlNWIwLi43OTAyOTgxNWMyMWYgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKQEAgLTc4MSw2ICs3ODEsNzkgQEAgaW50 IGk5MTVfZ2VtX2NvbnRleHRfZGVzdHJveV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2 b2lkICpkYXRhLAogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50CitpbnRlbF9zc2V1X2Zyb21f dXNlcl9zc2V1KGNvbnN0IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpzc2V1LAorCQkJICBjb25zdCBz dHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW1fc3NldSAqdXNlcl9zc2V1LAorCQkJICBz dHJ1Y3QgaW50ZWxfc3NldSAqY3R4X3NzZXUpCit7CisJaWYgKCh1c2VyX3NzZXUtPnNsaWNlX21h c2sgJiB+c3NldS0+c2xpY2VfbWFzaykgIT0gMCB8fAorCSAgICB1c2VyX3NzZXUtPnNsaWNlX21h c2sgPT0gMCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoKHVzZXJfc3NldS0+c3Vic2xpY2Vf bWFzayAmIH5zc2V1LT5zdWJzbGljZV9tYXNrWzBdKSAhPSAwIHx8CisJICAgIHVzZXJfc3NldS0+ c3Vic2xpY2VfbWFzayA9PSAwKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmICh1c2VyX3NzZXUt Pm1pbl9ldXNfcGVyX3N1YnNsaWNlID4gc3NldS0+bWF4X2V1c19wZXJfc3Vic2xpY2UpCisJCXJl dHVybiAtRUlOVkFMOworCisJaWYgKHVzZXJfc3NldS0+bWF4X2V1c19wZXJfc3Vic2xpY2UgPiBz c2V1LT5tYXhfZXVzX3Blcl9zdWJzbGljZSB8fAorCSAgICB1c2VyX3NzZXUtPm1heF9ldXNfcGVy X3N1YnNsaWNlIDwgdXNlcl9zc2V1LT5taW5fZXVzX3Blcl9zdWJzbGljZSB8fAorCSAgICB1c2Vy X3NzZXUtPm1heF9ldXNfcGVyX3N1YnNsaWNlID09IDApCisJCXJldHVybiAtRUlOVkFMOworCisJ Y3R4X3NzZXUtPnNsaWNlX21hc2sgPSB1c2VyX3NzZXUtPnNsaWNlX21hc2s7CisJY3R4X3NzZXUt PnN1YnNsaWNlX21hc2sgPSB1c2VyX3NzZXUtPnN1YnNsaWNlX21hc2s7CisJY3R4X3NzZXUtPm1p bl9ldXNfcGVyX3N1YnNsaWNlID0gdXNlcl9zc2V1LT5taW5fZXVzX3Blcl9zdWJzbGljZTsKKwlj dHhfc3NldS0+bWF4X2V1c19wZXJfc3Vic2xpY2UgPSB1c2VyX3NzZXUtPm1heF9ldXNfcGVyX3N1 YnNsaWNlOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK2k5MTVfZ2VtX2NvbnRleHRf cmVjb25maWd1cmVfc3NldShzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAorCQkJCSAgc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAorCQkJCSAgc3RydWN0IGludGVsX3NzZXUgc3Nl dSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGN0eC0+aTkxNTsKKwlzdHJ1 Y3QgaTkxNV9yZXF1ZXN0ICpycTsKKwlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZzsKKwlpbnQgcmV0 OworCisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisKKwlp OTE1X3JldGlyZV9yZXF1ZXN0cyhpOTE1KTsKKworCS8qIE5vdyB1c2UgdGhlIFJDUyB0byBhY3R1 YWxseSByZWNvbmZpZ3VyZS4gKi8KKwllbmdpbmUgPSBpOTE1LT5lbmdpbmVbUkNTXTsKKworCXJx ID0gaTkxNV9yZXF1ZXN0X2FsbG9jKGVuZ2luZSwgaTkxNS0+a2VybmVsX2NvbnRleHQpOworCWlm IChJU19FUlIocnEpKQorCQlyZXR1cm4gUFRSX0VSUihycSk7CisKKwlyZXQgPSBlbmdpbmUtPmVt aXRfcnBjc19jb25maWcocnEsIGN0eCwgc3NldSk7CisJaWYgKHJldCkgeworCQlfX2k5MTVfcmVx dWVzdF9hZGQocnEsIHRydWUpOworCQlyZXR1cm4gcmV0OworCX0KKworCS8qIFF1ZXVlIHRoaXMg c3dpdGNoIGFmdGVyIGFsbCBvdGhlciBhY3Rpdml0eSAqLworCWxpc3RfZm9yX2VhY2hfZW50cnko cmluZywgJmk5MTUtPmd0LmFjdGl2ZV9yaW5ncywgYWN0aXZlX2xpbmspIHsKKwkJc3RydWN0IGk5 MTVfcmVxdWVzdCAqcHJldjsKKworCQlwcmV2ID0gbGFzdF9yZXF1ZXN0X29uX2VuZ2luZShyaW5n LT50aW1lbGluZSwgZW5naW5lKTsKKwkJaWYgKHByZXYpCisJCQlpOTE1X3N3X2ZlbmNlX2F3YWl0 X3N3X2ZlbmNlX2dmcCgmcnEtPnN1Ym1pdCwKKwkJCQkJCQkgJnByZXYtPnN1Ym1pdCwKKwkJCQkJ CQkgSTkxNV9GRU5DRV9HRlApOworCX0KKworCWk5MTVfZ2VtX3NldF9nbG9iYWxfYmFycmllcihp OTE1LCBycSk7CisJX19pOTE1X3JlcXVlc3RfYWRkKHJxLCB0cnVlKTsKKworCXJldHVybiAwOwor fQorCiBpbnQgaTkxNV9nZW1fY29udGV4dF9nZXRwYXJhbV9pb2N0bChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJCSAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCiB7CkBA IC04MTgsNiArODkxLDQ2IEBAIGludCBpOTE1X2dlbV9jb250ZXh0X2dldHBhcmFtX2lvY3RsKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJY2FzZSBJOTE1X0NPTlRFWFRfUEFS QU1fUFJJT1JJVFk6CiAJCWFyZ3MtPnZhbHVlID0gY3R4LT5zY2hlZC5wcmlvcml0eTsKIAkJYnJl YWs7CisJY2FzZSBJOTE1X0NPTlRFWFRfUEFSQU1fU1NFVToKKwkJeworCQkJc3RydWN0IGRybV9p OTE1X2dlbV9jb250ZXh0X3BhcmFtX3NzZXUgdXNlcl9zc2V1OworCQkJc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lOworCQkJc3RydWN0IGludGVsX2NvbnRleHQgKmNlOworCisJCQlpZiAo Y29weV9mcm9tX3VzZXIoJnVzZXJfc3NldSwKKwkJCQkJICAgdTY0X3RvX3VzZXJfcHRyKGFyZ3Mt PnZhbHVlKSwKKwkJCQkJICAgc2l6ZW9mKHVzZXJfc3NldSkpKSB7CisJCQkJcmV0ID0gLUVGQVVM VDsKKwkJCQlicmVhazsKKwkJCX0KKworCQkJaWYgKHVzZXJfc3NldS5yc3ZkMSAhPSAwIHx8IHVz ZXJfc3NldS5yc3ZkMiAhPSAwKSB7CisJCQkJcmV0ID0gLUVJTlZBTDsKKwkJCQlicmVhazsKKwkJ CX0KKworCQkJZW5naW5lID0gaW50ZWxfZW5naW5lX2xvb2t1cF91c2VyKHRvX2k5MTUoZGV2KSwK KwkJCQkJCQkgIHVzZXJfc3NldS5jbGFzcywKKwkJCQkJCQkgIHVzZXJfc3NldS5pbnN0YW5jZSk7 CisJCQlpZiAoIWVuZ2luZSkgeworCQkJCXJldCA9IC1FSU5WQUw7CisJCQkJYnJlYWs7CisJCQl9 CisKKwkJCWNlID0gdG9faW50ZWxfY29udGV4dChjdHgsIGVuZ2luZSk7CisKKwkJCXVzZXJfc3Nl dS5zbGljZV9tYXNrID0gY2UtPnNzZXUuc2xpY2VfbWFzazsKKwkJCXVzZXJfc3NldS5zdWJzbGlj ZV9tYXNrID0gY2UtPnNzZXUuc3Vic2xpY2VfbWFzazsKKwkJCXVzZXJfc3NldS5taW5fZXVzX3Bl cl9zdWJzbGljZSA9CisJCQkJY2UtPnNzZXUubWluX2V1c19wZXJfc3Vic2xpY2U7CisJCQl1c2Vy X3NzZXUubWF4X2V1c19wZXJfc3Vic2xpY2UgPQorCQkJCWNlLT5zc2V1Lm1heF9ldXNfcGVyX3N1 YnNsaWNlOworCisJCQlpZiAoY29weV90b191c2VyKHU2NF90b191c2VyX3B0cihhcmdzLT52YWx1 ZSksCisJCQkJCSAmdXNlcl9zc2V1LCBzaXplb2YodXNlcl9zc2V1KSkpCisJCQkJcmV0ID0gLUVG QVVMVDsKKwkJCWJyZWFrOworCQl9CiAJZGVmYXVsdDoKIAkJcmV0ID0gLUVJTlZBTDsKIAkJYnJl YWs7CkBAIC04OTIsNyArMTAwNSw3MCBAQCBpbnQgaTkxNV9nZW1fY29udGV4dF9zZXRwYXJhbV9p b2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJCWN0eC0+c2NoZWQu cHJpb3JpdHkgPSBwcmlvcml0eTsKIAkJfQogCQlicmVhazsKKwljYXNlIEk5MTVfQ09OVEVYVF9Q QVJBTV9TU0VVOgorCQl7CisJCQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5 MTUoZGV2KTsKKwkJCXN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbV9zc2V1IHVzZXJf c3NldTsKKwkJCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKKwkJCXN0cnVjdCBpbnRl bF9zc2V1IGN0eF9zc2V1OworCQkJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CisKKwkJCWlmIChh cmdzLT5zaXplKSB7CisJCQkJcmV0ID0gLUVJTlZBTDsKKwkJCQlicmVhazsKKwkJCX0KKworCQkJ aWYgKGNvcHlfZnJvbV91c2VyKCZ1c2VyX3NzZXUsIHU2NF90b191c2VyX3B0cihhcmdzLT52YWx1 ZSksCisJCQkJCSAgIHNpemVvZih1c2VyX3NzZXUpKSkgeworCQkJCXJldCA9IC1FRkFVTFQ7CisJ CQkJYnJlYWs7CisJCQl9CiAKKwkJCWlmICh1c2VyX3NzZXUucnN2ZDEgIT0gMCB8fCB1c2VyX3Nz ZXUucnN2ZDIgIT0gMCkgeworCQkJCXJldCA9IC1FSU5WQUw7CisJCQkJYnJlYWs7CisJCQl9CisK KwkJCWVuZ2luZSA9IGludGVsX2VuZ2luZV9sb29rdXBfdXNlcihpOTE1LAorCQkJCQkJCSAgdXNl cl9zc2V1LmNsYXNzLAorCQkJCQkJCSAgdXNlcl9zc2V1Lmluc3RhbmNlKTsKKwkJCWlmICghZW5n aW5lKSB7CisJCQkJcmV0ID0gLUVJTlZBTDsKKwkJCQlicmVhazsKKwkJCX0KKworCQkJaWYgKCFl bmdpbmUtPmVtaXRfcnBjc19jb25maWcpIHsKKwkJCQlyZXQgPSAtRU5PREVWOworCQkJCWJyZWFr OworCQkJfQorCisJCQlyZXQgPSBpbnRlbF9zc2V1X2Zyb21fdXNlcl9zc2V1KCZJTlRFTF9JTkZP KGk5MTUpLT5zc2V1LAorCQkJCQkJCSZ1c2VyX3NzZXUsICZjdHhfc3NldSk7CisJCQlpZiAocmV0 KQorCQkJCWJyZWFrOworCisJCQlpZiAobWVtY21wKCZ0b19pbnRlbF9jb250ZXh0KGN0eCwgZW5n aW5lKS0+c3NldSwKKwkJCQkgICAmY3R4X3NzZXUsIHNpemVvZihjdHhfc3NldSkpICE9IDApIHsK KwkJCQlEUk1fRVJST1IoInJlY29uZmlndXJpbmcgY3R4PSVwXG4iLCBjdHgpOworCQkJCXJldCA9 IGk5MTVfZ2VtX2NvbnRleHRfcmVjb25maWd1cmVfc3NldShjdHgsCisJCQkJCQkJCQllbmdpbmUs CisJCQkJCQkJCQljdHhfc3NldSk7CisJCQkJaWYgKHJldCkKKwkJCQkJYnJlYWs7CisJCQl9CisK KwkJCS8qCisJCQkgKiBBcHBseSB0aGUgY29uZmlndXJhdGlvbiB0byBhbGwgZW5naW5lLiBPdXIg aGFyZHdhcmUKKwkJCSAqIGRvZXNuJ3QgY3VycmVudGx5IHN1cHBvcnQgZGlmZmVyZW50IGNvbmZp Z3VyYXRpb25zCisJCQkgKiBmb3IgZWFjaCBlbmdpbmUuCisJCQkgKi8KKwkJCWZvcl9lYWNoX2Vu Z2luZShlbmdpbmUsIGk5MTUsIGlkKSB7CisJCQkJc3RydWN0IGludGVsX2NvbnRleHQgKmNlID0g dG9faW50ZWxfY29udGV4dChjdHgsIGVuZ2luZSk7CisKKwkJCQljZS0+c3NldSA9IGN0eF9zc2V1 OworCQkJfQorCQl9CisJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCXJldCA9IC1FSU5WQUw7CiAJCWJy ZWFrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYwppbmRleCBmMTg3MjUwZTYwYzYuLmFh MmVjMGRlMWNiMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0 LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMKQEAgLTY0NCw2ICs2 NDQsMjIgQEAgc3VibWl0X25vdGlmeShzdHJ1Y3QgaTkxNV9zd19mZW5jZSAqZmVuY2UsIGVudW0g aTkxNV9zd19mZW5jZV9ub3RpZnkgc3RhdGUpCiAJcmV0dXJuIE5PVElGWV9ET05FOwogfQogCitz dGF0aWMgaW50CitpOTE1X3JlcXVlc3RfYXdhaXRfcmVxdWVzdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0 ICp0bywgc3RydWN0IGk5MTVfcmVxdWVzdCAqZnJvbSk7CisKK3N0YXRpYyBpbnQgYWRkX2dsb2Jh bF9iYXJyaWVyKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQoreworCXN0cnVjdCBpOTE1X3JlcXVl c3QgKmJhcnJpZXI7CisJaW50IHJldCA9IDA7CisKKwliYXJyaWVyID0gaTkxNV9nZW1fYWN0aXZl X3JhdygmcnEtPmk5MTUtPmd0Lmdsb2JhbF9iYXJyaWVyLAorCQkJCSAgICAgICZycS0+aTkxNS0+ ZHJtLnN0cnVjdF9tdXRleCk7CisJaWYgKGJhcnJpZXIpCisJCXJldCA9IGk5MTVfcmVxdWVzdF9h d2FpdF9yZXF1ZXN0KHJxLCBiYXJyaWVyKTsKKworCXJldHVybiByZXQ7Cit9CisKIC8qKgogICog aTkxNV9yZXF1ZXN0X2FsbG9jIC0gYWxsb2NhdGUgYSByZXF1ZXN0IHN0cnVjdHVyZQogICoKQEAg LTgwNSw2ICs4MjEsMTAgQEAgaTkxNV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSwgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCkKIAkgKi8KIAlycS0+aGVh ZCA9IHJxLT5yaW5nLT5lbWl0OwogCisJcmV0ID0gYWRkX2dsb2JhbF9iYXJyaWVyKHJxKTsKKwlp ZiAocmV0KQorCQlnb3RvIGVycl91bndpbmQ7CisKIAkvKiBVbmNvbmRpdGlvbmFsbHkgaW52YWxp ZGF0ZSBHUFUgY2FjaGVzIGFuZCBUTEJzLiAqLwogCXJldCA9IGVuZ2luZS0+ZW1pdF9mbHVzaChy cSwgRU1JVF9JTlZBTElEQVRFKTsKIAlpZiAocmV0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwpp bmRleCA4YTQ5MzIzZjY2NzIuLmRjOTkyOWU1ZWJkYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmMKQEAgLTIyNzEsNiArMjI3MSw4MiBAQCBzdGF0aWMgdm9pZCBnZW44X2VtaXRfYnJlYWRjcnVt Yl9yY3Moc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCwgdTMyICpjcykKIH0KIHN0YXRpYyBj b25zdCBpbnQgZ2VuOF9lbWl0X2JyZWFkY3J1bWJfcmNzX3N6ID0gOCArIFdBX1RBSUxfRFdPUkRT OwogCit1MzIgZ2VuOF9tYWtlX3JwY3MoY29uc3Qgc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUs CisJCSAgIHN0cnVjdCBpbnRlbF9zc2V1IGN0eF9zc2V1KQoreworCXUzMiBycGNzID0gMDsKKwor CS8qCisJICogU3RhcnRpbmcgaW4gR2VuOSwgcmVuZGVyIHBvd2VyIGdhdGluZyBjYW4gbGVhdmUK KwkgKiBzbGljZS9zdWJzbGljZS9FVSBpbiBhIHBhcnRpYWxseSBlbmFibGVkIHN0YXRlLiBXZQor CSAqIG11c3QgbWFrZSBhbiBleHBsaWNpdCByZXF1ZXN0IHRocm91Z2ggUlBDUyBmb3IgZnVsbAor CSAqIGVuYWJsZW1lbnQuCisJICovCisJaWYgKHNzZXUtPmhhc19zbGljZV9wZykgeworCQlycGNz IHw9IEdFTjhfUlBDU19TX0NOVF9FTkFCTEU7CisJCXJwY3MgfD0gaHdlaWdodDgoY3R4X3NzZXUu c2xpY2VfbWFzaykgPDwgR0VOOF9SUENTX1NfQ05UX1NISUZUOworCQlycGNzIHw9IEdFTjhfUlBD U19FTkFCTEU7CisJfQorCisJaWYgKHNzZXUtPmhhc19zdWJzbGljZV9wZykgeworCQlycGNzIHw9 IEdFTjhfUlBDU19TU19DTlRfRU5BQkxFOworCQlycGNzIHw9IGh3ZWlnaHQ4KGN0eF9zc2V1LnN1 YnNsaWNlX21hc2spIDw8CisJCQlHRU44X1JQQ1NfU1NfQ05UX1NISUZUOworCQlycGNzIHw9IEdF TjhfUlBDU19FTkFCTEU7CisJfQorCisJaWYgKHNzZXUtPmhhc19ldV9wZykgeworCQlycGNzIHw9 IGN0eF9zc2V1Lm1pbl9ldXNfcGVyX3N1YnNsaWNlIDw8CisJCQlHRU44X1JQQ1NfRVVfTUlOX1NI SUZUOworCQlycGNzIHw9IGN0eF9zc2V1Lm1heF9ldXNfcGVyX3N1YnNsaWNlIDw8CisJCQlHRU44 X1JQQ1NfRVVfTUFYX1NISUZUOworCQlycGNzIHw9IEdFTjhfUlBDU19FTkFCTEU7CisJfQorCisJ cmV0dXJuIHJwY3M7Cit9CisKK3N0YXRpYyBpbnQgZ2VuOF9lbWl0X3JwY3NfY29uZmlnKHN0cnVj dCBpOTE1X3JlcXVlc3QgKnJxLAorCQkJCSBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAor CQkJCSBzdHJ1Y3QgaW50ZWxfc3NldSBzc2V1KQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1ID0gcnEtPmk5MTU7CisJc3RydWN0IGludGVsX2NvbnRleHQgKmNlID0gdG9faW50ZWxf Y29udGV4dChjdHgsIGk5MTUtPmVuZ2luZVtSQ1NdKTsKKwl1NjQgb2Zmc2V0OworCXUzMiAqY3M7 CisKKwkvKiBMZXQgdGhlIGRlZmVycmVkIHN0YXRlIGFsbG9jYXRpb24gdGFrZSBjYXJlIG9mIHRo aXMuICovCisJaWYgKCFjZS0+c3RhdGUpCisJCXJldHVybiAwOworCisJaWYgKCFpOTE1X3ZtYV9p c19waW5uZWQoY2UtPmtlcm5lbF9zdGF0ZSkpIHsKKwkJaW50IHJldDsKKworCQlyZXQgPSBpOTE1 X3ZtYV9waW4oY2UtPmtlcm5lbF9zdGF0ZSwgMCwKKwkJCQkgICBHRU44X0xSX0NPTlRFWFRfQUxJ R04sIFBJTl9VU0VSKTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisJfQorCisJY3MgPSBp bnRlbF9yaW5nX2JlZ2luKHJxLCA0KTsKKwlpZiAoSVNfRVJSKGNzKSkKKwkJcmV0dXJuIFBUUl9F UlIoY3MpOworCisJb2Zmc2V0ID0gY2UtPmtlcm5lbF9zdGF0ZS0+bm9kZS5zdGFydCArCisJCUxS Q19TVEFURV9QTiAqIFBBR0VfU0laRSArCisJCShDVFhfUl9QV1JfQ0xLX1NUQVRFICsgMSkgKiA0 OworCisJKmNzKysgPSBNSV9TVE9SRV9EV09SRF9JTU1fR0VONDsKKwkqY3MrKyA9IGxvd2VyXzMy X2JpdHMob2Zmc2V0KTsKKwkqY3MrKyA9IHVwcGVyXzMyX2JpdHMob2Zmc2V0KTsKKwkqY3MrKyA9 IGdlbjhfbWFrZV9ycGNzKCZJTlRFTF9JTkZPKGk5MTUpLT5zc2V1LAorCQkJICAgICAgIGludGVs X2VuZ2luZV9wcmVwYXJlX3NzZXUocnEtPmVuZ2luZSwgc3NldSkpOworCisJaW50ZWxfcmluZ19h ZHZhbmNlKHJxLCBjcyk7CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGludCBnZW44X2luaXRf cmNzX2NvbnRleHQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiB7CiAJaW50IHJldDsKQEAgLTIz NjQsNiArMjQ0MCw4IEBAIGxvZ2ljYWxfcmluZ19kZWZhdWx0X3ZmdW5jcyhzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpCiAJZW5naW5lLT5lbWl0X2JyZWFkY3J1bWIgPSBnZW44X2VtaXRf YnJlYWRjcnVtYjsKIAllbmdpbmUtPmVtaXRfYnJlYWRjcnVtYl9zeiA9IGdlbjhfZW1pdF9icmVh ZGNydW1iX3N6OwogCisJZW5naW5lLT5lbWl0X3JwY3NfY29uZmlnID0gZ2VuOF9lbWl0X3JwY3Nf Y29uZmlnOworCiAJZW5naW5lLT5zZXRfZGVmYXVsdF9zdWJtaXNzaW9uID0gZXhlY2xpc3RzX3Nl dF9kZWZhdWx0X3N1Ym1pc3Npb247CiAKIAlpZiAoSU5URUxfR0VOKGVuZ2luZS0+aTkxNSkgPCAx MSkgewpAQCAtMjUxMiw0MSArMjU5MCw2IEBAIGludCBsb2dpY2FsX3hjc19yaW5nX2luaXQoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCXJldHVybiBsb2dpY2FsX3JpbmdfaW5pdChl bmdpbmUpOwogfQogCi11MzIgZ2VuOF9tYWtlX3JwY3MoY29uc3Qgc3RydWN0IHNzZXVfZGV2X2lu Zm8gKnNzZXUsCi0JCSAgIHN0cnVjdCBpbnRlbF9zc2V1IGN0eF9zc2V1KQotewotCXUzMiBycGNz ID0gMDsKLQotCS8qCi0JICogU3RhcnRpbmcgaW4gR2VuOSwgcmVuZGVyIHBvd2VyIGdhdGluZyBj YW4gbGVhdmUKLQkgKiBzbGljZS9zdWJzbGljZS9FVSBpbiBhIHBhcnRpYWxseSBlbmFibGVkIHN0 YXRlLiBXZQotCSAqIG11c3QgbWFrZSBhbiBleHBsaWNpdCByZXF1ZXN0IHRocm91Z2ggUlBDUyBm b3IgZnVsbAotCSAqIGVuYWJsZW1lbnQuCi0JKi8KLQlpZiAoc3NldS0+aGFzX3NsaWNlX3BnKSB7 Ci0JCXJwY3MgfD0gR0VOOF9SUENTX1NfQ05UX0VOQUJMRTsKLQkJcnBjcyB8PSBod2VpZ2h0OChj dHhfc3NldS5zbGljZV9tYXNrKSA8PCBHRU44X1JQQ1NfU19DTlRfU0hJRlQ7Ci0JCXJwY3MgfD0g R0VOOF9SUENTX0VOQUJMRTsKLQl9Ci0KLQlpZiAoc3NldS0+aGFzX3N1YnNsaWNlX3BnKSB7Ci0J CXJwY3MgfD0gR0VOOF9SUENTX1NTX0NOVF9FTkFCTEU7Ci0JCXJwY3MgfD0gaHdlaWdodDgoY3R4 X3NzZXUuc3Vic2xpY2VfbWFzaykgPDwKLQkJCUdFTjhfUlBDU19TU19DTlRfU0hJRlQ7Ci0JCXJw Y3MgfD0gR0VOOF9SUENTX0VOQUJMRTsKLQl9Ci0KLQlpZiAoc3NldS0+aGFzX2V1X3BnKSB7Ci0J CXJwY3MgfD0gY3R4X3NzZXUubWluX2V1c19wZXJfc3Vic2xpY2UgPDwKLQkJCUdFTjhfUlBDU19F VV9NSU5fU0hJRlQ7Ci0JCXJwY3MgfD0gY3R4X3NzZXUubWF4X2V1c19wZXJfc3Vic2xpY2UgPDwK LQkJCUdFTjhfUlBDU19FVV9NQVhfU0hJRlQ7Ci0JCXJwY3MgfD0gR0VOOF9SUENTX0VOQUJMRTsK LQl9Ci0KLQlyZXR1cm4gcnBjczsKLX0KLQogc3RhdGljIHUzMiBpbnRlbF9scl9pbmRpcmVjdF9j dHhfb2Zmc2V0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKIAl1MzIgaW5kaXJl Y3RfY3R4X29mZnNldDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwppbmRl eCA5N2IzOGJiYjdjZTIuLjUwNjE2ZDAxOTBlOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuYwpAQCAtMjA2Myw2ICsyMDYzLDggQEAgc3RhdGljIHZvaWQgaW50ZWxfcmlu Z19kZWZhdWx0X3ZmdW5jcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQll bmdpbmUtPmVtaXRfYnJlYWRjcnVtYl9zeisrOwogCX0KIAorCWVuZ2luZS0+ZW1pdF9ycGNzX2Nv bmZpZyA9IE5VTEw7IC8qIE9ubHkgc3VwcG9ydGVkIG9uIEdlbjgrICovCisKIAllbmdpbmUtPnNl dF9kZWZhdWx0X3N1Ym1pc3Npb24gPSBpOXh4X3NldF9kZWZhdWx0X3N1Ym1pc3Npb247CiAKIAlp ZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA2KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5oCmluZGV4IGFjZWYzODVjNGM4MC4uYWI3NWFmZGM2ZmQ2IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCkBAIC00NTYsNiArNDU2LDEwIEBAIHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgewogCXZvaWQJCSgqZW1pdF9icmVhZGNydW1iKShzdHJ1Y3QgaTkxNV9y ZXF1ZXN0ICpycSwgdTMyICpjcyk7CiAJaW50CQllbWl0X2JyZWFkY3J1bWJfc3o7CiAKKwlpbnQJ CSgqZW1pdF9ycGNzX2NvbmZpZykoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsCisJCQkJCSAgICBz dHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAorCQkJCQkgICAgc3RydWN0IGludGVsX3NzZXUg c3NldSk7CisKIAkvKiBQYXNzIHRoZSByZXF1ZXN0IHRvIHRoZSBoYXJkd2FyZSBxdWV1ZSAoZS5n LiBkaXJlY3RseSBpbnRvCiAJICogdGhlIGxlZ2FjeSByaW5nYnVmZmVyIG9yIHRvIHRoZSBlbmQg b2YgYW4gZXhlY2xpc3QpLgogCSAqCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVf ZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKaW5kZXggN2Y1NjM0Y2U4ZTg4Li4y MWRmMTU4MDU2YTIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAorKysg Yi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKQEAgLTE0NTYsOSArMTQ1Niw1MiBAQCBzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW0gewogI2RlZmluZSAgIEk5MTVfQ09OVEVYVF9N QVhfVVNFUl9QUklPUklUWQkxMDIzIC8qIGluY2x1c2l2ZSAqLwogI2RlZmluZSAgIEk5MTVfQ09O VEVYVF9ERUZBVUxUX1BSSU9SSVRZCQkwCiAjZGVmaW5lICAgSTkxNV9DT05URVhUX01JTl9VU0VS X1BSSU9SSVRZCS0xMDIzIC8qIGluY2x1c2l2ZSAqLworCS8qCisJICogV2hlbiB1c2luZyB0aGUg Zm9sbG93aW5nIHBhcmFtLCB2YWx1ZSBzaG91bGQgYmUgYSBwb2ludGVyIHRvCisJICogZHJtX2k5 MTVfZ2VtX2NvbnRleHRfcGFyYW1fc3NldS4KKwkgKi8KKyNkZWZpbmUgSTkxNV9DT05URVhUX1BB UkFNX1NTRVUJCTB4NwogCV9fdTY0IHZhbHVlOwogfTsKIAorc3RydWN0IGRybV9pOTE1X2dlbV9j b250ZXh0X3BhcmFtX3NzZXUgeworCS8qCisJICogRW5naW5lIGNsYXNzICYgaW5zdGFuY2UgdG8g YmUgY29uZmlndXJlZCBvciBxdWVyaWVkLgorCSAqLworCV9fdTE2IGNsYXNzOworCV9fdTE2IGlu c3RhbmNlOworCisJLyoKKwkgKiBVbnVzZWQgZm9yIG5vdy4gTXVzdCBiZSBjbGVhcmVkIHRvIHpl cm8uCisJICovCisJX191MzIgcnN2ZDE7CisKKwkvKgorCSAqIE1hc2sgb2Ygc2xpY2VzIHRvIGVu YWJsZSBmb3IgdGhlIGNvbnRleHQuIFZhbGlkIHZhbHVlcyBhcmUgYSBzdWJzZXQKKwkgKiBvZiB0 aGUgYml0bWFzayB2YWx1ZSByZXR1cm5lZCBmb3IgSTkxNV9QQVJBTV9TTElDRV9NQVNLLgorCSAq LworCV9fdTY0IHNsaWNlX21hc2s7CisKKwkvKgorCSAqIE1hc2sgb2Ygc3Vic2xpY2VzIHRvIGVu YWJsZSBmb3IgdGhlIGNvbnRleHQuIFZhbGlkIHZhbHVlcyBhcmUgYQorCSAqIHN1YnNldCBvZiB0 aGUgYml0bWFzayB2YWx1ZSByZXR1cm4gYnkgSTkxNV9QQVJBTV9TVUJTTElDRV9NQVNLLgorCSAq LworCV9fdTY0IHN1YnNsaWNlX21hc2s7CisKKwkvKgorCSAqIE1pbmltdW0vTWF4aW11bSBudW1i ZXIgb2YgRVVzIHRvIGVuYWJsZSBwZXIgc3Vic2xpY2UgZm9yIHRoZQorCSAqIGNvbnRleHQuIG1p bl9ldXNfcGVyX3N1YnNsaWNlIG11c3QgYmUgaW5mZXJpb3Igb3IgZXF1YWwgdG8KKwkgKiBtYXhf ZXVzX3Blcl9zdWJzbGljZS4KKwkgKi8KKwlfX3UxNiBtaW5fZXVzX3Blcl9zdWJzbGljZTsKKwlf X3UxNiBtYXhfZXVzX3Blcl9zdWJzbGljZTsKKworCS8qCisJICogVW51c2VkIGZvciBub3cuIE11 c3QgYmUgY2xlYXJlZCB0byB6ZXJvLgorCSAqLworCV9fdTMyIHJzdmQyOworfTsKKwogZW51bSBk cm1faTkxNV9vYV9mb3JtYXQgewogCUk5MTVfT0FfRk9STUFUX0ExMyA9IDEsCSAgICAvKiBIU1cg b25seSAqLwogCUk5MTVfT0FfRk9STUFUX0EyOSwJICAgIC8qIEhTVyBvbmx5ICovCi0tIAoyLjE3 LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=