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 v5 Date: Mon, 28 Jul 2014 13:30:08 +0200 Message-ID: <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 B9F466E1F3 for ; Mon, 28 Jul 2014 04:30:27 -0700 (PDT) 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 RnJvbTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgoKVGhpcyBw YXRjaCBhZGRzIGFuIElPQ1RMIGZvciB0dXJuaW5nIGEgcG9pbnRlciBzdXBwbGllZCBieQp1c2Vy c3BhY2UgaW50byBhIGJ1ZmZlciBvYmplY3QuCgpJdCBpbXBvc2VzIHNldmVyYWwgcmVzdHJpY3Rp b25zIHVwb24gdGhlIG1lbW9yeSBiZWluZyBtYXBwZWQ6CgoxLiBJdCBtdXN0IGJlIHBhZ2UgYWxp Z25lZCAoYm90aCBzdGFydC9lbmQgYWRkcmVzc2VzLCBpLmUgcHRyIGFuZCBzaXplKS4KCjIuIEl0 IG11c3QgYmUgbm9ybWFsIHN5c3RlbSBtZW1vcnksIG5vdCBhIHBvaW50ZXIgaW50byBhbm90aGVy IG1hcCBvZiBJTwpzcGFjZSAoZS5nLiBpdCBtdXN0IG5vdCBiZSBhIEdUVCBtbWFwcGluZyBvZiBh bm90aGVyIG9iamVjdCkuCgozLiBUaGUgQk8gaXMgbWFwcGVkIGludG8gR1RULCBzbyB0aGUgbWF4 aW11bSBhbW91bnQgb2YgbWVtb3J5IG1hcHBlZCBhdAphbGwgdGltZXMgaXMgc3RpbGwgdGhlIEdU VCBsaW1pdC4KCjQuIFRoZSBCTyBpcyBvbmx5IG1hcHBlZCByZWFkb25seSBmb3Igbm93LCBzbyBu byB3cml0ZSBzdXBwb3J0LgoKNS4gTGlzdCBvZiBiYWNraW5nIHBhZ2VzIGlzIG9ubHkgYWNxdWly ZWQgb25jZSwgc28gdGhleSByZXByZXNlbnQgYQpzbmFwc2hvdCBvZiB0aGUgZmlyc3QgdXNlLgoK RXhwb3J0aW5nIGFuZCBzaGFyaW5nIGFzIHdlbGwgYXMgbWFwcGluZyBvZiBidWZmZXIgb2JqZWN0 cyBjcmVhdGVkIGJ5CnRoaXMgZnVuY3Rpb24gaXMgZm9yYmlkZGVuIGFuZCByZXN1bHRzIGluIGFu IC1FUEVSTS4KCnYyOiBzcXVhc2ggYWxsIHByZXZpb3VzIGNoYW5nZXMgaW50byBmaXJzdCBwdWJs aWMgdmVyc2lvbgp2MzogZml4IHRhYnMsIG1hcCByZWFkb25seSwgZG9uJ3QgdXNlIE1NIGNhbGxi YWNrIGFueSBtb3JlCnY0OiBzZXQgVFRNX1BBR0VfRkxBR19TRyBzbyB0aGF0IFRUTSBuZXZlciBt ZXNzZXMgd2l0aCB0aGUgcGFnZXMsCiAgICBwaW4vdW5waW4gcGFnZXMgb24gYmluZC91bmJpbmQg aW5zdGVhZCBvZiBwb3B1bGF0ZS91bnBvcHVsYXRlCnY1OiByZWJhc2VkIG9uIDMuMTctd2lwLCBJ T0NUTCByZW5hbWVkIHRvIHVzZXJwdHIsIHJlamVjdCBhbnkgdW5rbm93bgogICAgZmxhZ3MsIGJl dHRlciBoYW5kbGUgUkVBRE9OTFkgZmxhZywgaW1wcm92ZSBwZXJtaXNzaW9uIGNoZWNrCgpTaWdu ZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+ClJl dmlld2VkLWJ5OiBBbGV4IERldWNoZXIgPGFsZXhhbmRlci5kZXVjaGVyQGFtZC5jb20+ICh2NCkK UmV2aWV3ZWQtYnk6IErDqXLDtG1lIEdsaXNzZSA8amdsaXNzZUByZWRoYXQuY29tPiAodjQpCi0t LQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaCAgICAgICAgfCAgIDUgKysKIGRyaXZl cnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2NzLmMgICAgIHwgIDI1ICsrKysrKy0KIGRyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX2Rydi5jICAgIHwgICA1ICstCiBkcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3JhZGVvbl9nZW0uYyAgICB8ICA2OCArKysrKysrKysrKysrKysrKysKIGRyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX2ttcy5jICAgIHwgICAxICsKIGRyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uX29iamVjdC5jIHwgICAzICsKIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFk ZW9uX3ByaW1lLmMgIHwgIDEwICsrKwogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdHRt LmMgICAgfCAxMjcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl92bS5jICAgICB8ICAgMyArCiBpbmNsdWRlL3VhcGkvZHJtL3Jh ZGVvbl9kcm0uaCAgICAgICAgICB8ICAxMSArKysKIDEwIGZpbGVzIGNoYW5nZWQsIDI1NSBpbnNl cnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uLmggYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oCmluZGV4IGNk MGQ5NjAuLjJiMzYzZjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9u LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaApAQCAtMjEyOCw2ICsyMTI4 LDggQEAgaW50IHJhZGVvbl9nZW1faW5mb19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2 b2lkICpkYXRhLAogCQkJICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHApOwogaW50IHJhZGVvbl9nZW1f Y3JlYXRlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCQkgICAg c3RydWN0IGRybV9maWxlICpmaWxwKTsKK2ludCByYWRlb25fZ2VtX3VzZXJwdHJfaW9jdGwoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCSAgICAgc3RydWN0IGRybV9maWxl ICpmaWxwKTsKIGludCByYWRlb25fZ2VtX3Bpbl9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB2b2lkICpkYXRhLAogCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKIGludCByYWRl b25fZ2VtX3VucGluX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCkBA IC0yODU4LDYgKzI4NjAsOSBAQCBleHRlcm4gdm9pZCByYWRlb25fbGVnYWN5X3NldF9jbG9ja19n YXRpbmcoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIGludCBlbmFibAogZXh0ZXJuIHZvaWQg cmFkZW9uX2F0b21fc2V0X2Nsb2NrX2dhdGluZyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwg aW50IGVuYWJsZSk7CiBleHRlcm4gdm9pZCByYWRlb25fdHRtX3BsYWNlbWVudF9mcm9tX2RvbWFp bihzdHJ1Y3QgcmFkZW9uX2JvICpyYm8sIHUzMiBkb21haW4pOwogZXh0ZXJuIGJvb2wgcmFkZW9u X3R0bV9ib19pc19yYWRlb25fYm8oc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibyk7CitleHRl cm4gaW50IHJhZGVvbl90dG1fdHRfc2V0X3VzZXJwdHIoc3RydWN0IHR0bV90dCAqdHRtLCB1aW50 NjRfdCBhZGRyLAorCQkJCSAgICAgdWludDMyX3QgZmxhZ3MpOworZXh0ZXJuIGJvb2wgcmFkZW9u X3R0bV90dF9oYXNfdXNlcnB0cihzdHJ1Y3QgdHRtX3R0ICp0dG0pOwogZXh0ZXJuIHZvaWQgcmFk ZW9uX3ZyYW1fbG9jYXRpb24oc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRl b25fbWMgKm1jLCB1NjQgYmFzZSk7CiBleHRlcm4gdm9pZCByYWRlb25fZ3R0X2xvY2F0aW9uKHN0 cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX21jICptYyk7CiBleHRlcm4g aW50IHJhZGVvbl9yZXN1bWVfa21zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGJvb2wgcmVzdW1l LCBib29sIGZiY29uKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9u X2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jcy5jCmluZGV4IGVlNzEyYzEu LjEzMjE0OTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2NzLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY3MuYwpAQCAtNzgsNyArNzgsOCBA QCBzdGF0aWMgaW50IHJhZGVvbl9jc19wYXJzZXJfcmVsb2NzKHN0cnVjdCByYWRlb25fY3NfcGFy c2VyICpwKQogCXN0cnVjdCByYWRlb25fY3NfY2h1bmsgKmNodW5rOwogCXN0cnVjdCByYWRlb25f Y3NfYnVja2V0cyBidWNrZXRzOwogCXVuc2lnbmVkIGksIGo7Ci0JYm9vbCBkdXBsaWNhdGU7CisJ Ym9vbCBkdXBsaWNhdGUsIG5lZWRfbW1hcF9sb2NrID0gZmFsc2U7CisJaW50IHI7CiAKIAlpZiAo cC0+Y2h1bmtfcmVsb2NzX2lkeCA9PSAtMSkgewogCQlyZXR1cm4gMDsKQEAgLTE2NCw2ICsxNjUs MTkgQEAgc3RhdGljIGludCByYWRlb25fY3NfcGFyc2VyX3JlbG9jcyhzdHJ1Y3QgcmFkZW9uX2Nz X3BhcnNlciAqcCkKIAkJCXAtPnJlbG9jc1tpXS5hbGxvd2VkX2RvbWFpbnMgPSBkb21haW47CiAJ CX0KIAorCQlpZiAocmFkZW9uX3R0bV90dF9oYXNfdXNlcnB0cihwLT5yZWxvY3NbaV0ucm9iai0+ dGJvLnR0bSkpIHsKKwkJCXVpbnQzMl90IGRvbWFpbiA9IHAtPnJlbG9jc1tpXS5wcmVmZXJlZF9k b21haW5zOworCQkJaWYgKCEoZG9tYWluICYgUkFERU9OX0dFTV9ET01BSU5fR1RUKSkgeworCQkJ CURSTV9FUlJPUigiT25seSBSQURFT05fR0VNX0RPTUFJTl9HVFQgaXMgIgorCQkJCQkgICJhbGxv d2VkIGZvciB1c2VycHRyIEJPc1xuIik7CisJCQkJcmV0dXJuIC1FSU5WQUw7CisJCQl9CisJCQlu ZWVkX21tYXBfbG9jayA9IHRydWU7CisJCQlkb21haW4gPSBSQURFT05fR0VNX0RPTUFJTl9HVFQ7 CisJCQlwLT5yZWxvY3NbaV0ucHJlZmVyZWRfZG9tYWlucyA9IGRvbWFpbjsKKwkJCXAtPnJlbG9j c1tpXS5hbGxvd2VkX2RvbWFpbnMgPSBkb21haW47CisJCX0KKwogCQlwLT5yZWxvY3NbaV0udHYu Ym8gPSAmcC0+cmVsb2NzW2ldLnJvYmotPnRibzsKIAkJcC0+cmVsb2NzW2ldLmhhbmRsZSA9IHIt PmhhbmRsZTsKIApAQCAtMTc2LDggKzE5MCwxNSBAQCBzdGF0aWMgaW50IHJhZGVvbl9jc19wYXJz ZXJfcmVsb2NzKHN0cnVjdCByYWRlb25fY3NfcGFyc2VyICpwKQogCWlmIChwLT5jc19mbGFncyAm IFJBREVPTl9DU19VU0VfVk0pCiAJCXAtPnZtX2JvcyA9IHJhZGVvbl92bV9nZXRfYm9zKHAtPnJk ZXYsIHAtPmliLnZtLAogCQkJCQkgICAgICAmcC0+dmFsaWRhdGVkKTsKKwlpZiAobmVlZF9tbWFw X2xvY2spCisJCWRvd25fcmVhZCgmY3VycmVudC0+bW0tPm1tYXBfc2VtKTsKKworCXIgPSByYWRl b25fYm9fbGlzdF92YWxpZGF0ZShwLT5yZGV2LCAmcC0+dGlja2V0LCAmcC0+dmFsaWRhdGVkLCBw LT5yaW5nKTsKIAotCXJldHVybiByYWRlb25fYm9fbGlzdF92YWxpZGF0ZShwLT5yZGV2LCAmcC0+ dGlja2V0LCAmcC0+dmFsaWRhdGVkLCBwLT5yaW5nKTsKKwlpZiAobmVlZF9tbWFwX2xvY2spCisJ CXVwX3JlYWQoJmN1cnJlbnQtPm1tLT5tbWFwX3NlbSk7CisKKwlyZXR1cm4gcjsKIH0KIAogc3Rh dGljIGludCByYWRlb25fY3NfZ2V0X3Jpbmcoc3RydWN0IHJhZGVvbl9jc19wYXJzZXIgKnAsIHUz MiByaW5nLCBzMzIgcHJpb3JpdHkpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbl9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Rydi5jCmluZGV4 IDU5Yjc0ZDIuLjZhNzhhY2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFk ZW9uX2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Rydi5jCkBAIC0x MTIsNiArMTEyLDkgQEAgaW50IHJhZGVvbl9nZW1fb2JqZWN0X29wZW4oc3RydWN0IGRybV9nZW1f b2JqZWN0ICpvYmosCiAJCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwogdm9pZCByYWRl b25fZ2VtX29iamVjdF9jbG9zZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKIAkJCQlzdHJ1 Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitzdHJ1Y3QgZG1hX2J1ZiAqcmFkZW9uX2dlbV9wcmlt ZV9leHBvcnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkJc3RydWN0IGRybV9nZW1fb2Jq ZWN0ICpnb2JqLAorCQkJCQlpbnQgZmxhZ3MpOwogZXh0ZXJuIGludCByYWRlb25fZ2V0X2NydGNf c2Nhbm91dHBvcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0YywKIAkJCQkgICAgICB1 bnNpZ25lZCBpbnQgZmxhZ3MsCiAJCQkJICAgICAgaW50ICp2cG9zLCBpbnQgKmhwb3MsIGt0aW1l X3QgKnN0aW1lLApAQCAtNTYyLDcgKzU2NSw3IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBr bXNfZHJpdmVyID0gewogCiAJLnByaW1lX2hhbmRsZV90b19mZCA9IGRybV9nZW1fcHJpbWVfaGFu ZGxlX3RvX2ZkLAogCS5wcmltZV9mZF90b19oYW5kbGUgPSBkcm1fZ2VtX3ByaW1lX2ZkX3RvX2hh bmRsZSwKLQkuZ2VtX3ByaW1lX2V4cG9ydCA9IGRybV9nZW1fcHJpbWVfZXhwb3J0LAorCS5nZW1f cHJpbWVfZXhwb3J0ID0gcmFkZW9uX2dlbV9wcmltZV9leHBvcnQsCiAJLmdlbV9wcmltZV9pbXBv cnQgPSBkcm1fZ2VtX3ByaW1lX2ltcG9ydCwKIAkuZ2VtX3ByaW1lX3BpbiA9IHJhZGVvbl9nZW1f cHJpbWVfcGluLAogCS5nZW1fcHJpbWVfdW5waW4gPSByYWRlb25fZ2VtX3ByaW1lX3VucGluLApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZ2VtLmMgYi9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9nZW0uYwppbmRleCBjZjk2NmZkLi4wNWI5NjYxIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9nZW0uYworKysgYi9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9nZW0uYwpAQCAtMjc0LDYgKzI3NCw2NSBAQCBpbnQgcmFk ZW9uX2dlbV9jcmVhdGVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwK IAlyZXR1cm4gMDsKIH0KIAoraW50IHJhZGVvbl9nZW1fdXNlcnB0cl9pb2N0bChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHAp Cit7CisJc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYgPSBkZXYtPmRldl9wcml2YXRlOworCXN0 cnVjdCBkcm1fcmFkZW9uX2dlbV91c2VycHRyICphcmdzID0gZGF0YTsKKwlzdHJ1Y3QgZHJtX2dl bV9vYmplY3QgKmdvYmo7CisJc3RydWN0IHJhZGVvbl9ibyAqYm87CisJdWludDMyX3QgaGFuZGxl OworCWludCByOworCisJaWYgKG9mZnNldF9pbl9wYWdlKGFyZ3MtPmFkZHIgfCBhcmdzLT5zaXpl KSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwkvKiB3ZSBvbmx5IHN1cHBvcnQgcmVhZCBvbmx5IG1h cHBpbmdzIGZvciBub3cgKi8KKwlpZiAoIShhcmdzLT5mbGFncyAmIFJBREVPTl9HRU1fVVNFUlBU Ul9SRUFET05MWSkpCisJCXJldHVybiAtRUFDQ0VTOworCisJLyogcmVqZWN0IHVua25vd24gZmxh ZyB2YWx1ZXMgKi8KKwlpZiAoYXJncy0+ZmxhZ3MgJiB+UkFERU9OX0dFTV9VU0VSUFRSX1JFQURP TkxZKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCS8qIHJlYWRvbmx5IHBhZ2VzIG5vdCB0ZXN0ZWQg b24gb2xkZXIgaGFyZHdhcmUgKi8KKwlpZiAocmRldi0+ZmFtaWx5IDwgQ0hJUF9SNjAwKQorCQly ZXR1cm4gLUVJTlZBTDsKKworCWRvd25fcmVhZCgmcmRldi0+ZXhjbHVzaXZlX2xvY2spOworCisJ LyogY3JlYXRlIGEgZ2VtIG9iamVjdCB0byBjb250YWluIHRoaXMgb2JqZWN0IGluICovCisJciA9 IHJhZGVvbl9nZW1fb2JqZWN0X2NyZWF0ZShyZGV2LCBhcmdzLT5zaXplLCAwLAorCQkJCSAgICAg UkFERU9OX0dFTV9ET01BSU5fQ1BVLCAwLAorCQkJCSAgICAgZmFsc2UsICZnb2JqKTsKKwlpZiAo cikKKwkJZ290byBoYW5kbGVfbG9ja3VwOworCisJYm8gPSBnZW1fdG9fcmFkZW9uX2JvKGdvYmop OworCXIgPSByYWRlb25fdHRtX3R0X3NldF91c2VycHRyKGJvLT50Ym8udHRtLCBhcmdzLT5hZGRy LCBhcmdzLT5mbGFncyk7CisJaWYgKHIpCisJCWdvdG8gcmVsZWFzZV9vYmplY3Q7CisKKwlyID0g ZHJtX2dlbV9oYW5kbGVfY3JlYXRlKGZpbHAsIGdvYmosICZoYW5kbGUpOworCS8qIGRyb3AgcmVm ZXJlbmNlIGZyb20gYWxsb2NhdGUgLSBoYW5kbGUgaG9sZHMgaXQgbm93ICovCisJZHJtX2dlbV9v YmplY3RfdW5yZWZlcmVuY2VfdW5sb2NrZWQoZ29iaik7CisJaWYgKHIpCisJCWdvdG8gaGFuZGxl X2xvY2t1cDsKKworCWFyZ3MtPmhhbmRsZSA9IGhhbmRsZTsKKwl1cF9yZWFkKCZyZGV2LT5leGNs dXNpdmVfbG9jayk7CisJcmV0dXJuIDA7CisKK3JlbGVhc2Vfb2JqZWN0OgorCWRybV9nZW1fb2Jq ZWN0X3VucmVmZXJlbmNlX3VubG9ja2VkKGdvYmopOworCitoYW5kbGVfbG9ja3VwOgorCXVwX3Jl YWQoJnJkZXYtPmV4Y2x1c2l2ZV9sb2NrKTsKKwlyID0gcmFkZW9uX2dlbV9oYW5kbGVfbG9ja3Vw KHJkZXYsIHIpOworCisJcmV0dXJuIHI7Cit9CisKIGludCByYWRlb25fZ2VtX3NldF9kb21haW5f aW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCQlzdHJ1Y3QgZHJt X2ZpbGUgKmZpbHApCiB7CkBAIC0zMTcsNiArMzc2LDEwIEBAIGludCByYWRlb25fbW9kZV9kdW1i X21tYXAoc3RydWN0IGRybV9maWxlICpmaWxwLAogCQlyZXR1cm4gLUVOT0VOVDsKIAl9CiAJcm9i aiA9IGdlbV90b19yYWRlb25fYm8oZ29iaik7CisJaWYgKHJhZGVvbl90dG1fdHRfaGFzX3VzZXJw dHIocm9iai0+dGJvLnR0bSkpIHsKKwkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2VfdW5sb2Nr ZWQoZ29iaik7CisJCXJldHVybiAtRVBFUk07CisJfQogCSpvZmZzZXRfcCA9IHJhZGVvbl9ib19t bWFwX29mZnNldChyb2JqKTsKIAlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZV91bmxvY2tlZChn b2JqKTsKIAlyZXR1cm4gMDsKQEAgLTUzMiw2ICs1OTUsMTEgQEAgaW50IHJhZGVvbl9nZW1fb3Bf aW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJcmV0dXJuIC1FTk9F TlQ7CiAJfQogCXJvYmogPSBnZW1fdG9fcmFkZW9uX2JvKGdvYmopOworCisJciA9IC1FUEVSTTsK KwlpZiAocmFkZW9uX3R0bV90dF9oYXNfdXNlcnB0cihyb2JqLT50Ym8udHRtKSkKKwkJZ290byBv dXQ7CisKIAlyID0gcmFkZW9uX2JvX3Jlc2VydmUocm9iaiwgZmFsc2UpOwogCWlmICh1bmxpa2Vs eShyKSkKIAkJZ290byBvdXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl9rbXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2ttcy5jCmluZGV4IGQy NWFlNmEuLjY1MmJjYTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9u X2ttcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2ttcy5jCkBAIC04NzQs NSArODc0LDYgQEAgY29uc3Qgc3RydWN0IGRybV9pb2N0bF9kZXNjIHJhZGVvbl9pb2N0bHNfa21z W10gPSB7CiAJRFJNX0lPQ1RMX0RFRl9EUlYoUkFERU9OX0dFTV9CVVNZLCByYWRlb25fZ2VtX2J1 c3lfaW9jdGwsIERSTV9BVVRIfERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwKIAlEUk1f SU9DVExfREVGX0RSVihSQURFT05fR0VNX1ZBLCByYWRlb25fZ2VtX3ZhX2lvY3RsLCBEUk1fQVVU SHxEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCiAJRFJNX0lPQ1RMX0RFRl9EUlYoUkFE RU9OX0dFTV9PUCwgcmFkZW9uX2dlbV9vcF9pb2N0bCwgRFJNX0FVVEh8RFJNX1VOTE9DS0VEfERS TV9SRU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUZfRFJWKFJBREVPTl9HRU1fVVNFUlBUUiwg cmFkZW9uX2dlbV91c2VycHRyX2lvY3RsLCBEUk1fQVVUSHxEUk1fVU5MT0NLRUR8RFJNX1JFTkRF Ul9BTExPVyksCiB9OwogaW50IHJhZGVvbl9tYXhfa21zX2lvY3RsID0gQVJSQVlfU0laRShyYWRl b25faW9jdGxzX2ttcyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl9vYmplY3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5jCmluZGV4 IDc4Yjc0YzguLjcwYTczYTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFk ZW9uX29iamVjdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5j CkBAIC0yNTcsNiArMjU3LDkgQEAgaW50IHJhZGVvbl9ib19waW5fcmVzdHJpY3RlZChzdHJ1Y3Qg cmFkZW9uX2JvICpibywgdTMyIGRvbWFpbiwgdTY0IG1heF9vZmZzZXQsCiB7CiAJaW50IHIsIGk7 CiAKKwlpZiAocmFkZW9uX3R0bV90dF9oYXNfdXNlcnB0cihiby0+dGJvLnR0bSkpCisJCXJldHVy biAtRVBFUk07CisKIAlpZiAoYm8tPnBpbl9jb3VudCkgewogCQliby0+cGluX2NvdW50Kys7CiAJ CWlmIChncHVfYWRkcikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9u X3ByaW1lLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9wcmltZS5jCmluZGV4IGY3 ZTQ4ZDMuLmJiMThiYzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9u X3ByaW1lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fcHJpbWUuYwpAQCAt MTAzLDMgKzEwMywxMyBAQCB2b2lkIHJhZGVvbl9nZW1fcHJpbWVfdW5waW4oc3RydWN0IGRybV9n ZW1fb2JqZWN0ICpvYmopCiAJcmFkZW9uX2JvX3VucGluKGJvKTsKIAlyYWRlb25fYm9fdW5yZXNl cnZlKGJvKTsKIH0KKworc3RydWN0IGRtYV9idWYgKnJhZGVvbl9nZW1fcHJpbWVfZXhwb3J0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkJCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ29iaiwK KwkJCQkJaW50IGZsYWdzKQoreworCXN0cnVjdCByYWRlb25fYm8gKmJvID0gZ2VtX3RvX3JhZGVv bl9ibyhnb2JqKTsKKwlpZiAocmFkZW9uX3R0bV90dF9oYXNfdXNlcnB0cihiby0+dGJvLnR0bSkp CisJCXJldHVybiBFUlJfUFRSKC1FUEVSTSk7CisJcmV0dXJuIGRybV9nZW1fcHJpbWVfZXhwb3J0 KGRldiwgZ29iaiwgZmxhZ3MpOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb25fdHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90dG0uYwppbmRl eCA3MmFmZTgyLi5kYmMxNWVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl90dG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90dG0uYwpAQCAt NTE1LDggKzUxNSw4NiBAQCBzdHJ1Y3QgcmFkZW9uX3R0bV90dCB7CiAJc3RydWN0IHR0bV9kbWFf dHQJCXR0bTsKIAlzdHJ1Y3QgcmFkZW9uX2RldmljZQkJKnJkZXY7CiAJdTY0CQkJCW9mZnNldDsK KworCXVpbnQ2NF90CQkJdXNlcnB0cjsKKwlzdHJ1Y3QgbW1fc3RydWN0CQkqdXNlcm1tOworCXVp bnQzMl90CQkJdXNlcmZsYWdzOwogfTsKIAorLyogcHJlcGFyZSB0aGUgc2cgdGFibGUgd2l0aCB0 aGUgdXNlciBwYWdlcyAqLworc3RhdGljIGludCByYWRlb25fdHRtX3R0X3Bpbl91c2VycHRyKHN0 cnVjdCB0dG1fdHQgKnR0bSkKK3sKKwlzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiA9IHJhZGVv bl9nZXRfcmRldih0dG0tPmJkZXYpOworCXN0cnVjdCByYWRlb25fdHRtX3R0ICpndHQgPSAodm9p ZCAqKXR0bTsKKwl1bnNpZ25lZCBwaW5uZWQgPSAwLCBuZW50czsKKwlpbnQgcjsKKworCWludCB3 cml0ZSA9ICEoZ3R0LT51c2VyZmxhZ3MgJiBSQURFT05fR0VNX1VTRVJQVFJfUkVBRE9OTFkpOwor CWVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcmVjdGlvbiA9IHdyaXRlID8KKwkJRE1BX0JJRElS RUNUSU9OQUwgOiBETUFfVE9fREVWSUNFOworCisJaWYgKGN1cnJlbnQtPm1tICE9IGd0dC0+dXNl cm1tKQorCQlyZXR1cm4gLUVQRVJNOworCisJaWYgKCFhY2Nlc3Nfb2sod3JpdGUgPyBWRVJJRllf V1JJVEUgOiBWRVJJRllfUkVBRCwKKwkJICAgICAgIChjaGFyIF9fdXNlciAqKWd0dC0+dXNlcnB0 ciwKKwkJICAgICAgIHR0bS0+bnVtX3BhZ2VzICogUEFHRV9TSVpFKSkKKwkJcmV0dXJuIC1FRkFV TFQ7CisKKwlkbyB7CisJCXVuc2lnbmVkIG51bV9wYWdlcyA9IHR0bS0+bnVtX3BhZ2VzIC0gcGlu bmVkOworCQl1aW50NjRfdCB1c2VycHRyID0gZ3R0LT51c2VycHRyICsgcGlubmVkICogUEFHRV9T SVpFOworCQlzdHJ1Y3QgcGFnZSAqKnBhZ2VzID0gdHRtLT5wYWdlcyArIHBpbm5lZDsKKworCQly ID0gZ2V0X3VzZXJfcGFnZXMoY3VycmVudCwgY3VycmVudC0+bW0sIHVzZXJwdHIsIG51bV9wYWdl cywKKwkJCQkgICB3cml0ZSwgMCwgcGFnZXMsIE5VTEwpOworCQlpZiAociA8IDApCisJCQlnb3Rv IHJlbGVhc2VfcGFnZXM7CisKKwkJcGlubmVkICs9IHI7CisKKwl9IHdoaWxlIChwaW5uZWQgPCB0 dG0tPm51bV9wYWdlcyk7CisKKwlyID0gc2dfYWxsb2NfdGFibGVfZnJvbV9wYWdlcyh0dG0tPnNn LCB0dG0tPnBhZ2VzLCB0dG0tPm51bV9wYWdlcywgMCwKKwkJCQkgICAgICB0dG0tPm51bV9wYWdl cyA8PCBQQUdFX1NISUZULAorCQkJCSAgICAgIEdGUF9LRVJORUwpOworCWlmIChyKQorCQlnb3Rv IHJlbGVhc2Vfc2c7CisKKwlyID0gLUVOT01FTTsKKwluZW50cyA9IGRtYV9tYXBfc2cocmRldi0+ ZGV2LCB0dG0tPnNnLT5zZ2wsIHR0bS0+c2ctPm5lbnRzLCBkaXJlY3Rpb24pOworCWlmIChuZW50 cyAhPSB0dG0tPnNnLT5uZW50cykKKwkJZ290byByZWxlYXNlX3NnOworCisJZHJtX3ByaW1lX3Nn X3RvX3BhZ2VfYWRkcl9hcnJheXModHRtLT5zZywgdHRtLT5wYWdlcywKKwkJCQkJIGd0dC0+dHRt LmRtYV9hZGRyZXNzLCB0dG0tPm51bV9wYWdlcyk7CisKKwlyZXR1cm4gMDsKKworcmVsZWFzZV9z ZzoKKwlrZnJlZSh0dG0tPnNnKTsKKworcmVsZWFzZV9wYWdlczoKKwlyZWxlYXNlX3BhZ2VzKHR0 bS0+cGFnZXMsIHBpbm5lZCwgMCk7CisJcmV0dXJuIHI7Cit9CisKK3N0YXRpYyB2b2lkIHJhZGVv bl90dG1fdHRfdW5waW5fdXNlcnB0cihzdHJ1Y3QgdHRtX3R0ICp0dG0pCit7CisJc3RydWN0IHJh ZGVvbl9kZXZpY2UgKnJkZXYgPSByYWRlb25fZ2V0X3JkZXYodHRtLT5iZGV2KTsKKwlzdHJ1Y3Qg cmFkZW9uX3R0bV90dCAqZ3R0ID0gKHZvaWQgKil0dG07CisKKwlpbnQgd3JpdGUgPSAhKGd0dC0+ dXNlcmZsYWdzICYgUkFERU9OX0dFTV9VU0VSUFRSX1JFQURPTkxZKTsKKwllbnVtIGRtYV9kYXRh X2RpcmVjdGlvbiBkaXJlY3Rpb24gPSB3cml0ZSA/CisJCURNQV9CSURJUkVDVElPTkFMIDogRE1B X1RPX0RFVklDRTsKKworCS8qIGZyZWUgdGhlIHNnIHRhYmxlIGFuZCBwYWdlcyBhZ2FpbiAqLwor CWRtYV91bm1hcF9zZyhyZGV2LT5kZXYsIHR0bS0+c2ctPnNnbCwgdHRtLT5zZy0+bmVudHMsIGRp cmVjdGlvbik7CisKKwlzZ19mcmVlX3RhYmxlKHR0bS0+c2cpOworCXJlbGVhc2VfcGFnZXModHRt LT5wYWdlcywgdHRtLT5udW1fcGFnZXMsIDApOworfQorCiBzdGF0aWMgaW50IHJhZGVvbl90dG1f YmFja2VuZF9iaW5kKHN0cnVjdCB0dG1fdHQgKnR0bSwKIAkJCQkgICBzdHJ1Y3QgdHRtX21lbV9y ZWcgKmJvX21lbSkKIHsKQEAgLTUyNSw2ICs2MDMsMTEgQEAgc3RhdGljIGludCByYWRlb25fdHRt X2JhY2tlbmRfYmluZChzdHJ1Y3QgdHRtX3R0ICp0dG0sCiAJCVJBREVPTl9HQVJUX1BBR0VfV1JJ VEU7CiAJaW50IHI7CiAKKwlpZiAoZ3R0LT51c2VycHRyKSB7CisJCXJhZGVvbl90dG1fdHRfcGlu X3VzZXJwdHIodHRtKTsKKwkJZmxhZ3MgJj0gflJBREVPTl9HQVJUX1BBR0VfV1JJVEU7CisJfQor CiAJZ3R0LT5vZmZzZXQgPSAodW5zaWduZWQgbG9uZykoYm9fbWVtLT5zdGFydCA8PCBQQUdFX1NI SUZUKTsKIAlpZiAoIXR0bS0+bnVtX3BhZ2VzKSB7CiAJCVdBUk4oMSwgIm5vdGhpbmcgdG8gYmlu ZCAlbHUgcGFnZXMgZm9yIG1yZWcgJXAgYmFjayAlcCFcbiIsCkBAIC01NDcsNiArNjMwLDEwIEBA IHN0YXRpYyBpbnQgcmFkZW9uX3R0bV9iYWNrZW5kX3VuYmluZChzdHJ1Y3QgdHRtX3R0ICp0dG0p CiAJc3RydWN0IHJhZGVvbl90dG1fdHQgKmd0dCA9ICh2b2lkICopdHRtOwogCiAJcmFkZW9uX2dh cnRfdW5iaW5kKGd0dC0+cmRldiwgZ3R0LT5vZmZzZXQsIHR0bS0+bnVtX3BhZ2VzKTsKKworCWlm IChndHQtPnVzZXJwdHIpCisJCXJhZGVvbl90dG1fdHRfdW5waW5fdXNlcnB0cih0dG0pOworCiAJ cmV0dXJuIDA7CiB9CiAKQEAgLTYwMyw2ICs2OTAsMTYgQEAgc3RhdGljIGludCByYWRlb25fdHRt X3R0X3BvcHVsYXRlKHN0cnVjdCB0dG1fdHQgKnR0bSkKIAlpZiAodHRtLT5zdGF0ZSAhPSB0dF91 bnBvcHVsYXRlZCkKIAkJcmV0dXJuIDA7CiAKKwlpZiAoZ3R0LT51c2VycHRyKSB7CisJCXR0bS0+ c2cgPSBrY2FsbG9jKDEsIHNpemVvZihzdHJ1Y3Qgc2dfdGFibGUpLCBHRlBfS0VSTkVMKTsKKwkJ aWYgKCF0dG0tPnNnKQorCQkJcmV0dXJuIC1FTk9NRU07CisKKwkJdHRtLT5wYWdlX2ZsYWdzIHw9 IFRUTV9QQUdFX0ZMQUdfU0c7CisJCXR0bS0+c3RhdGUgPSB0dF91bmJvdW5kOworCQlyZXR1cm4g MDsKKwl9CisKIAlpZiAoc2xhdmUgJiYgdHRtLT5zZykgewogCQlkcm1fcHJpbWVfc2dfdG9fcGFn ZV9hZGRyX2FycmF5cyh0dG0tPnNnLCB0dG0tPnBhZ2VzLAogCQkJCQkJIGd0dC0+dHRtLmRtYV9h ZGRyZXNzLCB0dG0tPm51bV9wYWdlcyk7CkBAIC02NTIsNiArNzQ5LDEyIEBAIHN0YXRpYyB2b2lk IHJhZGVvbl90dG1fdHRfdW5wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0dG0pCiAJdW5zaWduZWQg aTsKIAlib29sIHNsYXZlID0gISEodHRtLT5wYWdlX2ZsYWdzICYgVFRNX1BBR0VfRkxBR19TRyk7 CiAKKwlpZiAoZ3R0LT51c2VycHRyKSB7CisJCWtmcmVlKHR0bS0+c2cpOworCQl0dG0tPnBhZ2Vf ZmxhZ3MgJj0gflRUTV9QQUdFX0ZMQUdfU0c7CisJCXJldHVybjsKKwl9CisKIAlpZiAoc2xhdmUp CiAJCXJldHVybjsKIApAQCAtNjgwLDYgKzc4MywzMCBAQCBzdGF0aWMgdm9pZCByYWRlb25fdHRt X3R0X3VucG9wdWxhdGUoc3RydWN0IHR0bV90dCAqdHRtKQogCXR0bV9wb29sX3VucG9wdWxhdGUo dHRtKTsKIH0KIAoraW50IHJhZGVvbl90dG1fdHRfc2V0X3VzZXJwdHIoc3RydWN0IHR0bV90dCAq dHRtLCB1aW50NjRfdCBhZGRyLAorCQkJICAgICAgdWludDMyX3QgZmxhZ3MpCit7CisJc3RydWN0 IHJhZGVvbl90dG1fdHQgKmd0dCA9ICh2b2lkICopdHRtOworCisJaWYgKGd0dCA9PSBOVUxMKQor CQlyZXR1cm4gLUVJTlZBTDsKKworCWd0dC0+dXNlcnB0ciA9IGFkZHI7CisJZ3R0LT51c2VybW0g PSBjdXJyZW50LT5tbTsKKwlndHQtPnVzZXJmbGFncyA9IGZsYWdzOworCXJldHVybiAwOworfQor Citib29sIHJhZGVvbl90dG1fdHRfaGFzX3VzZXJwdHIoc3RydWN0IHR0bV90dCAqdHRtKQorewor CXN0cnVjdCByYWRlb25fdHRtX3R0ICpndHQgPSAodm9pZCAqKXR0bTsKKworCWlmIChndHQgPT0g TlVMTCkKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJuICEhZ3R0LT51c2VycHRyOworfQorCiBz dGF0aWMgc3RydWN0IHR0bV9ib19kcml2ZXIgcmFkZW9uX2JvX2RyaXZlciA9IHsKIAkudHRtX3R0 X2NyZWF0ZSA9ICZyYWRlb25fdHRtX3R0X2NyZWF0ZSwKIAkudHRtX3R0X3BvcHVsYXRlID0gJnJh ZGVvbl90dG1fdHRfcG9wdWxhdGUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbl92bS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdm0uYwppbmRleCA1 MjdmZWJhLi4wOTkwOGUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl92bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3ZtLmMKQEAgLTg1Miw2 ICs4NTIsOSBAQCBpbnQgcmFkZW9uX3ZtX2JvX3VwZGF0ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAq cmRldiwKIAlib192YS0+ZmxhZ3MgJj0gflJBREVPTl9WTV9QQUdFX1ZBTElEOwogCWJvX3ZhLT5m bGFncyAmPSB+UkFERU9OX1ZNX1BBR0VfU1lTVEVNOwogCWJvX3ZhLT5mbGFncyAmPSB+UkFERU9O X1ZNX1BBR0VfU05PT1BFRDsKKwlpZiAoYm9fdmEtPmJvICYmIHJhZGVvbl90dG1fdHRfaGFzX3Vz ZXJwdHIoYm9fdmEtPmJvLT50Ym8udHRtKSkKKwkJYm9fdmEtPmZsYWdzICY9IH5SQURFT05fVk1f UEFHRV9XUklURUFCTEU7CisKIAlpZiAobWVtKSB7CiAJCWFkZHIgPSBtZW0tPnN0YXJ0IDw8IFBB R0VfU0hJRlQ7CiAJCWlmIChtZW0tPm1lbV90eXBlICE9IFRUTV9QTF9TWVNURU0pIHsKZGlmZiAt LWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vcmFkZW9uX2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9y YWRlb25fZHJtLmgKaW5kZXggNTA5YjJkNy4uYTE4ZWM1NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS91 YXBpL2RybS9yYWRlb25fZHJtLmgKKysrIGIvaW5jbHVkZS91YXBpL2RybS9yYWRlb25fZHJtLmgK QEAgLTUxMSw2ICs1MTEsNyBAQCB0eXBlZGVmIHN0cnVjdCB7CiAjZGVmaW5lIERSTV9SQURFT05f R0VNX0JVU1kJCTB4MmEKICNkZWZpbmUgRFJNX1JBREVPTl9HRU1fVkEJCTB4MmIKICNkZWZpbmUg RFJNX1JBREVPTl9HRU1fT1AJCTB4MmMKKyNkZWZpbmUgRFJNX1JBREVPTl9HRU1fVVNFUlBUUgkJ MHgyZAogCiAjZGVmaW5lIERSTV9JT0NUTF9SQURFT05fQ1BfSU5JVCAgICBEUk1fSU9XKCBEUk1f Q09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9DUF9JTklULCBkcm1fcmFkZW9uX2luaXRfdCkKICNk ZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9DUF9TVEFSVCAgIERSTV9JTyggIERSTV9DT01NQU5EX0JB U0UgKyBEUk1fUkFERU9OX0NQX1NUQVJUKQpAQCAtNTU0LDYgKzU1NSw3IEBAIHR5cGVkZWYgc3Ry dWN0IHsKICNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9HRU1fQlVTWQlEUk1fSU9XUihEUk1fQ09N TUFORF9CQVNFICsgRFJNX1JBREVPTl9HRU1fQlVTWSwgc3RydWN0IGRybV9yYWRlb25fZ2VtX2J1 c3kpCiAjZGVmaW5lIERSTV9JT0NUTF9SQURFT05fR0VNX1ZBCQlEUk1fSU9XUihEUk1fQ09NTUFO RF9CQVNFICsgRFJNX1JBREVPTl9HRU1fVkEsIHN0cnVjdCBkcm1fcmFkZW9uX2dlbV92YSkKICNk ZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9HRU1fT1AJCURSTV9JT1dSKERSTV9DT01NQU5EX0JBU0Ug KyBEUk1fUkFERU9OX0dFTV9PUCwgc3RydWN0IGRybV9yYWRlb25fZ2VtX29wKQorI2RlZmluZSBE Uk1fSU9DVExfUkFERU9OX0dFTV9VU0VSUFRSCURSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBE Uk1fUkFERU9OX0dFTV9VU0VSUFRSLCBzdHJ1Y3QgZHJtX3JhZGVvbl9nZW1fdXNlcnB0cikKIAog dHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9pbml0IHsKIAllbnVtIHsKQEAgLTgwOCw2ICs4MTAs MTUgQEAgc3RydWN0IGRybV9yYWRlb25fZ2VtX2NyZWF0ZSB7CiAJdWludDMyX3QJZmxhZ3M7CiB9 OwogCisjZGVmaW5lIFJBREVPTl9HRU1fVVNFUlBUUl9SRUFET05MWQkweDEKKworc3RydWN0IGRy bV9yYWRlb25fZ2VtX3VzZXJwdHIgeworCXVpbnQ2NF90CQlhZGRyOworCXVpbnQ2NF90CQlzaXpl OworCXVpbnQzMl90CQlmbGFnczsKKwl1aW50MzJfdAkJaGFuZGxlOworfTsKKwogI2RlZmluZSBS QURFT05fVElMSU5HX01BQ1JPCQkJCTB4MQogI2RlZmluZSBSQURFT05fVElMSU5HX01JQ1JPCQkJ CTB4MgogI2RlZmluZSBSQURFT05fVElMSU5HX1NXQVBfMTZCSVQJCQkweDQKLS0gCjEuOS4xCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwg bWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=