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 Date: Tue, 4 Apr 2017 14:27:28 +1000 Message-ID: <20170404042733.17203-4-airlied@gmail.com> References: <20170404042733.17203-1-airlied@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by gabe.freedesktop.org (Postfix) with ESMTPS id 48B136E51F for ; Tue, 4 Apr 2017 04:27:40 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id BDB388123D for ; Tue, 4 Apr 2017 04:27:39 +0000 (UTC) Received: from dreadlord-bne-redhat-com.bne.redhat.com (dhcp-40-179.bne.redhat.com [10.64.40.179]) by smtp.corp.redhat.com (Postfix) with ESMTP id C799460465 for ; Tue, 4 Apr 2017 04:27:38 +0000 (UTC) In-Reply-To: <20170404042733.17203-1-airlied@gmail.com> 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 List-Id: dri-devel@lists.freedesktop.org RnJvbTogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KClN5bmMgb2JqZWN0cyBhcmUg bmV3IHRvcGxldmVsIGRybSBvYmplY3QsIHRoYXQgaGF2ZSB0aGUgc2FtZQpzZW1hbnRpY3MgYXMg c3luY19maWxlIG9iamVjdHMsIGJ1dCB3aXRob3V0IHJlcXVpcmluZyBhbiBmZAp0byBiZSBjb25z dW1lZCB0byBzdXBwb3J0IHRoZW0uCgpUaGlzIHBhdGNoIGp1c3QgZW5hYmxlcyB0aGUgRFJNIGlu dGVyZmFjZSB0byBjcmVhdGUgdGhlc2UKb2JqZWN0cywgaXQgZG9lc24ndCBhY3R1YWxseSBwcm92 aWRlIGFueSBzZW1hcGhvcmUgb2JqZWN0cwpvciBuZXcgZmVhdHVyZXMuCgpTaWduZWQtb2ZmLWJ5 OiBEYXZlIEFpcmxpZSA8YWlybGllZEByZWRoYXQuY29tPgotLS0KIERvY3VtZW50YXRpb24vZ3B1 L2RybS1pbnRlcm5hbHMucnN0IHwgICA1ICsKIERvY3VtZW50YXRpb24vZ3B1L2RybS1tbS5yc3Qg ICAgICAgIHwgICA2ICsKIGRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSAgICAgICAgICAgIHwgICAy ICstCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZvcHMuYyAgICAgICAgICB8ICAgOCArKwogZHJpdmVy cy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oICAgICAgfCAgMTUgKysrCiBkcml2ZXJzL2dwdS9kcm0v ZHJtX2lvY3RsLmMgICAgICAgICB8ICAxNCArKwogZHJpdmVycy9ncHUvZHJtL2RybV9zeW5jb2Jq LmMgICAgICAgfCAyNTcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBpbmNs dWRlL2RybS9kcm1QLmggICAgICAgICAgICAgICAgICB8ICAgNSArCiBpbmNsdWRlL2RybS9kcm1f ZHJ2LmggICAgICAgICAgICAgICB8ICAgMSArCiBpbmNsdWRlL3VhcGkvZHJtL2RybS5oICAgICAg ICAgICAgICB8ICAyNyArKysrCiAxMCBmaWxlcyBjaGFuZ2VkLCAzMzkgaW5zZXJ0aW9ucygrKSwg MSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9kcm1fc3lu Y29iai5jCgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9ncHUvZHJtLWludGVybmFscy5yc3Qg Yi9Eb2N1bWVudGF0aW9uL2dwdS9kcm0taW50ZXJuYWxzLnJzdAppbmRleCBlMzU5MjBkLi43NDNi NzUxIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dwdS9kcm0taW50ZXJuYWxzLnJzdAorKysg Yi9Eb2N1bWVudGF0aW9uL2dwdS9kcm0taW50ZXJuYWxzLnJzdApAQCAtOTgsNiArOTgsMTEgQEAg RFJJVkVSX0FUT01JQwogICAgIGltcGxlbWVudCBhcHByb3ByaWF0ZSBvYmotPmF0b21pY19nZXRf cHJvcGVydHkoKSB2ZnVuY3MgZm9yIGFueQogICAgIG1vZGVzZXQgb2JqZWN0cyB3aXRoIGRyaXZl ciBzcGVjaWZpYyBwcm9wZXJ0aWVzLgogCitEUklWRVJfU1lOQ09CSgorICAgIERyaXZlciBzdXBw b3J0IHN5bmMgb2JqZWN0cy4gVGhlc2UgYXJlIGp1c3Qgc3luYyBmaWxlcyB0aGF0IGRvbid0Cisg ICAgdXNlIGEgZmlsZSBkZXNjcmlwdG9yLiBUaGV5IGNhbiBiZSB1c2VkIHRvIGltcGxlbWVudCBW dWxrYW4gc2hhcmVkCisgICAgc2VtYXBob3Jlcy4KKwogTWFqb3IsIE1pbm9yIGFuZCBQYXRjaGxl dmVsCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRh dGlvbi9ncHUvZHJtLW1tLnJzdCBiL0RvY3VtZW50YXRpb24vZ3B1L2RybS1tbS5yc3QKaW5kZXgg ZjU3NjBiMS4uMjhhZWJlOCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9ncHUvZHJtLW1tLnJz dAorKysgYi9Eb2N1bWVudGF0aW9uL2dwdS9kcm0tbW0ucnN0CkBAIC00ODMsMyArNDgzLDkgQEAg RFJNIENhY2hlIEhhbmRsaW5nCiAKIC4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9kcm0vZHJt X2NhY2hlLmMKICAgIDpleHBvcnQ6CisKK0RSTSBTeW5jIE9iamVjdHMKKz09PT09PT09PT09PT09 PT09PT09PT09PT09PQorCisuLiBrZXJuZWwtZG9jOjogZHJpdmVycy9ncHUvZHJtL2RybV9zeW5j b2JqLmMKKyAgIDpleHBvcnQ6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUg Yi9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKaW5kZXggM2VlOTU3OS4uYjVlNTY1YyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9NYWtl ZmlsZQpAQCAtMTYsNyArMTYsNyBAQCBkcm0teSAgICAgICA6PQlkcm1fYXV0aC5vIGRybV9idWZz Lm8gZHJtX2NhY2hlLm8gXAogCQlkcm1fZnJhbWVidWZmZXIubyBkcm1fY29ubmVjdG9yLm8gZHJt X2JsZW5kLm8gXAogCQlkcm1fZW5jb2Rlci5vIGRybV9tb2RlX29iamVjdC5vIGRybV9wcm9wZXJ0 eS5vIFwKIAkJZHJtX3BsYW5lLm8gZHJtX2NvbG9yX21nbXQubyBkcm1fcHJpbnQubyBcCi0JCWRy bV9kdW1iX2J1ZmZlcnMubyBkcm1fbW9kZV9jb25maWcubworCQlkcm1fZHVtYl9idWZmZXJzLm8g ZHJtX21vZGVfY29uZmlnLm8gZHJtX3N5bmNvYmoubwogCiBkcm0tJChDT05GSUdfRFJNX0xJQl9S QU5ET00pICs9IGxpYi9kcm1fcmFuZG9tLm8KIGRybS0kKENPTkZJR19EUk1fVk0pICs9IGRybV92 bS5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvcHMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fZm9wcy5jCmluZGV4IGFmZGY1YjEuLjlhNjFkZjIgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fZm9wcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZm9wcy5jCkBA IC0yMTksNiArMjE5LDkgQEAgc3RhdGljIGludCBkcm1fb3Blbl9oZWxwZXIoc3RydWN0IGZpbGUg KmZpbHAsIHN0cnVjdCBkcm1fbWlub3IgKm1pbm9yKQogCWlmIChkcm1fY29yZV9jaGVja19mZWF0 dXJlKGRldiwgRFJJVkVSX0dFTSkpCiAJCWRybV9nZW1fb3BlbihkZXYsIHByaXYpOwogCisJaWYg KGRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfU1lOQ09CSikpCisJCWRybV9zeW5j b2JqX29wZW4ocHJpdik7CisKIAlpZiAoZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZF Ul9QUklNRSkpCiAJCWRybV9wcmltZV9pbml0X2ZpbGVfcHJpdmF0ZSgmcHJpdi0+cHJpbWUpOwog CkBAIC0yNjYsNiArMjY5LDggQEAgc3RhdGljIGludCBkcm1fb3Blbl9oZWxwZXIoc3RydWN0IGZp bGUgKmZpbHAsIHN0cnVjdCBkcm1fbWlub3IgKm1pbm9yKQogb3V0X3ByaW1lX2Rlc3Ryb3k6CiAJ aWYgKGRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfUFJJTUUpKQogCQlkcm1fcHJp bWVfZGVzdHJveV9maWxlX3ByaXZhdGUoJnByaXYtPnByaW1lKTsKKwlpZiAoZHJtX2NvcmVfY2hl Y2tfZmVhdHVyZShkZXYsIERSSVZFUl9TWU5DT0JKKSkKKwkJZHJtX3N5bmNvYmpfcmVsZWFzZShw cml2KTsKIAlpZiAoZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9HRU0pKQogCQlk cm1fZ2VtX3JlbGVhc2UoZGV2LCBwcml2KTsKIAlwdXRfcGlkKHByaXYtPnBpZCk7CkBAIC00MDAs NiArNDA1LDkgQEAgaW50IGRybV9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBm aWxlICpmaWxwKQogCQlkcm1fcHJvcGVydHlfZGVzdHJveV91c2VyX2Jsb2JzKGRldiwgZmlsZV9w cml2KTsKIAl9CiAKKwlpZiAoZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9TWU5D T0JKKSkKKwkJZHJtX3N5bmNvYmpfcmVsZWFzZShmaWxlX3ByaXYpOworCiAJaWYgKGRybV9jb3Jl X2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfR0VNKSkKIAkJZHJtX2dlbV9yZWxlYXNlKGRldiwg ZmlsZV9wcml2KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5o IGIvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oCmluZGV4IGYzNzM4OGMuLjcwYzI3YTAg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2ludGVybmFsLmgKQEAgLTE0Miw0ICsxNDIsMTkgQEAgc3RhdGljIGlubGlu ZSBpbnQgZHJtX2RlYnVnZnNfY3J0Y19jcmNfYWRkKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsK IAlyZXR1cm4gMDsKIH0KKwogI2VuZGlmCisKKy8qIGRybV9zeW5jb2JqLmMgKi8KK3ZvaWQgZHJt X3N5bmNvYmpfb3BlbihzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSk7Cit2b2lkIGRybV9z eW5jb2JqX3JlbGVhc2Uoc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUpOworaW50IGRybV9z eW5jb2JqX2NyZWF0ZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAor CQkJICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSk7CitpbnQgZHJtX3N5bmNvYmpf ZGVzdHJveV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJICAg ICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUpOworaW50IGRybV9zeW5jb2JqX2hhbmRs ZV90b19mZF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJCSAg IHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKTsKK2ludCBkcm1fc3luY29ial9mZF90b19o YW5kbGVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCQkgICBz dHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSk7CitpbnQgZHJtX3N5bmNvYmpfaW5mb19pb2N0 bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJICAgc3RydWN0IGRybV9m aWxlICpmaWxlX3ByaXZhdGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0 bC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jCmluZGV4IGE3YzYxYzIuLjRhOGVkNjYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2lvY3RsLmMKQEAgLTI0MCw2ICsyNDAsOSBAQCBzdGF0aWMgaW50IGRybV9nZXRj YXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpm aWxlXwogCQlyZXEtPnZhbHVlIHw9IGRldi0+ZHJpdmVyLT5wcmltZV9mZF90b19oYW5kbGUgPyBE Uk1fUFJJTUVfQ0FQX0lNUE9SVCA6IDA7CiAJCXJlcS0+dmFsdWUgfD0gZGV2LT5kcml2ZXItPnBy aW1lX2hhbmRsZV90b19mZCA/IERSTV9QUklNRV9DQVBfRVhQT1JUIDogMDsKIAkJcmV0dXJuIDA7 CisJY2FzZSBEUk1fQ0FQX1NZTkNPQko6CisJCXJlcS0+dmFsdWUgPSBkcm1fY29yZV9jaGVja19m ZWF0dXJlKGRldiwgRFJJVkVSX1NZTkNPQkopOworCQlyZXR1cm4gMDsKIAl9CiAKIAkvKiBPdGhl ciBjYXBzIG9ubHkgd29yayB3aXRoIEtNUyBkcml2ZXJzICovCkBAIC02NDEsNiArNjQ0LDE3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgZHJtX2lvY3Rsc1tdID0gewogCURS TV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfQVRPTUlDLCBkcm1fbW9kZV9hdG9taWNfaW9jdGws IERSTV9NQVNURVJ8RFJNX0NPTlRST0xfQUxMT1d8RFJNX1VOTE9DS0VEKSwKIAlEUk1fSU9DVExf REVGKERSTV9JT0NUTF9NT0RFX0NSRUFURVBST1BCTE9CLCBkcm1fbW9kZV9jcmVhdGVibG9iX2lv Y3RsLCBEUk1fQ09OVFJPTF9BTExPV3xEUk1fVU5MT0NLRUQpLAogCURSTV9JT0NUTF9ERUYoRFJN X0lPQ1RMX01PREVfREVTVFJPWVBST1BCTE9CLCBkcm1fbW9kZV9kZXN0cm95YmxvYl9pb2N0bCwg RFJNX0NPTlRST0xfQUxMT1d8RFJNX1VOTE9DS0VEKSwKKworCURSTV9JT0NUTF9ERUYoRFJNX0lP Q1RMX1NZTkNPQkpfQ1JFQVRFLCBkcm1fc3luY29ial9jcmVhdGVfaW9jdGwsCisJCSAgICAgIERS TV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9T WU5DT0JKX0RFU1RST1ksIGRybV9zeW5jb2JqX2Rlc3Ryb3lfaW9jdGwsCisJCSAgICAgIERSTV9V TkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9TWU5D T0JKX0hBTkRMRV9UT19GRCwgZHJtX3N5bmNvYmpfaGFuZGxlX3RvX2ZkX2lvY3RsLAorCQkgICAg ICBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9D VExfU1lOQ09CSl9GRF9UT19IQU5ETEUsIGRybV9zeW5jb2JqX2ZkX3RvX2hhbmRsZV9pb2N0bCwK KwkJICAgICAgRFJNX1VOTE9DS0VEfERSTV9SRU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUYo RFJNX0lPQ1RMX1NZTkNPQkpfSU5GTywgZHJtX3N5bmNvYmpfaW5mb19pb2N0bCwKKwkJICAgICAg RFJNX1VOTE9DS0VEfERSTV9SRU5ERVJfQUxMT1cpLAogfTsKIAogI2RlZmluZSBEUk1fQ09SRV9J T0NUTF9DT1VOVAlBUlJBWV9TSVpFKCBkcm1faW9jdGxzICkKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fc3luY29iai5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9zeW5jb2JqLmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTNhMWFjZQotLS0gL2Rldi9udWxsCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3luY29iai5jCkBAIC0wLDAgKzEsMjU3IEBACisvKgor ICogQ29weXJpZ2h0IMKpIDIwMTcgUmVkIEhhdAorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5 IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBj b3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAo dGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0 cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1 c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2Us CisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBl cnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3Vi amVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHly aWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4 dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0 YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJF IElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJF U1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJB TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQVVU SE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdF UyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFD VCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05O RUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKKyAq IElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOgorICoKKyAqLworCisvKioKKyAqIERP QzogT3ZlcnZpZXcKKyAqCisgKiBEUk0gc3luY2hyb25pc2F0aW9uIG9iamVjdHMgKHN5bmNvYmop IGFyZSB3cmFwcGVycyBmb3Igc3luY19maWxlIG9iamVjdHMsCisgKiB0aGF0IGRvbid0IHVzZSBm ZCBzcGFjZSwgYW5kIGNhbiBiZSBjb252ZXJ0ZWQgdG8vZnJvbSBzeW5jX2ZpbGUgZmRzLgorICoK KyAqIERlcGVuZGluZyBvbiB0aGUgc3luYyBvYmplY3QgdHlwZSwgdGhleSBjYW4gZXhwb3NlIGRp ZmZlcmVudCBzeW5jX2ZpbGUKKyAqIHNlbWFudGljcyBhbmQgcmVzdHJpY3Rpb25zLgorICoKKyAq IFRoZWlyIHByaW1hcnkgdXNlLWNhc2UgaXMgdG8gaW1wbGVtZW50IFZ1bGthbiBzaGFyZWQgc2Vt YXBob3Jlcy4KKyAqLworCisjaW5jbHVkZSA8ZHJtL2RybVAuaD4KKyNpbmNsdWRlIDxsaW51eC9z eW5jX2ZpbGUuaD4KKyNpbmNsdWRlICJkcm1faW50ZXJuYWwuaCIKKworc3RhdGljIHN0cnVjdCBz eW5jX2ZpbGUgKmRybV9zeW5jb2JqX2ZpbGVfbG9va3VwKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9w cml2YXRlLAorCQkJCQkJIHUzMiBoYW5kbGUpCit7CisJc3RydWN0IHN5bmNfZmlsZSAqc3luY19m aWxlOworCisJc3Bpbl9sb2NrKCZmaWxlX3ByaXZhdGUtPnN5bmNvYmpfdGFibGVfbG9jayk7CisK KwkvKiBDaGVjayBpZiB3ZSBjdXJyZW50bHkgaGF2ZSBhIHJlZmVyZW5jZSBvbiB0aGUgb2JqZWN0 ICovCisJc3luY19maWxlID0gaWRyX2ZpbmQoJmZpbGVfcHJpdmF0ZS0+c3luY29ial9pZHIsIGhh bmRsZSk7CisKKwlzcGluX3VubG9jaygmZmlsZV9wcml2YXRlLT5zeW5jb2JqX3RhYmxlX2xvY2sp OworCisJcmV0dXJuIHN5bmNfZmlsZTsKK30KKworc3RhdGljIGludCBkcm1fc3luY29ial9jcmVh dGUoc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUsCisJCQkJICB1bnNpZ25lZCB0eXBlLAor CQkJCSAgdW5zaWduZWQgZmxhZ3MsIHUzMiAqaGFuZGxlKQoreworCXN0cnVjdCBzeW5jX2ZpbGUg KnN5bmNfZmlsZTsKKwlpbnQgcmV0OworCisJcmV0ID0gc3luY19maWxlX3ZhbGlkYXRlX3R5cGVf ZmxhZ3ModHlwZSwgZmxhZ3MpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlzeW5jX2Zp bGUgPSBzeW5jX2ZpbGVfYWxsb2ModHlwZSwgZmxhZ3MpOworCWlmICghc3luY19maWxlKQorCQly ZXR1cm4gLUVOT01FTTsKKworCWlkcl9wcmVsb2FkKEdGUF9LRVJORUwpOworCXNwaW5fbG9jaygm ZmlsZV9wcml2YXRlLT5zeW5jb2JqX3RhYmxlX2xvY2spOworCXJldCA9IGlkcl9hbGxvYygmZmls ZV9wcml2YXRlLT5zeW5jb2JqX2lkciwgc3luY19maWxlLCAxLCAwLCBHRlBfTk9XQUlUKTsKKwlz cGluX3VubG9jaygmZmlsZV9wcml2YXRlLT5zeW5jb2JqX3RhYmxlX2xvY2spOworCisJaWRyX3By ZWxvYWRfZW5kKCk7CisKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCSpoYW5kbGUg PSByZXQ7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGRybV9zeW5jb2JqX2Rlc3Ryb3ko c3RydWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUsCisJCQkJdTMyIGhhbmRsZSkKK3sKKwlzdHJ1 Y3Qgc3luY19maWxlICpzeW5jX2ZpbGUgPSBkcm1fc3luY29ial9maWxlX2xvb2t1cChmaWxlX3By aXZhdGUsIGhhbmRsZSk7CisJaWYgKCFzeW5jX2ZpbGUpCisJCXJldHVybjsKKworCXNwaW5fbG9j aygmZmlsZV9wcml2YXRlLT5zeW5jb2JqX3RhYmxlX2xvY2spOworCWlkcl9yZW1vdmUoJmZpbGVf cHJpdmF0ZS0+c3luY29ial9pZHIsIGhhbmRsZSk7CisJc3Bpbl91bmxvY2soJmZpbGVfcHJpdmF0 ZS0+c3luY29ial90YWJsZV9sb2NrKTsKKworCWZwdXQoc3luY19maWxlLT5maWxlKTsKK30KKwor c3RhdGljIGludCBkcm1fc3luY29ial9oYW5kbGVfdG9fZmQoc3RydWN0IGRybV9maWxlICpmaWxl X3ByaXZhdGUsCisJCQkJICAgIHUzMiBoYW5kbGUsIGludCAqZmQpCit7CisJc3RydWN0IHN5bmNf ZmlsZSAqc3luY19maWxlID0gZHJtX3N5bmNvYmpfZmlsZV9sb29rdXAoZmlsZV9wcml2YXRlLCBo YW5kbGUpOworCWludCByZXQ7CisJaWYgKCFzeW5jX2ZpbGUpCisJCXJldHVybiAtRUlOVkFMOwor CisJcmV0ID0gZ2V0X3VudXNlZF9mZF9mbGFncyhPX0NMT0VYRUMpOworCWlmIChyZXQgPCAwKQor CQlyZXR1cm4gcmV0OworCWZkX2luc3RhbGwocmV0LCBzeW5jX2ZpbGUtPmZpbGUpOworCSpmZCA9 IHJldDsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBkcm1fc3luY29ial9mZF90b19oYW5k bGUoc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUsCisJCQkJICAgIGludCBmZCwgdTMyICpo YW5kbGUpCit7CisJc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlID0gc3luY19maWxlX2ZkZ2V0 KGZkKTsKKwlpbnQgcmV0OworCWlmICghc3luY19maWxlKQorCQlyZXR1cm4gLUVJTlZBTDsKKwlp ZHJfcHJlbG9hZChHRlBfS0VSTkVMKTsKKwlzcGluX2xvY2soJmZpbGVfcHJpdmF0ZS0+c3luY29i al90YWJsZV9sb2NrKTsKKwlyZXQgPSBpZHJfYWxsb2MoJmZpbGVfcHJpdmF0ZS0+c3luY29ial9p ZHIsIHN5bmNfZmlsZSwgMSwgMCwgR0ZQX05PV0FJVCk7CisJc3Bpbl91bmxvY2soJmZpbGVfcHJp dmF0ZS0+c3luY29ial90YWJsZV9sb2NrKTsKKwlpZHJfcHJlbG9hZF9lbmQoKTsKKworCWlmIChy ZXQgPCAwKSB7CisJCWZwdXQoc3luY19maWxlLT5maWxlKTsKKwkJcmV0dXJuIHJldDsKKwl9CisJ KmhhbmRsZSA9IHJldDsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBkcm1fc3luY29ial9p bmZvKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlLAorCQkJICAgIHUzMiBoYW5kbGUsIHUz MiAqdHlwZSwgdTMyICpmbGFncykKK3sKKwlzdHJ1Y3Qgc3luY19maWxlICpzeW5jX2ZpbGUgPSBk cm1fc3luY29ial9maWxlX2xvb2t1cChmaWxlX3ByaXZhdGUsIGhhbmRsZSk7CisKKwlpZiAoIXN5 bmNfZmlsZSkKKwkJcmV0dXJuIC1FSU5WQUw7CisJKnR5cGUgPSBzeW5jX2ZpbGUtPnR5cGU7CisJ KmZsYWdzID0gc3luY19maWxlLT5mbGFnczsKKwlyZXR1cm4gMDsKK30KKworLyoqCisgKiBkcm1f c3luY29ial9vcGVuIC0gaW5pdGFsaXplcyBzeW5jb2JqIGZpbGUtcHJpdmF0ZSBzdHJ1Y3R1cmVz IGF0IGRldm5vZGUgb3BlbiB0aW1lCisgKiBAZGV2OiBkcm1fZGV2aWNlIHdoaWNoIGlzIGJlaW5n IG9wZW5lZCBieSB1c2Vyc3BhY2UKKyAqIEBmaWxlX3ByaXZhdGU6IGRybSBmaWxlLXByaXZhdGUg c3RydWN0dXJlIHRvIHNldCB1cAorICoKKyAqIENhbGxlZCBhdCBkZXZpY2Ugb3BlbiB0aW1lLCBz ZXRzIHVwIHRoZSBzdHJ1Y3R1cmUgZm9yIGhhbmRsaW5nIHJlZmNvdW50aW5nCisgKiBvZiBzeW5j IG9iamVjdHMuCisgKi8KK3ZvaWQKK2RybV9zeW5jb2JqX29wZW4oc3RydWN0IGRybV9maWxlICpm aWxlX3ByaXZhdGUpCit7CisJaWRyX2luaXQoJmZpbGVfcHJpdmF0ZS0+c3luY29ial9pZHIpOwor CXNwaW5fbG9ja19pbml0KCZmaWxlX3ByaXZhdGUtPnN5bmNvYmpfdGFibGVfbG9jayk7Cit9CisK K3N0YXRpYyBpbnQKK2RybV9zeW5jb2JqX3JlbGVhc2VfaGFuZGxlKGludCBpZCwgdm9pZCAqcHRy LCB2b2lkICpkYXRhKQoreworCXN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZSA9IHB0cjsKKwor CWZwdXQoc3luY19maWxlLT5maWxlKTsKKwlyZXR1cm4gMDsKK30KKworLyoqCisgKiBkcm1fc3lu Y29ial9yZWxlYXNlIC0gcmVsZWFzZSBmaWxlLXByaXZhdGUgc3luYyBvYmplY3QgcmVzb3VyY2Vz CisgKiBAZGV2OiBkcm1fZGV2aWNlIHdoaWNoIGlzIGJlaW5nIGNsb3NlZCBieSB1c2Vyc3BhY2UK KyAqIEBmaWxlX3ByaXZhdGU6IGRybSBmaWxlLXByaXZhdGUgc3RydWN0dXJlIHRvIGNsZWFuIHVw CisgKgorICogQ2FsbGVkIGF0IGNsb3NlIHRpbWUgd2hlbiB0aGUgZmlscCBpcyBnb2luZyBhd2F5 LgorICoKKyAqIFJlbGVhc2VzIGFueSByZW1haW5pbmcgcmVmZXJlbmNlcyBvbiBvYmplY3RzIGJ5 IHRoaXMgZmlscC4KKyAqLwordm9pZAorZHJtX3N5bmNvYmpfcmVsZWFzZShzdHJ1Y3QgZHJtX2Zp bGUgKmZpbGVfcHJpdmF0ZSkKK3sKKwlpZHJfZm9yX2VhY2goJmZpbGVfcHJpdmF0ZS0+c3luY29i al9pZHIsCisJCSAgICAgJmRybV9zeW5jb2JqX3JlbGVhc2VfaGFuZGxlLCBmaWxlX3ByaXZhdGUp OworCWlkcl9kZXN0cm95KCZmaWxlX3ByaXZhdGUtPnN5bmNvYmpfaWRyKTsKK30KKworaW50Citk cm1fc3luY29ial9jcmVhdGVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0 YSwKKwkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX3N5 bmNvYmpfY3JlYXRlX2luZm8gKmFyZ3MgPSBkYXRhOworCisJaWYgKCFkcm1fY29yZV9jaGVja19m ZWF0dXJlKGRldiwgRFJJVkVSX1NZTkNPQkopKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCXJldHVy biBkcm1fc3luY29ial9jcmVhdGUoZmlsZV9wcml2YXRlLCBhcmdzLT50eXBlLAorCQkJCSBhcmdz LT5mbGFncywgJmFyZ3MtPmhhbmRsZSk7Cit9CisKK2ludAorZHJtX3N5bmNvYmpfZGVzdHJveV9p b2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJICBzdHJ1Y3QgZHJt X2ZpbGUgKmZpbGVfcHJpdmF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX3N5bmNvYmpfZGVzdHJveSAqYXJn cyA9IGRhdGE7CisKKwlpZiAoIWRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfU1lO Q09CSikpCisJCXJldHVybiAtRU5PREVWOworCisJZHJtX3N5bmNvYmpfZGVzdHJveShmaWxlX3By aXZhdGUsIGFyZ3MtPmhhbmRsZSk7CisJcmV0dXJuIDA7Cit9CisKKworaW50Citkcm1fc3luY29i al9oYW5kbGVfdG9fZmRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwK KwkJCQkgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX3N5 bmNvYmpfaGFuZGxlICphcmdzID0gZGF0YTsKKworCWlmICghZHJtX2NvcmVfY2hlY2tfZmVhdHVy ZShkZXYsIERSSVZFUl9TWU5DT0JKKSkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlyZXR1cm4gZHJt X3N5bmNvYmpfaGFuZGxlX3RvX2ZkKGZpbGVfcHJpdmF0ZSwgYXJncy0+aGFuZGxlLAorCQkJCQkm YXJncy0+ZmQpOworCit9CisKK2ludAorZHJtX3N5bmNvYmpfZmRfdG9faGFuZGxlX2lvY3RsKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkJICAgc3RydWN0IGRybV9maWxl ICpmaWxlX3ByaXZhdGUpCit7CisJc3RydWN0IGRybV9zeW5jb2JqX2hhbmRsZSAqYXJncyA9IGRh dGE7CisKKwlpZiAoIWRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfU1lOQ09CSikp CisJCXJldHVybiAtRU5PREVWOworCisJcmV0dXJuIGRybV9zeW5jb2JqX2ZkX3RvX2hhbmRsZShm aWxlX3ByaXZhdGUsIGFyZ3MtPmZkLAorCQkJCQkmYXJncy0+aGFuZGxlKTsKKworfQorCitpbnQK K2RybV9zeW5jb2JqX2luZm9faW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0 YSwKKwkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKQoreworCXN0cnVjdCBk cm1fc3luY29ial9jcmVhdGVfaW5mbyAqYXJncyA9IGRhdGE7CisKKwlpZiAoIWRybV9jb3JlX2No ZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfU1lOQ09CSikpCisJCXJldHVybiAtRU5PREVWOworCisJ cmV0dXJuIGRybV9zeW5jb2JqX2luZm8oZmlsZV9wcml2YXRlLCBhcmdzLT5oYW5kbGUsCisJCQkJ JmFyZ3MtPnR5cGUsICZhcmdzLT5mbGFncyk7Cit9CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9k cm1QLmggYi9pbmNsdWRlL2RybS9kcm1QLmgKaW5kZXggNjEwNWMwNS4uMWQ0OGY2ZiAxMDA2NDQK LS0tIGEvaW5jbHVkZS9kcm0vZHJtUC5oCisrKyBiL2luY2x1ZGUvZHJtL2RybVAuaApAQCAtNDA1 LDYgKzQwNSwxMSBAQCBzdHJ1Y3QgZHJtX2ZpbGUgewogCS8qKiBMb2NrIGZvciBzeW5jaHJvbml6 YXRpb24gb2YgYWNjZXNzIHRvIG9iamVjdF9pZHIuICovCiAJc3BpbmxvY2tfdCB0YWJsZV9sb2Nr OwogCisJLyoqIE1hcHBpbmcgb2Ygc3luYyBvYmplY3QgaGFuZGxlcyB0byBvYmplY3QgcG9pbnRl cnMuICovCisJc3RydWN0IGlkciBzeW5jb2JqX2lkcjsKKwkvKiogTG9jayBmb3Igc3luY2hyb25p emF0aW9uIG9mIGFjY2VzcyB0byBzeW5jb2JqX2lkci4gKi8KKwlzcGlubG9ja190IHN5bmNvYmpf dGFibGVfbG9jazsKKwogCXN0cnVjdCBmaWxlICpmaWxwOwogCXZvaWQgKmRyaXZlcl9wcml2Owog CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZHJ2LmggYi9pbmNsdWRlL2RybS9kcm1fZHJ2 LmgKaW5kZXggNTY5OWY0Mi4uNDhmZjA2YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2Ry di5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9kcnYuaApAQCAtNTMsNiArNTMsNyBAQCBzdHJ1Y3Qg ZHJtX21vZGVfY3JlYXRlX2R1bWI7CiAjZGVmaW5lIERSSVZFUl9SRU5ERVIJCQkweDgwMDAKICNk ZWZpbmUgRFJJVkVSX0FUT01JQwkJCTB4MTAwMDAKICNkZWZpbmUgRFJJVkVSX0tNU19MRUdBQ1lf Q09OVEVYVAkweDIwMDAwCisjZGVmaW5lIERSSVZFUl9TWU5DT0JKICAgICAgICAgICAgICAgICAg MHg0MDAwMAogCiAvKioKICAqIHN0cnVjdCBkcm1fZHJpdmVyIC0gRFJNIGRyaXZlciBzdHJ1Y3R1 cmUKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJt L2RybS5oCmluZGV4IGIyYzUyODQuLjI2YjdlODYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9k cm0vZHJtLmgKKysrIGIvaW5jbHVkZS91YXBpL2RybS9kcm0uaApAQCAtNjQ3LDYgKzY0Nyw3IEBA IHN0cnVjdCBkcm1fZ2VtX29wZW4gewogI2RlZmluZSBEUk1fQ0FQX0NVUlNPUl9IRUlHSFQJCTB4 OQogI2RlZmluZSBEUk1fQ0FQX0FEREZCMl9NT0RJRklFUlMJMHgxMAogI2RlZmluZSBEUk1fQ0FQ X1BBR0VfRkxJUF9UQVJHRVQJMHgxMQorI2RlZmluZSBEUk1fQ0FQX1NZTkNPQkoJCTB4MTIKIAog LyoqIERSTV9JT0NUTF9HRVRfQ0FQIGlvY3RsIGFyZ3VtZW50IHR5cGUgKi8KIHN0cnVjdCBkcm1f Z2V0X2NhcCB7CkBAIC02OTYsNiArNjk3LDI2IEBAIHN0cnVjdCBkcm1fcHJpbWVfaGFuZGxlIHsK IAlfX3MzMiBmZDsKIH07CiAKK3N0cnVjdCBkcm1fc3luY29ial9jcmVhdGVfaW5mbyB7CisJX191 MzIgaGFuZGxlOworCV9fdTMyIHR5cGU7CisJX191MzIgZmxhZ3M7CisJX191MzIgcGFkOworfTsK Kworc3RydWN0IGRybV9zeW5jb2JqX2Rlc3Ryb3kgeworCV9fdTMyIGhhbmRsZTsKKwlfX3UzMiBw YWQ7Cit9OworCitzdHJ1Y3QgZHJtX3N5bmNvYmpfaGFuZGxlIHsKKwlfX3UzMiBoYW5kbGU7CisJ LyoqIEZsYWdzLi4gb25seSBhcHBsaWNhYmxlIGZvciBoYW5kbGUtPmZkICovCisJX191MzIgZmxh Z3M7CisKKwlfX3MzMiBmZDsKK307CisKICNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQogfQogI2Vu ZGlmCkBAIC04MTQsNiArODM1LDEyIEBAIGV4dGVybiAiQyIgewogI2RlZmluZSBEUk1fSU9DVExf TU9ERV9DUkVBVEVQUk9QQkxPQglEUk1fSU9XUigweEJELCBzdHJ1Y3QgZHJtX21vZGVfY3JlYXRl X2Jsb2IpCiAjZGVmaW5lIERSTV9JT0NUTF9NT0RFX0RFU1RST1lQUk9QQkxPQglEUk1fSU9XUigw eEJFLCBzdHJ1Y3QgZHJtX21vZGVfZGVzdHJveV9ibG9iKQogCisjZGVmaW5lIERSTV9JT0NUTF9T WU5DT0JKX0NSRUFURQlEUk1fSU9XUigweEJGLCBzdHJ1Y3QgZHJtX3N5bmNvYmpfY3JlYXRlX2lu Zm8pCisjZGVmaW5lIERSTV9JT0NUTF9TWU5DT0JKX0RFU1RST1kJRFJNX0lPV1IoMHhDMCwgc3Ry dWN0IGRybV9zeW5jb2JqX2Rlc3Ryb3kpCisjZGVmaW5lIERSTV9JT0NUTF9TWU5DT0JKX0hBTkRM RV9UT19GRAlEUk1fSU9XUigweEMxLCBzdHJ1Y3QgZHJtX3N5bmNvYmpfaGFuZGxlKQorI2RlZmlu ZSBEUk1fSU9DVExfU1lOQ09CSl9GRF9UT19IQU5ETEUJRFJNX0lPV1IoMHhDMiwgc3RydWN0IGRy bV9zeW5jb2JqX2hhbmRsZSkKKyNkZWZpbmUgRFJNX0lPQ1RMX1NZTkNPQkpfSU5GTwkJRFJNX0lP V1IoMHhDMywgc3RydWN0IGRybV9zeW5jb2JqX2NyZWF0ZV9pbmZvKQorCiAvKioKICAqIERldmlj ZSBzcGVjaWZpYyBpb2N0bHMgc2hvdWxkIG9ubHkgYmUgaW4gdGhlaXIgcmVzcGVjdGl2ZSBoZWFk ZXJzCiAgKiBUaGUgZGV2aWNlIHNwZWNpZmljIGlvY3RsIHJhbmdlIGlzIGZyb20gMHg0MCB0byAw eDlmLgotLSAKMi45LjMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1k ZXZlbAo=