From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gustavo Padovan Subject: [PATCH v2 05/11] drm/exynos: remove struct exynos_drm_display Date: Wed, 5 Aug 2015 20:24:16 -0300 Message-ID: <1438817060-22164-6-git-send-email-gustavo@padovan.org> References: <1438817060-22164-1-git-send-email-gustavo@padovan.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1438817060-22164-1-git-send-email-gustavo@padovan.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: linux-samsung-soc@vger.kernel.org Cc: tjakobi@math.uni-bielefeld.de, Gustavo Padovan , dri-devel@lists.freedesktop.org List-Id: linux-samsung-soc@vger.kernel.org RnJvbTogR3VzdGF2byBQYWRvdmFuIDxndXN0YXZvLnBhZG92YW5AY29sbGFib3JhLmNvLnVrPgoK VGhpcyBzdHJ1Y3Qgd2FzIGp1c3QgcmVwcmVzZW50aW5nIGVuY29kZXIgaW5mb3JtYXRpb24sIGl0 IHdhcyBhIG1lbWJlciBvZgpzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyLCBzbyBhbnkgY29kZSB0 cnlpbmcgdG8gYWNjZXNzIGVuY29kZXIgZGF0YSB3b3VsZApoYXZlIHRvIGdvIHRocm91Z2ggdGhl IGVuY29kZXIgc3RydWN0LCBnZXQgdGhlIGRpc3BsYXkgc3RydWN0IGFuZCB0aGVuIGdldAp0aGUg ZGF0YSBpdCB3YW50LgoKRHVyaW5nIHRoaXMgcGF0Y2hzZXQgd2UgYWxzbyByZWFsaXplZCB0aGF0 IHRoZSBvbmx5IGRhdGEKZXh5bm9zX2RybV9lbmNvZGVyIG5lZWRzIHRvIHN0b3JlIGlzIHRoZSBk cm1fZW5jb2RlciBwYXJlbnQgYW5kIHRoZQpleHlub3NfZHJtX2VuY29kZXJfb3BzLgoKU2lnbmVk LW9mZi1ieTogR3VzdGF2byBQYWRvdmFuIDxndXN0YXZvLnBhZG92YW5AY29sbGFib3JhLmNvLnVr PgotLS0KIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zN19kcm1fZGVjb24uYyAgfCAxNyAr KysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcF9jb3JlLmMgICAgIHwgNDYg KysrKysrKysrLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcF9jb3Jl LmggICAgIHwgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9jb3JlLmMg ICAgfCAyMyArKysrLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9jcnRj LmMgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2NydGMuaCAg ICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHBpLmMgICAgIHwg NDEgKysrKysrKystLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2Ry di5oICAgICB8IDQ3ICsrKysrKysrLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9l eHlub3NfZHJtX2RzaS5jICAgICB8IDU4ICsrKysrKysrKysrLS0tLS0tLS0tLS0KIGRyaXZlcnMv Z3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9lbmNvZGVyLmMgfCA3NSArKysrKysrKy0tLS0tLS0t LS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2VuY29kZXIu aCB8ICA2ICstLQogZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2ZpbWQuYyAgICB8 IDE4ICsrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV92aWRpLmMgICAg fCA0MyArKysrKy0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfaGRt aS5jICAgICAgICB8IDQ4ICsrKysrKysrKy0tLS0tLS0tLQogMTQgZmlsZXMgY2hhbmdlZCwgMTc3 IGluc2VydGlvbnMoKyksIDI1MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZXh5bm9zL2V4eW5vczdfZHJtX2RlY29uLmMgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9z L2V4eW5vczdfZHJtX2RlY29uLmMKaW5kZXggY2ZkMGI1ZS4uMWI4OWU5NCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3M3X2RybV9kZWNvbi5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9leHlub3MvZXh5bm9zN19kcm1fZGVjb24uYwpAQCAtNjEsNyArNjEsNyBAQCBzdHJ1 Y3QgZGVjb25fY29udGV4dCB7CiAJYXRvbWljX3QJCQl3YWl0X3ZzeW5jX2V2ZW50OwogCiAJc3Ry dWN0IGV4eW5vc19kcm1fcGFuZWxfaW5mbyBwYW5lbDsKLQlzdHJ1Y3QgZXh5bm9zX2RybV9kaXNw bGF5ICpkaXNwbGF5OworCXN0cnVjdCBleHlub3NfZHJtX2VuY29kZXIgKmVuY29kZXI7CiB9Owog CiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBkZWNvbl9kcml2ZXJfZHRfbWF0Y2hb XSA9IHsKQEAgLTY4MSw4ICs2ODEsOSBAQCBzdGF0aWMgaW50IGRlY29uX2JpbmQoc3RydWN0IGRl dmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsIHZvaWQgKmRhdGEpCiAJCXJldHVybiBQ VFJfRVJSKGN0eC0+Y3J0Yyk7CiAJfQogCi0JaWYgKGN0eC0+ZGlzcGxheSkKLQkJZXh5bm9zX2Ry bV9jcmVhdGVfZW5jX2Nvbm4oZHJtX2RldiwgY3R4LT5kaXNwbGF5KTsKKwlpZiAoY3R4LT5lbmNv ZGVyKQorCQlleHlub3NfZHJtX2NyZWF0ZV9lbmNfY29ubihkcm1fZGV2LCBjdHgtPmVuY29kZXIs CisJCQkJCSAgIEVYWU5PU19ESVNQTEFZX1RZUEVfTENEKTsKIAogCXJldHVybiAwOwogCkBAIC02 OTUsOCArNjk2LDggQEAgc3RhdGljIHZvaWQgZGVjb25fdW5iaW5kKHN0cnVjdCBkZXZpY2UgKmRl diwgc3RydWN0IGRldmljZSAqbWFzdGVyLAogCiAJZGVjb25fZGlzYWJsZShjdHgtPmNydGMpOwog Ci0JaWYgKGN0eC0+ZGlzcGxheSkKLQkJZXh5bm9zX2RwaV9yZW1vdmUoY3R4LT5kaXNwbGF5KTsK KwlpZiAoY3R4LT5lbmNvZGVyKQorCQlleHlub3NfZHBpX3JlbW92ZShjdHgtPmVuY29kZXIpOwog CiAJZGVjb25fY3R4X3JlbW92ZShjdHgpOwogfQpAQCAtNzgxLDkgKzc4Miw5IEBAIHN0YXRpYyBp bnQgZGVjb25fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAogCXBsYXRmb3Jt X3NldF9kcnZkYXRhKHBkZXYsIGN0eCk7CiAKLQljdHgtPmRpc3BsYXkgPSBleHlub3NfZHBpX3By b2JlKGRldik7Ci0JaWYgKElTX0VSUihjdHgtPmRpc3BsYXkpKSB7Ci0JCXJldCA9IFBUUl9FUlIo Y3R4LT5kaXNwbGF5KTsKKwljdHgtPmVuY29kZXIgPSBleHlub3NfZHBpX3Byb2JlKGRldik7CisJ aWYgKElTX0VSUihjdHgtPmVuY29kZXIpKSB7CisJCXJldCA9IFBUUl9FUlIoY3R4LT5lbmNvZGVy KTsKIAkJZ290byBlcnJfaW91bm1hcDsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9leHlub3MvZXh5bm9zX2RwX2NvcmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9z X2RwX2NvcmUuYwppbmRleCA1NGY5MWU3Li4wMDJhMjMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vZXh5bm9zL2V4eW5vc19kcF9jb3JlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5v cy9leHlub3NfZHBfY29yZS5jCkBAIC0zOCwxMyArMzgsMTMgQEAKIAogc3RhdGljIGlubGluZSBz dHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpkcF90b19jcnRjKHN0cnVjdCBleHlub3NfZHBfZGV2aWNl ICpkcCkKIHsKLQlyZXR1cm4gdG9fZXh5bm9zX2NydGMoZHAtPmVuY29kZXItPmNydGMpOworCXJl dHVybiB0b19leHlub3NfY3J0YyhkcC0+ZW5jb2Rlci5iYXNlLmNydGMpOwogfQogCi1zdGF0aWMg aW5saW5lIHN0cnVjdCBleHlub3NfZHBfZGV2aWNlICoKLWRpc3BsYXlfdG9fZHAoc3RydWN0IGV4 eW5vc19kcm1fZGlzcGxheSAqZCkKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGV4eW5vc19kcF9kZXZp Y2UgKmVuY29kZXJfdG9fZHAoCisJCQkJCQlzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyICplKQog ewotCXJldHVybiBjb250YWluZXJfb2YoZCwgc3RydWN0IGV4eW5vc19kcF9kZXZpY2UsIGRpc3Bs YXkpOworCXJldHVybiBjb250YWluZXJfb2YoZSwgc3RydWN0IGV4eW5vc19kcF9kZXZpY2UsIGVu Y29kZXIpOwogfQogCiBzdHJ1Y3QgYnJpZGdlX2luaXQgewpAQCAtODkxLDkgKzg5MSw5IEBAIHN0 YXRpYyB2b2lkIGV4eW5vc19kcF9ob3RwbHVnKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAkJ ZHJtX2hlbHBlcl9ocGRfaXJxX2V2ZW50KGRwLT5kcm1fZGV2KTsKIH0KIAotc3RhdGljIHZvaWQg ZXh5bm9zX2RwX2NvbW1pdChzdHJ1Y3QgZXh5bm9zX2RybV9kaXNwbGF5ICpkaXNwbGF5KQorc3Rh dGljIHZvaWQgZXh5bm9zX2RwX2NvbW1pdChzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyICplbmNv ZGVyKQogewotCXN0cnVjdCBleHlub3NfZHBfZGV2aWNlICpkcCA9IGRpc3BsYXlfdG9fZHAoZGlz cGxheSk7CisJc3RydWN0IGV4eW5vc19kcF9kZXZpY2UgKmRwID0gZW5jb2Rlcl90b19kcChlbmNv ZGVyKTsKIAlpbnQgcmV0OwogCiAJLyogS2VlcCB0aGUgcGFuZWwgZGlzYWJsZWQgd2hpbGUgd2Ug Y29uZmlndXJlIHZpZGVvICovCkBAIC05OTQsNyArOTk0LDcgQEAgc3RhdGljIHN0cnVjdCBkcm1f ZW5jb2RlciAqZXh5bm9zX2RwX2Jlc3RfZW5jb2RlcigKIHsKIAlzdHJ1Y3QgZXh5bm9zX2RwX2Rl dmljZSAqZHAgPSBjdHhfZnJvbV9jb25uZWN0b3IoY29ubmVjdG9yKTsKIAotCXJldHVybiBkcC0+ ZW5jb2RlcjsKKwlyZXR1cm4gJmRwLT5lbmNvZGVyLmJhc2U7CiB9CiAKIHN0YXRpYyBzdHJ1Y3Qg ZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgZXh5bm9zX2RwX2Nvbm5lY3Rvcl9oZWxwZXJfZnVu Y3MgPSB7CkBAIC0xMDE5LDE1ICsxMDE5LDEzIEBAIHN0YXRpYyBpbnQgZXh5bm9zX2RybV9hdHRh Y2hfbGNkX2JyaWRnZShzdHJ1Y3QgZXh5bm9zX2RwX2RldmljZSAqZHAsCiAJcmV0dXJuIDA7CiB9 CiAKLXN0YXRpYyBpbnQgZXh5bm9zX2RwX2NyZWF0ZV9jb25uZWN0b3Ioc3RydWN0IGV4eW5vc19k cm1fZGlzcGxheSAqZGlzcGxheSwKLQkJCQlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCitz dGF0aWMgaW50IGV4eW5vc19kcF9jcmVhdGVfY29ubmVjdG9yKHN0cnVjdCBleHlub3NfZHJtX2Vu Y29kZXIgKmV4eW5vc19lbmNvZGVyKQogewotCXN0cnVjdCBleHlub3NfZHBfZGV2aWNlICpkcCA9 IGRpc3BsYXlfdG9fZHAoZGlzcGxheSk7CisJc3RydWN0IGV4eW5vc19kcF9kZXZpY2UgKmRwID0g ZW5jb2Rlcl90b19kcChleHlub3NfZW5jb2Rlcik7CisJc3RydWN0IGRybV9lbmNvZGVyICplbmNv ZGVyID0gJmV4eW5vc19lbmNvZGVyLT5iYXNlOwogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u ZWN0b3IgPSAmZHAtPmNvbm5lY3RvcjsKIAlpbnQgcmV0OwogCi0JZHAtPmVuY29kZXIgPSBlbmNv ZGVyOwotCiAJLyogUHJlLWVtcHQgRFAgY29ubmVjdG9yIGNyZWF0aW9uIGlmIHRoZXJlJ3MgYSBi cmlkZ2UgKi8KIAlpZiAoZHAtPmJyaWRnZSkgewogCQlyZXQgPSBleHlub3NfZHJtX2F0dGFjaF9s Y2RfYnJpZGdlKGRwLCBlbmNvZGVyKTsKQEAgLTEwNTQsOSArMTA1Miw5IEBAIHN0YXRpYyBpbnQg ZXh5bm9zX2RwX2NyZWF0ZV9jb25uZWN0b3Ioc3RydWN0IGV4eW5vc19kcm1fZGlzcGxheSAqZGlz cGxheSwKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgdm9pZCBleHlub3NfZHBfZW5hYmxlKHN0 cnVjdCBleHlub3NfZHJtX2Rpc3BsYXkgKmRpc3BsYXkpCitzdGF0aWMgdm9pZCBleHlub3NfZHBf ZW5hYmxlKHN0cnVjdCBleHlub3NfZHJtX2VuY29kZXIgKmVuY29kZXIpCiB7Ci0Jc3RydWN0IGV4 eW5vc19kcF9kZXZpY2UgKmRwID0gZGlzcGxheV90b19kcChkaXNwbGF5KTsKKwlzdHJ1Y3QgZXh5 bm9zX2RwX2RldmljZSAqZHAgPSBlbmNvZGVyX3RvX2RwKGVuY29kZXIpOwogCXN0cnVjdCBleHlu b3NfZHJtX2NydGMgKmNydGMgPSBkcF90b19jcnRjKGRwKTsKIAogCWlmIChkcC0+ZHBtc19tb2Rl ID09IERSTV9NT0RFX0RQTVNfT04pCkBAIC0xMDc2LDEyICsxMDc0LDEyIEBAIHN0YXRpYyB2b2lk IGV4eW5vc19kcF9lbmFibGUoc3RydWN0IGV4eW5vc19kcm1fZGlzcGxheSAqZGlzcGxheSkKIAlw aHlfcG93ZXJfb24oZHAtPnBoeSk7CiAJZXh5bm9zX2RwX2luaXRfZHAoZHApOwogCWVuYWJsZV9p cnEoZHAtPmlycSk7Ci0JZXh5bm9zX2RwX2NvbW1pdCgmZHAtPmRpc3BsYXkpOworCWV4eW5vc19k cF9jb21taXQoJmRwLT5lbmNvZGVyKTsKIH0KIAotc3RhdGljIHZvaWQgZXh5bm9zX2RwX2Rpc2Fi bGUoc3RydWN0IGV4eW5vc19kcm1fZGlzcGxheSAqZGlzcGxheSkKK3N0YXRpYyB2b2lkIGV4eW5v c19kcF9kaXNhYmxlKHN0cnVjdCBleHlub3NfZHJtX2VuY29kZXIgKmVuY29kZXIpCiB7Ci0Jc3Ry dWN0IGV4eW5vc19kcF9kZXZpY2UgKmRwID0gZGlzcGxheV90b19kcChkaXNwbGF5KTsKKwlzdHJ1 Y3QgZXh5bm9zX2RwX2RldmljZSAqZHAgPSBlbmNvZGVyX3RvX2RwKGVuY29kZXIpOwogCXN0cnVj dCBleHlub3NfZHJtX2NydGMgKmNydGMgPSBkcF90b19jcnRjKGRwKTsKIAogCWlmIChkcC0+ZHBt c19tb2RlICE9IERSTV9NT0RFX0RQTVNfT04pCkBAIC0xMTA4LDcgKzExMDYsNyBAQCBzdGF0aWMg dm9pZCBleHlub3NfZHBfZGlzYWJsZShzdHJ1Y3QgZXh5bm9zX2RybV9kaXNwbGF5ICpkaXNwbGF5 KQogCX0KIH0KIAotc3RhdGljIHN0cnVjdCBleHlub3NfZHJtX2Rpc3BsYXlfb3BzIGV4eW5vc19k cF9kaXNwbGF5X29wcyA9IHsKK3N0YXRpYyBzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyX29wcyBl eHlub3NfZHBfZW5jb2Rlcl9vcHMgPSB7CiAJLmNyZWF0ZV9jb25uZWN0b3IgPSBleHlub3NfZHBf Y3JlYXRlX2Nvbm5lY3RvciwKIAkuZW5hYmxlID0gZXh5bm9zX2RwX2VuYWJsZSwKIAkuZGlzYWJs ZSA9IGV4eW5vc19kcF9kaXNhYmxlLApAQCAtMTI4Myw3ICsxMjgxLDggQEAgc3RhdGljIGludCBl eHlub3NfZHBfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwg dm9pZCAqZGF0YSkKIAogCWRwLT5kcm1fZGV2ID0gZHJtX2RldjsKIAotCXJldHVybiBleHlub3Nf ZHJtX2NyZWF0ZV9lbmNfY29ubihkcm1fZGV2LCAmZHAtPmRpc3BsYXkpOworCXJldHVybiBleHlu b3NfZHJtX2NyZWF0ZV9lbmNfY29ubihkcm1fZGV2LCAmZHAtPmVuY29kZXIsCisJCQkJCSAgRVhZ Tk9TX0RJU1BMQVlfVFlQRV9MQ0QpOwogfQogCiBzdGF0aWMgdm9pZCBleHlub3NfZHBfdW5iaW5k KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLApAQCAtMTI5MSw3ICsx MjkwLDcgQEAgc3RhdGljIHZvaWQgZXh5bm9zX2RwX3VuYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYs IHN0cnVjdCBkZXZpY2UgKm1hc3RlciwKIHsKIAlzdHJ1Y3QgZXh5bm9zX2RwX2RldmljZSAqZHAg PSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKIAotCWV4eW5vc19kcF9kaXNhYmxlKCZkcC0+ZGlzcGxh eSk7CisJZXh5bm9zX2RwX2Rpc2FibGUoJmRwLT5lbmNvZGVyKTsKIH0KIAogc3RhdGljIGNvbnN0 IHN0cnVjdCBjb21wb25lbnRfb3BzIGV4eW5vc19kcF9vcHMgPSB7CkBAIC0xMzEwLDggKzEzMDks NyBAQCBzdGF0aWMgaW50IGV4eW5vc19kcF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2KQogCWlmICghZHApCiAJCXJldHVybiAtRU5PTUVNOwogCi0JZHAtPmRpc3BsYXkudHlwZSA9 IEVYWU5PU19ESVNQTEFZX1RZUEVfTENEOwotCWRwLT5kaXNwbGF5Lm9wcyA9ICZleHlub3NfZHBf ZGlzcGxheV9vcHM7CisJZHAtPmVuY29kZXIub3BzID0gJmV4eW5vc19kcF9lbmNvZGVyX29wczsK IAlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBkcCk7CiAKIAlwYW5lbF9ub2RlID0gb2ZfcGFy c2VfcGhhbmRsZShkZXYtPm9mX25vZGUsICJwYW5lbCIsIDApOwpAQCAtMTM0OSw3ICsxMzQ3LDcg QEAgc3RhdGljIGludCBleHlub3NfZHBfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7CiAJ c3RydWN0IGV4eW5vc19kcF9kZXZpY2UgKmRwID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAKLQll eHlub3NfZHBfZGlzYWJsZSgmZHAtPmRpc3BsYXkpOworCWV4eW5vc19kcF9kaXNhYmxlKCZkcC0+ ZW5jb2Rlcik7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTEzNTcsNyArMTM1NSw3IEBAIHN0YXRpYyBp bnQgZXh5bm9zX2RwX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGV4eW5v c19kcF9kZXZpY2UgKmRwID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAKLQlleHlub3NfZHBfZW5h YmxlKCZkcC0+ZGlzcGxheSk7CisJZXh5bm9zX2RwX2VuYWJsZSgmZHAtPmVuY29kZXIpOwogCXJl dHVybiAwOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4 eW5vc19kcF9jb3JlLmggYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcF9jb3JlLmgK aW5kZXggYTRlNzk5Ni4uZjhjYzIwMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V4eW5v cy9leHlub3NfZHBfY29yZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2Rw X2NvcmUuaApAQCAtMTQ3LDExICsxNDcsMTAgQEAgc3RydWN0IGxpbmtfdHJhaW4gewogfTsKIAog c3RydWN0IGV4eW5vc19kcF9kZXZpY2UgewotCXN0cnVjdCBleHlub3NfZHJtX2Rpc3BsYXkgZGlz cGxheTsKKwlzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyIGVuY29kZXI7CiAJc3RydWN0IGRldmlj ZQkJKmRldjsKIAlzdHJ1Y3QgZHJtX2RldmljZQkqZHJtX2RldjsKIAlzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcgljb25uZWN0b3I7Ci0Jc3RydWN0IGRybV9lbmNvZGVyCSplbmNvZGVyOwogCXN0cnVjdCBk cm1fcGFuZWwJKnBhbmVsOwogCXN0cnVjdCBkcm1fYnJpZGdlCSpicmlkZ2U7CiAJc3RydWN0IGNs awkJKmNsb2NrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJt X2NvcmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9jb3JlLmMKaW5kZXgg NGM5Zjk3Mi4uZTM4NjQ1MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlu b3NfZHJtX2NvcmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fY29y ZS5jCkBAIC0yMSwzOCArMjEsMzMgQEAKIHN0YXRpYyBMSVNUX0hFQUQoZXh5bm9zX2RybV9zdWJk cnZfbGlzdCk7CiAKIGludCBleHlub3NfZHJtX2NyZWF0ZV9lbmNfY29ubihzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAotCQkJCQlzdHJ1Y3QgZXh5bm9zX2RybV9kaXNwbGF5ICpkaXNwbGF5KQorCQkJ ICAgICAgIHN0cnVjdCBleHlub3NfZHJtX2VuY29kZXIgKmV4eW5vc19lbmNvZGVyLAorCQkJICAg ICAgIGVudW0gZXh5bm9zX2RybV9vdXRwdXRfdHlwZSB0eXBlKQogewotCXN0cnVjdCBkcm1fZW5j b2RlciAqZW5jb2RlcjsKIAlpbnQgcmV0OwogCXVuc2lnbmVkIGxvbmcgcG9zc2libGVfY3J0Y3Mg PSAwOwogCi0JcmV0ID0gZXh5bm9zX2RybV9jcnRjX2dldF9waXBlX2Zyb21fdHlwZShkZXYsIGRp c3BsYXktPnR5cGUpOworCXJldCA9IGV4eW5vc19kcm1fY3J0Y19nZXRfcGlwZV9mcm9tX3R5cGUo ZGV2LCB0eXBlKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAogCXBvc3NpYmxlX2Ny dGNzIHw9IDEgPDwgcmV0OwogCiAJLyogY3JlYXRlIGFuZCBpbml0aWFsaXplIGEgZW5jb2RlciBm b3IgdGhpcyBzdWIgZHJpdmVyLiAqLwotCWVuY29kZXIgPSBleHlub3NfZHJtX2VuY29kZXJfY3Jl YXRlKGRldiwgZGlzcGxheSwgcG9zc2libGVfY3J0Y3MpOwotCWlmICghZW5jb2RlcikgeworCXJl dCA9IGV4eW5vc19kcm1fZW5jb2Rlcl9jcmVhdGUoZGV2LCBleHlub3NfZW5jb2RlciwgcG9zc2li bGVfY3J0Y3MpOworCWlmIChyZXQpIHsKIAkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gY3JlYXRlIGVu Y29kZXJcbiIpOwotCQlyZXR1cm4gLUVGQVVMVDsKKwkJcmV0dXJuIHJldDsKIAl9CiAKLQlkaXNw bGF5LT5lbmNvZGVyID0gZW5jb2RlcjsKLQotCXJldCA9IGRpc3BsYXktPm9wcy0+Y3JlYXRlX2Nv bm5lY3RvcihkaXNwbGF5LCBlbmNvZGVyKTsKKwlyZXQgPSBleHlub3NfZW5jb2Rlci0+b3BzLT5j cmVhdGVfY29ubmVjdG9yKGV4eW5vc19lbmNvZGVyKTsKIAlpZiAocmV0KSB7CiAJCURSTV9FUlJP UigiZmFpbGVkIHRvIGNyZWF0ZSBjb25uZWN0b3IgcmV0ID0gJWRcbiIsIHJldCk7Ci0JCWdvdG8g ZXJyX2Rlc3Ryb3lfZW5jb2RlcjsKKwkJZHJtX2VuY29kZXJfY2xlYW51cCgmZXh5bm9zX2VuY29k ZXItPmJhc2UpOworCQlyZXR1cm4gcmV0OwogCX0KIAogCXJldHVybiAwOwotCi1lcnJfZGVzdHJv eV9lbmNvZGVyOgotCWVuY29kZXItPmZ1bmNzLT5kZXN0cm95KGVuY29kZXIpOwotCXJldHVybiBy ZXQ7CiB9CiAKIGludCBleHlub3NfZHJtX3N1YmRydl9yZWdpc3RlcihzdHJ1Y3QgZXh5bm9zX2Ry bV9zdWJkcnYgKnN1YmRydikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5 bm9zX2RybV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fY3J0Yy5j CmluZGV4IDliYzIzNTMuLjI3MTVjMmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlu b3MvZXh5bm9zX2RybV9jcnRjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3Nf ZHJtX2NydGMuYwpAQCAtMjM1LDcgKzIzNSw3IEBAIHZvaWQgZXh5bm9zX2RybV9jcnRjX2NvbXBs ZXRlX3NjYW5vdXQoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIpCiB9CiAKIGludCBleHlub3Nf ZHJtX2NydGNfZ2V0X3BpcGVfZnJvbV90eXBlKHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2LAot CQkJCQl1bnNpZ25lZCBpbnQgb3V0X3R5cGUpCisJCQkJICAgICAgIGVudW0gZXh5bm9zX2RybV9v dXRwdXRfdHlwZSBvdXRfdHlwZSkKIHsKIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CiAKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9jcnRjLmggYi9kcml2ZXJz L2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fY3J0Yy5oCmluZGV4IGQwMWQ0OWEuLjllNzAyN2Qg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9jcnRjLmgKKysr IGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2NydGMuaApAQCAtMzAsNyArMzAs NyBAQCB2b2lkIGV4eW5vc19kcm1fY3J0Y19jb21wbGV0ZV9zY2Fub3V0KHN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKmZiKTsKIAogLyogVGhpcyBmdW5jdGlvbiBnZXRzIHBpcGUgdmFsdWUgdG8gY3J0 YyBkZXZpY2UgbWF0Y2hlZCB3aXRoIG91dF90eXBlLiAqLwogaW50IGV4eW5vc19kcm1fY3J0Y19n ZXRfcGlwZV9mcm9tX3R5cGUoc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYsCi0JCQkJCXVuc2ln bmVkIGludCBvdXRfdHlwZSk7CisJCQkJICAgICAgIGVudW0gZXh5bm9zX2RybV9vdXRwdXRfdHlw ZSBvdXRfdHlwZSk7CiAKIC8qCiAgKiBUaGlzIGZ1bmN0aW9uIGNhbGxzIHRoZSBjcnRjIGRldmlj ZShtYW5hZ2VyKSdzIHRlX2hhbmRsZXIoKSBjYWxsYmFjawpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2RwaS5jIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9l eHlub3NfZHJtX2RwaS5jCmluZGV4IGUwNDI2NzAuLjYwYTMxNjEgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kcGkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v ZXh5bm9zL2V4eW5vc19kcm1fZHBpLmMKQEAgLTIzLDIyICsyMywyMSBAQAogI2luY2x1ZGUgImV4 eW5vc19kcm1fZHJ2LmgiCiAKIHN0cnVjdCBleHlub3NfZHBpIHsKLQlzdHJ1Y3QgZXh5bm9zX2Ry bV9kaXNwbGF5IGRpc3BsYXk7CisJc3RydWN0IGV4eW5vc19kcm1fZW5jb2RlciBlbmNvZGVyOwog CXN0cnVjdCBkZXZpY2UgKmRldjsKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKnBhbmVsX25vZGU7CiAK IAlzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbDsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciBjb25uZWN0 b3I7Ci0Jc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyOwogCiAJc3RydWN0IHZpZGVvbW9kZSAq dm07CiB9OwogCiAjZGVmaW5lIGNvbm5lY3Rvcl90b19kcGkoYykgY29udGFpbmVyX29mKGMsIHN0 cnVjdCBleHlub3NfZHBpLCBjb25uZWN0b3IpCiAKLXN0YXRpYyBpbmxpbmUgc3RydWN0IGV4eW5v c19kcGkgKmRpc3BsYXlfdG9fZHBpKHN0cnVjdCBleHlub3NfZHJtX2Rpc3BsYXkgKmQpCitzdGF0 aWMgaW5saW5lIHN0cnVjdCBleHlub3NfZHBpICplbmNvZGVyX3RvX2RwaShzdHJ1Y3QgZXh5bm9z X2RybV9lbmNvZGVyICplKQogewotCXJldHVybiBjb250YWluZXJfb2YoZCwgc3RydWN0IGV4eW5v c19kcGksIGRpc3BsYXkpOworCXJldHVybiBjb250YWluZXJfb2YoZSwgc3RydWN0IGV4eW5vc19k cGksIGVuY29kZXIpOwogfQogCiBzdGF0aWMgZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cwpAQCAt OTgsNyArOTcsNyBAQCBleHlub3NfZHBpX2Jlc3RfZW5jb2RlcihzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yKQogewogCXN0cnVjdCBleHlub3NfZHBpICpjdHggPSBjb25uZWN0b3JfdG9f ZHBpKGNvbm5lY3Rvcik7CiAKLQlyZXR1cm4gY3R4LT5lbmNvZGVyOworCXJldHVybiAmY3R4LT5l bmNvZGVyLmJhc2U7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVu Y3MgZXh5bm9zX2RwaV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzID0gewpAQCAtMTA2LDE1ICsxMDUs MTQgQEAgc3RhdGljIHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyBleHlub3NfZHBp X2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgPSB7CiAJLmJlc3RfZW5jb2RlciA9IGV4eW5vc19kcGlf YmVzdF9lbmNvZGVyLAogfTsKIAotc3RhdGljIGludCBleHlub3NfZHBpX2NyZWF0ZV9jb25uZWN0 b3Ioc3RydWN0IGV4eW5vc19kcm1fZGlzcGxheSAqZGlzcGxheSwKLQkJCQkgICAgICAgc3RydWN0 IGRybV9lbmNvZGVyICplbmNvZGVyKQorc3RhdGljIGludCBleHlub3NfZHBpX2NyZWF0ZV9jb25u ZWN0b3IoCisJCQkJc3RydWN0IGV4eW5vc19kcm1fZW5jb2RlciAqZXh5bm9zX2VuY29kZXIpCiB7 Ci0Jc3RydWN0IGV4eW5vc19kcGkgKmN0eCA9IGRpc3BsYXlfdG9fZHBpKGRpc3BsYXkpOworCXN0 cnVjdCBleHlub3NfZHBpICpjdHggPSBlbmNvZGVyX3RvX2RwaShleHlub3NfZW5jb2Rlcik7CisJ c3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gJmV4eW5vc19lbmNvZGVyLT5iYXNlOwogCXN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSAmY3R4LT5jb25uZWN0b3I7CiAJaW50IHJl dDsKIAotCWN0eC0+ZW5jb2RlciA9IGVuY29kZXI7Ci0KIAljb25uZWN0b3ItPnBvbGxlZCA9IERS TV9DT05ORUNUT1JfUE9MTF9IUEQ7CiAKIAlyZXQgPSBkcm1fY29ubmVjdG9yX2luaXQoZW5jb2Rl ci0+ZGV2LCBjb25uZWN0b3IsCkBAIC0xMzIsOSArMTMwLDkgQEAgc3RhdGljIGludCBleHlub3Nf ZHBpX2NyZWF0ZV9jb25uZWN0b3Ioc3RydWN0IGV4eW5vc19kcm1fZGlzcGxheSAqZGlzcGxheSwK IAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgZXh5bm9zX2RwaV9lbmFibGUoc3RydWN0IGV4 eW5vc19kcm1fZGlzcGxheSAqZGlzcGxheSkKK3N0YXRpYyB2b2lkIGV4eW5vc19kcGlfZW5hYmxl KHN0cnVjdCBleHlub3NfZHJtX2VuY29kZXIgKmVuY29kZXIpCiB7Ci0Jc3RydWN0IGV4eW5vc19k cGkgKmN0eCA9IGRpc3BsYXlfdG9fZHBpKGRpc3BsYXkpOworCXN0cnVjdCBleHlub3NfZHBpICpj dHggPSBlbmNvZGVyX3RvX2RwaShlbmNvZGVyKTsKIAogCWlmIChjdHgtPnBhbmVsKSB7CiAJCWRy bV9wYW5lbF9wcmVwYXJlKGN0eC0+cGFuZWwpOwpAQCAtMTQyLDkgKzE0MCw5IEBAIHN0YXRpYyB2 b2lkIGV4eW5vc19kcGlfZW5hYmxlKHN0cnVjdCBleHlub3NfZHJtX2Rpc3BsYXkgKmRpc3BsYXkp CiAJfQogfQogCi1zdGF0aWMgdm9pZCBleHlub3NfZHBpX2Rpc2FibGUoc3RydWN0IGV4eW5vc19k cm1fZGlzcGxheSAqZGlzcGxheSkKK3N0YXRpYyB2b2lkIGV4eW5vc19kcGlfZGlzYWJsZShzdHJ1 Y3QgZXh5bm9zX2RybV9lbmNvZGVyICplbmNvZGVyKQogewotCXN0cnVjdCBleHlub3NfZHBpICpj dHggPSBkaXNwbGF5X3RvX2RwaShkaXNwbGF5KTsKKwlzdHJ1Y3QgZXh5bm9zX2RwaSAqY3R4ID0g ZW5jb2Rlcl90b19kcGkoZW5jb2Rlcik7CiAKIAlpZiAoY3R4LT5wYW5lbCkgewogCQlkcm1fcGFu ZWxfZGlzYWJsZShjdHgtPnBhbmVsKTsKQEAgLTE1Miw3ICsxNTAsNyBAQCBzdGF0aWMgdm9pZCBl eHlub3NfZHBpX2Rpc2FibGUoc3RydWN0IGV4eW5vc19kcm1fZGlzcGxheSAqZGlzcGxheSkKIAl9 CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZXh5bm9zX2RybV9kaXNwbGF5X29wcyBleHlub3NfZHBpX2Rp c3BsYXlfb3BzID0geworc3RhdGljIHN0cnVjdCBleHlub3NfZHJtX2VuY29kZXJfb3BzIGV4eW5v c19kcGlfZW5jb2Rlcl9vcHMgPSB7CiAJLmNyZWF0ZV9jb25uZWN0b3IgPSBleHlub3NfZHBpX2Ny ZWF0ZV9jb25uZWN0b3IsCiAJLmVuYWJsZSA9IGV4eW5vc19kcGlfZW5hYmxlLAogCS5kaXNhYmxl ID0gZXh5bm9zX2RwaV9kaXNhYmxlLApAQCAtMjgyLDcgKzI4MCw3IEBAIHN0YXRpYyBpbnQgZXh5 bm9zX2RwaV9wYXJzZV9kdChzdHJ1Y3QgZXh5bm9zX2RwaSAqY3R4KQogCXJldHVybiAwOwogfQog Ci1zdHJ1Y3QgZXh5bm9zX2RybV9kaXNwbGF5ICpleHlub3NfZHBpX3Byb2JlKHN0cnVjdCBkZXZp Y2UgKmRldikKK3N0cnVjdCBleHlub3NfZHJtX2VuY29kZXIgKmV4eW5vc19kcGlfcHJvYmUoc3Ry dWN0IGRldmljZSAqZGV2KQogewogCXN0cnVjdCBleHlub3NfZHBpICpjdHg7CiAJaW50IHJldDsK QEAgLTI5MSw4ICsyODksNyBAQCBzdHJ1Y3QgZXh5bm9zX2RybV9kaXNwbGF5ICpleHlub3NfZHBp X3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldikKIAlpZiAoIWN0eCkKIAkJcmV0dXJuIEVSUl9QVFIo LUVOT01FTSk7CiAKLQljdHgtPmRpc3BsYXkudHlwZSA9IEVYWU5PU19ESVNQTEFZX1RZUEVfTENE OwotCWN0eC0+ZGlzcGxheS5vcHMgPSAmZXh5bm9zX2RwaV9kaXNwbGF5X29wczsKKwljdHgtPmVu Y29kZXIub3BzID0gJmV4eW5vc19kcGlfZW5jb2Rlcl9vcHM7CiAJY3R4LT5kZXYgPSBkZXY7CiAK IAlyZXQgPSBleHlub3NfZHBpX3BhcnNlX2R0KGN0eCk7CkBAIC0zMDcsMTQgKzMwNCwxNCBAQCBz dHJ1Y3QgZXh5bm9zX2RybV9kaXNwbGF5ICpleHlub3NfZHBpX3Byb2JlKHN0cnVjdCBkZXZpY2Ug KmRldikKIAkJCXJldHVybiBFUlJfUFRSKC1FUFJPQkVfREVGRVIpOwogCX0KIAotCXJldHVybiAm Y3R4LT5kaXNwbGF5OworCXJldHVybiAmY3R4LT5lbmNvZGVyOwogfQogCi1pbnQgZXh5bm9zX2Rw aV9yZW1vdmUoc3RydWN0IGV4eW5vc19kcm1fZGlzcGxheSAqZGlzcGxheSkKK2ludCBleHlub3Nf ZHBpX3JlbW92ZShzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyICplbmNvZGVyKQogewotCXN0cnVj dCBleHlub3NfZHBpICpjdHggPSBkaXNwbGF5X3RvX2RwaShkaXNwbGF5KTsKKwlzdHJ1Y3QgZXh5 bm9zX2RwaSAqY3R4ID0gZW5jb2Rlcl90b19kcGkoZW5jb2Rlcik7CiAKLQlleHlub3NfZHBpX2Rp c2FibGUoJmN0eC0+ZGlzcGxheSk7CisJZXh5bm9zX2RwaV9kaXNhYmxlKCZjdHgtPmVuY29kZXIp OwogCiAJaWYgKGN0eC0+cGFuZWwpCiAJCWRybV9wYW5lbF9kZXRhY2goY3R4LT5wYW5lbCk7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHJ2LmggYi9kcml2 ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHJ2LmgKaW5kZXggNDdlYTQwMC4uNDkzMTE5 MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2Rydi5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kcnYuaApAQCAtMjIsNiArMjIs NyBAQAogI2RlZmluZSBNQVhfUExBTkUJNQogI2RlZmluZSBNQVhfRkJfQlVGRkVSCTQKIAorI2Rl ZmluZSB0b19leHlub3NfZW5jb2Rlcih4KQljb250YWluZXJfb2YoeCwgc3RydWN0IGV4eW5vc19k cm1fZW5jb2RlciwgYmFzZSkKICNkZWZpbmUgdG9fZXh5bm9zX2NydGMoeCkJY29udGFpbmVyX29m KHgsIHN0cnVjdCBleHlub3NfZHJtX2NydGMsIGJhc2UpCiAjZGVmaW5lIHRvX2V4eW5vc19wbGFu ZSh4KQljb250YWluZXJfb2YoeCwgc3RydWN0IGV4eW5vc19kcm1fcGxhbmUsIGJhc2UpCiAKQEAg LTc3LDcgKzc4LDcgQEAgc3RydWN0IGV4eW5vc19kcm1fcGxhbmUgewogfTsKIAogLyoKLSAqIEV4 eW5vcyBEUk0gRGlzcGxheSBTdHJ1Y3R1cmUuCisgKiBFeHlub3MgRFJNIEVuY29kZXIgU3RydWN0 dXJlLgogICoJLSB0aGlzIHN0cnVjdHVyZSBpcyBjb21tb24gdG8gYW5hbG9nIHR2LCBkaWdpdGFs IHR2IGFuZCBsY2QgcGFuZWwuCiAgKgogICogQGNyZWF0ZV9jb25uZWN0b3I6IGluaXRpYWxpemUg YW5kIHJlZ2lzdGVyIGEgbmV3IGNvbm5lY3RvcgpAQCAtODgsMzcgKzg5LDMwIEBAIHN0cnVjdCBl eHlub3NfZHJtX3BsYW5lIHsKICAqIEBkaXNhYmxlOiBkaXNwbGF5IGRldmljZSBvZmYuCiAgKiBA Y29tbWl0OiBhcHBseSBjaGFuZ2VzIHRvIGh3CiAgKi8KLXN0cnVjdCBleHlub3NfZHJtX2Rpc3Bs YXk7Ci1zdHJ1Y3QgZXh5bm9zX2RybV9kaXNwbGF5X29wcyB7Ci0JaW50ICgqY3JlYXRlX2Nvbm5l Y3Rvcikoc3RydWN0IGV4eW5vc19kcm1fZGlzcGxheSAqZGlzcGxheSwKLQkJCQlzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXIpOwotCXZvaWQgKCptb2RlX2ZpeHVwKShzdHJ1Y3QgZXh5bm9zX2Ry bV9kaXNwbGF5ICpkaXNwbGF5LAorc3RydWN0IGV4eW5vc19kcm1fZW5jb2RlcjsKK3N0cnVjdCBl eHlub3NfZHJtX2VuY29kZXJfb3BzIHsKKwlpbnQgKCpjcmVhdGVfY29ubmVjdG9yKShzdHJ1Y3Qg ZXh5bm9zX2RybV9lbmNvZGVyICplbmNvZGVyKTsKKwl2b2lkICgqbW9kZV9maXh1cCkoc3RydWN0 IGV4eW5vc19kcm1fZW5jb2RlciAqZW5jb2RlciwKIAkJCQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yLAogCQkJCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAogCQkJ CXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlKTsKLQl2b2lkICgqbW9kZV9z ZXQpKHN0cnVjdCBleHlub3NfZHJtX2Rpc3BsYXkgKmRpc3BsYXksCisJdm9pZCAoKm1vZGVfc2V0 KShzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyICplbmNvZGVyLAogCQkJCXN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICptb2RlKTsKLQl2b2lkICgqZW5hYmxlKShzdHJ1Y3QgZXh5bm9zX2RybV9kaXNw bGF5ICpkaXNwbGF5KTsKLQl2b2lkICgqZGlzYWJsZSkoc3RydWN0IGV4eW5vc19kcm1fZGlzcGxh eSAqZGlzcGxheSk7Ci0Jdm9pZCAoKmNvbW1pdCkoc3RydWN0IGV4eW5vc19kcm1fZGlzcGxheSAq ZGlzcGxheSk7CisJdm9pZCAoKmVuYWJsZSkoc3RydWN0IGV4eW5vc19kcm1fZW5jb2RlciAqZW5j b2Rlcik7CisJdm9pZCAoKmRpc2FibGUpKHN0cnVjdCBleHlub3NfZHJtX2VuY29kZXIgKmVuY29k ZXIpOworCXZvaWQgKCpjb21taXQpKHN0cnVjdCBleHlub3NfZHJtX2VuY29kZXIgKmVuY29kZXIp OwogfTsKIAogLyoKLSAqIEV4eW5vcyBkcm0gZGlzcGxheSBzdHJ1Y3R1cmUsIG1hcHMgMToxIHdp dGggYW4gZW5jb2Rlci9jb25uZWN0b3IKKyAqIGV4eW5vcyBzcGVjaWZpYyBlbmNvZGVyIHN0cnVj dHVyZS4KICAqCi0gKiBAbGlzdDogdGhlIGxpc3QgZW50cnkgZm9yIHRoaXMgbWFuYWdlcgorICog QGRybV9lbmNvZGVyOiBlbmNvZGVyIG9iamVjdC4KICAqIEB0eXBlOiBvbmUgb2YgRVhZTk9TX0RJ U1BMQVlfVFlQRV9MQ0QgYW5kIEhETUkuCi0gKiBAZW5jb2RlcjogZW5jb2RlciBvYmplY3QgdGhp cyBkaXNwbGF5IG1hcHMgdG8KLSAqIEBjb25uZWN0b3I6IGNvbm5lY3RvciBvYmplY3QgdGhpcyBk aXNwbGF5IG1hcHMgdG8KICAqIEBvcHM6IHBvaW50ZXIgdG8gY2FsbGJhY2tzIGZvciBleHlub3Mg ZHJtIHNwZWNpZmljIGZ1bmN0aW9uYWxpdHkKLSAqIEBjdHg6IEEgcG9pbnRlciB0byB0aGUgZGlz cGxheSdzIGltcGxlbWVudGF0aW9uIHNwZWNpZmljIGNvbnRleHQKICAqLwotc3RydWN0IGV4eW5v c19kcm1fZGlzcGxheSB7Ci0Jc3RydWN0IGxpc3RfaGVhZCBsaXN0OwotCWVudW0gZXh5bm9zX2Ry bV9vdXRwdXRfdHlwZSB0eXBlOwotCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKLQlzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwotCXN0cnVjdCBleHlub3NfZHJtX2Rpc3BsYXlf b3BzICpvcHM7CitzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyIHsKKwlzdHJ1Y3QgZHJtX2VuY29k ZXIJCWJhc2U7CisJc3RydWN0IGV4eW5vc19kcm1fZW5jb2Rlcl9vcHMJKm9wczsKIH07CiAKIC8q CkBAIC0yNjUsMTIgKzI1OSwxMiBAQCBpbnQgZXh5bm9zX2RybV9zdWJkcnZfb3BlbihzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpOwogdm9pZCBleHlub3NfZHJt X3N1YmRydl9jbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZp bGUpOwogCiAjaWZkZWYgQ09ORklHX0RSTV9FWFlOT1NfRFBJCi1zdHJ1Y3QgZXh5bm9zX2RybV9k aXNwbGF5ICogZXh5bm9zX2RwaV9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwotaW50IGV4eW5v c19kcGlfcmVtb3ZlKHN0cnVjdCBleHlub3NfZHJtX2Rpc3BsYXkgKmRpc3BsYXkpOworc3RydWN0 IGV4eW5vc19kcm1fZW5jb2RlciAqZXh5bm9zX2RwaV9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYp OworaW50IGV4eW5vc19kcGlfcmVtb3ZlKHN0cnVjdCBleHlub3NfZHJtX2VuY29kZXIgKmVuY29k ZXIpOwogI2Vsc2UKLXN0YXRpYyBpbmxpbmUgc3RydWN0IGV4eW5vc19kcm1fZGlzcGxheSAqCitz dGF0aWMgaW5saW5lIHN0cnVjdCBleHlub3NfZHJtX2VuY29kZXIgKgogZXh5bm9zX2RwaV9wcm9i ZShzdHJ1Y3QgZGV2aWNlICpkZXYpIHsgcmV0dXJuIE5VTEw7IH0KLXN0YXRpYyBpbmxpbmUgaW50 IGV4eW5vc19kcGlfcmVtb3ZlKHN0cnVjdCBleHlub3NfZHJtX2Rpc3BsYXkgKmRpc3BsYXkpCitz dGF0aWMgaW5saW5lIGludCBleHlub3NfZHBpX3JlbW92ZShzdHJ1Y3QgZXh5bm9zX2RybV9lbmNv ZGVyICplbmNvZGVyKQogewogCXJldHVybiAwOwogfQpAQCAtMjc4LDcgKzI3Miw4IEBAIHN0YXRp YyBpbmxpbmUgaW50IGV4eW5vc19kcGlfcmVtb3ZlKHN0cnVjdCBleHlub3NfZHJtX2Rpc3BsYXkg KmRpc3BsYXkpCiAKIC8qIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIGVuY29kZXIgYW5kIGEgY29u bmVjdG9yLCBhbmQgaW5pdGlhbGl6ZXMgdGhlbS4gKi8KIGludCBleHlub3NfZHJtX2NyZWF0ZV9l bmNfY29ubihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCXN0cnVjdCBleHlub3NfZHJtX2Rp c3BsYXkgKmRpc3BsYXkpOworCQkJICAgICAgIHN0cnVjdCBleHlub3NfZHJtX2VuY29kZXIgKmVu Y29kZXIsCisJCQkgICAgICAgZW51bSBleHlub3NfZHJtX291dHB1dF90eXBlIHR5cGUpOwogCiBl eHRlcm4gc3RydWN0IHBsYXRmb3JtX2RyaXZlciBmaW1kX2RyaXZlcjsKIGV4dGVybiBzdHJ1Y3Qg cGxhdGZvcm1fZHJpdmVyIGV4eW5vczU0MzNfZGVjb25fZHJpdmVyOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2RzaS5jIGIvZHJpdmVycy9ncHUvZHJtL2V4 eW5vcy9leHlub3NfZHJtX2RzaS5jCmluZGV4IDI4MWI5N2QuLmZlZjNhNjEgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kc2kuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHNpLmMKQEAgLTI1OSw3ICsyNTksNyBAQCBzdHJ1Y3Qg ZXh5bm9zX2RzaV9kcml2ZXJfZGF0YSB7CiB9OwogCiBzdHJ1Y3QgZXh5bm9zX2RzaSB7Ci0Jc3Ry dWN0IGV4eW5vc19kcm1fZGlzcGxheSBkaXNwbGF5OworCXN0cnVjdCBleHlub3NfZHJtX2VuY29k ZXIgZW5jb2RlcjsKIAlzdHJ1Y3QgbWlwaV9kc2lfaG9zdCBkc2lfaG9zdDsKIAlzdHJ1Y3QgZHJt X2Nvbm5lY3RvciBjb25uZWN0b3I7CiAJc3RydWN0IGRldmljZV9ub2RlICpwYW5lbF9ub2RlOwpA QCAtMjk1LDkgKzI5NSw5IEBAIHN0cnVjdCBleHlub3NfZHNpIHsKICNkZWZpbmUgaG9zdF90b19k c2koaG9zdCkgY29udGFpbmVyX29mKGhvc3QsIHN0cnVjdCBleHlub3NfZHNpLCBkc2lfaG9zdCkK ICNkZWZpbmUgY29ubmVjdG9yX3RvX2RzaShjKSBjb250YWluZXJfb2YoYywgc3RydWN0IGV4eW5v c19kc2ksIGNvbm5lY3RvcikKIAotc3RhdGljIGlubGluZSBzdHJ1Y3QgZXh5bm9zX2RzaSAqZGlz cGxheV90b19kc2koc3RydWN0IGV4eW5vc19kcm1fZGlzcGxheSAqZCkKK3N0YXRpYyBpbmxpbmUg c3RydWN0IGV4eW5vc19kc2kgKmVuY29kZXJfdG9fZHNpKHN0cnVjdCBleHlub3NfZHJtX2VuY29k ZXIgKmUpCiB7Ci0JcmV0dXJuIGNvbnRhaW5lcl9vZihkLCBzdHJ1Y3QgZXh5bm9zX2RzaSwgZGlz cGxheSk7CisJcmV0dXJuIGNvbnRhaW5lcl9vZihlLCBzdHJ1Y3QgZXh5bm9zX2RzaSwgZW5jb2Rl cik7CiB9CiAKIGVudW0gcmVnX2lkeCB7CkBAIC0xMjcyLDcgKzEyNzIsNyBAQCBzdGF0aWMgaXJx cmV0dXJuX3QgZXh5bm9zX2RzaV9pcnEoaW50IGlycSwgdm9pZCAqZGV2X2lkKQogc3RhdGljIGly cXJldHVybl90IGV4eW5vc19kc2lfdGVfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGV2X2lk KQogewogCXN0cnVjdCBleHlub3NfZHNpICpkc2kgPSAoc3RydWN0IGV4eW5vc19kc2kgKilkZXZf aWQ7Ci0Jc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gZHNpLT5kaXNwbGF5LmVuY29kZXI7 CisJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gJmRzaS0+ZW5jb2Rlci5iYXNlOwogCiAJ aWYgKGRzaS0+c3RhdGUgJiBEU0lNX1NUQVRFX1ZJRE9VVF9BVkFJTEFCTEUpCiAJCWV4eW5vc19k cm1fY3J0Y190ZV9oYW5kbGVyKGVuY29kZXItPmNydGMpOwpAQCAtMTUxOCw5ICsxNTE4LDkgQEAg c3RhdGljIHZvaWQgZXh5bm9zX2RzaV9wb3dlcm9mZihzdHJ1Y3QgZXh5bm9zX2RzaSAqZHNpKQog CQlkZXZfZXJyKGRzaS0+ZGV2LCAiY2Fubm90IGRpc2FibGUgcmVndWxhdG9ycyAlZFxuIiwgcmV0 KTsKIH0KIAotc3RhdGljIHZvaWQgZXh5bm9zX2RzaV9lbmFibGUoc3RydWN0IGV4eW5vc19kcm1f ZGlzcGxheSAqZGlzcGxheSkKK3N0YXRpYyB2b2lkIGV4eW5vc19kc2lfZW5hYmxlKHN0cnVjdCBl eHlub3NfZHJtX2VuY29kZXIgKmVuY29kZXIpCiB7Ci0Jc3RydWN0IGV4eW5vc19kc2kgKmRzaSA9 IGRpc3BsYXlfdG9fZHNpKGRpc3BsYXkpOworCXN0cnVjdCBleHlub3NfZHNpICpkc2kgPSBlbmNv ZGVyX3RvX2RzaShlbmNvZGVyKTsKIAlpbnQgcmV0OwogCiAJaWYgKGRzaS0+c3RhdGUgJiBEU0lN X1NUQVRFX0VOQUJMRUQpCkBAIC0xNTU0LDkgKzE1NTQsOSBAQCBzdGF0aWMgdm9pZCBleHlub3Nf ZHNpX2VuYWJsZShzdHJ1Y3QgZXh5bm9zX2RybV9kaXNwbGF5ICpkaXNwbGF5KQogCWRzaS0+c3Rh dGUgfD0gRFNJTV9TVEFURV9WSURPVVRfQVZBSUxBQkxFOwogfQogCi1zdGF0aWMgdm9pZCBleHlu b3NfZHNpX2Rpc2FibGUoc3RydWN0IGV4eW5vc19kcm1fZGlzcGxheSAqZGlzcGxheSkKK3N0YXRp YyB2b2lkIGV4eW5vc19kc2lfZGlzYWJsZShzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyICplbmNv ZGVyKQogewotCXN0cnVjdCBleHlub3NfZHNpICpkc2kgPSBkaXNwbGF5X3RvX2RzaShkaXNwbGF5 KTsKKwlzdHJ1Y3QgZXh5bm9zX2RzaSAqZHNpID0gZW5jb2Rlcl90b19kc2koZW5jb2Rlcik7CiAK IAlpZiAoIShkc2ktPnN0YXRlICYgRFNJTV9TVEFURV9FTkFCTEVEKSkKIAkJcmV0dXJuOwpAQCAt MTU4MiwxMCArMTU4MiwxMCBAQCBleHlub3NfZHNpX2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yLCBib29sIGZvcmNlKQogCQlpZiAoZHNpLT5wYW5lbCkKIAkJCWRybV9wYW5l bF9hdHRhY2goZHNpLT5wYW5lbCwgJmRzaS0+Y29ubmVjdG9yKTsKIAl9IGVsc2UgaWYgKCFkc2kt PnBhbmVsX25vZGUpIHsKLQkJc3RydWN0IGV4eW5vc19kcm1fZGlzcGxheSAqZGlzcGxheTsKKwkJ c3RydWN0IGV4eW5vc19kcm1fZW5jb2RlciAqZW5jb2RlcjsKIAotCQlkaXNwbGF5ID0gcGxhdGZv cm1fZ2V0X2RydmRhdGEodG9fcGxhdGZvcm1fZGV2aWNlKGRzaS0+ZGV2KSk7Ci0JCWV4eW5vc19k c2lfZGlzYWJsZShkaXNwbGF5KTsKKwkJZW5jb2RlciA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHRv X3BsYXRmb3JtX2RldmljZShkc2ktPmRldikpOworCQlleHlub3NfZHNpX2Rpc2FibGUoZW5jb2Rl cik7CiAJCWRybV9wYW5lbF9kZXRhY2goZHNpLT5wYW5lbCk7CiAJCWRzaS0+cGFuZWwgPSBOVUxM OwogCX0KQEAgLTE2MjgsNyArMTYyOCw3IEBAIGV4eW5vc19kc2lfYmVzdF9lbmNvZGVyKHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB7CiAJc3RydWN0IGV4eW5vc19kc2kgKmRzaSA9 IGNvbm5lY3Rvcl90b19kc2koY29ubmVjdG9yKTsKIAotCXJldHVybiBkc2ktPmRpc3BsYXkuZW5j b2RlcjsKKwlyZXR1cm4gJmRzaS0+ZW5jb2Rlci5iYXNlOwogfQogCiBzdGF0aWMgc3RydWN0IGRy bV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzIGV4eW5vc19kc2lfY29ubmVjdG9yX2hlbHBlcl9mdW5j cyA9IHsKQEAgLTE2MzYsMTAgKzE2MzYsMTEgQEAgc3RhdGljIHN0cnVjdCBkcm1fY29ubmVjdG9y X2hlbHBlcl9mdW5jcyBleHlub3NfZHNpX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgPSB7CiAJLmJl c3RfZW5jb2RlciA9IGV4eW5vc19kc2lfYmVzdF9lbmNvZGVyLAogfTsKIAotc3RhdGljIGludCBl eHlub3NfZHNpX2NyZWF0ZV9jb25uZWN0b3Ioc3RydWN0IGV4eW5vc19kcm1fZGlzcGxheSAqZGlz cGxheSwKLQkJCQkgICAgICAgc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQorc3RhdGljIGlu dCBleHlub3NfZHNpX2NyZWF0ZV9jb25uZWN0b3IoCisJCQkJc3RydWN0IGV4eW5vc19kcm1fZW5j b2RlciAqZXh5bm9zX2VuY29kZXIpCiB7Ci0Jc3RydWN0IGV4eW5vc19kc2kgKmRzaSA9IGRpc3Bs YXlfdG9fZHNpKGRpc3BsYXkpOworCXN0cnVjdCBleHlub3NfZHNpICpkc2kgPSBlbmNvZGVyX3Rv X2RzaShleHlub3NfZW5jb2Rlcik7CisJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gJmV4 eW5vc19lbmNvZGVyLT5iYXNlOwogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSAm ZHNpLT5jb25uZWN0b3I7CiAJaW50IHJldDsKIApAQCAtMTY2MCwxMCArMTY2MSwxMCBAQCBzdGF0 aWMgaW50IGV4eW5vc19kc2lfY3JlYXRlX2Nvbm5lY3RvcihzdHJ1Y3QgZXh5bm9zX2RybV9kaXNw bGF5ICpkaXNwbGF5LAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBleHlub3NfZHNpX21v ZGVfc2V0KHN0cnVjdCBleHlub3NfZHJtX2Rpc3BsYXkgKmRpc3BsYXksCitzdGF0aWMgdm9pZCBl eHlub3NfZHNpX21vZGVfc2V0KHN0cnVjdCBleHlub3NfZHJtX2VuY29kZXIgKmVuY29kZXIsCiAJ CQkgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpCiB7Ci0Jc3RydWN0IGV4eW5vc19kc2kg KmRzaSA9IGRpc3BsYXlfdG9fZHNpKGRpc3BsYXkpOworCXN0cnVjdCBleHlub3NfZHNpICpkc2kg PSBlbmNvZGVyX3RvX2RzaShlbmNvZGVyKTsKIAlzdHJ1Y3QgdmlkZW9tb2RlICp2bSA9ICZkc2kt PnZtOwogCiAJdm0tPmhhY3RpdmUgPSBtb2RlLT5oZGlzcGxheTsKQEAgLTE2NzYsNyArMTY3Nyw3 IEBAIHN0YXRpYyB2b2lkIGV4eW5vc19kc2lfbW9kZV9zZXQoc3RydWN0IGV4eW5vc19kcm1fZGlz cGxheSAqZGlzcGxheSwKIAl2bS0+aHN5bmNfbGVuID0gbW9kZS0+aHN5bmNfZW5kIC0gbW9kZS0+ aHN5bmNfc3RhcnQ7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZXh5bm9zX2RybV9kaXNwbGF5X29wcyBl eHlub3NfZHNpX2Rpc3BsYXlfb3BzID0geworc3RhdGljIHN0cnVjdCBleHlub3NfZHJtX2VuY29k ZXJfb3BzIGV4eW5vc19kc2lfZW5jb2Rlcl9vcHMgPSB7CiAJLmNyZWF0ZV9jb25uZWN0b3IgPSBl eHlub3NfZHNpX2NyZWF0ZV9jb25uZWN0b3IsCiAJLm1vZGVfc2V0ID0gZXh5bm9zX2RzaV9tb2Rl X3NldCwKIAkuZW5hYmxlID0gZXh5bm9zX2RzaV9lbmFibGUsCkBAIC0xODAzLDIyICsxODA0LDIy IEBAIGVuZDoKIHN0YXRpYyBpbnQgZXh5bm9zX2RzaV9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwg c3RydWN0IGRldmljZSAqbWFzdGVyLAogCQkJCXZvaWQgKmRhdGEpCiB7Ci0Jc3RydWN0IGV4eW5v c19kcm1fZGlzcGxheSAqZGlzcGxheSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwotCXN0cnVjdCBl eHlub3NfZHNpICpkc2kgPSBkaXNwbGF5X3RvX2RzaShkaXNwbGF5KTsKKwlzdHJ1Y3QgZXh5bm9z X2RybV9lbmNvZGVyICplbmNvZGVyID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJc3RydWN0IGV4 eW5vc19kc2kgKmRzaSA9IGVuY29kZXJfdG9fZHNpKGVuY29kZXIpOwogCXN0cnVjdCBkcm1fZGV2 aWNlICpkcm1fZGV2ID0gZGF0YTsKIAlzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlOwogCWludCBy ZXQ7CiAKLQlyZXQgPSBleHlub3NfZHJtX2NyZWF0ZV9lbmNfY29ubihkcm1fZGV2LCBkaXNwbGF5 KTsKKwlyZXQgPSBleHlub3NfZHJtX2NyZWF0ZV9lbmNfY29ubihkcm1fZGV2LCBlbmNvZGVyLAor CQkJCQkgRVhZTk9TX0RJU1BMQVlfVFlQRV9MQ0QpOwogCWlmIChyZXQpIHsKIAkJRFJNX0VSUk9S KCJFbmNvZGVyIGNyZWF0ZSBbJWRdIGZhaWxlZCB3aXRoICVkXG4iLAotCQkJICBkaXNwbGF5LT50 eXBlLCByZXQpOworCQkJICBFWFlOT1NfRElTUExBWV9UWVBFX0xDRCwgcmV0KTsKIAkJcmV0dXJu IHJldDsKIAl9CiAKIAlicmlkZ2UgPSBvZl9kcm1fZmluZF9icmlkZ2UoZHNpLT5icmlkZ2Vfbm9k ZSk7CiAJaWYgKGJyaWRnZSkgewotCQlkaXNwbGF5LT5lbmNvZGVyLT5icmlkZ2UgPSBicmlkZ2U7 CiAJCWRybV9icmlkZ2VfYXR0YWNoKGRybV9kZXYsIGJyaWRnZSk7CiAJfQogCkBAIC0xODI4LDEw ICsxODI5LDEwIEBAIHN0YXRpYyBpbnQgZXh5bm9zX2RzaV9iaW5kKHN0cnVjdCBkZXZpY2UgKmRl diwgc3RydWN0IGRldmljZSAqbWFzdGVyLAogc3RhdGljIHZvaWQgZXh5bm9zX2RzaV91bmJpbmQo c3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsCiAJCQkJdm9pZCAqZGF0 YSkKIHsKLQlzdHJ1Y3QgZXh5bm9zX2RybV9kaXNwbGF5ICpkaXNwbGF5ID0gZGV2X2dldF9kcnZk YXRhKGRldik7Ci0Jc3RydWN0IGV4eW5vc19kc2kgKmRzaSA9IGRpc3BsYXlfdG9fZHNpKGRpc3Bs YXkpOworCXN0cnVjdCBleHlub3NfZHJtX2VuY29kZXIgKmVuY29kZXIgPSBkZXZfZ2V0X2RydmRh dGEoZGV2KTsKKwlzdHJ1Y3QgZXh5bm9zX2RzaSAqZHNpID0gZW5jb2Rlcl90b19kc2koZW5jb2Rl cik7CiAKLQlleHlub3NfZHNpX2Rpc2FibGUoZGlzcGxheSk7CisJZXh5bm9zX2RzaV9kaXNhYmxl KGVuY29kZXIpOwogCiAJbWlwaV9kc2lfaG9zdF91bnJlZ2lzdGVyKCZkc2ktPmRzaV9ob3N0KTsK IH0KQEAgLTE4NTIsOCArMTg1Myw3IEBAIHN0YXRpYyBpbnQgZXh5bm9zX2RzaV9wcm9iZShzdHJ1 Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWlmICghZHNpKQogCQlyZXR1cm4gLUVOT01FTTsK IAotCWRzaS0+ZGlzcGxheS50eXBlID0gRVhZTk9TX0RJU1BMQVlfVFlQRV9MQ0Q7Ci0JZHNpLT5k aXNwbGF5Lm9wcyA9ICZleHlub3NfZHNpX2Rpc3BsYXlfb3BzOworCWRzaS0+ZW5jb2Rlci5vcHMg PSAmZXh5bm9zX2RzaV9lbmNvZGVyX29wczsKIAogCS8qIFRvIGJlIGNoZWNrZWQgYXMgaW52YWxp ZCBvbmUgKi8KIAlkc2ktPnRlX2dwaW8gPSAtRU5PRU5UOwpAQCAtMTkzMCw3ICsxOTMwLDcgQEAg c3RhdGljIGludCBleHlub3NfZHNpX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYp CiAJCXJldHVybiByZXQ7CiAJfQogCi0JcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgJmRzaS0+ ZGlzcGxheSk7CisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgJmRzaS0+ZW5jb2Rlcik7CiAK IAlyZXR1cm4gY29tcG9uZW50X2FkZChkZXYsICZleHlub3NfZHNpX2NvbXBvbmVudF9vcHMpOwog fQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2VuY29kZXIu YyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9lbmNvZGVyLmMKaW5kZXggN2Jh M2EyZC4uYjlhMWM5MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3Nf ZHJtX2VuY29kZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZW5j b2Rlci5jCkBAIC0xOCwyMCArMTgsNiBAQAogI2luY2x1ZGUgImV4eW5vc19kcm1fZHJ2LmgiCiAj aW5jbHVkZSAiZXh5bm9zX2RybV9lbmNvZGVyLmgiCiAKLSNkZWZpbmUgdG9fZXh5bm9zX2VuY29k ZXIoeCkJY29udGFpbmVyX29mKHgsIHN0cnVjdCBleHlub3NfZHJtX2VuY29kZXIsXAotCQkJCWRy bV9lbmNvZGVyKQotCi0vKgotICogZXh5bm9zIHNwZWNpZmljIGVuY29kZXIgc3RydWN0dXJlLgot ICoKLSAqIEBkcm1fZW5jb2RlcjogZW5jb2RlciBvYmplY3QuCi0gKiBAZGlzcGxheTogdGhlIGRp c3BsYXkgc3RydWN0dXJlIHRoYXQgbWFwcyB0byB0aGlzIGVuY29kZXIKLSAqLwotc3RydWN0IGV4 eW5vc19kcm1fZW5jb2RlciB7Ci0Jc3RydWN0IGRybV9lbmNvZGVyCQlkcm1fZW5jb2RlcjsKLQlz dHJ1Y3QgZXh5bm9zX2RybV9kaXNwbGF5CSpkaXNwbGF5OwotfTsKLQogc3RhdGljIGJvb2wKIGV4 eW5vc19kcm1fZW5jb2Rlcl9tb2RlX2ZpeHVwKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwK IAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKQEAgLTM5LDE2 ICsyNSwxNiBAQCBleHlub3NfZHJtX2VuY29kZXJfbW9kZV9maXh1cChzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmRldjsK IAlzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyICpleHlub3NfZW5jb2RlciA9IHRvX2V4eW5vc19l bmNvZGVyKGVuY29kZXIpOwotCXN0cnVjdCBleHlub3NfZHJtX2Rpc3BsYXkgKmRpc3BsYXkgPSBl eHlub3NfZW5jb2Rlci0+ZGlzcGxheTsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y OwogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShjb25uZWN0b3IsICZkZXYtPm1vZGVfY29uZmlnLmNv bm5lY3Rvcl9saXN0LCBoZWFkKSB7CiAJCWlmIChjb25uZWN0b3ItPmVuY29kZXIgIT0gZW5jb2Rl cikKIAkJCWNvbnRpbnVlOwogCi0JCWlmIChkaXNwbGF5LT5vcHMtPm1vZGVfZml4dXApCi0JCQlk aXNwbGF5LT5vcHMtPm1vZGVfZml4dXAoZGlzcGxheSwgY29ubmVjdG9yLCBtb2RlLAotCQkJCQlh ZGp1c3RlZF9tb2RlKTsKKwkJaWYgKGV4eW5vc19lbmNvZGVyLT5vcHMtPm1vZGVfZml4dXApCisJ CQlleHlub3NfZW5jb2Rlci0+b3BzLT5tb2RlX2ZpeHVwKGV4eW5vc19lbmNvZGVyLAorCQkJCQkJ CWNvbm5lY3RvciwgbW9kZSwKKwkJCQkJCQlhZGp1c3RlZF9tb2RlKTsKIAl9CiAKIAlyZXR1cm4g dHJ1ZTsKQEAgLTU5LDMxICs0NSwyOCBAQCBzdGF0aWMgdm9pZCBleHlub3NfZHJtX2VuY29kZXJf bW9kZV9zZXQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAogCQkJCQkgc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUpCiB7CiAJc3RydWN0IGV4eW5vc19kcm1fZW5jb2Rl ciAqZXh5bm9zX2VuY29kZXIgPSB0b19leHlub3NfZW5jb2RlcihlbmNvZGVyKTsKLQlzdHJ1Y3Qg ZXh5bm9zX2RybV9kaXNwbGF5ICpkaXNwbGF5ID0gZXh5bm9zX2VuY29kZXItPmRpc3BsYXk7CiAK LQlpZiAoZGlzcGxheS0+b3BzLT5tb2RlX3NldCkKLQkJZGlzcGxheS0+b3BzLT5tb2RlX3NldChk aXNwbGF5LCBhZGp1c3RlZF9tb2RlKTsKKwlpZiAoZXh5bm9zX2VuY29kZXItPm9wcy0+bW9kZV9z ZXQpCisJCWV4eW5vc19lbmNvZGVyLT5vcHMtPm1vZGVfc2V0KGV4eW5vc19lbmNvZGVyLCBhZGp1 c3RlZF9tb2RlKTsKIH0KIAogc3RhdGljIHZvaWQgZXh5bm9zX2RybV9lbmNvZGVyX2VuYWJsZShz dHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiB7CiAJc3RydWN0IGV4eW5vc19kcm1fZW5jb2Rl ciAqZXh5bm9zX2VuY29kZXIgPSB0b19leHlub3NfZW5jb2RlcihlbmNvZGVyKTsKLQlzdHJ1Y3Qg ZXh5bm9zX2RybV9kaXNwbGF5ICpkaXNwbGF5ID0gZXh5bm9zX2VuY29kZXItPmRpc3BsYXk7CiAK LQlpZiAoZGlzcGxheS0+b3BzLT5lbmFibGUpCi0JCWRpc3BsYXktPm9wcy0+ZW5hYmxlKGRpc3Bs YXkpOworCWlmIChleHlub3NfZW5jb2Rlci0+b3BzLT5lbmFibGUpCisJCWV4eW5vc19lbmNvZGVy LT5vcHMtPmVuYWJsZShleHlub3NfZW5jb2Rlcik7CiAKLQlpZiAoZGlzcGxheS0+b3BzLT5jb21t aXQpCi0JCWRpc3BsYXktPm9wcy0+Y29tbWl0KGRpc3BsYXkpOworCWlmIChleHlub3NfZW5jb2Rl ci0+b3BzLT5jb21taXQpCisJCWV4eW5vc19lbmNvZGVyLT5vcHMtPmNvbW1pdChleHlub3NfZW5j b2Rlcik7CiB9CiAKIHN0YXRpYyB2b2lkIGV4eW5vc19kcm1fZW5jb2Rlcl9kaXNhYmxlKHN0cnVj dCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIHsKIAlzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyICpl eHlub3NfZW5jb2RlciA9IHRvX2V4eW5vc19lbmNvZGVyKGVuY29kZXIpOwotCXN0cnVjdCBleHlu b3NfZHJtX2Rpc3BsYXkgKmRpc3BsYXkgPSBleHlub3NfZW5jb2Rlci0+ZGlzcGxheTsKIAotCWlm IChkaXNwbGF5LT5vcHMtPmRpc2FibGUpCi0JCWRpc3BsYXktPm9wcy0+ZGlzYWJsZShkaXNwbGF5 KTsKKwlpZiAoZXh5bm9zX2VuY29kZXItPm9wcy0+ZGlzYWJsZSkKKwkJZXh5bm9zX2VuY29kZXIt Pm9wcy0+ZGlzYWJsZShleHlub3NfZW5jb2Rlcik7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX2Vu Y29kZXJfaGVscGVyX2Z1bmNzIGV4eW5vc19lbmNvZGVyX2hlbHBlcl9mdW5jcyA9IHsKQEAgLTkz LDE2ICs3Niw4IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2VuY29kZXJfaGVscGVyX2Z1bmNzIGV4eW5v c19lbmNvZGVyX2hlbHBlcl9mdW5jcyA9IHsKIAkuZGlzYWJsZQk9IGV4eW5vc19kcm1fZW5jb2Rl cl9kaXNhYmxlLAogfTsKIAotc3RhdGljIHZvaWQgZXh5bm9zX2RybV9lbmNvZGVyX2Rlc3Ryb3ko c3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQotewotCXN0cnVjdCBleHlub3NfZHJtX2VuY29k ZXIgKmV4eW5vc19lbmNvZGVyID0gdG9fZXh5bm9zX2VuY29kZXIoZW5jb2Rlcik7Ci0KLQlkcm1f ZW5jb2Rlcl9jbGVhbnVwKGVuY29kZXIpOwotCWtmcmVlKGV4eW5vc19lbmNvZGVyKTsKLX0KLQog c3RhdGljIHN0cnVjdCBkcm1fZW5jb2Rlcl9mdW5jcyBleHlub3NfZW5jb2Rlcl9mdW5jcyA9IHsK LQkuZGVzdHJveSA9IGV4eW5vc19kcm1fZW5jb2Rlcl9kZXN0cm95LAorCS5kZXN0cm95ID0gZHJt X2VuY29kZXJfY2xlYW51cCwKIH07CiAKIHZvaWQgZXh5bm9zX2RybV9lbmNvZGVyX3NldHVwKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCkBAIC0xMTgsMjMgKzkzLDE2IEBAIHZvaWQgZXh5bm9zX2Ry bV9lbmNvZGVyX3NldHVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCWVuY29kZXItPnBvc3Np YmxlX2Nsb25lcyA9IGNsb25lX21hc2s7CiB9CiAKLXN0cnVjdCBkcm1fZW5jb2RlciAqCi1leHlu b3NfZHJtX2VuY29kZXJfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkgICBzdHJ1 Y3QgZXh5bm9zX2RybV9kaXNwbGF5ICpkaXNwbGF5LAotCQkJICAgdW5zaWduZWQgbG9uZyBwb3Nz aWJsZV9jcnRjcykKK2ludCBleHlub3NfZHJtX2VuY29kZXJfY3JlYXRlKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCisJCQkgICAgICBzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyICpleHlub3NfZW5j b2RlciwKKwkJCSAgICAgIHVuc2lnbmVkIGxvbmcgcG9zc2libGVfY3J0Y3MpCiB7CiAJc3RydWN0 IGRybV9lbmNvZGVyICplbmNvZGVyOwotCXN0cnVjdCBleHlub3NfZHJtX2VuY29kZXIgKmV4eW5v c19lbmNvZGVyOwogCiAJaWYgKCFwb3NzaWJsZV9jcnRjcykKLQkJcmV0dXJuIE5VTEw7Ci0KLQll eHlub3NfZW5jb2RlciA9IGt6YWxsb2Moc2l6ZW9mKCpleHlub3NfZW5jb2RlciksIEdGUF9LRVJO RUwpOwotCWlmICghZXh5bm9zX2VuY29kZXIpCi0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gLUVJ TlZBTDsKIAotCWV4eW5vc19lbmNvZGVyLT5kaXNwbGF5ID0gZGlzcGxheTsKLQllbmNvZGVyID0g JmV4eW5vc19lbmNvZGVyLT5kcm1fZW5jb2RlcjsKKwllbmNvZGVyID0gJmV4eW5vc19lbmNvZGVy LT5iYXNlOwogCWVuY29kZXItPnBvc3NpYmxlX2NydGNzID0gcG9zc2libGVfY3J0Y3M7CiAKIAlE Uk1fREVCVUdfS01TKCJwb3NzaWJsZV9jcnRjcyA9IDB4JXhcbiIsIGVuY29kZXItPnBvc3NpYmxl X2NydGNzKTsKQEAgLTE0NiwxMCArMTE0LDUgQEAgZXh5bm9zX2RybV9lbmNvZGVyX2NyZWF0ZShz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJRFJNX0RFQlVHX0tNUygiZW5jb2RlciBoYXMgYmVl biBjcmVhdGVkXG4iKTsKIAotCXJldHVybiBlbmNvZGVyOwotfQotCi1zdHJ1Y3QgZXh5bm9zX2Ry bV9kaXNwbGF5ICpleHlub3NfZHJtX2dldF9kaXNwbGF5KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5j b2RlcikKLXsKLQlyZXR1cm4gdG9fZXh5bm9zX2VuY29kZXIoZW5jb2RlciktPmRpc3BsYXk7CisJ cmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19k cm1fZW5jb2Rlci5oIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2VuY29kZXIu aAppbmRleCAyNjMwNWQ4Li4wMDVmNTgzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5 bm9zL2V4eW5vc19kcm1fZW5jb2Rlci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5 bm9zX2RybV9lbmNvZGVyLmgKQEAgLTE1LDkgKzE1LDcgQEAKICNkZWZpbmUgX0VYWU5PU19EUk1f RU5DT0RFUl9IXwogCiB2b2lkIGV4eW5vc19kcm1fZW5jb2Rlcl9zZXR1cChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KTsKLXN0cnVjdCBkcm1fZW5jb2RlciAqZXh5bm9zX2RybV9lbmNvZGVyX2NyZWF0 ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJc3RydWN0IGV4eW5vc19kcm1fZGlzcGxheSAq bWdyLAotCQkJdW5zaWduZWQgbG9uZyBwb3NzaWJsZV9jcnRjcyk7Ci1zdHJ1Y3QgZXh5bm9zX2Ry bV9kaXNwbGF5ICpleHlub3NfZHJtX2dldF9kaXNwbGF5KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5j b2Rlcik7CitpbnQgZXh5bm9zX2RybV9lbmNvZGVyX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyCisJCQkgICAgICAqZW5jb2RlciwgdW5zaWdu ZWQgbG9uZyBwb3NzaWJsZV9jcnRjcyk7CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2ZpbWQuYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3Mv ZXh5bm9zX2RybV9maW1kLmMKaW5kZXggODhkZWE5ZC4uOWVkZDExZCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2ZpbWQuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vZXh5bm9zL2V4eW5vc19kcm1fZmltZC5jCkBAIC0xNjksNyArMTY5LDcgQEAgc3RydWN0IGZp bWRfY29udGV4dCB7CiAKIAlzdHJ1Y3QgZXh5bm9zX2RybV9wYW5lbF9pbmZvIHBhbmVsOwogCXN0 cnVjdCBmaW1kX2RyaXZlcl9kYXRhICpkcml2ZXJfZGF0YTsKLQlzdHJ1Y3QgZXh5bm9zX2RybV9k aXNwbGF5ICpkaXNwbGF5OworCXN0cnVjdCBleHlub3NfZHJtX2VuY29kZXIgKmVuY29kZXI7CiB9 OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBmaW1kX2RyaXZlcl9kdF9tYXRj aFtdID0gewpAQCAtOTQ1LDggKzk0NSw5IEBAIHN0YXRpYyBpbnQgZmltZF9iaW5kKHN0cnVjdCBk ZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLCB2b2lkICpkYXRhKQogCWlmIChJU19F UlIoY3R4LT5jcnRjKSkKIAkJcmV0dXJuIFBUUl9FUlIoY3R4LT5jcnRjKTsKIAotCWlmIChjdHgt PmRpc3BsYXkpCi0JCWV4eW5vc19kcm1fY3JlYXRlX2VuY19jb25uKGRybV9kZXYsIGN0eC0+ZGlz cGxheSk7CisJaWYgKGN0eC0+ZW5jb2RlcikKKwkJZXh5bm9zX2RybV9jcmVhdGVfZW5jX2Nvbm4o ZHJtX2RldiwgY3R4LT5lbmNvZGVyLAorCQkJCQkgICBFWFlOT1NfRElTUExBWV9UWVBFX0xDRCk7 CiAKIAlpZiAoaXNfZHJtX2lvbW11X3N1cHBvcnRlZChkcm1fZGV2KSkKIAkJZmltZF9jbGVhcl9j aGFubmVscyhjdHgtPmNydGMpOwpAQCAtOTY3LDggKzk2OCw4IEBAIHN0YXRpYyB2b2lkIGZpbWRf dW5iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLAogCiAJZHJt X2lvbW11X2RldGFjaF9kZXZpY2UoY3R4LT5kcm1fZGV2LCBjdHgtPmRldik7CiAKLQlpZiAoY3R4 LT5kaXNwbGF5KQotCQlleHlub3NfZHBpX3JlbW92ZShjdHgtPmRpc3BsYXkpOworCWlmIChjdHgt PmVuY29kZXIpCisJCWV4eW5vc19kcGlfcmVtb3ZlKGN0eC0+ZW5jb2Rlcik7CiB9CiAKIHN0YXRp YyBjb25zdCBzdHJ1Y3QgY29tcG9uZW50X29wcyBmaW1kX2NvbXBvbmVudF9vcHMgPSB7CkBAIC0x MDc1LDEwICsxMDc2LDkgQEAgc3RhdGljIGludCBmaW1kX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYpCiAKIAlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBjdHgpOwogCi0JY3R4 LT5kaXNwbGF5ID0gZXh5bm9zX2RwaV9wcm9iZShkZXYpOwotCWlmIChJU19FUlIoY3R4LT5kaXNw bGF5KSkgewotCQlyZXR1cm4gUFRSX0VSUihjdHgtPmRpc3BsYXkpOwotCX0KKwljdHgtPmVuY29k ZXIgPSBleHlub3NfZHBpX3Byb2JlKGRldik7CisJaWYgKElTX0VSUihjdHgtPmVuY29kZXIpKQor CQlyZXR1cm4gUFRSX0VSUihjdHgtPmVuY29kZXIpOwogCiAJcG1fcnVudGltZV9lbmFibGUoZGV2 KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX3ZpZGku YyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV92aWRpLmMKaW5kZXggYWRlNTll ZS4uZDdmOTUwMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJt X3ZpZGkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fdmlkaS5jCkBA IC0zNSwxMSArMzUsMTAgQEAKIAkJCQkJY29ubmVjdG9yKQogCiBzdHJ1Y3QgdmlkaV9jb250ZXh0 IHsKLQlzdHJ1Y3QgZXh5bm9zX2RybV9kaXNwbGF5CWRpc3BsYXk7CisJc3RydWN0IGV4eW5vc19k cm1fZW5jb2RlcgllbmNvZGVyOwogCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UJCSpwZGV2OwogCXN0 cnVjdCBkcm1fZGV2aWNlCQkqZHJtX2RldjsKIAlzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjCQkqY3J0 YzsKLQlzdHJ1Y3QgZHJtX2VuY29kZXIJCSplbmNvZGVyOwogCXN0cnVjdCBkcm1fY29ubmVjdG9y CQljb25uZWN0b3I7CiAJc3RydWN0IGV4eW5vc19kcm1fcGxhbmUJCXBsYW5lc1tXSU5ET1dTX05S XTsKIAlzdHJ1Y3QgZWRpZAkJCSpyYXdfZWRpZDsKQEAgLTU1LDkgKzU0LDkgQEAgc3RydWN0IHZp ZGlfY29udGV4dCB7CiAJaW50CQkJCXBpcGU7CiB9OwogCi1zdGF0aWMgaW5saW5lIHN0cnVjdCB2 aWRpX2NvbnRleHQgKmRpc3BsYXlfdG9fdmlkaShzdHJ1Y3QgZXh5bm9zX2RybV9kaXNwbGF5ICpk KQorc3RhdGljIGlubGluZSBzdHJ1Y3QgdmlkaV9jb250ZXh0ICplbmNvZGVyX3RvX3ZpZGkoc3Ry dWN0IGV4eW5vc19kcm1fZW5jb2RlciAqZSkKIHsKLQlyZXR1cm4gY29udGFpbmVyX29mKGQsIHN0 cnVjdCB2aWRpX2NvbnRleHQsIGRpc3BsYXkpOworCXJldHVybiBjb250YWluZXJfb2YoZSwgc3Ry dWN0IHZpZGlfY29udGV4dCwgZW5jb2Rlcik7CiB9CiAKIHN0YXRpYyBjb25zdCBjaGFyIGZha2Vf ZWRpZF9pbmZvW10gPSB7CkBAIC0yNTQsOSArMjUzLDcgQEAgc3RhdGljIERFVklDRV9BVFRSKGNv bm5lY3Rpb24sIDA2NDQsIHZpZGlfc2hvd19jb25uZWN0aW9uLAogaW50IHZpZGlfY29ubmVjdGlv bl9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2Rldiwgdm9pZCAqZGF0YSwKIAkJCQlzdHJ1 Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKIHsKLQlzdHJ1Y3QgdmlkaV9jb250ZXh0ICpjdHggPSBO VUxMOwotCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKLQlzdHJ1Y3QgZXh5bm9zX2RybV9k aXNwbGF5ICpkaXNwbGF5OworCXN0cnVjdCB2aWRpX2NvbnRleHQgKmN0eCA9IGRldl9nZXRfZHJ2 ZGF0YShkcm1fZGV2LT5kZXYpOwogCXN0cnVjdCBkcm1fZXh5bm9zX3ZpZGlfY29ubmVjdGlvbiAq dmlkaSA9IGRhdGE7CiAKIAlpZiAoIXZpZGkpIHsKQEAgLTI2OSwyMSArMjY2LDYgQEAgaW50IHZp ZGlfY29ubmVjdGlvbl9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2Rldiwgdm9pZCAqZGF0 YSwKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShlbmNvZGVy LCAmZHJtX2Rldi0+bW9kZV9jb25maWcuZW5jb2Rlcl9saXN0LAotCQkJCQkJCQloZWFkKSB7Ci0J CWRpc3BsYXkgPSBleHlub3NfZHJtX2dldF9kaXNwbGF5KGVuY29kZXIpOwotCi0JCWlmIChkaXNw bGF5LT50eXBlID09IEVYWU5PU19ESVNQTEFZX1RZUEVfVklESSkgewotCQkJY3R4ID0gZGlzcGxh eV90b192aWRpKGRpc3BsYXkpOwotCQkJYnJlYWs7Ci0JCX0KLQl9Ci0KLQlpZiAoIWN0eCkgewot CQlEUk1fREVCVUdfS01TKCJub3QgZm91bmQgdmlydHVhbCBkZXZpY2UgdHlwZSBlbmNvZGVyLlxu Iik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQogCWlmIChjdHgtPmNvbm5lY3RlZCA9PSB2aWRp LT5jb25uZWN0aW9uKSB7CiAJCURSTV9ERUJVR19LTVMoInNhbWUgY29ubmVjdGlvbiByZXF1ZXN0 LlxuIik7CiAJCXJldHVybiAtRUlOVkFMOwpAQCAtMzc2LDcgKzM1OCw3IEBAIHN0YXRpYyBzdHJ1 Y3QgZHJtX2VuY29kZXIgKnZpZGlfYmVzdF9lbmNvZGVyKHN0cnVjdCBkcm1fY29ubmVjdG9yICpj b25uZWN0b3IpCiB7CiAJc3RydWN0IHZpZGlfY29udGV4dCAqY3R4ID0gY3R4X2Zyb21fY29ubmVj dG9yKGNvbm5lY3Rvcik7CiAKLQlyZXR1cm4gY3R4LT5lbmNvZGVyOworCXJldHVybiAmY3R4LT5l bmNvZGVyLmJhc2U7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVu Y3MgdmlkaV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzID0gewpAQCAtMzg0LDE0ICszNjYsMTMgQEAg c3RhdGljIHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyB2aWRpX2Nvbm5lY3Rvcl9o ZWxwZXJfZnVuY3MgPSB7CiAJLmJlc3RfZW5jb2RlciA9IHZpZGlfYmVzdF9lbmNvZGVyLAogfTsK IAotc3RhdGljIGludCB2aWRpX2NyZWF0ZV9jb25uZWN0b3Ioc3RydWN0IGV4eW5vc19kcm1fZGlz cGxheSAqZGlzcGxheSwKLQkJCQlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCitzdGF0aWMg aW50IHZpZGlfY3JlYXRlX2Nvbm5lY3RvcihzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyICpleHlu b3NfZW5jb2RlcikKIHsKLQlzdHJ1Y3QgdmlkaV9jb250ZXh0ICpjdHggPSBkaXNwbGF5X3RvX3Zp ZGkoZGlzcGxheSk7CisJc3RydWN0IHZpZGlfY29udGV4dCAqY3R4ID0gZW5jb2Rlcl90b192aWRp KGV4eW5vc19lbmNvZGVyKTsKKwlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSAmZXh5bm9z X2VuY29kZXItPmJhc2U7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9ICZjdHgt PmNvbm5lY3RvcjsKIAlpbnQgcmV0OwogCi0JY3R4LT5lbmNvZGVyID0gZW5jb2RlcjsKIAljb25u ZWN0b3ItPnBvbGxlZCA9IERSTV9DT05ORUNUT1JfUE9MTF9IUEQ7CiAKIAlyZXQgPSBkcm1fY29u bmVjdG9yX2luaXQoY3R4LT5kcm1fZGV2LCBjb25uZWN0b3IsCkBAIC00MDksNyArMzkwLDcgQEAg c3RhdGljIGludCB2aWRpX2NyZWF0ZV9jb25uZWN0b3Ioc3RydWN0IGV4eW5vc19kcm1fZGlzcGxh eSAqZGlzcGxheSwKIH0KIAogCi1zdGF0aWMgc3RydWN0IGV4eW5vc19kcm1fZGlzcGxheV9vcHMg dmlkaV9kaXNwbGF5X29wcyA9IHsKK3N0YXRpYyBzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyX29w cyB2aWRpX2VuY29kZXJfb3BzID0gewogCS5jcmVhdGVfY29ubmVjdG9yID0gdmlkaV9jcmVhdGVf Y29ubmVjdG9yLAogfTsKIApAQCAtNDQyLDcgKzQyMyw4IEBAIHN0YXRpYyBpbnQgdmlkaV9iaW5k KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLCB2b2lkICpkYXRhKQog CQlyZXR1cm4gUFRSX0VSUihjdHgtPmNydGMpOwogCX0KIAotCXJldCA9IGV4eW5vc19kcm1fY3Jl YXRlX2VuY19jb25uKGRybV9kZXYsICZjdHgtPmRpc3BsYXkpOworCXJldCA9IGV4eW5vc19kcm1f Y3JlYXRlX2VuY19jb25uKGRybV9kZXYsICZjdHgtPmVuY29kZXIsCisJCQkJCSBFWFlOT1NfRElT UExBWV9UWVBFX1ZJREkpOwogCWlmIChyZXQpIHsKIAkJY3R4LT5jcnRjLT5iYXNlLmZ1bmNzLT5k ZXN0cm95KCZjdHgtPmNydGMtPmJhc2UpOwogCQlyZXR1cm4gcmV0OwpAQCAtNDcwLDggKzQ1Miw3 IEBAIHN0YXRpYyBpbnQgdmlkaV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQog CWlmICghY3R4KQogCQlyZXR1cm4gLUVOT01FTTsKIAotCWN0eC0+ZGlzcGxheS50eXBlID0gRVhZ Tk9TX0RJU1BMQVlfVFlQRV9WSURJOwotCWN0eC0+ZGlzcGxheS5vcHMgPSAmdmlkaV9kaXNwbGF5 X29wczsKKwljdHgtPmVuY29kZXIub3BzID0gJnZpZGlfZW5jb2Rlcl9vcHM7CiAJY3R4LT5kZWZh dWx0X3dpbiA9IDA7CiAJY3R4LT5wZGV2ID0gcGRldjsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2V4eW5vcy9leHlub3NfaGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlu b3NfaGRtaS5jCmluZGV4IDliOTM5NmEuLjFhZWQ3ZWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9leHlub3MvZXh5bm9zX2hkbWkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4 eW5vc19oZG1pLmMKQEAgLTg3LDExICs4NywxMSBAQCBzdHJ1Y3QgaGRtaV9yZXNvdXJjZXMgewog fTsKIAogc3RydWN0IGhkbWlfY29udGV4dCB7Ci0Jc3RydWN0IGV4eW5vc19kcm1fZGlzcGxheQlk aXNwbGF5OworCXN0cnVjdCBleHlub3NfZHJtX2VuY29kZXIJZW5jb2RlcjsKIAlzdHJ1Y3QgZGV2 aWNlCQkJKmRldjsKIAlzdHJ1Y3QgZHJtX2RldmljZQkJKmRybV9kZXY7CiAJc3RydWN0IGRybV9j b25uZWN0b3IJCWNvbm5lY3RvcjsKLQlzdHJ1Y3QgZHJtX2VuY29kZXIJCSplbmNvZGVyOworCWJv b2wJCQkJaHBkOwogCWJvb2wJCQkJcG93ZXJlZDsKIAlib29sCQkJCWR2aV9tb2RlOwogCkBAIC0x MTUsOSArMTE1LDkgQEAgc3RydWN0IGhkbWlfY29udGV4dCB7CiAJc3RydWN0IHJlZ21hcAkJCSpw bXVyZWc7CiB9OwogCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBoZG1pX2NvbnRleHQgKmRpc3BsYXlf dG9faGRtaShzdHJ1Y3QgZXh5bm9zX2RybV9kaXNwbGF5ICpkKQorc3RhdGljIGlubGluZSBzdHJ1 Y3QgaGRtaV9jb250ZXh0ICplbmNvZGVyX3RvX2hkbWkoc3RydWN0IGV4eW5vc19kcm1fZW5jb2Rl ciAqZSkKIHsKLQlyZXR1cm4gY29udGFpbmVyX29mKGQsIHN0cnVjdCBoZG1pX2NvbnRleHQsIGRp c3BsYXkpOworCXJldHVybiBjb250YWluZXJfb2YoZSwgc3RydWN0IGhkbWlfY29udGV4dCwgZW5j b2Rlcik7CiB9CiAKIHN0cnVjdCBoZG1pcGh5X2NvbmZpZyB7CkBAIC0xMDMxLDcgKzEwMzEsNyBA QCBzdGF0aWMgc3RydWN0IGRybV9lbmNvZGVyICpoZG1pX2Jlc3RfZW5jb2RlcihzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewogCXN0cnVjdCBoZG1pX2NvbnRleHQgKmhkYXRhID0g Y3R4X2Zyb21fY29ubmVjdG9yKGNvbm5lY3Rvcik7CiAKLQlyZXR1cm4gaGRhdGEtPmVuY29kZXI7 CisJcmV0dXJuICZoZGF0YS0+ZW5jb2Rlci5iYXNlOwogfQogCiBzdGF0aWMgc3RydWN0IGRybV9j b25uZWN0b3JfaGVscGVyX2Z1bmNzIGhkbWlfY29ubmVjdG9yX2hlbHBlcl9mdW5jcyA9IHsKQEAg LTEwNDAsMTQgKzEwNDAsMTIgQEAgc3RhdGljIHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9m dW5jcyBoZG1pX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgPSB7CiAJLmJlc3RfZW5jb2RlciA9IGhk bWlfYmVzdF9lbmNvZGVyLAogfTsKIAotc3RhdGljIGludCBoZG1pX2NyZWF0ZV9jb25uZWN0b3Io c3RydWN0IGV4eW5vc19kcm1fZGlzcGxheSAqZGlzcGxheSwKLQkJCXN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jb2RlcikKK3N0YXRpYyBpbnQgaGRtaV9jcmVhdGVfY29ubmVjdG9yKHN0cnVjdCBleHlu b3NfZHJtX2VuY29kZXIgKmV4eW5vc19lbmNvZGVyKQogewotCXN0cnVjdCBoZG1pX2NvbnRleHQg KmhkYXRhID0gZGlzcGxheV90b19oZG1pKGRpc3BsYXkpOworCXN0cnVjdCBoZG1pX2NvbnRleHQg KmhkYXRhID0gZW5jb2Rlcl90b19oZG1pKGV4eW5vc19lbmNvZGVyKTsKIAlzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yID0gJmhkYXRhLT5jb25uZWN0b3I7CiAJaW50IHJldDsKIAotCWhk YXRhLT5lbmNvZGVyID0gZW5jb2RlcjsKIAljb25uZWN0b3ItPmludGVybGFjZV9hbGxvd2VkID0g dHJ1ZTsKIAljb25uZWN0b3ItPnBvbGxlZCA9IERSTV9DT05ORUNUT1JfUE9MTF9IUEQ7CiAKQEAg LTEwNjAsMTIgKzEwNTgsMTIgQEAgc3RhdGljIGludCBoZG1pX2NyZWF0ZV9jb25uZWN0b3Ioc3Ry dWN0IGV4eW5vc19kcm1fZGlzcGxheSAqZGlzcGxheSwKIAogCWRybV9jb25uZWN0b3JfaGVscGVy X2FkZChjb25uZWN0b3IsICZoZG1pX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MpOwogCWRybV9jb25u ZWN0b3JfcmVnaXN0ZXIoY29ubmVjdG9yKTsKLQlkcm1fbW9kZV9jb25uZWN0b3JfYXR0YWNoX2Vu Y29kZXIoY29ubmVjdG9yLCBlbmNvZGVyKTsKKwlkcm1fbW9kZV9jb25uZWN0b3JfYXR0YWNoX2Vu Y29kZXIoY29ubmVjdG9yLCAmZXh5bm9zX2VuY29kZXItPmJhc2UpOwogCiAJcmV0dXJuIDA7CiB9 CiAKLXN0YXRpYyB2b2lkIGhkbWlfbW9kZV9maXh1cChzdHJ1Y3QgZXh5bm9zX2RybV9kaXNwbGF5 ICpkaXNwbGF5LAorc3RhdGljIHZvaWQgaGRtaV9tb2RlX2ZpeHVwKHN0cnVjdCBleHlub3NfZHJt X2VuY29kZXIgKmVuY29kZXIsCiAJCQkJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwK IAkJCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKIAkJCQlzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSkKQEAgLTE2OTgsMTAgKzE2OTYsMTAgQEAgc3Rh dGljIHZvaWQgaGRtaV9jb25mX2FwcGx5KHN0cnVjdCBoZG1pX2NvbnRleHQgKmhkYXRhKQogCWhk bWlfcmVnc19kdW1wKGhkYXRhLCAic3RhcnQiKTsKIH0KIAotc3RhdGljIHZvaWQgaGRtaV9tb2Rl X3NldChzdHJ1Y3QgZXh5bm9zX2RybV9kaXNwbGF5ICpkaXNwbGF5LAorc3RhdGljIHZvaWQgaGRt aV9tb2RlX3NldChzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyICplbmNvZGVyLAogCQkJc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpCiB7Ci0Jc3RydWN0IGhkbWlfY29udGV4dCAqaGRhdGEg PSBkaXNwbGF5X3RvX2hkbWkoZGlzcGxheSk7CisJc3RydWN0IGhkbWlfY29udGV4dCAqaGRhdGEg PSBlbmNvZGVyX3RvX2hkbWkoZW5jb2Rlcik7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm0g PSBtb2RlOwogCiAJRFJNX0RFQlVHX0tNUygieHJlcz0lZCwgeXJlcz0lZCwgcmVmcmVzaD0lZCwg aW50bD0lc1xuIiwKQEAgLTE3MTMsOSArMTcxMSw5IEBAIHN0YXRpYyB2b2lkIGhkbWlfbW9kZV9z ZXQoc3RydWN0IGV4eW5vc19kcm1fZGlzcGxheSAqZGlzcGxheSwKIAloZGF0YS0+Y2VhX3ZpZGVv X2lkID0gZHJtX21hdGNoX2NlYV9tb2RlKG1vZGUpOwogfQogCi1zdGF0aWMgdm9pZCBoZG1pX2Nv bW1pdChzdHJ1Y3QgZXh5bm9zX2RybV9kaXNwbGF5ICpkaXNwbGF5KQorc3RhdGljIHZvaWQgaGRt aV9jb21taXQoc3RydWN0IGV4eW5vc19kcm1fZW5jb2RlciAqZW5jb2RlcikKIHsKLQlzdHJ1Y3Qg aGRtaV9jb250ZXh0ICpoZGF0YSA9IGRpc3BsYXlfdG9faGRtaShkaXNwbGF5KTsKKwlzdHJ1Y3Qg aGRtaV9jb250ZXh0ICpoZGF0YSA9IGVuY29kZXJfdG9faGRtaShlbmNvZGVyKTsKIAogCWlmICgh aGRhdGEtPnBvd2VyZWQpCiAJCXJldHVybjsKQEAgLTE3MjMsOSArMTcyMSw5IEBAIHN0YXRpYyB2 b2lkIGhkbWlfY29tbWl0KHN0cnVjdCBleHlub3NfZHJtX2Rpc3BsYXkgKmRpc3BsYXkpCiAJaGRt aV9jb25mX2FwcGx5KGhkYXRhKTsKIH0KIAotc3RhdGljIHZvaWQgaGRtaV9lbmFibGUoc3RydWN0 IGV4eW5vc19kcm1fZGlzcGxheSAqZGlzcGxheSkKK3N0YXRpYyB2b2lkIGhkbWlfZW5hYmxlKHN0 cnVjdCBleHlub3NfZHJtX2VuY29kZXIgKmVuY29kZXIpCiB7Ci0Jc3RydWN0IGhkbWlfY29udGV4 dCAqaGRhdGEgPSBkaXNwbGF5X3RvX2hkbWkoZGlzcGxheSk7CisJc3RydWN0IGhkbWlfY29udGV4 dCAqaGRhdGEgPSBlbmNvZGVyX3RvX2hkbWkoZW5jb2Rlcik7CiAJc3RydWN0IGhkbWlfcmVzb3Vy Y2VzICpyZXMgPSAmaGRhdGEtPnJlczsKIAogCWlmIChoZGF0YS0+cG93ZXJlZCkKQEAgLTE3NDYs MTQgKzE3NDQsMTQgQEAgc3RhdGljIHZvaWQgaGRtaV9lbmFibGUoc3RydWN0IGV4eW5vc19kcm1f ZGlzcGxheSAqZGlzcGxheSkKIAljbGtfcHJlcGFyZV9lbmFibGUocmVzLT5zY2xrX2hkbWkpOwog CiAJaGRtaXBoeV9wb3dlcm9uKGhkYXRhKTsKLQloZG1pX2NvbW1pdChkaXNwbGF5KTsKKwloZG1p X2NvbW1pdChlbmNvZGVyKTsKIH0KIAotc3RhdGljIHZvaWQgaGRtaV9kaXNhYmxlKHN0cnVjdCBl eHlub3NfZHJtX2Rpc3BsYXkgKmRpc3BsYXkpCitzdGF0aWMgdm9pZCBoZG1pX2Rpc2FibGUoc3Ry dWN0IGV4eW5vc19kcm1fZW5jb2RlciAqZW5jb2RlcikKIHsKLQlzdHJ1Y3QgaGRtaV9jb250ZXh0 ICpoZGF0YSA9IGRpc3BsYXlfdG9faGRtaShkaXNwbGF5KTsKKwlzdHJ1Y3QgaGRtaV9jb250ZXh0 ICpoZGF0YSA9IGVuY29kZXJfdG9faGRtaShlbmNvZGVyKTsKIAlzdHJ1Y3QgaGRtaV9yZXNvdXJj ZXMgKnJlcyA9ICZoZGF0YS0+cmVzOwotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGhkYXRhLT5l bmNvZGVyLT5jcnRjOworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGhkYXRhLT5lbmNvZGVyLmJh c2UuY3J0YzsKIAljb25zdCBzdHJ1Y3QgZHJtX2NydGNfaGVscGVyX2Z1bmNzICpmdW5jcyA9IE5V TEw7CiAKIAlpZiAoIWhkYXRhLT5wb3dlcmVkKQpAQCAtMTc5NCw3ICsxNzkyLDcgQEAgc3RhdGlj IHZvaWQgaGRtaV9kaXNhYmxlKHN0cnVjdCBleHlub3NfZHJtX2Rpc3BsYXkgKmRpc3BsYXkpCiAJ aGRhdGEtPnBvd2VyZWQgPSBmYWxzZTsKIH0KIAotc3RhdGljIHN0cnVjdCBleHlub3NfZHJtX2Rp c3BsYXlfb3BzIGhkbWlfZGlzcGxheV9vcHMgPSB7CitzdGF0aWMgc3RydWN0IGV4eW5vc19kcm1f ZW5jb2Rlcl9vcHMgaGRtaV9lbmNvZGVyX29wcyA9IHsKIAkuY3JlYXRlX2Nvbm5lY3RvciA9IGhk bWlfY3JlYXRlX2Nvbm5lY3RvciwKIAkubW9kZV9maXh1cAk9IGhkbWlfbW9kZV9maXh1cCwKIAku bW9kZV9zZXQJPSBoZG1pX21vZGVfc2V0LApAQCAtMTkzMyw3ICsxOTMxLDggQEAgc3RhdGljIGlu dCBoZG1pX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsIHZv aWQgKmRhdGEpCiAKIAloZGF0YS0+ZHJtX2RldiA9IGRybV9kZXY7CiAKLQlyZXR1cm4gZXh5bm9z X2RybV9jcmVhdGVfZW5jX2Nvbm4oZHJtX2RldiwgJmhkYXRhLT5kaXNwbGF5KTsKKwlyZXR1cm4g ZXh5bm9zX2RybV9jcmVhdGVfZW5jX2Nvbm4oZHJtX2RldiwgJmhkYXRhLT5lbmNvZGVyLAorCQkJ CQkgIEVYWU5PU19ESVNQTEFZX1RZUEVfSERNSSk7CiB9CiAKIHN0YXRpYyB2b2lkIGhkbWlfdW5i aW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLCB2b2lkICpkYXRh KQpAQCAtMTk4Miw4ICsxOTgxLDcgQEAgc3RhdGljIGludCBoZG1pX3Byb2JlKHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCXJldHVybiAtRU5PREVWOwogCiAJaGRhdGEtPmRydl9kYXRh ID0gbWF0Y2gtPmRhdGE7Ci0JaGRhdGEtPmRpc3BsYXkudHlwZSA9IEVYWU5PU19ESVNQTEFZX1RZ UEVfSERNSTsKLQloZGF0YS0+ZGlzcGxheS5vcHMgPSAmaGRtaV9kaXNwbGF5X29wczsKKwloZGF0 YS0+ZW5jb2Rlci5vcHMgPSAmaGRtaV9lbmNvZGVyX29wczsKIAogCXBsYXRmb3JtX3NldF9kcnZk YXRhKHBkZXYsIGhkYXRhKTsKIAotLSAKMi4xLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vZHJpLWRldmVsCg==