From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Airlie Subject: [PATCH 3/8] drm: introduce sync objects as sync file objects with no fd (v2.1) Date: Wed, 12 Apr 2017 14:57:21 +1000 Message-ID: <20170412045726.13689-4-airlied@gmail.com> References: <20170412045726.13689-1-airlied@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170412045726.13689-1-airlied-Re5JQEeQqe8AvxtiuMwx3w@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: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org RnJvbTogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KClN5bmMgb2JqZWN0cyBhcmUg bmV3IHRvcGxldmVsIGRybSBvYmplY3QsIHRoYXQgaGF2ZSB0aGUgc2FtZQpzZW1hbnRpY3MgYXMg c3luY19maWxlIG9iamVjdHMsIGJ1dCB3aXRob3V0IHJlcXVpcmluZyBhbiBmZAp0byBiZSBjb25z dW1lZCB0byBzdXBwb3J0IHRoZW0uCgpUaGlzIHBhdGNoIGp1c3QgZW5hYmxlcyB0aGUgRFJNIGlu dGVyZmFjZSB0byBjcmVhdGUgdGhlc2UKb2JqZWN0cywgaXQgZG9lc24ndCBhY3R1YWxseSBwcm92 aWRlIGFueSBzZW1hcGhvcmUgb2JqZWN0cwpvciBuZXcgZmVhdHVyZXMuCgp2MjogZG8gZ2V0L3B1 dCBvbiB0aGUgc3luYyBmaWxlIGZpbGUgdG8gYXZvaWQgcmFjZSAoRGFuaWVsKQp2Mi4xOiBmaXgg cmVmZXJlbmNlIGNvdW50aW5nIGJ1ZyBvbiBpbXBvcnQgKEphc29uKQpjbGVhbnVwIGRlc3Ryb3kg KEphc29uKQpmaXggYSBidW5jaCBvZiBidWdzIGZvciB0aGUgaWd0IHRlc3QuCnJlc3RyaWN0IHNl bWFwaG9yZSBvYmplY3RzIGZvciBjcmVhdGUvYW5kIGZkIGNvbnZlcnNpb25zLgoKUmV2aWV3ZWQt Ynk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KLS0tCiBEb2N1bWVudGF0aW9u L2dwdS9kcm0taW50ZXJuYWxzLnJzdCB8ICAgNSArCiBEb2N1bWVudGF0aW9uL2dwdS9kcm0tbW0u cnN0ICAgICAgICB8ICAgNiArCiBkcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUgICAgICAgICAgICB8 ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2RybV9mb3BzLmMgICAgICAgICAgfCAgIDggKwogZHJp dmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oICAgICAgfCAgMTUgKysKIGRyaXZlcnMvZ3B1L2Ry bS9kcm1faW9jdGwuYyAgICAgICAgIHwgIDE0ICsrCiBkcml2ZXJzL2dwdS9kcm0vZHJtX3N5bmNv YmouYyAgICAgICB8IDI4NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGlu Y2x1ZGUvZHJtL2RybVAuaCAgICAgICAgICAgICAgICAgIHwgICA1ICsKIGluY2x1ZGUvZHJtL2Ry bV9kcnYuaCAgICAgICAgICAgICAgIHwgICAxICsKIGluY2x1ZGUvdWFwaS9kcm0vZHJtLmggICAg ICAgICAgICAgIHwgIDI3ICsrKysKIDEwIGZpbGVzIGNoYW5nZWQsIDM2OSBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2RybV9z eW5jb2JqLmMKCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dwdS9kcm0taW50ZXJuYWxzLnJz dCBiL0RvY3VtZW50YXRpb24vZ3B1L2RybS1pbnRlcm5hbHMucnN0CmluZGV4IGUzNTkyMGQuLjc0 M2I3NTEgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ3B1L2RybS1pbnRlcm5hbHMucnN0Cisr KyBiL0RvY3VtZW50YXRpb24vZ3B1L2RybS1pbnRlcm5hbHMucnN0CkBAIC05OCw2ICs5OCwxMSBA QCBEUklWRVJfQVRPTUlDCiAgICAgaW1wbGVtZW50IGFwcHJvcHJpYXRlIG9iai0+YXRvbWljX2dl dF9wcm9wZXJ0eSgpIHZmdW5jcyBmb3IgYW55CiAgICAgbW9kZXNldCBvYmplY3RzIHdpdGggZHJp dmVyIHNwZWNpZmljIHByb3BlcnRpZXMuCiAKK0RSSVZFUl9TWU5DT0JKCisgICAgRHJpdmVyIHN1 cHBvcnQgc3luYyBvYmplY3RzLiBUaGVzZSBhcmUganVzdCBzeW5jIGZpbGVzIHRoYXQgZG9uJ3QK KyAgICB1c2UgYSBmaWxlIGRlc2NyaXB0b3IuIFRoZXkgY2FuIGJlIHVzZWQgdG8gaW1wbGVtZW50 IFZ1bGthbiBzaGFyZWQKKyAgICBzZW1hcGhvcmVzLgorCiBNYWpvciwgTWlub3IgYW5kIFBhdGNo bGV2ZWwKIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogCmRpZmYgLS1naXQgYS9Eb2N1bWVu dGF0aW9uL2dwdS9kcm0tbW0ucnN0IGIvRG9jdW1lbnRhdGlvbi9ncHUvZHJtLW1tLnJzdAppbmRl eCBmNTc2MGIxLi4yOGFlYmU4IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dwdS9kcm0tbW0u cnN0CisrKyBiL0RvY3VtZW50YXRpb24vZ3B1L2RybS1tbS5yc3QKQEAgLTQ4MywzICs0ODMsOSBA QCBEUk0gQ2FjaGUgSGFuZGxpbmcKIAogLi4ga2VybmVsLWRvYzo6IGRyaXZlcnMvZ3B1L2RybS9k cm1fY2FjaGUuYwogICAgOmV4cG9ydDoKKworRFJNIFN5bmMgT2JqZWN0cworPT09PT09PT09PT09 PT09PT09PT09PT09PT09CisKKy4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9kcm0vZHJtX3N5 bmNvYmouYworICAgOmV4cG9ydDoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmls ZSBiL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQppbmRleCAzZWU5NTc5Li5iNWU1NjVjIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL01h a2VmaWxlCkBAIC0xNiw3ICsxNiw3IEBAIGRybS15ICAgICAgIDo9CWRybV9hdXRoLm8gZHJtX2J1 ZnMubyBkcm1fY2FjaGUubyBcCiAJCWRybV9mcmFtZWJ1ZmZlci5vIGRybV9jb25uZWN0b3IubyBk cm1fYmxlbmQubyBcCiAJCWRybV9lbmNvZGVyLm8gZHJtX21vZGVfb2JqZWN0Lm8gZHJtX3Byb3Bl cnR5Lm8gXAogCQlkcm1fcGxhbmUubyBkcm1fY29sb3JfbWdtdC5vIGRybV9wcmludC5vIFwKLQkJ ZHJtX2R1bWJfYnVmZmVycy5vIGRybV9tb2RlX2NvbmZpZy5vCisJCWRybV9kdW1iX2J1ZmZlcnMu byBkcm1fbW9kZV9jb25maWcubyBkcm1fc3luY29iai5vCiAKIGRybS0kKENPTkZJR19EUk1fTElC X1JBTkRPTSkgKz0gbGliL2RybV9yYW5kb20ubwogZHJtLSQoQ09ORklHX0RSTV9WTSkgKz0gZHJt X3ZtLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZm9wcy5jIGIvZHJpdmVycy9n cHUvZHJtL2RybV9mb3BzLmMKaW5kZXggYWZkZjViMS4uOWE2MWRmMiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2RybV9mb3BzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mb3BzLmMK QEAgLTIxOSw2ICsyMTksOSBAQCBzdGF0aWMgaW50IGRybV9vcGVuX2hlbHBlcihzdHJ1Y3QgZmls ZSAqZmlscCwgc3RydWN0IGRybV9taW5vciAqbWlub3IpCiAJaWYgKGRybV9jb3JlX2NoZWNrX2Zl YXR1cmUoZGV2LCBEUklWRVJfR0VNKSkKIAkJZHJtX2dlbV9vcGVuKGRldiwgcHJpdik7CiAKKwlp ZiAoZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9TWU5DT0JKKSkKKwkJZHJtX3N5 bmNvYmpfb3Blbihwcml2KTsKKwogCWlmIChkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJ VkVSX1BSSU1FKSkKIAkJZHJtX3ByaW1lX2luaXRfZmlsZV9wcml2YXRlKCZwcml2LT5wcmltZSk7 CiAKQEAgLTI2Niw2ICsyNjksOCBAQCBzdGF0aWMgaW50IGRybV9vcGVuX2hlbHBlcihzdHJ1Y3Qg ZmlsZSAqZmlscCwgc3RydWN0IGRybV9taW5vciAqbWlub3IpCiBvdXRfcHJpbWVfZGVzdHJveToK IAlpZiAoZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9QUklNRSkpCiAJCWRybV9w cmltZV9kZXN0cm95X2ZpbGVfcHJpdmF0ZSgmcHJpdi0+cHJpbWUpOworCWlmIChkcm1fY29yZV9j aGVja19mZWF0dXJlKGRldiwgRFJJVkVSX1NZTkNPQkopKQorCQlkcm1fc3luY29ial9yZWxlYXNl KHByaXYpOwogCWlmIChkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX0dFTSkpCiAJ CWRybV9nZW1fcmVsZWFzZShkZXYsIHByaXYpOwogCXB1dF9waWQocHJpdi0+cGlkKTsKQEAgLTQw MCw2ICs0MDUsOSBAQCBpbnQgZHJtX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0 IGZpbGUgKmZpbHApCiAJCWRybV9wcm9wZXJ0eV9kZXN0cm95X3VzZXJfYmxvYnMoZGV2LCBmaWxl X3ByaXYpOwogCX0KIAorCWlmIChkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX1NZ TkNPQkopKQorCQlkcm1fc3luY29ial9yZWxlYXNlKGZpbGVfcHJpdik7CisKIAlpZiAoZHJtX2Nv cmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9HRU0pKQogCQlkcm1fZ2VtX3JlbGVhc2UoZGV2 LCBmaWxlX3ByaXYpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFs LmggYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgKaW5kZXggZjM3Mzg4Yy4uNzBjMjdh MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaApAQCAtMTQyLDQgKzE0MiwxOSBAQCBzdGF0aWMgaW5s aW5lIGludCBkcm1fZGVidWdmc19jcnRjX2NyY19hZGQoc3RydWN0IGRybV9jcnRjICpjcnRjKQog ewogCXJldHVybiAwOwogfQorCiAjZW5kaWYKKworLyogZHJtX3N5bmNvYmouYyAqLwordm9pZCBk cm1fc3luY29ial9vcGVuKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKTsKK3ZvaWQgZHJt X3N5bmNvYmpfcmVsZWFzZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSk7CitpbnQgZHJt X3N5bmNvYmpfY3JlYXRlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEs CisJCQkgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKTsKK2ludCBkcm1fc3luY29i al9kZXN0cm95X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkg ICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSk7CitpbnQgZHJtX3N5bmNvYmpfaGFu ZGxlX3RvX2ZkX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkJ ICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUpOworaW50IGRybV9zeW5jb2JqX2ZkX3Rv X2hhbmRsZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJCSAg IHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKTsKK2ludCBkcm1fc3luY29ial9pbmZvX2lv Y3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkgICBzdHJ1Y3QgZHJt X2ZpbGUgKmZpbGVfcHJpdmF0ZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lv Y3RsLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMKaW5kZXggYTdjNjFjMi4uNGE4ZWQ2 NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1faW9jdGwuYwpAQCAtMjQwLDYgKzI0MCw5IEBAIHN0YXRpYyBpbnQgZHJtX2dl dGNhcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUg KmZpbGVfCiAJCXJlcS0+dmFsdWUgfD0gZGV2LT5kcml2ZXItPnByaW1lX2ZkX3RvX2hhbmRsZSA/ IERSTV9QUklNRV9DQVBfSU1QT1JUIDogMDsKIAkJcmVxLT52YWx1ZSB8PSBkZXYtPmRyaXZlci0+ cHJpbWVfaGFuZGxlX3RvX2ZkID8gRFJNX1BSSU1FX0NBUF9FWFBPUlQgOiAwOwogCQlyZXR1cm4g MDsKKwljYXNlIERSTV9DQVBfU1lOQ09CSjoKKwkJcmVxLT52YWx1ZSA9IGRybV9jb3JlX2NoZWNr X2ZlYXR1cmUoZGV2LCBEUklWRVJfU1lOQ09CSik7CisJCXJldHVybiAwOwogCX0KIAogCS8qIE90 aGVyIGNhcHMgb25seSB3b3JrIHdpdGggS01TIGRyaXZlcnMgKi8KQEAgLTY0MSw2ICs2NDQsMTcg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faW9jdGxfZGVzYyBkcm1faW9jdGxzW10gPSB7CiAJ RFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9BVE9NSUMsIGRybV9tb2RlX2F0b21pY19pb2N0 bCwgRFJNX01BU1RFUnxEUk1fQ09OVFJPTF9BTExPV3xEUk1fVU5MT0NLRUQpLAogCURSTV9JT0NU TF9ERUYoRFJNX0lPQ1RMX01PREVfQ1JFQVRFUFJPUEJMT0IsIGRybV9tb2RlX2NyZWF0ZWJsb2Jf aW9jdGwsIERSTV9DT05UUk9MX0FMTE9XfERSTV9VTkxPQ0tFRCksCiAJRFJNX0lPQ1RMX0RFRihE Uk1fSU9DVExfTU9ERV9ERVNUUk9ZUFJPUEJMT0IsIGRybV9tb2RlX2Rlc3Ryb3libG9iX2lvY3Rs LCBEUk1fQ09OVFJPTF9BTExPV3xEUk1fVU5MT0NLRUQpLAorCisJRFJNX0lPQ1RMX0RFRihEUk1f SU9DVExfU1lOQ09CSl9DUkVBVEUsIGRybV9zeW5jb2JqX2NyZWF0ZV9pb2N0bCwKKwkJICAgICAg RFJNX1VOTE9DS0VEfERSTV9SRU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RM X1NZTkNPQkpfREVTVFJPWSwgZHJtX3N5bmNvYmpfZGVzdHJveV9pb2N0bCwKKwkJICAgICAgRFJN X1VOTE9DS0VEfERSTV9SRU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NZ TkNPQkpfSEFORExFX1RPX0ZELCBkcm1fc3luY29ial9oYW5kbGVfdG9fZmRfaW9jdGwsCisJCSAg ICAgIERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwKKwlEUk1fSU9DVExfREVGKERSTV9J T0NUTF9TWU5DT0JKX0ZEX1RPX0hBTkRMRSwgZHJtX3N5bmNvYmpfZmRfdG9faGFuZGxlX2lvY3Rs LAorCQkgICAgICBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCisJRFJNX0lPQ1RMX0RF RihEUk1fSU9DVExfU1lOQ09CSl9JTkZPLCBkcm1fc3luY29ial9pbmZvX2lvY3RsLAorCQkgICAg ICBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCiB9OwogCiAjZGVmaW5lIERSTV9DT1JF X0lPQ1RMX0NPVU5UCUFSUkFZX1NJWkUoIGRybV9pb2N0bHMgKQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2RybV9zeW5jb2JqLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3N5bmNvYmouYwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODI3ZjkwCi0tLSAvZGV2L251bGwK KysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9zeW5jb2JqLmMKQEAgLTAsMCArMSwyODcgQEAKKy8q CisgKiBDb3B5cmlnaHQgwqkgMjAxNyBSZWQgSGF0CisgKgorICogUGVybWlzc2lvbiBpcyBoZXJl YnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAq IGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVz ICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJl c3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRv IHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5z ZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQg cGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBz dWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29w eXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBu ZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vi c3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdB UkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQ UkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FS UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBB VVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1B R0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRS QUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENP Tk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUwor ICogSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIEF1dGhvcnM6CisgKgorICovCisKKy8qKgorICog RE9DOiBPdmVydmlldworICoKKyAqIERSTSBzeW5jaHJvbmlzYXRpb24gb2JqZWN0cyAoc3luY29i aikgYXJlIHdyYXBwZXJzIGZvciBzeW5jX2ZpbGUgb2JqZWN0cywKKyAqIHRoYXQgZG9uJ3QgdXNl IGZkIHNwYWNlLCBhbmQgY2FuIGJlIGNvbnZlcnRlZCB0by9mcm9tIHN5bmNfZmlsZSBmZHMuCisg KgorICogRGVwZW5kaW5nIG9uIHRoZSBzeW5jIG9iamVjdCB0eXBlLCB0aGV5IGNhbiBleHBvc2Ug ZGlmZmVyZW50IHN5bmNfZmlsZQorICogc2VtYW50aWNzIGFuZCByZXN0cmljdGlvbnMuCisgKgor ICogVGhlaXIgcHJpbWFyeSB1c2UtY2FzZSBpcyB0byBpbXBsZW1lbnQgVnVsa2FuIHNoYXJlZCBz ZW1hcGhvcmVzLgorICovCisKKyNpbmNsdWRlIDxkcm0vZHJtUC5oPgorI2luY2x1ZGUgPGxpbnV4 L3N5bmNfZmlsZS5oPgorI2luY2x1ZGUgImRybV9pbnRlcm5hbC5oIgorCitzdGF0aWMgc3RydWN0 IHN5bmNfZmlsZSAqZHJtX3N5bmNvYmpfZ2V0KHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRl LAorCQkJCQkgdTMyIGhhbmRsZSkKK3sKKwlzdHJ1Y3Qgc3luY19maWxlICpzeW5jX2ZpbGU7CisK KwlzcGluX2xvY2soJmZpbGVfcHJpdmF0ZS0+c3luY29ial90YWJsZV9sb2NrKTsKKworCS8qIENo ZWNrIGlmIHdlIGN1cnJlbnRseSBoYXZlIGEgcmVmZXJlbmNlIG9uIHRoZSBvYmplY3QgKi8KKwlz eW5jX2ZpbGUgPSBpZHJfZmluZCgmZmlsZV9wcml2YXRlLT5zeW5jb2JqX2lkciwgaGFuZGxlKTsK KwlpZiAoc3luY19maWxlKQorCQlnZXRfZmlsZShzeW5jX2ZpbGUtPmZpbGUpOworCisJc3Bpbl91 bmxvY2soJmZpbGVfcHJpdmF0ZS0+c3luY29ial90YWJsZV9sb2NrKTsKKworCXJldHVybiBzeW5j X2ZpbGU7Cit9CisKK3N0YXRpYyBpbnQgZHJtX3N5bmNvYmpfY3JlYXRlKHN0cnVjdCBkcm1fZmls ZSAqZmlsZV9wcml2YXRlLAorCQkJICAgICAgdW5zaWduZWQgdHlwZSwKKwkJCSAgICAgIHVuc2ln bmVkIGZsYWdzLCB1MzIgKmhhbmRsZSkKK3sKKwlzdHJ1Y3Qgc3luY19maWxlICpzeW5jX2ZpbGU7 CisJaW50IHJldDsKKworCXJldCA9IHN5bmNfZmlsZV92YWxpZGF0ZV90eXBlX2ZsYWdzKHR5cGUs IGZsYWdzKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJc3luY19maWxlID0gc3luY19m aWxlX2FsbG9jKHR5cGUsIGZsYWdzKTsKKwlpZiAoIXN5bmNfZmlsZSkKKwkJcmV0dXJuIC1FTk9N RU07CisKKwlpZHJfcHJlbG9hZChHRlBfS0VSTkVMKTsKKwlzcGluX2xvY2soJmZpbGVfcHJpdmF0 ZS0+c3luY29ial90YWJsZV9sb2NrKTsKKwlyZXQgPSBpZHJfYWxsb2MoJmZpbGVfcHJpdmF0ZS0+ c3luY29ial9pZHIsIHN5bmNfZmlsZSwgMSwgMCwgR0ZQX05PV0FJVCk7CisJc3Bpbl91bmxvY2so JmZpbGVfcHJpdmF0ZS0+c3luY29ial90YWJsZV9sb2NrKTsKKworCWlkcl9wcmVsb2FkX2VuZCgp OworCisJaWYgKHJldCA8IDApIHsKKwkJZnB1dChzeW5jX2ZpbGUtPmZpbGUpOworCQlyZXR1cm4g cmV0OworCX0KKworCSpoYW5kbGUgPSByZXQ7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQg ZHJtX3N5bmNvYmpfZGVzdHJveShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSwKKwkJCSAg ICAgICB1MzIgaGFuZGxlKQoreworCXN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZTsKKworCXNw aW5fbG9jaygmZmlsZV9wcml2YXRlLT5zeW5jb2JqX3RhYmxlX2xvY2spOworCXN5bmNfZmlsZSA9 IGlkcl9yZW1vdmUoJmZpbGVfcHJpdmF0ZS0+c3luY29ial9pZHIsIGhhbmRsZSk7CisJc3Bpbl91 bmxvY2soJmZpbGVfcHJpdmF0ZS0+c3luY29ial90YWJsZV9sb2NrKTsKKworCWlmICghc3luY19m aWxlKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWZwdXQoc3luY19maWxlLT5maWxlKTsKKwlyZXR1 cm4gMDsKK30KKworc3RhdGljIGludCBkcm1fc3luY29ial9oYW5kbGVfdG9fZmQoc3RydWN0IGRy bV9maWxlICpmaWxlX3ByaXZhdGUsCisJCQkJICAgIHUzMiBoYW5kbGUsIGludCAqZmQpCit7CisJ c3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlID0gZHJtX3N5bmNvYmpfZ2V0KGZpbGVfcHJpdmF0 ZSwgaGFuZGxlKTsKKwlpbnQgcmV0OworCWlmICghc3luY19maWxlKQorCQlyZXR1cm4gLUVJTlZB TDsKKworCWlmIChzeW5jX2ZpbGUtPnR5cGUgIT0gU1lOQ19GSUxFX1RZUEVfU0VNQVBIT1JFKSB7 CisJCWZwdXQoc3luY19maWxlLT5maWxlKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0 ID0gZ2V0X3VudXNlZF9mZF9mbGFncyhPX0NMT0VYRUMpOworCWlmIChyZXQgPCAwKSB7CisJCWZw dXQoc3luY19maWxlLT5maWxlKTsKKwkJcmV0dXJuIHJldDsKKwl9CisJZmRfaW5zdGFsbChyZXQs IHN5bmNfZmlsZS0+ZmlsZSk7CisJKmZkID0gcmV0OworCS8qIGxlYXZlIHJlZmVyZW5jZSB3aXRo IGZkICovCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZHJtX3N5bmNvYmpfZmRfdG9faGFu ZGxlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlLAorCQkJCSAgICBpbnQgZmQsIHUzMiAq aGFuZGxlKQoreworCXN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZSA9IHN5bmNfZmlsZV9mZGdl dChmZCk7CisJaW50IHJldDsKKwlpZiAoIXN5bmNfZmlsZSkKKwkJcmV0dXJuIC1FSU5WQUw7CisK KwlpZiAoc3luY19maWxlLT50eXBlICE9IFNZTkNfRklMRV9UWVBFX1NFTUFQSE9SRSkgeworCQlm cHV0KHN5bmNfZmlsZS0+ZmlsZSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWlkcl9wcmVs b2FkKEdGUF9LRVJORUwpOworCXNwaW5fbG9jaygmZmlsZV9wcml2YXRlLT5zeW5jb2JqX3RhYmxl X2xvY2spOworCXJldCA9IGlkcl9hbGxvYygmZmlsZV9wcml2YXRlLT5zeW5jb2JqX2lkciwgc3lu Y19maWxlLCAxLCAwLCBHRlBfTk9XQUlUKTsKKwlzcGluX3VubG9jaygmZmlsZV9wcml2YXRlLT5z eW5jb2JqX3RhYmxlX2xvY2spOworCWlkcl9wcmVsb2FkX2VuZCgpOworCisJaWYgKHJldCA8IDAp IHsKKwkJZnB1dChzeW5jX2ZpbGUtPmZpbGUpOworCQlyZXR1cm4gcmV0OworCX0KKwkqaGFuZGxl ID0gcmV0OworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGRybV9zeW5jb2JqX2luZm8oc3Ry dWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUsCisJCQkgICAgdTMyIGhhbmRsZSwgdTMyICp0eXBl LCB1MzIgKmZsYWdzKQoreworCXN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZSA9IGRybV9zeW5j b2JqX2dldChmaWxlX3ByaXZhdGUsIGhhbmRsZSk7CisKKwlpZiAoIXN5bmNfZmlsZSkKKwkJcmV0 dXJuIC1FSU5WQUw7CisJKnR5cGUgPSBzeW5jX2ZpbGUtPnR5cGU7CisJKmZsYWdzID0gc3luY19m aWxlLT5mbGFnczsKKwlmcHV0KHN5bmNfZmlsZS0+ZmlsZSk7CisJcmV0dXJuIDA7Cit9CisKKy8q KgorICogZHJtX3N5bmNvYmpfb3BlbiAtIGluaXRhbGl6ZXMgc3luY29iaiBmaWxlLXByaXZhdGUg c3RydWN0dXJlcyBhdCBkZXZub2RlIG9wZW4gdGltZQorICogQGRldjogZHJtX2RldmljZSB3aGlj aCBpcyBiZWluZyBvcGVuZWQgYnkgdXNlcnNwYWNlCisgKiBAZmlsZV9wcml2YXRlOiBkcm0gZmls ZS1wcml2YXRlIHN0cnVjdHVyZSB0byBzZXQgdXAKKyAqCisgKiBDYWxsZWQgYXQgZGV2aWNlIG9w ZW4gdGltZSwgc2V0cyB1cCB0aGUgc3RydWN0dXJlIGZvciBoYW5kbGluZyByZWZjb3VudGluZwor ICogb2Ygc3luYyBvYmplY3RzLgorICovCit2b2lkCitkcm1fc3luY29ial9vcGVuKHN0cnVjdCBk cm1fZmlsZSAqZmlsZV9wcml2YXRlKQoreworCWlkcl9pbml0KCZmaWxlX3ByaXZhdGUtPnN5bmNv YmpfaWRyKTsKKwlzcGluX2xvY2tfaW5pdCgmZmlsZV9wcml2YXRlLT5zeW5jb2JqX3RhYmxlX2xv Y2spOworfQorCitzdGF0aWMgaW50Citkcm1fc3luY29ial9yZWxlYXNlX2hhbmRsZShpbnQgaWQs IHZvaWQgKnB0ciwgdm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3Qgc3luY19maWxlICpzeW5jX2ZpbGUg PSBwdHI7CisKKwlmcHV0KHN5bmNfZmlsZS0+ZmlsZSk7CisJcmV0dXJuIDA7Cit9CisKKy8qKgor ICogZHJtX3N5bmNvYmpfcmVsZWFzZSAtIHJlbGVhc2UgZmlsZS1wcml2YXRlIHN5bmMgb2JqZWN0 IHJlc291cmNlcworICogQGRldjogZHJtX2RldmljZSB3aGljaCBpcyBiZWluZyBjbG9zZWQgYnkg dXNlcnNwYWNlCisgKiBAZmlsZV9wcml2YXRlOiBkcm0gZmlsZS1wcml2YXRlIHN0cnVjdHVyZSB0 byBjbGVhbiB1cAorICoKKyAqIENhbGxlZCBhdCBjbG9zZSB0aW1lIHdoZW4gdGhlIGZpbHAgaXMg Z29pbmcgYXdheS4KKyAqCisgKiBSZWxlYXNlcyBhbnkgcmVtYWluaW5nIHJlZmVyZW5jZXMgb24g b2JqZWN0cyBieSB0aGlzIGZpbHAuCisgKi8KK3ZvaWQKK2RybV9zeW5jb2JqX3JlbGVhc2Uoc3Ry dWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUpCit7CisJaWRyX2Zvcl9lYWNoKCZmaWxlX3ByaXZh dGUtPnN5bmNvYmpfaWRyLAorCQkgICAgICZkcm1fc3luY29ial9yZWxlYXNlX2hhbmRsZSwgZmls ZV9wcml2YXRlKTsKKwlpZHJfZGVzdHJveSgmZmlsZV9wcml2YXRlLT5zeW5jb2JqX2lkcik7Cit9 CisKK2ludAorZHJtX3N5bmNvYmpfY3JlYXRlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHZvaWQgKmRhdGEsCisJCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUpCit7CisJc3Ry dWN0IGRybV9zeW5jb2JqX2NyZWF0ZV9pbmZvICphcmdzID0gZGF0YTsKKworCWlmICghZHJtX2Nv cmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9TWU5DT0JKKSkKKwkJcmV0dXJuIC1FTk9ERVY7 CisKKwkvKiBtYWtlIHN1cmUgcGFkZGluZyBpcyBlbXB0eSAqLworCWlmIChhcmdzLT5wYWQpCisJ CXJldHVybiAtRUlOVkFMOworCisJLyogb25seSBhbGxvdyBzeW5jIG9iamVjdHMgZm9yIG5vdyAq LworCWlmIChhcmdzLT50eXBlICE9IFNZTkNfRklMRV9UWVBFX1NFTUFQSE9SRSkKKwkJcmV0dXJu IC1FSU5WQUw7CisJcmV0dXJuIGRybV9zeW5jb2JqX2NyZWF0ZShmaWxlX3ByaXZhdGUsIGFyZ3Mt PnR5cGUsCisJCQkJIGFyZ3MtPmZsYWdzLCAmYXJncy0+aGFuZGxlKTsKK30KKworaW50Citkcm1f c3luY29ial9kZXN0cm95X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEs CisJCQkgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKQoreworCXN0cnVjdCBkcm1fc3lu Y29ial9kZXN0cm95ICphcmdzID0gZGF0YTsKKworCWlmICghZHJtX2NvcmVfY2hlY2tfZmVhdHVy ZShkZXYsIERSSVZFUl9TWU5DT0JKKSkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwkvKiBtYWtlIHN1 cmUgcGFkZGluZyBpcyBlbXB0eSAqLworCWlmIChhcmdzLT5wYWQpCisJCXJldHVybiAtRUlOVkFM OworCXJldHVybiBkcm1fc3luY29ial9kZXN0cm95KGZpbGVfcHJpdmF0ZSwgYXJncy0+aGFuZGxl KTsKK30KKworaW50Citkcm1fc3luY29ial9oYW5kbGVfdG9fZmRfaW9jdGwoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCQkgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJp dmF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX3N5bmNvYmpfaGFuZGxlICphcmdzID0gZGF0YTsKKworCWlm ICghZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9TWU5DT0JKKSkKKwkJcmV0dXJu IC1FTk9ERVY7CisKKwlyZXR1cm4gZHJtX3N5bmNvYmpfaGFuZGxlX3RvX2ZkKGZpbGVfcHJpdmF0 ZSwgYXJncy0+aGFuZGxlLAorCQkJCQkmYXJncy0+ZmQpOworfQorCitpbnQKK2RybV9zeW5jb2Jq X2ZkX3RvX2hhbmRsZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAor CQkJCSAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKQoreworCXN0cnVjdCBkcm1fc3lu Y29ial9oYW5kbGUgKmFyZ3MgPSBkYXRhOworCisJaWYgKCFkcm1fY29yZV9jaGVja19mZWF0dXJl KGRldiwgRFJJVkVSX1NZTkNPQkopKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCXJldHVybiBkcm1f c3luY29ial9mZF90b19oYW5kbGUoZmlsZV9wcml2YXRlLCBhcmdzLT5mZCwKKwkJCQkJJmFyZ3Mt PmhhbmRsZSk7Cit9CisKK2ludAorZHJtX3N5bmNvYmpfaW5mb19pb2N0bChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3By aXZhdGUpCit7CisJc3RydWN0IGRybV9zeW5jb2JqX2NyZWF0ZV9pbmZvICphcmdzID0gZGF0YTsK KworCWlmICghZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9TWU5DT0JKKSkKKwkJ cmV0dXJuIC1FTk9ERVY7CisKKwkvKiBtYWtlIHN1cmUgcGFkZGluZyBpcyBlbXB0eSAqLworCWlm IChhcmdzLT5wYWQpCisJCXJldHVybiAtRUlOVkFMOworCXJldHVybiBkcm1fc3luY29ial9pbmZv KGZpbGVfcHJpdmF0ZSwgYXJncy0+aGFuZGxlLAorCQkJCSZhcmdzLT50eXBlLCAmYXJncy0+Zmxh Z3MpOworfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtUC5oIGIvaW5jbHVkZS9kcm0vZHJt UC5oCmluZGV4IDYxMDVjMDUuLjFkNDhmNmYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybVAu aAorKysgYi9pbmNsdWRlL2RybS9kcm1QLmgKQEAgLTQwNSw2ICs0MDUsMTEgQEAgc3RydWN0IGRy bV9maWxlIHsKIAkvKiogTG9jayBmb3Igc3luY2hyb25pemF0aW9uIG9mIGFjY2VzcyB0byBvYmpl Y3RfaWRyLiAqLwogCXNwaW5sb2NrX3QgdGFibGVfbG9jazsKIAorCS8qKiBNYXBwaW5nIG9mIHN5 bmMgb2JqZWN0IGhhbmRsZXMgdG8gb2JqZWN0IHBvaW50ZXJzLiAqLworCXN0cnVjdCBpZHIgc3lu Y29ial9pZHI7CisJLyoqIExvY2sgZm9yIHN5bmNocm9uaXphdGlvbiBvZiBhY2Nlc3MgdG8gc3lu Y29ial9pZHIuICovCisJc3BpbmxvY2tfdCBzeW5jb2JqX3RhYmxlX2xvY2s7CisKIAlzdHJ1Y3Qg ZmlsZSAqZmlscDsKIAl2b2lkICpkcml2ZXJfcHJpdjsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9k cm0vZHJtX2Rydi5oIGIvaW5jbHVkZS9kcm0vZHJtX2Rydi5oCmluZGV4IDU2OTlmNDIuLjQ4ZmYw NmIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9kcnYuaAorKysgYi9pbmNsdWRlL2RybS9k cm1fZHJ2LmgKQEAgLTUzLDYgKzUzLDcgQEAgc3RydWN0IGRybV9tb2RlX2NyZWF0ZV9kdW1iOwog I2RlZmluZSBEUklWRVJfUkVOREVSCQkJMHg4MDAwCiAjZGVmaW5lIERSSVZFUl9BVE9NSUMJCQkw eDEwMDAwCiAjZGVmaW5lIERSSVZFUl9LTVNfTEVHQUNZX0NPTlRFWFQJMHgyMDAwMAorI2RlZmlu ZSBEUklWRVJfU1lOQ09CSiAgICAgICAgICAgICAgICAgIDB4NDAwMDAKIAogLyoqCiAgKiBzdHJ1 Y3QgZHJtX2RyaXZlciAtIERSTSBkcml2ZXIgc3RydWN0dXJlCmRpZmYgLS1naXQgYS9pbmNsdWRl L3VhcGkvZHJtL2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9kcm0uaAppbmRleCBiMmM1Mjg0Li5m MmQzZjA2IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2RybS5oCisrKyBiL2luY2x1ZGUv dWFwaS9kcm0vZHJtLmgKQEAgLTY0Nyw2ICs2NDcsNyBAQCBzdHJ1Y3QgZHJtX2dlbV9vcGVuIHsK ICNkZWZpbmUgRFJNX0NBUF9DVVJTT1JfSEVJR0hUCQkweDkKICNkZWZpbmUgRFJNX0NBUF9BRERG QjJfTU9ESUZJRVJTCTB4MTAKICNkZWZpbmUgRFJNX0NBUF9QQUdFX0ZMSVBfVEFSR0VUCTB4MTEK KyNkZWZpbmUgRFJNX0NBUF9TWU5DT0JKCQkweDEzCiAKIC8qKiBEUk1fSU9DVExfR0VUX0NBUCBp b2N0bCBhcmd1bWVudCB0eXBlICovCiBzdHJ1Y3QgZHJtX2dldF9jYXAgewpAQCAtNjk2LDYgKzY5 NywyNiBAQCBzdHJ1Y3QgZHJtX3ByaW1lX2hhbmRsZSB7CiAJX19zMzIgZmQ7CiB9OwogCitzdHJ1 Y3QgZHJtX3N5bmNvYmpfY3JlYXRlX2luZm8geworCV9fdTMyIGhhbmRsZTsKKwlfX3UzMiB0eXBl OworCV9fdTMyIGZsYWdzOworCV9fdTMyIHBhZDsKK307CisKK3N0cnVjdCBkcm1fc3luY29ial9k ZXN0cm95IHsKKwlfX3UzMiBoYW5kbGU7CisJX191MzIgcGFkOworfTsKKworc3RydWN0IGRybV9z eW5jb2JqX2hhbmRsZSB7CisJX191MzIgaGFuZGxlOworCS8qKiBGbGFncy4uIG9ubHkgYXBwbGlj YWJsZSBmb3IgaGFuZGxlLT5mZCAqLworCV9fdTMyIGZsYWdzOworCisJX19zMzIgZmQ7Cit9Owor CiAjaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKIH0KICNlbmRpZgpAQCAtODE0LDYgKzgzNSwxMiBA QCBleHRlcm4gIkMiIHsKICNkZWZpbmUgRFJNX0lPQ1RMX01PREVfQ1JFQVRFUFJPUEJMT0IJRFJN X0lPV1IoMHhCRCwgc3RydWN0IGRybV9tb2RlX2NyZWF0ZV9ibG9iKQogI2RlZmluZSBEUk1fSU9D VExfTU9ERV9ERVNUUk9ZUFJPUEJMT0IJRFJNX0lPV1IoMHhCRSwgc3RydWN0IGRybV9tb2RlX2Rl c3Ryb3lfYmxvYikKIAorI2RlZmluZSBEUk1fSU9DVExfU1lOQ09CSl9DUkVBVEUJRFJNX0lPV1Io MHhCRiwgc3RydWN0IGRybV9zeW5jb2JqX2NyZWF0ZV9pbmZvKQorI2RlZmluZSBEUk1fSU9DVExf U1lOQ09CSl9ERVNUUk9ZCURSTV9JT1dSKDB4QzAsIHN0cnVjdCBkcm1fc3luY29ial9kZXN0cm95 KQorI2RlZmluZSBEUk1fSU9DVExfU1lOQ09CSl9IQU5ETEVfVE9fRkQJRFJNX0lPV1IoMHhDMSwg c3RydWN0IGRybV9zeW5jb2JqX2hhbmRsZSkKKyNkZWZpbmUgRFJNX0lPQ1RMX1NZTkNPQkpfRkRf VE9fSEFORExFCURSTV9JT1dSKDB4QzIsIHN0cnVjdCBkcm1fc3luY29ial9oYW5kbGUpCisjZGVm aW5lIERSTV9JT0NUTF9TWU5DT0JKX0lORk8JCURSTV9JT1dSKDB4QzMsIHN0cnVjdCBkcm1fc3lu Y29ial9jcmVhdGVfaW5mbykKKwogLyoqCiAgKiBEZXZpY2Ugc3BlY2lmaWMgaW9jdGxzIHNob3Vs ZCBvbmx5IGJlIGluIHRoZWlyIHJlc3BlY3RpdmUgaGVhZGVycwogICogVGhlIGRldmljZSBzcGVj aWZpYyBpb2N0bCByYW5nZSBpcyBmcm9tIDB4NDAgdG8gMHg5Zi4KLS0gCjIuOS4zCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcg bGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK