From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak Rawat Subject: [PATCH v3 01/18] drm: Add a new plane property to send damage during plane update Date: Wed, 10 Oct 2018 17:16:40 -0700 Message-ID: <20181011001657.1715-1-drawat@vmware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from EX13-EDG-OU-001.vmware.com (ex13-edg-ou-001.vmware.com [208.91.0.189]) by gabe.freedesktop.org (Postfix) with ESMTPS id C820D8930E for ; Thu, 11 Oct 2018 00:17:12 +0000 (UTC) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, linux-graphics-maintainer@vmware.com, thellstrom@vmware.com, syeh@vmware.com Cc: Daniel Vetter , Lukasz Spintzyk , Deepak Rawat List-Id: dri-devel@lists.freedesktop.org RnJvbTogTHVrYXN6IFNwaW50enlrIDxsdWthc3ouc3BpbnR6eWtAZGlzcGxheWxpbmsuY29tPgoK RkJfREFNQUdFX0NMSVBTIGlzIGFuIG9wdGlvbmFsIHBsYW5lIHByb3BlcnR5IHRvIG1hcmsgZGFt YWdlZCByZWdpb25zCm9uIHRoZSBwbGFuZSBpbiBmcmFtZWJ1ZmZlciBjb29yZGluYXRlcyBvZiB0 aGUgZnJhbWVidWZmZXIgYXR0YWNoZWQgdG8KdGhlIHBsYW5lLgoKVGhlIGxheW91dCBvZiBibG9i IGRhdGEgaXMgc2ltcGx5IGFuIGFycmF5IG9mICJzdHJ1Y3QgZHJtX21vZGVfcmVjdCIuClVubGlr ZSBwbGFuZSBzcmMgY29vcmRpbmF0ZXMsIGRhbWFnZSBjbGlwcyBhcmUgbm90IGluIDE2LjE2IGZp eGVkIHBvaW50LgpBcyBwbGFuZSBzcmMgaW4gZnJhbWVidWZmZXIgY2Fubm90IGJlIG5lZ2F0aXZl IHNvIGFyZSBkYW1hZ2UgY2xpcHMuIEluCmRhbWFnZSBjbGlwLCB4MS95MSBhcmUgaW5jbHVzaXZl IGFuZCB4Mi95MiBhcmUgZXhjbHVzaXZlLgoKVGhpcyBwYXRjaCBhbHNvIGV4cG9ydHMgdGhlIGtl cm5lbCBpbnRlcm5hbCBkcm1fcmVjdCB0byB1c2Vyc3BhY2UgYXMKZHJtX21vZGVfcmVjdC4gVGhp cyBpcyBiZWNhdXNlICJzdHJ1Y3QgZHJtX2NsaXBfcmVjdCIgaXMgbm90IHN1ZmZpY2llbnQKdG8g cmVwcmVzZW50IGRhbWFnZSBmb3IgY3VycmVudCBwbGFuZSBzaXplLgoKRHJpdmVyIHdoaWNoIGFy ZSBpbnRlcmVzdGVkIGluIGVuYWJsaW5nIEZCX0RBTUFHRV9DTElQUyBwcm9wZXJ0eSBmb3IgYQpw bGFuZSBzaG91bGQgZW5hYmxlIHRoaXMgcHJvcGVydHkgdXNpbmcgZHJtX3BsYW5lX2VuYWJsZV9k YW1hZ2VfY2xpcHMuCgp2MjoKLSBJbnB1dCB2YWxpZGF0aW9uIG9uIGRhbWFnZSBjbGlwcyBhZ2Fp bnN0IGZyYW1lYnVmZmVyIHNpemUuCi0gRG9jIHVwZGF0ZSwgb3RoZXIgbWlub3IgY2hhbmdlcy4K CkNjOiB2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbQpDYzogRGFuaWVsIFZldHRlciA8ZGFu aWVsLnZldHRlckBmZndsbC5jaD4KQ2M6IFBla2thIFBhYWxhbmVuIDxwcGFhbGFuZW5AZ21haWwu Y29tPgpDYzogRGFuaWVsIFN0b25lIDxkYW5pZWxAZm9vaXNoYmFyLm9yZz4KU2lnbmVkLW9mZi1i eTogTHVrYXN6IFNwaW50enlrIDxsdWthc3ouc3BpbnR6eWtAZGlzcGxheWxpbmsuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEZWVwYWsgUmF3YXQgPGRyYXdhdEB2bXdhcmUuY29tPgotLS0KIERvY3VtZW50 YXRpb24vZ3B1L2RybS1rbXMucnN0ICAgICAgIHwgMTIgKysrKysKIGRyaXZlcnMvZ3B1L2RybS9N YWtlZmlsZSAgICAgICAgICAgIHwgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMg ICAgICAgIHwgMjIgKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5j IHwgIDMgKysKIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYyAgIHwgMTMgKysrKysK IGRyaXZlcnMvZ3B1L2RybS9kcm1fZGFtYWdlX2hlbHBlci5jIHwgODMgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZV9jb25maWcuYyAgIHwgIDYg KysrCiBpbmNsdWRlL2RybS9kcm1fZGFtYWdlX2hlbHBlci5oICAgICB8IDM5ICsrKysrKysrKysr KysrCiBpbmNsdWRlL2RybS9kcm1fbW9kZV9jb25maWcuaCAgICAgICB8ICA5ICsrKysKIGluY2x1 ZGUvZHJtL2RybV9wbGFuZS5oICAgICAgICAgICAgIHwgNDAgKysrKysrKysrKysrKysKIGluY2x1 ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCAgICAgICAgIHwgMTkgKysrKysrKwogMTEgZmlsZXMgY2hh bmdlZCwgMjQ4IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkcml2ZXJzL2dwdS9kcm0vZHJtX2RhbWFnZV9oZWxwZXIuYwogY3JlYXRlIG1vZGUgMTAwNjQ0 IGluY2x1ZGUvZHJtL2RybV9kYW1hZ2VfaGVscGVyLmgKCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0 aW9uL2dwdS9kcm0ta21zLnJzdCBiL0RvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMucnN0CmluZGV4 IDRiMTUwMWI0ODM1Yi4uNmMzZTg5ZTMyNGY4IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dw dS9kcm0ta21zLnJzdAorKysgYi9Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLnJzdApAQCAtNTU0 LDYgKzU1NCwxOCBAQCBQbGFuZSBDb21wb3NpdGlvbiBQcm9wZXJ0aWVzCiAuLiBrZXJuZWwtZG9j OjogZHJpdmVycy9ncHUvZHJtL2RybV9ibGVuZC5jCiAgICA6ZXhwb3J0OgogCitGQl9EQU1BR0Vf Q0xJUFMKK35+fn5+fn5+fn5+fn5+fgorCisuLiBrZXJuZWwtZG9jOjogZHJpdmVycy9ncHUvZHJt L2RybV9kYW1hZ2VfaGVscGVyLmMKKyAgIDpkb2M6IG92ZXJ2aWV3CisKKy4uIGtlcm5lbC1kb2M6 OiBkcml2ZXJzL2dwdS9kcm0vZHJtX2RhbWFnZV9oZWxwZXIuYworICAgOmV4cG9ydDoKKworLi4g a2VybmVsLWRvYzo6IGluY2x1ZGUvZHJtL2RybV9kYW1hZ2VfaGVscGVyLmgKKyAgIDppbnRlcm5h bDoKKwogQ29sb3IgTWFuYWdlbWVudCBQcm9wZXJ0aWVzCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlIGIvZHJpdmVycy9n cHUvZHJtL01ha2VmaWxlCmluZGV4IGJjNmExNmEzYzM2ZS4uMmVkNGM2NmNhODQ5IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL01ha2Vm aWxlCkBAIC0zNiw3ICszNiw4IEBAIGRybV9rbXNfaGVscGVyLXkgOj0gZHJtX2NydGNfaGVscGVy Lm8gZHJtX2RwX2hlbHBlci5vIGRybV9wcm9iZV9oZWxwZXIubyBcCiAJCWRybV9wbGFuZV9oZWxw ZXIubyBkcm1fZHBfbXN0X3RvcG9sb2d5Lm8gZHJtX2F0b21pY19oZWxwZXIubyBcCiAJCWRybV9r bXNfaGVscGVyX2NvbW1vbi5vIGRybV9kcF9kdWFsX21vZGVfaGVscGVyLm8gXAogCQlkcm1fc2lt cGxlX2ttc19oZWxwZXIubyBkcm1fbW9kZXNldF9oZWxwZXIubyBcCi0JCWRybV9zY2RjX2hlbHBl ci5vIGRybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLm8KKwkJZHJtX3NjZGNfaGVscGVyLm8gZHJt X2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIubyBcCisJCWRybV9kYW1hZ2VfaGVscGVyLm8KIAogZHJt X2ttc19oZWxwZXItJChDT05GSUdfRFJNX1BBTkVMX0JSSURHRSkgKz0gYnJpZGdlL3BhbmVsLm8K IGRybV9rbXNfaGVscGVyLSQoQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT04pICs9IGRybV9mYl9o ZWxwZXIubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKaW5kZXggMjg3MGFlMjA1MjM3Li5mZjQ4OGI0N2I1YmIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWMuYwpAQCAtNTE2LDYgKzUxNiw4IEBAIHN0YXRpYyBpbnQgZHJtX2F0 b21pY19wbGFuZV9jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJc3RydWN0IGRybV9w bGFuZV9zdGF0ZSAqc3RhdGUpCiB7CiAJdW5zaWduZWQgaW50IGZiX3dpZHRoLCBmYl9oZWlnaHQ7 CisJc3RydWN0IGRybV9tb2RlX3JlY3QgKmNsaXBzOworCXVpbnQzMl90IG51bV9jbGlwczsKIAlp bnQgcmV0OwogCiAJLyogZWl0aGVyICpib3RoKiBDUlRDIGFuZCBGQiBtdXN0IGJlIHNldCwgb3Ig bmVpdGhlciAqLwpAQCAtNTg1LDYgKzU4NywyNiBAQCBzdGF0aWMgaW50IGRybV9hdG9taWNfcGxh bmVfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCXJldHVybiAtRU5PU1BDOwogCX0K IAorCWNsaXBzID0gZHJtX3BsYW5lX2dldF9kYW1hZ2VfY2xpcHMoc3RhdGUpOworCW51bV9jbGlw cyA9IGRybV9wbGFuZV9nZXRfZGFtYWdlX2NsaXBzX2NvdW50KHN0YXRlKTsKKworCS8qIE1ha2Ug c3VyZSBkYW1hZ2UgY2xpcHMgYXJlIHZhbGlkIGFuZCBpbnNpZGUgdGhlIGZiLiAqLworCXdoaWxl IChudW1fY2xpcHMgPiAwKSB7CisJCWlmIChjbGlwcy0+eDEgPj0gY2xpcHMtPngyIHx8CisJCSAg ICBjbGlwcy0+eTEgPj0gY2xpcHMtPnkyIHx8CisJCSAgICBjbGlwcy0+eDEgPCAwIHx8CisJCSAg ICBjbGlwcy0+eTEgPCAwIHx8CisJCSAgICBjbGlwcy0+eDIgPiBmYl93aWR0aCB8fAorCQkgICAg Y2xpcHMtPnkyID4gZmJfaGVpZ2h0KSB7CisJCQlEUk1fREVCVUdfQVRPTUlDKCJbUExBTkU6JWQ6 JXNdIGludmFsaWQgZGFtYWdlIGNsaXAgJWQgJWQgJWQgJWRcbiIsCisJCQkJCSBwbGFuZS0+YmFz ZS5pZCwgcGxhbmUtPm5hbWUsIGNsaXBzLT54MSwKKwkJCQkJIGNsaXBzLT55MSwgY2xpcHMtPngy LCBjbGlwcy0+eTIpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKwkJY2xpcHMrKzsKKwkJbnVt X2NsaXBzLS07CisJfQorCiAJaWYgKHBsYW5lX3N3aXRjaGluZ19jcnRjKHN0YXRlLT5zdGF0ZSwg cGxhbmUsIHN0YXRlKSkgewogCQlEUk1fREVCVUdfQVRPTUlDKCJbUExBTkU6JWQ6JXNdIHN3aXRj aGluZyBDUlRDIGRpcmVjdGx5XG4iLAogCQkJCSBwbGFuZS0+YmFzZS5pZCwgcGxhbmUtPm5hbWUp OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwppbmRleCBlNDliMjIzODEwNDguLjM1Mzk1 NTc3Y2E4NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKQEAgLTM2MTMsNiArMzYx Myw3IEBAIHZvaWQgX19kcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kdXBsaWNhdGVfc3RhdGUoc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUsCiAKIAlzdGF0ZS0+ZmVuY2UgPSBOVUxMOwogCXN0YXRlLT5j b21taXQgPSBOVUxMOworCXN0YXRlLT5mYl9kYW1hZ2VfY2xpcHMgPSBOVUxMOwogfQogRVhQT1JU X1NZTUJPTChfX2RybV9hdG9taWNfaGVscGVyX3BsYW5lX2R1cGxpY2F0ZV9zdGF0ZSk7CiAKQEAg LTM2NTcsNiArMzY1OCw4IEBAIHZvaWQgX19kcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kZXN0cm95 X3N0YXRlKHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKQogCiAJaWYgKHN0YXRlLT5jb21t aXQpCiAJCWRybV9jcnRjX2NvbW1pdF9wdXQoc3RhdGUtPmNvbW1pdCk7CisKKwlkcm1fcHJvcGVy dHlfYmxvYl9wdXQoc3RhdGUtPmZiX2RhbWFnZV9jbGlwcyk7CiB9CiBFWFBPUlRfU1lNQk9MKF9f ZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfZGVzdHJveV9zdGF0ZSk7CiAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRv bWljX3VhcGkuYwppbmRleCBkNWI3ZjMxNTA5OGMuLmI4M2I5NmZlODg3ZSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fYXRvbWljX3VhcGkuYwpAQCAtNTEzLDYgKzUxMyw4IEBAIHN0YXRpYyBpbnQgZHJtX2F0b21p Y19wbGFuZV9zZXRfcHJvcGVydHkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiB7CiAJc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IHBsYW5lLT5kZXY7CiAJc3RydWN0IGRybV9tb2RlX2NvbmZpZyAq Y29uZmlnID0gJmRldi0+bW9kZV9jb25maWc7CisJYm9vbCByZXBsYWNlZCA9IGZhbHNlOworCWlu dCByZXQ7CiAKIAlpZiAocHJvcGVydHkgPT0gY29uZmlnLT5wcm9wX2ZiX2lkKSB7CiAJCXN0cnVj dCBkcm1fZnJhbWVidWZmZXIgKmZiID0gZHJtX2ZyYW1lYnVmZmVyX2xvb2t1cChkZXYsIE5VTEws IHZhbCk7CkBAIC01NjYsNiArNTY4LDE0IEBAIHN0YXRpYyBpbnQgZHJtX2F0b21pY19wbGFuZV9z ZXRfcHJvcGVydHkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCXN0YXRlLT5jb2xvcl9lbmNv ZGluZyA9IHZhbDsKIAl9IGVsc2UgaWYgKHByb3BlcnR5ID09IHBsYW5lLT5jb2xvcl9yYW5nZV9w cm9wZXJ0eSkgewogCQlzdGF0ZS0+Y29sb3JfcmFuZ2UgPSB2YWw7CisJfSBlbHNlIGlmIChwcm9w ZXJ0eSA9PSBjb25maWctPnByb3BfZmJfZGFtYWdlX2NsaXBzKSB7CisJCXJldCA9IGRybV9hdG9t aWNfcmVwbGFjZV9wcm9wZXJ0eV9ibG9iX2Zyb21faWQoZGV2LAorCQkJCQkmc3RhdGUtPmZiX2Rh bWFnZV9jbGlwcywKKwkJCQkJdmFsLAorCQkJCQktMSwKKwkJCQkJc2l6ZW9mKHN0cnVjdCBkcm1f cmVjdCksCisJCQkJCSZyZXBsYWNlZCk7CisJCXJldHVybiByZXQ7CiAJfSBlbHNlIGlmIChwbGFu ZS0+ZnVuY3MtPmF0b21pY19zZXRfcHJvcGVydHkpIHsKIAkJcmV0dXJuIHBsYW5lLT5mdW5jcy0+ YXRvbWljX3NldF9wcm9wZXJ0eShwbGFuZSwgc3RhdGUsCiAJCQkJcHJvcGVydHksIHZhbCk7CkBA IC02MjEsNiArNjMxLDkgQEAgZHJtX2F0b21pY19wbGFuZV9nZXRfcHJvcGVydHkoc3RydWN0IGRy bV9wbGFuZSAqcGxhbmUsCiAJCSp2YWwgPSBzdGF0ZS0+Y29sb3JfZW5jb2Rpbmc7CiAJfSBlbHNl IGlmIChwcm9wZXJ0eSA9PSBwbGFuZS0+Y29sb3JfcmFuZ2VfcHJvcGVydHkpIHsKIAkJKnZhbCA9 IHN0YXRlLT5jb2xvcl9yYW5nZTsKKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+cHJv cF9mYl9kYW1hZ2VfY2xpcHMpIHsKKwkJKnZhbCA9IChzdGF0ZS0+ZmJfZGFtYWdlX2NsaXBzKSA/ CisJCQlzdGF0ZS0+ZmJfZGFtYWdlX2NsaXBzLT5iYXNlLmlkIDogMDsKIAl9IGVsc2UgaWYgKHBs YW5lLT5mdW5jcy0+YXRvbWljX2dldF9wcm9wZXJ0eSkgewogCQlyZXR1cm4gcGxhbmUtPmZ1bmNz LT5hdG9taWNfZ2V0X3Byb3BlcnR5KHBsYW5lLCBzdGF0ZSwgcHJvcGVydHksIHZhbCk7CiAJfSBl bHNlIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZGFtYWdlX2hlbHBlci5jIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9kYW1hZ2VfaGVscGVyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi44ZGM5MDZhNDg5YTkKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2RhbWFnZV9oZWxwZXIuYwpAQCAtMCwwICsxLDgzIEBACisvLyBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBPUiBNSVQKKy8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgor ICoKKyAqIENvcHlyaWdodCAoYykgMjAxOCBWTXdhcmUsIEluYy4sIFBhbG8gQWx0bywgQ0EuLCBV U0EKKyAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkg Z3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNv cHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0 aGUKKyAqICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3Ry aWN0aW9uLCBpbmNsdWRpbmcKKyAqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVz ZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyAqIGRpc3RyaWJ1dGUsIHN1YiBsaWNl bnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8KKyAqIHBlcm1p dCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3Vi amVjdCB0bworICogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBj b3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhl CisgKiBuZXh0IHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBz dWJzdGFudGlhbCBwb3J0aW9ucworICogb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZU V0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBF WFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBX QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFIEFORCBOT04tSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhF IENPUFlSSUdIVCBIT0xERVJTLCBBVVRIT1JTIEFORC9PUiBJVFMgU1VQUExJRVJTIEJFIExJQUJM RSBGT1IgQU5ZIENMQUlNLAorICogREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIg SU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SCisgKiBPVEhFUldJU0UsIEFSSVNJTkcg RlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFCisg KiBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIEF1dGhvcnM6 CisgKiBEZWVwYWsgUmF3YXQgPGRyYXdhdEB2bXdhcmUuY29tPgorICoKKyAqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKi8KKworI2luY2x1ZGUgPGRybS9kcm1fZGFtYWdlX2hlbHBlci5oPgorCisvKioKKyAqIERP Qzogb3ZlcnZpZXcKKyAqCisgKiBGQl9EQU1BR0VfQ0xJUFMgaXMgYW4gb3B0aW9uYWwgcGxhbmUg cHJvcGVydHkgd2hpY2ggcHJvdmlkZXMgYSBtZWFucyB0bworICogc3BlY2lmeSBhIGxpc3Qgb2Yg ZGFtYWdlIHJlY3RhbmdsZXMgb24gYSBwbGFuZSBpbiBmcmFtZWJ1ZmZlciBjb29yZGluYXRlcyBv ZgorICogdGhlIGZyYW1lYnVmZmVyIGF0dGFjaGVkIHRvIHRoZSBwbGFuZS4gSW4gY3VycmVudCBj b250ZXh0IGRhbWFnZSBpcyB0aGUgYXJlYQorICogb2YgcGxhbmUgZnJhbWVidWZmZXIgdGhhdCBo YXMgY2hhbmdlZCBzaW5jZSBsYXN0IHBsYW5lIHVwZGF0ZSAoYWxzbyBjYWxsZWQKKyAqIHBhZ2Ut ZmxpcCksIGlycmVzcGVjdGl2ZSBvZiB3aGV0aGVyIGN1cnJlbnRseSBhdHRhY2hlZCBmcmFtZWJ1 ZmZlciBpcyBzYW1lIGFzCisgKiBmcmFtZWJ1ZmZlciBhdHRhY2hlZCBkdXJpbmcgbGFzdCBwbGFu ZSB1cGRhdGUgb3Igbm90LgorICoKKyAqIEZCX0RBTUFHRV9DTElQUyBpcyBhIGhpbnQgdG8ga2Vy bmVsIHdoaWNoIGNvdWxkIGJlIGhlbHBmdWwgZm9yIHNvbWUgZHJpdmVycworICogdG8gb3B0aW1p emUgaW50ZXJuYWxseSBlc3BlY2lhbGx5IGZvciB2aXJ0dWFsIGRldmljZXMgd2hlcmUgZWFjaCBm cmFtZWJ1ZmZlcgorICogY2hhbmdlIG5lZWRzIHRvIGJlIHRyYW5zbWl0dGVkIG92ZXIgbmV0d29y aywgdXNiLCBldGMuCisgKgorICogU2luY2UgRkJfREFNQUdFX0NMSVBTIGlzIGEgaGludCBzbyBp dCBpcyBhbiBvcHRpb25hbCBwcm9wZXJ0eS4gVXNlci1zcGFjZSBjYW4KKyAqIGlnbm9yZSBkYW1h Z2UgY2xpcHMgcHJvcGVydHkgYW5kIGluIHRoYXQgY2FzZSBkcml2ZXIgd2lsbCBkbyBhIGZ1bGwg cGxhbmUKKyAqIHVwZGF0ZS4gSW4gY2FzZSBkYW1hZ2UgY2xpcHMgYXJlIHByb3ZpZGVkIHRoZW4g aXQgaXMgZ3VhcmFudGVlZCB0aGF0IHRoZSBhcmVhCisgKiBpbnNpZGUgZGFtYWdlIGNsaXBzIHdp bGwgYmUgdXBkYXRlZCB0byBwbGFuZS4gRm9yIGVmZmljaWVuY3kgZHJpdmVyIGNhbiBkbworICog ZnVsbCB1cGRhdGUgb3IgY2FuIHVwZGF0ZSBtb3JlIHRoYW4gc3BlY2lmaWVkIGluIGRhbWFnZSBj bGlwcy4gU2luY2UgZHJpdmVyCisgKiBpcyBmcmVlIHRvIHJlYWQgbW9yZSwgdXNlci1zcGFjZSBt dXN0IGFsd2F5cyByZW5kZXIgdGhlIGVudGlyZSB2aXNpYmxlCisgKiBmcmFtZWJ1ZmZlci4gT3Ro ZXJ3aXNlIHRoZXJlIGNhbiBiZSBjb3JydXB0aW9ucy4gQWxzbywgaWYgYSB1c2VyLXNwYWNlCisg KiBwcm92aWRlcyBkYW1hZ2UgY2xpcHMgd2hpY2ggZG9lc24ndCBlbmNvbXBhc3MgdGhlIGFjdHVh bCBkYW1hZ2UgdG8KKyAqIGZyYW1lYnVmZmVyIChzaW5jZSBsYXN0IHBsYW5lIHVwZGF0ZSkgY2Fu IHJlc3VsdCBpbiBpbmNvcnJlY3QgcmVuZGVyaW5nLgorICoKKyAqIEZCX0RBTUFHRV9DTElQUyBp cyBhIGJsb2IgcHJvcGVydHkgd2l0aCB0aGUgbGF5b3V0IG9mIGJsb2IgZGF0YSBpcyBzaW1wbHkg YW4KKyAqIGFycmF5IG9mICZkcm1fbW9kZV9yZWN0LiBVbmxpa2UgcGxhbmUgJmRybV9wbGFuZV9z dGF0ZS5zcmMgY29vcmRpbmF0ZXMsCisgKiBkYW1hZ2UgY2xpcHMgYXJlIG5vdCBpbiAxNi4xNiBm aXhlZCBwb2ludC4gU2ltaWxhciB0byBwbGFuZSBzcmMgaW4KKyAqIGZyYW1lYnVmZmVyLCBkYW1h Z2UgY2xpcHMgY2Fubm90IGJlIG5lZ2F0aXZlLiBJbiBkYW1hZ2UgY2xpcCwgeDEveTEgYXJlCisg KiBpbmNsdXNpdmUgYW5kIHgyL3kyIGFyZSBleGNsdXNpdmUuIFdoaWxlIGtlcm5lbCBkb2VzIG5v dCBlcnJvciBmb3Igb3ZlcmxhcHBlZAorICogZGFtYWdlIGNsaXBzLCBpdCBpcyBzdHJvbmdseSBk aXNjb3VyYWdlZC4KKyAqCisgKiBEcml2ZXJzIHRoYXQgYXJlIGludGVyZXN0ZWQgaW4gZGFtYWdl IGludGVyZmFjZSBmb3IgcGxhbmUgc2hvdWxkIGVuYWJsZQorICogRkJfREFNQUdFX0NMSVBTIHBy b3BlcnR5IGJ5IGNhbGxpbmcgZHJtX3BsYW5lX2VuYWJsZV9mYl9kYW1hZ2VfY2xpcHMoKS4KKyAq LworCisvKioKKyAqIGRybV9wbGFuZV9lbmFibGVfZmJfZGFtYWdlX2NsaXBzIC0gRW5hYmxlcyBw bGFuZSBmYiBkYW1hZ2UgY2xpcHMgcHJvcGVydHkuCisgKiBAcGxhbmU6IFBsYW5lIG9uIHdoaWNo IHRvIGVuYWJsZSBkYW1hZ2UgY2xpcHMgcHJvcGVydHkuCisgKgorICogVGhpcyBmdW5jdGlvbiBs ZXRzIGRyaXZlciB0byBlbmFibGUgdGhlIGRhbWFnZSBjbGlwcyBwcm9wZXJ0eSBvbiBhIHBsYW5l LgorICovCit2b2lkIGRybV9wbGFuZV9lbmFibGVfZmJfZGFtYWdlX2NsaXBzKHN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwbGFuZS0+ZGV2Owor CXN0cnVjdCBkcm1fbW9kZV9jb25maWcgKmNvbmZpZyA9ICZkZXYtPm1vZGVfY29uZmlnOworCisJ ZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJnBsYW5lLT5iYXNlLCBjb25maWctPnByb3BfZmJf ZGFtYWdlX2NsaXBzLAorCQkJCSAgIDApOworfQorRVhQT1JUX1NZTUJPTChkcm1fcGxhbmVfZW5h YmxlX2ZiX2RhbWFnZV9jbGlwcyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX21v ZGVfY29uZmlnLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVfY29uZmlnLmMKaW5kZXggZWU4 MDc4OGYyYzQwLi4wNWNkNWU5ODU3ZTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f bW9kZV9jb25maWcuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVfY29uZmlnLmMKQEAg LTI5Nyw2ICsyOTcsMTIgQEAgc3RhdGljIGludCBkcm1fbW9kZV9jcmVhdGVfc3RhbmRhcmRfcHJv cGVydGllcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlyZXR1cm4gLUVOT01FTTsKIAlkZXYt Pm1vZGVfY29uZmlnLnByb3BfY3J0Y19pZCA9IHByb3A7CiAKKwlwcm9wID0gZHJtX3Byb3BlcnR5 X2NyZWF0ZShkZXYsIERSTV9NT0RFX1BST1BfQkxPQiwgIkZCX0RBTUFHRV9DTElQUyIsCisJCQkJ ICAgMCk7CisJaWYgKCFwcm9wKQorCQlyZXR1cm4gLUVOT01FTTsKKwlkZXYtPm1vZGVfY29uZmln LnByb3BfZmJfZGFtYWdlX2NsaXBzID0gcHJvcDsKKwogCXByb3AgPSBkcm1fcHJvcGVydHlfY3Jl YXRlX2Jvb2woZGV2LCBEUk1fTU9ERV9QUk9QX0FUT01JQywKIAkJCSJBQ1RJVkUiKTsKIAlpZiAo IXByb3ApCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZGFtYWdlX2hlbHBlci5oIGIvaW5j bHVkZS9kcm0vZHJtX2RhbWFnZV9oZWxwZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAuLjQ5NDdjNjE0ZmZmOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvZHJt L2RybV9kYW1hZ2VfaGVscGVyLmgKQEAgLTAsMCArMSwzOSBAQAorLyogU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEdQTC0yLjAgT1IgTUlUICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBD b3B5cmlnaHQgKGMpIDIwMTggVk13YXJlLCBJbmMuLCBQYWxvIEFsdG8sIENBLiwgVVNBCisgKiBB bGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQs IGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRo aXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisgKiAi U29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwg aW5jbHVkaW5nCisgKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHks IG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisgKiBkaXN0cmlidXRlLCBzdWIgbGljZW5zZSwgYW5k L29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvCisgKiBwZXJtaXQgcGVyc29u cyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8K KyAqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0 IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZQorICogbmV4 dCBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRp YWwgcG9ydGlvbnMKKyAqIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMg UFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBP UgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElF UyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RSBBTkQgTk9OLUlORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklH SFQgSE9MREVSUywgQVVUSE9SUyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SIEFO WSBDTEFJTSwKKyAqIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFD VElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUgorICogT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9V VCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRQorICogVVNFIE9S IE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOgorICogRGVl cGFrIFJhd2F0IDxkcmF3YXRAdm13YXJlLmNvbT4KKyAqCisgKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisK KyNpZm5kZWYgRFJNX0RBTUFHRV9IRUxQRVJfSF8KKyNkZWZpbmUgRFJNX0RBTUFHRV9IRUxQRVJf SF8KKworI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgorCit2b2lkIGRybV9wbGFu ZV9lbmFibGVfZmJfZGFtYWdlX2NsaXBzKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKTsKKworI2Vu ZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fbW9kZV9jb25maWcuaCBiL2luY2x1ZGUv ZHJtL2RybV9tb2RlX2NvbmZpZy5oCmluZGV4IDkyOGU0MTcyYTBiYi4uMDczNjQ5YmE1MTZmIDEw MDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fbW9kZV9jb25maWcuaAorKysgYi9pbmNsdWRlL2Ry bS9kcm1fbW9kZV9jb25maWcuaApAQCAtNjI3LDYgKzYyNywxNSBAQCBzdHJ1Y3QgZHJtX21vZGVf Y29uZmlnIHsKIAkgKiAmZHJtX2NydGMuCiAJICovCiAJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJv cF9jcnRjX2lkOworCS8qKgorCSAqIEBwcm9wX2ZiX2RhbWFnZV9jbGlwczogT3B0aW9uYWwgcGxh bmUgcHJvcGVydHkgdG8gbWFyayBkYW1hZ2VkCisJICogcmVnaW9ucyBvbiB0aGUgcGxhbmUgaW4g ZnJhbWVidWZmZXIgY29vcmRpbmF0ZXMgb2YgdGhlIGZyYW1lYnVmZmVyCisJICogYXR0YWNoZWQg dG8gdGhlIHBsYW5lLgorCSAqCisJICogVGhlIGxheW91dCBvZiBibG9iIGRhdGEgaXMgc2ltcGx5 IGFuIGFycmF5IG9mICZkcm1fbW9kZV9yZWN0LiBVbmxpa2UKKwkgKiBwbGFuZSBzcmMgY29vcmRp bmF0ZXMsIGRhbWFnZSBjbGlwcyBhcmUgbm90IGluIDE2LjE2IGZpeGVkIHBvaW50LgorCSAqLwor CXN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3BfZmJfZGFtYWdlX2NsaXBzOwogCS8qKgogCSAqIEBw cm9wX2FjdGl2ZTogRGVmYXVsdCBhdG9taWMgQ1JUQyBwcm9wZXJ0eSB0byBjb250cm9sIHRoZSBh Y3RpdmUKIAkgKiBzdGF0ZSwgd2hpY2ggaXMgdGhlIHNpbXBsaWZpZWQgaW1wbGVtZW50YXRpb24g Zm9yIERQTVMgaW4gYXRvbWljCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaCBi L2luY2x1ZGUvZHJtL2RybV9wbGFuZS5oCmluZGV4IDBhMDgzNGJlZjhiZC4uNjZmMTg3ZTRlY2Zj IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaAorKysgYi9pbmNsdWRlL2RybS9k cm1fcGxhbmUuaApAQCAtMTczLDYgKzE3MywxNiBAQCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlIHsK IAkgKi8KIAllbnVtIGRybV9jb2xvcl9yYW5nZSBjb2xvcl9yYW5nZTsKIAorCS8qKgorCSAqIEBm Yl9kYW1hZ2VfY2xpcHM6CisJICoKKwkgKiBCbG9iIHJlcHJlc2VudGluZyBkYW1hZ2UgKGFyZWEg aW4gcGxhbmUgZnJhbWVidWZmZXIgdGhhdCBjaGFuZ2VkCisJICogc2luY2UgbGFzdCBwbGFuZSB1 cGRhdGUpIGFzIGFuIGFycmF5IG9mICZkcm1fbW9kZV9yZWN0IGluIGZyYW1lYnVmZmVyCisJICog Y29vZGluYXRlcyBvZiB0aGUgYXR0YWNoZWQgZnJhbWVidWZmZXIuIE5vdGUgdGhhdCB1bmxpa2Ug cGxhbmUgc3JjLAorCSAqIGRhbWFnZSBjbGlwcyBhcmUgbm90IGluIDE2LjE2IGZpeGVkIHBvaW50 LgorCSAqLworCXN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZmJfZGFtYWdlX2NsaXBzOworCiAJ LyoqIEBzcmM6IGNsaXBwZWQgc291cmNlIGNvb3JkaW5hdGVzIG9mIHRoZSBwbGFuZSAoaW4gMTYu MTYpICovCiAJLyoqIEBkc3Q6IGNsaXBwZWQgZGVzdGluYXRpb24gY29vcmRpbmF0ZXMgb2YgdGhl IHBsYW5lICovCiAJc3RydWN0IGRybV9yZWN0IHNyYywgZHN0OwpAQCAtNzk4LDUgKzgwOCwzNSBA QCBzdGF0aWMgaW5saW5lIHN0cnVjdCBkcm1fcGxhbmUgKmRybV9wbGFuZV9maW5kKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCiAjZGVmaW5lIGRybV9mb3JfZWFjaF9wbGFuZShwbGFuZSwgZGV2KSBc CiAJbGlzdF9mb3JfZWFjaF9lbnRyeShwbGFuZSwgJihkZXYpLT5tb2RlX2NvbmZpZy5wbGFuZV9s aXN0LCBoZWFkKQogCisvKioKKyAqIGRybV9wbGFuZV9nZXRfZGFtYWdlX2NsaXBzX2NvdW50IC0g UmV0dXJucyBkYW1hZ2UgY2xpcHMgY291bnQuCisgKiBAc3RhdGU6IFBsYW5lIHN0YXRlLgorICoK KyAqIFNpbXBsZSBoZWxwZXIgdG8gZ2V0IHRoZSBudW1iZXIgb2YgJmRybV9tb2RlX3JlY3QgY2xp cHMgc2V0IGJ5IHVzZXItc3BhY2UKKyAqIGR1cmluZyBwbGFuZSB1cGRhdGUuCisgKgorICogUmV0 dXJuOiBOdW1iZXIgb2YgY2xpcHMgaW4gcGxhbmUgZmJfZGFtYWdlX2NsaXBzIGJsb2IgcHJvcGVy dHkuCisgKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50Citkcm1fcGxhbmVfZ2V0X2RhbWFn ZV9jbGlwc19jb3VudChjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkKK3sKKwly ZXR1cm4gKHN0YXRlICYmIHN0YXRlLT5mYl9kYW1hZ2VfY2xpcHMpID8KKwkJc3RhdGUtPmZiX2Rh bWFnZV9jbGlwcy0+bGVuZ3RoL3NpemVvZihzdHJ1Y3QgZHJtX21vZGVfcmVjdCkgOiAwOworfQor CisvKioKKyAqIGRybV9wbGFuZV9nZXRfZGFtYWdlX2NsaXBzIC0gUmV0dXJucyBkYW1hZ2UgY2xp cHMuCisgKiBAc3RhdGU6IFBsYW5lIHN0YXRlLgorICoKKyAqIE5vdGUgdGhhdCB0aGlzIGZ1bmN0 aW9uIHJldHVybnMgdWFwaSB0eXBlICZkcm1fbW9kZV9yZWN0LgorICoKKyAqIFJldHVybjogRGFt YWdlIGNsaXBzIGluIHBsYW5lIGZiX2RhbWFnZV9jbGlwcyBibG9iIHByb3BlcnR5LgorICovCitz dGF0aWMgaW5saW5lIHN0cnVjdCBkcm1fbW9kZV9yZWN0ICoKK2RybV9wbGFuZV9nZXRfZGFtYWdl X2NsaXBzKGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKQoreworCXJldHVybiAo c3RydWN0IGRybV9tb2RlX3JlY3QgKikoKHN0YXRlICYmIHN0YXRlLT5mYl9kYW1hZ2VfY2xpcHMp ID8KKwkJCQkJc3RhdGUtPmZiX2RhbWFnZV9jbGlwcy0+ZGF0YSA6IE5VTEwpOworfQogCiAjZW5k aWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCBiL2luY2x1ZGUvdWFw aS9kcm0vZHJtX21vZGUuaAppbmRleCBkM2UwZmUzMWVmYzUuLmE0MzljMmU2Nzg5NiAxMDA2NDQK LS0tIGEvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oCisrKyBiL2luY2x1ZGUvdWFwaS9kcm0v ZHJtX21vZGUuaApAQCAtODg4LDYgKzg4OCwyNSBAQCBzdHJ1Y3QgZHJtX21vZGVfcmV2b2tlX2xl YXNlIHsKIAlfX3UzMiBsZXNzZWVfaWQ7CiB9OwogCisvKioKKyAqIHN0cnVjdCBkcm1fbW9kZV9y ZWN0IC0gVHdvIGRpbWVuc2lvbmFsIHJlY3RhbmdsZS4KKyAqIEB4MTogSG9yaXpvbnRhbCBzdGFy dGluZyBjb29yZGluYXRlIChpbmNsdXNpdmUpLgorICogQHkxOiBWZXJ0aWNhbCBzdGFydGluZyBj b29yZGluYXRlIChpbmNsdXNpdmUpLgorICogQHgyOiBIb3Jpem9udGFsIGVuZGluZyBjb29yZGlu YXRlIChleGNsdXNpdmUpLgorICogQHkyOiBWZXJ0aWNhbCBlbmRpbmcgY29vcmRpbmF0ZSAoZXhj bHVzaXZlKS4KKyAqCisgKiBXaXRoIGRybSBzdWJzeXN0ZW0gdXNpbmcgc3RydWN0IGRybV9yZWN0 IHRvIG1hbmFnZSByZWN0YW5ndWxhciBhcmVhIHRoaXMKKyAqIGV4cG9ydCBpdCB0byB1c2VyLXNw YWNlLgorICoKKyAqIEN1cnJlbnRseSB1c2VkIGJ5IGRybV9tb2RlX2F0b21pYyBibG9iIHByb3Bl cnR5IEZCX0RBTUFHRV9DTElQUy4KKyAqLworc3RydWN0IGRybV9tb2RlX3JlY3QgeworCV9fczMy IHgxOworCV9fczMyIHkxOworCV9fczMyIHgyOworCV9fczMyIHkyOworfTsKKwogI2lmIGRlZmlu ZWQoX19jcGx1c3BsdXMpCiB9CiAjZW5kaWYKLS0gCjIuMTcuMQoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==