From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak Rawat Subject: [PATCH 01/18] drm: Add a new plane property to send damage during plane update Date: Thu, 27 Sep 2018 17:30:03 -0700 Message-ID: <20180928003020.1737-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-002.vmware.com (ex13-edg-ou-002.vmware.com [208.91.0.190]) by gabe.freedesktop.org (Postfix) with ESMTPS id ADA296E071 for ; Fri, 28 Sep 2018 00:30:51 +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 , Deepak Rawat , Lukasz Spintzyk 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 Y29tPgpTaWduZWQtb2ZmLWJ5OiBMdWthc3ogU3BpbnR6eWsgPGx1a2Fzei5zcGludHp5a0BkaXNw bGF5bGluay5jb20+ClNpZ25lZC1vZmYtYnk6IERlZXBhayBSYXdhdCA8ZHJhd2F0QHZtd2FyZS5j b20+Ci0tLQogRG9jdW1lbnRhdGlvbi9ncHUvZHJtLWttcy5yc3QgICAgICAgfCAxMiArKysrKwog ZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlICAgICAgICAgICAgfCAgMyArLQogZHJpdmVycy9ncHUv ZHJtL2RybV9hdG9taWMuYyAgICAgICAgfCAyMiArKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2Ry bV9hdG9taWNfaGVscGVyLmMgfCAgMyArKwogZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFw aS5jICAgfCAxMyArKysrKwogZHJpdmVycy9ncHUvZHJtL2RybV9kYW1hZ2VfaGVscGVyLmMgfCA4 MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2RybV9tb2Rl X2NvbmZpZy5jICAgfCAgNiArKysKIGluY2x1ZGUvZHJtL2RybV9kYW1hZ2VfaGVscGVyLmggICAg IHwgMzkgKysrKysrKysrKysrKysKIGluY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oICAgICAg IHwgIDkgKysrKwogaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmggICAgICAgICAgICAgfCA0MCArKysr KysrKysrKysrKwogaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oICAgICAgICAgfCAxOSArKysr KysrCiAxMSBmaWxlcyBjaGFuZ2VkLCAyNDggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9kcm1fZGFtYWdlX2hlbHBlci5jCiBj cmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9kcm0vZHJtX2RhbWFnZV9oZWxwZXIuaAoKZGlmZiAt LWdpdCBhL0RvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMucnN0IGIvRG9jdW1lbnRhdGlvbi9ncHUv ZHJtLWttcy5yc3QKaW5kZXggNGIxNTAxYjQ4MzViLi42YzNlODllMzI0ZjggMTAwNjQ0Ci0tLSBh L0RvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMucnN0CisrKyBiL0RvY3VtZW50YXRpb24vZ3B1L2Ry bS1rbXMucnN0CkBAIC01NTQsNiArNTU0LDE4IEBAIFBsYW5lIENvbXBvc2l0aW9uIFByb3BlcnRp ZXMKIC4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9kcm0vZHJtX2JsZW5kLmMKICAgIDpleHBv cnQ6CiAKK0ZCX0RBTUFHRV9DTElQUworfn5+fn5+fn5+fn5+fn5+CisKKy4uIGtlcm5lbC1kb2M6 OiBkcml2ZXJzL2dwdS9kcm0vZHJtX2RhbWFnZV9oZWxwZXIuYworICAgOmRvYzogb3ZlcnZpZXcK KworLi4ga2VybmVsLWRvYzo6IGRyaXZlcnMvZ3B1L2RybS9kcm1fZGFtYWdlX2hlbHBlci5jCisg ICA6ZXhwb3J0OgorCisuLiBrZXJuZWwtZG9jOjogaW5jbHVkZS9kcm0vZHJtX2RhbWFnZV9oZWxw ZXIuaAorICAgOmludGVybmFsOgorCiBDb2xvciBNYW5hZ2VtZW50IFByb3BlcnRpZXMKIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vTWFr ZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKaW5kZXggYmM2YTE2YTNjMzZlLi4yZWQ0 YzY2Y2E4NDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQorKysgYi9kcml2 ZXJzL2dwdS9kcm0vTWFrZWZpbGUKQEAgLTM2LDcgKzM2LDggQEAgZHJtX2ttc19oZWxwZXIteSA6 PSBkcm1fY3J0Y19oZWxwZXIubyBkcm1fZHBfaGVscGVyLm8gZHJtX3Byb2JlX2hlbHBlci5vIFwK IAkJZHJtX3BsYW5lX2hlbHBlci5vIGRybV9kcF9tc3RfdG9wb2xvZ3kubyBkcm1fYXRvbWljX2hl bHBlci5vIFwKIAkJZHJtX2ttc19oZWxwZXJfY29tbW9uLm8gZHJtX2RwX2R1YWxfbW9kZV9oZWxw ZXIubyBcCiAJCWRybV9zaW1wbGVfa21zX2hlbHBlci5vIGRybV9tb2Rlc2V0X2hlbHBlci5vIFwK LQkJZHJtX3NjZGNfaGVscGVyLm8gZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIubworCQlkcm1f c2NkY19oZWxwZXIubyBkcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5vIFwKKwkJZHJtX2RhbWFn ZV9oZWxwZXIubwogCiBkcm1fa21zX2hlbHBlci0kKENPTkZJR19EUk1fUEFORUxfQlJJREdFKSAr PSBicmlkZ2UvcGFuZWwubwogZHJtX2ttc19oZWxwZXItJChDT05GSUdfRFJNX0ZCREVWX0VNVUxB VElPTikgKz0gZHJtX2ZiX2hlbHBlci5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwppbmRleCAyODcwYWUyMDUy MzcuLmZmNDg4YjQ3YjViYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCkBAIC01MTYsNiArNTE2LDggQEAg c3RhdGljIGludCBkcm1fYXRvbWljX3BsYW5lX2NoZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l LAogCQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkKIHsKIAl1bnNpZ25lZCBpbnQgZmJf d2lkdGgsIGZiX2hlaWdodDsKKwlzdHJ1Y3QgZHJtX21vZGVfcmVjdCAqY2xpcHM7CisJdWludDMy X3QgbnVtX2NsaXBzOwogCWludCByZXQ7CiAKIAkvKiBlaXRoZXIgKmJvdGgqIENSVEMgYW5kIEZC IG11c3QgYmUgc2V0LCBvciBuZWl0aGVyICovCkBAIC01ODUsNiArNTg3LDI2IEBAIHN0YXRpYyBp bnQgZHJtX2F0b21pY19wbGFuZV9jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJcmV0 dXJuIC1FTk9TUEM7CiAJfQogCisJY2xpcHMgPSBkcm1fcGxhbmVfZ2V0X2RhbWFnZV9jbGlwcyhz dGF0ZSk7CisJbnVtX2NsaXBzID0gZHJtX3BsYW5lX2dldF9kYW1hZ2VfY2xpcHNfY291bnQoc3Rh dGUpOworCisJLyogTWFrZSBzdXJlIGRhbWFnZSBjbGlwcyBhcmUgdmFsaWQgYW5kIGluc2lkZSB0 aGUgZmIuICovCisJd2hpbGUgKG51bV9jbGlwcyA+IDApIHsKKwkJaWYgKGNsaXBzLT54MSA+PSBj bGlwcy0+eDIgfHwKKwkJICAgIGNsaXBzLT55MSA+PSBjbGlwcy0+eTIgfHwKKwkJICAgIGNsaXBz LT54MSA8IDAgfHwKKwkJICAgIGNsaXBzLT55MSA8IDAgfHwKKwkJICAgIGNsaXBzLT54MiA+IGZi X3dpZHRoIHx8CisJCSAgICBjbGlwcy0+eTIgPiBmYl9oZWlnaHQpIHsKKwkJCURSTV9ERUJVR19B VE9NSUMoIltQTEFORTolZDolc10gaW52YWxpZCBkYW1hZ2UgY2xpcCAlZCAlZCAlZCAlZFxuIiwK KwkJCQkJIHBsYW5lLT5iYXNlLmlkLCBwbGFuZS0+bmFtZSwgY2xpcHMtPngxLAorCQkJCQkgY2xp cHMtPnkxLCBjbGlwcy0+eDIsIGNsaXBzLT55Mik7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQor CQljbGlwcysrOworCQludW1fY2xpcHMtLTsKKwl9CisKIAlpZiAocGxhbmVfc3dpdGNoaW5nX2Ny dGMoc3RhdGUtPnN0YXRlLCBwbGFuZSwgc3RhdGUpKSB7CiAJCURSTV9ERUJVR19BVE9NSUMoIltQ TEFORTolZDolc10gc3dpdGNoaW5nIENSVEMgZGlyZWN0bHlcbiIsCiAJCQkJIHBsYW5lLT5iYXNl LmlkLCBwbGFuZS0+bmFtZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Y19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCmluZGV4IDNj ZjFhYTEzMjc3OC4uMjgwYWU1YmM0NzUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pY19oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIu YwpAQCAtMzYxNSw2ICszNjE1LDcgQEAgdm9pZCBfX2RybV9hdG9taWNfaGVscGVyX3BsYW5lX2R1 cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAogCXN0YXRlLT5mZW5jZSA9 IE5VTEw7CiAJc3RhdGUtPmNvbW1pdCA9IE5VTEw7CisJc3RhdGUtPmZiX2RhbWFnZV9jbGlwcyA9 IE5VTEw7CiB9CiBFWFBPUlRfU1lNQk9MKF9fZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfZHVwbGlj YXRlX3N0YXRlKTsKIApAQCAtMzY1OSw2ICszNjYwLDggQEAgdm9pZCBfX2RybV9hdG9taWNfaGVs cGVyX3BsYW5lX2Rlc3Ryb3lfc3RhdGUoc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUpCiAK IAlpZiAoc3RhdGUtPmNvbW1pdCkKIAkJZHJtX2NydGNfY29tbWl0X3B1dChzdGF0ZS0+Y29tbWl0 KTsKKworCWRybV9wcm9wZXJ0eV9ibG9iX3B1dChzdGF0ZS0+ZmJfZGFtYWdlX2NsaXBzKTsKIH0K IEVYUE9SVF9TWU1CT0woX19kcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kZXN0cm95X3N0YXRlKTsK IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jCmluZGV4IGQ1YjdmMzE1MDk4Yy4uYjgzYjk2ZmU4 ODdlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jCkBAIC01MTMsNiArNTEzLDggQEAgc3Rh dGljIGludCBkcm1fYXRvbWljX3BsYW5lX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSwKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRldjsKIAlzdHJ1Y3Qg ZHJtX21vZGVfY29uZmlnICpjb25maWcgPSAmZGV2LT5tb2RlX2NvbmZpZzsKKwlib29sIHJlcGxh Y2VkID0gZmFsc2U7CisJaW50IHJldDsKIAogCWlmIChwcm9wZXJ0eSA9PSBjb25maWctPnByb3Bf ZmJfaWQpIHsKIAkJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBkcm1fZnJhbWVidWZmZXJf bG9va3VwKGRldiwgTlVMTCwgdmFsKTsKQEAgLTU2Niw2ICs1NjgsMTQgQEAgc3RhdGljIGludCBk cm1fYXRvbWljX3BsYW5lX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJ c3RhdGUtPmNvbG9yX2VuY29kaW5nID0gdmFsOwogCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gcGxh bmUtPmNvbG9yX3JhbmdlX3Byb3BlcnR5KSB7CiAJCXN0YXRlLT5jb2xvcl9yYW5nZSA9IHZhbDsK Kwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+cHJvcF9mYl9kYW1hZ2VfY2xpcHMpIHsK KwkJcmV0ID0gZHJtX2F0b21pY19yZXBsYWNlX3Byb3BlcnR5X2Jsb2JfZnJvbV9pZChkZXYsCisJ CQkJCSZzdGF0ZS0+ZmJfZGFtYWdlX2NsaXBzLAorCQkJCQl2YWwsCisJCQkJCS0xLAorCQkJCQlz aXplb2Yoc3RydWN0IGRybV9yZWN0KSwKKwkJCQkJJnJlcGxhY2VkKTsKKwkJcmV0dXJuIHJldDsK IAl9IGVsc2UgaWYgKHBsYW5lLT5mdW5jcy0+YXRvbWljX3NldF9wcm9wZXJ0eSkgewogCQlyZXR1 cm4gcGxhbmUtPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KHBsYW5lLCBzdGF0ZSwKIAkJCQlw cm9wZXJ0eSwgdmFsKTsKQEAgLTYyMSw2ICs2MzEsOSBAQCBkcm1fYXRvbWljX3BsYW5lX2dldF9w cm9wZXJ0eShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJKnZhbCA9IHN0YXRlLT5jb2xvcl9l bmNvZGluZzsKIAl9IGVsc2UgaWYgKHByb3BlcnR5ID09IHBsYW5lLT5jb2xvcl9yYW5nZV9wcm9w ZXJ0eSkgewogCQkqdmFsID0gc3RhdGUtPmNvbG9yX3JhbmdlOworCX0gZWxzZSBpZiAocHJvcGVy dHkgPT0gY29uZmlnLT5wcm9wX2ZiX2RhbWFnZV9jbGlwcykgeworCQkqdmFsID0gKHN0YXRlLT5m Yl9kYW1hZ2VfY2xpcHMpID8KKwkJCXN0YXRlLT5mYl9kYW1hZ2VfY2xpcHMtPmJhc2UuaWQgOiAw OwogCX0gZWxzZSBpZiAocGxhbmUtPmZ1bmNzLT5hdG9taWNfZ2V0X3Byb3BlcnR5KSB7CiAJCXJl dHVybiBwbGFuZS0+ZnVuY3MtPmF0b21pY19nZXRfcHJvcGVydHkocGxhbmUsIHN0YXRlLCBwcm9w ZXJ0eSwgdmFsKTsKIAl9IGVsc2UgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9k YW1hZ2VfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2RhbWFnZV9oZWxwZXIuYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjhkYzkwNmE0ODlhOQotLS0gL2Rl di9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZGFtYWdlX2hlbHBlci5jCkBAIC0wLDAg KzEsODMgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIE1JVAorLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCisgKgorICogQ29weXJpZ2h0IChjKSAyMDE4IFZNd2FyZSwgSW5jLiwg UGFsbyBBbHRvLCBDQS4sIFVTQQorICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBQZXJt aXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBv YnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3Vt ZW50YXRpb24gZmlsZXMgKHRoZQorICogIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3 YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworICogd2l0aG91dCBsaW1pdGF0aW9u IHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorICogZGlz dHJpYnV0ZSwgc3ViIGxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUs IGFuZCB0bworICogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlz aGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisgKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cisg KgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3Rp Y2UgKGluY2x1ZGluZyB0aGUKKyAqIG5leHQgcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBp biBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zCisgKiBvZiB0aGUgU29mdHdhcmUu CisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFO VFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9U IExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTi1JTkZSSU5HRU1FTlQuIElOIE5PIEVW RU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUlMsIEFVVEhPUlMgQU5EL09SIElUUyBT VVBQTElFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sCisgKiBEQU1BR0VTIE9SIE9USEVSIExJ QUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IKKyAqIE9U SEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBT T0ZUV0FSRSBPUiBUSEUKKyAqIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUu CisgKgorICogQXV0aG9yczoKKyAqIERlZXBhayBSYXdhdCA8ZHJhd2F0QHZtd2FyZS5jb20+Cisg KgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLworCisjaW5jbHVkZSA8ZHJtL2RybV9kYW1hZ2VfaGVscGVy Lmg+CisKKy8qKgorICogRE9DOiBvdmVydmlldworICoKKyAqIEZCX0RBTUFHRV9DTElQUyBpcyBh biBvcHRpb25hbCBwbGFuZSBwcm9wZXJ0eSB3aGljaCBwcm92aWRlcyBhIG1lYW5zIHRvCisgKiBz cGVjaWZ5IGEgbGlzdCBvZiBkYW1hZ2UgcmVjdGFuZ2xlcyBvbiBhIHBsYW5lIGluIGZyYW1lYnVm ZmVyIGNvb3JkaW5hdGVzIG9mCisgKiB0aGUgZnJhbWVidWZmZXIgYXR0YWNoZWQgdG8gdGhlIHBs YW5lLiBJbiBjdXJyZW50IGNvbnRleHQgZGFtYWdlIGlzIHRoZSBhcmVhCisgKiBvZiBwbGFuZSBm cmFtZWJ1ZmZlciB0aGF0IGhhcyBjaGFuZ2VkIHNpbmNlIGxhc3QgcGxhbmUgdXBkYXRlIChhbHNv IGNhbGxlZAorICogcGFnZS1mbGlwKSwgaXJyZXNwZWN0aXZlIG9mIHdoZXRoZXIgY3VycmVudGx5 IGF0dGFjaGVkIGZyYW1lYnVmZmVyIGlzIHNhbWUgYXMKKyAqIGZyYW1lYnVmZmVyIGF0dGFjaGVk IGR1cmluZyBsYXN0IHBsYW5lIHVwZGF0ZSBvciBub3QuCisgKgorICogRkJfREFNQUdFX0NMSVBT IGlzIGEgaGludCB0byBrZXJuZWwgd2hpY2ggY291bGQgYmUgaGVscGZ1bCBmb3Igc29tZSBkcml2 ZXJzCisgKiB0byBvcHRpbWl6ZSBpbnRlcm5hbGx5IGVzcGVjaWFsbHkgZm9yIHZpcnR1YWwgZGV2 aWNlcyB3aGVyZSBlYWNoIGZyYW1lYnVmZmVyCisgKiBjaGFuZ2UgbmVlZHMgdG8gYmUgdHJhbnNt aXR0ZWQgb3ZlciBuZXR3b3JrLCB1c2IsIGV0Yy4KKyAqCisgKiBTaW5jZSBGQl9EQU1BR0VfQ0xJ UFMgaXMgYSBoaW50IHNvIGl0IGlzIGFuIG9wdGlvbmFsIHByb3BlcnR5LiBVc2VyLXNwYWNlIGNh bgorICogaWdub3JlIGRhbWFnZSBjbGlwcyBwcm9wZXJ0eSBhbmQgaW4gdGhhdCBjYXNlIGRyaXZl ciB3aWxsIGRvIGEgZnVsbCBwbGFuZQorICogdXBkYXRlLiBJbiBjYXNlIGRhbWFnZSBjbGlwcyBh cmUgcHJvdmlkZWQgdGhlbiBpdCBpcyBndWFyYW50ZWVkIHRoYXQgdGhlIGFyZWEKKyAqIGluc2lk ZSBkYW1hZ2UgY2xpcHMgd2lsbCBiZSB1cGRhdGVkIHRvIHBsYW5lLiBGb3IgZWZmaWNpZW5jeSBk cml2ZXIgY2FuIGRvCisgKiBmdWxsIHVwZGF0ZSBvciBjYW4gdXBkYXRlIG1vcmUgdGhhbiBzcGVj aWZpZWQgaW4gZGFtYWdlIGNsaXBzLiBTaW5jZSBkcml2ZXIKKyAqIGlzIGZyZWUgdG8gcmVhZCBt b3JlLCB1c2VyLXNwYWNlIG11c3QgYWx3YXlzIHJlbmRlciB0aGUgZW50aXJlIHZpc2libGUKKyAq IGZyYW1lYnVmZmVyLiBPdGhlcndpc2UgdGhlcmUgY2FuIGJlIGNvcnJ1cHRpb25zLiBBbHNvLCBp ZiBhIHVzZXItc3BhY2UKKyAqIHByb3ZpZGVzIGRhbWFnZSBjbGlwcyB3aGljaCBkb2Vzbid0IGVu Y29tcGFzcyB0aGUgYWN0dWFsIGRhbWFnZSB0bworICogZnJhbWVidWZmZXIgKHNpbmNlIGxhc3Qg cGxhbmUgdXBkYXRlKSBjYW4gcmVzdWx0IGluIGluY29ycmVjdCByZW5kZXJpbmcuCisgKgorICog RkJfREFNQUdFX0NMSVBTIGlzIGEgYmxvYiBwcm9wZXJ0eSB3aXRoIHRoZSBsYXlvdXQgb2YgYmxv YiBkYXRhIGlzIHNpbXBseSBhbgorICogYXJyYXkgb2YgJmRybV9tb2RlX3JlY3QuIFVubGlrZSBw bGFuZSAmZHJtX3BsYW5lX3N0YXRlLnNyYyBjb29yZGluYXRlcywKKyAqIGRhbWFnZSBjbGlwcyBh cmUgbm90IGluIDE2LjE2IGZpeGVkIHBvaW50LiBTaW1pbGFyIHRvIHBsYW5lIHNyYyBpbgorICog ZnJhbWVidWZmZXIsIGRhbWFnZSBjbGlwcyBjYW5ub3QgYmUgbmVnYXRpdmUuIEluIGRhbWFnZSBj bGlwLCB4MS95MSBhcmUKKyAqIGluY2x1c2l2ZSBhbmQgeDIveTIgYXJlIGV4Y2x1c2l2ZS4gV2hp bGUga2VybmVsIGRvZXMgbm90IGVycm9yIGZvciBvdmVybGFwcGVkCisgKiBkYW1hZ2UgY2xpcHMs IGl0IGlzIHN0cm9uZ2x5IGRpc2NvdXJhZ2VkLgorICoKKyAqIERyaXZlcnMgdGhhdCBhcmUgaW50 ZXJlc3RlZCBpbiBkYW1hZ2UgaW50ZXJmYWNlIGZvciBwbGFuZSBzaG91bGQgZW5hYmxlCisgKiBG Ql9EQU1BR0VfQ0xJUFMgcHJvcGVydHkgYnkgY2FsbGluZyBkcm1fcGxhbmVfZW5hYmxlX2ZiX2Rh bWFnZV9jbGlwcygpLgorICovCisKKy8qKgorICogZHJtX3BsYW5lX2VuYWJsZV9mYl9kYW1hZ2Vf Y2xpcHMgLSBFbmFibGVzIHBsYW5lIGZiIGRhbWFnZSBjbGlwcyBwcm9wZXJ0eS4KKyAqIEBwbGFu ZTogUGxhbmUgb24gd2hpY2ggdG8gZW5hYmxlIGRhbWFnZSBjbGlwcyBwcm9wZXJ0eS4KKyAqCisg KiBUaGlzIGZ1bmN0aW9uIGxldHMgZHJpdmVyIHRvIGVuYWJsZSB0aGUgZGFtYWdlIGNsaXBzIHBy b3BlcnR5IG9uIGEgcGxhbmUuCisgKi8KK3ZvaWQgZHJtX3BsYW5lX2VuYWJsZV9mYl9kYW1hZ2Vf Y2xpcHMoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IHBsYW5lLT5kZXY7CisJc3RydWN0IGRybV9tb2RlX2NvbmZpZyAqY29uZmlnID0gJmRldi0+ bW9kZV9jb25maWc7CisKKwlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmcGxhbmUtPmJhc2Us IGNvbmZpZy0+cHJvcF9mYl9kYW1hZ2VfY2xpcHMsCisJCQkJICAgMCk7Cit9CitFWFBPUlRfU1lN Qk9MKGRybV9wbGFuZV9lbmFibGVfZmJfZGFtYWdlX2NsaXBzKTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fbW9kZV9jb25maWcuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZV9j b25maWcuYwppbmRleCBlZTgwNzg4ZjJjNDAuLjA1Y2Q1ZTk4NTdlNCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2RybV9tb2RlX2NvbmZpZy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f bW9kZV9jb25maWcuYwpAQCAtMjk3LDYgKzI5NywxMiBAQCBzdGF0aWMgaW50IGRybV9tb2RlX2Ny ZWF0ZV9zdGFuZGFyZF9wcm9wZXJ0aWVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCXJldHVy biAtRU5PTUVNOwogCWRldi0+bW9kZV9jb25maWcucHJvcF9jcnRjX2lkID0gcHJvcDsKIAorCXBy b3AgPSBkcm1fcHJvcGVydHlfY3JlYXRlKGRldiwgRFJNX01PREVfUFJPUF9CTE9CLCAiRkJfREFN QUdFX0NMSVBTIiwKKwkJCQkgICAwKTsKKwlpZiAoIXByb3ApCisJCXJldHVybiAtRU5PTUVNOwor CWRldi0+bW9kZV9jb25maWcucHJvcF9mYl9kYW1hZ2VfY2xpcHMgPSBwcm9wOworCiAJcHJvcCA9 IGRybV9wcm9wZXJ0eV9jcmVhdGVfYm9vbChkZXYsIERSTV9NT0RFX1BST1BfQVRPTUlDLAogCQkJ IkFDVElWRSIpOwogCWlmICghcHJvcCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9kYW1h Z2VfaGVscGVyLmggYi9pbmNsdWRlL2RybS9kcm1fZGFtYWdlX2hlbHBlci5oCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNDk0N2M2MTRmZmY5Ci0tLSAvZGV2L251bGwK KysrIGIvaW5jbHVkZS9kcm0vZHJtX2RhbWFnZV9oZWxwZXIuaApAQCAtMCwwICsxLDM5IEBACisv KiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBPUiBNSVQgKi8KKy8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgorICoKKyAqIENvcHlyaWdodCAoYykgMjAxOCBWTXdhcmUsIEluYy4sIFBhbG8gQWx0 bywgQ0EuLCBVU0EKKyAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUGVybWlzc2lvbiBp cyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5n IGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9u IGZpbGVzICh0aGUKKyAqICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRo b3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyAqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmln aHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyAqIGRpc3RyaWJ1dGUs IHN1YiBsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8K KyAqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBk byBzbywgc3ViamVjdCB0bworICogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRo ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNs dWRpbmcgdGhlCisgKiBuZXh0IHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNv cGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucworICogb2YgdGhlIFNvZnR3YXJlLgorICoKKyAq IFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFO WSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVE IFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT04tSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFM TAorICogVEhFIENPUFlSSUdIVCBIT0xERVJTLCBBVVRIT1JTIEFORC9PUiBJVFMgU1VQUExJRVJT IEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLAorICogREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFks IFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SCisgKiBPVEhFUldJU0Us IEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUg T1IgVEhFCisgKiBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAq IEF1dGhvcnM6CisgKiBEZWVwYWsgUmF3YXQgPGRyYXdhdEB2bXdhcmUuY29tPgorICoKKyAqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKi8KKworI2lmbmRlZiBEUk1fREFNQUdFX0hFTFBFUl9IXworI2RlZmluZSBE Uk1fREFNQUdFX0hFTFBFUl9IXworCisjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+ CisKK3ZvaWQgZHJtX3BsYW5lX2VuYWJsZV9mYl9kYW1hZ2VfY2xpcHMoc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9tb2RlX2Nv bmZpZy5oIGIvaW5jbHVkZS9kcm0vZHJtX21vZGVfY29uZmlnLmgKaW5kZXggOTI4ZTQxNzJhMGJi Li4wNzM2NDliYTUxNmYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5o CisrKyBiL2luY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oCkBAIC02MjcsNiArNjI3LDE1IEBA IHN0cnVjdCBkcm1fbW9kZV9jb25maWcgewogCSAqICZkcm1fY3J0Yy4KIAkgKi8KIAlzdHJ1Y3Qg ZHJtX3Byb3BlcnR5ICpwcm9wX2NydGNfaWQ7CisJLyoqCisJICogQHByb3BfZmJfZGFtYWdlX2Ns aXBzOiBPcHRpb25hbCBwbGFuZSBwcm9wZXJ0eSB0byBtYXJrIGRhbWFnZWQKKwkgKiByZWdpb25z IG9uIHRoZSBwbGFuZSBpbiBmcmFtZWJ1ZmZlciBjb29yZGluYXRlcyBvZiB0aGUgZnJhbWVidWZm ZXIKKwkgKiBhdHRhY2hlZCB0byB0aGUgcGxhbmUuCisJICoKKwkgKiBUaGUgbGF5b3V0IG9mIGJs b2IgZGF0YSBpcyBzaW1wbHkgYW4gYXJyYXkgb2YgJmRybV9tb2RlX3JlY3QuIFVubGlrZQorCSAq IHBsYW5lIHNyYyBjb29yZGluYXRlcywgZGFtYWdlIGNsaXBzIGFyZSBub3QgaW4gMTYuMTYgZml4 ZWQgcG9pbnQuCisJICovCisJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcF9mYl9kYW1hZ2VfY2xp cHM7CiAJLyoqCiAJICogQHByb3BfYWN0aXZlOiBEZWZhdWx0IGF0b21pYyBDUlRDIHByb3BlcnR5 IHRvIGNvbnRyb2wgdGhlIGFjdGl2ZQogCSAqIHN0YXRlLCB3aGljaCBpcyB0aGUgc2ltcGxpZmll ZCBpbXBsZW1lbnRhdGlvbiBmb3IgRFBNUyBpbiBhdG9taWMKZGlmZiAtLWdpdCBhL2luY2x1ZGUv ZHJtL2RybV9wbGFuZS5oIGIvaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmgKaW5kZXggMGEwODM0YmVm OGJkLi44NGYzNWM2ZDY1OTAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9wbGFuZS5oCisr KyBiL2luY2x1ZGUvZHJtL2RybV9wbGFuZS5oCkBAIC0xNzMsNiArMTczLDE2IEBAIHN0cnVjdCBk cm1fcGxhbmVfc3RhdGUgewogCSAqLwogCWVudW0gZHJtX2NvbG9yX3JhbmdlIGNvbG9yX3Jhbmdl OwogCisJLyoqCisJICogQGZiX2RhbWFnZV9jbGlwczoKKwkgKgorCSAqIEJsb2IgcmVwcmVzZW50 aW5nIGRhbWFnZSAoYXJlYSBpbiBwbGFuZSBmcmFtZWJ1ZmZlciB0aGF0IGNoYW5nZWQKKwkgKiBz aW5jZSBsYXN0IHBsYW5lIHVwZGF0ZSkgYXMgYW4gYXJyYXkgb2YgJmRybV9tb2RlX3JlY3QgaW4g ZnJhbWVidWZmZXIKKwkgKiBjb29kaW5hdGVzIG9mIHRoZSBhdHRhY2hlZCBmcmFtZWJ1ZmZlci4g Tm90ZSB0aGF0IHVubGlrZSBwbGFuZSBzcmMsCisJICogZGFtYWdlIGNsaXBzIGFyZSBub3QgaW4g MTYuMTYgZml4ZWQgcG9pbnQuCisJICovCisJc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpmYl9k YW1hZ2VfY2xpcHM7CisKIAkvKiogQHNyYzogY2xpcHBlZCBzb3VyY2UgY29vcmRpbmF0ZXMgb2Yg dGhlIHBsYW5lIChpbiAxNi4xNikgKi8KIAkvKiogQGRzdDogY2xpcHBlZCBkZXN0aW5hdGlvbiBj b29yZGluYXRlcyBvZiB0aGUgcGxhbmUgKi8KIAlzdHJ1Y3QgZHJtX3JlY3Qgc3JjLCBkc3Q7CkBA IC03OTgsNSArODA4LDM1IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGRybV9wbGFuZSAqZHJtX3Bs YW5lX2ZpbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKICNkZWZpbmUgZHJtX2Zvcl9lYWNoX3Bs YW5lKHBsYW5lLCBkZXYpIFwKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHBsYW5lLCAmKGRldiktPm1v ZGVfY29uZmlnLnBsYW5lX2xpc3QsIGhlYWQpCiAKKy8qKgorICogZHJtX3BsYW5lX2dldF9kYW1h Z2VfY2xpcHNfY291bnQgLSBSZXR1cm5zIGRhbWFnZSBjbGlwcyBjb3VudC4KKyAqIEBzdGF0ZTog UGxhbmUgc3RhdGUuCisgKgorICogU2ltcGxlIGhlbHBlciB0byBnZXQgdGhlIG51bWJlciBvZiAm ZHJtX21vZGVfcmVjdCBjbGlwcyBzZXQgYnkgdXNlci1zcGFjZQorICogZHVyaW5nIHBsYW5lIHVw ZGF0ZS4KKyAqCisgKiBSZXR1cm5zOiBOdW1iZXIgb2YgY2xpcHMgaW4gcGxhbmUgZmJfZGFtYWdl X2NsaXBzIGJsb2IgcHJvcGVydHkuCisgKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50Citk cm1fcGxhbmVfZ2V0X2RhbWFnZV9jbGlwc19jb3VudChjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0 YXRlICpzdGF0ZSkKK3sKKwlyZXR1cm4gKHN0YXRlICYmIHN0YXRlLT5mYl9kYW1hZ2VfY2xpcHMp ID8KKwkJc3RhdGUtPmZiX2RhbWFnZV9jbGlwcy0+bGVuZ3RoL3NpemVvZihzdHJ1Y3QgZHJtX21v ZGVfcmVjdCkgOiAwOworfQorCisvKioKKyAqIGRybV9wbGFuZV9nZXRfZGFtYWdlX2NsaXBzIC0g UmV0dXJucyBkYW1hZ2UgY2xpcHMuCisgKiBAc3RhdGU6IFBsYW5lIHN0YXRlLgorICoKKyAqIE5v dGUgdGhhdCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdWFwaSB0eXBlICZkcm1fbW9kZV9yZWN0Lgor ICoKKyAqIFJldHVybnM6IERhbWFnZSBjbGlwcyBpbiBwbGFuZSBmYl9kYW1hZ2VfY2xpcHMgYmxv YiBwcm9wZXJ0eS4KKyAqLworc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX21vZGVfcmVjdCAqCitk cm1fcGxhbmVfZ2V0X2RhbWFnZV9jbGlwcyhjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpz dGF0ZSkKK3sKKwlyZXR1cm4gKHN0cnVjdCBkcm1fbW9kZV9yZWN0ICopKChzdGF0ZSAmJiBzdGF0 ZS0+ZmJfZGFtYWdlX2NsaXBzKSA/CisJCQkJCXN0YXRlLT5mYl9kYW1hZ2VfY2xpcHMtPmRhdGEg OiBOVUxMKTsKK30KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2RybV9t b2RlLmggYi9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgKaW5kZXggZDNlMGZlMzFlZmM1Li5h NDM5YzJlNjc4OTYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaAorKysg Yi9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgKQEAgLTg4OCw2ICs4ODgsMjUgQEAgc3RydWN0 IGRybV9tb2RlX3Jldm9rZV9sZWFzZSB7CiAJX191MzIgbGVzc2VlX2lkOwogfTsKIAorLyoqCisg KiBzdHJ1Y3QgZHJtX21vZGVfcmVjdCAtIFR3byBkaW1lbnNpb25hbCByZWN0YW5nbGUuCisgKiBA eDE6IEhvcml6b250YWwgc3RhcnRpbmcgY29vcmRpbmF0ZSAoaW5jbHVzaXZlKS4KKyAqIEB5MTog VmVydGljYWwgc3RhcnRpbmcgY29vcmRpbmF0ZSAoaW5jbHVzaXZlKS4KKyAqIEB4MjogSG9yaXpv bnRhbCBlbmRpbmcgY29vcmRpbmF0ZSAoZXhjbHVzaXZlKS4KKyAqIEB5MjogVmVydGljYWwgZW5k aW5nIGNvb3JkaW5hdGUgKGV4Y2x1c2l2ZSkuCisgKgorICogV2l0aCBkcm0gc3Vic3lzdGVtIHVz aW5nIHN0cnVjdCBkcm1fcmVjdCB0byBtYW5hZ2UgcmVjdGFuZ3VsYXIgYXJlYSB0aGlzCisgKiBl eHBvcnQgaXQgdG8gdXNlci1zcGFjZS4KKyAqCisgKiBDdXJyZW50bHkgdXNlZCBieSBkcm1fbW9k ZV9hdG9taWMgYmxvYiBwcm9wZXJ0eSBGQl9EQU1BR0VfQ0xJUFMuCisgKi8KK3N0cnVjdCBkcm1f bW9kZV9yZWN0IHsKKwlfX3MzMiB4MTsKKwlfX3MzMiB5MTsKKwlfX3MzMiB4MjsKKwlfX3MzMiB5 MjsKK307CisKICNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQogfQogI2VuZGlmCi0tIAoyLjE3LjEK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZl bCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=