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 v3 Date: Tue, 5 Aug 2014 18:05:31 +0200 Message-ID: <1407254732-8332-4-git-send-email-deathsimple@vodafone.de> References: <1407254732-8332-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 63CB86E4D7 for ; Tue, 5 Aug 2014 09:06:10 -0700 (PDT) In-Reply-To: <1407254732-8332-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 RnJvbTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgoKV2hlbmV2 ZXIgdXNlcnNwYWNlIG1hcHBpbmcgcmVsYXRlZCB0byBvdXIgdXNlcnB0ciBjaGFuZ2UKd2Ugd2Fp dCBmb3IgaXQgdG8gYmVjb21lIGlkbGUgYW5kIHVubWFwIGl0IGZyb20gR1RULgoKdjI6IHJlYmFz ZWQsIGZpeCBtdXRleCB1bmxvY2sgaW4gZXJyb3IgcGF0aAp2MzogaW1wcm92ZSBjb21taXQgbWVz c2FnZQoKU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0Bh bWQuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9LY29uZmlnICAgICAgICAgICAgICAgIHwgICAx ICsKIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vTWFrZWZpbGUgICAgICAgIHwgICAyICstCiBkcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oICAgICAgICB8ICAxMiArKwogZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9yYWRlb25fZGV2aWNlLmMgfCAgIDIgKwogZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb25fZ2VtLmMgICAgfCAgIDkgKy0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9u X21uLmMgICAgIHwgMjcyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fb2JqZWN0LmMgfCAgIDEgKwogaW5jbHVkZS91YXBpL2Ry bS9yYWRlb25fZHJtLmggICAgICAgICAgfCAgIDEgKwogOCBmaWxlcyBjaGFuZ2VkLCAyOTggaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl9tbi5jCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL0tj b25maWcgYi9kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZwppbmRleCA5YjJlZWRjLi4yNzQ1Mjg0IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZworKysgYi9kcml2ZXJzL2dwdS9kcm0v S2NvbmZpZwpAQCAtMTE1LDYgKzExNSw3IEBAIGNvbmZpZyBEUk1fUkFERU9OCiAJc2VsZWN0IEhX TU9OCiAJc2VsZWN0IEJBQ0tMSUdIVF9DTEFTU19ERVZJQ0UKIAlzZWxlY3QgSU5URVJWQUxfVFJF RQorCXNlbGVjdCBNTVVfTk9USUZJRVIKIAloZWxwCiAJICBDaG9vc2UgdGhpcyBvcHRpb24gaWYg eW91IGhhdmUgYW4gQVRJIFJhZGVvbiBncmFwaGljcyBjYXJkLiAgVGhlcmUKIAkgIGFyZSBib3Ro IFBDSSBhbmQgQUdQIHZlcnNpb25zLiAgWW91IGRvbid0IG5lZWQgdG8gY2hvb3NlIHRoaXMgdG8K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vTWFrZWZpbGUgYi9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL01ha2VmaWxlCmluZGV4IDAwMTNhZDAuLmM3ZmExYWUgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9NYWtlZmlsZQpAQCAtODAsNyArODAsNyBAQCByYWRlb24teSArPSByYWRlb25fZGV2aWNl Lm8gcmFkZW9uX2FzaWMubyByYWRlb25fa21zLm8gXAogCXI2MDBfZHBtLm8gcnM3ODBfZHBtLm8g cnY2eHhfZHBtLm8gcnY3NzBfZHBtLm8gcnY3MzBfZHBtLm8gcnY3NDBfZHBtLm8gXAogCXJ2Nzcw X3NtYy5vIGN5cHJlc3NfZHBtLm8gYnRjX2RwbS5vIHN1bW9fZHBtLm8gc3Vtb19zbWMubyB0cmlu aXR5X2RwbS5vIFwKIAl0cmluaXR5X3NtYy5vIG5pX2RwbS5vIHNpX3NtYy5vIHNpX2RwbS5vIGt2 X3NtYy5vIGt2X2RwbS5vIGNpX3NtYy5vIFwKLQljaV9kcG0ubyBkY2U2X2FmbXQubyByYWRlb25f dm0ubyByYWRlb25fdWNvZGUubyByYWRlb25faWIubworCWNpX2RwbS5vIGRjZTZfYWZtdC5vIHJh ZGVvbl92bS5vIHJhZGVvbl91Y29kZS5vIHJhZGVvbl9pYi5vIHJhZGVvbl9tbi5vCiAKICMgYWRk IGFzeW5jIERNQSBibG9jawogcmFkZW9uLXkgKz0gXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9yYWRlb24uaCBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmgKaW5k ZXggM2M2OTk5ZS4uNTExMTkxZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9y YWRlb24uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oCkBAIC02NSw2ICs2 NSw3IEBACiAjaW5jbHVkZSA8bGludXgvbGlzdC5oPgogI2luY2x1ZGUgPGxpbnV4L2tyZWYuaD4K ICNpbmNsdWRlIDxsaW51eC9pbnRlcnZhbF90cmVlLmg+CisjaW5jbHVkZSA8bGludXgvaGFzaHRh YmxlLmg+CiAKICNpbmNsdWRlIDx0dG0vdHRtX2JvX2FwaS5oPgogI2luY2x1ZGUgPHR0bS90dG1f Ym9fZHJpdmVyLmg+CkBAIC00ODcsNiArNDg4LDkgQEAgc3RydWN0IHJhZGVvbl9ibyB7CiAKIAlz dHJ1Y3QgdHRtX2JvX2ttYXBfb2JqCQlkbWFfYnVmX3ZtYXA7CiAJcGlkX3QJCQkJcGlkOworCisJ c3RydWN0IHJhZGVvbl9tbgkJKm1uOworCXN0cnVjdCBpbnRlcnZhbF90cmVlX25vZGUJbW5faXQ7 CiB9OwogI2RlZmluZSBnZW1fdG9fcmFkZW9uX2JvKGdvYmopIGNvbnRhaW5lcl9vZigoZ29iaiks IHN0cnVjdCByYWRlb25fYm8sIGdlbV9iYXNlKQogCkBAIC0xNzI1LDYgKzE3MjksMTEgQEAgdm9p ZCByYWRlb25fdGVzdF9yaW5nX3N5bmMoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJCQkg ICBzdHJ1Y3QgcmFkZW9uX3JpbmcgKmNwQik7CiB2b2lkIHJhZGVvbl90ZXN0X3N5bmNpbmcoc3Ry dWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpOwogCisvKgorICogTU1VIE5vdGlmaWVyCisgKi8KK2lu dCByYWRlb25fbW5fcmVnaXN0ZXIoc3RydWN0IHJhZGVvbl9ibyAqYm8sIHVuc2lnbmVkIGxvbmcg YWRkcik7Cit2b2lkIHJhZGVvbl9tbl91bnJlZ2lzdGVyKHN0cnVjdCByYWRlb25fYm8gKmJvKTsK IAogLyoKICAqIERlYnVnZnMKQEAgLTIzNzIsNiArMjM4MSw5IEBAIHN0cnVjdCByYWRlb25fZGV2 aWNlIHsKIAkvKiB0cmFja2luZyBwaW5uZWQgbWVtb3J5ICovCiAJdTY0IHZyYW1fcGluX3NpemU7 CiAJdTY0IGdhcnRfcGluX3NpemU7CisKKwlzdHJ1Y3QgbXV0ZXgJbW5fbG9jazsKKwlERUNMQVJF X0hBU0hUQUJMRShtbl9oYXNoLCA3KTsKIH07CiAKIGJvb2wgcmFkZW9uX2lzX3B4KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRl b25fZGV2aWNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kZXZpY2UuYwppbmRl eCBjOGVhMDUwLi5jNThmODRmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl9kZXZpY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kZXZpY2Uu YwpAQCAtMTI3MCw2ICsxMjcwLDggQEAgaW50IHJhZGVvbl9kZXZpY2VfaW5pdChzdHJ1Y3QgcmFk ZW9uX2RldmljZSAqcmRldiwKIAlpbml0X3J3c2VtKCZyZGV2LT5wbS5tY2xrX2xvY2spOwogCWlu aXRfcndzZW0oJnJkZXYtPmV4Y2x1c2l2ZV9sb2NrKTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZy ZGV2LT5pcnEudmJsYW5rX3F1ZXVlKTsKKwltdXRleF9pbml0KCZyZGV2LT5tbl9sb2NrKTsKKwlo YXNoX2luaXQocmRldi0+bW5faGFzaCk7CiAJciA9IHJhZGVvbl9nZW1faW5pdChyZGV2KTsKIAlp ZiAocikKIAkJcmV0dXJuIHI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2dlbS5jCmluZGV4IDQ1 MDY1NjAuLjJhNmZiZjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9u X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2dlbS5jCkBAIC0yOTEs NyArMjkxLDggQEAgaW50IHJhZGVvbl9nZW1fdXNlcnB0cl9pb2N0bChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB2b2lkICpkYXRhLAogCiAJLyogcmVqZWN0IHVua25vd24gZmxhZyB2YWx1ZXMgKi8K IAlpZiAoYXJncy0+ZmxhZ3MgJiB+KFJBREVPTl9HRU1fVVNFUlBUUl9SRUFET05MWSB8Ci0JICAg IFJBREVPTl9HRU1fVVNFUlBUUl9BTk9OT05MWSB8IFJBREVPTl9HRU1fVVNFUlBUUl9WQUxJREFU RSkpCisJICAgIFJBREVPTl9HRU1fVVNFUlBUUl9BTk9OT05MWSB8IFJBREVPTl9HRU1fVVNFUlBU Ul9WQUxJREFURSB8CisJICAgIFJBREVPTl9HRU1fVVNFUlBUUl9SRUdJU1RFUikpCiAJCXJldHVy biAtRUlOVkFMOwogCiAJLyogcmVhZG9ubHkgcGFnZXMgbm90IHRlc3RlZCBvbiBvbGRlciBoYXJk d2FyZSAqLwpAQCAtMzEyLDYgKzMxMywxMiBAQCBpbnQgcmFkZW9uX2dlbV91c2VycHRyX2lvY3Rs KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJaWYgKHIpCiAJCWdvdG8gcmVs ZWFzZV9vYmplY3Q7CiAKKwlpZiAoYXJncy0+ZmxhZ3MgJiBSQURFT05fR0VNX1VTRVJQVFJfUkVH SVNURVIpIHsKKwkJciA9IHJhZGVvbl9tbl9yZWdpc3RlcihibywgYXJncy0+YWRkcik7CisJCWlm IChyKQorCQkJZ290byByZWxlYXNlX29iamVjdDsKKwl9CisKIAlpZiAoYXJncy0+ZmxhZ3MgJiBS QURFT05fR0VNX1VTRVJQVFJfVkFMSURBVEUpIHsKIAkJZG93bl9yZWFkKCZjdXJyZW50LT5tbS0+ bW1hcF9zZW0pOwogCQlyID0gcmFkZW9uX2JvX3Jlc2VydmUoYm8sIHRydWUpOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fbW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uX21uLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDE1 N2JjMgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX21u LmMKQEAgLTAsMCArMSwyNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNCBBZHZhbmNlZCBNaWNy byBEZXZpY2VzLCBJbmMuCisgKiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFBlcm1pc3Np b24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFp bmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRh dGlvbiBmaWxlcyAodGhlCisgKiAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUg d2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisgKiB3aXRob3V0IGxpbWl0YXRpb24gdGhl IHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisgKiBkaXN0cmli dXRlLCBzdWIgbGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5k IHRvCisgKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQg dG8gZG8gc28sIHN1YmplY3QgdG8KKyAqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisg KiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBB TlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRF RCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OLUlORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hB TEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSUywgQVVUSE9SUyBBTkQvT1IgSVRTIFNVUFBMSUVS UyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwKKyAqIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZ LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUgorICogT1RIRVJXSVNF LCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJF IE9SIFRIRQorICogVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisg KiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAo aW5jbHVkaW5nIHRoZQorICogbmV4dCBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFs bCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMKKyAqIG9mIHRoZSBTb2Z0d2FyZS4KKyAq CisgKi8KKy8qCisgKiBBdXRob3JzOgorICogICAgQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFu LmtvZW5pZ0BhbWQuY29tPgorICovCisKKyNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgorI2lu Y2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L21tdV9ub3RpZmllci5oPgor I2luY2x1ZGUgPGRybS9kcm1QLmg+CisjaW5jbHVkZSA8ZHJtL2RybS5oPgorCisjaW5jbHVkZSAi cmFkZW9uLmgiCisKK3N0cnVjdCByYWRlb25fbW4geworCS8qIGNvbnN0YW50IGFmdGVyIGluaXRp YWxpc2F0aW9uICovCisJc3RydWN0IHJhZGVvbl9kZXZpY2UJKnJkZXY7CisJc3RydWN0IG1tX3N0 cnVjdAkqbW07CisJc3RydWN0IG1tdV9ub3RpZmllcgltbjsKKworCS8qIG9ubHkgdXNlZCBvbiBk ZXN0cnVjdGlvbiAqLworCXN0cnVjdCB3b3JrX3N0cnVjdAl3b3JrOworCisJLyogcHJvdGVjdGVk IGJ5IHJkZXYtPm1uX2xvY2sgKi8KKwlzdHJ1Y3QgaGxpc3Rfbm9kZQlub2RlOworCisJLyogb2Jq ZWN0cyBwcm90ZWN0ZWQgYnkgbG9jayAqLworCXN0cnVjdCBtdXRleAkJbG9jazsKKwlzdHJ1Y3Qg cmJfcm9vdAkJb2JqZWN0czsKK307CisKKy8qKgorICogcmFkZW9uX21uX2Rlc3Ryb3kgLSBkZXN0 cm95IHRoZSBybW4KKyAqCisgKiBAd29yazogcHJldmlvdXNseSBzaGVkdWxlZCB3b3JrIGl0ZW0K KyAqCisgKiBMYXp5IGRlc3Ryb3lzIHRoZSBub3RpZmllciBmcm9tIGEgd29yayBpdGVtCisgKi8K K3N0YXRpYyB2b2lkIHJhZGVvbl9tbl9kZXN0cm95KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykK K3sKKwlzdHJ1Y3QgcmFkZW9uX21uICpybW4gPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IHJh ZGVvbl9tbiwgd29yayk7CisJc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYgPSBybW4tPnJkZXY7 CisJc3RydWN0IHJhZGVvbl9ibyAqYm8sICpuZXh0OworCisJbXV0ZXhfbG9jaygmcmRldi0+bW5f bG9jayk7CisJbXV0ZXhfbG9jaygmcm1uLT5sb2NrKTsKKwloYXNoX2RlbCgmcm1uLT5ub2RlKTsK KwlyYnRyZWVfcG9zdG9yZGVyX2Zvcl9lYWNoX2VudHJ5X3NhZmUoYm8sIG5leHQsICZybW4tPm9i amVjdHMsIG1uX2l0LnJiKSB7CisJCWludGVydmFsX3RyZWVfcmVtb3ZlKCZiby0+bW5faXQsICZy bW4tPm9iamVjdHMpOworCQliby0+bW4gPSBOVUxMOworCX0KKwltdXRleF91bmxvY2soJnJtbi0+ bG9jayk7CisJbXV0ZXhfdW5sb2NrKCZyZGV2LT5tbl9sb2NrKTsKKwltbXVfbm90aWZpZXJfdW5y ZWdpc3Rlcigmcm1uLT5tbiwgcm1uLT5tbSk7CisJa2ZyZWUocm1uKTsKK30KKworLyoqCisgKiBy YWRlb25fbW5fcmVsZWFzZSAtIGNhbGxiYWNrIHRvIG5vdGlmeSBhYm91dCBtbSBkZXN0cnVjdGlv bgorICoKKyAqIEBtbjogb3VyIG5vdGlmaWVyCisgKiBAbW46IHRoZSBtbSB0aGlzIGNhbGxiYWNr IGlzIGFib3V0CisgKgorICogU2hlZHVsZSBhIHdvcmsgaXRlbSB0byBsYXp5IGRlc3Ryb3kgb3Vy IG5vdGlmaWVyLgorICovCitzdGF0aWMgdm9pZCByYWRlb25fbW5fcmVsZWFzZShzdHJ1Y3QgbW11 X25vdGlmaWVyICptbiwKKwkJCSAgICAgIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQoreworCXN0cnVj dCByYWRlb25fbW4gKnJtbiA9IGNvbnRhaW5lcl9vZihtbiwgc3RydWN0IHJhZGVvbl9tbiwgbW4p OworCUlOSVRfV09SSygmcm1uLT53b3JrLCByYWRlb25fbW5fZGVzdHJveSk7CisJc2NoZWR1bGVf d29yaygmcm1uLT53b3JrKTsKK30KKworLyoqCisgKiByYWRlb25fbW5faW52YWxpZGF0ZV9yYW5n ZV9zdGFydCAtIGNhbGxiYWNrIHRvIG5vdGlmeSBhYm91dCBtbSBjaGFuZ2UKKyAqCisgKiBAbW46 IG91ciBub3RpZmllcgorICogQG1uOiB0aGUgbW0gdGhpcyBjYWxsYmFjayBpcyBhYm91dAorICog QHN0YXJ0OiBzdGFydCBvZiB1cGRhdGVkIHJhbmdlCisgKiBAZW5kOiBlbmQgb2YgdXBkYXRlZCBy YW5nZQorICoKKyAqIFdlIGJsb2NrIGZvciBhbGwgQk9zIGJldHdlZW4gc3RhcnQgYW5kIGVuZCB0 byBiZSBpZGxlIGFuZAorICogdW5tYXAgdGhlbSBieSBtb3ZlIHRoZW0gaW50byBzeXN0ZW0gZG9t YWluIGFnYWluLgorICovCitzdGF0aWMgdm9pZCByYWRlb25fbW5faW52YWxpZGF0ZV9yYW5nZV9z dGFydChzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwKKwkJCQkJICAgICBzdHJ1Y3QgbW1fc3RydWN0 ICptbSwKKwkJCQkJICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0LAorCQkJCQkgICAgIHVuc2lnbmVk IGxvbmcgZW5kKQoreworCXN0cnVjdCByYWRlb25fbW4gKnJtbiA9IGNvbnRhaW5lcl9vZihtbiwg c3RydWN0IHJhZGVvbl9tbiwgbW4pOworCXN0cnVjdCBpbnRlcnZhbF90cmVlX25vZGUgKml0Owor CisJLyogbm90aWZpY2F0aW9uIGlzIGV4Y2x1c2l2ZSwgYnV0IGludGVydmFsIGlzIGluY2x1c2l2 ZSAqLworCWVuZCAtPSAxOworCisJbXV0ZXhfbG9jaygmcm1uLT5sb2NrKTsKKworCWl0ID0gaW50 ZXJ2YWxfdHJlZV9pdGVyX2ZpcnN0KCZybW4tPm9iamVjdHMsIHN0YXJ0LCBlbmQpOworCXdoaWxl IChpdCkgeworCQlzdHJ1Y3QgcmFkZW9uX2JvICpibzsKKwkJaW50IHI7CisKKwkJYm8gPSBjb250 YWluZXJfb2YoaXQsIHN0cnVjdCByYWRlb25fYm8sIG1uX2l0KTsKKwkJaXQgPSBpbnRlcnZhbF90 cmVlX2l0ZXJfbmV4dChpdCwgc3RhcnQsIGVuZCk7CisKKwkJciA9IHJhZGVvbl9ib19yZXNlcnZl KGJvLCB0cnVlKTsKKwkJaWYgKHIpIHsKKwkJCURSTV9FUlJPUigiKCVkKSBmYWlsZWQgdG8gcmVz ZXJ2ZSB1c2VyIGJvXG4iLCByKTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJaWYgKGJvLT50Ym8u c3luY19vYmopIHsKKwkJCXIgPSByYWRlb25fZmVuY2Vfd2FpdChiby0+dGJvLnN5bmNfb2JqLCBm YWxzZSk7CisJCQlpZiAocikKKwkJCQlEUk1fRVJST1IoIiglZCkgZmFpbGVkIHRvIHdhaXQgZm9y IHVzZXIgYm9cbiIsIHIpOworCQl9CisKKwkJcmFkZW9uX3R0bV9wbGFjZW1lbnRfZnJvbV9kb21h aW4oYm8sIFJBREVPTl9HRU1fRE9NQUlOX0NQVSk7CisJCXIgPSB0dG1fYm9fdmFsaWRhdGUoJmJv LT50Ym8sICZiby0+cGxhY2VtZW50LCBmYWxzZSwgZmFsc2UpOworCQlpZiAocikKKwkJCURSTV9F UlJPUigiKCVkKSBmYWlsZWQgdG8gdmFsaWRhdGUgdXNlciBib1xuIiwgcik7CisKKwkJcmFkZW9u X2JvX3VucmVzZXJ2ZShibyk7CisJfQorCQorCW11dGV4X3VubG9jaygmcm1uLT5sb2NrKTsKK30K Kworc3RhdGljIGNvbnN0IHN0cnVjdCBtbXVfbm90aWZpZXJfb3BzIHJhZGVvbl9tbl9vcHMgPSB7 CisJLnJlbGVhc2UgPSByYWRlb25fbW5fcmVsZWFzZSwKKwkuaW52YWxpZGF0ZV9yYW5nZV9zdGFy dCA9IHJhZGVvbl9tbl9pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0LAorfTsKKworLyoqCisgKiByYWRl b25fbW5fZ2V0IC0gY3JlYXRlIG5vdGlmaWVyIGNvbnRleHQKKyAqCisgKiBAcmRldjogcmFkZW9u IGRldmljZSBwb2ludGVyCisgKgorICogQ3JlYXRlcyBhIG5vdGlmaWVyIGNvbnRleHQgZm9yIGN1 cnJlbnQtPm1tLgorICovCitzdGF0aWMgc3RydWN0IHJhZGVvbl9tbiAqcmFkZW9uX21uX2dldChz dHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKK3sKKwlzdHJ1Y3QgbW1fc3RydWN0ICptbSA9IGN1 cnJlbnQtPm1tOworCXN0cnVjdCByYWRlb25fbW4gKnJtbjsKKwlpbnQgcjsKKworCWRvd25fd3Jp dGUoJm1tLT5tbWFwX3NlbSk7CisJbXV0ZXhfbG9jaygmcmRldi0+bW5fbG9jayk7CisKKwloYXNo X2Zvcl9lYWNoX3Bvc3NpYmxlKHJkZXYtPm1uX2hhc2gsIHJtbiwgbm9kZSwgKHVuc2lnbmVkIGxv bmcpbW0pCisJCWlmIChybW4tPm1tID09IG1tKQorCQkJZ290byByZWxlYXNlX2xvY2tzOworCisJ cm1uID0ga3phbGxvYyhzaXplb2YoKnJtbiksIEdGUF9LRVJORUwpOworCWlmICghcm1uKSB7CisJ CXJtbiA9IEVSUl9QVFIoLUVOT01FTSk7CisJCWdvdG8gcmVsZWFzZV9sb2NrczsKKwl9CisKKwly bW4tPnJkZXYgPSByZGV2OworCXJtbi0+bW0gPSBtbTsKKwlybW4tPm1uLm9wcyA9ICZyYWRlb25f bW5fb3BzOworCW11dGV4X2luaXQoJnJtbi0+bG9jayk7CisJcm1uLT5vYmplY3RzID0gUkJfUk9P VDsKKwkKKwlyID0gX19tbXVfbm90aWZpZXJfcmVnaXN0ZXIoJnJtbi0+bW4sIG1tKTsKKwlpZiAo cikKKwkJZ290byBmcmVlX3JtbjsKKworCWhhc2hfYWRkKHJkZXYtPm1uX2hhc2gsICZybW4tPm5v ZGUsICh1bnNpZ25lZCBsb25nKW1tKTsKKworcmVsZWFzZV9sb2NrczoKKwltdXRleF91bmxvY2so JnJkZXYtPm1uX2xvY2spOworCXVwX3dyaXRlKCZtbS0+bW1hcF9zZW0pOworCisJcmV0dXJuIHJt bjsKKworZnJlZV9ybW46CisJbXV0ZXhfdW5sb2NrKCZyZGV2LT5tbl9sb2NrKTsKKwl1cF93cml0 ZSgmbW0tPm1tYXBfc2VtKTsKKwlrZnJlZShybW4pOworCisJcmV0dXJuIEVSUl9QVFIocik7Cit9 CisKKy8qKgorICogcmFkZW9uX21uX3JlZ2lzdGVyIC0gcmVnaXN0ZXIgYSBCTyBmb3Igbm90aWZp ZXIgdXBkYXRlcworICoKKyAqIEBibzogcmFkZW9uIGJ1ZmZlciBvYmplY3QKKyAqIEBhZGRyOiB1 c2VycHRyIGFkZHIgd2Ugc2hvdWxkIG1vbml0b3IKKyAqCisgKiBSZWdpc3RlcnMgYW4gTU1VIG5v dGlmaWVyIGZvciB0aGUgZ2l2ZW4gQk8gYXQgdGhlIHNwZWNpZmllZCBhZGRyZXNzLgorICogUmV0 dXJucyAwIG9uIHN1Y2Nlc3MsIC1FUlJOTyBpZiBhbnl0aGluZyBnb2VzIHdyb25nLgorICovCitp bnQgcmFkZW9uX21uX3JlZ2lzdGVyKHN0cnVjdCByYWRlb25fYm8gKmJvLCB1bnNpZ25lZCBsb25n IGFkZHIpCit7CisJdW5zaWduZWQgbG9uZyBlbmQgPSBhZGRyICsgcmFkZW9uX2JvX3NpemUoYm8p IC0gMTsKKwlzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiA9IGJvLT5yZGV2OworCXN0cnVjdCBy YWRlb25fbW4gKnJtbjsKKwlzdHJ1Y3QgaW50ZXJ2YWxfdHJlZV9ub2RlICppdDsKKworCXJtbiA9 IHJhZGVvbl9tbl9nZXQocmRldik7CisJaWYgKElTX0VSUihybW4pKQorCQlyZXR1cm4gUFRSX0VS UihybW4pOworCisJbXV0ZXhfbG9jaygmcm1uLT5sb2NrKTsKKworCWl0ID0gaW50ZXJ2YWxfdHJl ZV9pdGVyX2ZpcnN0KCZybW4tPm9iamVjdHMsIGFkZHIsIGVuZCk7CisJaWYgKGl0KSB7CisJCW11 dGV4X3VubG9jaygmcm1uLT5sb2NrKTsKKwkJcmV0dXJuIC1FRVhJU1Q7CisJfQorCisJYm8tPm1u ID0gcm1uOworCWJvLT5tbl9pdC5zdGFydCA9IGFkZHI7CisJYm8tPm1uX2l0Lmxhc3QgPSBlbmQ7 CisJaW50ZXJ2YWxfdHJlZV9pbnNlcnQoJmJvLT5tbl9pdCwgJnJtbi0+b2JqZWN0cyk7CisKKwlt dXRleF91bmxvY2soJnJtbi0+bG9jayk7CisKKwlyZXR1cm4gMDsKK30KKworLyoqCisgKiByYWRl b25fbW5fdW5yZWdpc3RlciAtIHVucmVnaXN0ZXIgYSBCTyBmb3Igbm90aWZpZXIgdXBkYXRlcwor ICoKKyAqIEBibzogcmFkZW9uIGJ1ZmZlciBvYmplY3QKKyAqCisgKiBSZW1vdmUgYW55IHJlZ2lz dHJhdGlvbiBvZiBNTVUgbm90aWZpZXIgdXBkYXRlcyBmcm9tIHRoZSBidWZmZXIgb2JqZWN0Lgor ICovCit2b2lkIHJhZGVvbl9tbl91bnJlZ2lzdGVyKHN0cnVjdCByYWRlb25fYm8gKmJvKQorewor CXN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2ID0gYm8tPnJkZXY7CisJc3RydWN0IHJhZGVvbl9t biAqcm1uOworCisJbXV0ZXhfbG9jaygmcmRldi0+bW5fbG9jayk7CisJcm1uID0gYm8tPm1uOwor CWlmIChybW4gPT0gTlVMTCkgeworCQltdXRleF91bmxvY2soJnJkZXYtPm1uX2xvY2spOworCQly ZXR1cm47CisJfQorCisJbXV0ZXhfbG9jaygmcm1uLT5sb2NrKTsKKwlpbnRlcnZhbF90cmVlX3Jl bW92ZSgmYm8tPm1uX2l0LCAmcm1uLT5vYmplY3RzKTsKKwliby0+bW4gPSBOVUxMOworCW11dGV4 X3VubG9jaygmcm1uLT5sb2NrKTsKKwltdXRleF91bmxvY2soJnJkZXYtPm1uX2xvY2spOworfQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fb2JqZWN0LmMgYi9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuYwppbmRleCBjNzNjMWUzLi4yODc1MjM4 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuYwpAQCAtNzUsNiArNzUsNyBA QCBzdGF0aWMgdm9pZCByYWRlb25fdHRtX2JvX2Rlc3Ryb3koc3RydWN0IHR0bV9idWZmZXJfb2Jq ZWN0ICp0Ym8pCiAJYm8gPSBjb250YWluZXJfb2YodGJvLCBzdHJ1Y3QgcmFkZW9uX2JvLCB0Ym8p OwogCiAJcmFkZW9uX3VwZGF0ZV9tZW1vcnlfdXNhZ2UoYm8sIGJvLT50Ym8ubWVtLm1lbV90eXBl LCAtMSk7CisJcmFkZW9uX21uX3VucmVnaXN0ZXIoYm8pOwogCiAJbXV0ZXhfbG9jaygmYm8tPnJk ZXYtPmdlbS5tdXRleCk7CiAJbGlzdF9kZWxfaW5pdCgmYm8tPmxpc3QpOwpkaWZmIC0tZ2l0IGEv aW5jbHVkZS91YXBpL2RybS9yYWRlb25fZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL3JhZGVvbl9k cm0uaAppbmRleCA1ZGM2MWMyLi5jNzc0OTVmIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvZHJt L3JhZGVvbl9kcm0uaAorKysgYi9pbmNsdWRlL3VhcGkvZHJtL3JhZGVvbl9kcm0uaApAQCAtODE4 LDYgKzgxOCw3IEBAIHN0cnVjdCBkcm1fcmFkZW9uX2dlbV9jcmVhdGUgewogI2RlZmluZSBSQURF T05fR0VNX1VTRVJQVFJfUkVBRE9OTFkJKDEgPDwgMCkKICNkZWZpbmUgUkFERU9OX0dFTV9VU0VS UFRSX0FOT05PTkxZCSgxIDw8IDEpCiAjZGVmaW5lIFJBREVPTl9HRU1fVVNFUlBUUl9WQUxJREFU RQkoMSA8PCAyKQorI2RlZmluZSBSQURFT05fR0VNX1VTRVJQVFJfUkVHSVNURVIJKDEgPDwgMykK IAogc3RydWN0IGRybV9yYWRlb25fZ2VtX3VzZXJwdHIgewogCXVpbnQ2NF90CQlhZGRyOwotLSAK MS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRy aS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==