From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Christian=20K=C3=B6nig?= Subject: [PATCH 1/5] drm/radeon: add userptr support v7 Date: Tue, 5 Aug 2014 18:05:28 +0200 Message-ID: <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 208646E23A for ; Tue, 5 Aug 2014 09:06:09 -0700 (PDT) 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 RnJvbTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgoKVGhpcyBw YXRjaCBhZGRzIGFuIElPQ1RMIGZvciB0dXJuaW5nIGEgcG9pbnRlciBzdXBwbGllZCBieQp1c2Vy c3BhY2UgaW50byBhIGJ1ZmZlciBvYmplY3QuCgpJdCBpbXBvc2VzIHNldmVyYWwgcmVzdHJpY3Rp b25zIHVwb24gdGhlIG1lbW9yeSBiZWluZyBtYXBwZWQ6CgoxLiBJdCBtdXN0IGJlIHBhZ2UgYWxp Z25lZCAoYm90aCBzdGFydC9lbmQgYWRkcmVzc2VzLCBpLmUgcHRyIGFuZCBzaXplKS4KCjIuIEl0 IG11c3QgYmUgbm9ybWFsIHN5c3RlbSBtZW1vcnksIG5vdCBhIHBvaW50ZXIgaW50byBhbm90aGVy IG1hcCBvZiBJTwpzcGFjZSAoZS5nLiBpdCBtdXN0IG5vdCBiZSBhIEdUVCBtbWFwcGluZyBvZiBh bm90aGVyIG9iamVjdCkuCgozLiBUaGUgQk8gaXMgbWFwcGVkIGludG8gR1RULCBzbyB0aGUgbWF4 aW11bSBhbW91bnQgb2YgbWVtb3J5IG1hcHBlZCBhdAphbGwgdGltZXMgaXMgc3RpbGwgdGhlIEdU VCBsaW1pdC4KCjQuIFRoZSBCTyBpcyBvbmx5IG1hcHBlZCByZWFkb25seSBmb3Igbm93LCBzbyBu byB3cml0ZSBzdXBwb3J0LgoKNS4gTGlzdCBvZiBiYWNraW5nIHBhZ2VzIGlzIG9ubHkgYWNxdWly ZWQgb25jZSwgc28gdGhleSByZXByZXNlbnQgYQpzbmFwc2hvdCBvZiB0aGUgZmlyc3QgdXNlLgoK RXhwb3J0aW5nIGFuZCBzaGFyaW5nIGFzIHdlbGwgYXMgbWFwcGluZyBvZiBidWZmZXIgb2JqZWN0 cyBjcmVhdGVkIGJ5CnRoaXMgZnVuY3Rpb24gaXMgZm9yYmlkZGVuIGFuZCByZXN1bHRzIGluIGFu IC1FUEVSTS4KCnYyOiBzcXVhc2ggYWxsIHByZXZpb3VzIGNoYW5nZXMgaW50byBmaXJzdCBwdWJs aWMgdmVyc2lvbgp2MzogZml4IHRhYnMsIG1hcCByZWFkb25seSwgZG9uJ3QgdXNlIE1NIGNhbGxi YWNrIGFueSBtb3JlCnY0OiBzZXQgVFRNX1BBR0VfRkxBR19TRyBzbyB0aGF0IFRUTSBuZXZlciBt ZXNzZXMgd2l0aCB0aGUgcGFnZXMsCiAgICBwaW4vdW5waW4gcGFnZXMgb24gYmluZC91bmJpbmQg aW5zdGVhZCBvZiBwb3B1bGF0ZS91bnBvcHVsYXRlCnY1OiByZWJhc2VkIG9uIDMuMTctd2lwLCBJ T0NUTCByZW5hbWVkIHRvIHVzZXJwdHIsIHJlamVjdCBhbnkgdW5rbm93bgogICAgZmxhZ3MsIGJl dHRlciBoYW5kbGUgUkVBRE9OTFkgZmxhZywgaW1wcm92ZSBwZXJtaXNzaW9uIGNoZWNrCnY2OiBm aXggcHRyIGNhc3Qgd2FybmluZywgdXNlIHNldF9wYWdlX2RpcnR5L21hcmtfcGFnZV9hY2Nlc3Nl ZCBvbiB1bnBpbgp2NzogYWRkIHdhcm5pbmcgYWJvdXQgaXQncyBhdmFpbGFiaWxpdHkgaW4gdGhl IEFQSSBkZWZpbml0aW9uCgpTaWduZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3Rp YW4ua29lbmlnQGFtZC5jb20+ClJldmlld2VkLWJ5OiBBbGV4IERldWNoZXIgPGFsZXhhbmRlci5k ZXVjaGVyQGFtZC5jb20+ICh2NCkKUmV2aWV3ZWQtYnk6IErDqXLDtG1lIEdsaXNzZSA8amdsaXNz ZUByZWRoYXQuY29tPiAodjQpCi0tLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaCAg ICAgICAgfCAgIDUgKysKIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2NzLmMgICAgIHwg IDI1ICsrKysrLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZHJ2LmMgICAgfCAgIDUg Ky0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2dlbS5jICAgIHwgIDY4ICsrKysrKysr KysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2ttcy5jICAgIHwgICAxICsK IGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5jIHwgICAzICsKIGRyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX3ByaW1lLmMgIHwgIDEwICsrKwogZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb25fdHRtLmMgICAgfCAxMzkgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl92bS5jICAgICB8ICAgMyArCiBp bmNsdWRlL3VhcGkvZHJtL3JhZGVvbl9kcm0uaCAgICAgICAgICB8ICAxNiArKysrCiAxMCBmaWxl cyBjaGFuZ2VkLCAyNzIgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb24uaAppbmRleCA5ZTE3MzJlLi4zYzY5OTllIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9u LmgKQEAgLTIxMzgsNiArMjEzOCw4IEBAIGludCByYWRlb25fZ2VtX2luZm9faW9jdGwoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCSAgc3RydWN0IGRybV9maWxlICpmaWxw KTsKIGludCByYWRlb25fZ2VtX2NyZWF0ZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2 b2lkICpkYXRhLAogCQkJICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlscCk7CitpbnQgcmFkZW9uX2dl bV91c2VycHRyX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkg ICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlscCk7CiBpbnQgcmFkZW9uX2dlbV9waW5faW9jdGwoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZp bGVfcHJpdik7CiBpbnQgcmFkZW9uX2dlbV91bnBpbl9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCB2b2lkICpkYXRhLApAQCAtMjg3MSw2ICsyODczLDkgQEAgZXh0ZXJuIHZvaWQgcmFkZW9u X2xlZ2FjeV9zZXRfY2xvY2tfZ2F0aW5nKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBpbnQg ZW5hYmwKIGV4dGVybiB2b2lkIHJhZGVvbl9hdG9tX3NldF9jbG9ja19nYXRpbmcoc3RydWN0IHJh ZGVvbl9kZXZpY2UgKnJkZXYsIGludCBlbmFibGUpOwogZXh0ZXJuIHZvaWQgcmFkZW9uX3R0bV9w bGFjZW1lbnRfZnJvbV9kb21haW4oc3RydWN0IHJhZGVvbl9ibyAqcmJvLCB1MzIgZG9tYWluKTsK IGV4dGVybiBib29sIHJhZGVvbl90dG1fYm9faXNfcmFkZW9uX2JvKHN0cnVjdCB0dG1fYnVmZmVy X29iamVjdCAqYm8pOworZXh0ZXJuIGludCByYWRlb25fdHRtX3R0X3NldF91c2VycHRyKHN0cnVj dCB0dG1fdHQgKnR0bSwgdWludDY0X3QgYWRkciwKKwkJCQkgICAgIHVpbnQzMl90IGZsYWdzKTsK K2V4dGVybiBib29sIHJhZGVvbl90dG1fdHRfaGFzX3VzZXJwdHIoc3RydWN0IHR0bV90dCAqdHRt KTsKIGV4dGVybiB2b2lkIHJhZGVvbl92cmFtX2xvY2F0aW9uKHN0cnVjdCByYWRlb25fZGV2aWNl ICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX21jICptYywgdTY0IGJhc2UpOwogZXh0ZXJuIHZvaWQgcmFk ZW9uX2d0dF9sb2NhdGlvbihzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVv bl9tYyAqbWMpOwogZXh0ZXJuIGludCByYWRlb25fcmVzdW1lX2ttcyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCBib29sIHJlc3VtZSwgYm9vbCBmYmNvbik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl9jcy5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25f Y3MuYwppbmRleCBlZTcxMmMxLi4xMzIxNDkxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3JhZGVvbl9jcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Nz LmMKQEAgLTc4LDcgKzc4LDggQEAgc3RhdGljIGludCByYWRlb25fY3NfcGFyc2VyX3JlbG9jcyhz dHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAqcCkKIAlzdHJ1Y3QgcmFkZW9uX2NzX2NodW5rICpjaHVu azsKIAlzdHJ1Y3QgcmFkZW9uX2NzX2J1Y2tldHMgYnVja2V0czsKIAl1bnNpZ25lZCBpLCBqOwot CWJvb2wgZHVwbGljYXRlOworCWJvb2wgZHVwbGljYXRlLCBuZWVkX21tYXBfbG9jayA9IGZhbHNl OworCWludCByOwogCiAJaWYgKHAtPmNodW5rX3JlbG9jc19pZHggPT0gLTEpIHsKIAkJcmV0dXJu IDA7CkBAIC0xNjQsNiArMTY1LDE5IEBAIHN0YXRpYyBpbnQgcmFkZW9uX2NzX3BhcnNlcl9yZWxv Y3Moc3RydWN0IHJhZGVvbl9jc19wYXJzZXIgKnApCiAJCQlwLT5yZWxvY3NbaV0uYWxsb3dlZF9k b21haW5zID0gZG9tYWluOwogCQl9CiAKKwkJaWYgKHJhZGVvbl90dG1fdHRfaGFzX3VzZXJwdHIo cC0+cmVsb2NzW2ldLnJvYmotPnRiby50dG0pKSB7CisJCQl1aW50MzJfdCBkb21haW4gPSBwLT5y ZWxvY3NbaV0ucHJlZmVyZWRfZG9tYWluczsKKwkJCWlmICghKGRvbWFpbiAmIFJBREVPTl9HRU1f RE9NQUlOX0dUVCkpIHsKKwkJCQlEUk1fRVJST1IoIk9ubHkgUkFERU9OX0dFTV9ET01BSU5fR1RU IGlzICIKKwkJCQkJICAiYWxsb3dlZCBmb3IgdXNlcnB0ciBCT3NcbiIpOworCQkJCXJldHVybiAt RUlOVkFMOworCQkJfQorCQkJbmVlZF9tbWFwX2xvY2sgPSB0cnVlOworCQkJZG9tYWluID0gUkFE RU9OX0dFTV9ET01BSU5fR1RUOworCQkJcC0+cmVsb2NzW2ldLnByZWZlcmVkX2RvbWFpbnMgPSBk b21haW47CisJCQlwLT5yZWxvY3NbaV0uYWxsb3dlZF9kb21haW5zID0gZG9tYWluOworCQl9CisK IAkJcC0+cmVsb2NzW2ldLnR2LmJvID0gJnAtPnJlbG9jc1tpXS5yb2JqLT50Ym87CiAJCXAtPnJl bG9jc1tpXS5oYW5kbGUgPSByLT5oYW5kbGU7CiAKQEAgLTE3Niw4ICsxOTAsMTUgQEAgc3RhdGlj IGludCByYWRlb25fY3NfcGFyc2VyX3JlbG9jcyhzdHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAqcCkK IAlpZiAocC0+Y3NfZmxhZ3MgJiBSQURFT05fQ1NfVVNFX1ZNKQogCQlwLT52bV9ib3MgPSByYWRl b25fdm1fZ2V0X2JvcyhwLT5yZGV2LCBwLT5pYi52bSwKIAkJCQkJICAgICAgJnAtPnZhbGlkYXRl ZCk7CisJaWYgKG5lZWRfbW1hcF9sb2NrKQorCQlkb3duX3JlYWQoJmN1cnJlbnQtPm1tLT5tbWFw X3NlbSk7CisKKwlyID0gcmFkZW9uX2JvX2xpc3RfdmFsaWRhdGUocC0+cmRldiwgJnAtPnRpY2tl dCwgJnAtPnZhbGlkYXRlZCwgcC0+cmluZyk7CiAKLQlyZXR1cm4gcmFkZW9uX2JvX2xpc3RfdmFs aWRhdGUocC0+cmRldiwgJnAtPnRpY2tldCwgJnAtPnZhbGlkYXRlZCwgcC0+cmluZyk7CisJaWYg KG5lZWRfbW1hcF9sb2NrKQorCQl1cF9yZWFkKCZjdXJyZW50LT5tbS0+bW1hcF9zZW0pOworCisJ cmV0dXJuIHI7CiB9CiAKIHN0YXRpYyBpbnQgcmFkZW9uX2NzX2dldF9yaW5nKHN0cnVjdCByYWRl b25fY3NfcGFyc2VyICpwLCB1MzIgcmluZywgczMyIHByaW9yaXR5KQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbl9kcnYuYwppbmRleCBhNzczODMwLi41YjE4YWY5IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbl9kcnYuYwpAQCAtMTE0LDYgKzExNCw5IEBAIGludCByYWRlb25fZ2VtX29iamVjdF9v cGVuKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLAogCQkJCXN0cnVjdCBkcm1fZmlsZSAqZmls ZV9wcml2KTsKIHZvaWQgcmFkZW9uX2dlbV9vYmplY3RfY2xvc2Uoc3RydWN0IGRybV9nZW1fb2Jq ZWN0ICpvYmosCiAJCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworc3RydWN0IGRtYV9i dWYgKnJhZGVvbl9nZW1fcHJpbWVfZXhwb3J0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkJ CXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ29iaiwKKwkJCQkJaW50IGZsYWdzKTsKIGV4dGVybiBp bnQgcmFkZW9uX2dldF9jcnRjX3NjYW5vdXRwb3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50 IGNydGMsCiAJCQkJICAgICAgdW5zaWduZWQgaW50IGZsYWdzLAogCQkJCSAgICAgIGludCAqdnBv cywgaW50ICpocG9zLCBrdGltZV90ICpzdGltZSwKQEAgLTU2OCw3ICs1NzEsNyBAQCBzdGF0aWMg c3RydWN0IGRybV9kcml2ZXIga21zX2RyaXZlciA9IHsKIAogCS5wcmltZV9oYW5kbGVfdG9fZmQg PSBkcm1fZ2VtX3ByaW1lX2hhbmRsZV90b19mZCwKIAkucHJpbWVfZmRfdG9faGFuZGxlID0gZHJt X2dlbV9wcmltZV9mZF90b19oYW5kbGUsCi0JLmdlbV9wcmltZV9leHBvcnQgPSBkcm1fZ2VtX3By aW1lX2V4cG9ydCwKKwkuZ2VtX3ByaW1lX2V4cG9ydCA9IHJhZGVvbl9nZW1fcHJpbWVfZXhwb3J0 LAogCS5nZW1fcHJpbWVfaW1wb3J0ID0gZHJtX2dlbV9wcmltZV9pbXBvcnQsCiAJLmdlbV9wcmlt ZV9waW4gPSByYWRlb25fZ2VtX3ByaW1lX3BpbiwKIAkuZ2VtX3ByaW1lX3VucGluID0gcmFkZW9u X2dlbV9wcmltZV91bnBpbiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFk ZW9uX2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZ2VtLmMKaW5kZXggYmZk N2UxYi4uOTkzYWIyMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25f Z2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZ2VtLmMKQEAgLTI3Miw2 ICsyNzIsNjUgQEAgaW50IHJhZGVvbl9nZW1fY3JlYXRlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHZvaWQgKmRhdGEsCiAJcmV0dXJuIDA7CiB9CiAKK2ludCByYWRlb25fZ2VtX3VzZXJw dHJfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCSAgICAgc3Ry dWN0IGRybV9maWxlICpmaWxwKQoreworCXN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2ID0gZGV2 LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX3JhZGVvbl9nZW1fdXNlcnB0ciAqYXJncyA9IGRh dGE7CisJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnb2JqOworCXN0cnVjdCByYWRlb25fYm8gKmJv OworCXVpbnQzMl90IGhhbmRsZTsKKwlpbnQgcjsKKworCWlmIChvZmZzZXRfaW5fcGFnZShhcmdz LT5hZGRyIHwgYXJncy0+c2l6ZSkpCisJCXJldHVybiAtRUlOVkFMOworCisJLyogd2Ugb25seSBz dXBwb3J0IHJlYWQgb25seSBtYXBwaW5ncyBmb3Igbm93ICovCisJaWYgKCEoYXJncy0+ZmxhZ3Mg JiBSQURFT05fR0VNX1VTRVJQVFJfUkVBRE9OTFkpKQorCQlyZXR1cm4gLUVBQ0NFUzsKKworCS8q IHJlamVjdCB1bmtub3duIGZsYWcgdmFsdWVzICovCisJaWYgKGFyZ3MtPmZsYWdzICYgflJBREVP Tl9HRU1fVVNFUlBUUl9SRUFET05MWSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwkvKiByZWFkb25s eSBwYWdlcyBub3QgdGVzdGVkIG9uIG9sZGVyIGhhcmR3YXJlICovCisJaWYgKHJkZXYtPmZhbWls eSA8IENISVBfUjYwMCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlkb3duX3JlYWQoJnJkZXYtPmV4 Y2x1c2l2ZV9sb2NrKTsKKworCS8qIGNyZWF0ZSBhIGdlbSBvYmplY3QgdG8gY29udGFpbiB0aGlz IG9iamVjdCBpbiAqLworCXIgPSByYWRlb25fZ2VtX29iamVjdF9jcmVhdGUocmRldiwgYXJncy0+ c2l6ZSwgMCwKKwkJCQkgICAgIFJBREVPTl9HRU1fRE9NQUlOX0NQVSwgMCwKKwkJCQkgICAgIGZh bHNlLCAmZ29iaik7CisJaWYgKHIpCisJCWdvdG8gaGFuZGxlX2xvY2t1cDsKKworCWJvID0gZ2Vt X3RvX3JhZGVvbl9ibyhnb2JqKTsKKwlyID0gcmFkZW9uX3R0bV90dF9zZXRfdXNlcnB0cihiby0+ dGJvLnR0bSwgYXJncy0+YWRkciwgYXJncy0+ZmxhZ3MpOworCWlmIChyKQorCQlnb3RvIHJlbGVh c2Vfb2JqZWN0OworCisJciA9IGRybV9nZW1faGFuZGxlX2NyZWF0ZShmaWxwLCBnb2JqLCAmaGFu ZGxlKTsKKwkvKiBkcm9wIHJlZmVyZW5jZSBmcm9tIGFsbG9jYXRlIC0gaGFuZGxlIGhvbGRzIGl0 IG5vdyAqLworCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlX3VubG9ja2VkKGdvYmopOworCWlm IChyKQorCQlnb3RvIGhhbmRsZV9sb2NrdXA7CisKKwlhcmdzLT5oYW5kbGUgPSBoYW5kbGU7CisJ dXBfcmVhZCgmcmRldi0+ZXhjbHVzaXZlX2xvY2spOworCXJldHVybiAwOworCityZWxlYXNlX29i amVjdDoKKwlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZV91bmxvY2tlZChnb2JqKTsKKworaGFu ZGxlX2xvY2t1cDoKKwl1cF9yZWFkKCZyZGV2LT5leGNsdXNpdmVfbG9jayk7CisJciA9IHJhZGVv bl9nZW1faGFuZGxlX2xvY2t1cChyZGV2LCByKTsKKworCXJldHVybiByOworfQorCiBpbnQgcmFk ZW9uX2dlbV9zZXRfZG9tYWluX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRh dGEsCiAJCQkJc3RydWN0IGRybV9maWxlICpmaWxwKQogewpAQCAtMzE1LDYgKzM3NCwxMCBAQCBp bnQgcmFkZW9uX21vZGVfZHVtYl9tbWFwKHN0cnVjdCBkcm1fZmlsZSAqZmlscCwKIAkJcmV0dXJu IC1FTk9FTlQ7CiAJfQogCXJvYmogPSBnZW1fdG9fcmFkZW9uX2JvKGdvYmopOworCWlmIChyYWRl b25fdHRtX3R0X2hhc191c2VycHRyKHJvYmotPnRiby50dG0pKSB7CisJCWRybV9nZW1fb2JqZWN0 X3VucmVmZXJlbmNlX3VubG9ja2VkKGdvYmopOworCQlyZXR1cm4gLUVQRVJNOworCX0KIAkqb2Zm c2V0X3AgPSByYWRlb25fYm9fbW1hcF9vZmZzZXQocm9iaik7CiAJZHJtX2dlbV9vYmplY3RfdW5y ZWZlcmVuY2VfdW5sb2NrZWQoZ29iaik7CiAJcmV0dXJuIDA7CkBAIC01MzIsNiArNTk1LDExIEBA IGludCByYWRlb25fZ2VtX29wX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRh dGEsCiAJCXJldHVybiAtRU5PRU5UOwogCX0KIAlyb2JqID0gZ2VtX3RvX3JhZGVvbl9ibyhnb2Jq KTsKKworCXIgPSAtRVBFUk07CisJaWYgKHJhZGVvbl90dG1fdHRfaGFzX3VzZXJwdHIocm9iai0+ dGJvLnR0bSkpCisJCWdvdG8gb3V0OworCiAJciA9IHJhZGVvbl9ib19yZXNlcnZlKHJvYmosIGZh bHNlKTsKIAlpZiAodW5saWtlbHkocikpCiAJCWdvdG8gb3V0OwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fa21zLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl9rbXMuYwppbmRleCBlYjcxNjRkLi44MzA5YjExIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl9rbXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl9rbXMuYwpAQCAtODg1LDUgKzg4NSw2IEBAIGNvbnN0IHN0cnVjdCBkcm1faW9jdGxfZGVz YyByYWRlb25faW9jdGxzX2ttc1tdID0gewogCURSTV9JT0NUTF9ERUZfRFJWKFJBREVPTl9HRU1f QlVTWSwgcmFkZW9uX2dlbV9idXN5X2lvY3RsLCBEUk1fQVVUSHxEUk1fVU5MT0NLRUR8RFJNX1JF TkRFUl9BTExPVyksCiAJRFJNX0lPQ1RMX0RFRl9EUlYoUkFERU9OX0dFTV9WQSwgcmFkZW9uX2dl bV92YV9pb2N0bCwgRFJNX0FVVEh8RFJNX1VOTE9DS0VEfERSTV9SRU5ERVJfQUxMT1cpLAogCURS TV9JT0NUTF9ERUZfRFJWKFJBREVPTl9HRU1fT1AsIHJhZGVvbl9nZW1fb3BfaW9jdGwsIERSTV9B VVRIfERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwKKwlEUk1fSU9DVExfREVGX0RSVihS QURFT05fR0VNX1VTRVJQVFIsIHJhZGVvbl9nZW1fdXNlcnB0cl9pb2N0bCwgRFJNX0FVVEh8RFJN X1VOTE9DS0VEfERSTV9SRU5ERVJfQUxMT1cpLAogfTsKIGludCByYWRlb25fbWF4X2ttc19pb2N0 bCA9IEFSUkFZX1NJWkUocmFkZW9uX2lvY3Rsc19rbXMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yYWRlb25fb2JqZWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl9vYmplY3QuYwppbmRleCA0ODBjODdkLi5jNzNjMWUzIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl9vYmplY3QuYwpAQCAtMjY0LDYgKzI2NCw5IEBAIGludCByYWRlb25fYm9fcGlu X3Jlc3RyaWN0ZWQoc3RydWN0IHJhZGVvbl9ibyAqYm8sIHUzMiBkb21haW4sIHU2NCBtYXhfb2Zm c2V0LAogewogCWludCByLCBpOwogCisJaWYgKHJhZGVvbl90dG1fdHRfaGFzX3VzZXJwdHIoYm8t PnRiby50dG0pKQorCQlyZXR1cm4gLUVQRVJNOworCiAJaWYgKGJvLT5waW5fY291bnQpIHsKIAkJ Ym8tPnBpbl9jb3VudCsrOwogCQlpZiAoZ3B1X2FkZHIpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl9wcmltZS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRl b25fcHJpbWUuYwppbmRleCBmN2U0OGQzLi5iYjE4YmM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl9wcmltZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uX3ByaW1lLmMKQEAgLTEwMywzICsxMDMsMTMgQEAgdm9pZCByYWRlb25fZ2VtX3ByaW1l X3VucGluKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQogCXJhZGVvbl9ib191bnBpbihibyk7 CiAJcmFkZW9uX2JvX3VucmVzZXJ2ZShibyk7CiB9CisKK3N0cnVjdCBkbWFfYnVmICpyYWRlb25f Z2VtX3ByaW1lX2V4cG9ydChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCQlzdHJ1Y3QgZHJt X2dlbV9vYmplY3QgKmdvYmosCisJCQkJCWludCBmbGFncykKK3sKKwlzdHJ1Y3QgcmFkZW9uX2Jv ICpibyA9IGdlbV90b19yYWRlb25fYm8oZ29iaik7CisJaWYgKHJhZGVvbl90dG1fdHRfaGFzX3Vz ZXJwdHIoYm8tPnRiby50dG0pKQorCQlyZXR1cm4gRVJSX1BUUigtRVBFUk0pOworCXJldHVybiBk cm1fZ2VtX3ByaW1lX2V4cG9ydChkZXYsIGdvYmosIGZsYWdzKTsKK30KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3R0bS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb25fdHRtLmMKaW5kZXggNzJhZmU4Mi4uMDEwOTA5MCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdHRtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb25fdHRtLmMKQEAgLTM5LDYgKzM5LDggQEAKICNpbmNsdWRlIDxsaW51eC9zZXFfZmls ZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9zd2lvdGxiLmg+ CisjaW5jbHVkZSA8bGludXgvc3dhcC5oPgorI2luY2x1ZGUgPGxpbnV4L3BhZ2VtYXAuaD4KICNp bmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+CiAjaW5jbHVkZSAicmFkZW9uX3JlZy5oIgogI2luY2x1 ZGUgInJhZGVvbi5oIgpAQCAtNTE1LDggKzUxNyw5NiBAQCBzdHJ1Y3QgcmFkZW9uX3R0bV90dCB7 CiAJc3RydWN0IHR0bV9kbWFfdHQJCXR0bTsKIAlzdHJ1Y3QgcmFkZW9uX2RldmljZQkJKnJkZXY7 CiAJdTY0CQkJCW9mZnNldDsKKworCXVpbnQ2NF90CQkJdXNlcnB0cjsKKwlzdHJ1Y3QgbW1fc3Ry dWN0CQkqdXNlcm1tOworCXVpbnQzMl90CQkJdXNlcmZsYWdzOwogfTsKIAorLyogcHJlcGFyZSB0 aGUgc2cgdGFibGUgd2l0aCB0aGUgdXNlciBwYWdlcyAqLworc3RhdGljIGludCByYWRlb25fdHRt X3R0X3Bpbl91c2VycHRyKHN0cnVjdCB0dG1fdHQgKnR0bSkKK3sKKwlzdHJ1Y3QgcmFkZW9uX2Rl dmljZSAqcmRldiA9IHJhZGVvbl9nZXRfcmRldih0dG0tPmJkZXYpOworCXN0cnVjdCByYWRlb25f dHRtX3R0ICpndHQgPSAodm9pZCAqKXR0bTsKKwl1bnNpZ25lZCBwaW5uZWQgPSAwLCBuZW50czsK KwlpbnQgcjsKKworCWludCB3cml0ZSA9ICEoZ3R0LT51c2VyZmxhZ3MgJiBSQURFT05fR0VNX1VT RVJQVFJfUkVBRE9OTFkpOworCWVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcmVjdGlvbiA9IHdy aXRlID8KKwkJRE1BX0JJRElSRUNUSU9OQUwgOiBETUFfVE9fREVWSUNFOworCisJaWYgKGN1cnJl bnQtPm1tICE9IGd0dC0+dXNlcm1tKQorCQlyZXR1cm4gLUVQRVJNOworCisJaWYgKCFhY2Nlc3Nf b2sod3JpdGUgPyBWRVJJRllfV1JJVEUgOiBWRVJJRllfUkVBRCwgKGxvbmcpZ3R0LT51c2VycHRy LAorCQkgICAgICAgdHRtLT5udW1fcGFnZXMgKiBQQUdFX1NJWkUpKQorCQlyZXR1cm4gLUVGQVVM VDsKKworCWRvIHsKKwkJdW5zaWduZWQgbnVtX3BhZ2VzID0gdHRtLT5udW1fcGFnZXMgLSBwaW5u ZWQ7CisJCXVpbnQ2NF90IHVzZXJwdHIgPSBndHQtPnVzZXJwdHIgKyBwaW5uZWQgKiBQQUdFX1NJ WkU7CisJCXN0cnVjdCBwYWdlICoqcGFnZXMgPSB0dG0tPnBhZ2VzICsgcGlubmVkOworCisJCXIg PSBnZXRfdXNlcl9wYWdlcyhjdXJyZW50LCBjdXJyZW50LT5tbSwgdXNlcnB0ciwgbnVtX3BhZ2Vz LAorCQkJCSAgIHdyaXRlLCAwLCBwYWdlcywgTlVMTCk7CisJCWlmIChyIDwgMCkKKwkJCWdvdG8g cmVsZWFzZV9wYWdlczsKKworCQlwaW5uZWQgKz0gcjsKKworCX0gd2hpbGUgKHBpbm5lZCA8IHR0 bS0+bnVtX3BhZ2VzKTsKKworCXIgPSBzZ19hbGxvY190YWJsZV9mcm9tX3BhZ2VzKHR0bS0+c2cs IHR0bS0+cGFnZXMsIHR0bS0+bnVtX3BhZ2VzLCAwLAorCQkJCSAgICAgIHR0bS0+bnVtX3BhZ2Vz IDw8IFBBR0VfU0hJRlQsCisJCQkJICAgICAgR0ZQX0tFUk5FTCk7CisJaWYgKHIpCisJCWdvdG8g cmVsZWFzZV9zZzsKKworCXIgPSAtRU5PTUVNOworCW5lbnRzID0gZG1hX21hcF9zZyhyZGV2LT5k ZXYsIHR0bS0+c2ctPnNnbCwgdHRtLT5zZy0+bmVudHMsIGRpcmVjdGlvbik7CisJaWYgKG5lbnRz ICE9IHR0bS0+c2ctPm5lbnRzKQorCQlnb3RvIHJlbGVhc2Vfc2c7CisKKwlkcm1fcHJpbWVfc2df dG9fcGFnZV9hZGRyX2FycmF5cyh0dG0tPnNnLCB0dG0tPnBhZ2VzLAorCQkJCQkgZ3R0LT50dG0u ZG1hX2FkZHJlc3MsIHR0bS0+bnVtX3BhZ2VzKTsKKworCXJldHVybiAwOworCityZWxlYXNlX3Nn OgorCWtmcmVlKHR0bS0+c2cpOworCityZWxlYXNlX3BhZ2VzOgorCXJlbGVhc2VfcGFnZXModHRt LT5wYWdlcywgcGlubmVkLCAwKTsKKwlyZXR1cm4gcjsKK30KKworc3RhdGljIHZvaWQgcmFkZW9u X3R0bV90dF91bnBpbl91c2VycHRyKHN0cnVjdCB0dG1fdHQgKnR0bSkKK3sKKwlzdHJ1Y3QgcmFk ZW9uX2RldmljZSAqcmRldiA9IHJhZGVvbl9nZXRfcmRldih0dG0tPmJkZXYpOworCXN0cnVjdCBy YWRlb25fdHRtX3R0ICpndHQgPSAodm9pZCAqKXR0bTsKKwlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNn OworCWludCBpOworCisJaW50IHdyaXRlID0gIShndHQtPnVzZXJmbGFncyAmIFJBREVPTl9HRU1f VVNFUlBUUl9SRUFET05MWSk7CisJZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyZWN0aW9uID0g d3JpdGUgPworCQlETUFfQklESVJFQ1RJT05BTCA6IERNQV9UT19ERVZJQ0U7CisKKwkvKiBmcmVl IHRoZSBzZyB0YWJsZSBhbmQgcGFnZXMgYWdhaW4gKi8KKwlkbWFfdW5tYXBfc2cocmRldi0+ZGV2 LCB0dG0tPnNnLT5zZ2wsIHR0bS0+c2ctPm5lbnRzLCBkaXJlY3Rpb24pOworCisJZm9yX2VhY2hf c2codHRtLT5zZy0+c2dsLCBzZywgdHRtLT5zZy0+bmVudHMsIGkpIHsKKwkJc3RydWN0IHBhZ2Ug KnBhZ2UgPSBzZ19wYWdlKHNnKTsKKworCQlpZiAoIShndHQtPnVzZXJmbGFncyAmIFJBREVPTl9H RU1fVVNFUlBUUl9SRUFET05MWSkpCisJCQlzZXRfcGFnZV9kaXJ0eShwYWdlKTsKKworCQltYXJr X3BhZ2VfYWNjZXNzZWQocGFnZSk7CisJCXBhZ2VfY2FjaGVfcmVsZWFzZShwYWdlKTsKKwl9CisK KwlzZ19mcmVlX3RhYmxlKHR0bS0+c2cpOworfQorCiBzdGF0aWMgaW50IHJhZGVvbl90dG1fYmFj a2VuZF9iaW5kKHN0cnVjdCB0dG1fdHQgKnR0bSwKIAkJCQkgICBzdHJ1Y3QgdHRtX21lbV9yZWcg KmJvX21lbSkKIHsKQEAgLTUyNSw2ICs2MTUsMTEgQEAgc3RhdGljIGludCByYWRlb25fdHRtX2Jh Y2tlbmRfYmluZChzdHJ1Y3QgdHRtX3R0ICp0dG0sCiAJCVJBREVPTl9HQVJUX1BBR0VfV1JJVEU7 CiAJaW50IHI7CiAKKwlpZiAoZ3R0LT51c2VycHRyKSB7CisJCXJhZGVvbl90dG1fdHRfcGluX3Vz ZXJwdHIodHRtKTsKKwkJZmxhZ3MgJj0gflJBREVPTl9HQVJUX1BBR0VfV1JJVEU7CisJfQorCiAJ Z3R0LT5vZmZzZXQgPSAodW5zaWduZWQgbG9uZykoYm9fbWVtLT5zdGFydCA8PCBQQUdFX1NISUZU KTsKIAlpZiAoIXR0bS0+bnVtX3BhZ2VzKSB7CiAJCVdBUk4oMSwgIm5vdGhpbmcgdG8gYmluZCAl bHUgcGFnZXMgZm9yIG1yZWcgJXAgYmFjayAlcCFcbiIsCkBAIC01NDcsNiArNjQyLDEwIEBAIHN0 YXRpYyBpbnQgcmFkZW9uX3R0bV9iYWNrZW5kX3VuYmluZChzdHJ1Y3QgdHRtX3R0ICp0dG0pCiAJ c3RydWN0IHJhZGVvbl90dG1fdHQgKmd0dCA9ICh2b2lkICopdHRtOwogCiAJcmFkZW9uX2dhcnRf dW5iaW5kKGd0dC0+cmRldiwgZ3R0LT5vZmZzZXQsIHR0bS0+bnVtX3BhZ2VzKTsKKworCWlmIChn dHQtPnVzZXJwdHIpCisJCXJhZGVvbl90dG1fdHRfdW5waW5fdXNlcnB0cih0dG0pOworCiAJcmV0 dXJuIDA7CiB9CiAKQEAgLTYwMyw2ICs3MDIsMTYgQEAgc3RhdGljIGludCByYWRlb25fdHRtX3R0 X3BvcHVsYXRlKHN0cnVjdCB0dG1fdHQgKnR0bSkKIAlpZiAodHRtLT5zdGF0ZSAhPSB0dF91bnBv cHVsYXRlZCkKIAkJcmV0dXJuIDA7CiAKKwlpZiAoZ3R0LT51c2VycHRyKSB7CisJCXR0bS0+c2cg PSBrY2FsbG9jKDEsIHNpemVvZihzdHJ1Y3Qgc2dfdGFibGUpLCBHRlBfS0VSTkVMKTsKKwkJaWYg KCF0dG0tPnNnKQorCQkJcmV0dXJuIC1FTk9NRU07CisKKwkJdHRtLT5wYWdlX2ZsYWdzIHw9IFRU TV9QQUdFX0ZMQUdfU0c7CisJCXR0bS0+c3RhdGUgPSB0dF91bmJvdW5kOworCQlyZXR1cm4gMDsK Kwl9CisKIAlpZiAoc2xhdmUgJiYgdHRtLT5zZykgewogCQlkcm1fcHJpbWVfc2dfdG9fcGFnZV9h ZGRyX2FycmF5cyh0dG0tPnNnLCB0dG0tPnBhZ2VzLAogCQkJCQkJIGd0dC0+dHRtLmRtYV9hZGRy ZXNzLCB0dG0tPm51bV9wYWdlcyk7CkBAIC02NTIsNiArNzYxLDEyIEBAIHN0YXRpYyB2b2lkIHJh ZGVvbl90dG1fdHRfdW5wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0dG0pCiAJdW5zaWduZWQgaTsK IAlib29sIHNsYXZlID0gISEodHRtLT5wYWdlX2ZsYWdzICYgVFRNX1BBR0VfRkxBR19TRyk7CiAK KwlpZiAoZ3R0LT51c2VycHRyKSB7CisJCWtmcmVlKHR0bS0+c2cpOworCQl0dG0tPnBhZ2VfZmxh Z3MgJj0gflRUTV9QQUdFX0ZMQUdfU0c7CisJCXJldHVybjsKKwl9CisKIAlpZiAoc2xhdmUpCiAJ CXJldHVybjsKIApAQCAtNjgwLDYgKzc5NSwzMCBAQCBzdGF0aWMgdm9pZCByYWRlb25fdHRtX3R0 X3VucG9wdWxhdGUoc3RydWN0IHR0bV90dCAqdHRtKQogCXR0bV9wb29sX3VucG9wdWxhdGUodHRt KTsKIH0KIAoraW50IHJhZGVvbl90dG1fdHRfc2V0X3VzZXJwdHIoc3RydWN0IHR0bV90dCAqdHRt LCB1aW50NjRfdCBhZGRyLAorCQkJICAgICAgdWludDMyX3QgZmxhZ3MpCit7CisJc3RydWN0IHJh ZGVvbl90dG1fdHQgKmd0dCA9ICh2b2lkICopdHRtOworCisJaWYgKGd0dCA9PSBOVUxMKQorCQly ZXR1cm4gLUVJTlZBTDsKKworCWd0dC0+dXNlcnB0ciA9IGFkZHI7CisJZ3R0LT51c2VybW0gPSBj dXJyZW50LT5tbTsKKwlndHQtPnVzZXJmbGFncyA9IGZsYWdzOworCXJldHVybiAwOworfQorCiti b29sIHJhZGVvbl90dG1fdHRfaGFzX3VzZXJwdHIoc3RydWN0IHR0bV90dCAqdHRtKQoreworCXN0 cnVjdCByYWRlb25fdHRtX3R0ICpndHQgPSAodm9pZCAqKXR0bTsKKworCWlmIChndHQgPT0gTlVM TCkKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJuICEhZ3R0LT51c2VycHRyOworfQorCiBzdGF0 aWMgc3RydWN0IHR0bV9ib19kcml2ZXIgcmFkZW9uX2JvX2RyaXZlciA9IHsKIAkudHRtX3R0X2Ny ZWF0ZSA9ICZyYWRlb25fdHRtX3R0X2NyZWF0ZSwKIAkudHRtX3R0X3BvcHVsYXRlID0gJnJhZGVv bl90dG1fdHRfcG9wdWxhdGUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl92bS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdm0uYwppbmRleCBjY2Fl NGQ5Li5lNDE0ODFjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl92 bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3ZtLmMKQEAgLTg4OCw2ICs4 ODgsOSBAQCBpbnQgcmFkZW9uX3ZtX2JvX3VwZGF0ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRl diwKIAlib192YS0+ZmxhZ3MgJj0gflJBREVPTl9WTV9QQUdFX1ZBTElEOwogCWJvX3ZhLT5mbGFn cyAmPSB+UkFERU9OX1ZNX1BBR0VfU1lTVEVNOwogCWJvX3ZhLT5mbGFncyAmPSB+UkFERU9OX1ZN X1BBR0VfU05PT1BFRDsKKwlpZiAoYm9fdmEtPmJvICYmIHJhZGVvbl90dG1fdHRfaGFzX3VzZXJw dHIoYm9fdmEtPmJvLT50Ym8udHRtKSkKKwkJYm9fdmEtPmZsYWdzICY9IH5SQURFT05fVk1fUEFH RV9XUklURUFCTEU7CisKIAlpZiAobWVtKSB7CiAJCWFkZHIgPSBtZW0tPnN0YXJ0IDw8IFBBR0Vf U0hJRlQ7CiAJCWlmIChtZW0tPm1lbV90eXBlICE9IFRUTV9QTF9TWVNURU0pIHsKZGlmZiAtLWdp dCBhL2luY2x1ZGUvdWFwaS9kcm0vcmFkZW9uX2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9yYWRl b25fZHJtLmgKaW5kZXggNTA5YjJkNy4uM2E5ZjIwOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBp L2RybS9yYWRlb25fZHJtLmgKKysrIGIvaW5jbHVkZS91YXBpL2RybS9yYWRlb25fZHJtLmgKQEAg LTUxMSw2ICs1MTEsNyBAQCB0eXBlZGVmIHN0cnVjdCB7CiAjZGVmaW5lIERSTV9SQURFT05fR0VN X0JVU1kJCTB4MmEKICNkZWZpbmUgRFJNX1JBREVPTl9HRU1fVkEJCTB4MmIKICNkZWZpbmUgRFJN X1JBREVPTl9HRU1fT1AJCTB4MmMKKyNkZWZpbmUgRFJNX1JBREVPTl9HRU1fVVNFUlBUUgkJMHgy ZAogCiAjZGVmaW5lIERSTV9JT0NUTF9SQURFT05fQ1BfSU5JVCAgICBEUk1fSU9XKCBEUk1fQ09N TUFORF9CQVNFICsgRFJNX1JBREVPTl9DUF9JTklULCBkcm1fcmFkZW9uX2luaXRfdCkKICNkZWZp bmUgRFJNX0lPQ1RMX1JBREVPTl9DUF9TVEFSVCAgIERSTV9JTyggIERSTV9DT01NQU5EX0JBU0Ug KyBEUk1fUkFERU9OX0NQX1NUQVJUKQpAQCAtNTU0LDYgKzU1NSw3IEBAIHR5cGVkZWYgc3RydWN0 IHsKICNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9HRU1fQlVTWQlEUk1fSU9XUihEUk1fQ09NTUFO RF9CQVNFICsgRFJNX1JBREVPTl9HRU1fQlVTWSwgc3RydWN0IGRybV9yYWRlb25fZ2VtX2J1c3kp CiAjZGVmaW5lIERSTV9JT0NUTF9SQURFT05fR0VNX1ZBCQlEUk1fSU9XUihEUk1fQ09NTUFORF9C QVNFICsgRFJNX1JBREVPTl9HRU1fVkEsIHN0cnVjdCBkcm1fcmFkZW9uX2dlbV92YSkKICNkZWZp bmUgRFJNX0lPQ1RMX1JBREVPTl9HRU1fT1AJCURSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBE Uk1fUkFERU9OX0dFTV9PUCwgc3RydWN0IGRybV9yYWRlb25fZ2VtX29wKQorI2RlZmluZSBEUk1f SU9DVExfUkFERU9OX0dFTV9VU0VSUFRSCURSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1f UkFERU9OX0dFTV9VU0VSUFRSLCBzdHJ1Y3QgZHJtX3JhZGVvbl9nZW1fdXNlcnB0cikKIAogdHlw ZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9pbml0IHsKIAllbnVtIHsKQEAgLTgwOCw2ICs4MTAsMjAg QEAgc3RydWN0IGRybV9yYWRlb25fZ2VtX2NyZWF0ZSB7CiAJdWludDMyX3QJZmxhZ3M7CiB9Owog CisvKgorICogVGhpcyBpcyBub3QgYSByZWxpYWJsZSBBUEkgYW5kIHlvdSBzaG91bGQgZXhwZWN0 IGl0IHRvIGZhaWwgZm9yIGFueQorICogbnVtYmVyIG9mIHJlYXNvbnMgYW5kIGhhdmUgZmFsbGJh Y2sgcGF0aCB0aGF0IGRvIG5vdCB1c2UgdXNlcnB0ciB0bworICogcGVyZm9ybSBhbnkgb3BlcmF0 aW9uLgorICovCisjZGVmaW5lIFJBREVPTl9HRU1fVVNFUlBUUl9SRUFET05MWQkoMSA8PCAwKQor CitzdHJ1Y3QgZHJtX3JhZGVvbl9nZW1fdXNlcnB0ciB7CisJdWludDY0X3QJCWFkZHI7CisJdWlu dDY0X3QJCXNpemU7CisJdWludDMyX3QJCWZsYWdzOworCXVpbnQzMl90CQloYW5kbGU7Cit9Owor CiAjZGVmaW5lIFJBREVPTl9USUxJTkdfTUFDUk8JCQkJMHgxCiAjZGVmaW5lIFJBREVPTl9USUxJ TkdfTUlDUk8JCQkJMHgyCiAjZGVmaW5lIFJBREVPTl9USUxJTkdfU1dBUF8xNkJJVAkJCTB4NAot LSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==