From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Hunter Subject: [PATCH 1/7] drm/cirrus: phase 1 - use the transitional helpers Date: Wed, 5 Aug 2015 15:22:50 +0800 Message-ID: <1438759376-4509-2-git-send-email-zhjwpku@gmail.com> References: <1438759376-4509-1-git-send-email-zhjwpku@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from pku.edu.cn (mx13.pku.edu.cn [162.105.129.176]) by gabe.freedesktop.org (Postfix) with ESMTP id 4693F72093 for ; Wed, 5 Aug 2015 00:22:55 -0700 (PDT) In-Reply-To: <1438759376-4509-1-git-send-email-zhjwpku@gmail.com> 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: Daniel Vetter , Matthew Garrett , Dave Airlie List-Id: dri-devel@lists.freedesktop.org RnJvbTogWmhhbyBKdW53YW5nIDx6aGp3cGt1QGdtYWlsLmNvbT4KCi1yZWdpc3RlciBkcml2ZXIn cyBvd24gcHJpbWFyeSBwbGFuZQotdXNlIGRybV9jcnRjX2luaXRfd2l0aF9wbGFuZXMgaW5zdGVh ZCBkcm1fY3J0Y19pbml0CgotdGhlIG5ldyBhdG9taWNfaW5mcmFzdHJ1Y3R1cmUgbmVlZHMgLT5t b2RlX3NldF9ub2ZiIGNhbGxiYWNrCgpDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBm ZndsbC5jaD4KQ2M6IEdlcmQgSG9mZm1hbm4gPGtyYXhlbEByZWRoYXQuY29tPgpDYzogTWF0dGhl dyBHYXJyZXR0IDxtamc1OUBjb3Jlb3MuY29tPgpDYzogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVk aGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogWmhhbyBKdW53YW5nIDx6aGp3cGt1QGdtYWlsLmNvbT4K LS0tCiBkcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c19kcnYuYyAgfCAgICAxIC0KIGRyaXZl cnMvZ3B1L2RybS9jaXJydXMvY2lycnVzX2Rydi5oICB8ICAgIDMgKy0KIGRyaXZlcnMvZ3B1L2Ry bS9jaXJydXMvY2lycnVzX21haW4uYyB8ICAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9jaXJydXMv Y2lycnVzX21vZGUuYyB8ICAyMDEgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQog NCBmaWxlcyBjaGFuZ2VkLCAxMjkgaW5zZXJ0aW9ucygrKSwgNzggZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNfZHJ2LmMgYi9kcml2ZXJzL2dw dS9kcm0vY2lycnVzL2NpcnJ1c19kcnYuYwppbmRleCAwOGJkMTc2Li44MGYxY2QyIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c19kcnYuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vY2lycnVzL2NpcnJ1c19kcnYuYwpAQCAtNDAsNyArNDAsNiBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IHBjaV9kZXZpY2VfaWQgcGNpaWRsaXN0W10gPSB7CiAJezAsfQogfTsKIAotCiBzdGF0 aWMgaW50IGNpcnJ1c19raWNrX291dF9maXJtd2FyZV9mYihzdHJ1Y3QgcGNpX2RldiAqcGRldikK IHsKIAlzdHJ1Y3QgYXBlcnR1cmVzX3N0cnVjdCAqYXA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vY2lycnVzL2NpcnJ1c19kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVz X2Rydi5oCmluZGV4IDcwNTA2MTUuLmJkMWZmNTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9jaXJydXMvY2lycnVzX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVz X2Rydi5oCkBAIC0xMzUsOCArMTM1LDkgQEAgc3RydWN0IGNpcnJ1c19kZXZpY2UgewogCXJlc291 cmNlX3NpemVfdAkJCXJtbWlvX3NpemU7CiAJdm9pZCBfX2lvbWVtCQkJKnJtbWlvOwogCi0Jc3Ry dWN0IGNpcnJ1c19tYwkJCW1jOworCXN0cnVjdCBjaXJydXNfbWMJCW1jOwogCXN0cnVjdCBjaXJy dXNfbW9kZV9pbmZvCQltb2RlX2luZm87CisJc3RydWN0IGRybV9wbGFuZQkJcHJpbWFyeTsKIAog CWludAkJCQludW1fY3J0YzsKIAlpbnQgZmJfbXRycjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9jaXJydXMvY2lycnVzX21haW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVz X21haW4uYwppbmRleCBlNGI5NzY2Li5kOTVkZTM0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vY2lycnVzL2NpcnJ1c19tYWluLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJy dXNfbWFpbi5jCkBAIC0zMDgsMTAgKzMwOCwxMCBAQCBjaXJydXNfZHVtYl9tbWFwX29mZnNldChz dHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCiAKIAlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZShvYmop OwogCXJldCA9IDA7CisKIG91dF91bmxvY2s6CiAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9t dXRleCk7CiAJcmV0dXJuIHJldDsKLQogfQogCiBib29sIGNpcnJ1c19jaGVja19mcmFtZWJ1ZmZl cihzdHJ1Y3QgY2lycnVzX2RldmljZSAqY2RldiwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNfbW9kZS5jIGIvZHJpdmVycy9n cHUvZHJtL2NpcnJ1cy9jaXJydXNfbW9kZS5jCmluZGV4IDYxMzg1ZjIuLjdhN2M4NzQgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzX21vZGUuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vY2lycnVzL2NpcnJ1c19tb2RlLmMKQEAgLTI3LDYgKzI3LDEwIEBACiAjZGVmaW5l IFBBTEVUVEVfSU5ERVggMHg4CiAjZGVmaW5lIFBBTEVUVEVfREFUQSAweDkKIAorc3RhdGljIGNv bnN0IHVpbnQzMl90IGNpcnJ1c19wcmltYXJ5X2Zvcm1hdHNbXSA9IHsKKwlEUk1fRk9STUFUX1JH Qjg4OCwKK307CisKIC8qCiAgKiBUaGlzIGZpbGUgY29udGFpbnMgc2V0dXAgY29kZSBmb3IgdGhl IENSVEMuCiAgKi8KQEAgLTEyNiw3NyArMTMwLDExIEBAIHN0YXRpYyB2b2lkIGNpcnJ1c19zZXRf c3RhcnRfYWRkcmVzcyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHVuc2lnbmVkIG9mZnNldCkKIAlX UkVHX0NSVCgweDFkLCB0bXApOwogfQogCi0vKiBjaXJydXMgaXMgZGlmZmVyZW50IC0gd2Ugd2ls bCBmb3JjZSBtb3ZlIGJ1ZmZlcnMgb3V0IG9mIFZSQU0gKi8KLXN0YXRpYyBpbnQgY2lycnVzX2Ny dGNfZG9fc2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLAotCQkJCXN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKmZiLAotCQkJCWludCB4LCBpbnQgeSwgaW50IGF0b21pYykKLXsKLQlzdHJ1Y3Qg Y2lycnVzX2RldmljZSAqY2RldiA9IGNydGMtPmRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IGRy bV9nZW1fb2JqZWN0ICpvYmo7Ci0Jc3RydWN0IGNpcnJ1c19mcmFtZWJ1ZmZlciAqY2lycnVzX2Zi OwotCXN0cnVjdCBjaXJydXNfYm8gKmJvOwotCWludCByZXQ7Ci0JdTY0IGdwdV9hZGRyOwotCi0J LyogcHVzaCB0aGUgcHJldmlvdXMgZmIgdG8gc3lzdGVtIHJhbSAqLwotCWlmICghYXRvbWljICYm IGZiKSB7Ci0JCWNpcnJ1c19mYiA9IHRvX2NpcnJ1c19mcmFtZWJ1ZmZlcihmYik7Ci0JCW9iaiA9 IGNpcnJ1c19mYi0+b2JqOwotCQlibyA9IGdlbV90b19jaXJydXNfYm8ob2JqKTsKLQkJcmV0ID0g Y2lycnVzX2JvX3Jlc2VydmUoYm8sIGZhbHNlKTsKLQkJaWYgKHJldCkKLQkJCXJldHVybiByZXQ7 Ci0JCWNpcnJ1c19ib19wdXNoX3N5c3JhbShibyk7Ci0JCWNpcnJ1c19ib191bnJlc2VydmUoYm8p OwotCX0KLQotCWNpcnJ1c19mYiA9IHRvX2NpcnJ1c19mcmFtZWJ1ZmZlcihjcnRjLT5wcmltYXJ5 LT5mYik7Ci0Jb2JqID0gY2lycnVzX2ZiLT5vYmo7Ci0JYm8gPSBnZW1fdG9fY2lycnVzX2JvKG9i aik7Ci0KLQlyZXQgPSBjaXJydXNfYm9fcmVzZXJ2ZShibywgZmFsc2UpOwotCWlmIChyZXQpCi0J CXJldHVybiByZXQ7Ci0KLQlyZXQgPSBjaXJydXNfYm9fcGluKGJvLCBUVE1fUExfRkxBR19WUkFN LCAmZ3B1X2FkZHIpOwotCWlmIChyZXQpIHsKLQkJY2lycnVzX2JvX3VucmVzZXJ2ZShibyk7Ci0J CXJldHVybiByZXQ7Ci0JfQotCi0JaWYgKCZjZGV2LT5tb2RlX2luZm8uZ2ZiZGV2LT5nZmIgPT0g Y2lycnVzX2ZiKSB7Ci0JCS8qIGlmIHB1c2hpbmcgY29uc29sZSBpbiBrbWFwIGl0ICovCi0JCXJl dCA9IHR0bV9ib19rbWFwKCZiby0+Ym8sIDAsIGJvLT5iby5udW1fcGFnZXMsICZiby0+a21hcCk7 Ci0JCWlmIChyZXQpCi0JCQlEUk1fRVJST1IoImZhaWxlZCB0byBrbWFwIGZiY29uXG4iKTsKLQl9 Ci0JY2lycnVzX2JvX3VucmVzZXJ2ZShibyk7Ci0KLQljaXJydXNfc2V0X3N0YXJ0X2FkZHJlc3Mo Y3J0YywgKHUzMilncHVfYWRkcik7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgY2lycnVz X2NydGNfbW9kZV9zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGludCB4LCBpbnQgeSwK LQkJCSAgICAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqb2xkX2ZiKQotewotCXJldHVybiBjaXJy dXNfY3J0Y19kb19zZXRfYmFzZShjcnRjLCBvbGRfZmIsIHgsIHksIDApOwotfQotCi0vKgotICog VGhlIG1lYXQgb2YgdGhpcyBkcml2ZXIuIFRoZSBjb3JlIHBhc3NlcyB1cyBhIG1vZGUgYW5kIHdl IGhhdmUgdG8gcHJvZ3JhbQotICogaXQuIFRoZSBtb2Rlc2V0dGluZyBoZXJlIGlzIHRoZSBiYXJl IG1pbmltdW0gcmVxdWlyZWQgdG8gc2F0aXNmeSB0aGUgcWVtdQotICogZW11bGF0aW9uIG9mIHRo aXMgaGFyZHdhcmUsIGFuZCBydW5uaW5nIHRoaXMgYWdhaW5zdCBhIHJlYWwgZGV2aWNlIGlzCi0g KiBsaWtlbHkgdG8gcmVzdWx0IGluIGFuIGluYWRlcXVhdGVseSBwcm9ncmFtbWVkIG1vZGUuIFdl J3ZlIGFscmVhZHkgaGFkCi0gKiB0aGUgb3Bwb3J0dW5pdHkgdG8gbW9kaWZ5IHRoZSBtb2RlLCBz byB3aGF0ZXZlciB3ZSByZWNlaXZlIGhlcmUgc2hvdWxkCi0gKiBiZSBzb21ldGhpbmcgdGhhdCBj YW4gYmUgY29ycmVjdGx5IHByb2dyYW1tZWQgYW5kIGRpc3BsYXllZAotICovCi1zdGF0aWMgaW50 IGNpcnJ1c19jcnRjX21vZGVfc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKLQkJCQlzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKLQkJCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRq dXN0ZWRfbW9kZSwKLQkJCQlpbnQgeCwgaW50IHksIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKm9s ZF9mYikKK3N0YXRpYyB2b2lkIGNpcnJ1c19jcnRjX21vZGVfc2V0X25vZmIoc3RydWN0IGRybV9j cnRjICpjcnRjKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CiAJc3Ry dWN0IGNpcnJ1c19kZXZpY2UgKmNkZXYgPSBkZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICptb2RlID0gJmNydGMtPm1vZGU7CiAJaW50IGhzeW5jc3RhcnQsIGhzeW5j ZW5kLCBodG90YWwsIGhkaXNwZW5kOwogCWludCB2dG90YWwsIHZkaXNwZW5kOwogCWludCB0bXA7 CkBAIC0yODYsNyArMjI0LDcgQEAgc3RhdGljIGludCBjaXJydXNfY3J0Y19tb2RlX3NldChzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCiAJCWhkciA9IDB4YzU7CiAJCWJyZWFrOwogCWRlZmF1bHQ6Ci0J CXJldHVybiAtMTsKKwkJcmV0dXJuOwogCX0KIAogCVdSRUdfU0VRKDB4Nywgc3IwNyk7CkBAIC0z MDgsMTEgKzI0Niw5IEBAIHN0YXRpYyBpbnQgY2lycnVzX2NydGNfbW9kZV9zZXQoc3RydWN0IGRy bV9jcnRjICpjcnRjLAogCVdSRUdfR0ZYKFZHQV9HRlhfTUlTQywgMHgwMSk7CiAKIAlXUkVHX0hE UihoZHIpOwotCWNpcnJ1c19jcnRjX2RvX3NldF9iYXNlKGNydGMsIG9sZF9mYiwgeCwgeSwgMCk7 CiAKIAkvKiBVbmJsYW5rIChuZWVkZWQgb24gUzMgcmVzdW1lLCB2Z2FiaW9zIGRvZXNuJ3QgZG8g aXQgdGhlbikgKi8KIAlvdXRiKDB4MjAsIDB4M2MwKTsKLQlyZXR1cm4gMDsKIH0KIAogLyoKQEAg LTM3Myw4ICszMDksOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jcnRjX2Z1bmNzIGNpcnJ1 c19jcnRjX2Z1bmNzID0gewogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19oZWxwZXJfZnVu Y3MgY2lycnVzX2hlbHBlcl9mdW5jcyA9IHsKIAkuZHBtcyA9IGNpcnJ1c19jcnRjX2RwbXMsCiAJ Lm1vZGVfZml4dXAgPSBjaXJydXNfY3J0Y19tb2RlX2ZpeHVwLAotCS5tb2RlX3NldCA9IGNpcnJ1 c19jcnRjX21vZGVfc2V0LAotCS5tb2RlX3NldF9iYXNlID0gY2lycnVzX2NydGNfbW9kZV9zZXRf YmFzZSwKKwkubW9kZV9zZXQgPSBkcm1faGVscGVyX2NydGNfbW9kZV9zZXQsCisJLm1vZGVfc2V0 X2Jhc2UgPSBkcm1faGVscGVyX2NydGNfbW9kZV9zZXRfYmFzZSwKKwkubW9kZV9zZXRfbm9mYiA9 IGNpcnJ1c19jcnRjX21vZGVfc2V0X25vZmIsCiAJLnByZXBhcmUgPSBjaXJydXNfY3J0Y19wcmVw YXJlLAogCS5jb21taXQgPSBjaXJydXNfY3J0Y19jb21taXQsCiAJLmxvYWRfbHV0ID0gY2lycnVz X2NydGNfbG9hZF9sdXQsCkBAIC0zOTQsNyArMzMxLDggQEAgc3RhdGljIHZvaWQgY2lycnVzX2Ny dGNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWlmIChjaXJydXNfY3J0YyA9PSBOVUxM KQogCQlyZXR1cm47CiAKLQlkcm1fY3J0Y19pbml0KGRldiwgJmNpcnJ1c19jcnRjLT5iYXNlLCAm Y2lycnVzX2NydGNfZnVuY3MpOworCWRybV9jcnRjX2luaXRfd2l0aF9wbGFuZXMoZGV2LCAmY2ly cnVzX2NydGMtPmJhc2UsICZjZGV2LT5wcmltYXJ5LAorCQkJCSAgTlVMTCwgJmNpcnJ1c19jcnRj X2Z1bmNzKTsKIAogCWRybV9tb2RlX2NydGNfc2V0X2dhbW1hX3NpemUoJmNpcnJ1c19jcnRjLT5i YXNlLCBDSVJSVVNfTFVUX1NJWkUpOwogCWNkZXYtPm1vZGVfaW5mby5jcnRjID0gY2lycnVzX2Ny dGM7CkBAIC00MDgsNiArMzQ2LDExOSBAQCBzdGF0aWMgdm9pZCBjaXJydXNfY3J0Y19pbml0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJZHJtX2NydGNfaGVscGVyX2FkZCgmY2lycnVzX2NydGMt PmJhc2UsICZjaXJydXNfaGVscGVyX2Z1bmNzKTsKIH0KIAorc3RhdGljIGludCBjaXJydXNfcGxh bmVfcHJlcGFyZV9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJCQlzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyICpmYiwKKwkJCQljb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpuZXdfc3Rh dGUpCit7CisJc3RydWN0IGNpcnJ1c19kZXZpY2UgKmNkZXYgPQorCQljb250YWluZXJfb2YocGxh bmUsIHN0cnVjdCBjaXJydXNfZGV2aWNlLCBwcmltYXJ5KTsKKwlzdHJ1Y3QgY2lycnVzX2ZyYW1l YnVmZmVyICpjaXJydXNfZmI7CisJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmo7CisJc3RydWN0 IGNpcnJ1c19ibyAqYm87CisJaW50IHJldDsKKworCWNpcnJ1c19mYiA9IHRvX2NpcnJ1c19mcmFt ZWJ1ZmZlcihmYik7CisJb2JqID0gY2lycnVzX2ZiLT5vYmo7CisJYm8gPSBnZW1fdG9fY2lycnVz X2JvKG9iaik7CisKKwlyZXQgPSBjaXJydXNfYm9fcmVzZXJ2ZShibywgZmFsc2UpOworCWlmIChy ZXQpCisJCXJldHVybiByZXQ7CisKKwlyZXQgPSBjaXJydXNfYm9fcGluKGJvLCBUVE1fUExfRkxB R19WUkFNLCBOVUxMKTsKKwlpZiAocmV0KSB7CisJCWNpcnJ1c19ib191bnJlc2VydmUoYm8pOwor CQlyZXR1cm4gcmV0OworCX0KKworCWlmICgmY2Rldi0+bW9kZV9pbmZvLmdmYmRldi0+Z2ZiID09 IGNpcnJ1c19mYikgeworCQkvKiBpZiBwdXNoaW5nIGNvbnNvbGUgaW4ga21hcCBpdCAqLworCQly ZXQgPSB0dG1fYm9fa21hcCgmYm8tPmJvLCAwLCBiby0+Ym8ubnVtX3BhZ2VzLCAmYm8tPmttYXAp OworCQlpZiAocmV0KQorCQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8ga21hcCBmYmNvblxuIik7CisJ fQorCWNpcnJ1c19ib191bnJlc2VydmUoYm8pOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2 b2lkIGNpcnJ1c19wbGFuZV9jbGVhbnVwX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQkJ CXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKm9sZF9mYiwKKwkJCQljb25zdCBzdHJ1Y3QgZHJtX3Bs YW5lX3N0YXRlICpvbGRfc3RhdGUpCit7CisJc3RydWN0IGNpcnJ1c19mcmFtZWJ1ZmZlciAqY2ly cnVzX2ZiOworCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqOworCXN0cnVjdCBjaXJydXNfYm8g KmJvOworCisJY2lycnVzX2ZiID0gdG9fY2lycnVzX2ZyYW1lYnVmZmVyKG9sZF9mYik7CisJb2Jq ID0gY2lycnVzX2ZiLT5vYmo7CisJYm8gPSBnZW1fdG9fY2lycnVzX2JvKG9iaik7CisKKwljaXJy dXNfYm9fcmVzZXJ2ZShibywgZmFsc2UpOworCWNpcnJ1c19ib19wdXNoX3N5c3JhbShibyk7CisJ Y2lycnVzX2JvX3VucmVzZXJ2ZShibyk7Cit9CisKK3N0YXRpYyBpbnQgY2lycnVzX3BsYW5lX2F0 b21pY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJCQlzdHJ1Y3QgZHJtX3BsYW5l X3N0YXRlICpwbGFuZV9zdGF0ZSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgY2ly cnVzX3BsYW5lX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisJCQkJc3Ry dWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3N0YXRlKQoreworCXN0cnVjdCBjaXJydXNfZnJhbWVi dWZmZXIgKmNpcnJ1c19mYjsKKwlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iajsKKwlzdHJ1Y3Qg Y2lycnVzX2JvICpibzsKKwl1NjQgZ3B1X2FkZHI7CisKKwljaXJydXNfZmIgPSB0b19jaXJydXNf ZnJhbWVidWZmZXIocGxhbmUtPnN0YXRlLT5mYik7CisJb2JqID0gY2lycnVzX2ZiLT5vYmo7CisJ Ym8gPSBnZW1fdG9fY2lycnVzX2JvKG9iaik7CisJZ3B1X2FkZHIgPSBiby0+Ym8ub2Zmc2V0Owor CisJY2lycnVzX3NldF9zdGFydF9hZGRyZXNzKHBsYW5lLT5zdGF0ZS0+Y3J0YywgKHUzMilncHVf YWRkcik7Cit9CisKK3N0YXRpYyB2b2lkIGNpcnJ1c19wbGFuZV9hdG9taWNfZGlzYWJsZShzdHJ1 Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJCQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfc3Rh dGUpCit7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2Z1bmNzIGNpcnJ1c19w bGFuZV9mdW5jcyA9IHsKKwkudXBkYXRlX3BsYW5lID0gZHJtX3BsYW5lX2hlbHBlcl91cGRhdGUs CisJLmRpc2FibGVfcGxhbmUgPSBkcm1fcGxhbmVfaGVscGVyX2Rpc2FibGUsCit9OworCitzdGF0 aWMgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9oZWxwZXJfZnVuY3MgY2lycnVzX3BsYW5lX2hlbHBl cl9mdW5jcyA9IHsKKwkucHJlcGFyZV9mYiA9IGNpcnJ1c19wbGFuZV9wcmVwYXJlX2ZiLAorCS5j bGVhbnVwX2ZiID0gY2lycnVzX3BsYW5lX2NsZWFudXBfZmIsCisJLmF0b21pY19jaGVjayA9IGNp cnJ1c19wbGFuZV9hdG9taWNfY2hlY2ssCisJLmF0b21pY191cGRhdGUgPSBjaXJydXNfcGxhbmVf YXRvbWljX3VwZGF0ZSwKKwkuYXRvbWljX2Rpc2FibGUgPSBjaXJydXNfcGxhbmVfYXRvbWljX2Rp c2FibGUsCit9OworCitzdGF0aWMgdm9pZCBjaXJydXNfcGxhbmVfaW5pdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQoreworCXN0cnVjdCBjaXJydXNfZGV2aWNlICpjaXJydXMgPSBkZXYtPmRldl9w cml2YXRlOworCXN0cnVjdCBkcm1fcGxhbmUgKnByaW1hcnkgPSAmY2lycnVzLT5wcmltYXJ5Owor CWludCByOworCisJciA9IGRybV91bml2ZXJzYWxfcGxhbmVfaW5pdChkZXYsIHByaW1hcnksIDAs CisJCQkJICAgICAmY2lycnVzX3BsYW5lX2Z1bmNzLAorCQkJCSAgICAgY2lycnVzX3ByaW1hcnlf Zm9ybWF0cywKKwkJCQkgICAgIEFSUkFZX1NJWkUoY2lycnVzX3ByaW1hcnlfZm9ybWF0cyksCisJ CQkJICAgICBEUk1fUExBTkVfVFlQRV9QUklNQVJZKTsKKworCWlmIChyKSB7CisJCURSTV9ERUJV R19LTVMoIkZhaWxlZCB0byBpbml0IHByaW1hcnkgcGxhbmUuXG4iKTsKKwkJcmV0dXJuOworCX0K KworCWRybV9wbGFuZV9oZWxwZXJfYWRkKHByaW1hcnksICZjaXJydXNfcGxhbmVfaGVscGVyX2Z1 bmNzKTsKK30KKwogLyoqIFNldHMgdGhlIGNvbG9yIHJhbXBzIG9uIGJlaGFsZiBvZiBmYmNvbiAq Lwogdm9pZCBjaXJydXNfY3J0Y19mYl9nYW1tYV9zZXQoc3RydWN0IGRybV9jcnRjICpjcnRjLCB1 MTYgcmVkLCB1MTYgZ3JlZW4sCiAJCQkgICAgICB1MTYgYmx1ZSwgaW50IHJlZ25vKQpAQCAtNDMw LDcgKzQ4MSw2IEBAIHZvaWQgY2lycnVzX2NydGNfZmJfZ2FtbWFfZ2V0KHN0cnVjdCBkcm1fY3J0 YyAqY3J0YywgdTE2ICpyZWQsIHUxNiAqZ3JlZW4sCiAJKmJsdWUgPSBjaXJydXNfY3J0Yy0+bHV0 X2JbcmVnbm9dOwogfQogCi0KIHN0YXRpYyBib29sIGNpcnJ1c19lbmNvZGVyX21vZGVfZml4dXAo c3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAogCQkJCSAgICAgIGNvbnN0IHN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICptb2RlLAogCQkJCSAgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICph ZGp1c3RlZF9tb2RlKQpAQCAtNTgzLDYgKzYzMyw3IEBAIGludCBjaXJydXNfbW9kZXNldF9pbml0 KHN0cnVjdCBjaXJydXNfZGV2aWNlICpjZGV2KQogCS8qIGRvbid0IHByZWZlciBhIHNoYWRvdyBv biB2aXJ0IEdQVSAqLwogCWNkZXYtPmRldi0+bW9kZV9jb25maWcucHJlZmVyX3NoYWRvdyA9IDA7 CiAKKwljaXJydXNfcGxhbmVfaW5pdChjZGV2LT5kZXYpOwogCWNpcnJ1c19jcnRjX2luaXQoY2Rl di0+ZGV2KTsKIAogCWVuY29kZXIgPSBjaXJydXNfZW5jb2Rlcl9pbml0KGNkZXYtPmRldik7Ci0t IAoxLjcuMTAuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs Cg==