From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Christian=20K=C3=B6nig?= Subject: [PATCH 4/5] drm/radeon: add userptr flag to register MMU notifier v2 Date: Tue, 5 Aug 2014 16:11:06 +0200 Message-ID: <1407247867-7093-4-git-send-email-deathsimple@vodafone.de> References: <1407247867-7093-1-git-send-email-deathsimple@vodafone.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from pegasos-out.vodafone.de (pegasos-out.vodafone.de [80.84.1.38]) by gabe.freedesktop.org (Postfix) with ESMTP id C16CC89C18 for ; Tue, 5 Aug 2014 07:11:48 -0700 (PDT) In-Reply-To: <1407247867-7093-1-git-send-email-deathsimple@vodafone.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: alexdeucher@gmail.com Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgoKdjI6IHJl YmFzZWQsIGZpeCBtdXRleCB1bmxvY2sgaW4gZXJyb3IgcGF0aAoKU2lnbmVkLW9mZi1ieTogQ2hy aXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgotLS0KIGRyaXZlcnMvZ3B1 L2RybS9LY29uZmlnICAgICAgICAgICAgICAgIHwgICAxICsKIGRyaXZlcnMvZ3B1L2RybS9yYWRl b24vTWFrZWZpbGUgICAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bi5oICAgICAgICB8ICAxMiArKwogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGV2aWNl LmMgfCAgIDIgKwogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZ2VtLmMgICAgfCAgIDkg Ky0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX21uLmMgICAgIHwgMjcyICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25f b2JqZWN0LmMgfCAgIDEgKwogaW5jbHVkZS91YXBpL2RybS9yYWRlb25fZHJtLmggICAgICAgICAg fCAgIDEgKwogOCBmaWxlcyBjaGFuZ2VkLCAyOTggaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo LSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9tbi5j CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL0tjb25maWcgYi9kcml2ZXJzL2dwdS9kcm0v S2NvbmZpZwppbmRleCA5YjJlZWRjLi4yNzQ1Mjg0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vS2NvbmZpZworKysgYi9kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZwpAQCAtMTE1LDYgKzExNSw3 IEBAIGNvbmZpZyBEUk1fUkFERU9OCiAJc2VsZWN0IEhXTU9OCiAJc2VsZWN0IEJBQ0tMSUdIVF9D TEFTU19ERVZJQ0UKIAlzZWxlY3QgSU5URVJWQUxfVFJFRQorCXNlbGVjdCBNTVVfTk9USUZJRVIK IAloZWxwCiAJICBDaG9vc2UgdGhpcyBvcHRpb24gaWYgeW91IGhhdmUgYW4gQVRJIFJhZGVvbiBn cmFwaGljcyBjYXJkLiAgVGhlcmUKIAkgIGFyZSBib3RoIFBDSSBhbmQgQUdQIHZlcnNpb25zLiAg WW91IGRvbid0IG5lZWQgdG8gY2hvb3NlIHRoaXMgdG8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL01ha2VmaWxlCmlu ZGV4IDAwMTNhZDAuLmM3ZmExYWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v TWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9NYWtlZmlsZQpAQCAtODAsNyAr ODAsNyBAQCByYWRlb24teSArPSByYWRlb25fZGV2aWNlLm8gcmFkZW9uX2FzaWMubyByYWRlb25f a21zLm8gXAogCXI2MDBfZHBtLm8gcnM3ODBfZHBtLm8gcnY2eHhfZHBtLm8gcnY3NzBfZHBtLm8g cnY3MzBfZHBtLm8gcnY3NDBfZHBtLm8gXAogCXJ2NzcwX3NtYy5vIGN5cHJlc3NfZHBtLm8gYnRj X2RwbS5vIHN1bW9fZHBtLm8gc3Vtb19zbWMubyB0cmluaXR5X2RwbS5vIFwKIAl0cmluaXR5X3Nt Yy5vIG5pX2RwbS5vIHNpX3NtYy5vIHNpX2RwbS5vIGt2X3NtYy5vIGt2X2RwbS5vIGNpX3NtYy5v IFwKLQljaV9kcG0ubyBkY2U2X2FmbXQubyByYWRlb25fdm0ubyByYWRlb25fdWNvZGUubyByYWRl b25faWIubworCWNpX2RwbS5vIGRjZTZfYWZtdC5vIHJhZGVvbl92bS5vIHJhZGVvbl91Y29kZS5v IHJhZGVvbl9pYi5vIHJhZGVvbl9tbi5vCiAKICMgYWRkIGFzeW5jIERNQSBibG9jawogcmFkZW9u LXkgKz0gXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaCBiL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmgKaW5kZXggM2M2OTk5ZS4uNTExMTkxZiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbi5oCkBAIC02NSw2ICs2NSw3IEBACiAjaW5jbHVkZSA8bGludXgv bGlzdC5oPgogI2luY2x1ZGUgPGxpbnV4L2tyZWYuaD4KICNpbmNsdWRlIDxsaW51eC9pbnRlcnZh bF90cmVlLmg+CisjaW5jbHVkZSA8bGludXgvaGFzaHRhYmxlLmg+CiAKICNpbmNsdWRlIDx0dG0v dHRtX2JvX2FwaS5oPgogI2luY2x1ZGUgPHR0bS90dG1fYm9fZHJpdmVyLmg+CkBAIC00ODcsNiAr NDg4LDkgQEAgc3RydWN0IHJhZGVvbl9ibyB7CiAKIAlzdHJ1Y3QgdHRtX2JvX2ttYXBfb2JqCQlk bWFfYnVmX3ZtYXA7CiAJcGlkX3QJCQkJcGlkOworCisJc3RydWN0IHJhZGVvbl9tbgkJKm1uOwor CXN0cnVjdCBpbnRlcnZhbF90cmVlX25vZGUJbW5faXQ7CiB9OwogI2RlZmluZSBnZW1fdG9fcmFk ZW9uX2JvKGdvYmopIGNvbnRhaW5lcl9vZigoZ29iaiksIHN0cnVjdCByYWRlb25fYm8sIGdlbV9i YXNlKQogCkBAIC0xNzI1LDYgKzE3MjksMTEgQEAgdm9pZCByYWRlb25fdGVzdF9yaW5nX3N5bmMo c3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJCQkgICBzdHJ1Y3QgcmFkZW9uX3JpbmcgKmNw Qik7CiB2b2lkIHJhZGVvbl90ZXN0X3N5bmNpbmcoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYp OwogCisvKgorICogTU1VIE5vdGlmaWVyCisgKi8KK2ludCByYWRlb25fbW5fcmVnaXN0ZXIoc3Ry dWN0IHJhZGVvbl9ibyAqYm8sIHVuc2lnbmVkIGxvbmcgYWRkcik7Cit2b2lkIHJhZGVvbl9tbl91 bnJlZ2lzdGVyKHN0cnVjdCByYWRlb25fYm8gKmJvKTsKIAogLyoKICAqIERlYnVnZnMKQEAgLTIz NzIsNiArMjM4MSw5IEBAIHN0cnVjdCByYWRlb25fZGV2aWNlIHsKIAkvKiB0cmFja2luZyBwaW5u ZWQgbWVtb3J5ICovCiAJdTY0IHZyYW1fcGluX3NpemU7CiAJdTY0IGdhcnRfcGluX3NpemU7CisK KwlzdHJ1Y3QgbXV0ZXgJbW5fbG9jazsKKwlERUNMQVJFX0hBU0hUQUJMRShtbl9oYXNoLCA3KTsK IH07CiAKIGJvb2wgcmFkZW9uX2lzX3B4KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGV2aWNlLmMgYi9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl9kZXZpY2UuYwppbmRleCBjOGVhMDUwLi5jNThmODRmIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kZXZpY2UuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kZXZpY2UuYwpAQCAtMTI3MCw2ICsxMjcwLDggQEAg aW50IHJhZGVvbl9kZXZpY2VfaW5pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAlpbml0 X3J3c2VtKCZyZGV2LT5wbS5tY2xrX2xvY2spOwogCWluaXRfcndzZW0oJnJkZXYtPmV4Y2x1c2l2 ZV9sb2NrKTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZyZGV2LT5pcnEudmJsYW5rX3F1ZXVlKTsK KwltdXRleF9pbml0KCZyZGV2LT5tbl9sb2NrKTsKKwloYXNoX2luaXQocmRldi0+bW5faGFzaCk7 CiAJciA9IHJhZGVvbl9nZW1faW5pdChyZGV2KTsKIAlpZiAocikKIAkJcmV0dXJuIHI7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9nZW0uYyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX2dlbS5jCmluZGV4IDQ1MDY1NjAuLjJhNmZiZjEgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX2dlbS5jCkBAIC0yOTEsNyArMjkxLDggQEAgaW50IHJhZGVvbl9n ZW1fdXNlcnB0cl9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCiAJ LyogcmVqZWN0IHVua25vd24gZmxhZyB2YWx1ZXMgKi8KIAlpZiAoYXJncy0+ZmxhZ3MgJiB+KFJB REVPTl9HRU1fVVNFUlBUUl9SRUFET05MWSB8Ci0JICAgIFJBREVPTl9HRU1fVVNFUlBUUl9BTk9O T05MWSB8IFJBREVPTl9HRU1fVVNFUlBUUl9WQUxJREFURSkpCisJICAgIFJBREVPTl9HRU1fVVNF UlBUUl9BTk9OT05MWSB8IFJBREVPTl9HRU1fVVNFUlBUUl9WQUxJREFURSB8CisJICAgIFJBREVP Tl9HRU1fVVNFUlBUUl9SRUdJU1RFUikpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJLyogcmVhZG9u bHkgcGFnZXMgbm90IHRlc3RlZCBvbiBvbGRlciBoYXJkd2FyZSAqLwpAQCAtMzEyLDYgKzMxMywx MiBAQCBpbnQgcmFkZW9uX2dlbV91c2VycHRyX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHZvaWQgKmRhdGEsCiAJaWYgKHIpCiAJCWdvdG8gcmVsZWFzZV9vYmplY3Q7CiAKKwlpZiAoYXJn cy0+ZmxhZ3MgJiBSQURFT05fR0VNX1VTRVJQVFJfUkVHSVNURVIpIHsKKwkJciA9IHJhZGVvbl9t bl9yZWdpc3RlcihibywgYXJncy0+YWRkcik7CisJCWlmIChyKQorCQkJZ290byByZWxlYXNlX29i amVjdDsKKwl9CisKIAlpZiAoYXJncy0+ZmxhZ3MgJiBSQURFT05fR0VNX1VTRVJQVFJfVkFMSURB VEUpIHsKIAkJZG93bl9yZWFkKCZjdXJyZW50LT5tbS0+bW1hcF9zZW0pOwogCQlyID0gcmFkZW9u X2JvX3Jlc2VydmUoYm8sIHRydWUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb25fbW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX21uLmMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDE1N2JjMgotLS0gL2Rldi9udWxsCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX21uLmMKQEAgLTAsMCArMSwyNzIgQEAKKy8q CisgKiBDb3B5cmlnaHQgMjAxNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKiBBbGwg UmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZy ZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMg c29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisgKiAiU29m dHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5j bHVkaW5nCisgKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1v ZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisgKiBkaXN0cmlidXRlLCBzdWIgbGljZW5zZSwgYW5kL29y IHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvCisgKiBwZXJtaXQgcGVyc29ucyB0 byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyAq IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklE RUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICog SU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBN RVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQg Tk9OLUlORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9M REVSUywgQVVUSE9SUyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJ TSwKKyAqIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBP RiBDT05UUkFDVCwgVE9SVCBPUgorICogT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBP UiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRQorICogVVNFIE9SIE9USEVS IERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5v dGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZQorICogbmV4dCBw YXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg cG9ydGlvbnMKKyAqIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKi8KKy8qCisgKiBBdXRob3JzOgor ICogICAgQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgorICovCisK KyNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgor I2luY2x1ZGUgPGxpbnV4L21tdV9ub3RpZmllci5oPgorI2luY2x1ZGUgPGRybS9kcm1QLmg+Cisj aW5jbHVkZSA8ZHJtL2RybS5oPgorCisjaW5jbHVkZSAicmFkZW9uLmgiCisKK3N0cnVjdCByYWRl b25fbW4geworCS8qIGNvbnN0YW50IGFmdGVyIGluaXRpYWxpc2F0aW9uICovCisJc3RydWN0IHJh ZGVvbl9kZXZpY2UJKnJkZXY7CisJc3RydWN0IG1tX3N0cnVjdAkqbW07CisJc3RydWN0IG1tdV9u b3RpZmllcgltbjsKKworCS8qIG9ubHkgdXNlZCBvbiBkZXN0cnVjdGlvbiAqLworCXN0cnVjdCB3 b3JrX3N0cnVjdAl3b3JrOworCisJLyogcHJvdGVjdGVkIGJ5IHJkZXYtPm1uX2xvY2sgKi8KKwlz dHJ1Y3QgaGxpc3Rfbm9kZQlub2RlOworCisJLyogb2JqZWN0cyBwcm90ZWN0ZWQgYnkgbG9jayAq LworCXN0cnVjdCBtdXRleAkJbG9jazsKKwlzdHJ1Y3QgcmJfcm9vdAkJb2JqZWN0czsKK307CisK Ky8qKgorICogcmFkZW9uX21uX2Rlc3Ryb3kgLSBkZXN0cm95IHRoZSBybW4KKyAqCisgKiBAd29y azogcHJldmlvdXNseSBzaGVkdWxlZCB3b3JrIGl0ZW0KKyAqCisgKiBMYXp5IGRlc3Ryb3lzIHRo ZSBub3RpZmllciBmcm9tIGEgd29yayBpdGVtCisgKi8KK3N0YXRpYyB2b2lkIHJhZGVvbl9tbl9k ZXN0cm95KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKK3sKKwlzdHJ1Y3QgcmFkZW9uX21uICpy bW4gPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IHJhZGVvbl9tbiwgd29yayk7CisJc3RydWN0 IHJhZGVvbl9kZXZpY2UgKnJkZXYgPSBybW4tPnJkZXY7CisJc3RydWN0IHJhZGVvbl9ibyAqYm8s ICpuZXh0OworCisJbXV0ZXhfbG9jaygmcmRldi0+bW5fbG9jayk7CisJbXV0ZXhfbG9jaygmcm1u LT5sb2NrKTsKKwloYXNoX2RlbCgmcm1uLT5ub2RlKTsKKwlyYnRyZWVfcG9zdG9yZGVyX2Zvcl9l YWNoX2VudHJ5X3NhZmUoYm8sIG5leHQsICZybW4tPm9iamVjdHMsIG1uX2l0LnJiKSB7CisJCWlu dGVydmFsX3RyZWVfcmVtb3ZlKCZiby0+bW5faXQsICZybW4tPm9iamVjdHMpOworCQliby0+bW4g PSBOVUxMOworCX0KKwltdXRleF91bmxvY2soJnJtbi0+bG9jayk7CisJbXV0ZXhfdW5sb2NrKCZy ZGV2LT5tbl9sb2NrKTsKKwltbXVfbm90aWZpZXJfdW5yZWdpc3Rlcigmcm1uLT5tbiwgcm1uLT5t bSk7CisJa2ZyZWUocm1uKTsKK30KKworLyoqCisgKiByYWRlb25fbW5fcmVsZWFzZSAtIGNhbGxi YWNrIHRvIG5vdGlmeSBhYm91dCBtbSBkZXN0cnVjdGlvbgorICoKKyAqIEBtbjogb3VyIG5vdGlm aWVyCisgKiBAbW46IHRoZSBtbSB0aGlzIGNhbGxiYWNrIGlzIGFib3V0CisgKgorICogU2hlZHVs ZSBhIHdvcmsgaXRlbSB0byBsYXp5IGRlc3Ryb3kgb3VyIG5vdGlmaWVyLgorICovCitzdGF0aWMg dm9pZCByYWRlb25fbW5fcmVsZWFzZShzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwKKwkJCSAgICAg IHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQoreworCXN0cnVjdCByYWRlb25fbW4gKnJtbiA9IGNvbnRh aW5lcl9vZihtbiwgc3RydWN0IHJhZGVvbl9tbiwgbW4pOworCUlOSVRfV09SSygmcm1uLT53b3Jr LCByYWRlb25fbW5fZGVzdHJveSk7CisJc2NoZWR1bGVfd29yaygmcm1uLT53b3JrKTsKK30KKwor LyoqCisgKiByYWRlb25fbW5faW52YWxpZGF0ZV9yYW5nZV9zdGFydCAtIGNhbGxiYWNrIHRvIG5v dGlmeSBhYm91dCBtbSBjaGFuZ2UKKyAqCisgKiBAbW46IG91ciBub3RpZmllcgorICogQG1uOiB0 aGUgbW0gdGhpcyBjYWxsYmFjayBpcyBhYm91dAorICogQHN0YXJ0OiBzdGFydCBvZiB1cGRhdGVk IHJhbmdlCisgKiBAZW5kOiBlbmQgb2YgdXBkYXRlZCByYW5nZQorICoKKyAqIFdlIGJsb2NrIGZv ciBhbGwgQk9zIGJldHdlZW4gc3RhcnQgYW5kIGVuZCB0byBiZSBpZGxlIGFuZAorICogdW5tYXAg dGhlbSBieSBtb3ZlIHRoZW0gaW50byBzeXN0ZW0gZG9tYWluIGFnYWluLgorICovCitzdGF0aWMg dm9pZCByYWRlb25fbW5faW52YWxpZGF0ZV9yYW5nZV9zdGFydChzdHJ1Y3QgbW11X25vdGlmaWVy ICptbiwKKwkJCQkJICAgICBzdHJ1Y3QgbW1fc3RydWN0ICptbSwKKwkJCQkJICAgICB1bnNpZ25l ZCBsb25nIHN0YXJ0LAorCQkJCQkgICAgIHVuc2lnbmVkIGxvbmcgZW5kKQoreworCXN0cnVjdCBy YWRlb25fbW4gKnJtbiA9IGNvbnRhaW5lcl9vZihtbiwgc3RydWN0IHJhZGVvbl9tbiwgbW4pOwor CXN0cnVjdCBpbnRlcnZhbF90cmVlX25vZGUgKml0OworCisJLyogbm90aWZpY2F0aW9uIGlzIGV4 Y2x1c2l2ZSwgYnV0IGludGVydmFsIGlzIGluY2x1c2l2ZSAqLworCWVuZCAtPSAxOworCisJbXV0 ZXhfbG9jaygmcm1uLT5sb2NrKTsKKworCWl0ID0gaW50ZXJ2YWxfdHJlZV9pdGVyX2ZpcnN0KCZy bW4tPm9iamVjdHMsIHN0YXJ0LCBlbmQpOworCXdoaWxlIChpdCkgeworCQlzdHJ1Y3QgcmFkZW9u X2JvICpibzsKKwkJaW50IHI7CisKKwkJYm8gPSBjb250YWluZXJfb2YoaXQsIHN0cnVjdCByYWRl b25fYm8sIG1uX2l0KTsKKwkJaXQgPSBpbnRlcnZhbF90cmVlX2l0ZXJfbmV4dChpdCwgc3RhcnQs IGVuZCk7CisKKwkJciA9IHJhZGVvbl9ib19yZXNlcnZlKGJvLCB0cnVlKTsKKwkJaWYgKHIpIHsK KwkJCURSTV9FUlJPUigiKCVkKSBmYWlsZWQgdG8gcmVzZXJ2ZSB1c2VyIGJvXG4iLCByKTsKKwkJ CWNvbnRpbnVlOworCQl9CisKKwkJaWYgKGJvLT50Ym8uc3luY19vYmopIHsKKwkJCXIgPSByYWRl b25fZmVuY2Vfd2FpdChiby0+dGJvLnN5bmNfb2JqLCBmYWxzZSk7CisJCQlpZiAocikKKwkJCQlE Uk1fRVJST1IoIiglZCkgZmFpbGVkIHRvIHdhaXQgZm9yIHVzZXIgYm9cbiIsIHIpOworCQl9CisK KwkJcmFkZW9uX3R0bV9wbGFjZW1lbnRfZnJvbV9kb21haW4oYm8sIFJBREVPTl9HRU1fRE9NQUlO X0NQVSk7CisJCXIgPSB0dG1fYm9fdmFsaWRhdGUoJmJvLT50Ym8sICZiby0+cGxhY2VtZW50LCBm YWxzZSwgZmFsc2UpOworCQlpZiAocikKKwkJCURSTV9FUlJPUigiKCVkKSBmYWlsZWQgdG8gdmFs aWRhdGUgdXNlciBib1xuIiwgcik7CisKKwkJcmFkZW9uX2JvX3VucmVzZXJ2ZShibyk7CisJfQor CQorCW11dGV4X3VubG9jaygmcm1uLT5sb2NrKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBt bXVfbm90aWZpZXJfb3BzIHJhZGVvbl9tbl9vcHMgPSB7CisJLnJlbGVhc2UgPSByYWRlb25fbW5f cmVsZWFzZSwKKwkuaW52YWxpZGF0ZV9yYW5nZV9zdGFydCA9IHJhZGVvbl9tbl9pbnZhbGlkYXRl X3JhbmdlX3N0YXJ0LAorfTsKKworLyoqCisgKiByYWRlb25fbW5fZ2V0IC0gY3JlYXRlIG5vdGlm aWVyIGNvbnRleHQKKyAqCisgKiBAcmRldjogcmFkZW9uIGRldmljZSBwb2ludGVyCisgKgorICog Q3JlYXRlcyBhIG5vdGlmaWVyIGNvbnRleHQgZm9yIGN1cnJlbnQtPm1tLgorICovCitzdGF0aWMg c3RydWN0IHJhZGVvbl9tbiAqcmFkZW9uX21uX2dldChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRl dikKK3sKKwlzdHJ1Y3QgbW1fc3RydWN0ICptbSA9IGN1cnJlbnQtPm1tOworCXN0cnVjdCByYWRl b25fbW4gKnJtbjsKKwlpbnQgcjsKKworCWRvd25fd3JpdGUoJm1tLT5tbWFwX3NlbSk7CisJbXV0 ZXhfbG9jaygmcmRldi0+bW5fbG9jayk7CisKKwloYXNoX2Zvcl9lYWNoX3Bvc3NpYmxlKHJkZXYt Pm1uX2hhc2gsIHJtbiwgbm9kZSwgKHVuc2lnbmVkIGxvbmcpbW0pCisJCWlmIChybW4tPm1tID09 IG1tKQorCQkJZ290byByZWxlYXNlX2xvY2tzOworCisJcm1uID0ga3phbGxvYyhzaXplb2YoKnJt biksIEdGUF9LRVJORUwpOworCWlmICghcm1uKSB7CisJCXJtbiA9IEVSUl9QVFIoLUVOT01FTSk7 CisJCWdvdG8gcmVsZWFzZV9sb2NrczsKKwl9CisKKwlybW4tPnJkZXYgPSByZGV2OworCXJtbi0+ bW0gPSBtbTsKKwlybW4tPm1uLm9wcyA9ICZyYWRlb25fbW5fb3BzOworCW11dGV4X2luaXQoJnJt bi0+bG9jayk7CisJcm1uLT5vYmplY3RzID0gUkJfUk9PVDsKKwkKKwlyID0gX19tbXVfbm90aWZp ZXJfcmVnaXN0ZXIoJnJtbi0+bW4sIG1tKTsKKwlpZiAocikKKwkJZ290byBmcmVlX3JtbjsKKwor CWhhc2hfYWRkKHJkZXYtPm1uX2hhc2gsICZybW4tPm5vZGUsICh1bnNpZ25lZCBsb25nKW1tKTsK KworcmVsZWFzZV9sb2NrczoKKwltdXRleF91bmxvY2soJnJkZXYtPm1uX2xvY2spOworCXVwX3dy aXRlKCZtbS0+bW1hcF9zZW0pOworCisJcmV0dXJuIHJtbjsKKworZnJlZV9ybW46CisJbXV0ZXhf dW5sb2NrKCZyZGV2LT5tbl9sb2NrKTsKKwl1cF93cml0ZSgmbW0tPm1tYXBfc2VtKTsKKwlrZnJl ZShybW4pOworCisJcmV0dXJuIEVSUl9QVFIocik7Cit9CisKKy8qKgorICogcmFkZW9uX21uX3Jl Z2lzdGVyIC0gcmVnaXN0ZXIgYSBCTyBmb3Igbm90aWZpZXIgdXBkYXRlcworICoKKyAqIEBibzog cmFkZW9uIGJ1ZmZlciBvYmplY3QKKyAqIEBhZGRyOiB1c2VycHRyIGFkZHIgd2Ugc2hvdWxkIG1v bml0b3IKKyAqCisgKiBSZWdpc3RlcnMgYW4gTU1VIG5vdGlmaWVyIGZvciB0aGUgZ2l2ZW4gQk8g YXQgdGhlIHNwZWNpZmllZCBhZGRyZXNzLgorICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIC1FUlJO TyBpZiBhbnl0aGluZyBnb2VzIHdyb25nLgorICovCitpbnQgcmFkZW9uX21uX3JlZ2lzdGVyKHN0 cnVjdCByYWRlb25fYm8gKmJvLCB1bnNpZ25lZCBsb25nIGFkZHIpCit7CisJdW5zaWduZWQgbG9u ZyBlbmQgPSBhZGRyICsgcmFkZW9uX2JvX3NpemUoYm8pIC0gMTsKKwlzdHJ1Y3QgcmFkZW9uX2Rl dmljZSAqcmRldiA9IGJvLT5yZGV2OworCXN0cnVjdCByYWRlb25fbW4gKnJtbjsKKwlzdHJ1Y3Qg aW50ZXJ2YWxfdHJlZV9ub2RlICppdDsKKworCXJtbiA9IHJhZGVvbl9tbl9nZXQocmRldik7CisJ aWYgKElTX0VSUihybW4pKQorCQlyZXR1cm4gUFRSX0VSUihybW4pOworCisJbXV0ZXhfbG9jaygm cm1uLT5sb2NrKTsKKworCWl0ID0gaW50ZXJ2YWxfdHJlZV9pdGVyX2ZpcnN0KCZybW4tPm9iamVj dHMsIGFkZHIsIGVuZCk7CisJaWYgKGl0KSB7CisJCW11dGV4X3VubG9jaygmcm1uLT5sb2NrKTsK KwkJcmV0dXJuIC1FRVhJU1Q7CisJfQorCisJYm8tPm1uID0gcm1uOworCWJvLT5tbl9pdC5zdGFy dCA9IGFkZHI7CisJYm8tPm1uX2l0Lmxhc3QgPSBlbmQ7CisJaW50ZXJ2YWxfdHJlZV9pbnNlcnQo JmJvLT5tbl9pdCwgJnJtbi0+b2JqZWN0cyk7CisKKwltdXRleF91bmxvY2soJnJtbi0+bG9jayk7 CisKKwlyZXR1cm4gMDsKK30KKworLyoqCisgKiByYWRlb25fbW5fdW5yZWdpc3RlciAtIHVucmVn aXN0ZXIgYSBCTyBmb3Igbm90aWZpZXIgdXBkYXRlcworICoKKyAqIEBibzogcmFkZW9uIGJ1ZmZl ciBvYmplY3QKKyAqCisgKiBSZW1vdmUgYW55IHJlZ2lzdHJhdGlvbiBvZiBNTVUgbm90aWZpZXIg dXBkYXRlcyBmcm9tIHRoZSBidWZmZXIgb2JqZWN0LgorICovCit2b2lkIHJhZGVvbl9tbl91bnJl Z2lzdGVyKHN0cnVjdCByYWRlb25fYm8gKmJvKQoreworCXN0cnVjdCByYWRlb25fZGV2aWNlICpy ZGV2ID0gYm8tPnJkZXY7CisJc3RydWN0IHJhZGVvbl9tbiAqcm1uOworCisJbXV0ZXhfbG9jaygm cmRldi0+bW5fbG9jayk7CisJcm1uID0gYm8tPm1uOworCWlmIChybW4gPT0gTlVMTCkgeworCQlt dXRleF91bmxvY2soJnJkZXYtPm1uX2xvY2spOworCQlyZXR1cm47CisJfQorCisJbXV0ZXhfbG9j aygmcm1uLT5sb2NrKTsKKwlpbnRlcnZhbF90cmVlX3JlbW92ZSgmYm8tPm1uX2l0LCAmcm1uLT5v YmplY3RzKTsKKwliby0+bW4gPSBOVUxMOworCW11dGV4X3VubG9jaygmcm1uLT5sb2NrKTsKKwlt dXRleF91bmxvY2soJnJkZXYtPm1uX2xvY2spOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9yYWRlb25fb2JqZWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl9vYmplY3QuYwppbmRleCBjNzNjMWUzLi4yODc1MjM4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbl9vYmplY3QuYwpAQCAtNzUsNiArNzUsNyBAQCBzdGF0aWMgdm9pZCByYWRlb25fdHRt X2JvX2Rlc3Ryb3koc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICp0Ym8pCiAJYm8gPSBjb250YWlu ZXJfb2YodGJvLCBzdHJ1Y3QgcmFkZW9uX2JvLCB0Ym8pOwogCiAJcmFkZW9uX3VwZGF0ZV9tZW1v cnlfdXNhZ2UoYm8sIGJvLT50Ym8ubWVtLm1lbV90eXBlLCAtMSk7CisJcmFkZW9uX21uX3VucmVn aXN0ZXIoYm8pOwogCiAJbXV0ZXhfbG9jaygmYm8tPnJkZXYtPmdlbS5tdXRleCk7CiAJbGlzdF9k ZWxfaW5pdCgmYm8tPmxpc3QpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9yYWRlb25f ZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL3JhZGVvbl9kcm0uaAppbmRleCAwMjYxMTFiLi5kMzdh MWQxIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvZHJtL3JhZGVvbl9kcm0uaAorKysgYi9pbmNs dWRlL3VhcGkvZHJtL3JhZGVvbl9kcm0uaApAQCAtODEzLDYgKzgxMyw3IEBAIHN0cnVjdCBkcm1f cmFkZW9uX2dlbV9jcmVhdGUgewogI2RlZmluZSBSQURFT05fR0VNX1VTRVJQVFJfUkVBRE9OTFkJ KDEgPDwgMCkKICNkZWZpbmUgUkFERU9OX0dFTV9VU0VSUFRSX0FOT05PTkxZCSgxIDw8IDEpCiAj ZGVmaW5lIFJBREVPTl9HRU1fVVNFUlBUUl9WQUxJREFURQkoMSA8PCAyKQorI2RlZmluZSBSQURF T05fR0VNX1VTRVJQVFJfUkVHSVNURVIJKDEgPDwgMykKIAogc3RydWN0IGRybV9yYWRlb25fZ2Vt X3VzZXJwdHIgewogCXVpbnQ2NF90CQlhZGRyOwotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==