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: Thu, 30 Jul 2015 18:08:52 +0800 Message-ID: <1438250938-59728-2-git-send-email-zhjwpku@gmail.com> References: <1438250938-59728-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 (mx12.pku.edu.cn [162.105.129.175]) by gabe.freedesktop.org (Postfix) with ESMTP id E0D456EC71 for ; Thu, 30 Jul 2015 03:10:00 -0700 (PDT) In-Reply-To: <1438250938-59728-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 List-Id: dri-devel@lists.freedesktop.org RnJvbTogWmhhbyBKdW53YW5nIDx6aGp3cGt1QGdtYWlsLmNvbT4KCi1yZWdpc3RlciBkcml2ZXIn cyBvd24gcHJpbWFyeSBwbGFuZQotdXNlIGRybV9jcnRjX2luaXRfd2l0aF9wbGFuZXMgaW5zdGVh ZCBkcm1fY3J0Y19pbml0CgotdGhlIG5ldyBhdG9taWNfaW5mcmFzdHJ1Y3R1cmUgbmVlZHMgLT5t b2RlX3NldF9ub2ZiIGNhbGxiYWNrCgpTaWduZWQtb2ZmLWJ5OiBaaGFvIEp1bndhbmcgPHpoandw a3VAZ21haWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzX2Rydi5jICB8 ICAgIDEgLQogZHJpdmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNfZHJ2LmggIHwgICAgMyArLQog ZHJpdmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNfbWFpbi5jIHwgICAgMiArLQogZHJpdmVycy9n cHUvZHJtL2NpcnJ1cy9jaXJydXNfbW9kZS5jIHwgIDIwMSArKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDEyOSBpbnNlcnRpb25zKCspLCA3OCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c19kcnYu YyBiL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzX2Rydi5jCmluZGV4IDA4YmQxNzYuLjgw ZjFjZDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzX2Rydi5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzX2Rydi5jCkBAIC00MCw3ICs0MCw2IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwY2lpZGxpc3RbXSA9IHsKIAl7MCx9 CiB9OwogCi0KIHN0YXRpYyBpbnQgY2lycnVzX2tpY2tfb3V0X2Zpcm13YXJlX2ZiKHN0cnVjdCBw Y2lfZGV2ICpwZGV2KQogewogCXN0cnVjdCBhcGVydHVyZXNfc3RydWN0ICphcDsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJt L2NpcnJ1cy9jaXJydXNfZHJ2LmgKaW5kZXggNzA1MDYxNS4uYmQxZmY1MSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L2NpcnJ1cy9jaXJydXNfZHJ2LmgKQEAgLTEzNSw4ICsxMzUsOSBAQCBzdHJ1Y3QgY2lycnVzX2Rl dmljZSB7CiAJcmVzb3VyY2Vfc2l6ZV90CQkJcm1taW9fc2l6ZTsKIAl2b2lkIF9faW9tZW0JCQkq cm1taW87CiAKLQlzdHJ1Y3QgY2lycnVzX21jCQkJbWM7CisJc3RydWN0IGNpcnJ1c19tYwkJbWM7 CiAJc3RydWN0IGNpcnJ1c19tb2RlX2luZm8JCW1vZGVfaW5mbzsKKwlzdHJ1Y3QgZHJtX3BsYW5l CQlwcmltYXJ5OwogCiAJaW50CQkJCW51bV9jcnRjOwogCWludCBmYl9tdHJyOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNfbWFpbi5jIGIvZHJpdmVycy9ncHUvZHJt L2NpcnJ1cy9jaXJydXNfbWFpbi5jCmluZGV4IGU0Yjk3NjYuLmQ5NWRlMzQgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzX21haW4uYworKysgYi9kcml2ZXJzL2dwdS9k cm0vY2lycnVzL2NpcnJ1c19tYWluLmMKQEAgLTMwOCwxMCArMzA4LDEwIEBAIGNpcnJ1c19kdW1i X21tYXBfb2Zmc2V0KHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKIAogCWRybV9nZW1fb2JqZWN0X3Vu cmVmZXJlbmNlKG9iaik7CiAJcmV0ID0gMDsKKwogb3V0X3VubG9jazoKIAltdXRleF91bmxvY2so JmRldi0+c3RydWN0X211dGV4KTsKIAlyZXR1cm4gcmV0OwotCiB9CiAKIGJvb2wgY2lycnVzX2No ZWNrX2ZyYW1lYnVmZmVyKHN0cnVjdCBjaXJydXNfZGV2aWNlICpjZGV2LCBpbnQgd2lkdGgsIGlu dCBoZWlnaHQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c19tb2Rl LmMgYi9kcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c19tb2RlLmMKaW5kZXggNjEzODVmMi4u N2E3Yzg3NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNfbW9kZS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzX21vZGUuYwpAQCAtMjcsNiArMjcs MTAgQEAKICNkZWZpbmUgUEFMRVRURV9JTkRFWCAweDgKICNkZWZpbmUgUEFMRVRURV9EQVRBIDB4 OQogCitzdGF0aWMgY29uc3QgdWludDMyX3QgY2lycnVzX3ByaW1hcnlfZm9ybWF0c1tdID0gewor CURSTV9GT1JNQVRfUkdCODg4LAorfTsKKwogLyoKICAqIFRoaXMgZmlsZSBjb250YWlucyBzZXR1 cCBjb2RlIGZvciB0aGUgQ1JUQy4KICAqLwpAQCAtMTI2LDc3ICsxMzAsMTEgQEAgc3RhdGljIHZv aWQgY2lycnVzX3NldF9zdGFydF9hZGRyZXNzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgdW5zaWdu ZWQgb2Zmc2V0KQogCVdSRUdfQ1JUKDB4MWQsIHRtcCk7CiB9CiAKLS8qIGNpcnJ1cyBpcyBkaWZm ZXJlbnQgLSB3ZSB3aWxsIGZvcmNlIG1vdmUgYnVmZmVycyBvdXQgb2YgVlJBTSAqLwotc3RhdGlj IGludCBjaXJydXNfY3J0Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCi0JCQkJ c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCi0JCQkJaW50IHgsIGludCB5LCBpbnQgYXRvbWlj KQotewotCXN0cnVjdCBjaXJydXNfZGV2aWNlICpjZGV2ID0gY3J0Yy0+ZGV2LT5kZXZfcHJpdmF0 ZTsKLQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iajsKLQlzdHJ1Y3QgY2lycnVzX2ZyYW1lYnVm ZmVyICpjaXJydXNfZmI7Ci0Jc3RydWN0IGNpcnJ1c19ibyAqYm87Ci0JaW50IHJldDsKLQl1NjQg Z3B1X2FkZHI7Ci0KLQkvKiBwdXNoIHRoZSBwcmV2aW91cyBmYiB0byBzeXN0ZW0gcmFtICovCi0J aWYgKCFhdG9taWMgJiYgZmIpIHsKLQkJY2lycnVzX2ZiID0gdG9fY2lycnVzX2ZyYW1lYnVmZmVy KGZiKTsKLQkJb2JqID0gY2lycnVzX2ZiLT5vYmo7Ci0JCWJvID0gZ2VtX3RvX2NpcnJ1c19ibyhv YmopOwotCQlyZXQgPSBjaXJydXNfYm9fcmVzZXJ2ZShibywgZmFsc2UpOwotCQlpZiAocmV0KQot CQkJcmV0dXJuIHJldDsKLQkJY2lycnVzX2JvX3B1c2hfc3lzcmFtKGJvKTsKLQkJY2lycnVzX2Jv X3VucmVzZXJ2ZShibyk7Ci0JfQotCi0JY2lycnVzX2ZiID0gdG9fY2lycnVzX2ZyYW1lYnVmZmVy KGNydGMtPnByaW1hcnktPmZiKTsKLQlvYmogPSBjaXJydXNfZmItPm9iajsKLQlibyA9IGdlbV90 b19jaXJydXNfYm8ob2JqKTsKLQotCXJldCA9IGNpcnJ1c19ib19yZXNlcnZlKGJvLCBmYWxzZSk7 Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQotCXJldCA9IGNpcnJ1c19ib19waW4oYm8sIFRU TV9QTF9GTEFHX1ZSQU0sICZncHVfYWRkcik7Ci0JaWYgKHJldCkgewotCQljaXJydXNfYm9fdW5y ZXNlcnZlKGJvKTsKLQkJcmV0dXJuIHJldDsKLQl9Ci0KLQlpZiAoJmNkZXYtPm1vZGVfaW5mby5n ZmJkZXYtPmdmYiA9PSBjaXJydXNfZmIpIHsKLQkJLyogaWYgcHVzaGluZyBjb25zb2xlIGluIGtt YXAgaXQgKi8KLQkJcmV0ID0gdHRtX2JvX2ttYXAoJmJvLT5ibywgMCwgYm8tPmJvLm51bV9wYWdl cywgJmJvLT5rbWFwKTsKLQkJaWYgKHJldCkKLQkJCURSTV9FUlJPUigiZmFpbGVkIHRvIGttYXAg ZmJjb25cbiIpOwotCX0KLQljaXJydXNfYm9fdW5yZXNlcnZlKGJvKTsKLQotCWNpcnJ1c19zZXRf c3RhcnRfYWRkcmVzcyhjcnRjLCAodTMyKWdwdV9hZGRyKTsKLQlyZXR1cm4gMDsKLX0KLQotc3Rh dGljIGludCBjaXJydXNfY3J0Y19tb2RlX3NldF9iYXNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yywg aW50IHgsIGludCB5LAotCQkJICAgICBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpvbGRfZmIpCi17 Ci0JcmV0dXJuIGNpcnJ1c19jcnRjX2RvX3NldF9iYXNlKGNydGMsIG9sZF9mYiwgeCwgeSwgMCk7 Ci19Ci0KLS8qCi0gKiBUaGUgbWVhdCBvZiB0aGlzIGRyaXZlci4gVGhlIGNvcmUgcGFzc2VzIHVz IGEgbW9kZSBhbmQgd2UgaGF2ZSB0byBwcm9ncmFtCi0gKiBpdC4gVGhlIG1vZGVzZXR0aW5nIGhl cmUgaXMgdGhlIGJhcmUgbWluaW11bSByZXF1aXJlZCB0byBzYXRpc2Z5IHRoZSBxZW11Ci0gKiBl bXVsYXRpb24gb2YgdGhpcyBoYXJkd2FyZSwgYW5kIHJ1bm5pbmcgdGhpcyBhZ2FpbnN0IGEgcmVh bCBkZXZpY2UgaXMKLSAqIGxpa2VseSB0byByZXN1bHQgaW4gYW4gaW5hZGVxdWF0ZWx5IHByb2dy YW1tZWQgbW9kZS4gV2UndmUgYWxyZWFkeSBoYWQKLSAqIHRoZSBvcHBvcnR1bml0eSB0byBtb2Rp ZnkgdGhlIG1vZGUsIHNvIHdoYXRldmVyIHdlIHJlY2VpdmUgaGVyZSBzaG91bGQKLSAqIGJlIHNv bWV0aGluZyB0aGF0IGNhbiBiZSBjb3JyZWN0bHkgcHJvZ3JhbW1lZCBhbmQgZGlzcGxheWVkCi0g Ki8KLXN0YXRpYyBpbnQgY2lycnVzX2NydGNfbW9kZV9zZXQoc3RydWN0IGRybV9jcnRjICpjcnRj LAotCQkJCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAotCQkJCXN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICphZGp1c3RlZF9tb2RlLAotCQkJCWludCB4LCBpbnQgeSwgc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqb2xkX2ZiKQorc3RhdGljIHZvaWQgY2lycnVzX2NydGNfbW9kZV9zZXRfbm9m YihzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNy dGMtPmRldjsKIAlzdHJ1Y3QgY2lycnVzX2RldmljZSAqY2RldiA9IGRldi0+ZGV2X3ByaXZhdGU7 CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSAmY3J0Yy0+bW9kZTsKIAlpbnQgaHN5 bmNzdGFydCwgaHN5bmNlbmQsIGh0b3RhbCwgaGRpc3BlbmQ7CiAJaW50IHZ0b3RhbCwgdmRpc3Bl bmQ7CiAJaW50IHRtcDsKQEAgLTI4Niw3ICsyMjQsNyBAQCBzdGF0aWMgaW50IGNpcnJ1c19jcnRj X21vZGVfc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJaGRyID0gMHhjNTsKIAkJYnJlYWs7 CiAJZGVmYXVsdDoKLQkJcmV0dXJuIC0xOworCQlyZXR1cm47CiAJfQogCiAJV1JFR19TRVEoMHg3 LCBzcjA3KTsKQEAgLTMwOCwxMSArMjQ2LDkgQEAgc3RhdGljIGludCBjaXJydXNfY3J0Y19tb2Rl X3NldChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJV1JFR19HRlgoVkdBX0dGWF9NSVNDLCAweDAx KTsKIAogCVdSRUdfSERSKGhkcik7Ci0JY2lycnVzX2NydGNfZG9fc2V0X2Jhc2UoY3J0Yywgb2xk X2ZiLCB4LCB5LCAwKTsKIAogCS8qIFVuYmxhbmsgKG5lZWRlZCBvbiBTMyByZXN1bWUsIHZnYWJp b3MgZG9lc24ndCBkbyBpdCB0aGVuKSAqLwogCW91dGIoMHgyMCwgMHgzYzApOwotCXJldHVybiAw OwogfQogCiAvKgpAQCAtMzczLDggKzMwOSw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Ny dGNfZnVuY3MgY2lycnVzX2NydGNfZnVuY3MgPSB7CiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9j cnRjX2hlbHBlcl9mdW5jcyBjaXJydXNfaGVscGVyX2Z1bmNzID0gewogCS5kcG1zID0gY2lycnVz X2NydGNfZHBtcywKIAkubW9kZV9maXh1cCA9IGNpcnJ1c19jcnRjX21vZGVfZml4dXAsCi0JLm1v ZGVfc2V0ID0gY2lycnVzX2NydGNfbW9kZV9zZXQsCi0JLm1vZGVfc2V0X2Jhc2UgPSBjaXJydXNf Y3J0Y19tb2RlX3NldF9iYXNlLAorCS5tb2RlX3NldCA9IGRybV9oZWxwZXJfY3J0Y19tb2RlX3Nl dCwKKwkubW9kZV9zZXRfYmFzZSA9IGRybV9oZWxwZXJfY3J0Y19tb2RlX3NldF9iYXNlLAorCS5t b2RlX3NldF9ub2ZiID0gY2lycnVzX2NydGNfbW9kZV9zZXRfbm9mYiwKIAkucHJlcGFyZSA9IGNp cnJ1c19jcnRjX3ByZXBhcmUsCiAJLmNvbW1pdCA9IGNpcnJ1c19jcnRjX2NvbW1pdCwKIAkubG9h ZF9sdXQgPSBjaXJydXNfY3J0Y19sb2FkX2x1dCwKQEAgLTM5NCw3ICszMzEsOCBAQCBzdGF0aWMg dm9pZCBjaXJydXNfY3J0Y19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJaWYgKGNpcnJ1 c19jcnRjID09IE5VTEwpCiAJCXJldHVybjsKIAotCWRybV9jcnRjX2luaXQoZGV2LCAmY2lycnVz X2NydGMtPmJhc2UsICZjaXJydXNfY3J0Y19mdW5jcyk7CisJZHJtX2NydGNfaW5pdF93aXRoX3Bs YW5lcyhkZXYsICZjaXJydXNfY3J0Yy0+YmFzZSwgJmNkZXYtPnByaW1hcnksCisJCQkJICBOVUxM LCAmY2lycnVzX2NydGNfZnVuY3MpOwogCiAJZHJtX21vZGVfY3J0Y19zZXRfZ2FtbWFfc2l6ZSgm Y2lycnVzX2NydGMtPmJhc2UsIENJUlJVU19MVVRfU0laRSk7CiAJY2Rldi0+bW9kZV9pbmZvLmNy dGMgPSBjaXJydXNfY3J0YzsKQEAgLTQwOCw2ICszNDYsMTE5IEBAIHN0YXRpYyB2b2lkIGNpcnJ1 c19jcnRjX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlkcm1fY3J0Y19oZWxwZXJfYWRk KCZjaXJydXNfY3J0Yy0+YmFzZSwgJmNpcnJ1c19oZWxwZXJfZnVuY3MpOwogfQogCitzdGF0aWMg aW50IGNpcnJ1c19wbGFuZV9wcmVwYXJlX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQkJ CXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAorCQkJCWNvbnN0IHN0cnVjdCBkcm1fcGxhbmVf c3RhdGUgKm5ld19zdGF0ZSkKK3sKKwlzdHJ1Y3QgY2lycnVzX2RldmljZSAqY2RldiA9CisJCWNv bnRhaW5lcl9vZihwbGFuZSwgc3RydWN0IGNpcnJ1c19kZXZpY2UsIHByaW1hcnkpOworCXN0cnVj dCBjaXJydXNfZnJhbWVidWZmZXIgKmNpcnJ1c19mYjsKKwlzdHJ1Y3QgZHJtX2dlbV9vYmplY3Qg Km9iajsKKwlzdHJ1Y3QgY2lycnVzX2JvICpibzsKKwlpbnQgcmV0OworCisJY2lycnVzX2ZiID0g dG9fY2lycnVzX2ZyYW1lYnVmZmVyKGZiKTsKKwlvYmogPSBjaXJydXNfZmItPm9iajsKKwlibyA9 IGdlbV90b19jaXJydXNfYm8ob2JqKTsKKworCXJldCA9IGNpcnJ1c19ib19yZXNlcnZlKGJvLCBm YWxzZSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJldCA9IGNpcnJ1c19ib19waW4o Ym8sIFRUTV9QTF9GTEFHX1ZSQU0sIE5VTEwpOworCWlmIChyZXQpIHsKKwkJY2lycnVzX2JvX3Vu cmVzZXJ2ZShibyk7CisJCXJldHVybiByZXQ7CisJfQorCisJaWYgKCZjZGV2LT5tb2RlX2luZm8u Z2ZiZGV2LT5nZmIgPT0gY2lycnVzX2ZiKSB7CisJCS8qIGlmIHB1c2hpbmcgY29uc29sZSBpbiBr bWFwIGl0ICovCisJCXJldCA9IHR0bV9ib19rbWFwKCZiby0+Ym8sIDAsIGJvLT5iby5udW1fcGFn ZXMsICZiby0+a21hcCk7CisJCWlmIChyZXQpCisJCQlEUk1fRVJST1IoImZhaWxlZCB0byBrbWFw IGZiY29uXG4iKTsKKwl9CisJY2lycnVzX2JvX3VucmVzZXJ2ZShibyk7CisKKwlyZXR1cm4gMDsK K30KKworc3RhdGljIHZvaWQgY2lycnVzX3BsYW5lX2NsZWFudXBfZmIoc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUsCisJCQkJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqb2xkX2ZiLAorCQkJCWNvbnN0 IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm9sZF9zdGF0ZSkKK3sKKwlzdHJ1Y3QgY2lycnVzX2Zy YW1lYnVmZmVyICpjaXJydXNfZmI7CisJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmo7CisJc3Ry dWN0IGNpcnJ1c19ibyAqYm87CisKKwljaXJydXNfZmIgPSB0b19jaXJydXNfZnJhbWVidWZmZXIo b2xkX2ZiKTsKKwlvYmogPSBjaXJydXNfZmItPm9iajsKKwlibyA9IGdlbV90b19jaXJydXNfYm8o b2JqKTsKKworCWNpcnJ1c19ib19yZXNlcnZlKGJvLCBmYWxzZSk7CisJY2lycnVzX2JvX3B1c2hf c3lzcmFtKGJvKTsKKwljaXJydXNfYm9fdW5yZXNlcnZlKGJvKTsKK30KKworc3RhdGljIGludCBj aXJydXNfcGxhbmVfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQkJCXN0 cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQoreworCXJldHVybiAwOworfQorCitz dGF0aWMgdm9pZCBjaXJydXNfcGxhbmVfYXRvbWljX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSwKKwkJCQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfc3RhdGUpCit7CisJc3RydWN0 IGNpcnJ1c19mcmFtZWJ1ZmZlciAqY2lycnVzX2ZiOworCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAq b2JqOworCXN0cnVjdCBjaXJydXNfYm8gKmJvOworCXU2NCBncHVfYWRkcjsKKworCWNpcnJ1c19m YiA9IHRvX2NpcnJ1c19mcmFtZWJ1ZmZlcihwbGFuZS0+c3RhdGUtPmZiKTsKKwlvYmogPSBjaXJy dXNfZmItPm9iajsKKwlibyA9IGdlbV90b19jaXJydXNfYm8ob2JqKTsKKwlncHVfYWRkciA9IGJv LT5iby5vZmZzZXQ7CisKKwljaXJydXNfc2V0X3N0YXJ0X2FkZHJlc3MocGxhbmUtPnN0YXRlLT5j cnRjLCAodTMyKWdwdV9hZGRyKTsKK30KKworc3RhdGljIHZvaWQgY2lycnVzX3BsYW5lX2F0b21p Y19kaXNhYmxlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQkJCXN0cnVjdCBkcm1fcGxhbmVf c3RhdGUgKm9sZF9zdGF0ZSkKK3sKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVf ZnVuY3MgY2lycnVzX3BsYW5lX2Z1bmNzID0geworCS51cGRhdGVfcGxhbmUgPSBkcm1fcGxhbmVf aGVscGVyX3VwZGF0ZSwKKwkuZGlzYWJsZV9wbGFuZSA9IGRybV9wbGFuZV9oZWxwZXJfZGlzYWJs ZSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2hlbHBlcl9mdW5jcyBjaXJy dXNfcGxhbmVfaGVscGVyX2Z1bmNzID0geworCS5wcmVwYXJlX2ZiID0gY2lycnVzX3BsYW5lX3By ZXBhcmVfZmIsCisJLmNsZWFudXBfZmIgPSBjaXJydXNfcGxhbmVfY2xlYW51cF9mYiwKKwkuYXRv bWljX2NoZWNrID0gY2lycnVzX3BsYW5lX2F0b21pY19jaGVjaywKKwkuYXRvbWljX3VwZGF0ZSA9 IGNpcnJ1c19wbGFuZV9hdG9taWNfdXBkYXRlLAorCS5hdG9taWNfZGlzYWJsZSA9IGNpcnJ1c19w bGFuZV9hdG9taWNfZGlzYWJsZSwKK307CisKK3N0YXRpYyB2b2lkIGNpcnJ1c19wbGFuZV9pbml0 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGNpcnJ1c19kZXZpY2UgKmNpcnJ1 cyA9IGRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGRybV9wbGFuZSAqcHJpbWFyeSA9ICZjaXJy dXMtPnByaW1hcnk7CisJaW50IHI7CisKKwlyID0gZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0KGRl diwgcHJpbWFyeSwgMCwKKwkJCQkgICAgICZjaXJydXNfcGxhbmVfZnVuY3MsCisJCQkJICAgICBj aXJydXNfcHJpbWFyeV9mb3JtYXRzLAorCQkJCSAgICAgQVJSQVlfU0laRShjaXJydXNfcHJpbWFy eV9mb3JtYXRzKSwKKwkJCQkgICAgIERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOworCisJaWYgKHIp IHsKKwkJRFJNX0RFQlVHX0tNUygiRmFpbGVkIHRvIGluaXQgcHJpbWFyeSBwbGFuZS5cbiIpOwor CQlyZXR1cm47CisJfQorCisJZHJtX3BsYW5lX2hlbHBlcl9hZGQocHJpbWFyeSwgJmNpcnJ1c19w bGFuZV9oZWxwZXJfZnVuY3MpOworfQorCiAvKiogU2V0cyB0aGUgY29sb3IgcmFtcHMgb24gYmVo YWxmIG9mIGZiY29uICovCiB2b2lkIGNpcnJ1c19jcnRjX2ZiX2dhbW1hX3NldChzdHJ1Y3QgZHJt X2NydGMgKmNydGMsIHUxNiByZWQsIHUxNiBncmVlbiwKIAkJCSAgICAgIHUxNiBibHVlLCBpbnQg cmVnbm8pCkBAIC00MzAsNyArNDgxLDYgQEAgdm9pZCBjaXJydXNfY3J0Y19mYl9nYW1tYV9nZXQo c3RydWN0IGRybV9jcnRjICpjcnRjLCB1MTYgKnJlZCwgdTE2ICpncmVlbiwKIAkqYmx1ZSA9IGNp cnJ1c19jcnRjLT5sdXRfYltyZWdub107CiB9CiAKLQogc3RhdGljIGJvb2wgY2lycnVzX2VuY29k ZXJfbW9kZV9maXh1cChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJICAgICAgY29u c3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCiAJCQkJICAgICAgc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUpCkBAIC01ODMsNiArNjMzLDcgQEAgaW50IGNpcnJ1 c19tb2Rlc2V0X2luaXQoc3RydWN0IGNpcnJ1c19kZXZpY2UgKmNkZXYpCiAJLyogZG9uJ3QgcHJl ZmVyIGEgc2hhZG93IG9uIHZpcnQgR1BVICovCiAJY2Rldi0+ZGV2LT5tb2RlX2NvbmZpZy5wcmVm ZXJfc2hhZG93ID0gMDsKIAorCWNpcnJ1c19wbGFuZV9pbml0KGNkZXYtPmRldik7CiAJY2lycnVz X2NydGNfaW5pdChjZGV2LT5kZXYpOwogCiAJZW5jb2RlciA9IGNpcnJ1c19lbmNvZGVyX2luaXQo Y2Rldi0+ZGV2KTsKLS0gCjEuNy4xMC40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWwK