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 Date: Mon, 28 Jul 2014 13:30:11 +0200 Message-ID: <1406547012-3105-4-git-send-email-deathsimple@vodafone.de> References: <1406547012-3105-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 A71F16E1F4 for ; Mon, 28 Jul 2014 04:30:30 -0700 (PDT) In-Reply-To: <1406547012-3105-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: dri-devel@lists.freedesktop.org Cc: jglisse@redhat.com List-Id: dri-devel@lists.freedesktop.org RnJvbTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgoKU2lnbmVk LW9mZi1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgotLS0K IGRyaXZlcnMvZ3B1L2RybS9LY29uZmlnICAgICAgICAgICAgICAgIHwgICAxICsKIGRyaXZlcnMv Z3B1L2RybS9yYWRlb24vTWFrZWZpbGUgICAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3JhZGVvbi5oICAgICAgICB8ICAxMiArKwogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9y YWRlb25fZGV2aWNlLmMgfCAgIDIgKwogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZ2Vt LmMgICAgfCAgIDkgKy0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX21uLmMgICAgIHwg MjcwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yYWRlb25fb2JqZWN0LmMgfCAgIDEgKwogaW5jbHVkZS91YXBpL2RybS9yYWRlb25fZHJt LmggICAgICAgICAgfCAgIDEgKwogOCBmaWxlcyBjaGFuZ2VkLCAyOTYgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbl9tbi5jCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL0tjb25maWcgYi9kcml2 ZXJzL2dwdS9kcm0vS2NvbmZpZwppbmRleCA5YjJlZWRjLi4yNzQ1Mjg0IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vS2NvbmZpZworKysgYi9kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZwpAQCAt MTE1LDYgKzExNSw3IEBAIGNvbmZpZyBEUk1fUkFERU9OCiAJc2VsZWN0IEhXTU9OCiAJc2VsZWN0 IEJBQ0tMSUdIVF9DTEFTU19ERVZJQ0UKIAlzZWxlY3QgSU5URVJWQUxfVFJFRQorCXNlbGVjdCBN TVVfTk9USUZJRVIKIAloZWxwCiAJICBDaG9vc2UgdGhpcyBvcHRpb24gaWYgeW91IGhhdmUgYW4g QVRJIFJhZGVvbiBncmFwaGljcyBjYXJkLiAgVGhlcmUKIAkgIGFyZSBib3RoIFBDSSBhbmQgQUdQ IHZlcnNpb25zLiAgWW91IGRvbid0IG5lZWQgdG8gY2hvb3NlIHRoaXMgdG8KZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L01ha2VmaWxlCmluZGV4IDFiMDQwMDIuLmM2NjE0M2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9NYWtlZmls ZQpAQCAtODAsNyArODAsNyBAQCByYWRlb24teSArPSByYWRlb25fZGV2aWNlLm8gcmFkZW9uX2Fz aWMubyByYWRlb25fa21zLm8gXAogCXI2MDBfZHBtLm8gcnM3ODBfZHBtLm8gcnY2eHhfZHBtLm8g cnY3NzBfZHBtLm8gcnY3MzBfZHBtLm8gcnY3NDBfZHBtLm8gXAogCXJ2NzcwX3NtYy5vIGN5cHJl c3NfZHBtLm8gYnRjX2RwbS5vIHN1bW9fZHBtLm8gc3Vtb19zbWMubyB0cmluaXR5X2RwbS5vIFwK IAl0cmluaXR5X3NtYy5vIG5pX2RwbS5vIHNpX3NtYy5vIHNpX2RwbS5vIGt2X3NtYy5vIGt2X2Rw bS5vIGNpX3NtYy5vIFwKLQljaV9kcG0ubyBkY2U2X2FmbXQubyByYWRlb25fdm0ubyByYWRlb25f dWNvZGUubworCWNpX2RwbS5vIGRjZTZfYWZtdC5vIHJhZGVvbl92bS5vIHJhZGVvbl91Y29kZS5v IHJhZGVvbl9tbi5vCiAKICMgYWRkIGFzeW5jIERNQSBibG9jawogcmFkZW9uLXkgKz0gXApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaCBiL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcmFkZW9uLmgKaW5kZXggMmIzNjNmMy4uNTdmZDE0NSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbi5oCkBAIC02NSw2ICs2NSw3IEBACiAjaW5jbHVkZSA8bGludXgvbGlzdC5oPgogI2lu Y2x1ZGUgPGxpbnV4L2tyZWYuaD4KICNpbmNsdWRlIDxsaW51eC9pbnRlcnZhbF90cmVlLmg+Cisj aW5jbHVkZSA8bGludXgvaGFzaHRhYmxlLmg+CiAKICNpbmNsdWRlIDx0dG0vdHRtX2JvX2FwaS5o PgogI2luY2x1ZGUgPHR0bS90dG1fYm9fZHJpdmVyLmg+CkBAIC00ODMsNiArNDg0LDkgQEAgc3Ry dWN0IHJhZGVvbl9ibyB7CiAKIAlzdHJ1Y3QgdHRtX2JvX2ttYXBfb2JqCQlkbWFfYnVmX3ZtYXA7 CiAJcGlkX3QJCQkJcGlkOworCisJc3RydWN0IHJhZGVvbl9tbgkJKm1uOworCXN0cnVjdCBpbnRl cnZhbF90cmVlX25vZGUJbW5faXQ7CiB9OwogI2RlZmluZSBnZW1fdG9fcmFkZW9uX2JvKGdvYmop IGNvbnRhaW5lcl9vZigoZ29iaiksIHN0cnVjdCByYWRlb25fYm8sIGdlbV9iYXNlKQogCkBAIC0x NzIxLDYgKzE3MjUsMTEgQEAgdm9pZCByYWRlb25fdGVzdF9yaW5nX3N5bmMoc3RydWN0IHJhZGVv bl9kZXZpY2UgKnJkZXYsCiAJCQkgICBzdHJ1Y3QgcmFkZW9uX3JpbmcgKmNwQik7CiB2b2lkIHJh ZGVvbl90ZXN0X3N5bmNpbmcoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpOwogCisvKgorICog TU1VIE5vdGlmaWVyCisgKi8KK2ludCByYWRlb25fbW5fcmVnaXN0ZXIoc3RydWN0IHJhZGVvbl9i byAqYm8sIHVuc2lnbmVkIGxvbmcgYWRkcik7Cit2b2lkIHJhZGVvbl9tbl91bnJlZ2lzdGVyKHN0 cnVjdCByYWRlb25fYm8gKmJvKTsKIAogLyoKICAqIERlYnVnZnMKQEAgLTIzNjIsNiArMjM3MSw5 IEBAIHN0cnVjdCByYWRlb25fZGV2aWNlIHsKIAkvKiB0cmFja2luZyBwaW5uZWQgbWVtb3J5ICov CiAJdTY0IHZyYW1fcGluX3NpemU7CiAJdTY0IGdhcnRfcGluX3NpemU7CisKKwlzdHJ1Y3QgbXV0 ZXgJbW5fbG9jazsKKwlERUNMQVJFX0hBU0hUQUJMRShtbl9oYXNoLCA3KTsKIH07CiAKIGJvb2wg cmFkZW9uX2lzX3B4KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGV2aWNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbl9kZXZpY2UuYwppbmRleCBhZmNmZThhLi4zYmNlZDJkIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kZXZpY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3JhZGVvbl9kZXZpY2UuYwpAQCAtMTI2OSw2ICsxMjY5LDggQEAgaW50IHJhZGVvbl9k ZXZpY2VfaW5pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAlpbml0X3J3c2VtKCZyZGV2 LT5wbS5tY2xrX2xvY2spOwogCWluaXRfcndzZW0oJnJkZXYtPmV4Y2x1c2l2ZV9sb2NrKTsKIAlp bml0X3dhaXRxdWV1ZV9oZWFkKCZyZGV2LT5pcnEudmJsYW5rX3F1ZXVlKTsKKwltdXRleF9pbml0 KCZyZGV2LT5tbl9sb2NrKTsKKwloYXNoX2luaXQocmRldi0+bW5faGFzaCk7CiAJciA9IHJhZGVv bl9nZW1faW5pdChyZGV2KTsKIAlpZiAocikKIAkJcmV0dXJuIHI7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uX2dlbS5jCmluZGV4IDNmZmIyZjMuLjI5ZTM1M2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uX2dlbS5jCkBAIC0yOTMsNyArMjkzLDggQEAgaW50IHJhZGVvbl9nZW1fdXNlcnB0cl9p b2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCiAJLyogcmVqZWN0IHVu a25vd24gZmxhZyB2YWx1ZXMgKi8KIAlpZiAoYXJncy0+ZmxhZ3MgJiB+KFJBREVPTl9HRU1fVVNF UlBUUl9SRUFET05MWSB8Ci0JICAgIFJBREVPTl9HRU1fVVNFUlBUUl9BTk9OT05MWSB8IFJBREVP Tl9HRU1fVVNFUlBUUl9WQUxJREFURSkpCisJICAgIFJBREVPTl9HRU1fVVNFUlBUUl9BTk9OT05M WSB8IFJBREVPTl9HRU1fVVNFUlBUUl9WQUxJREFURSB8CisJICAgIFJBREVPTl9HRU1fVVNFUlBU Ul9SRUdJU1RFUikpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJLyogcmVhZG9ubHkgcGFnZXMgbm90 IHRlc3RlZCBvbiBvbGRlciBoYXJkd2FyZSAqLwpAQCAtMzE0LDYgKzMxNSwxMiBAQCBpbnQgcmFk ZW9uX2dlbV91c2VycHRyX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEs CiAJaWYgKHIpCiAJCWdvdG8gcmVsZWFzZV9vYmplY3Q7CiAKKwlpZiAoYXJncy0+ZmxhZ3MgJiBS QURFT05fR0VNX1VTRVJQVFJfUkVHSVNURVIpIHsKKwkJciA9IHJhZGVvbl9tbl9yZWdpc3Rlcihi bywgYXJncy0+YWRkcik7CisJCWlmIChyKQorCQkJZ290byByZWxlYXNlX29iamVjdDsKKwl9CisK IAlpZiAoYXJncy0+ZmxhZ3MgJiBSQURFT05fR0VNX1VTRVJQVFJfVkFMSURBVEUpIHsKIAkJZG93 bl9yZWFkKCZjdXJyZW50LT5tbS0+bW1hcF9zZW0pOwogCQlyID0gcmFkZW9uX2JvX3Jlc2VydmUo Ym8sIHRydWUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fbW4u YyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX21uLmMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uZWYwZjliNAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX21uLmMKQEAgLTAsMCArMSwyNzAgQEAKKy8qCisgKiBDb3B5cmln aHQgMjAxNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKiBBbGwgUmlnaHRzIFJlc2Vy dmVkLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdl LCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5k IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisgKiAiU29mdHdhcmUiKSwgdG8g ZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisgKiB3 aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2Us IHB1Ymxpc2gsCisgKiBkaXN0cmlidXRlLCBzdWIgbGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVz IG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvCisgKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBT b2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyAqIHRoZSBmb2xsb3dp bmcgY29uZGl0aW9uczoKKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwg V0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5D TFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ VFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OLUlORlJJTkdF TUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSUywgQVVUSE9S UyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwKKyAqIERBTUFH RVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwg VE9SVCBPUgorICogT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNU SU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRQorICogVVNFIE9SIE9USEVSIERFQUxJTkdTIElO IFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp cyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZQorICogbmV4dCBwYXJhZ3JhcGgpIHNo YWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMKKyAq IG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKi8KKy8qCisgKiBBdXRob3JzOgorICogICAgQ2hyaXN0 aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgorICovCisKKyNpbmNsdWRlIDxs aW51eC9maXJtd2FyZS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxp bnV4L21tdV9ub3RpZmllci5oPgorI2luY2x1ZGUgPGRybS9kcm1QLmg+CisjaW5jbHVkZSA8ZHJt L2RybS5oPgorCisjaW5jbHVkZSAicmFkZW9uLmgiCisKK3N0cnVjdCByYWRlb25fbW4geworCS8q IGNvbnN0YW50IGFmdGVyIGluaXRpYWxpc2F0aW9uICovCisJc3RydWN0IHJhZGVvbl9kZXZpY2UJ KnJkZXY7CisJc3RydWN0IG1tX3N0cnVjdAkqbW07CisJc3RydWN0IG1tdV9ub3RpZmllcgltbjsK KworCS8qIG9ubHkgdXNlZCBvbiBkZXN0cnVjdGlvbiAqLworCXN0cnVjdCB3b3JrX3N0cnVjdAl3 b3JrOworCisJLyogcHJvdGVjdGVkIGJ5IHJkZXYtPm1uX2xvY2sgKi8KKwlzdHJ1Y3QgaGxpc3Rf bm9kZQlub2RlOworCisJLyogb2JqZWN0cyBwcm90ZWN0ZWQgYnkgbG9jayAqLworCXN0cnVjdCBt dXRleAkJbG9jazsKKwlzdHJ1Y3QgcmJfcm9vdAkJb2JqZWN0czsKK307CisKKy8qKgorICogcmFk ZW9uX21uX2Rlc3Ryb3kgLSBkZXN0cm95IHRoZSBybW4KKyAqCisgKiBAd29yazogcHJldmlvdXNs eSBzaGVkdWxlZCB3b3JrIGl0ZW0KKyAqCisgKiBMYXp5IGRlc3Ryb3lzIHRoZSBub3RpZmllciBm cm9tIGEgd29yayBpdGVtCisgKi8KK3N0YXRpYyB2b2lkIHJhZGVvbl9tbl9kZXN0cm95KHN0cnVj dCB3b3JrX3N0cnVjdCAqd29yaykKK3sKKwlzdHJ1Y3QgcmFkZW9uX21uICpybW4gPSBjb250YWlu ZXJfb2Yod29yaywgc3RydWN0IHJhZGVvbl9tbiwgd29yayk7CisJc3RydWN0IHJhZGVvbl9kZXZp Y2UgKnJkZXYgPSBybW4tPnJkZXY7CisJc3RydWN0IHJhZGVvbl9ibyAqYm8sICpuZXh0OworCisJ bXV0ZXhfbG9jaygmcmRldi0+bW5fbG9jayk7CisJbXV0ZXhfbG9jaygmcm1uLT5sb2NrKTsKKwlo YXNoX2RlbCgmcm1uLT5ub2RlKTsKKwlyYnRyZWVfcG9zdG9yZGVyX2Zvcl9lYWNoX2VudHJ5X3Nh ZmUoYm8sIG5leHQsICZybW4tPm9iamVjdHMsIG1uX2l0LnJiKSB7CisJCWludGVydmFsX3RyZWVf cmVtb3ZlKCZiby0+bW5faXQsICZybW4tPm9iamVjdHMpOworCQliby0+bW4gPSBOVUxMOworCX0K KwltdXRleF91bmxvY2soJnJtbi0+bG9jayk7CisJbXV0ZXhfdW5sb2NrKCZyZGV2LT5tbl9sb2Nr KTsKKwltbXVfbm90aWZpZXJfdW5yZWdpc3Rlcigmcm1uLT5tbiwgcm1uLT5tbSk7CisJa2ZyZWUo cm1uKTsKK30KKworLyoqCisgKiByYWRlb25fbW5fcmVsZWFzZSAtIGNhbGxiYWNrIHRvIG5vdGlm eSBhYm91dCBtbSBkZXN0cnVjdGlvbgorICoKKyAqIEBtbjogb3VyIG5vdGlmaWVyCisgKiBAbW46 IHRoZSBtbSB0aGlzIGNhbGxiYWNrIGlzIGFib3V0CisgKgorICogU2hlZHVsZSBhIHdvcmsgaXRl bSB0byBsYXp5IGRlc3Ryb3kgb3VyIG5vdGlmaWVyLgorICovCitzdGF0aWMgdm9pZCByYWRlb25f bW5fcmVsZWFzZShzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwKKwkJCSAgICAgIHN0cnVjdCBtbV9z dHJ1Y3QgKm1tKQoreworCXN0cnVjdCByYWRlb25fbW4gKnJtbiA9IGNvbnRhaW5lcl9vZihtbiwg c3RydWN0IHJhZGVvbl9tbiwgbW4pOworCUlOSVRfV09SSygmcm1uLT53b3JrLCByYWRlb25fbW5f ZGVzdHJveSk7CisJc2NoZWR1bGVfd29yaygmcm1uLT53b3JrKTsKK30KKworLyoqCisgKiByYWRl b25fbW5faW52YWxpZGF0ZV9yYW5nZV9zdGFydCAtIGNhbGxiYWNrIHRvIG5vdGlmeSBhYm91dCBt bSBjaGFuZ2UKKyAqCisgKiBAbW46IG91ciBub3RpZmllcgorICogQG1uOiB0aGUgbW0gdGhpcyBj YWxsYmFjayBpcyBhYm91dAorICogQHN0YXJ0OiBzdGFydCBvZiB1cGRhdGVkIHJhbmdlCisgKiBA ZW5kOiBlbmQgb2YgdXBkYXRlZCByYW5nZQorICoKKyAqIFdlIGJsb2NrIGZvciBhbGwgQk9zIGJl dHdlZW4gc3RhcnQgYW5kIGVuZCB0byBiZSBpZGxlIGFuZAorICogdW5tYXAgdGhlbSBieSBtb3Zl IHRoZW0gaW50byBzeXN0ZW0gZG9tYWluIGFnYWluLgorICovCitzdGF0aWMgdm9pZCByYWRlb25f bW5faW52YWxpZGF0ZV9yYW5nZV9zdGFydChzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwKKwkJCQkJ ICAgICBzdHJ1Y3QgbW1fc3RydWN0ICptbSwKKwkJCQkJICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0 LAorCQkJCQkgICAgIHVuc2lnbmVkIGxvbmcgZW5kKQoreworCXN0cnVjdCByYWRlb25fbW4gKnJt biA9IGNvbnRhaW5lcl9vZihtbiwgc3RydWN0IHJhZGVvbl9tbiwgbW4pOworCXN0cnVjdCBpbnRl cnZhbF90cmVlX25vZGUgKml0OworCisJLyogbm90aWZpY2F0aW9uIGlzIGV4Y2x1c2l2ZSwgYnV0 IGludGVydmFsIGlzIGluY2x1c2l2ZSAqLworCWVuZCAtPSAxOworCisJbXV0ZXhfbG9jaygmcm1u LT5sb2NrKTsKKworCWl0ID0gaW50ZXJ2YWxfdHJlZV9pdGVyX2ZpcnN0KCZybW4tPm9iamVjdHMs IHN0YXJ0LCBlbmQpOworCXdoaWxlIChpdCkgeworCQlzdHJ1Y3QgcmFkZW9uX2JvICpibzsKKwkJ aW50IHI7CisKKwkJYm8gPSBjb250YWluZXJfb2YoaXQsIHN0cnVjdCByYWRlb25fYm8sIG1uX2l0 KTsKKwkJaXQgPSBpbnRlcnZhbF90cmVlX2l0ZXJfbmV4dChpdCwgc3RhcnQsIGVuZCk7CisKKwkJ ciA9IHJhZGVvbl9ib19yZXNlcnZlKGJvLCB0cnVlKTsKKwkJaWYgKHIpIHsKKwkJCURSTV9FUlJP UigiKCVkKSBmYWlsZWQgdG8gcmVzZXJ2ZSB1c2VyIGJvXG4iLCByKTsKKwkJCWNvbnRpbnVlOwor CQl9CisKKwkJaWYgKGJvLT50Ym8uc3luY19vYmopIHsKKwkJCXIgPSByYWRlb25fZmVuY2Vfd2Fp dChiby0+dGJvLnN5bmNfb2JqLCBmYWxzZSk7CisJCQlpZiAocikKKwkJCQlEUk1fRVJST1IoIigl ZCkgZmFpbGVkIHRvIHdhaXQgZm9yIHVzZXIgYm9cbiIsIHIpOworCQl9CisKKwkJcmFkZW9uX3R0 bV9wbGFjZW1lbnRfZnJvbV9kb21haW4oYm8sIFJBREVPTl9HRU1fRE9NQUlOX0NQVSk7CisJCXIg PSB0dG1fYm9fdmFsaWRhdGUoJmJvLT50Ym8sICZiby0+cGxhY2VtZW50LCBmYWxzZSwgZmFsc2Up OworCQlpZiAocikKKwkJCURSTV9FUlJPUigiKCVkKSBmYWlsZWQgdG8gdmFsaWRhdGUgdXNlciBi b1xuIiwgcik7CisKKwkJcmFkZW9uX2JvX3VucmVzZXJ2ZShibyk7CisJfQorCQorCW11dGV4X3Vu bG9jaygmcm1uLT5sb2NrKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBtbXVfbm90aWZpZXJf b3BzIHJhZGVvbl9tbl9vcHMgPSB7CisJLnJlbGVhc2UgPSByYWRlb25fbW5fcmVsZWFzZSwKKwku aW52YWxpZGF0ZV9yYW5nZV9zdGFydCA9IHJhZGVvbl9tbl9pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0 LAorfTsKKworLyoqCisgKiByYWRlb25fbW5fZ2V0IC0gY3JlYXRlIG5vdGlmaWVyIGNvbnRleHQK KyAqCisgKiBAcmRldjogcmFkZW9uIGRldmljZSBwb2ludGVyCisgKgorICogQ3JlYXRlcyBhIG5v dGlmaWVyIGNvbnRleHQgZm9yIGN1cnJlbnQtPm1tLgorICovCitzdGF0aWMgc3RydWN0IHJhZGVv bl9tbiAqcmFkZW9uX21uX2dldChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKK3sKKwlzdHJ1 Y3QgbW1fc3RydWN0ICptbSA9IGN1cnJlbnQtPm1tOworCXN0cnVjdCByYWRlb25fbW4gKnJtbjsK KwlpbnQgcjsKKworCWRvd25fd3JpdGUoJm1tLT5tbWFwX3NlbSk7CisJbXV0ZXhfbG9jaygmcmRl di0+bW5fbG9jayk7CisKKwloYXNoX2Zvcl9lYWNoX3Bvc3NpYmxlKHJkZXYtPm1uX2hhc2gsIHJt biwgbm9kZSwgKHVuc2lnbmVkIGxvbmcpbW0pCisJCWlmIChybW4tPm1tID09IG1tKQorCQkJZ290 byByZWxlYXNlX2xvY2tzOworCisJcm1uID0ga3phbGxvYyhzaXplb2YoKnJtbiksIEdGUF9LRVJO RUwpOworCWlmICghcm1uKQorCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKworCXJtbi0+cmRl diA9IHJkZXY7CisJcm1uLT5tbSA9IG1tOworCXJtbi0+bW4ub3BzID0gJnJhZGVvbl9tbl9vcHM7 CisJbXV0ZXhfaW5pdCgmcm1uLT5sb2NrKTsKKwlybW4tPm9iamVjdHMgPSBSQl9ST09UOworCQor CXIgPSBfX21tdV9ub3RpZmllcl9yZWdpc3Rlcigmcm1uLT5tbiwgbW0pOworCWlmIChyKQorCQln b3RvIGZyZWVfcm1uOworCisJaGFzaF9hZGQocmRldi0+bW5faGFzaCwgJnJtbi0+bm9kZSwgKHVu c2lnbmVkIGxvbmcpbW0pOworCityZWxlYXNlX2xvY2tzOgorCW11dGV4X3VubG9jaygmcmRldi0+ bW5fbG9jayk7CisJdXBfd3JpdGUoJm1tLT5tbWFwX3NlbSk7CisKKwlyZXR1cm4gcm1uOworCitm cmVlX3JtbjoKKwltdXRleF91bmxvY2soJnJkZXYtPm1uX2xvY2spOworCXVwX3dyaXRlKCZtbS0+ bW1hcF9zZW0pOworCWtmcmVlKHJtbik7CisKKwlyZXR1cm4gRVJSX1BUUihyKTsKK30KKworLyoq CisgKiByYWRlb25fbW5fcmVnaXN0ZXIgLSByZWdpc3RlciBhIEJPIGZvciBub3RpZmllciB1cGRh dGVzCisgKgorICogQGJvOiByYWRlb24gYnVmZmVyIG9iamVjdAorICogQGFkZHI6IHVzZXJwdHIg YWRkciB3ZSBzaG91bGQgbW9uaXRvcgorICoKKyAqIFJlZ2lzdGVycyBhbiBNTVUgbm90aWZpZXIg Zm9yIHRoZSBnaXZlbiBCTyBhdCB0aGUgc3BlY2lmaWVkIGFkZHJlc3MuCisgKiBSZXR1cm5zIDAg b24gc3VjY2VzcywgLUVSUk5PIGlmIGFueXRoaW5nIGdvZXMgd3JvbmcuCisgKi8KK2ludCByYWRl b25fbW5fcmVnaXN0ZXIoc3RydWN0IHJhZGVvbl9ibyAqYm8sIHVuc2lnbmVkIGxvbmcgYWRkcikK K3sKKwl1bnNpZ25lZCBsb25nIGVuZCA9IGFkZHIgKyByYWRlb25fYm9fc2l6ZShibykgLSAxOwor CXN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2ID0gYm8tPnJkZXY7CisJc3RydWN0IHJhZGVvbl9t biAqcm1uOworCXN0cnVjdCBpbnRlcnZhbF90cmVlX25vZGUgKml0OworCisJcm1uID0gcmFkZW9u X21uX2dldChyZGV2KTsKKwlpZiAoSVNfRVJSKHJtbikpCisJCXJldHVybiBQVFJfRVJSKHJtbik7 CisKKwltdXRleF9sb2NrKCZybW4tPmxvY2spOworCisJaXQgPSBpbnRlcnZhbF90cmVlX2l0ZXJf Zmlyc3QoJnJtbi0+b2JqZWN0cywgYWRkciwgZW5kKTsKKwlpZiAoaXQpIHsKKwkJbXV0ZXhfdW5s b2NrKCZybW4tPmxvY2spOworCQlyZXR1cm4gLUVFWElTVDsKKwl9CisKKwliby0+bW4gPSBybW47 CisJYm8tPm1uX2l0LnN0YXJ0ID0gYWRkcjsKKwliby0+bW5faXQubGFzdCA9IGVuZDsKKwlpbnRl cnZhbF90cmVlX2luc2VydCgmYm8tPm1uX2l0LCAmcm1uLT5vYmplY3RzKTsKKworCW11dGV4X3Vu bG9jaygmcm1uLT5sb2NrKTsKKworCXJldHVybiAwOworfQorCisvKioKKyAqIHJhZGVvbl9tbl91 bnJlZ2lzdGVyIC0gdW5yZWdpc3RlciBhIEJPIGZvciBub3RpZmllciB1cGRhdGVzCisgKgorICog QGJvOiByYWRlb24gYnVmZmVyIG9iamVjdAorICoKKyAqIFJlbW92ZSBhbnkgcmVnaXN0cmF0aW9u IG9mIE1NVSBub3RpZmllciB1cGRhdGVzIGZyb20gdGhlIGJ1ZmZlciBvYmplY3QuCisgKi8KK3Zv aWQgcmFkZW9uX21uX3VucmVnaXN0ZXIoc3RydWN0IHJhZGVvbl9ibyAqYm8pCit7CisJc3RydWN0 IHJhZGVvbl9kZXZpY2UgKnJkZXYgPSBiby0+cmRldjsKKwlzdHJ1Y3QgcmFkZW9uX21uICpybW47 CisKKwltdXRleF9sb2NrKCZyZGV2LT5tbl9sb2NrKTsKKwlybW4gPSBiby0+bW47CisJaWYgKHJt biA9PSBOVUxMKSB7CisJCW11dGV4X3VubG9jaygmcmRldi0+bW5fbG9jayk7CisJCXJldHVybjsK Kwl9CisKKwltdXRleF9sb2NrKCZybW4tPmxvY2spOworCWludGVydmFsX3RyZWVfcmVtb3ZlKCZi by0+bW5faXQsICZybW4tPm9iamVjdHMpOworCWJvLT5tbiA9IE5VTEw7CisJbXV0ZXhfdW5sb2Nr KCZybW4tPmxvY2spOworCW11dGV4X3VubG9jaygmcmRldi0+bW5fbG9jayk7Cit9CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuYyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5jCmluZGV4IDcwYTczYTMuLjQ5YjUzNzAgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5jCkBAIC03NSw2ICs3NSw3IEBAIHN0YXRp YyB2b2lkIHJhZGVvbl90dG1fYm9fZGVzdHJveShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKnRi bykKIAlibyA9IGNvbnRhaW5lcl9vZih0Ym8sIHN0cnVjdCByYWRlb25fYm8sIHRibyk7CiAKIAly YWRlb25fdXBkYXRlX21lbW9yeV91c2FnZShibywgYm8tPnRiby5tZW0ubWVtX3R5cGUsIC0xKTsK KwlyYWRlb25fbW5fdW5yZWdpc3Rlcihibyk7CiAKIAltdXRleF9sb2NrKCZiby0+cmRldi0+Z2Vt Lm11dGV4KTsKIAlsaXN0X2RlbF9pbml0KCZiby0+bGlzdCk7CmRpZmYgLS1naXQgYS9pbmNsdWRl L3VhcGkvZHJtL3JhZGVvbl9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vcmFkZW9uX2RybS5oCmlu ZGV4IDAyNjExMWIuLmQzN2ExZDEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vcmFkZW9u X2RybS5oCisrKyBiL2luY2x1ZGUvdWFwaS9kcm0vcmFkZW9uX2RybS5oCkBAIC04MTMsNiArODEz LDcgQEAgc3RydWN0IGRybV9yYWRlb25fZ2VtX2NyZWF0ZSB7CiAjZGVmaW5lIFJBREVPTl9HRU1f VVNFUlBUUl9SRUFET05MWQkoMSA8PCAwKQogI2RlZmluZSBSQURFT05fR0VNX1VTRVJQVFJfQU5P Tk9OTFkJKDEgPDwgMSkKICNkZWZpbmUgUkFERU9OX0dFTV9VU0VSUFRSX1ZBTElEQVRFCSgxIDw8 IDIpCisjZGVmaW5lIFJBREVPTl9HRU1fVVNFUlBUUl9SRUdJU1RFUgkoMSA8PCAzKQogCiBzdHJ1 Y3QgZHJtX3JhZGVvbl9nZW1fdXNlcnB0ciB7CiAJdWludDY0X3QJCWFkZHI7Ci0tIAoxLjkuMQoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK