From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chunming Zhou Subject: [PATCH 2/4] drm: add support of syncobj timeline point wait v2 Date: Wed, 19 Sep 2018 12:26:57 +0800 Message-ID: <20180919042659.3769-2-david1.zhou@amd.com> References: <20180919042659.3769-1-david1.zhou@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180919042659.3769-1-david1.zhou-5C7GfCeVMHo@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Chunming Zhou , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org cG9pbnRzIGFycmF5IGlzIG9uZS10by1vbmUgbWF0Y2ggd2l0aCBzeW5jb2JqcyBhcnJheS4KdjI6 CmFkZCBzZXBlcmF0ZSBpb2N0bCBmb3IgdGltZWxpbmUgcG9pbnQgd2FpdCwgb3RoZXJ3aXNlIGJy ZWFrIHVhcGkuCgpTaWduZWQtb2ZmLWJ5OiBDaHVubWluZyBaaG91IDxkYXZpZDEuemhvdUBhbWQu Y29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaCB8ICAyICsKIGRyaXZlcnMv Z3B1L2RybS9kcm1faW9jdGwuYyAgICB8ICAyICsKIGRyaXZlcnMvZ3B1L2RybS9kcm1fc3luY29i ai5jICB8IDk5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KIGluY2x1ZGUvdWFw aS9kcm0vZHJtLmggICAgICAgICB8IDE0ICsrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDEwMyBpbnNl cnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2ludGVybmFsLmggYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgKaW5kZXggMGM0 ZWI0YTlhYjMxLi41NjZkNDRlM2M3ODIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f aW50ZXJuYWwuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgKQEAgLTE4Myw2 ICsxODMsOCBAQCBpbnQgZHJtX3N5bmNvYmpfZmRfdG9faGFuZGxlX2lvY3RsKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCQkJICAgc3RydWN0IGRybV9maWxlICpmaWxlX3By aXZhdGUpOwogaW50IGRybV9zeW5jb2JqX3dhaXRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdm9pZCAqZGF0YSwKIAkJCSAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKTsKK2lu dCBkcm1fc3luY29ial90aW1lbGluZV93YWl0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHZvaWQgKmRhdGEsCisJCQkJICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKTsKIGlu dCBkcm1fc3luY29ial9yZXNldF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpk YXRhLAogCQkJICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKTsKIGludCBkcm1fc3lu Y29ial9zaWduYWxfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1faW9jdGwuYwppbmRleCA2YjRhNjMzYjQyNDAuLmMwODkxNjE0ZjUxNiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9j dGwuYwpAQCAtNjY5LDYgKzY2OSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2lvY3RsX2Rl c2MgZHJtX2lvY3Rsc1tdID0gewogCQkgICAgICBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExP VyksCiAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU1lOQ09CSl9XQUlULCBkcm1fc3luY29ial93 YWl0X2lvY3RsLAogCQkgICAgICBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCisJRFJN X0lPQ1RMX0RFRihEUk1fSU9DVExfU1lOQ09CSl9USU1FTElORV9XQUlULCBkcm1fc3luY29ial90 aW1lbGluZV93YWl0X2lvY3RsLAorCQkgICAgICBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExP VyksCiAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU1lOQ09CSl9SRVNFVCwgZHJtX3N5bmNvYmpf cmVzZXRfaW9jdGwsCiAJCSAgICAgIERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwKIAlE Uk1fSU9DVExfREVGKERSTV9JT0NUTF9TWU5DT0JKX1NJR05BTCwgZHJtX3N5bmNvYmpfc2lnbmFs X2lvY3RsLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9zeW5jb2JqLmMgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX3N5bmNvYmouYwppbmRleCA5ODdiNWExMjBiNjUuLjMxMWVhN2JhNmY1 NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9zeW5jb2JqLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9zeW5jb2JqLmMKQEAgLTEyOSwxMyArMTI5LDE0IEBAIHN0YXRpYyBpbnQg ZHJtX3N5bmNvYmpfc2VhcmNoX2ZlbmNlKHN0cnVjdCBkcm1fc3luY29iaiAqc3luY29iaiwgdTY0 IHBvaW50LAogCQkJCSAgICB1NjQgZmxhZ3MsIHN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZSk7CiAK IHN0YXRpYyBpbnQgZHJtX3N5bmNvYmpfZmVuY2VfZ2V0X29yX2FkZF9jYWxsYmFjayhzdHJ1Y3Qg ZHJtX3N5bmNvYmogKnN5bmNvYmosCisJCQkJCQkgdTY0IHBvaW50LAogCQkJCQkJIHN0cnVjdCBk bWFfZmVuY2UgKipmZW5jZSwKIAkJCQkJCSBzdHJ1Y3QgZHJtX3N5bmNvYmpfY2IgKmNiLAogCQkJ CQkJIGRybV9zeW5jb2JqX2Z1bmNfdCBmdW5jKQogewogCWludCByZXQ7CiAKLQlyZXQgPSBkcm1f c3luY29ial9zZWFyY2hfZmVuY2Uoc3luY29iaiwgMCwgMCwgZmVuY2UpOworCXJldCA9IGRybV9z eW5jb2JqX3NlYXJjaF9mZW5jZShzeW5jb2JqLCBwb2ludCwgMCwgZmVuY2UpOwogCWlmICghcmV0 KQogCQlyZXR1cm4gMTsKIApAQCAtMTQ2LDcgKzE0Nyw3IEBAIHN0YXRpYyBpbnQgZHJtX3N5bmNv YmpfZmVuY2VfZ2V0X29yX2FkZF9jYWxsYmFjayhzdHJ1Y3QgZHJtX3N5bmNvYmogKnN5bmNvYmos CiAJICovCiAJaWYgKGZlbmNlICYmICFsaXN0X2VtcHR5KCZzeW5jb2JqLT5zaWduYWxfcHRfbGlz dCkpIHsKIAkJc3Bpbl91bmxvY2soJnN5bmNvYmotPmxvY2spOwotCQlkcm1fc3luY29ial9zZWFy Y2hfZmVuY2Uoc3luY29iaiwgMCwgMCwgZmVuY2UpOworCQlkcm1fc3luY29ial9zZWFyY2hfZmVu Y2Uoc3luY29iaiwgcG9pbnQsIDAsIGZlbmNlKTsKIAkJaWYgKCpmZW5jZSkKIAkJCXJldCA9IDE7 CiAJCXNwaW5fbG9jaygmc3luY29iai0+bG9jayk7CkBAIC0zNTUsNyArMzU2LDkgQEAgdm9pZCBk cm1fc3luY29ial9yZXBsYWNlX2ZlbmNlKHN0cnVjdCBkcm1fc3luY29iaiAqc3luY29iaiwKIAkJ c3Bpbl9sb2NrKCZzeW5jb2JqLT5sb2NrKTsKIAkJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGN1 ciwgdG1wLCAmc3luY29iai0+Y2JfbGlzdCwgbm9kZSkgewogCQkJbGlzdF9kZWxfaW5pdCgmY3Vy LT5ub2RlKTsKKwkJCXNwaW5fdW5sb2NrKCZzeW5jb2JqLT5sb2NrKTsKIAkJCWN1ci0+ZnVuYyhz eW5jb2JqLCBjdXIpOworCQkJc3Bpbl9sb2NrKCZzeW5jb2JqLT5sb2NrKTsKIAkJfQogCQlzcGlu X3VubG9jaygmc3luY29iai0+bG9jayk7CiAJfQpAQCAtODY2LDYgKzg2OSw3IEBAIHN0cnVjdCBz eW5jb2JqX3dhaXRfZW50cnkgewogCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwogCXN0cnVjdCBk bWFfZmVuY2VfY2IgZmVuY2VfY2I7CiAJc3RydWN0IGRybV9zeW5jb2JqX2NiIHN5bmNvYmpfY2I7 CisJdTY0ICAgIHBvaW50OwogfTsKIAogc3RhdGljIHZvaWQgc3luY29ial93YWl0X2ZlbmNlX2Z1 bmMoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsCkBAIC04ODMsMTIgKzg4NywxMyBAQCBzdGF0aWMg dm9pZCBzeW5jb2JqX3dhaXRfc3luY29ial9mdW5jKHN0cnVjdCBkcm1fc3luY29iaiAqc3luY29i aiwKIAlzdHJ1Y3Qgc3luY29ial93YWl0X2VudHJ5ICp3YWl0ID0KIAkJY29udGFpbmVyX29mKGNi LCBzdHJ1Y3Qgc3luY29ial93YWl0X2VudHJ5LCBzeW5jb2JqX2NiKTsKIAotCWRybV9zeW5jb2Jq X3NlYXJjaF9mZW5jZShzeW5jb2JqLCAwLCAwLCAmd2FpdC0+ZmVuY2UpOworCWRybV9zeW5jb2Jq X3NlYXJjaF9mZW5jZShzeW5jb2JqLCB3YWl0LT5wb2ludCwgMCwgJndhaXQtPmZlbmNlKTsKIAog CXdha2VfdXBfcHJvY2Vzcyh3YWl0LT50YXNrKTsKIH0KIAogc3RhdGljIHNpZ25lZCBsb25nIGRy bV9zeW5jb2JqX2FycmF5X3dhaXRfdGltZW91dChzdHJ1Y3QgZHJtX3N5bmNvYmogKipzeW5jb2Jq cywKKwkJCQkJCSAgdm9pZCBfX3VzZXIgKnVzZXJfcG9pbnRzLAogCQkJCQkJICB1aW50MzJfdCBj b3VudCwKIAkJCQkJCSAgdWludDMyX3QgZmxhZ3MsCiAJCQkJCQkgIHNpZ25lZCBsb25nIHRpbWVv dXQsCkBAIC04OTYsMTMgKzkwMSwyNyBAQCBzdGF0aWMgc2lnbmVkIGxvbmcgZHJtX3N5bmNvYmpf YXJyYXlfd2FpdF90aW1lb3V0KHN0cnVjdCBkcm1fc3luY29iaiAqKnN5bmNvYmpzLAogewogCXN0 cnVjdCBzeW5jb2JqX3dhaXRfZW50cnkgKmVudHJpZXM7CiAJc3RydWN0IGRtYV9mZW5jZSAqZmVu Y2U7CisJdWludDY0X3QgKnBvaW50czsKIAlzaWduZWQgbG9uZyByZXQ7CiAJdWludDMyX3Qgc2ln bmFsZWRfY291bnQsIGk7CiAKLQllbnRyaWVzID0ga2NhbGxvYyhjb3VudCwgc2l6ZW9mKCplbnRy aWVzKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFlbnRyaWVzKQorCXBvaW50cyA9IGttYWxsb2NfYXJy YXkoY291bnQsIHNpemVvZigqcG9pbnRzKSwgR0ZQX0tFUk5FTCk7CisJaWYgKHBvaW50cyA9PSBO VUxMKQogCQlyZXR1cm4gLUVOT01FTTsKIAorCWlmICghdXNlcl9wb2ludHMpIHsKKwkJbWVtc2V0 KHBvaW50cywgMCwgY291bnQgKiBzaXplb2YodWludDY0X3QpKTsKKwl9IGVsc2UgaWYgKGNvcHlf ZnJvbV91c2VyKHBvaW50cywgdXNlcl9wb2ludHMsIHNpemVvZih1aW50NjRfdCkgKiBjb3VudCkp IHsKKwkJcmV0ID0gLUVGQVVMVDsKKwkJZ290byBlcnJfZnJlZV9wb2ludHM7CisJfQorCisKKwll bnRyaWVzID0ga2NhbGxvYyhjb3VudCwgc2l6ZW9mKCplbnRyaWVzKSwgR0ZQX0tFUk5FTCk7CisJ aWYgKCFlbnRyaWVzKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gZXJyX2ZyZWVfcG9pbnRz OworCX0KIAkvKiBXYWxrIHRoZSBsaXN0IG9mIHN5bmMgb2JqZWN0cyBhbmQgaW5pdGlhbGl6ZSBl bnRyaWVzLiAgV2UgZG8KIAkgKiB0aGlzIHVwLWZyb250IHNvIHRoYXQgd2UgY2FuIHByb3Blcmx5 IHJldHVybiAtRUlOVkFMIGlmIHRoZXJlIGlzCiAJICogYSBzeW5jb2JqIHdpdGggYSBtaXNzaW5n IGZlbmNlIGFuZCB0aGVuIG5ldmVyIGhhdmUgdGhlIGNoYW5jZSBvZgpAQCAtOTExLDcgKzkzMCw4 IEBAIHN0YXRpYyBzaWduZWQgbG9uZyBkcm1fc3luY29ial9hcnJheV93YWl0X3RpbWVvdXQoc3Ry dWN0IGRybV9zeW5jb2JqICoqc3luY29ianMsCiAJc2lnbmFsZWRfY291bnQgPSAwOwogCWZvciAo aSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CiAJCWVudHJpZXNbaV0udGFzayA9IGN1cnJlbnQ7Ci0J CXJldCA9IGRybV9zeW5jb2JqX3NlYXJjaF9mZW5jZShzeW5jb2Jqc1tpXSwgMCwgMCwKKwkJZW50 cmllc1tpXS5wb2ludCA9IHBvaW50c1tpXTsKKwkJcmV0ID0gZHJtX3N5bmNvYmpfc2VhcmNoX2Zl bmNlKHN5bmNvYmpzW2ldLCBwb2ludHNbaV0sIDAsCiAJCQkJCSAgICAgICAmZW50cmllc1tpXS5m ZW5jZSk7CiAJCWlmICghZW50cmllc1tpXS5mZW5jZSkgewogCQkJaWYgKGZsYWdzICYgRFJNX1NZ TkNPQkpfV0FJVF9GTEFHU19XQUlUX0ZPUl9TVUJNSVQpIHsKQEAgLTk1MCw2ICs5NzAsNyBAQCBz dGF0aWMgc2lnbmVkIGxvbmcgZHJtX3N5bmNvYmpfYXJyYXlfd2FpdF90aW1lb3V0KHN0cnVjdCBk cm1fc3luY29iaiAqKnN5bmNvYmpzLAogCWlmIChmbGFncyAmIERSTV9TWU5DT0JKX1dBSVRfRkxB R1NfV0FJVF9GT1JfU1VCTUlUKSB7CiAJCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CiAJ CQlkcm1fc3luY29ial9mZW5jZV9nZXRfb3JfYWRkX2NhbGxiYWNrKHN5bmNvYmpzW2ldLAorCQkJ CQkJCSAgICAgIGVudHJpZXNbaV0ucG9pbnQsCiAJCQkJCQkJICAgICAgJmVudHJpZXNbaV0uZmVu Y2UsCiAJCQkJCQkJICAgICAgJmVudHJpZXNbaV0uc3luY29ial9jYiwKIAkJCQkJCQkgICAgICBz eW5jb2JqX3dhaXRfc3luY29ial9mdW5jKTsKQEAgLTEwMTMsNiArMTAzNCw5IEBAIHN0YXRpYyBz aWduZWQgbG9uZyBkcm1fc3luY29ial9hcnJheV93YWl0X3RpbWVvdXQoc3RydWN0IGRybV9zeW5j b2JqICoqc3luY29ianMsCiAJfQogCWtmcmVlKGVudHJpZXMpOwogCitlcnJfZnJlZV9wb2ludHM6 CisJa2ZyZWUocG9pbnRzKTsKKwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTEwNTEsMjAgKzEwNzUs MzMgQEAgc3RhdGljIHNpZ25lZCBsb25nIGRybV90aW1lb3V0X2Fic190b19qaWZmaWVzKGludDY0 X3QgdGltZW91dF9uc2VjKQogc3RhdGljIGludCBkcm1fc3luY29ial9hcnJheV93YWl0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSwK IAkJCQkgIHN0cnVjdCBkcm1fc3luY29ial93YWl0ICp3YWl0LAotCQkJCSAgc3RydWN0IGRybV9z eW5jb2JqICoqc3luY29ianMpCisJCQkJICBzdHJ1Y3QgZHJtX3N5bmNvYmpfdGltZWxpbmVfd2Fp dCAqdGltZWxpbmVfd2FpdCwKKwkJCQkgIHN0cnVjdCBkcm1fc3luY29iaiAqKnN5bmNvYmpzLCBi b29sIHRpbWVsaW5lKQogewotCXNpZ25lZCBsb25nIHRpbWVvdXQgPSBkcm1fdGltZW91dF9hYnNf dG9famlmZmllcyh3YWl0LT50aW1lb3V0X25zZWMpOworCXNpZ25lZCBsb25nIHRpbWVvdXQgPSAw OwogCXNpZ25lZCBsb25nIHJldCA9IDA7CiAJdWludDMyX3QgZmlyc3QgPSB+MDsKIAotCXJldCA9 IGRybV9zeW5jb2JqX2FycmF5X3dhaXRfdGltZW91dChzeW5jb2JqcywKLQkJCQkJICAgICB3YWl0 LT5jb3VudF9oYW5kbGVzLAotCQkJCQkgICAgIHdhaXQtPmZsYWdzLAotCQkJCQkgICAgIHRpbWVv dXQsICZmaXJzdCk7CisJaWYgKCF0aW1lbGluZSkgeworCQl0aW1lb3V0ID0gZHJtX3RpbWVvdXRf YWJzX3RvX2ppZmZpZXMod2FpdC0+dGltZW91dF9uc2VjKTsKKwkJcmV0ID0gZHJtX3N5bmNvYmpf YXJyYXlfd2FpdF90aW1lb3V0KHN5bmNvYmpzLAorCQkJCQkJICAgICBOVUxMLAorCQkJCQkJICAg ICB3YWl0LT5jb3VudF9oYW5kbGVzLAorCQkJCQkJICAgICB3YWl0LT5mbGFncywKKwkJCQkJCSAg ICAgdGltZW91dCwgJmZpcnN0KTsKKwkJd2FpdC0+Zmlyc3Rfc2lnbmFsZWQgPSBmaXJzdDsKKwl9 IGVsc2UgeworCQl0aW1lb3V0ID0gZHJtX3RpbWVvdXRfYWJzX3RvX2ppZmZpZXModGltZWxpbmVf d2FpdC0+dGltZW91dF9uc2VjKTsKKwkJcmV0ID0gZHJtX3N5bmNvYmpfYXJyYXlfd2FpdF90aW1l b3V0KHN5bmNvYmpzLAorCQkJCQkJICAgICB1NjRfdG9fdXNlcl9wdHIodGltZWxpbmVfd2FpdC0+ cG9pbnRzKSwKKwkJCQkJCSAgICAgdGltZWxpbmVfd2FpdC0+Y291bnRfaGFuZGxlcywKKwkJCQkJ CSAgICAgdGltZWxpbmVfd2FpdC0+ZmxhZ3MsCisJCQkJCQkgICAgIHRpbWVvdXQsICZmaXJzdCk7 CisJCXRpbWVsaW5lX3dhaXQtPmZpcnN0X3NpZ25hbGVkID0gZmlyc3Q7CisJfQogCWlmIChyZXQg PCAwKQogCQlyZXR1cm4gcmV0OwogCi0Jd2FpdC0+Zmlyc3Rfc2lnbmFsZWQgPSBmaXJzdDsKIAlp ZiAocmV0ID09IDApCiAJCXJldHVybiAtRVRJTUU7CiAJcmV0dXJuIDA7CkBAIC0xMTUyLDEzICsx MTg5LDQ3IEBAIGRybV9zeW5jb2JqX3dhaXRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg dm9pZCAqZGF0YSwKIAkJcmV0dXJuIHJldDsKIAogCXJldCA9IGRybV9zeW5jb2JqX2FycmF5X3dh aXQoZGV2LCBmaWxlX3ByaXZhdGUsCi0JCQkJICAgICBhcmdzLCBzeW5jb2Jqcyk7CisJCQkJICAg ICBhcmdzLCBOVUxMLCBzeW5jb2JqcywgZmFsc2UpOwogCiAJZHJtX3N5bmNvYmpfYXJyYXlfZnJl ZShzeW5jb2JqcywgYXJncy0+Y291bnRfaGFuZGxlcyk7CiAKIAlyZXR1cm4gcmV0OwogfQogCitp bnQKK2RybV9zeW5jb2JqX3RpbWVsaW5lX3dhaXRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdm9pZCAqZGF0YSwKKwkJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSkKK3sKKwlz dHJ1Y3QgZHJtX3N5bmNvYmpfdGltZWxpbmVfd2FpdCAqYXJncyA9IGRhdGE7CisJc3RydWN0IGRy bV9zeW5jb2JqICoqc3luY29ianM7CisJaW50IHJldCA9IDA7CisKKwlpZiAoIWRybV9jb3JlX2No ZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfU1lOQ09CSikpCisJCXJldHVybiAtRU5PREVWOworCisJ aWYgKGFyZ3MtPmZsYWdzICYgfihEUk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfQUxMIHwKKwkJ CSAgICBEUk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfRk9SX1NVQk1JVCkpCisJCXJldHVybiAt RUlOVkFMOworCisJaWYgKGFyZ3MtPmNvdW50X2hhbmRsZXMgPT0gMCkKKwkJcmV0dXJuIC1FSU5W QUw7CisKKwlyZXQgPSBkcm1fc3luY29ial9hcnJheV9maW5kKGZpbGVfcHJpdmF0ZSwKKwkJCQkg ICAgIHU2NF90b191c2VyX3B0cihhcmdzLT5oYW5kbGVzKSwKKwkJCQkgICAgIGFyZ3MtPmNvdW50 X2hhbmRsZXMsCisJCQkJICAgICAmc3luY29ianMpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4g cmV0OworCisJcmV0ID0gZHJtX3N5bmNvYmpfYXJyYXlfd2FpdChkZXYsIGZpbGVfcHJpdmF0ZSwK KwkJCQkgICAgIE5VTEwsIGFyZ3MsIHN5bmNvYmpzLCB0cnVlKTsKKworCWRybV9zeW5jb2JqX2Fy cmF5X2ZyZWUoc3luY29ianMsIGFyZ3MtPmNvdW50X2hhbmRsZXMpOworCisJcmV0dXJuIHJldDsK K30KKworCiBpbnQKIGRybV9zeW5jb2JqX3Jlc2V0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHZvaWQgKmRhdGEsCiAJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSkKZGlmZiAt LWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL2RybS5oCmlu ZGV4IGNlYmRiMjU0MWViNy4uNTAxZTg2ZDgxZjQ3IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkv ZHJtL2RybS5oCisrKyBiL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgKQEAgLTc0OCw2ICs3NDgsMTkg QEAgc3RydWN0IGRybV9zeW5jb2JqX3dhaXQgewogCV9fdTMyIHBhZDsKIH07CiAKK3N0cnVjdCBk cm1fc3luY29ial90aW1lbGluZV93YWl0IHsKKwlfX3U2NCBoYW5kbGVzOworCS8qIHdhaXQgb24g c3BlY2lmaWMgdGltZWxpbmUgcG9pbnQgZm9yIGV2ZXJ5IGhhbmRsZXMqLworCV9fdTY0IHBvaW50 czsKKwkvKiBhYnNvbHV0ZSB0aW1lb3V0ICovCisJX19zNjQgdGltZW91dF9uc2VjOworCV9fdTMy IGNvdW50X2hhbmRsZXM7CisJX191MzIgZmxhZ3M7CisJX191MzIgZmlyc3Rfc2lnbmFsZWQ7IC8q IG9ubHkgdmFsaWQgd2hlbiBub3Qgd2FpdGluZyBhbGwgKi8KKwlfX3UzMiBwYWQ7Cit9OworCisK IHN0cnVjdCBkcm1fc3luY29ial9hcnJheSB7CiAJX191NjQgaGFuZGxlczsKIAlfX3UzMiBjb3Vu dF9oYW5kbGVzOwpAQCAtOTEwLDYgKzkyMyw3IEBAIGV4dGVybiAiQyIgewogI2RlZmluZSBEUk1f SU9DVExfTU9ERV9HRVRfTEVBU0UJRFJNX0lPV1IoMHhDOCwgc3RydWN0IGRybV9tb2RlX2dldF9s ZWFzZSkKICNkZWZpbmUgRFJNX0lPQ1RMX01PREVfUkVWT0tFX0xFQVNFCURSTV9JT1dSKDB4Qzks IHN0cnVjdCBkcm1fbW9kZV9yZXZva2VfbGVhc2UpCiAKKyNkZWZpbmUgRFJNX0lPQ1RMX1NZTkNP QkpfVElNRUxJTkVfV0FJVAlEUk1fSU9XUigweENBLCBzdHJ1Y3QgZHJtX3N5bmNvYmpfdGltZWxp bmVfd2FpdCkKIC8qKgogICogRGV2aWNlIHNwZWNpZmljIGlvY3RscyBzaG91bGQgb25seSBiZSBp biB0aGVpciByZXNwZWN0aXZlIGhlYWRlcnMKICAqIFRoZSBkZXZpY2Ugc3BlY2lmaWMgaW9jdGwg cmFuZ2UgaXMgZnJvbSAweDQwIHRvIDB4OWYuCi0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=