From mboxrd@z Thu Jan 1 00:00:00 1970 From: Liu Ying Subject: [PATCH 11/14] drm/imx: atomic phase 3 step 2: Use atomic configuration Date: Tue, 24 May 2016 18:10:50 +0800 Message-ID: <1464084653-16684-12-git-send-email-gnuiyl@gmail.com> References: <1464084653-16684-1-git-send-email-gnuiyl@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bn0100.outbound.protection.outlook.com [157.56.110.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 736A76E704 for ; Tue, 24 May 2016 10:26:49 +0000 (UTC) In-Reply-To: <1464084653-16684-1-git-send-email-gnuiyl@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: Russell King List-Id: dri-devel@lists.freedesktop.org UmVwbGFjaW5nIGRybV9jcnRjX2hlbHBlcl9zZXRfY29uZmlnKCkgYnkgZHJtX2F0b21pY19oZWxw ZXJfc2V0X2NvbmZpZygpCmFuZCBjb252ZXJ0aW5nIHRoZSBzdXNwZW5kL3Jlc3VtZSBvcGVyYXRp b25zIHRvIGF0b21pYyBtYWtlcyB1cyBiZSBhYmxlCnRvIHVzZSBhdG9taWMgY29uZmlndXJhdGlv bnMuICBBbGwgb2YgdGhlc2UgYWxsb3dzIHVzIHRvIHJlbW92ZSB0aGUKY3J0Y19mdW5jcy0+bW9k ZV9zZXQgY2FsbGJhY2sgYXMgaXQgaXMgbm8gbG9uZ2VyIHVzZWQuICBBbHNvLCB3ZSBtYXkgcmVt b3ZlCmFsbCB0aGUgZW5jb2RlcnMnIC0+cHJlcGFyZSBjYWxsYmFja3MgYXMgdGhleSBjYW4gYmUg cmVwbGFjZWQgYnkgLT5kaXNhYmxlLgpJbiBjb25zZXF1ZW5jZSwgdGhlIGJ1c19mb3JtYXQsIGRp X3ZzeW5jX3BpbiBhbmQgZGlfaHN5bmNfcGluIHNldHRpbmdzIGFyZQptb3ZlZCBmcm9tIC0+cHJl cGFyZSB0byBzdHJ1Y3R1cmUgaW14X2VuY29kZXIuICBGdXJ0aGVybW9yZSwgc3dpdGNoaW5nIHRv CnRoZSBwdXJlIGF0b21pYyB2ZXJzaW9uIG9mIHNldF9jb25maWcgY2FsbGJhY2sgbWVhbnMgdGhh dCB3ZSBtYXkgaW1wbGVtZW50CkNSVEMvcGxhbmUgYXRvbWljIGNoZWNrcyBieSB1c2luZyB0aGUg bmV3IENSVEMvcGxhbmUgc3RhdGVzIGluc3RlYWQgb2YgdGhlCmxlZ2FjeSBvbmVzIGFuZCB3ZSBt YXkgcmVtb3ZlIHRoZSBwcml2YXRlIGlwdV9jcnRjLT5lbmFibGVkIHN0YXRlIHdoaWNoIHdhcwps ZWZ0IHRoZXJlIGZvciB0aGUgdHJhbnNpdGlvbmFsIGF0b21pYyBoZWxwZXJzIGluIHBoYXNlIDEu CgpTaWduZWQtb2ZmLWJ5OiBMaXUgWWluZyA8Z251aXlsQGdtYWlsLmNvbT4KLS0tCiBkcml2ZXJz L2dwdS9kcm0vaW14L2R3X2hkbWktaW14LmMgICAgICB8ICAxOCArKystLS0KIGRyaXZlcnMvZ3B1 L2RybS9pbXgvaW14LWRybS1jb3JlLmMgICAgIHwgIDQ5ICsrKystLS0tLS0tLS0tLQogZHJpdmVy cy9ncHUvZHJtL2lteC9pbXgtZHJtLmggICAgICAgICAgfCAgMTEgKysrLQogZHJpdmVycy9ncHUv ZHJtL2lteC9pbXgtbGRiLmMgICAgICAgICAgfCAxMDkgKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaW14L2lteC10dmUuYyAgICAgICAgICB8ICA1NiAr KysrKysrLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My1jcnRjLmMgICAgICAg fCAgNjMgKysrKystLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My1wbGFu ZS5jICAgICAgfCAgMjMgKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2lteC9wYXJhbGxlbC1kaXNw bGF5LmMgfCAgNTYgKysrKysrKystLS0tLS0tLS0KIDggZmlsZXMgY2hhbmdlZCwgMTU5IGluc2Vy dGlvbnMoKyksIDIyNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aW14L2R3X2hkbWktaW14LmMgYi9kcml2ZXJzL2dwdS9kcm0vaW14L2R3X2hkbWktaW14LmMKaW5k ZXggYTI0NjMxZmQuLjVmNjQ2NzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pbXgvZHdf aGRtaS1pbXguYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaW14L2R3X2hkbWktaW14LmMKQEAgLTIy LDkgKzIyLDExIEBACiAKICNpbmNsdWRlICJpbXgtZHJtLmgiCiAKKyNkZWZpbmUgaW14X2VuY190 b19pbXhfaGRtaSh4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGlteF9oZG1pLCBpbXhfZW5jb2Rl cikKKwogc3RydWN0IGlteF9oZG1pIHsKIAlzdHJ1Y3QgZGV2aWNlICpkZXY7Ci0Jc3RydWN0IGRy bV9lbmNvZGVyIGVuY29kZXI7CisJc3RydWN0IGlteF9kcm1fZW5jb2RlciBpbXhfZW5jb2RlcjsK IAlzdHJ1Y3QgcmVnbWFwICpyZWdtYXA7CiB9OwogCkBAIC0xMTcsNyArMTE5LDggQEAgc3RhdGlj IHZvaWQgZHdfaGRtaV9pbXhfZW5jb2Rlcl9tb2RlX3NldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVu Y29kZXIsCiAKIHN0YXRpYyB2b2lkIGR3X2hkbWlfaW14X2VuY29kZXJfY29tbWl0KHN0cnVjdCBk cm1fZW5jb2RlciAqZW5jb2RlcikKIHsKLQlzdHJ1Y3QgaW14X2hkbWkgKmhkbWkgPSBjb250YWlu ZXJfb2YoZW5jb2Rlciwgc3RydWN0IGlteF9oZG1pLCBlbmNvZGVyKTsKKwlzdHJ1Y3QgaW14X2Ry bV9lbmNvZGVyICppbXhfZW5jb2RlciA9IGVuY190b19pbXhfZW5jKGVuY29kZXIpOworCXN0cnVj dCBpbXhfaGRtaSAqaGRtaSA9IGlteF9lbmNfdG9faW14X2hkbWkoaW14X2VuY29kZXIpOwogCWlu dCBtdXggPSBkcm1fb2ZfZW5jb2Rlcl9hY3RpdmVfcG9ydF9pZChoZG1pLT5kZXYtPm9mX25vZGUs IGVuY29kZXIpOwogCiAJcmVnbWFwX3VwZGF0ZV9iaXRzKGhkbWktPnJlZ21hcCwgSU9NVVhDX0dQ UjMsCkBAIC0xMjUsMTQgKzEyOCw4IEBAIHN0YXRpYyB2b2lkIGR3X2hkbWlfaW14X2VuY29kZXJf Y29tbWl0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIAkJCSAgIG11eCA8PCBJTVg2UV9H UFIzX0hETUlfTVVYX0NUTF9TSElGVCk7CiB9CiAKLXN0YXRpYyB2b2lkIGR3X2hkbWlfaW14X2Vu Y29kZXJfcHJlcGFyZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCi17Ci0JaW14X2RybV9z ZXRfYnVzX2Zvcm1hdChlbmNvZGVyLCBNRURJQV9CVVNfRk1UX1JHQjg4OF8xWDI0KTsKLX0KLQog c3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3MgZHdfaGRtaV9pbXhf ZW5jb2Rlcl9oZWxwZXJfZnVuY3MgPSB7CiAJLm1vZGVfc2V0ICAgPSBkd19oZG1pX2lteF9lbmNv ZGVyX21vZGVfc2V0LAotCS5wcmVwYXJlICAgID0gZHdfaGRtaV9pbXhfZW5jb2Rlcl9wcmVwYXJl LAogCS5jb21taXQgICAgID0gZHdfaGRtaV9pbXhfZW5jb2Rlcl9jb21taXQsCiAJLmRpc2FibGUg ICAgPSBkd19oZG1pX2lteF9lbmNvZGVyX2Rpc2FibGUsCiB9OwpAQCAtMjE1LDcgKzIxMiwxMCBA QCBzdGF0aWMgaW50IGR3X2hkbWlfaW14X2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qg ZGV2aWNlICptYXN0ZXIsCiAJbWF0Y2ggPSBvZl9tYXRjaF9ub2RlKGR3X2hkbWlfaW14X2R0X2lk cywgcGRldi0+ZGV2Lm9mX25vZGUpOwogCXBsYXRfZGF0YSA9IG1hdGNoLT5kYXRhOwogCWhkbWkt PmRldiA9ICZwZGV2LT5kZXY7Ci0JZW5jb2RlciA9ICZoZG1pLT5lbmNvZGVyOworCWVuY29kZXIg PSAmaGRtaS0+aW14X2VuY29kZXIuZW5jb2RlcjsKKwloZG1pLT5pbXhfZW5jb2Rlci5idXNfZm9y bWF0ID0gTUVESUFfQlVTX0ZNVF9SR0I4ODhfMVgyNDsKKwloZG1pLT5pbXhfZW5jb2Rlci5kaV9o c3luY19waW4gPSAyOworCWhkbWktPmlteF9lbmNvZGVyLmRpX3ZzeW5jX3BpbiA9IDM7CiAKIAlp cnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOwogCWlmIChpcnEgPCAwKQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2lteC9pbXgtZHJtLWNvcmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9p bXgvaW14LWRybS1jb3JlLmMKaW5kZXggN2UwNThlYS4uMmZhMDRhMCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2lteC9pbXgtZHJtLWNvcmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaW14 L2lteC1kcm0tY29yZS5jCkBAIC00Miw2ICs0Miw3IEBAIHN0cnVjdCBpbXhfZHJtX2RldmljZSB7 CiAJc3RydWN0IGlteF9kcm1fY3J0YwkJCSpjcnRjW01BWF9DUlRDXTsKIAl1bnNpZ25lZCBpbnQJ CQkJcGlwZXM7CiAJc3RydWN0IGRybV9mYmRldl9jbWEJCQkqZmJoZWxwZXI7CisJc3RydWN0IGRy bV9hdG9taWNfc3RhdGUJCQkqc3RhdGU7CiB9OwogCiBzdHJ1Y3QgaW14X2RybV9jcnRjIHsKQEAg LTg2LDQyICs4Nyw2IEBAIHN0YXRpYyBpbnQgaW14X2RybV9kcml2ZXJfdW5sb2FkKHN0cnVjdCBk cm1fZGV2aWNlICpkcm0pCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgaW14X2RybV9j cnRjICppbXhfZHJtX2ZpbmRfY3J0YyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCi17Ci0Jc3RydWN0 IGlteF9kcm1fZGV2aWNlICppbXhkcm0gPSBjcnRjLT5kZXYtPmRldl9wcml2YXRlOwotCXVuc2ln bmVkIGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgTUFYX0NSVEM7IGkrKykKLQkJaWYgKGlteGRybS0+ Y3J0Y1tpXSAmJiBpbXhkcm0tPmNydGNbaV0tPmNydGMgPT0gY3J0YykKLQkJCXJldHVybiBpbXhk cm0tPmNydGNbaV07Ci0KLQlyZXR1cm4gTlVMTDsKLX0KLQotaW50IGlteF9kcm1fc2V0X2J1c19m b3JtYXRfcGlucyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIHUzMiBidXNfZm9ybWF0LAot CQlpbnQgaHN5bmNfcGluLCBpbnQgdnN5bmNfcGluKQotewotCXN0cnVjdCBpbXhfZHJtX2NydGNf aGVscGVyX2Z1bmNzICpoZWxwZXI7Ci0Jc3RydWN0IGlteF9kcm1fY3J0YyAqaW14X2NydGM7Ci0K LQlpbXhfY3J0YyA9IGlteF9kcm1fZmluZF9jcnRjKGVuY29kZXItPmNydGMpOwotCWlmICghaW14 X2NydGMpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JaGVscGVyID0gJmlteF9jcnRjLT5pbXhfZHJt X2hlbHBlcl9mdW5jczsKLQlpZiAoaGVscGVyLT5zZXRfaW50ZXJmYWNlX3BpeF9mbXQpCi0JCXJl dHVybiBoZWxwZXItPnNldF9pbnRlcmZhY2VfcGl4X2ZtdChlbmNvZGVyLT5jcnRjLAotCQkJCQli dXNfZm9ybWF0LCBoc3luY19waW4sIHZzeW5jX3Bpbik7Ci0JcmV0dXJuIDA7Ci19Ci1FWFBPUlRf U1lNQk9MX0dQTChpbXhfZHJtX3NldF9idXNfZm9ybWF0X3BpbnMpOwotCi1pbnQgaW14X2RybV9z ZXRfYnVzX2Zvcm1hdChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIHUzMiBidXNfZm9ybWF0 KQotewotCXJldHVybiBpbXhfZHJtX3NldF9idXNfZm9ybWF0X3BpbnMoZW5jb2RlciwgYnVzX2Zv cm1hdCwgMiwgMyk7Ci19Ci1FWFBPUlRfU1lNQk9MX0dQTChpbXhfZHJtX3NldF9idXNfZm9ybWF0 KTsKLQogaW50IGlteF9kcm1fY3J0Y192YmxhbmtfZ2V0KHN0cnVjdCBpbXhfZHJtX2NydGMgKmlt eF9kcm1fY3J0YykKIHsKIAlyZXR1cm4gZHJtX2NydGNfdmJsYW5rX2dldChpbXhfZHJtX2NydGMt PmNydGMpOwpAQCAtNTAxLDYgKzQ2Niw3IEBAIHN0YXRpYyBpbnQgaW14X2RybV9wbGF0Zm9ybV9y ZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIHN0YXRpYyBpbnQgaW14X2RybV9z dXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2Rl diA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCXN0cnVjdCBpbXhfZHJtX2RldmljZSAqaW14ZHJt OwogCiAJLyogVGhlIGRybV9kZXYgaXMgTlVMTCBiZWZvcmUgLmxvYWQgaG9vayBpcyBjYWxsZWQg Ki8KIAlpZiAoZHJtX2RldiA9PSBOVUxMKQpAQCAtNTA4LDE3ICs0NzQsMjYgQEAgc3RhdGljIGlu dCBpbXhfZHJtX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQogCiAJZHJtX2ttc19oZWxwZXJf cG9sbF9kaXNhYmxlKGRybV9kZXYpOwogCisJaW14ZHJtID0gZHJtX2Rldi0+ZGV2X3ByaXZhdGU7 CisJaW14ZHJtLT5zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX3N1c3BlbmQoZHJtX2Rldik7CisJ aWYgKElTX0VSUihpbXhkcm0tPnN0YXRlKSkgeworCQlkcm1fa21zX2hlbHBlcl9wb2xsX2VuYWJs ZShkcm1fZGV2KTsKKwkJcmV0dXJuIFBUUl9FUlIoaW14ZHJtLT5zdGF0ZSk7CisJfQorCiAJcmV0 dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgaW14X2RybV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2 KQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7 CisJc3RydWN0IGlteF9kcm1fZGV2aWNlICppbXhfZHJtOwogCiAJaWYgKGRybV9kZXYgPT0gTlVM TCkKIAkJcmV0dXJuIDA7CiAKLQlkcm1faGVscGVyX3Jlc3VtZV9mb3JjZV9tb2RlKGRybV9kZXYp OworCWlteF9kcm0gPSBkcm1fZGV2LT5kZXZfcHJpdmF0ZTsKKwlkcm1fYXRvbWljX2hlbHBlcl9y ZXN1bWUoZHJtX2RldiwgaW14X2RybS0+c3RhdGUpOwogCWRybV9rbXNfaGVscGVyX3BvbGxfZW5h YmxlKGRybV9kZXYpOwogCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aW14L2lteC1kcm0uaCBiL2RyaXZlcnMvZ3B1L2RybS9pbXgvaW14LWRybS5oCmluZGV4IGIwMjQx YjkuLjVlY2MxZGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pbXgvaW14LWRybS5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pbXgvaW14LWRybS5oCkBAIC0xNSwxMSArMTUsMTggQEAgc3Ry dWN0IHBsYXRmb3JtX2RldmljZTsKIAogdW5zaWduZWQgaW50IGlteF9kcm1fY3J0Y19pZChzdHJ1 Y3QgaW14X2RybV9jcnRjICpjcnRjKTsKIAorc3RydWN0IGlteF9kcm1fZW5jb2RlciB7CisJc3Ry dWN0IGRybV9lbmNvZGVyCQkJZW5jb2RlcjsKKwlpbnQJCQkJCWJ1c19mb3JtYXQ7CisJaW50CQkJ CQlkaV9oc3luY19waW47CisJaW50CQkJCQlkaV92c3luY19waW47Cit9OworCisjZGVmaW5lIGVu Y190b19pbXhfZW5jKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW14X2RybV9lbmNvZGVyLCBl bmNvZGVyKQorCiBzdHJ1Y3QgaW14X2RybV9jcnRjX2hlbHBlcl9mdW5jcyB7CiAJaW50ICgqZW5h YmxlX3ZibGFuaykoc3RydWN0IGRybV9jcnRjICpjcnRjKTsKIAl2b2lkICgqZGlzYWJsZV92Ymxh bmspKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Ci0JaW50ICgqc2V0X2ludGVyZmFjZV9waXhfZm10 KShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCi0JCQl1MzIgYnVzX2Zvcm1hdCwgaW50IGhzeW5jX3Bp biwgaW50IHZzeW5jX3Bpbik7CiAJY29uc3Qgc3RydWN0IGRybV9jcnRjX2hlbHBlcl9mdW5jcyAq Y3J0Y19oZWxwZXJfZnVuY3M7CiAJY29uc3Qgc3RydWN0IGRybV9jcnRjX2Z1bmNzICpjcnRjX2Z1 bmNzOwogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pbXgvaW14LWxkYi5jIGIvZHJp dmVycy9ncHUvZHJtL2lteC9pbXgtbGRiLmMKaW5kZXggOGYxN2I2NC4uZDdkMWUzMSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2lteC9pbXgtbGRiLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2lteC9pbXgtbGRiLmMKQEAgLTUwLDE0ICs1MCwxNSBAQAogI2RlZmluZSBMREJfQkdSRUZfUk1P REVfSU5UCQkoMSA8PCAxNSkKIAogI2RlZmluZSBjb25fdG9faW14X2xkYl9jaCh4KSBjb250YWlu ZXJfb2YoeCwgc3RydWN0IGlteF9sZGJfY2hhbm5lbCwgY29ubmVjdG9yKQotI2RlZmluZSBlbmNf dG9faW14X2xkYl9jaCh4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGlteF9sZGJfY2hhbm5lbCwg ZW5jb2RlcikKKyNkZWZpbmUgaW14X2VuY190b19pbXhfbGRiX2NoKHgpCVwKKwkJCWNvbnRhaW5l cl9vZih4LCBzdHJ1Y3QgaW14X2xkYl9jaGFubmVsLCBpbXhfZW5jb2RlcikKIAogc3RydWN0IGlt eF9sZGI7CiAKIHN0cnVjdCBpbXhfbGRiX2NoYW5uZWwgewogCXN0cnVjdCBpbXhfbGRiICpsZGI7 CiAJc3RydWN0IGRybV9jb25uZWN0b3IgY29ubmVjdG9yOwotCXN0cnVjdCBkcm1fZW5jb2RlciBl bmNvZGVyOworCXN0cnVjdCBpbXhfZHJtX2VuY29kZXIgaW14X2VuY29kZXI7CiAJc3RydWN0IGRy bV9wYW5lbCAqcGFuZWw7CiAJc3RydWN0IGRldmljZV9ub2RlICpjaGlsZDsKIAlpbnQgY2hubzsK QEAgLTY1LDcgKzY2LDYgQEAgc3RydWN0IGlteF9sZGJfY2hhbm5lbCB7CiAJaW50IGVkaWRfbGVu OwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIG1vZGU7CiAJaW50IG1vZGVfdmFsaWQ7Ci0JaW50 IGJ1c19mb3JtYXQ7CiB9OwogCiBzdHJ1Y3QgYnVzX211eCB7CkBAIC0xMDIsOCArMTAyLDggQEAg c3RhdGljIGludCBpbXhfbGRiX2Nvbm5lY3Rvcl9nZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvcikKIAkJc3RydWN0IGRybV9kaXNwbGF5X2luZm8gKmRpID0gJmNvbm5lY3Rv ci0+ZGlzcGxheV9pbmZvOwogCiAJCW51bV9tb2RlcyA9IGlteF9sZGJfY2gtPnBhbmVsLT5mdW5j cy0+Z2V0X21vZGVzKGlteF9sZGJfY2gtPnBhbmVsKTsKLQkJaWYgKCFpbXhfbGRiX2NoLT5idXNf Zm9ybWF0ICYmIGRpLT5udW1fYnVzX2Zvcm1hdHMpCi0JCQlpbXhfbGRiX2NoLT5idXNfZm9ybWF0 ID0gZGktPmJ1c19mb3JtYXRzWzBdOworCQlpZiAoIWlteF9sZGJfY2gtPmlteF9lbmNvZGVyLmJ1 c19mb3JtYXQgJiYgZGktPm51bV9idXNfZm9ybWF0cykKKwkJCWlteF9sZGJfY2gtPmlteF9lbmNv ZGVyLmJ1c19mb3JtYXQgPSBkaS0+YnVzX2Zvcm1hdHNbMF07CiAJCWlmIChudW1fbW9kZXMgPiAw KQogCQkJcmV0dXJuIG51bV9tb2RlczsKIAl9CkBAIC0xMzQsNyArMTM0LDcgQEAgc3RhdGljIHN0 cnVjdCBkcm1fZW5jb2RlciAqaW14X2xkYl9jb25uZWN0b3JfYmVzdF9lbmNvZGVyKAogewogCXN0 cnVjdCBpbXhfbGRiX2NoYW5uZWwgKmlteF9sZGJfY2ggPSBjb25fdG9faW14X2xkYl9jaChjb25u ZWN0b3IpOwogCi0JcmV0dXJuICZpbXhfbGRiX2NoLT5lbmNvZGVyOworCXJldHVybiAmaW14X2xk Yl9jaC0+aW14X2VuY29kZXIuZW5jb2RlcjsKIH0KIAogc3RhdGljIHZvaWQgaW14X2xkYl9lbmNv ZGVyX2RwbXMoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLCBpbnQgbW9kZSkKQEAgLTE2OSw0 NSArMTY5LDEwIEBAIHN0YXRpYyB2b2lkIGlteF9sZGJfc2V0X2Nsb2NrKHN0cnVjdCBpbXhfbGRi ICpsZGIsIGludCBtdXgsIGludCBjaG5vLAogCQkJY2hubyk7CiB9CiAKLXN0YXRpYyB2b2lkIGlt eF9sZGJfZW5jb2Rlcl9wcmVwYXJlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKLXsKLQlz dHJ1Y3QgaW14X2xkYl9jaGFubmVsICppbXhfbGRiX2NoID0gZW5jX3RvX2lteF9sZGJfY2goZW5j b2Rlcik7Ci0Jc3RydWN0IGlteF9sZGIgKmxkYiA9IGlteF9sZGJfY2gtPmxkYjsKLQlpbnQgZHVh bCA9IGxkYi0+bGRiX2N0cmwgJiBMREJfU1BMSVRfTU9ERV9FTjsKLQl1MzIgYnVzX2Zvcm1hdDsK LQotCXN3aXRjaCAoaW14X2xkYl9jaC0+YnVzX2Zvcm1hdCkgewotCWRlZmF1bHQ6Ci0JCWRldl93 YXJuKGxkYi0+ZGV2LAotCQkJICJjb3VsZCBub3QgZGV0ZXJtaW5lIGRhdGEgbWFwcGluZywgZGVm YXVsdCB0byAxOC1iaXQgXCJzcHdnXCJcbiIpOwotCQkvKiBmYWxsdGhyb3VnaCAqLwotCWNhc2Ug TUVESUFfQlVTX0ZNVF9SR0I2NjZfMVg3WDNfU1BXRzoKLQkJYnVzX2Zvcm1hdCA9IE1FRElBX0JV U19GTVRfUkdCNjY2XzFYMTg7Ci0JCWJyZWFrOwotCWNhc2UgTUVESUFfQlVTX0ZNVF9SR0I4ODhf MVg3WDRfU1BXRzoKLQkJYnVzX2Zvcm1hdCA9IE1FRElBX0JVU19GTVRfUkdCODg4XzFYMjQ7Ci0J CWlmIChpbXhfbGRiX2NoLT5jaG5vID09IDAgfHwgZHVhbCkKLQkJCWxkYi0+bGRiX2N0cmwgfD0g TERCX0RBVEFfV0lEVEhfQ0gwXzI0OwotCQlpZiAoaW14X2xkYl9jaC0+Y2hubyA9PSAxIHx8IGR1 YWwpCi0JCQlsZGItPmxkYl9jdHJsIHw9IExEQl9EQVRBX1dJRFRIX0NIMV8yNDsKLQkJYnJlYWs7 Ci0JY2FzZSBNRURJQV9CVVNfRk1UX1JHQjg4OF8xWDdYNF9KRUlEQToKLQkJYnVzX2Zvcm1hdCA9 IE1FRElBX0JVU19GTVRfUkdCODg4XzFYMjQ7Ci0JCWlmIChpbXhfbGRiX2NoLT5jaG5vID09IDAg fHwgZHVhbCkKLQkJCWxkYi0+bGRiX2N0cmwgfD0gTERCX0RBVEFfV0lEVEhfQ0gwXzI0IHwKLQkJ CQkJIExEQl9CSVRfTUFQX0NIMF9KRUlEQTsKLQkJaWYgKGlteF9sZGJfY2gtPmNobm8gPT0gMSB8 fCBkdWFsKQotCQkJbGRiLT5sZGJfY3RybCB8PSBMREJfREFUQV9XSURUSF9DSDFfMjQgfAotCQkJ CQkgTERCX0JJVF9NQVBfQ0gxX0pFSURBOwotCQlicmVhazsKLQl9Ci0KLQlpbXhfZHJtX3NldF9i dXNfZm9ybWF0KGVuY29kZXIsIGJ1c19mb3JtYXQpOwotfQotCiBzdGF0aWMgdm9pZCBpbXhfbGRi X2VuY29kZXJfY29tbWl0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIHsKLQlzdHJ1Y3Qg aW14X2xkYl9jaGFubmVsICppbXhfbGRiX2NoID0gZW5jX3RvX2lteF9sZGJfY2goZW5jb2Rlcik7 CisJc3RydWN0IGlteF9kcm1fZW5jb2RlciAqaW14X2VuY29kZXIgPSBlbmNfdG9faW14X2VuYyhl bmNvZGVyKTsKKwlzdHJ1Y3QgaW14X2xkYl9jaGFubmVsICppbXhfbGRiX2NoID0gaW14X2VuY190 b19pbXhfbGRiX2NoKGlteF9lbmNvZGVyKTsKIAlzdHJ1Y3QgaW14X2xkYiAqbGRiID0gaW14X2xk Yl9jaC0+bGRiOwogCWludCBkdWFsID0gbGRiLT5sZGJfY3RybCAmIExEQl9TUExJVF9NT0RFX0VO OwogCWludCBtdXggPSBkcm1fb2ZfZW5jb2Rlcl9hY3RpdmVfcG9ydF9pZChpbXhfbGRiX2NoLT5j aGlsZCwgZW5jb2Rlcik7CkBAIC0yNTUsNyArMjIwLDggQEAgc3RhdGljIHZvaWQgaW14X2xkYl9l bmNvZGVyX21vZGVfc2V0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKIAkJCSBzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqb3JpZ19tb2RlLAogCQkJIHN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICptb2RlKQogewotCXN0cnVjdCBpbXhfbGRiX2NoYW5uZWwgKmlteF9sZGJfY2ggPSBlbmNfdG9f aW14X2xkYl9jaChlbmNvZGVyKTsKKwlzdHJ1Y3QgaW14X2RybV9lbmNvZGVyICppbXhfZW5jb2Rl ciA9IGVuY190b19pbXhfZW5jKGVuY29kZXIpOworCXN0cnVjdCBpbXhfbGRiX2NoYW5uZWwgKmlt eF9sZGJfY2ggPSBpbXhfZW5jX3RvX2lteF9sZGJfY2goaW14X2VuY29kZXIpOwogCXN0cnVjdCBp bXhfbGRiICpsZGIgPSBpbXhfbGRiX2NoLT5sZGI7CiAJaW50IGR1YWwgPSBsZGItPmxkYl9jdHJs ICYgTERCX1NQTElUX01PREVfRU47CiAJdW5zaWduZWQgbG9uZyBzZXJpYWxfY2xrOwpAQCAtMjk4 LDcgKzI2NCw4IEBAIHN0YXRpYyB2b2lkIGlteF9sZGJfZW5jb2Rlcl9tb2RlX3NldChzdHJ1Y3Qg ZHJtX2VuY29kZXIgKmVuY29kZXIsCiAKIHN0YXRpYyB2b2lkIGlteF9sZGJfZW5jb2Rlcl9kaXNh YmxlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIHsKLQlzdHJ1Y3QgaW14X2xkYl9jaGFu bmVsICppbXhfbGRiX2NoID0gZW5jX3RvX2lteF9sZGJfY2goZW5jb2Rlcik7CisJc3RydWN0IGlt eF9kcm1fZW5jb2RlciAqaW14X2VuY29kZXIgPSBlbmNfdG9faW14X2VuYyhlbmNvZGVyKTsKKwlz dHJ1Y3QgaW14X2xkYl9jaGFubmVsICppbXhfbGRiX2NoID0gaW14X2VuY190b19pbXhfbGRiX2No KGlteF9lbmNvZGVyKTsKIAlzdHJ1Y3QgaW14X2xkYiAqbGRiID0gaW14X2xkYl9jaC0+bGRiOwog CWludCBtdXgsIHJldDsKIApAQCAtMzc0LDcgKzM0MSw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg ZHJtX2VuY29kZXJfZnVuY3MgaW14X2xkYl9lbmNvZGVyX2Z1bmNzID0gewogCiBzdGF0aWMgY29u c3Qgc3RydWN0IGRybV9lbmNvZGVyX2hlbHBlcl9mdW5jcyBpbXhfbGRiX2VuY29kZXJfaGVscGVy X2Z1bmNzID0gewogCS5kcG1zID0gaW14X2xkYl9lbmNvZGVyX2RwbXMsCi0JLnByZXBhcmUgPSBp bXhfbGRiX2VuY29kZXJfcHJlcGFyZSwKIAkuY29tbWl0ID0gaW14X2xkYl9lbmNvZGVyX2NvbW1p dCwKIAkubW9kZV9zZXQgPSBpbXhfbGRiX2VuY29kZXJfbW9kZV9zZXQsCiAJLmRpc2FibGUgPSBp bXhfbGRiX2VuY29kZXJfZGlzYWJsZSwKQEAgLTQwMSw3ICszNjcsNyBAQCBzdGF0aWMgaW50IGlt eF9sZGJfcmVnaXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRybSwKIAlzdHJ1Y3QgaW14X2xkYiAq bGRiID0gaW14X2xkYl9jaC0+bGRiOwogCWludCByZXQ7CiAKLQlyZXQgPSBpbXhfZHJtX2VuY29k ZXJfcGFyc2Vfb2YoZHJtLCAmaW14X2xkYl9jaC0+ZW5jb2RlciwKKwlyZXQgPSBpbXhfZHJtX2Vu Y29kZXJfcGFyc2Vfb2YoZHJtLCAmaW14X2xkYl9jaC0+aW14X2VuY29kZXIuZW5jb2RlciwKIAkJ CQkgICAgICAgaW14X2xkYl9jaC0+Y2hpbGQpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CkBA IC00MTYsMTAgKzM4MiwxMCBAQCBzdGF0aWMgaW50IGlteF9sZGJfcmVnaXN0ZXIoc3RydWN0IGRy bV9kZXZpY2UgKmRybSwKIAkJCXJldHVybiByZXQ7CiAJfQogCi0JZHJtX2VuY29kZXJfaGVscGVy X2FkZCgmaW14X2xkYl9jaC0+ZW5jb2RlciwKKwlkcm1fZW5jb2Rlcl9oZWxwZXJfYWRkKCZpbXhf bGRiX2NoLT5pbXhfZW5jb2Rlci5lbmNvZGVyLAogCQkJJmlteF9sZGJfZW5jb2Rlcl9oZWxwZXJf ZnVuY3MpOwotCWRybV9lbmNvZGVyX2luaXQoZHJtLCAmaW14X2xkYl9jaC0+ZW5jb2RlciwgJmlt eF9sZGJfZW5jb2Rlcl9mdW5jcywKLQkJCSBEUk1fTU9ERV9FTkNPREVSX0xWRFMsIE5VTEwpOwor CWRybV9lbmNvZGVyX2luaXQoZHJtLCAmaW14X2xkYl9jaC0+aW14X2VuY29kZXIuZW5jb2RlciwK KwkJCSAmaW14X2xkYl9lbmNvZGVyX2Z1bmNzLCBEUk1fTU9ERV9FTkNPREVSX0xWRFMsIE5VTEwp OwogCiAJZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfYWRkKCZpbXhfbGRiX2NoLT5jb25uZWN0b3IsCiAJ CQkmaW14X2xkYl9jb25uZWN0b3JfaGVscGVyX2Z1bmNzKTsKQEAgLTQzMCw3ICszOTYsNyBAQCBz dGF0aWMgaW50IGlteF9sZGJfcmVnaXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRybSwKIAkJZHJt X3BhbmVsX2F0dGFjaChpbXhfbGRiX2NoLT5wYW5lbCwgJmlteF9sZGJfY2gtPmNvbm5lY3Rvcik7 CiAKIAlkcm1fbW9kZV9jb25uZWN0b3JfYXR0YWNoX2VuY29kZXIoJmlteF9sZGJfY2gtPmNvbm5l Y3RvciwKLQkJCSZpbXhfbGRiX2NoLT5lbmNvZGVyKTsKKwkJCSZpbXhfbGRiX2NoLT5pbXhfZW5j b2Rlci5lbmNvZGVyKTsKIAogCXJldHVybiAwOwogfQpAQCAtNTU4LDYgKzUyNCw3IEBAIHN0YXRp YyBpbnQgaW14X2xkYl9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFz dGVyLCB2b2lkICpkYXRhKQogCWZvcl9lYWNoX2NoaWxkX29mX25vZGUobnAsIGNoaWxkKSB7CiAJ CXN0cnVjdCBpbXhfbGRiX2NoYW5uZWwgKmNoYW5uZWw7CiAJCXN0cnVjdCBkZXZpY2Vfbm9kZSAq cG9ydDsKKwkJaW50IGJ1c19mb3JtYXQ7CiAKIAkJcmV0ID0gb2ZfcHJvcGVydHlfcmVhZF91MzIo Y2hpbGQsICJyZWciLCAmaSk7CiAJCWlmIChyZXQgfHwgaSA8IDAgfHwgaSA+IDEpCkBAIC02MDks MjEgKzU3Niw0NiBAQCBzdGF0aWMgaW50IGlteF9sZGJfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYs IHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwgdm9pZCAqZGF0YSkKIAkJCQljaGFubmVsLT5tb2RlX3Zh bGlkID0gMTsKIAkJfQogCi0JCWNoYW5uZWwtPmJ1c19mb3JtYXQgPSBvZl9nZXRfYnVzX2Zvcm1h dChkZXYsIGNoaWxkKTsKLQkJaWYgKGNoYW5uZWwtPmJ1c19mb3JtYXQgPT0gLUVJTlZBTCkgewor CQlidXNfZm9ybWF0ID0gb2ZfZ2V0X2J1c19mb3JtYXQoZGV2LCBjaGlsZCk7CisJCWlmIChidXNf Zm9ybWF0ID09IC1FSU5WQUwpIHsKIAkJCS8qCiAJCQkgKiBJZiBubyBidXMgZm9ybWF0IHdhcyBz cGVjaWZpZWQgaW4gdGhlIGRldmljZSB0cmVlLAogCQkJICogd2UgY2FuIHN0aWxsIGdldCBpdCBm cm9tIHRoZSBjb25uZWN0ZWQgcGFuZWwgbGF0ZXIuCiAJCQkgKi8KIAkJCWlmIChjaGFubmVsLT5w YW5lbCAmJiBjaGFubmVsLT5wYW5lbC0+ZnVuY3MgJiYKIAkJCSAgICBjaGFubmVsLT5wYW5lbC0+ ZnVuY3MtPmdldF9tb2RlcykKLQkJCQljaGFubmVsLT5idXNfZm9ybWF0ID0gMDsKKwkJCQlidXNf Zm9ybWF0ID0gMDsKIAkJfQotCQlpZiAoY2hhbm5lbC0+YnVzX2Zvcm1hdCA8IDApIHsKKwkJaWYg KGJ1c19mb3JtYXQgPCAwKSB7CiAJCQlkZXZfZXJyKGRldiwgImNvdWxkIG5vdCBkZXRlcm1pbmUg ZGF0YSBtYXBwaW5nOiAlZFxuIiwKLQkJCQljaGFubmVsLT5idXNfZm9ybWF0KTsKLQkJCXJldHVy biBjaGFubmVsLT5idXNfZm9ybWF0OworCQkJCWJ1c19mb3JtYXQpOworCQkJcmV0dXJuIGJ1c19m b3JtYXQ7CiAJCX0KKwkJc3dpdGNoIChidXNfZm9ybWF0KSB7CisJCWNhc2UgTUVESUFfQlVTX0ZN VF9SR0I2NjZfMVg3WDNfU1BXRzoKKwkJCWJ1c19mb3JtYXQgPSBNRURJQV9CVVNfRk1UX1JHQjY2 Nl8xWDE4OworCQkJYnJlYWs7CisJCWNhc2UgTUVESUFfQlVTX0ZNVF9SR0I4ODhfMVg3WDRfU1BX RzoKKwkJCWJ1c19mb3JtYXQgPSBNRURJQV9CVVNfRk1UX1JHQjg4OF8xWDI0OworCQkJaWYgKGkg PT0gMCB8fCBkdWFsKQorCQkJCWlteF9sZGItPmxkYl9jdHJsIHw9IExEQl9EQVRBX1dJRFRIX0NI MF8yNDsKKwkJCWlmIChpID09IDEgfHwgZHVhbCkKKwkJCQlpbXhfbGRiLT5sZGJfY3RybCB8PSBM REJfREFUQV9XSURUSF9DSDFfMjQ7CisJCQlicmVhazsKKwkJY2FzZSBNRURJQV9CVVNfRk1UX1JH Qjg4OF8xWDdYNF9KRUlEQToKKwkJCWJ1c19mb3JtYXQgPSBNRURJQV9CVVNfRk1UX1JHQjg4OF8x WDI0OworCQkJaWYgKGkgPT0gMCB8fCBkdWFsKQorCQkJCWlteF9sZGItPmxkYl9jdHJsIHw9IExE Ql9EQVRBX1dJRFRIX0NIMF8yNCB8CisJCQkJCQkgICAgIExEQl9CSVRfTUFQX0NIMF9KRUlEQTsK KwkJCWlmIChpID09IDEgfHwgZHVhbCkKKwkJCQlpbXhfbGRiLT5sZGJfY3RybCB8PSBMREJfREFU QV9XSURUSF9DSDFfMjQgfAorCQkJCQkJICAgICBMREJfQklUX01BUF9DSDFfSkVJREE7CisJCQli cmVhazsKKwkJfQorCQljaGFubmVsLT5pbXhfZW5jb2Rlci5idXNfZm9ybWF0ID0gYnVzX2Zvcm1h dDsKKworCQljaGFubmVsLT5pbXhfZW5jb2Rlci5kaV9oc3luY19waW4gPSAyOworCQljaGFubmVs LT5pbXhfZW5jb2Rlci5kaV92c3luY19waW4gPSAzOwogCiAJCXJldCA9IGlteF9sZGJfcmVnaXN0 ZXIoZHJtLCBjaGFubmVsKTsKIAkJaWYgKHJldCkKQEAgLTY0OCw3ICs2NDAsOCBAQCBzdGF0aWMg dm9pZCBpbXhfbGRiX3VuYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1h c3RlciwKIAkJCWNvbnRpbnVlOwogCiAJCWNoYW5uZWwtPmNvbm5lY3Rvci5mdW5jcy0+ZGVzdHJv eSgmY2hhbm5lbC0+Y29ubmVjdG9yKTsKLQkJY2hhbm5lbC0+ZW5jb2Rlci5mdW5jcy0+ZGVzdHJv eSgmY2hhbm5lbC0+ZW5jb2Rlcik7CisJCWNoYW5uZWwtPmlteF9lbmNvZGVyLmVuY29kZXIuZnVu Y3MtPmRlc3Ryb3koCisJCQkJCSZjaGFubmVsLT5pbXhfZW5jb2Rlci5lbmNvZGVyKTsKIAogCQlr ZnJlZShjaGFubmVsLT5lZGlkKTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaW14 L2lteC10dmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pbXgvaW14LXR2ZS5jCmluZGV4IDliNDVkZWIu LjgyYTFlZGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pbXgvaW14LXR2ZS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pbXgvaW14LXR2ZS5jCkBAIC05OSw3ICs5OSw3IEBACiAjZGVmaW5l IFRWRV9UVkRBQ19URVNUX01PREVfTUFTSwkoMHg3IDw8IDApCiAKICNkZWZpbmUgY29uX3RvX3R2 ZSh4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGlteF90dmUsIGNvbm5lY3RvcikKLSNkZWZpbmUg ZW5jX3RvX3R2ZSh4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGlteF90dmUsIGVuY29kZXIpCisj ZGVmaW5lIGlteF9lbmNfdG9fdHZlKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW14X3R2ZSwg aW14X2VuY29kZXIpCiAKIGVudW0gewogCVRWRV9NT0RFX1RWT1VULApAQCAtMTA4LDcgKzEwOCw3 IEBAIGVudW0gewogCiBzdHJ1Y3QgaW14X3R2ZSB7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgY29u bmVjdG9yOwotCXN0cnVjdCBkcm1fZW5jb2RlciBlbmNvZGVyOworCXN0cnVjdCBpbXhfZHJtX2Vu Y29kZXIgaW14X2VuY29kZXI7CiAJc3RydWN0IGRldmljZSAqZGV2OwogCXNwaW5sb2NrX3QgbG9j azsJLyogcmVnaXN0ZXIgbG9jayAqLwogCWJvb2wgZW5hYmxlZDsKQEAgLTEyMSw4ICsxMjEsNiBA QCBzdHJ1Y3QgaW14X3R2ZSB7CiAJc3RydWN0IGNsayAqZGlfc2VsX2NsazsKIAlzdHJ1Y3QgY2xr X2h3IGNsa19od19kaTsKIAlzdHJ1Y3QgY2xrICpkaV9jbGs7Ci0JaW50IHZzeW5jX3BpbjsKLQlp bnQgaHN5bmNfcGluOwogfTsKIAogc3RhdGljIHZvaWQgdHZlX2xvY2sodm9pZCAqX190dmUpCkBA IC0yNzMsMTIgKzI3MSwxMyBAQCBzdGF0aWMgc3RydWN0IGRybV9lbmNvZGVyICppbXhfdHZlX2Nv bm5lY3Rvcl9iZXN0X2VuY29kZXIoCiB7CiAJc3RydWN0IGlteF90dmUgKnR2ZSA9IGNvbl90b190 dmUoY29ubmVjdG9yKTsKIAotCXJldHVybiAmdHZlLT5lbmNvZGVyOworCXJldHVybiAmdHZlLT5p bXhfZW5jb2Rlci5lbmNvZGVyOwogfQogCiBzdGF0aWMgdm9pZCBpbXhfdHZlX2VuY29kZXJfZHBt cyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIGludCBtb2RlKQogewotCXN0cnVjdCBpbXhf dHZlICp0dmUgPSBlbmNfdG9fdHZlKGVuY29kZXIpOworCXN0cnVjdCBpbXhfZHJtX2VuY29kZXIg KmlteF9lbmNvZGVyID0gZW5jX3RvX2lteF9lbmMoZW5jb2Rlcik7CisJc3RydWN0IGlteF90dmUg KnR2ZSA9IGlteF9lbmNfdG9fdHZlKGlteF9lbmNvZGVyKTsKIAlpbnQgcmV0OwogCiAJcmV0ID0g cmVnbWFwX3VwZGF0ZV9iaXRzKHR2ZS0+cmVnbWFwLCBUVkVfQ09NX0NPTkZfUkVHLApAQCAtMjg3 LDI4ICsyODYsMTIgQEAgc3RhdGljIHZvaWQgaW14X3R2ZV9lbmNvZGVyX2RwbXMoc3RydWN0IGRy bV9lbmNvZGVyICplbmNvZGVyLCBpbnQgbW9kZSkKIAkJZGV2X2Vycih0dmUtPmRldiwgImZhaWxl ZCB0byBkaXNhYmxlIFRWT1VUOiAlZFxuIiwgcmV0KTsKIH0KIAotc3RhdGljIHZvaWQgaW14X3R2 ZV9lbmNvZGVyX3ByZXBhcmUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQotewotCXN0cnVj dCBpbXhfdHZlICp0dmUgPSBlbmNfdG9fdHZlKGVuY29kZXIpOwotCi0JdHZlX2Rpc2FibGUodHZl KTsKLQotCXN3aXRjaCAodHZlLT5tb2RlKSB7Ci0JY2FzZSBUVkVfTU9ERV9WR0E6Ci0JCWlteF9k cm1fc2V0X2J1c19mb3JtYXRfcGlucyhlbmNvZGVyLCBNRURJQV9CVVNfRk1UX0dCUjg4OF8xWDI0 LAotCQkJCQkgICAgdHZlLT5oc3luY19waW4sIHR2ZS0+dnN5bmNfcGluKTsKLQkJYnJlYWs7Ci0J Y2FzZSBUVkVfTU9ERV9UVk9VVDoKLQkJaW14X2RybV9zZXRfYnVzX2Zvcm1hdChlbmNvZGVyLCBN RURJQV9CVVNfRk1UX1lVVjhfMVgyNCk7Ci0JCWJyZWFrOwotCX0KLX0KLQogc3RhdGljIHZvaWQg aW14X3R2ZV9lbmNvZGVyX21vZGVfc2V0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKIAkJ CQkgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpvcmlnX21vZGUsCiAJCQkJICAgICBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSkKIHsKLQlzdHJ1Y3QgaW14X3R2ZSAqdHZlID0gZW5j X3RvX3R2ZShlbmNvZGVyKTsKKwlzdHJ1Y3QgaW14X2RybV9lbmNvZGVyICppbXhfZW5jb2RlciA9 IGVuY190b19pbXhfZW5jKGVuY29kZXIpOworCXN0cnVjdCBpbXhfdHZlICp0dmUgPSBpbXhfZW5j X3RvX3R2ZShpbXhfZW5jb2Rlcik7CiAJdW5zaWduZWQgbG9uZyByb3VuZGVkX3JhdGU7CiAJdW5z aWduZWQgbG9uZyByYXRlOwogCWludCBkaXYgPSAxOwpAQCAtMzQyLDE0ICszMjUsMTYgQEAgc3Rh dGljIHZvaWQgaW14X3R2ZV9lbmNvZGVyX21vZGVfc2V0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5j b2RlciwKIAogc3RhdGljIHZvaWQgaW14X3R2ZV9lbmNvZGVyX2NvbW1pdChzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIpCiB7Ci0Jc3RydWN0IGlteF90dmUgKnR2ZSA9IGVuY190b190dmUoZW5j b2Rlcik7CisJc3RydWN0IGlteF9kcm1fZW5jb2RlciAqaW14X2VuY29kZXIgPSBlbmNfdG9faW14 X2VuYyhlbmNvZGVyKTsKKwlzdHJ1Y3QgaW14X3R2ZSAqdHZlID0gaW14X2VuY190b190dmUoaW14 X2VuY29kZXIpOwogCiAJdHZlX2VuYWJsZSh0dmUpOwogfQogCiBzdGF0aWMgdm9pZCBpbXhfdHZl X2VuY29kZXJfZGlzYWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiB7Ci0Jc3RydWN0 IGlteF90dmUgKnR2ZSA9IGVuY190b190dmUoZW5jb2Rlcik7CisJc3RydWN0IGlteF9kcm1fZW5j b2RlciAqaW14X2VuY29kZXIgPSBlbmNfdG9faW14X2VuYyhlbmNvZGVyKTsKKwlzdHJ1Y3QgaW14 X3R2ZSAqdHZlID0gaW14X2VuY190b190dmUoaW14X2VuY29kZXIpOwogCiAJdHZlX2Rpc2FibGUo dHZlKTsKIH0KQEAgLTM3Niw3ICszNjEsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9lbmNv ZGVyX2Z1bmNzIGlteF90dmVfZW5jb2Rlcl9mdW5jcyA9IHsKIAogc3RhdGljIGNvbnN0IHN0cnVj dCBkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3MgaW14X3R2ZV9lbmNvZGVyX2hlbHBlcl9mdW5jcyA9 IHsKIAkuZHBtcyA9IGlteF90dmVfZW5jb2Rlcl9kcG1zLAotCS5wcmVwYXJlID0gaW14X3R2ZV9l bmNvZGVyX3ByZXBhcmUsCiAJLm1vZGVfc2V0ID0gaW14X3R2ZV9lbmNvZGVyX21vZGVfc2V0LAog CS5jb21taXQgPSBpbXhfdHZlX2VuY29kZXJfY29tbWl0LAogCS5kaXNhYmxlID0gaW14X3R2ZV9l bmNvZGVyX2Rpc2FibGUsCkBAIC00OTcsMTMgKzQ4MSwxNCBAQCBzdGF0aWMgaW50IGlteF90dmVf cmVnaXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRybSwgc3RydWN0IGlteF90dmUgKnR2ZSkKIAll bmNvZGVyX3R5cGUgPSB0dmUtPm1vZGUgPT0gVFZFX01PREVfVkdBID8KIAkJCQlEUk1fTU9ERV9F TkNPREVSX0RBQyA6IERSTV9NT0RFX0VOQ09ERVJfVFZEQUM7CiAKLQlyZXQgPSBpbXhfZHJtX2Vu Y29kZXJfcGFyc2Vfb2YoZHJtLCAmdHZlLT5lbmNvZGVyLAorCXJldCA9IGlteF9kcm1fZW5jb2Rl cl9wYXJzZV9vZihkcm0sICZ0dmUtPmlteF9lbmNvZGVyLmVuY29kZXIsCiAJCQkJICAgICAgIHR2 ZS0+ZGV2LT5vZl9ub2RlKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0JZHJtX2VuY29k ZXJfaGVscGVyX2FkZCgmdHZlLT5lbmNvZGVyLCAmaW14X3R2ZV9lbmNvZGVyX2hlbHBlcl9mdW5j cyk7Ci0JZHJtX2VuY29kZXJfaW5pdChkcm0sICZ0dmUtPmVuY29kZXIsICZpbXhfdHZlX2VuY29k ZXJfZnVuY3MsCisJZHJtX2VuY29kZXJfaGVscGVyX2FkZCgmdHZlLT5pbXhfZW5jb2Rlci5lbmNv ZGVyLAorCQkJICAgICAgICZpbXhfdHZlX2VuY29kZXJfaGVscGVyX2Z1bmNzKTsKKwlkcm1fZW5j b2Rlcl9pbml0KGRybSwgJnR2ZS0+aW14X2VuY29kZXIuZW5jb2RlciwgJmlteF90dmVfZW5jb2Rl cl9mdW5jcywKIAkJCSBlbmNvZGVyX3R5cGUsIE5VTEwpOwogCiAJZHJtX2Nvbm5lY3Rvcl9oZWxw ZXJfYWRkKCZ0dmUtPmNvbm5lY3RvciwKQEAgLTUxMSw3ICs0OTYsOCBAQCBzdGF0aWMgaW50IGlt eF90dmVfcmVnaXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRybSwgc3RydWN0IGlteF90dmUgKnR2 ZSkKIAlkcm1fY29ubmVjdG9yX2luaXQoZHJtLCAmdHZlLT5jb25uZWN0b3IsICZpbXhfdHZlX2Nv bm5lY3Rvcl9mdW5jcywKIAkJCSAgIERSTV9NT0RFX0NPTk5FQ1RPUl9WR0EpOwogCi0JZHJtX21v ZGVfY29ubmVjdG9yX2F0dGFjaF9lbmNvZGVyKCZ0dmUtPmNvbm5lY3RvciwgJnR2ZS0+ZW5jb2Rl cik7CisJZHJtX21vZGVfY29ubmVjdG9yX2F0dGFjaF9lbmNvZGVyKCZ0dmUtPmNvbm5lY3RvciwK KwkJCQkJICAmdHZlLT5pbXhfZW5jb2Rlci5lbmNvZGVyKTsKIAogCXJldHVybiAwOwogfQpAQCAt NTg5LDcgKzU3NSw3IEBAIHN0YXRpYyBpbnQgaW14X3R2ZV9iaW5kKHN0cnVjdCBkZXZpY2UgKmRl diwgc3RydWN0IGRldmljZSAqbWFzdGVyLCB2b2lkICpkYXRhKQogCiAJaWYgKHR2ZS0+bW9kZSA9 PSBUVkVfTU9ERV9WR0EpIHsKIAkJcmV0ID0gb2ZfcHJvcGVydHlfcmVhZF91MzIobnAsICJmc2ws aHN5bmMtcGluIiwKLQkJCQkJICAgJnR2ZS0+aHN5bmNfcGluKTsKKwkJCQkJICAgJnR2ZS0+aW14 X2VuY29kZXIuZGlfaHN5bmNfcGluKTsKIAogCQlpZiAocmV0IDwgMCkgewogCQkJZGV2X2Vycihk ZXYsICJmYWlsZWQgdG8gZ2V0IHZzeW5jIHBpblxuIik7CkBAIC01OTcsMTIgKzU4MywxNCBAQCBz dGF0aWMgaW50IGlteF90dmVfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2Ug Km1hc3Rlciwgdm9pZCAqZGF0YSkKIAkJfQogCiAJCXJldCB8PSBvZl9wcm9wZXJ0eV9yZWFkX3Uz MihucCwgImZzbCx2c3luYy1waW4iLAotCQkJCQkgICAgJnR2ZS0+dnN5bmNfcGluKTsKKwkJCQkJ ICAgICZ0dmUtPmlteF9lbmNvZGVyLmRpX3ZzeW5jX3Bpbik7CiAKIAkJaWYgKHJldCA8IDApIHsK IAkJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGdldCB2c3luYyBwaW5cbiIpOwogCQkJcmV0dXJu IHJldDsKIAkJfQorCisJCXR2ZS0+aW14X2VuY29kZXIuYnVzX2Zvcm1hdCA9IE1FRElBX0JVU19G TVRfR0JSODg4XzFYMjQ7CiAJfQogCiAJcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYs IElPUkVTT1VSQ0VfTUVNLCAwKTsKQEAgLTY5MSw3ICs2NzksNyBAQCBzdGF0aWMgdm9pZCBpbXhf dHZlX3VuYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3RlciwKIAlz dHJ1Y3QgaW14X3R2ZSAqdHZlID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAKIAl0dmUtPmNvbm5l Y3Rvci5mdW5jcy0+ZGVzdHJveSgmdHZlLT5jb25uZWN0b3IpOwotCXR2ZS0+ZW5jb2Rlci5mdW5j cy0+ZGVzdHJveSgmdHZlLT5lbmNvZGVyKTsKKwl0dmUtPmlteF9lbmNvZGVyLmVuY29kZXIuZnVu Y3MtPmRlc3Ryb3koJnR2ZS0+aW14X2VuY29kZXIuZW5jb2Rlcik7CiAKIAlpZiAoIUlTX0VSUih0 dmUtPmRhY19yZWcpKQogCQlyZWd1bGF0b3JfZGlzYWJsZSh0dmUtPmRhY19yZWcpOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My1jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0v aW14L2lwdXYzLWNydGMuYwppbmRleCA2ZWY2Yzk2Li4zYTNiNjdjIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaW14L2lwdXYzLWNydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaW14L2lw dXYzLWNydGMuYwpAQCAtNjIsMTQgKzYyLDEwIEBAIHN0cnVjdCBpcHVfY3J0YyB7CiAKIAlzdHJ1 Y3QgaXB1X2RjCQkqZGM7CiAJc3RydWN0IGlwdV9kaQkJKmRpOwotCWludAkJCWVuYWJsZWQ7CiAJ ZW51bSBpcHVfZmxpcF9zdGF0dXMJZmxpcF9zdGF0ZTsKIAlzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVj dCAqZmxpcF9xdWV1ZTsKIAlzdHJ1Y3QgaXB1X2ZsaXBfd29yawkqZmxpcF93b3JrOwogCWludAkJ CWlycTsKLQl1MzIJCQlidXNfZm9ybWF0OwotCWludAkJCWRpX2hzeW5jX3BpbjsKLQlpbnQJCQlk aV92c3luY19waW47CiB9OwogCiAjZGVmaW5lIHRvX2lwdV9jcnRjKHgpIGNvbnRhaW5lcl9vZih4 LCBzdHJ1Y3QgaXB1X2NydGMsIGJhc2UpCkBAIC03OCwxOSArNzQsMTAgQEAgc3RhdGljIHZvaWQg aXB1X2NydGNfZW5hYmxlKHN0cnVjdCBpcHVfY3J0YyAqaXB1X2NydGMpCiB7CiAJc3RydWN0IGlw dV9zb2MgKmlwdSA9IGRldl9nZXRfZHJ2ZGF0YShpcHVfY3J0Yy0+ZGV2LT5wYXJlbnQpOwogCi0J aWYgKGlwdV9jcnRjLT5lbmFibGVkKQotCQlyZXR1cm47Ci0KIAlpcHVfZGNfZW5hYmxlKGlwdSk7 CiAJLyogU3RhcnQgREMgY2hhbm5lbCBhbmQgREkgYWZ0ZXIgSURNQUMgKi8KIAlpcHVfZGNfZW5h YmxlX2NoYW5uZWwoaXB1X2NydGMtPmRjKTsKIAlpcHVfZGlfZW5hYmxlKGlwdV9jcnRjLT5kaSk7 Ci0JaXB1X2NydGMtPmVuYWJsZWQgPSAxOwotCi0JLyoKLQkgKiBJbiBvcmRlciBub3QgdG8gYmUg d2FybmVkIG9uIGVuYWJsaW5nIHZibGFuayBmYWlsdXJlLAotCSAqIHdlIHNob3VsZCBjYWxsIGRy bV9jcnRjX3ZibGFua19vbigpIGFmdGVyIC0+ZW5hYmxlZCBpcyBzZXQgdG8gMS4KLQkgKi8KIAlk cm1fY3J0Y192Ymxhbmtfb24oJmlwdV9jcnRjLT5iYXNlKTsKIH0KIApAQCAtOTgsMTUgKzg1LDEw IEBAIHN0YXRpYyB2b2lkIGlwdV9jcnRjX2Rpc2FibGUoc3RydWN0IGlwdV9jcnRjICppcHVfY3J0 YykKIHsKIAlzdHJ1Y3QgaXB1X3NvYyAqaXB1ID0gZGV2X2dldF9kcnZkYXRhKGlwdV9jcnRjLT5k ZXYtPnBhcmVudCk7CiAKLQlpZiAoIWlwdV9jcnRjLT5lbmFibGVkKQotCQlyZXR1cm47Ci0KIAkv KiBTdG9wIERDIGNoYW5uZWwgYW5kIERJIGJlZm9yZSBJRE1BQyAqLwogCWlwdV9kY19kaXNhYmxl X2NoYW5uZWwoaXB1X2NydGMtPmRjKTsKIAlpcHVfZGlfZGlzYWJsZShpcHVfY3J0Yy0+ZGkpOwog CWlwdV9kY19kaXNhYmxlKGlwdSk7Ci0JaXB1X2NydGMtPmVuYWJsZWQgPSAwOwotCiAJZHJtX2Ny dGNfdmJsYW5rX29mZigmaXB1X2NydGMtPmJhc2UpOwogfQogCkBAIC0yMzUsNyArMjE3LDcgQEAg cHV0X3ZibGFuazoKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19mdW5jcyBpcHVf Y3J0Y19mdW5jcyA9IHsKLQkuc2V0X2NvbmZpZyA9IGRybV9jcnRjX2hlbHBlcl9zZXRfY29uZmln LAorCS5zZXRfY29uZmlnID0gZHJtX2F0b21pY19oZWxwZXJfc2V0X2NvbmZpZywKIAkuZGVzdHJv eSA9IGRybV9jcnRjX2NsZWFudXAsCiAJLnBhZ2VfZmxpcCA9IGlwdV9wYWdlX2ZsaXAsCiAJLnJl c2V0ID0gZHJtX2F0b21pY19oZWxwZXJfY3J0Y19yZXNldCwKQEAgLTMxNSw2ICsyOTcsMTEgQEAg c3RhdGljIHZvaWQgaXB1X2NydGNfY29tbWl0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHN0YXRp YyBpbnQgaXB1X2NydGNfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCQkg c3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSkKIHsKKwl1MzIgcHJpbWFyeV9wbGFuZV9tYXNr ID0gMSA8PCBkcm1fcGxhbmVfaW5kZXgoY3J0Yy0+cHJpbWFyeSk7CisKKwlpZiAoc3RhdGUtPmFj dGl2ZSAmJiAocHJpbWFyeV9wbGFuZV9tYXNrICYgc3RhdGUtPnBsYW5lX21hc2spID09IDApCisJ CXJldHVybiAtRUlOVkFMOworCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTMyMiw2ICszMDksNyBAQCBz dGF0aWMgdm9pZCBpcHVfY3J0Y19tb2RlX3NldF9ub2ZiKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykK IHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OwogCXN0cnVjdCBkcm1fZW5j b2RlciAqZW5jb2RlcjsKKwlzdHJ1Y3QgaW14X2RybV9lbmNvZGVyICppbXhfZW5jb2RlciA9IE5V TEw7CiAJc3RydWN0IGlwdV9jcnRjICppcHVfY3J0YyA9IHRvX2lwdV9jcnRjKGNydGMpOwogCXN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlID0gJmNydGMtPnN0YXRlLT5hZGp1c3RlZF9tb2Rl OwogCXN0cnVjdCBpcHVfZGlfc2lnbmFsX2NmZyBzaWdfY2ZnID0ge307CkBAIC0zMzIsOSArMzIw LDEyIEBAIHN0YXRpYyB2b2lkIGlwdV9jcnRjX21vZGVfc2V0X25vZmIoc3RydWN0IGRybV9jcnRj ICpjcnRjKQogCWRldl9kYmcoaXB1X2NydGMtPmRldiwgIiVzOiBtb2RlLT52ZGlzcGxheTogJWRc biIsIF9fZnVuY19fLAogCQkJbW9kZS0+dmRpc3BsYXkpOwogCi0JbGlzdF9mb3JfZWFjaF9lbnRy eShlbmNvZGVyLCAmZGV2LT5tb2RlX2NvbmZpZy5lbmNvZGVyX2xpc3QsIGhlYWQpCi0JCWlmIChl bmNvZGVyLT5jcnRjID09IGNydGMpCisJbGlzdF9mb3JfZWFjaF9lbnRyeShlbmNvZGVyLCAmZGV2 LT5tb2RlX2NvbmZpZy5lbmNvZGVyX2xpc3QsIGhlYWQpIHsKKwkJaWYgKGVuY29kZXItPmNydGMg PT0gY3J0YykgewogCQkJZW5jb2Rlcl90eXBlcyB8PSBCSVQoZW5jb2Rlci0+ZW5jb2Rlcl90eXBl KTsKKwkJCWlteF9lbmNvZGVyID0gZW5jX3RvX2lteF9lbmMoZW5jb2Rlcik7CisJCX0KKwl9CiAK IAlkZXZfZGJnKGlwdV9jcnRjLT5kZXYsICIlczogYXR0YWNoZWQgdG8gZW5jb2RlciB0eXBlcyAw eCVseFxuIiwKIAkJX19mdW5jX18sIGVuY29kZXJfdHlwZXMpOwpAQCAtMzU0LDIzICszNDUsMjIg QEAgc3RhdGljIHZvaWQgaXB1X2NydGNfbW9kZV9zZXRfbm9mYihzdHJ1Y3QgZHJtX2NydGMgKmNy dGMpCiAKIAlzaWdfY2ZnLmVuYWJsZV9wb2wgPSAxOwogCXNpZ19jZmcuY2xrX3BvbCA9IDA7Ci0J c2lnX2NmZy5idXNfZm9ybWF0ID0gaXB1X2NydGMtPmJ1c19mb3JtYXQ7CisJc2lnX2NmZy5idXNf Zm9ybWF0ID0gaW14X2VuY29kZXItPmJ1c19mb3JtYXQ7CiAJc2lnX2NmZy52X3RvX2hfc3luYyA9 IDA7Ci0Jc2lnX2NmZy5oc3luY19waW4gPSBpcHVfY3J0Yy0+ZGlfaHN5bmNfcGluOwotCXNpZ19j ZmcudnN5bmNfcGluID0gaXB1X2NydGMtPmRpX3ZzeW5jX3BpbjsKKwlzaWdfY2ZnLmhzeW5jX3Bp biA9IGlteF9lbmNvZGVyLT5kaV9oc3luY19waW47CisJc2lnX2NmZy52c3luY19waW4gPSBpbXhf ZW5jb2Rlci0+ZGlfdnN5bmNfcGluOwogCiAJZHJtX2Rpc3BsYXlfbW9kZV90b192aWRlb21vZGUo bW9kZSwgJnNpZ19jZmcubW9kZSk7CiAKIAlpcHVfZGNfaW5pdF9zeW5jKGlwdV9jcnRjLT5kYywg aXB1X2NydGMtPmRpLAogCQkJIG1vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19JTlRFUkxBQ0Us Ci0JCQkgaXB1X2NydGMtPmJ1c19mb3JtYXQsIG1vZGUtPmhkaXNwbGF5KTsKKwkJCSBpbXhfZW5j b2Rlci0+YnVzX2Zvcm1hdCwgbW9kZS0+aGRpc3BsYXkpOwogCWlwdV9kaV9pbml0X3N5bmNfcGFu ZWwoaXB1X2NydGMtPmRpLCAmc2lnX2NmZyk7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJt X2NydGNfaGVscGVyX2Z1bmNzIGlwdV9oZWxwZXJfZnVuY3MgPSB7CiAJLmRwbXMgPSBpcHVfY3J0 Y19kcG1zLAogCS5tb2RlX2ZpeHVwID0gaXB1X2NydGNfbW9kZV9maXh1cCwKLQkubW9kZV9zZXQg PSBkcm1faGVscGVyX2NydGNfbW9kZV9zZXQsCiAJLm1vZGVfc2V0X25vZmIgPSBpcHVfY3J0Y19t b2RlX3NldF9ub2ZiLAogCS5wcmVwYXJlID0gaXB1X2NydGNfcHJlcGFyZSwKIAkuY29tbWl0ID0g aXB1X2NydGNfY29tbWl0LApAQCAtMzgxLDE0ICszNzEsNiBAQCBzdGF0aWMgaW50IGlwdV9lbmFi bGVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKIAlzdHJ1Y3QgaXB1X2NydGMgKmlw dV9jcnRjID0gdG9faXB1X2NydGMoY3J0Yyk7CiAKLQkvKgotCSAqIC0+Y29tbWl0IGlzIGRvbmUg YWZ0ZXIgLT5tb2RlX3NldCBpbiBkcm1fY3J0Y19oZWxwZXJfc2V0X21vZGUoKSwKLQkgKiBzbyB3 YWl0aW5nIGZvciB2YmxhbmsgaW4gZHJtX3BsYW5lX2hlbHBlcl9jb21taXQoKSB3aWxsIHRpbWVv dXQuCi0JICogQ2hlY2sgdGhlIHN0YXRlIGhlcmUgdG8gYXZvaWQgdGhlIHdhaXRpbmcuCi0JICov Ci0JaWYgKCFpcHVfY3J0Yy0+ZW5hYmxlZCkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KIAllbmFibGVf aXJxKGlwdV9jcnRjLT5pcnEpOwogCiAJcmV0dXJuIDA7CkBAIC00MDEsMjIgKzM4Myw5IEBAIHN0 YXRpYyB2b2lkIGlwdV9kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJZGlz YWJsZV9pcnFfbm9zeW5jKGlwdV9jcnRjLT5pcnEpOwogfQogCi1zdGF0aWMgaW50IGlwdV9zZXRf aW50ZXJmYWNlX3BpeF9mbXQoc3RydWN0IGRybV9jcnRjICpjcnRjLAotCQl1MzIgYnVzX2Zvcm1h dCwgaW50IGhzeW5jX3BpbiwgaW50IHZzeW5jX3BpbikKLXsKLQlzdHJ1Y3QgaXB1X2NydGMgKmlw dV9jcnRjID0gdG9faXB1X2NydGMoY3J0Yyk7Ci0KLQlpcHVfY3J0Yy0+YnVzX2Zvcm1hdCA9IGJ1 c19mb3JtYXQ7Ci0JaXB1X2NydGMtPmRpX2hzeW5jX3BpbiA9IGhzeW5jX3BpbjsKLQlpcHVfY3J0 Yy0+ZGlfdnN5bmNfcGluID0gdnN5bmNfcGluOwotCi0JcmV0dXJuIDA7Ci19Ci0KIHN0YXRpYyBj b25zdCBzdHJ1Y3QgaW14X2RybV9jcnRjX2hlbHBlcl9mdW5jcyBpcHVfY3J0Y19oZWxwZXJfZnVu Y3MgPSB7CiAJLmVuYWJsZV92YmxhbmsgPSBpcHVfZW5hYmxlX3ZibGFuaywKIAkuZGlzYWJsZV92 YmxhbmsgPSBpcHVfZGlzYWJsZV92YmxhbmssCi0JLnNldF9pbnRlcmZhY2VfcGl4X2ZtdCA9IGlw dV9zZXRfaW50ZXJmYWNlX3BpeF9mbXQsCiAJLmNydGNfZnVuY3MgPSAmaXB1X2NydGNfZnVuY3Ms CiAJLmNydGNfaGVscGVyX2Z1bmNzID0gJmlwdV9oZWxwZXJfZnVuY3MsCiB9OwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My1wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2lt eC9pcHV2My1wbGFuZS5jCmluZGV4IDg0MTljYzEuLmIyYTQxM2YgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pbXgvaXB1djMtcGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaW14L2lw dXYzLXBsYW5lLmMKQEAgLTE0LDYgKzE0LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8ZHJtL2RybVAu aD4KKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWlj X2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgogI2luY2x1ZGUg PGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KQEAgLTM3NCwzMSArMzc1LDMxIEBAIHN0YXRpYyBp bnQgaXB1X3BsYW5lX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlzdHJ1 Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfc3RhdGUgPSBwbGFuZS0+c3RhdGU7CiAJc3RydWN0IGRy bV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwogCXN0cnVjdCBkZXZpY2UgKmRldiA9IHBsYW5lLT5k ZXYtPmRldjsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CiAJc3RydWN0IGRybV9mcmFtZWJ1ZmZl ciAqZmIgPSBzdGF0ZS0+ZmI7CiAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqb2xkX2ZiID0gb2xk X3N0YXRlLT5mYjsKIAl1bnNpZ25lZCBsb25nIGViYSwgdWJvLCB2Ym8sIG9sZF91Ym8sIG9sZF92 Ym87CiAKIAkvKiBPayB0byBkaXNhYmxlICovCiAJaWYgKCFmYikKLQkJcmV0dXJuIG9sZF9mYiA/ IDAgOiAtRUlOVkFMOworCQlyZXR1cm4gMDsKKworCWlmICghc3RhdGUtPmNydGMpCisJCXJldHVy biAtRUlOVkFMOworCisJY3J0Y19zdGF0ZSA9CisJCWRybV9hdG9taWNfZ2V0X2V4aXN0aW5nX2Ny dGNfc3RhdGUoc3RhdGUtPnN0YXRlLCBzdGF0ZS0+Y3J0Yyk7CisJaWYgKFdBUk5fT04oIWNydGNf c3RhdGUpKQorCQlyZXR1cm4gLUVJTlZBTDsKIAogCS8qIENSVEMgc2hvdWxkIGJlIGVuYWJsZWQg Ki8KLQlkcm1fZm9yX2VhY2hfY3J0YyhjcnRjLCBwbGFuZS0+ZGV2KSB7Ci0JCWlmIChkcm1fY3J0 Y19tYXNrKGNydGMpID09IHBsYW5lLT5wb3NzaWJsZV9jcnRjcykgewotCQkJaWYgKCFjcnRjLT5l bmFibGVkKQotCQkJCXJldHVybiAtRUlOVkFMOwotCQkJYnJlYWs7Ci0JCX0KLQl9CisJaWYgKCFj cnRjX3N0YXRlLT5lbmFibGUpCisJCXJldHVybiAtRUlOVkFMOwogCiAJLyogbm8gc2NhbGluZyAq LwogCWlmIChzdGF0ZS0+c3JjX3cgPj4gMTYgIT0gc3RhdGUtPmNydGNfdyB8fAogCSAgICBzdGF0 ZS0+c3JjX2ggPj4gMTYgIT0gc3RhdGUtPmNydGNfaCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlj cnRjX3N0YXRlID0gc3RhdGUtPmNydGMtPnN0YXRlOwotCiAJc3dpdGNoIChwbGFuZS0+dHlwZSkg ewogCWNhc2UgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWToKIAkJLyogZnVsbCBwbGFuZSBkb2Vzbid0 IHN1cHBvcnQgcGFydGlhbCBvZmYgc2NyZWVuICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaW14L3BhcmFsbGVsLWRpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pbXgvcGFyYWxsZWwt ZGlzcGxheS5jCmluZGV4IDI1MmMwZWEuLjIzNjdmMGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pbXgvcGFyYWxsZWwtZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pbXgvcGFy YWxsZWwtZGlzcGxheS5jCkBAIC0yNywxNSArMjcsMTUgQEAKICNpbmNsdWRlICJpbXgtZHJtLmgi CiAKICNkZWZpbmUgY29uX3RvX2lteHBkKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW14X3Bh cmFsbGVsX2Rpc3BsYXksIGNvbm5lY3RvcikKLSNkZWZpbmUgZW5jX3RvX2lteHBkKHgpIGNvbnRh aW5lcl9vZih4LCBzdHJ1Y3QgaW14X3BhcmFsbGVsX2Rpc3BsYXksIGVuY29kZXIpCisjZGVmaW5l IGlteF9lbmNfdG9faW14cGQoeCkJXAorCQljb250YWluZXJfb2YoeCwgc3RydWN0IGlteF9wYXJh bGxlbF9kaXNwbGF5LCBpbXhfZW5jb2RlcikKIAogc3RydWN0IGlteF9wYXJhbGxlbF9kaXNwbGF5 IHsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciBjb25uZWN0b3I7Ci0Jc3RydWN0IGRybV9lbmNvZGVy IGVuY29kZXI7CisJc3RydWN0IGlteF9kcm1fZW5jb2RlciBpbXhfZW5jb2RlcjsKIAlzdHJ1Y3Qg ZGV2aWNlICpkZXY7CiAJdm9pZCAqZWRpZDsKIAlpbnQgZWRpZF9sZW47Ci0JdTMyIGJ1c19mb3Jt YXQ7CiAJaW50IG1vZGVfdmFsaWQ7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgbW9kZTsKIAlz dHJ1Y3QgZHJtX3BhbmVsICpwYW5lbDsKQEAgLTU4LDggKzU4LDggQEAgc3RhdGljIGludCBpbXhf cGRfY29ubmVjdG9yX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQog CQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqZGkgPSAmY29ubmVjdG9yLT5kaXNwbGF5X2luZm87 CiAKIAkJbnVtX21vZGVzID0gaW14cGQtPnBhbmVsLT5mdW5jcy0+Z2V0X21vZGVzKGlteHBkLT5w YW5lbCk7Ci0JCWlmICghaW14cGQtPmJ1c19mb3JtYXQgJiYgZGktPm51bV9idXNfZm9ybWF0cykK LQkJCWlteHBkLT5idXNfZm9ybWF0ID0gZGktPmJ1c19mb3JtYXRzWzBdOworCQlpZiAoIWlteHBk LT5pbXhfZW5jb2Rlci5idXNfZm9ybWF0ICYmIGRpLT5udW1fYnVzX2Zvcm1hdHMpCisJCQlpbXhw ZC0+aW14X2VuY29kZXIuYnVzX2Zvcm1hdCA9IGRpLT5idXNfZm9ybWF0c1swXTsKIAkJaWYgKG51 bV9tb2RlcyA+IDApCiAJCQlyZXR1cm4gbnVtX21vZGVzOwogCX0KQEAgLTEwMCwxMiArMTAwLDEz IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2VuY29kZXIgKmlteF9wZF9jb25uZWN0b3JfYmVzdF9lbmNv ZGVyKAogewogCXN0cnVjdCBpbXhfcGFyYWxsZWxfZGlzcGxheSAqaW14cGQgPSBjb25fdG9faW14 cGQoY29ubmVjdG9yKTsKIAotCXJldHVybiAmaW14cGQtPmVuY29kZXI7CisJcmV0dXJuICZpbXhw ZC0+aW14X2VuY29kZXIuZW5jb2RlcjsKIH0KIAogc3RhdGljIHZvaWQgaW14X3BkX2VuY29kZXJf ZHBtcyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIGludCBtb2RlKQogewotCXN0cnVjdCBp bXhfcGFyYWxsZWxfZGlzcGxheSAqaW14cGQgPSBlbmNfdG9faW14cGQoZW5jb2Rlcik7CisJc3Ry dWN0IGlteF9kcm1fZW5jb2RlciAqaW14X2VuY29kZXIgPSBlbmNfdG9faW14X2VuYyhlbmNvZGVy KTsKKwlzdHJ1Y3QgaW14X3BhcmFsbGVsX2Rpc3BsYXkgKmlteHBkID0gaW14X2VuY190b19pbXhw ZChpbXhfZW5jb2Rlcik7CiAKIAlpZiAobW9kZSAhPSBEUk1fTU9ERV9EUE1TX09OKQogCQlkcm1f cGFuZWxfZGlzYWJsZShpbXhwZC0+cGFuZWwpOwpAQCAtMTEzLDE2ICsxMTQsMTAgQEAgc3RhdGlj IHZvaWQgaW14X3BkX2VuY29kZXJfZHBtcyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIGlu dCBtb2RlKQogCQlkcm1fcGFuZWxfZW5hYmxlKGlteHBkLT5wYW5lbCk7CiB9CiAKLXN0YXRpYyB2 b2lkIGlteF9wZF9lbmNvZGVyX3ByZXBhcmUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQot ewotCXN0cnVjdCBpbXhfcGFyYWxsZWxfZGlzcGxheSAqaW14cGQgPSBlbmNfdG9faW14cGQoZW5j b2Rlcik7Ci0KLQlpbXhfZHJtX3NldF9idXNfZm9ybWF0KGVuY29kZXIsIGlteHBkLT5idXNfZm9y bWF0KTsKLX0KLQogc3RhdGljIHZvaWQgaW14X3BkX2VuY29kZXJfY29tbWl0KHN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlcikKIHsKLQlzdHJ1Y3QgaW14X3BhcmFsbGVsX2Rpc3BsYXkgKmlteHBk ID0gZW5jX3RvX2lteHBkKGVuY29kZXIpOworCXN0cnVjdCBpbXhfZHJtX2VuY29kZXIgKmlteF9l bmNvZGVyID0gZW5jX3RvX2lteF9lbmMoZW5jb2Rlcik7CisJc3RydWN0IGlteF9wYXJhbGxlbF9k aXNwbGF5ICppbXhwZCA9IGlteF9lbmNfdG9faW14cGQoaW14X2VuY29kZXIpOwogCiAJZHJtX3Bh bmVsX3ByZXBhcmUoaW14cGQtPnBhbmVsKTsKIAlkcm1fcGFuZWxfZW5hYmxlKGlteHBkLT5wYW5l bCk7CkBAIC0xMzYsNyArMTMxLDggQEAgc3RhdGljIHZvaWQgaW14X3BkX2VuY29kZXJfbW9kZV9z ZXQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAogCiBzdGF0aWMgdm9pZCBpbXhfcGRfZW5j b2Rlcl9kaXNhYmxlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIHsKLQlzdHJ1Y3QgaW14 X3BhcmFsbGVsX2Rpc3BsYXkgKmlteHBkID0gZW5jX3RvX2lteHBkKGVuY29kZXIpOworCXN0cnVj dCBpbXhfZHJtX2VuY29kZXIgKmlteF9lbmNvZGVyID0gZW5jX3RvX2lteF9lbmMoZW5jb2Rlcik7 CisJc3RydWN0IGlteF9wYXJhbGxlbF9kaXNwbGF5ICppbXhwZCA9IGlteF9lbmNfdG9faW14cGQo aW14X2VuY29kZXIpOwogCiAJZHJtX3BhbmVsX2Rpc2FibGUoaW14cGQtPnBhbmVsKTsKIAlkcm1f cGFuZWxfdW5wcmVwYXJlKGlteHBkLT5wYW5lbCk7CkBAIC0xNjMsNyArMTU5LDYgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBkcm1fZW5jb2Rlcl9mdW5jcyBpbXhfcGRfZW5jb2Rlcl9mdW5jcyA9IHsK IAogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3MgaW14X3BkX2Vu Y29kZXJfaGVscGVyX2Z1bmNzID0gewogCS5kcG1zID0gaW14X3BkX2VuY29kZXJfZHBtcywKLQku cHJlcGFyZSA9IGlteF9wZF9lbmNvZGVyX3ByZXBhcmUsCiAJLmNvbW1pdCA9IGlteF9wZF9lbmNv ZGVyX2NvbW1pdCwKIAkubW9kZV9zZXQgPSBpbXhfcGRfZW5jb2Rlcl9tb2RlX3NldCwKIAkuZGlz YWJsZSA9IGlteF9wZF9lbmNvZGVyX2Rpc2FibGUsCkBAIC0xNzQsNyArMTY5LDcgQEAgc3RhdGlj IGludCBpbXhfcGRfcmVnaXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRybSwKIHsKIAlpbnQgcmV0 OwogCi0JcmV0ID0gaW14X2RybV9lbmNvZGVyX3BhcnNlX29mKGRybSwgJmlteHBkLT5lbmNvZGVy LAorCXJldCA9IGlteF9kcm1fZW5jb2Rlcl9wYXJzZV9vZihkcm0sICZpbXhwZC0+aW14X2VuY29k ZXIuZW5jb2RlciwKIAkJCQkgICAgICAgaW14cGQtPmRldi0+b2Zfbm9kZSk7CiAJaWYgKHJldCkK IAkJcmV0dXJuIHJldDsKQEAgLTE4Niw5ICsxODEsMTAgQEAgc3RhdGljIGludCBpbXhfcGRfcmVn aXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRybSwKIAkgKi8KIAlpbXhwZC0+Y29ubmVjdG9yLmRw bXMgPSBEUk1fTU9ERV9EUE1TX09GRjsKIAotCWRybV9lbmNvZGVyX2hlbHBlcl9hZGQoJmlteHBk LT5lbmNvZGVyLCAmaW14X3BkX2VuY29kZXJfaGVscGVyX2Z1bmNzKTsKLQlkcm1fZW5jb2Rlcl9p bml0KGRybSwgJmlteHBkLT5lbmNvZGVyLCAmaW14X3BkX2VuY29kZXJfZnVuY3MsCi0JCQkgRFJN X01PREVfRU5DT0RFUl9OT05FLCBOVUxMKTsKKwlkcm1fZW5jb2Rlcl9oZWxwZXJfYWRkKCZpbXhw ZC0+aW14X2VuY29kZXIuZW5jb2RlciwKKwkJCSAgICAgICAmaW14X3BkX2VuY29kZXJfaGVscGVy X2Z1bmNzKTsKKwlkcm1fZW5jb2Rlcl9pbml0KGRybSwgJmlteHBkLT5pbXhfZW5jb2Rlci5lbmNv ZGVyLAorCQkJICZpbXhfcGRfZW5jb2Rlcl9mdW5jcywgRFJNX01PREVfRU5DT0RFUl9OT05FLCBO VUxMKTsKIAogCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZCgmaW14cGQtPmNvbm5lY3RvciwKIAkJ CSZpbXhfcGRfY29ubmVjdG9yX2hlbHBlcl9mdW5jcyk7CkBAIC0xOTgsNyArMTk0LDggQEAgc3Rh dGljIGludCBpbXhfcGRfcmVnaXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRybSwKIAlpZiAoaW14 cGQtPnBhbmVsKQogCQlkcm1fcGFuZWxfYXR0YWNoKGlteHBkLT5wYW5lbCwgJmlteHBkLT5jb25u ZWN0b3IpOwogCi0JZHJtX21vZGVfY29ubmVjdG9yX2F0dGFjaF9lbmNvZGVyKCZpbXhwZC0+Y29u bmVjdG9yLCAmaW14cGQtPmVuY29kZXIpOworCWRybV9tb2RlX2Nvbm5lY3Rvcl9hdHRhY2hfZW5j b2RlcigmaW14cGQtPmNvbm5lY3RvciwKKwkJCQkJICAmaW14cGQtPmlteF9lbmNvZGVyLmVuY29k ZXIpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0yMTAsNyArMjA3LDcgQEAgc3RhdGljIGludCBpbXhf cGRfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwgdm9pZCAq ZGF0YSkKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKnBvcnQ7CiAJY29uc3QgdTggKmVkaWRwOwogCXN0 cnVjdCBpbXhfcGFyYWxsZWxfZGlzcGxheSAqaW14cGQ7Ci0JaW50IHJldDsKKwlpbnQgcmV0LCBi dXNfZm9ybWF0ID0gMDsKIAljb25zdCBjaGFyICpmbXQ7CiAKIAlpbXhwZCA9IGRldm1fa3phbGxv YyhkZXYsIHNpemVvZigqaW14cGQpLCBHRlBfS0VSTkVMKTsKQEAgLTIyNCwxNCArMjIxLDE3IEBA IHN0YXRpYyBpbnQgaW14X3BkX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNl ICptYXN0ZXIsIHZvaWQgKmRhdGEpCiAJcmV0ID0gb2ZfcHJvcGVydHlfcmVhZF9zdHJpbmcobnAs ICJpbnRlcmZhY2UtcGl4LWZtdCIsICZmbXQpOwogCWlmICghcmV0KSB7CiAJCWlmICghc3RyY21w KGZtdCwgInJnYjI0IikpCi0JCQlpbXhwZC0+YnVzX2Zvcm1hdCA9IE1FRElBX0JVU19GTVRfUkdC ODg4XzFYMjQ7CisJCQlidXNfZm9ybWF0ID0gTUVESUFfQlVTX0ZNVF9SR0I4ODhfMVgyNDsKIAkJ ZWxzZSBpZiAoIXN0cmNtcChmbXQsICJyZ2I1NjUiKSkKLQkJCWlteHBkLT5idXNfZm9ybWF0ID0g TUVESUFfQlVTX0ZNVF9SR0I1NjVfMVgxNjsKKwkJCWJ1c19mb3JtYXQgPSBNRURJQV9CVVNfRk1U X1JHQjU2NV8xWDE2OwogCQllbHNlIGlmICghc3RyY21wKGZtdCwgImJncjY2NiIpKQotCQkJaW14 cGQtPmJ1c19mb3JtYXQgPSBNRURJQV9CVVNfRk1UX1JHQjY2Nl8xWDE4OworCQkJYnVzX2Zvcm1h dCA9IE1FRElBX0JVU19GTVRfUkdCNjY2XzFYMTg7CiAJCWVsc2UgaWYgKCFzdHJjbXAoZm10LCAi bHZkczY2NiIpKQotCQkJaW14cGQtPmJ1c19mb3JtYXQgPSBNRURJQV9CVVNfRk1UX1JHQjY2Nl8x WDI0X0NQQURISTsKKwkJCWJ1c19mb3JtYXQgPSBNRURJQV9CVVNfRk1UX1JHQjY2Nl8xWDI0X0NQ QURISTsKIAl9CisJaW14cGQtPmlteF9lbmNvZGVyLmJ1c19mb3JtYXQgPSBidXNfZm9ybWF0Owor CWlteHBkLT5pbXhfZW5jb2Rlci5kaV9oc3luY19waW4gPSAyOworCWlteHBkLT5pbXhfZW5jb2Rl ci5kaV92c3luY19waW4gPSAzOwogCiAJLyogcG9ydEAxIGlzIHRoZSBvdXRwdXQgcG9ydCAqLwog CXBvcnQgPSBvZl9ncmFwaF9nZXRfcG9ydF9ieV9pZChucCwgMSk7CkBAIC0yNjQsNyArMjY0LDcg QEAgc3RhdGljIHZvaWQgaW14X3BkX3VuYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBk ZXZpY2UgKm1hc3RlciwKIHsKIAlzdHJ1Y3QgaW14X3BhcmFsbGVsX2Rpc3BsYXkgKmlteHBkID0g ZGV2X2dldF9kcnZkYXRhKGRldik7CiAKLQlpbXhwZC0+ZW5jb2Rlci5mdW5jcy0+ZGVzdHJveSgm aW14cGQtPmVuY29kZXIpOworCWlteHBkLT5pbXhfZW5jb2Rlci5lbmNvZGVyLmZ1bmNzLT5kZXN0 cm95KCZpbXhwZC0+aW14X2VuY29kZXIuZW5jb2Rlcik7CiAJaW14cGQtPmNvbm5lY3Rvci5mdW5j cy0+ZGVzdHJveSgmaW14cGQtPmNvbm5lY3Rvcik7CiAKIAlrZnJlZShpbXhwZC0+ZWRpZCk7Ci0t IAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K ZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==