From mboxrd@z Thu Jan 1 00:00:00 1970 From: "=?UTF-8?q?Christian=20K=C3=B6nig?=" Subject: [PATCH 1/8] drm/ttm: add operation ctx to ttm_bo_validate v2 Date: Fri, 17 Nov 2017 11:49:28 +0100 Message-ID: <20171117104935.4150-2-christian.koenig@amd.com> References: <20171117104935.4150-1-christian.koenig@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20171117104935.4150-1-christian.koenig@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: amd-gfx.lists.freedesktop.org R2l2ZSBtb3ZpbmcgYSBCTyBpbnRvIHBsYWNlIGFuIG9wZXJhdGlvbiBjb250ZXh0IHRvIHdvcmsg d2l0aC4KCnYyOiByZWJhc2VkCgpTaWduZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJp c3RpYW4ua29lbmlnQGFtZC5jb20+ClJldmlld2VkLWJ5OiBNaWNoZWwgRMOkbnplciA8bWljaGVs LmRhZW56ZXJAYW1kLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf Y3MuYyAgICAgIHwgMTQgKysrKysrKystLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9nZW0uYyAgICAgfCAgMyArKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9vYmplY3QuYyAgfCAxMiArKysrKysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV91dmQuYyAgICAgfCAgNiArKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV92Y24uYyAgICAgfCAgMyArKy0KIGRyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X3R0 bS5jICAgICAgICAgICAgICAgfCAgOSArKysrKystLS0KIGRyaXZlcnMvZ3B1L2RybS9ib2Nocy9i b2Noc19tbS5jICAgICAgICAgICAgfCAgNiArKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9jaXJydXMv Y2lycnVzX3R0bS5jICAgICAgICAgfCAgNiArKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9oaXNpbGlj b24vaGlibWMvaGlibWNfdHRtLmMgfCAgNiArKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9tZ2FnMjAw L21nYWcyMDBfdHRtLmMgICAgICAgfCAgOSArKysrKystLS0KIGRyaXZlcnMvZ3B1L2RybS9ub3V2 ZWF1L25vdXZlYXVfYm8uYyAgICAgICAgfCAgNCArKy0tCiBkcml2ZXJzL2dwdS9kcm0vcXhsL3F4 bF9pb2N0bC5jICAgICAgICAgICAgIHwgIDQgKystLQogZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxf b2JqZWN0LmMgICAgICAgICAgICB8ICA2ICsrKystLQogZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxf cmVsZWFzZS5jICAgICAgICAgICB8ICA0ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFk ZW9uX2dlbS5jICAgICAgICAgfCAgMyArKy0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9u X21uLmMgICAgICAgICAgfCAgMyArKy0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX29i amVjdC5jICAgICAgfCAxNCArKysrKysrKystLS0tLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9y YWRlb25fdm0uYyAgICAgICAgICB8ICAzICsrLQogZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8u YyAgICAgICAgICAgICAgICB8IDE2ICsrKysrKysrKy0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS92 aXJ0aW8vdmlydGdwdV9pb2N0bC5jICAgICAgfCAxMSArKysrKystLS0tLQogZHJpdmVycy9ncHUv ZHJtL3Ztd2dmeC92bXdnZnhfY290YWJsZS5jICAgICB8ICAzICsrLQogZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfZG1hYnVmLmMgICAgICB8IDIxICsrKysrKysrKysrKystLS0tLS0tLQog ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZXhlY2J1Zi5jICAgICB8ICA5ICsrKystLS0t LQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfcmVzb3VyY2UuYyAgICB8ICA2ICsrKyst LQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc2hhZGVyLmMgICAgICB8ICAzICsrLQog aW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaCAgICAgICAgICAgICAgICB8IDIwICsrKysrKysr KysrKysrKystLS0tCiAyNiBmaWxlcyBjaGFuZ2VkLCAxMjkgaW5zZXJ0aW9ucygrKSwgNzUgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3MuYwppbmRleCBlZTc3 MzY0MTk0MTEuLjQxOTk0Yjg3Yzc2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2NzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2NzLmMKQEAgLTM0Myw2ICszNDMsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9jc19ib192YWxpZGF0 ZShzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcCwKIAkJCQkgc3RydWN0IGFtZGdwdV9ibyAqYm8p CiB7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBhbWRncHVfdHRtX2FkZXYoYm8tPnRi by5iZGV2KTsKKwlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0geyB0cnVlLCBmYWxzZSB9 OwogCXU2NCBpbml0aWFsX2J5dGVzX21vdmVkLCBieXRlc19tb3ZlZDsKIAl1aW50MzJfdCBkb21h aW47CiAJaW50IHI7CkBAIC0zNzQsNyArMzc1LDcgQEAgc3RhdGljIGludCBhbWRncHVfY3NfYm9f dmFsaWRhdGUoc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnAsCiByZXRyeToKIAlhbWRncHVfdHRt X3BsYWNlbWVudF9mcm9tX2RvbWFpbihibywgZG9tYWluKTsKIAlpbml0aWFsX2J5dGVzX21vdmVk ID0gYXRvbWljNjRfcmVhZCgmYWRldi0+bnVtX2J5dGVzX21vdmVkKTsKLQlyID0gdHRtX2JvX3Zh bGlkYXRlKCZiby0+dGJvLCAmYm8tPnBsYWNlbWVudCwgdHJ1ZSwgZmFsc2UpOworCXIgPSB0dG1f Ym9fdmFsaWRhdGUoJmJvLT50Ym8sICZiby0+cGxhY2VtZW50LCAmY3R4KTsKIAlieXRlc19tb3Zl ZCA9IGF0b21pYzY0X3JlYWQoJmFkZXYtPm51bV9ieXRlc19tb3ZlZCkgLQogCQkgICAgICBpbml0 aWFsX2J5dGVzX21vdmVkOwogCXAtPmJ5dGVzX21vdmVkICs9IGJ5dGVzX21vdmVkOwpAQCAtMzk2 LDYgKzM5Nyw3IEBAIHN0YXRpYyBib29sIGFtZGdwdV9jc190cnlfZXZpY3Qoc3RydWN0IGFtZGdw dV9jc19wYXJzZXIgKnAsCiAJCQkJc3RydWN0IGFtZGdwdV9ibyAqdmFsaWRhdGVkKQogewogCXVp bnQzMl90IGRvbWFpbiA9IHZhbGlkYXRlZC0+YWxsb3dlZF9kb21haW5zOworCXN0cnVjdCB0dG1f b3BlcmF0aW9uX2N0eCBjdHggPSB7IHRydWUsIGZhbHNlIH07CiAJaW50IHI7CiAKIAlpZiAoIXAt PmV2aWN0YWJsZSkKQEAgLTQzMyw3ICs0MzUsNyBAQCBzdGF0aWMgYm9vbCBhbWRncHVfY3NfdHJ5 X2V2aWN0KHN0cnVjdCBhbWRncHVfY3NfcGFyc2VyICpwLAogCQkJYm8tPnRiby5tZW0ubWVtX3R5 cGUgPT0gVFRNX1BMX1ZSQU0gJiYKIAkJCWJvLT50Ym8ubWVtLnN0YXJ0IDwgYWRldi0+bWMudmlz aWJsZV92cmFtX3NpemUgPj4gUEFHRV9TSElGVDsKIAkJaW5pdGlhbF9ieXRlc19tb3ZlZCA9IGF0 b21pYzY0X3JlYWQoJmFkZXYtPm51bV9ieXRlc19tb3ZlZCk7Ci0JCXIgPSB0dG1fYm9fdmFsaWRh dGUoJmJvLT50Ym8sICZiby0+cGxhY2VtZW50LCB0cnVlLCBmYWxzZSk7CisJCXIgPSB0dG1fYm9f dmFsaWRhdGUoJmJvLT50Ym8sICZiby0+cGxhY2VtZW50LCAmY3R4KTsKIAkJYnl0ZXNfbW92ZWQg PSBhdG9taWM2NF9yZWFkKCZhZGV2LT5udW1fYnl0ZXNfbW92ZWQpIC0KIAkJCWluaXRpYWxfYnl0 ZXNfbW92ZWQ7CiAJCXAtPmJ5dGVzX21vdmVkICs9IGJ5dGVzX21vdmVkOwpAQCAtNDcyLDYgKzQ3 NCw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2NzX3ZhbGlkYXRlKHZvaWQgKnBhcmFtLCBzdHJ1Y3Qg YW1kZ3B1X2JvICpibykKIHN0YXRpYyBpbnQgYW1kZ3B1X2NzX2xpc3RfdmFsaWRhdGUoc3RydWN0 IGFtZGdwdV9jc19wYXJzZXIgKnAsCiAJCQkgICAgc3RydWN0IGxpc3RfaGVhZCAqdmFsaWRhdGVk KQogeworCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7IHRydWUsIGZhbHNlIH07CiAJ c3RydWN0IGFtZGdwdV9ib19saXN0X2VudHJ5ICpsb2JqOwogCWludCByOwogCkBAIC00ODksOCAr NDkyLDcgQEAgc3RhdGljIGludCBhbWRncHVfY3NfbGlzdF92YWxpZGF0ZShzdHJ1Y3QgYW1kZ3B1 X2NzX3BhcnNlciAqcCwKIAkJICAgIGxvYmotPnVzZXJfcGFnZXMpIHsKIAkJCWFtZGdwdV90dG1f cGxhY2VtZW50X2Zyb21fZG9tYWluKGJvLAogCQkJCQkJCSBBTURHUFVfR0VNX0RPTUFJTl9DUFUp OwotCQkJciA9IHR0bV9ib192YWxpZGF0ZSgmYm8tPnRibywgJmJvLT5wbGFjZW1lbnQsIHRydWUs Ci0JCQkJCSAgICBmYWxzZSk7CisJCQlyID0gdHRtX2JvX3ZhbGlkYXRlKCZiby0+dGJvLCAmYm8t PnBsYWNlbWVudCwgJmN0eCk7CiAJCQlpZiAocikKIAkJCQlyZXR1cm4gcjsKIAkJCWFtZGdwdV90 dG1fdHRfc2V0X3VzZXJfcGFnZXMoYm8tPnRiby50dG0sCkBAIC0xNTczLDYgKzE1NzUsNyBAQCBp bnQgYW1kZ3B1X2NzX2ZpbmRfbWFwcGluZyhzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcGFyc2Vy LAogCQkJICAgc3RydWN0IGFtZGdwdV9ib192YV9tYXBwaW5nICoqbWFwKQogewogCXN0cnVjdCBh bWRncHVfZnByaXYgKmZwcml2ID0gcGFyc2VyLT5maWxwLT5kcml2ZXJfcHJpdjsKKwlzdHJ1Y3Qg dHRtX29wZXJhdGlvbl9jdHggY3R4ID0geyBmYWxzZSwgZmFsc2UgfTsKIAlzdHJ1Y3QgYW1kZ3B1 X3ZtICp2bSA9ICZmcHJpdi0+dm07CiAJc3RydWN0IGFtZGdwdV9ib192YV9tYXBwaW5nICptYXBw aW5nOwogCWludCByOwpAQCAtMTU5Myw4ICsxNTk2LDcgQEAgaW50IGFtZGdwdV9jc19maW5kX21h cHBpbmcoc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnBhcnNlciwKIAlpZiAoISgoKmJvKS0+Zmxh Z3MgJiBBTURHUFVfR0VNX0NSRUFURV9WUkFNX0NPTlRJR1VPVVMpKSB7CiAJCSgqYm8pLT5mbGFn cyB8PSBBTURHUFVfR0VNX0NSRUFURV9WUkFNX0NPTlRJR1VPVVM7CiAJCWFtZGdwdV90dG1fcGxh Y2VtZW50X2Zyb21fZG9tYWluKCpibywgKCpibyktPmFsbG93ZWRfZG9tYWlucyk7Ci0JCXIgPSB0 dG1fYm9fdmFsaWRhdGUoJigqYm8pLT50Ym8sICYoKmJvKS0+cGxhY2VtZW50LCBmYWxzZSwKLQkJ CQkgICAgZmFsc2UpOworCQlyID0gdHRtX2JvX3ZhbGlkYXRlKCYoKmJvKS0+dGJvLCAmKCpibykt PnBsYWNlbWVudCwgJmN0eCk7CiAJCWlmIChyKQogCQkJcmV0dXJuIHI7CiAJfQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dlbS5jIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dlbS5jCmluZGV4IDA0ZGRkNzgyYmY2ZC4uYjNhZWE0NTRj NWE2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2VtLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dlbS5jCkBAIC0yODIsNiAr MjgyLDcgQEAgaW50IGFtZGdwdV9nZW1fY3JlYXRlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHZvaWQgKmRhdGEsCiBpbnQgYW1kZ3B1X2dlbV91c2VycHRyX2lvY3RsKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCQkgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlscCkK IHsKKwlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0geyB0cnVlLCBmYWxzZSB9OwogCXN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgZHJt X2FtZGdwdV9nZW1fdXNlcnB0ciAqYXJncyA9IGRhdGE7CiAJc3RydWN0IGRybV9nZW1fb2JqZWN0 ICpnb2JqOwpAQCAtMzM1LDcgKzMzNiw3IEBAIGludCBhbWRncHVfZ2VtX3VzZXJwdHJfaW9jdGwo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCWdvdG8gZnJlZV9wYWdlczsK IAogCQlhbWRncHVfdHRtX3BsYWNlbWVudF9mcm9tX2RvbWFpbihibywgQU1ER1BVX0dFTV9ET01B SU5fR1RUKTsKLQkJciA9IHR0bV9ib192YWxpZGF0ZSgmYm8tPnRibywgJmJvLT5wbGFjZW1lbnQs IHRydWUsIGZhbHNlKTsKKwkJciA9IHR0bV9ib192YWxpZGF0ZSgmYm8tPnRibywgJmJvLT5wbGFj ZW1lbnQsICZjdHgpOwogCQlhbWRncHVfYm9fdW5yZXNlcnZlKGJvKTsKIAkJaWYgKHIpCiAJCQln b3RvIGZyZWVfcGFnZXM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfb2JqZWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0 LmMKaW5kZXggMzIzM2Q1OTg4ZjY2Li5jMjQxOWJjNmIzZGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMKQEAgLTU1Miw2ICs1NTIsNyBAQCBpbnQgYW1kZ3B1 X2JvX2JhY2t1cF90b19zaGFkb3coc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAKIGludCBh bWRncHVfYm9fdmFsaWRhdGUoc3RydWN0IGFtZGdwdV9ibyAqYm8pCiB7CisJc3RydWN0IHR0bV9v cGVyYXRpb25fY3R4IGN0eCA9IHsgZmFsc2UsIGZhbHNlIH07CiAJdWludDMyX3QgZG9tYWluOwog CWludCByOwogCkBAIC01NjIsNyArNTYzLDcgQEAgaW50IGFtZGdwdV9ib192YWxpZGF0ZShzdHJ1 Y3QgYW1kZ3B1X2JvICpibykKIAogcmV0cnk6CiAJYW1kZ3B1X3R0bV9wbGFjZW1lbnRfZnJvbV9k b21haW4oYm8sIGRvbWFpbik7Ci0JciA9IHR0bV9ib192YWxpZGF0ZSgmYm8tPnRibywgJmJvLT5w bGFjZW1lbnQsIGZhbHNlLCBmYWxzZSk7CisJciA9IHR0bV9ib192YWxpZGF0ZSgmYm8tPnRibywg JmJvLT5wbGFjZW1lbnQsICZjdHgpOwogCWlmICh1bmxpa2VseShyID09IC1FTk9NRU0pICYmIGRv bWFpbiAhPSBiby0+YWxsb3dlZF9kb21haW5zKSB7CiAJCWRvbWFpbiA9IGJvLT5hbGxvd2VkX2Rv bWFpbnM7CiAJCWdvdG8gcmV0cnk7CkBAIC02NzMsNiArNjc0LDcgQEAgaW50IGFtZGdwdV9ib19w aW5fcmVzdHJpY3RlZChzdHJ1Y3QgYW1kZ3B1X2JvICpibywgdTMyIGRvbWFpbiwKIAkJCSAgICAg dTY0ICpncHVfYWRkcikKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGFtZGdwdV90 dG1fYWRldihiby0+dGJvLmJkZXYpOworCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7 IGZhbHNlLCBmYWxzZSB9OwogCWludCByLCBpOwogCiAJaWYgKGFtZGdwdV90dG1fdHRfZ2V0X3Vz ZXJtbShiby0+dGJvLnR0bSkpCkBAIC03MjMsNyArNzI1LDcgQEAgaW50IGFtZGdwdV9ib19waW5f cmVzdHJpY3RlZChzdHJ1Y3QgYW1kZ3B1X2JvICpibywgdTMyIGRvbWFpbiwKIAkJYm8tPnBsYWNl bWVudHNbaV0uZmxhZ3MgfD0gVFRNX1BMX0ZMQUdfTk9fRVZJQ1Q7CiAJfQogCi0JciA9IHR0bV9i b192YWxpZGF0ZSgmYm8tPnRibywgJmJvLT5wbGFjZW1lbnQsIGZhbHNlLCBmYWxzZSk7CisJciA9 IHR0bV9ib192YWxpZGF0ZSgmYm8tPnRibywgJmJvLT5wbGFjZW1lbnQsICZjdHgpOwogCWlmICh1 bmxpa2VseShyKSkgewogCQlkZXZfZXJyKGFkZXYtPmRldiwgIiVwIHBpbiBmYWlsZWRcbiIsIGJv KTsKIAkJZ290byBlcnJvcjsKQEAgLTc2MCw2ICs3NjIsNyBAQCBpbnQgYW1kZ3B1X2JvX3Bpbihz dHJ1Y3QgYW1kZ3B1X2JvICpibywgdTMyIGRvbWFpbiwgdTY0ICpncHVfYWRkcikKIGludCBhbWRn cHVfYm9fdW5waW4oc3RydWN0IGFtZGdwdV9ibyAqYm8pCiB7CiAJc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYgPSBhbWRncHVfdHRtX2FkZXYoYm8tPnRiby5iZGV2KTsKKwlzdHJ1Y3QgdHRtX29w ZXJhdGlvbl9jdHggY3R4ID0geyBmYWxzZSwgZmFsc2UgfTsKIAlpbnQgciwgaTsKIAogCWlmICgh Ym8tPnBpbl9jb3VudCkgewpAQCAtNzczLDcgKzc3Niw3IEBAIGludCBhbWRncHVfYm9fdW5waW4o c3RydWN0IGFtZGdwdV9ibyAqYm8pCiAJCWJvLT5wbGFjZW1lbnRzW2ldLmxwZm4gPSAwOwogCQli by0+cGxhY2VtZW50c1tpXS5mbGFncyAmPSB+VFRNX1BMX0ZMQUdfTk9fRVZJQ1Q7CiAJfQotCXIg PSB0dG1fYm9fdmFsaWRhdGUoJmJvLT50Ym8sICZiby0+cGxhY2VtZW50LCBmYWxzZSwgZmFsc2Up OworCXIgPSB0dG1fYm9fdmFsaWRhdGUoJmJvLT50Ym8sICZiby0+cGxhY2VtZW50LCAmY3R4KTsK IAlpZiAodW5saWtlbHkocikpIHsKIAkJZGV2X2VycihhZGV2LT5kZXYsICIlcCB2YWxpZGF0ZSBm YWlsZWQgZm9yIHVucGluXG4iLCBibyk7CiAJCWdvdG8gZXJyb3I7CkBAIC05NDUsNiArOTQ4LDcg QEAgdm9pZCBhbWRncHVfYm9fbW92ZV9ub3RpZnkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpi bywKIGludCBhbWRncHVfYm9fZmF1bHRfcmVzZXJ2ZV9ub3RpZnkoc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibykKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGFtZGdwdV90dG1f YWRldihiby0+YmRldik7CisJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0eCA9IHsgZmFsc2Us IGZhbHNlIH07CiAJc3RydWN0IGFtZGdwdV9ibyAqYWJvOwogCXVuc2lnbmVkIGxvbmcgb2Zmc2V0 LCBzaXplOwogCWludCByOwpAQCAtOTc4LDcgKzk4Miw3IEBAIGludCBhbWRncHVfYm9fZmF1bHRf cmVzZXJ2ZV9ub3RpZnkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKIAlhYm8tPnBsYWNl bWVudC5udW1fYnVzeV9wbGFjZW1lbnQgPSAxOwogCWFiby0+cGxhY2VtZW50LmJ1c3lfcGxhY2Vt ZW50ID0gJmFiby0+cGxhY2VtZW50c1sxXTsKIAotCXIgPSB0dG1fYm9fdmFsaWRhdGUoYm8sICZh Ym8tPnBsYWNlbWVudCwgZmFsc2UsIGZhbHNlKTsKKwlyID0gdHRtX2JvX3ZhbGlkYXRlKGJvLCAm YWJvLT5wbGFjZW1lbnQsICZjdHgpOwogCWlmICh1bmxpa2VseShyICE9IDApKQogCQlyZXR1cm4g cjsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3V2ZC5j IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3V2ZC5jCmluZGV4IGJlNjA3YjJi ZTRlOS4uMmYyYTllMTdmZGI0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfdXZkLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3V2 ZC5jCkBAIC00MDgsNiArNDA4LDcgQEAgc3RhdGljIHU2NCBhbWRncHVfdXZkX2dldF9hZGRyX2Zy b21fY3R4KHN0cnVjdCBhbWRncHVfdXZkX2NzX2N0eCAqY3R4KQogICovCiBzdGF0aWMgaW50IGFt ZGdwdV91dmRfY3NfcGFzczEoc3RydWN0IGFtZGdwdV91dmRfY3NfY3R4ICpjdHgpCiB7CisJc3Ry dWN0IHR0bV9vcGVyYXRpb25fY3R4IHRjdHggPSB7IGZhbHNlLCBmYWxzZSB9OwogCXN0cnVjdCBh bWRncHVfYm9fdmFfbWFwcGluZyAqbWFwcGluZzsKIAlzdHJ1Y3QgYW1kZ3B1X2JvICpibzsKIAl1 aW50MzJfdCBjbWQ7CkBAIC00MzAsNyArNDMxLDcgQEAgc3RhdGljIGludCBhbWRncHVfdXZkX2Nz X3Bhc3MxKHN0cnVjdCBhbWRncHVfdXZkX2NzX2N0eCAqY3R4KQogCQl9CiAJCWFtZGdwdV91dmRf Zm9yY2VfaW50b191dmRfc2VnbWVudChibyk7CiAKLQkJciA9IHR0bV9ib192YWxpZGF0ZSgmYm8t PnRibywgJmJvLT5wbGFjZW1lbnQsIGZhbHNlLCBmYWxzZSk7CisJCXIgPSB0dG1fYm9fdmFsaWRh dGUoJmJvLT50Ym8sICZiby0+cGxhY2VtZW50LCAmdGN0eCk7CiAJfQogCiAJcmV0dXJuIHI7CkBA IC05NDksNiArOTUwLDcgQEAgaW50IGFtZGdwdV91dmRfcmluZ19wYXJzZV9jcyhzdHJ1Y3QgYW1k Z3B1X2NzX3BhcnNlciAqcGFyc2VyLCB1aW50MzJfdCBpYl9pZHgpCiBzdGF0aWMgaW50IGFtZGdw dV91dmRfc2VuZF9tc2coc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBzdHJ1Y3QgYW1kZ3B1X2Jv ICpibywKIAkJCSAgICAgICBib29sIGRpcmVjdCwgc3RydWN0IGRtYV9mZW5jZSAqKmZlbmNlKQog eworCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7IHRydWUsIGZhbHNlIH07CiAJc3Ry dWN0IHR0bV92YWxpZGF0ZV9idWZmZXIgdHY7CiAJc3RydWN0IHd3X2FjcXVpcmVfY3R4IHRpY2tl dDsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGhlYWQ7CkBAIC05NzUsNyArOTc3LDcgQEAgc3RhdGljIGlu dCBhbWRncHVfdXZkX3NlbmRfbXNnKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgc3RydWN0IGFt ZGdwdV9ibyAqYm8sCiAJCWFtZGdwdV91dmRfZm9yY2VfaW50b191dmRfc2VnbWVudChibyk7CiAJ fQogCi0JciA9IHR0bV9ib192YWxpZGF0ZSgmYm8tPnRibywgJmJvLT5wbGFjZW1lbnQsIHRydWUs IGZhbHNlKTsKKwlyID0gdHRtX2JvX3ZhbGlkYXRlKCZiby0+dGJvLCAmYm8tPnBsYWNlbWVudCwg JmN0eCk7CiAJaWYgKHIpCiAJCWdvdG8gZXJyOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfdmNuLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfdmNuLmMKaW5kZXggZGFiYWNhNGRhN2YyLi5kZjIxOGRmMzMyYjMgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92Y24uYworKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmNuLmMKQEAgLTI3NCw2ICsyNzQsNyBAQCBpbnQgYW1k Z3B1X3Zjbl9kZWNfcmluZ190ZXN0X3Jpbmcoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQogc3Rh dGljIGludCBhbWRncHVfdmNuX2RlY19zZW5kX21zZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcs IHN0cnVjdCBhbWRncHVfYm8gKmJvLAogCQkJICAgICAgIGJvb2wgZGlyZWN0LCBzdHJ1Y3QgZG1h X2ZlbmNlICoqZmVuY2UpCiB7CisJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0eCA9IHsgdHJ1 ZSwgZmFsc2UgfTsKIAlzdHJ1Y3QgdHRtX3ZhbGlkYXRlX2J1ZmZlciB0djsKIAlzdHJ1Y3Qgd3df YWNxdWlyZV9jdHggdGlja2V0OwogCXN0cnVjdCBsaXN0X2hlYWQgaGVhZDsKQEAgLTI5NCw3ICsy OTUsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV92Y25fZGVjX3NlbmRfbXNnKHN0cnVjdCBhbWRncHVf cmluZyAqcmluZywgc3RydWN0IGFtZGdwdV9ibyAqYgogCWlmIChyKQogCQlyZXR1cm4gcjsKIAot CXIgPSB0dG1fYm9fdmFsaWRhdGUoJmJvLT50Ym8sICZiby0+cGxhY2VtZW50LCB0cnVlLCBmYWxz ZSk7CisJciA9IHR0bV9ib192YWxpZGF0ZSgmYm8tPnRibywgJmJvLT5wbGFjZW1lbnQsICZjdHgp OwogCWlmIChyKQogCQlnb3RvIGVycjsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Fz dC9hc3RfdHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF90dG0uYwppbmRleCA2OTZhMTVk YzJmM2YuLjI4ZGE3YzJiN2VkOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3Rf dHRtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfdHRtLmMKQEAgLTM1NCw2ICszNTQs NyBAQCBzdGF0aWMgaW5saW5lIHU2NCBhc3RfYm9fZ3B1X29mZnNldChzdHJ1Y3QgYXN0X2JvICpi bykKIAogaW50IGFzdF9ib19waW4oc3RydWN0IGFzdF9ibyAqYm8sIHUzMiBwbF9mbGFnLCB1NjQg KmdwdV9hZGRyKQogeworCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7IGZhbHNlLCBm YWxzZSB9OwogCWludCBpLCByZXQ7CiAKIAlpZiAoYm8tPnBpbl9jb3VudCkgewpAQCAtMzY1LDcg KzM2Niw3IEBAIGludCBhc3RfYm9fcGluKHN0cnVjdCBhc3RfYm8gKmJvLCB1MzIgcGxfZmxhZywg dTY0ICpncHVfYWRkcikKIAlhc3RfdHRtX3BsYWNlbWVudChibywgcGxfZmxhZyk7CiAJZm9yIChp ID0gMDsgaSA8IGJvLT5wbGFjZW1lbnQubnVtX3BsYWNlbWVudDsgaSsrKQogCQliby0+cGxhY2Vt ZW50c1tpXS5mbGFncyB8PSBUVE1fUExfRkxBR19OT19FVklDVDsKLQlyZXQgPSB0dG1fYm9fdmFs aWRhdGUoJmJvLT5ibywgJmJvLT5wbGFjZW1lbnQsIGZhbHNlLCBmYWxzZSk7CisJcmV0ID0gdHRt X2JvX3ZhbGlkYXRlKCZiby0+Ym8sICZiby0+cGxhY2VtZW50LCAmY3R4KTsKIAlpZiAocmV0KQog CQlyZXR1cm4gcmV0OwogCkBAIC0zNzcsNiArMzc4LDcgQEAgaW50IGFzdF9ib19waW4oc3RydWN0 IGFzdF9ibyAqYm8sIHUzMiBwbF9mbGFnLCB1NjQgKmdwdV9hZGRyKQogCiBpbnQgYXN0X2JvX3Vu cGluKHN0cnVjdCBhc3RfYm8gKmJvKQogeworCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHgg PSB7IGZhbHNlLCBmYWxzZSB9OwogCWludCBpOwogCWlmICghYm8tPnBpbl9jb3VudCkgewogCQlE Uk1fRVJST1IoInVucGluIGJhZCAlcFxuIiwgYm8pOwpAQCAtMzg4LDExICszOTAsMTIgQEAgaW50 IGFzdF9ib191bnBpbihzdHJ1Y3QgYXN0X2JvICpibykKIAogCWZvciAoaSA9IDA7IGkgPCBiby0+ cGxhY2VtZW50Lm51bV9wbGFjZW1lbnQgOyBpKyspCiAJCWJvLT5wbGFjZW1lbnRzW2ldLmZsYWdz ICY9IH5UVE1fUExfRkxBR19OT19FVklDVDsKLQlyZXR1cm4gdHRtX2JvX3ZhbGlkYXRlKCZiby0+ Ym8sICZiby0+cGxhY2VtZW50LCBmYWxzZSwgZmFsc2UpOworCXJldHVybiB0dG1fYm9fdmFsaWRh dGUoJmJvLT5ibywgJmJvLT5wbGFjZW1lbnQsICZjdHgpOwogfQogCiBpbnQgYXN0X2JvX3B1c2hf c3lzcmFtKHN0cnVjdCBhc3RfYm8gKmJvKQogeworCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBj dHggPSB7IGZhbHNlLCBmYWxzZSB9OwogCWludCBpLCByZXQ7CiAJaWYgKCFiby0+cGluX2NvdW50 KSB7CiAJCURSTV9FUlJPUigidW5waW4gYmFkICVwXG4iLCBibyk7CkBAIC00MDksNyArNDEyLDcg QEAgaW50IGFzdF9ib19wdXNoX3N5c3JhbShzdHJ1Y3QgYXN0X2JvICpibykKIAlmb3IgKGkgPSAw OyBpIDwgYm8tPnBsYWNlbWVudC5udW1fcGxhY2VtZW50IDsgaSsrKQogCQliby0+cGxhY2VtZW50 c1tpXS5mbGFncyB8PSBUVE1fUExfRkxBR19OT19FVklDVDsKIAotCXJldCA9IHR0bV9ib192YWxp ZGF0ZSgmYm8tPmJvLCAmYm8tPnBsYWNlbWVudCwgZmFsc2UsIGZhbHNlKTsKKwlyZXQgPSB0dG1f Ym9fdmFsaWRhdGUoJmJvLT5ibywgJmJvLT5wbGFjZW1lbnQsICZjdHgpOwogCWlmIChyZXQpIHsK IAkJRFJNX0VSUk9SKCJwdXNoaW5nIHRvIFZSQU0gZmFpbGVkXG4iKTsKIAkJcmV0dXJuIHJldDsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2Noc19tbS5jIGIvZHJpdmVycy9n cHUvZHJtL2JvY2hzL2JvY2hzX21tLmMKaW5kZXggYzRjYWRiNjM4NDYwLi44MjUwYjVlNjEyZDIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2Noc19tbS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9ib2Nocy9ib2Noc19tbS5jCkBAIC0yODMsNiArMjgzLDcgQEAgc3RhdGljIGlu bGluZSB1NjQgYm9jaHNfYm9fZ3B1X29mZnNldChzdHJ1Y3QgYm9jaHNfYm8gKmJvKQogCiBpbnQg Ym9jaHNfYm9fcGluKHN0cnVjdCBib2Noc19ibyAqYm8sIHUzMiBwbF9mbGFnLCB1NjQgKmdwdV9h ZGRyKQogeworCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7IGZhbHNlLCBmYWxzZSB9 OwogCWludCBpLCByZXQ7CiAKIAlpZiAoYm8tPnBpbl9jb3VudCkgewpAQCAtMjk1LDcgKzI5Niw3 IEBAIGludCBib2Noc19ib19waW4oc3RydWN0IGJvY2hzX2JvICpibywgdTMyIHBsX2ZsYWcsIHU2 NCAqZ3B1X2FkZHIpCiAJYm9jaHNfdHRtX3BsYWNlbWVudChibywgcGxfZmxhZyk7CiAJZm9yIChp ID0gMDsgaSA8IGJvLT5wbGFjZW1lbnQubnVtX3BsYWNlbWVudDsgaSsrKQogCQliby0+cGxhY2Vt ZW50c1tpXS5mbGFncyB8PSBUVE1fUExfRkxBR19OT19FVklDVDsKLQlyZXQgPSB0dG1fYm9fdmFs aWRhdGUoJmJvLT5ibywgJmJvLT5wbGFjZW1lbnQsIGZhbHNlLCBmYWxzZSk7CisJcmV0ID0gdHRt X2JvX3ZhbGlkYXRlKCZiby0+Ym8sICZiby0+cGxhY2VtZW50LCAmY3R4KTsKIAlpZiAocmV0KQog CQlyZXR1cm4gcmV0OwogCkBAIC0zMDcsNiArMzA4LDcgQEAgaW50IGJvY2hzX2JvX3BpbihzdHJ1 Y3QgYm9jaHNfYm8gKmJvLCB1MzIgcGxfZmxhZywgdTY0ICpncHVfYWRkcikKIAogaW50IGJvY2hz X2JvX3VucGluKHN0cnVjdCBib2Noc19ibyAqYm8pCiB7CisJc3RydWN0IHR0bV9vcGVyYXRpb25f Y3R4IGN0eCA9IHsgZmFsc2UsIGZhbHNlIH07CiAJaW50IGksIHJldDsKIAogCWlmICghYm8tPnBp bl9jb3VudCkgewpAQCAtMzIwLDcgKzMyMiw3IEBAIGludCBib2Noc19ib191bnBpbihzdHJ1Y3Qg Ym9jaHNfYm8gKmJvKQogCiAJZm9yIChpID0gMDsgaSA8IGJvLT5wbGFjZW1lbnQubnVtX3BsYWNl bWVudDsgaSsrKQogCQliby0+cGxhY2VtZW50c1tpXS5mbGFncyAmPSB+VFRNX1BMX0ZMQUdfTk9f RVZJQ1Q7Ci0JcmV0ID0gdHRtX2JvX3ZhbGlkYXRlKCZiby0+Ym8sICZiby0+cGxhY2VtZW50LCBm YWxzZSwgZmFsc2UpOworCXJldCA9IHR0bV9ib192YWxpZGF0ZSgmYm8tPmJvLCAmYm8tPnBsYWNl bWVudCwgJmN0eCk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNfdHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0vY2lycnVz L2NpcnJ1c190dG0uYwppbmRleCAxZmYxODM4YzBkNDQuLjJhNWI1NGQzYTAzYSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNfdHRtLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2NpcnJ1cy9jaXJydXNfdHRtLmMKQEAgLTM1OCw2ICszNTgsNyBAQCBzdGF0aWMgaW5saW5l IHU2NCBjaXJydXNfYm9fZ3B1X29mZnNldChzdHJ1Y3QgY2lycnVzX2JvICpibykKIAogaW50IGNp cnJ1c19ib19waW4oc3RydWN0IGNpcnJ1c19ibyAqYm8sIHUzMiBwbF9mbGFnLCB1NjQgKmdwdV9h ZGRyKQogeworCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7IGZhbHNlLCBmYWxzZSB9 OwogCWludCBpLCByZXQ7CiAKIAlpZiAoYm8tPnBpbl9jb3VudCkgewpAQCAtMzY5LDcgKzM3MCw3 IEBAIGludCBjaXJydXNfYm9fcGluKHN0cnVjdCBjaXJydXNfYm8gKmJvLCB1MzIgcGxfZmxhZywg dTY0ICpncHVfYWRkcikKIAljaXJydXNfdHRtX3BsYWNlbWVudChibywgcGxfZmxhZyk7CiAJZm9y IChpID0gMDsgaSA8IGJvLT5wbGFjZW1lbnQubnVtX3BsYWNlbWVudDsgaSsrKQogCQliby0+cGxh Y2VtZW50c1tpXS5mbGFncyB8PSBUVE1fUExfRkxBR19OT19FVklDVDsKLQlyZXQgPSB0dG1fYm9f dmFsaWRhdGUoJmJvLT5ibywgJmJvLT5wbGFjZW1lbnQsIGZhbHNlLCBmYWxzZSk7CisJcmV0ID0g dHRtX2JvX3ZhbGlkYXRlKCZiby0+Ym8sICZiby0+cGxhY2VtZW50LCAmY3R4KTsKIAlpZiAocmV0 KQogCQlyZXR1cm4gcmV0OwogCkBAIC0zODEsNiArMzgyLDcgQEAgaW50IGNpcnJ1c19ib19waW4o c3RydWN0IGNpcnJ1c19ibyAqYm8sIHUzMiBwbF9mbGFnLCB1NjQgKmdwdV9hZGRyKQogCiBpbnQg Y2lycnVzX2JvX3B1c2hfc3lzcmFtKHN0cnVjdCBjaXJydXNfYm8gKmJvKQogeworCXN0cnVjdCB0 dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7IGZhbHNlLCBmYWxzZSB9OwogCWludCBpLCByZXQ7CiAJ aWYgKCFiby0+cGluX2NvdW50KSB7CiAJCURSTV9FUlJPUigidW5waW4gYmFkICVwXG4iLCBibyk7 CkBAIC0zOTcsNyArMzk5LDcgQEAgaW50IGNpcnJ1c19ib19wdXNoX3N5c3JhbShzdHJ1Y3QgY2ly cnVzX2JvICpibykKIAlmb3IgKGkgPSAwOyBpIDwgYm8tPnBsYWNlbWVudC5udW1fcGxhY2VtZW50 IDsgaSsrKQogCQliby0+cGxhY2VtZW50c1tpXS5mbGFncyB8PSBUVE1fUExfRkxBR19OT19FVklD VDsKIAotCXJldCA9IHR0bV9ib192YWxpZGF0ZSgmYm8tPmJvLCAmYm8tPnBsYWNlbWVudCwgZmFs c2UsIGZhbHNlKTsKKwlyZXQgPSB0dG1fYm9fdmFsaWRhdGUoJmJvLT5ibywgJmJvLT5wbGFjZW1l bnQsICZjdHgpOwogCWlmIChyZXQpIHsKIAkJRFJNX0VSUk9SKCJwdXNoaW5nIHRvIFZSQU0gZmFp bGVkXG4iKTsKIAkJcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9oaXNp bGljb24vaGlibWMvaGlibWNfdHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1j L2hpYm1jX3R0bS5jCmluZGV4IDM1MTgxNjdhN2RjNC4uYWI0ZWU1OTUzNjE1IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX3R0bS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfdHRtLmMKQEAgLTM0NCw2ICszNDQsNyBA QCBpbnQgaGlibWNfYm9fY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBzaXplLCBp bnQgYWxpZ24sCiAKIGludCBoaWJtY19ib19waW4oc3RydWN0IGhpYm1jX2JvICpibywgdTMyIHBs X2ZsYWcsIHU2NCAqZ3B1X2FkZHIpCiB7CisJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0eCA9 IHsgZmFsc2UsIGZhbHNlIH07CiAJaW50IGksIHJldDsKIAogCWlmIChiby0+cGluX2NvdW50KSB7 CkBAIC0zNTYsNyArMzU3LDcgQEAgaW50IGhpYm1jX2JvX3BpbihzdHJ1Y3QgaGlibWNfYm8gKmJv LCB1MzIgcGxfZmxhZywgdTY0ICpncHVfYWRkcikKIAloaWJtY190dG1fcGxhY2VtZW50KGJvLCBw bF9mbGFnKTsKIAlmb3IgKGkgPSAwOyBpIDwgYm8tPnBsYWNlbWVudC5udW1fcGxhY2VtZW50OyBp KyspCiAJCWJvLT5wbGFjZW1lbnRzW2ldLmZsYWdzIHw9IFRUTV9QTF9GTEFHX05PX0VWSUNUOwot CXJldCA9IHR0bV9ib192YWxpZGF0ZSgmYm8tPmJvLCAmYm8tPnBsYWNlbWVudCwgZmFsc2UsIGZh bHNlKTsKKwlyZXQgPSB0dG1fYm9fdmFsaWRhdGUoJmJvLT5ibywgJmJvLT5wbGFjZW1lbnQsICZj dHgpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKQEAgLTM2OCw2ICszNjksNyBAQCBpbnQg aGlibWNfYm9fcGluKHN0cnVjdCBoaWJtY19ibyAqYm8sIHUzMiBwbF9mbGFnLCB1NjQgKmdwdV9h ZGRyKQogCiBpbnQgaGlibWNfYm9fdW5waW4oc3RydWN0IGhpYm1jX2JvICpibykKIHsKKwlzdHJ1 Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0geyBmYWxzZSwgZmFsc2UgfTsKIAlpbnQgaSwgcmV0 OwogCiAJaWYgKCFiby0+cGluX2NvdW50KSB7CkBAIC0zODAsNyArMzgyLDcgQEAgaW50IGhpYm1j X2JvX3VucGluKHN0cnVjdCBoaWJtY19ibyAqYm8pCiAKIAlmb3IgKGkgPSAwOyBpIDwgYm8tPnBs YWNlbWVudC5udW1fcGxhY2VtZW50IDsgaSsrKQogCQliby0+cGxhY2VtZW50c1tpXS5mbGFncyAm PSB+VFRNX1BMX0ZMQUdfTk9fRVZJQ1Q7Ci0JcmV0ID0gdHRtX2JvX3ZhbGlkYXRlKCZiby0+Ym8s ICZiby0+cGxhY2VtZW50LCBmYWxzZSwgZmFsc2UpOworCXJldCA9IHR0bV9ib192YWxpZGF0ZSgm Ym8tPmJvLCAmYm8tPnBsYWNlbWVudCwgJmN0eCk7CiAJaWYgKHJldCkgewogCQlEUk1fRVJST1Io InZhbGlkYXRlIGZhaWxlZCBmb3IgdW5waW46ICVkXG4iLCByZXQpOwogCQlyZXR1cm4gcmV0Owpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF90dG0uYyBiL2RyaXZl cnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfdHRtLmMKaW5kZXggM2U3ZTFjZDMxMzk1Li5mMDNk YTYzYWJjN2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfdHRt LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF90dG0uYwpAQCAtMzU0LDYg KzM1NCw3IEBAIHN0YXRpYyBpbmxpbmUgdTY0IG1nYWcyMDBfYm9fZ3B1X29mZnNldChzdHJ1Y3Qg bWdhZzIwMF9ibyAqYm8pCiAKIGludCBtZ2FnMjAwX2JvX3BpbihzdHJ1Y3QgbWdhZzIwMF9ibyAq Ym8sIHUzMiBwbF9mbGFnLCB1NjQgKmdwdV9hZGRyKQogeworCXN0cnVjdCB0dG1fb3BlcmF0aW9u X2N0eCBjdHggPSB7IGZhbHNlLCBmYWxzZSB9OwogCWludCBpLCByZXQ7CiAKIAlpZiAoYm8tPnBp bl9jb3VudCkgewpAQCAtMzY2LDcgKzM2Nyw3IEBAIGludCBtZ2FnMjAwX2JvX3BpbihzdHJ1Y3Qg bWdhZzIwMF9ibyAqYm8sIHUzMiBwbF9mbGFnLCB1NjQgKmdwdV9hZGRyKQogCW1nYWcyMDBfdHRt X3BsYWNlbWVudChibywgcGxfZmxhZyk7CiAJZm9yIChpID0gMDsgaSA8IGJvLT5wbGFjZW1lbnQu bnVtX3BsYWNlbWVudDsgaSsrKQogCQliby0+cGxhY2VtZW50c1tpXS5mbGFncyB8PSBUVE1fUExf RkxBR19OT19FVklDVDsKLQlyZXQgPSB0dG1fYm9fdmFsaWRhdGUoJmJvLT5ibywgJmJvLT5wbGFj ZW1lbnQsIGZhbHNlLCBmYWxzZSk7CisJcmV0ID0gdHRtX2JvX3ZhbGlkYXRlKCZiby0+Ym8sICZi by0+cGxhY2VtZW50LCAmY3R4KTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCkBAIC0zNzgs NiArMzc5LDcgQEAgaW50IG1nYWcyMDBfYm9fcGluKHN0cnVjdCBtZ2FnMjAwX2JvICpibywgdTMy IHBsX2ZsYWcsIHU2NCAqZ3B1X2FkZHIpCiAKIGludCBtZ2FnMjAwX2JvX3VucGluKHN0cnVjdCBt Z2FnMjAwX2JvICpibykKIHsKKwlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0geyBmYWxz ZSwgZmFsc2UgfTsKIAlpbnQgaTsKIAlpZiAoIWJvLT5waW5fY291bnQpIHsKIAkJRFJNX0VSUk9S KCJ1bnBpbiBiYWQgJXBcbiIsIGJvKTsKQEAgLTM4OSwxMSArMzkxLDEyIEBAIGludCBtZ2FnMjAw X2JvX3VucGluKHN0cnVjdCBtZ2FnMjAwX2JvICpibykKIAogCWZvciAoaSA9IDA7IGkgPCBiby0+ cGxhY2VtZW50Lm51bV9wbGFjZW1lbnQgOyBpKyspCiAJCWJvLT5wbGFjZW1lbnRzW2ldLmZsYWdz ICY9IH5UVE1fUExfRkxBR19OT19FVklDVDsKLQlyZXR1cm4gdHRtX2JvX3ZhbGlkYXRlKCZiby0+ Ym8sICZiby0+cGxhY2VtZW50LCBmYWxzZSwgZmFsc2UpOworCXJldHVybiB0dG1fYm9fdmFsaWRh dGUoJmJvLT5ibywgJmJvLT5wbGFjZW1lbnQsICZjdHgpOwogfQogCiBpbnQgbWdhZzIwMF9ib19w dXNoX3N5c3JhbShzdHJ1Y3QgbWdhZzIwMF9ibyAqYm8pCiB7CisJc3RydWN0IHR0bV9vcGVyYXRp b25fY3R4IGN0eCA9IHsgZmFsc2UsIGZhbHNlIH07CiAJaW50IGksIHJldDsKIAlpZiAoIWJvLT5w aW5fY291bnQpIHsKIAkJRFJNX0VSUk9SKCJ1bnBpbiBiYWQgJXBcbiIsIGJvKTsKQEAgLTQxMCw3 ICs0MTMsNyBAQCBpbnQgbWdhZzIwMF9ib19wdXNoX3N5c3JhbShzdHJ1Y3QgbWdhZzIwMF9ibyAq Ym8pCiAJZm9yIChpID0gMDsgaSA8IGJvLT5wbGFjZW1lbnQubnVtX3BsYWNlbWVudCA7IGkrKykK IAkJYm8tPnBsYWNlbWVudHNbaV0uZmxhZ3MgfD0gVFRNX1BMX0ZMQUdfTk9fRVZJQ1Q7CiAKLQly ZXQgPSB0dG1fYm9fdmFsaWRhdGUoJmJvLT5ibywgJmJvLT5wbGFjZW1lbnQsIGZhbHNlLCBmYWxz ZSk7CisJcmV0ID0gdHRtX2JvX3ZhbGlkYXRlKCZiby0+Ym8sICZiby0+cGxhY2VtZW50LCAmY3R4 KTsKIAlpZiAocmV0KSB7CiAJCURSTV9FUlJPUigicHVzaGluZyB0byBWUkFNIGZhaWxlZFxuIik7 CiAJCXJldHVybiByZXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2 ZWF1X2JvLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMKaW5kZXggZTQy N2Y4MDM0NGM0Li4xNmNhY2EyNjQ3YjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2 ZWF1L25vdXZlYXVfYm8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Jv LmMKQEAgLTQ4NiwxMCArNDg2LDEwIEBAIGludAogbm91dmVhdV9ib192YWxpZGF0ZShzdHJ1Y3Qg bm91dmVhdV9ibyAqbnZibywgYm9vbCBpbnRlcnJ1cHRpYmxlLAogCQkgICAgYm9vbCBub193YWl0 X2dwdSkKIHsKKwlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0geyBpbnRlcnJ1cHRpYmxl LCBub193YWl0X2dwdSB9OwogCWludCByZXQ7CiAKLQlyZXQgPSB0dG1fYm9fdmFsaWRhdGUoJm52 Ym8tPmJvLCAmbnZiby0+cGxhY2VtZW50LAotCQkJICAgICAgaW50ZXJydXB0aWJsZSwgbm9fd2Fp dF9ncHUpOworCXJldCA9IHR0bV9ib192YWxpZGF0ZSgmbnZiby0+Ym8sICZudmJvLT5wbGFjZW1l bnQsICZjdHgpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9xeGwvcXhsX2lvY3RsLmMgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9pb2N0 bC5jCmluZGV4IDMxZWZmZWQ0YTNjOC4uZThjMGIxMDM3MjMwIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vcXhsL3F4bF9pb2N0bC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2lv Y3RsLmMKQEAgLTMwOSw2ICszMDksNyBAQCBzdGF0aWMgaW50IHF4bF91cGRhdGVfYXJlYV9pb2N0 bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCWludCByZXQ7CiAJc3RydWN0 IGRybV9nZW1fb2JqZWN0ICpnb2JqID0gTlVMTDsKIAlzdHJ1Y3QgcXhsX2JvICpxb2JqID0gTlVM TDsKKwlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0geyB0cnVlLCBmYWxzZSB9OwogCiAJ aWYgKHVwZGF0ZV9hcmVhLT5sZWZ0ID49IHVwZGF0ZV9hcmVhLT5yaWdodCB8fAogCSAgICB1cGRh dGVfYXJlYS0+dG9wID49IHVwZGF0ZV9hcmVhLT5ib3R0b20pCkBAIC0zMjYsOCArMzI3LDcgQEAg c3RhdGljIGludCBxeGxfdXBkYXRlX2FyZWFfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg dm9pZCAqZGF0YSwKIAogCWlmICghcW9iai0+cGluX2NvdW50KSB7CiAJCXF4bF90dG1fcGxhY2Vt ZW50X2Zyb21fZG9tYWluKHFvYmosIHFvYmotPnR5cGUsIGZhbHNlKTsKLQkJcmV0ID0gdHRtX2Jv X3ZhbGlkYXRlKCZxb2JqLT50Ym8sICZxb2JqLT5wbGFjZW1lbnQsCi0JCQkJICAgICAgdHJ1ZSwg ZmFsc2UpOworCQlyZXQgPSB0dG1fYm9fdmFsaWRhdGUoJnFvYmotPnRibywgJnFvYmotPnBsYWNl bWVudCwgJmN0eCk7CiAJCWlmICh1bmxpa2VseShyZXQpKQogCQkJZ290byBvdXQ7CiAJfQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfb2JqZWN0LmMgYi9kcml2ZXJzL2dwdS9k cm0vcXhsL3F4bF9vYmplY3QuYwppbmRleCAwYTY3ZGRmMTljM2QuLmY2YjgwZmU0N2QxZiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfb2JqZWN0LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL3F4bC9xeGxfb2JqZWN0LmMKQEAgLTIyMyw2ICsyMjMsNyBAQCBzdHJ1Y3QgcXhsX2Jv ICpxeGxfYm9fcmVmKHN0cnVjdCBxeGxfYm8gKmJvKQogCiBzdGF0aWMgaW50IF9fcXhsX2JvX3Bp bihzdHJ1Y3QgcXhsX2JvICpibywgdTMyIGRvbWFpbiwgdTY0ICpncHVfYWRkcikKIHsKKwlzdHJ1 Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0geyBmYWxzZSwgZmFsc2UgfTsKIAlzdHJ1Y3QgZHJt X2RldmljZSAqZGRldiA9IGJvLT5nZW1fYmFzZS5kZXY7CiAJaW50IHI7CiAKQEAgLTIzMyw3ICsy MzQsNyBAQCBzdGF0aWMgaW50IF9fcXhsX2JvX3BpbihzdHJ1Y3QgcXhsX2JvICpibywgdTMyIGRv bWFpbiwgdTY0ICpncHVfYWRkcikKIAkJcmV0dXJuIDA7CiAJfQogCXF4bF90dG1fcGxhY2VtZW50 X2Zyb21fZG9tYWluKGJvLCBkb21haW4sIHRydWUpOwotCXIgPSB0dG1fYm9fdmFsaWRhdGUoJmJv LT50Ym8sICZiby0+cGxhY2VtZW50LCBmYWxzZSwgZmFsc2UpOworCXIgPSB0dG1fYm9fdmFsaWRh dGUoJmJvLT50Ym8sICZiby0+cGxhY2VtZW50LCAmY3R4KTsKIAlpZiAobGlrZWx5KHIgPT0gMCkp IHsKIAkJYm8tPnBpbl9jb3VudCA9IDE7CiAJCWlmIChncHVfYWRkciAhPSBOVUxMKQpAQCAtMjQ2 LDYgKzI0Nyw3IEBAIHN0YXRpYyBpbnQgX19xeGxfYm9fcGluKHN0cnVjdCBxeGxfYm8gKmJvLCB1 MzIgZG9tYWluLCB1NjQgKmdwdV9hZGRyKQogCiBzdGF0aWMgaW50IF9fcXhsX2JvX3VucGluKHN0 cnVjdCBxeGxfYm8gKmJvKQogeworCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7IGZh bHNlLCBmYWxzZSB9OwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZGV2ID0gYm8tPmdlbV9iYXNlLmRl djsKIAlpbnQgciwgaTsKIApAQCAtMjU4LDcgKzI2MCw3IEBAIHN0YXRpYyBpbnQgX19xeGxfYm9f dW5waW4oc3RydWN0IHF4bF9ibyAqYm8pCiAJCXJldHVybiAwOwogCWZvciAoaSA9IDA7IGkgPCBi by0+cGxhY2VtZW50Lm51bV9wbGFjZW1lbnQ7IGkrKykKIAkJYm8tPnBsYWNlbWVudHNbaV0uZmxh Z3MgJj0gflRUTV9QTF9GTEFHX05PX0VWSUNUOwotCXIgPSB0dG1fYm9fdmFsaWRhdGUoJmJvLT50 Ym8sICZiby0+cGxhY2VtZW50LCBmYWxzZSwgZmFsc2UpOworCXIgPSB0dG1fYm9fdmFsaWRhdGUo JmJvLT50Ym8sICZiby0+cGxhY2VtZW50LCAmY3R4KTsKIAlpZiAodW5saWtlbHkociAhPSAwKSkK IAkJZGV2X2VycihkZGV2LT5kZXYsICIlcCB2YWxpZGF0ZSBmYWlsZWQgZm9yIHVucGluXG4iLCBi byk7CiAJcmV0dXJuIHI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9yZWxl YXNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9yZWxlYXNlLmMKaW5kZXggYTVhY2Q3MjNi ZTQxLi4xN2M1NTY1NzBiZTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX3Jl bGVhc2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9yZWxlYXNlLmMKQEAgLTIzMSwx MiArMjMxLDEyIEBAIGludCBxeGxfcmVsZWFzZV9saXN0X2FkZChzdHJ1Y3QgcXhsX3JlbGVhc2Ug KnJlbGVhc2UsIHN0cnVjdCBxeGxfYm8gKmJvKQogCiBzdGF0aWMgaW50IHF4bF9yZWxlYXNlX3Zh bGlkYXRlX2JvKHN0cnVjdCBxeGxfYm8gKmJvKQogeworCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0 eCBjdHggPSB7IHRydWUsIGZhbHNlIH07CiAJaW50IHJldDsKIAogCWlmICghYm8tPnBpbl9jb3Vu dCkgewogCQlxeGxfdHRtX3BsYWNlbWVudF9mcm9tX2RvbWFpbihibywgYm8tPnR5cGUsIGZhbHNl KTsKLQkJcmV0ID0gdHRtX2JvX3ZhbGlkYXRlKCZiby0+dGJvLCAmYm8tPnBsYWNlbWVudCwKLQkJ CQkgICAgICB0cnVlLCBmYWxzZSk7CisJCXJldCA9IHR0bV9ib192YWxpZGF0ZSgmYm8tPnRibywg JmJvLT5wbGFjZW1lbnQsICZjdHgpOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKIAl9CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9nZW0uYyBiL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX2dlbS5jCmluZGV4IDMzODY0NTJiZDJmMC4uMzFkM2NiMzhk ZmUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9nZW0uYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9nZW0uYwpAQCAtMjg1LDYgKzI4NSw3IEBA IGludCByYWRlb25fZ2VtX2NyZWF0ZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lk ICpkYXRhLAogaW50IHJhZGVvbl9nZW1fdXNlcnB0cl9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCB2b2lkICpkYXRhLAogCQkJICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHApCiB7CisJc3Ry dWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0eCA9IHsgdHJ1ZSwgZmFsc2UgfTsKIAlzdHJ1Y3QgcmFk ZW9uX2RldmljZSAqcmRldiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGRybV9yYWRlb25f Z2VtX3VzZXJwdHIgKmFyZ3MgPSBkYXRhOwogCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ29iajsK QEAgLTM0Myw3ICszNDQsNyBAQCBpbnQgcmFkZW9uX2dlbV91c2VycHRyX2lvY3RsKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCX0KIAogCQlyYWRlb25fdHRtX3BsYWNlbWVu dF9mcm9tX2RvbWFpbihibywgUkFERU9OX0dFTV9ET01BSU5fR1RUKTsKLQkJciA9IHR0bV9ib192 YWxpZGF0ZSgmYm8tPnRibywgJmJvLT5wbGFjZW1lbnQsIHRydWUsIGZhbHNlKTsKKwkJciA9IHR0 bV9ib192YWxpZGF0ZSgmYm8tPnRibywgJmJvLT5wbGFjZW1lbnQsICZjdHgpOwogCQlyYWRlb25f Ym9fdW5yZXNlcnZlKGJvKTsKIAkJdXBfcmVhZCgmY3VycmVudC0+bW0tPm1tYXBfc2VtKTsKIAkJ aWYgKHIpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9tbi5jIGIv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fbW4uYwppbmRleCAxZDYyMjg4YjdlZTMuLmFi ZDI0OTc1YzliMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fbW4u YworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9tbi5jCkBAIC0xMjQsNiArMTI0 LDcgQEAgc3RhdGljIHZvaWQgcmFkZW9uX21uX2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnQoc3RydWN0 IG1tdV9ub3RpZmllciAqbW4sCiAJCQkJCSAgICAgdW5zaWduZWQgbG9uZyBlbmQpCiB7CiAJc3Ry dWN0IHJhZGVvbl9tbiAqcm1uID0gY29udGFpbmVyX29mKG1uLCBzdHJ1Y3QgcmFkZW9uX21uLCBt bik7CisJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0eCA9IHsgZmFsc2UsIGZhbHNlIH07CiAJ c3RydWN0IGludGVydmFsX3RyZWVfbm9kZSAqaXQ7CiAKIAkvKiBub3RpZmljYXRpb24gaXMgZXhj bHVzaXZlLCBidXQgaW50ZXJ2YWwgaXMgaW5jbHVzaXZlICovCkBAIC0xNTcsNyArMTU4LDcgQEAg c3RhdGljIHZvaWQgcmFkZW9uX21uX2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnQoc3RydWN0IG1tdV9u b3RpZmllciAqbW4sCiAJCQkJRFJNX0VSUk9SKCIoJWxkKSBmYWlsZWQgdG8gd2FpdCBmb3IgdXNl ciBib1xuIiwgcik7CiAKIAkJCXJhZGVvbl90dG1fcGxhY2VtZW50X2Zyb21fZG9tYWluKGJvLCBS QURFT05fR0VNX0RPTUFJTl9DUFUpOwotCQkJciA9IHR0bV9ib192YWxpZGF0ZSgmYm8tPnRibywg JmJvLT5wbGFjZW1lbnQsIGZhbHNlLCBmYWxzZSk7CisJCQlyID0gdHRtX2JvX3ZhbGlkYXRlKCZi by0+dGJvLCAmYm8tPnBsYWNlbWVudCwgJmN0eCk7CiAJCQlpZiAocikKIAkJCQlEUk1fRVJST1Io IiglbGQpIGZhaWxlZCB0byB2YWxpZGF0ZSB1c2VyIGJvXG4iLCByKTsKIApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fb2JqZWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3JhZGVvbl9vYmplY3QuYwppbmRleCAwOTM1OTQ5NzYxMjYuLjE1NDA0YWY5ZDc0MCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fb2JqZWN0LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fb2JqZWN0LmMKQEAgLTMyOSw2ICszMjksNyBA QCB2b2lkIHJhZGVvbl9ib191bnJlZihzdHJ1Y3QgcmFkZW9uX2JvICoqYm8pCiBpbnQgcmFkZW9u X2JvX3Bpbl9yZXN0cmljdGVkKHN0cnVjdCByYWRlb25fYm8gKmJvLCB1MzIgZG9tYWluLCB1NjQg bWF4X29mZnNldCwKIAkJCSAgICAgdTY0ICpncHVfYWRkcikKIHsKKwlzdHJ1Y3QgdHRtX29wZXJh dGlvbl9jdHggY3R4ID0geyBmYWxzZSwgZmFsc2UgfTsKIAlpbnQgciwgaTsKIAogCWlmIChyYWRl b25fdHRtX3R0X2hhc191c2VycHRyKGJvLT50Ym8udHRtKSkKQEAgLTM3MSw3ICszNzIsNyBAQCBp bnQgcmFkZW9uX2JvX3Bpbl9yZXN0cmljdGVkKHN0cnVjdCByYWRlb25fYm8gKmJvLCB1MzIgZG9t YWluLCB1NjQgbWF4X29mZnNldCwKIAkJYm8tPnBsYWNlbWVudHNbaV0uZmxhZ3MgfD0gVFRNX1BM X0ZMQUdfTk9fRVZJQ1Q7CiAJfQogCi0JciA9IHR0bV9ib192YWxpZGF0ZSgmYm8tPnRibywgJmJv LT5wbGFjZW1lbnQsIGZhbHNlLCBmYWxzZSk7CisJciA9IHR0bV9ib192YWxpZGF0ZSgmYm8tPnRi bywgJmJvLT5wbGFjZW1lbnQsICZjdHgpOwogCWlmIChsaWtlbHkociA9PSAwKSkgewogCQliby0+ cGluX2NvdW50ID0gMTsKIAkJaWYgKGdwdV9hZGRyICE9IE5VTEwpCkBAIC0zOTMsNiArMzk0LDcg QEAgaW50IHJhZGVvbl9ib19waW4oc3RydWN0IHJhZGVvbl9ibyAqYm8sIHUzMiBkb21haW4sIHU2 NCAqZ3B1X2FkZHIpCiAKIGludCByYWRlb25fYm9fdW5waW4oc3RydWN0IHJhZGVvbl9ibyAqYm8p CiB7CisJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0eCA9IHsgZmFsc2UsIGZhbHNlIH07CiAJ aW50IHIsIGk7CiAKIAlpZiAoIWJvLT5waW5fY291bnQpIHsKQEAgLTQwNiw3ICs0MDgsNyBAQCBp bnQgcmFkZW9uX2JvX3VucGluKHN0cnVjdCByYWRlb25fYm8gKmJvKQogCQliby0+cGxhY2VtZW50 c1tpXS5scGZuID0gMDsKIAkJYm8tPnBsYWNlbWVudHNbaV0uZmxhZ3MgJj0gflRUTV9QTF9GTEFH X05PX0VWSUNUOwogCX0KLQlyID0gdHRtX2JvX3ZhbGlkYXRlKCZiby0+dGJvLCAmYm8tPnBsYWNl bWVudCwgZmFsc2UsIGZhbHNlKTsKKwlyID0gdHRtX2JvX3ZhbGlkYXRlKCZiby0+dGJvLCAmYm8t PnBsYWNlbWVudCwgJmN0eCk7CiAJaWYgKGxpa2VseShyID09IDApKSB7CiAJCWlmIChiby0+dGJv Lm1lbS5tZW1fdHlwZSA9PSBUVE1fUExfVlJBTSkKIAkJCWJvLT5yZGV2LT52cmFtX3Bpbl9zaXpl IC09IHJhZGVvbl9ib19zaXplKGJvKTsKQEAgLTUzMSw2ICs1MzMsNyBAQCBpbnQgcmFkZW9uX2Jv X2xpc3RfdmFsaWRhdGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJCQkgICAgc3RydWN0 IHd3X2FjcXVpcmVfY3R4ICp0aWNrZXQsCiAJCQkgICAgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCwg aW50IHJpbmcpCiB7CisJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0eCA9IHsgdHJ1ZSwgZmFs c2UgfTsKIAlzdHJ1Y3QgcmFkZW9uX2JvX2xpc3QgKmxvYmo7CiAJc3RydWN0IGxpc3RfaGVhZCBk dXBsaWNhdGVzOwogCWludCByOwpAQCAtNTcyLDcgKzU3NSw3IEBAIGludCByYWRlb25fYm9fbGlz dF92YWxpZGF0ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAkJCQlyYWRlb25fdXZkX2Zv cmNlX2ludG9fdXZkX3NlZ21lbnQoYm8sIGFsbG93ZWQpOwogCiAJCQlpbml0aWFsX2J5dGVzX21v dmVkID0gYXRvbWljNjRfcmVhZCgmcmRldi0+bnVtX2J5dGVzX21vdmVkKTsKLQkJCXIgPSB0dG1f Ym9fdmFsaWRhdGUoJmJvLT50Ym8sICZiby0+cGxhY2VtZW50LCB0cnVlLCBmYWxzZSk7CisJCQly ID0gdHRtX2JvX3ZhbGlkYXRlKCZiby0+dGJvLCAmYm8tPnBsYWNlbWVudCwgJmN0eCk7CiAJCQli eXRlc19tb3ZlZCArPSBhdG9taWM2NF9yZWFkKCZyZGV2LT5udW1fYnl0ZXNfbW92ZWQpIC0KIAkJ CQkgICAgICAgaW5pdGlhbF9ieXRlc19tb3ZlZDsKIApAQCAtNzkyLDYgKzc5NSw3IEBAIHZvaWQg cmFkZW9uX2JvX21vdmVfbm90aWZ5KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAKIGlu dCByYWRlb25fYm9fZmF1bHRfcmVzZXJ2ZV9ub3RpZnkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0 ICpibykKIHsKKwlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0geyBmYWxzZSwgZmFsc2Ug fTsKIAlzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldjsKIAlzdHJ1Y3QgcmFkZW9uX2JvICpyYm87 CiAJdW5zaWduZWQgbG9uZyBvZmZzZXQsIHNpemUsIGxwZm47CkBAIC04MjMsMTAgKzgyNywxMCBA QCBpbnQgcmFkZW9uX2JvX2ZhdWx0X3Jlc2VydmVfbm90aWZ5KHN0cnVjdCB0dG1fYnVmZmVyX29i amVjdCAqYm8pCiAJCSAgICAoIXJiby0+cGxhY2VtZW50c1tpXS5scGZuIHx8IHJiby0+cGxhY2Vt ZW50c1tpXS5scGZuID4gbHBmbikpCiAJCQlyYm8tPnBsYWNlbWVudHNbaV0ubHBmbiA9IGxwZm47 CiAJfQotCXIgPSB0dG1fYm9fdmFsaWRhdGUoYm8sICZyYm8tPnBsYWNlbWVudCwgZmFsc2UsIGZh bHNlKTsKKwlyID0gdHRtX2JvX3ZhbGlkYXRlKGJvLCAmcmJvLT5wbGFjZW1lbnQsICZjdHgpOwog CWlmICh1bmxpa2VseShyID09IC1FTk9NRU0pKSB7CiAJCXJhZGVvbl90dG1fcGxhY2VtZW50X2Zy b21fZG9tYWluKHJibywgUkFERU9OX0dFTV9ET01BSU5fR1RUKTsKLQkJcmV0dXJuIHR0bV9ib192 YWxpZGF0ZShibywgJnJiby0+cGxhY2VtZW50LCBmYWxzZSwgZmFsc2UpOworCQlyZXR1cm4gdHRt X2JvX3ZhbGlkYXRlKGJvLCAmcmJvLT5wbGFjZW1lbnQsICZjdHgpOwogCX0gZWxzZSBpZiAodW5s aWtlbHkociAhPSAwKSkgewogCQlyZXR1cm4gcjsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl92bS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25f dm0uYwppbmRleCBlNWMwZTYzNWUzNzEuLjdmMWE5Yzc4N2JkMSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdm0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbl92bS5jCkBAIC0zODcsNiArMzg3LDcgQEAgc3RhdGljIHZvaWQgcmFkZW9uX3ZtX3Nl dF9wYWdlcyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIHN0YXRpYyBpbnQgcmFkZW9uX3Zt X2NsZWFyX2JvKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogCQkJICAgICAgc3RydWN0IHJh ZGVvbl9ibyAqYm8pCiB7CisJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0eCA9IHsgdHJ1ZSwg ZmFsc2UgfTsKIAlzdHJ1Y3QgcmFkZW9uX2liIGliOwogCXVuc2lnbmVkIGVudHJpZXM7CiAJdWlu dDY0X3QgYWRkcjsKQEAgLTM5Niw3ICszOTcsNyBAQCBzdGF0aWMgaW50IHJhZGVvbl92bV9jbGVh cl9ibyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAlpZiAocikKIAkJcmV0dXJuIHI7CiAK LQlyID0gdHRtX2JvX3ZhbGlkYXRlKCZiby0+dGJvLCAmYm8tPnBsYWNlbWVudCwgdHJ1ZSwgZmFs c2UpOworCXIgPSB0dG1fYm9fdmFsaWRhdGUoJmJvLT50Ym8sICZiby0+cGxhY2VtZW50LCAmY3R4 KTsKIAlpZiAocikKIAkJZ290byBlcnJvcl91bnJlc2VydmU7CiAKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS90dG0vdHRtX2JvLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCmlu ZGV4IDc3YTBmZDIyZTViYS4uNTM0N2MzZjNlMmY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vdHRtL3R0bV9iby5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKQEAgLTEw OTEsOSArMTA5MSw4IEBAIGJvb2wgdHRtX2JvX21lbV9jb21wYXQoc3RydWN0IHR0bV9wbGFjZW1l bnQgKnBsYWNlbWVudCwKIEVYUE9SVF9TWU1CT0wodHRtX2JvX21lbV9jb21wYXQpOwogCiBpbnQg dHRtX2JvX3ZhbGlkYXRlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCi0JCQlzdHJ1Y3Qg dHRtX3BsYWNlbWVudCAqcGxhY2VtZW50LAotCQkJYm9vbCBpbnRlcnJ1cHRpYmxlLAotCQkJYm9v bCBub193YWl0X2dwdSkKKwkJICAgIHN0cnVjdCB0dG1fcGxhY2VtZW50ICpwbGFjZW1lbnQsCisJ CSAgICBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkKIHsKIAlpbnQgcmV0OwogCXVpbnQz Ml90IG5ld19mbGFnczsKQEAgLTExMDMsOCArMTEwMiw4IEBAIGludCB0dG1fYm9fdmFsaWRhdGUo c3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAkgKiBDaGVjayB3aGV0aGVyIHdlIG5lZWQg dG8gbW92ZSBidWZmZXIuCiAJICovCiAJaWYgKCF0dG1fYm9fbWVtX2NvbXBhdChwbGFjZW1lbnQs ICZiby0+bWVtLCAmbmV3X2ZsYWdzKSkgewotCQlyZXQgPSB0dG1fYm9fbW92ZV9idWZmZXIoYm8s IHBsYWNlbWVudCwgaW50ZXJydXB0aWJsZSwKLQkJCQkJIG5vX3dhaXRfZ3B1KTsKKwkJcmV0ID0g dHRtX2JvX21vdmVfYnVmZmVyKGJvLCBwbGFjZW1lbnQsIGN0eC0+aW50ZXJydXB0aWJsZSwKKwkJ CQkJIGN0eC0+bm9fd2FpdF9ncHUpOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKIAl9IGVs c2UgewpAQCAtMTIxOSw4ICsxMjE4LDExIEBAIGludCB0dG1fYm9faW5pdF9yZXNlcnZlZChzdHJ1 Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKIAkJV0FSTl9PTighbG9ja2VkKTsKIAl9CiAKLQlpZiAo bGlrZWx5KCFyZXQpKQotCQlyZXQgPSB0dG1fYm9fdmFsaWRhdGUoYm8sIHBsYWNlbWVudCwgaW50 ZXJydXB0aWJsZSwgZmFsc2UpOworCWlmIChsaWtlbHkoIXJldCkpIHsKKwkJc3RydWN0IHR0bV9v cGVyYXRpb25fY3R4IGN0eCA9IHsgaW50ZXJydXB0aWJsZSwgZmFsc2UgfTsKKworCQlyZXQgPSB0 dG1fYm9fdmFsaWRhdGUoYm8sIHBsYWNlbWVudCwgJmN0eCk7CisJfQogCiAJaWYgKHVubGlrZWx5 KHJldCkpIHsKIAkJaWYgKCFyZXN2KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZpcnRp by92aXJ0Z3B1X2lvY3RsLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfaW9jdGwu YwppbmRleCAwNTI4ZWRiNGEyYmYuLjExYTRkYjUxODYzOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL3ZpcnRpby92aXJ0Z3B1X2lvY3RsLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRp by92aXJ0Z3B1X2lvY3RsLmMKQEAgLTU2LDYgKzU2LDcgQEAgc3RhdGljIGludCB2aXJ0aW9fZ3B1 X21hcF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogc3RhdGljIGlu dCB2aXJ0aW9fZ3B1X29iamVjdF9saXN0X3ZhbGlkYXRlKHN0cnVjdCB3d19hY3F1aXJlX2N0eCAq dGlja2V0LAogCQkJCQkgICBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQogeworCXN0cnVjdCB0dG1f b3BlcmF0aW9uX2N0eCBjdHggPSB7IGZhbHNlLCBmYWxzZSB9OwogCXN0cnVjdCB0dG1fdmFsaWRh dGVfYnVmZmVyICpidWY7CiAJc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibzsKIAlzdHJ1Y3Qg dmlydGlvX2dwdV9vYmplY3QgKnFvYmo7CkBAIC02OCw3ICs2OSw3IEBAIHN0YXRpYyBpbnQgdmly dGlvX2dwdV9vYmplY3RfbGlzdF92YWxpZGF0ZShzdHJ1Y3Qgd3dfYWNxdWlyZV9jdHggKnRpY2tl dCwKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGJ1ZiwgaGVhZCwgaGVhZCkgewogCQlibyA9IGJ1Zi0+ Ym87CiAJCXFvYmogPSBjb250YWluZXJfb2YoYm8sIHN0cnVjdCB2aXJ0aW9fZ3B1X29iamVjdCwg dGJvKTsKLQkJcmV0ID0gdHRtX2JvX3ZhbGlkYXRlKGJvLCAmcW9iai0+cGxhY2VtZW50LCBmYWxz ZSwgZmFsc2UpOworCQlyZXQgPSB0dG1fYm9fdmFsaWRhdGUoYm8sICZxb2JqLT5wbGFjZW1lbnQs ICZjdHgpOwogCQlpZiAocmV0KSB7CiAJCQl0dG1fZXVfYmFja29mZl9yZXNlcnZhdGlvbih0aWNr ZXQsIGhlYWQpOwogCQkJcmV0dXJuIHJldDsKQEAgLTM1Miw2ICszNTMsNyBAQCBzdGF0aWMgaW50 IHZpcnRpb19ncHVfdHJhbnNmZXJfZnJvbV9ob3N0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCiAJc3RydWN0IHZpcnRpb19ncHVfZGV2aWNlICp2Z2RldiA9IGRldi0+ZGV2X3ByaXZhdGU7 CiAJc3RydWN0IHZpcnRpb19ncHVfZnByaXYgKnZmcHJpdiA9IGZpbGUtPmRyaXZlcl9wcml2Owog CXN0cnVjdCBkcm1fdmlydGdwdV8zZF90cmFuc2Zlcl9mcm9tX2hvc3QgKmFyZ3MgPSBkYXRhOwor CXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7IHRydWUsIGZhbHNlIH07CiAJc3RydWN0 IGRybV9nZW1fb2JqZWN0ICpnb2JqID0gTlVMTDsKIAlzdHJ1Y3QgdmlydGlvX2dwdV9vYmplY3Qg KnFvYmogPSBOVUxMOwogCXN0cnVjdCB2aXJ0aW9fZ3B1X2ZlbmNlICpmZW5jZTsKQEAgLTM3Miw4 ICszNzQsNyBAQCBzdGF0aWMgaW50IHZpcnRpb19ncHVfdHJhbnNmZXJfZnJvbV9ob3N0X2lvY3Rs KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJaWYgKHJldCkKIAkJZ290byBvdXQ7CiAKLQlyZXQg PSB0dG1fYm9fdmFsaWRhdGUoJnFvYmotPnRibywgJnFvYmotPnBsYWNlbWVudCwKLQkJCSAgICAg IHRydWUsIGZhbHNlKTsKKwlyZXQgPSB0dG1fYm9fdmFsaWRhdGUoJnFvYmotPnRibywgJnFvYmot PnBsYWNlbWVudCwgJmN0eCk7CiAJaWYgKHVubGlrZWx5KHJldCkpCiAJCWdvdG8gb3V0X3VucmVz OwogCkBAIC0zOTksNiArNDAwLDcgQEAgc3RhdGljIGludCB2aXJ0aW9fZ3B1X3RyYW5zZmVyX3Rv X2hvc3RfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAlzdHJ1Y3Qg dmlydGlvX2dwdV9kZXZpY2UgKnZnZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3Qgdmly dGlvX2dwdV9mcHJpdiAqdmZwcml2ID0gZmlsZS0+ZHJpdmVyX3ByaXY7CiAJc3RydWN0IGRybV92 aXJ0Z3B1XzNkX3RyYW5zZmVyX3RvX2hvc3QgKmFyZ3MgPSBkYXRhOworCXN0cnVjdCB0dG1fb3Bl cmF0aW9uX2N0eCBjdHggPSB7IHRydWUsIGZhbHNlIH07CiAJc3RydWN0IGRybV9nZW1fb2JqZWN0 ICpnb2JqID0gTlVMTDsKIAlzdHJ1Y3QgdmlydGlvX2dwdV9vYmplY3QgKnFvYmogPSBOVUxMOwog CXN0cnVjdCB2aXJ0aW9fZ3B1X2ZlbmNlICpmZW5jZTsKQEAgLTQxNiw4ICs0MTgsNyBAQCBzdGF0 aWMgaW50IHZpcnRpb19ncHVfdHJhbnNmZXJfdG9faG9zdF9pb2N0bChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB2b2lkICpkYXRhLAogCWlmIChyZXQpCiAJCWdvdG8gb3V0OwogCi0JcmV0ID0gdHRt X2JvX3ZhbGlkYXRlKCZxb2JqLT50Ym8sICZxb2JqLT5wbGFjZW1lbnQsCi0JCQkgICAgICB0cnVl LCBmYWxzZSk7CisJcmV0ID0gdHRtX2JvX3ZhbGlkYXRlKCZxb2JqLT50Ym8sICZxb2JqLT5wbGFj ZW1lbnQsICZjdHgpOwogCWlmICh1bmxpa2VseShyZXQpKQogCQlnb3RvIG91dF91bnJlczsKIApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfY290YWJsZS5jIGIvZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfY290YWJsZS5jCmluZGV4IGQ4Nzg2MWJiZTk3MS4u OTJkZjBiMDhjMTk0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9j b3RhYmxlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfY290YWJsZS5jCkBA IC0zODcsNiArMzg3LDcgQEAgc3RhdGljIGludCB2bXdfY290YWJsZV9yZWFkYmFjayhzdHJ1Y3Qg dm13X3Jlc291cmNlICpyZXMpCiAgKi8KIHN0YXRpYyBpbnQgdm13X2NvdGFibGVfcmVzaXplKHN0 cnVjdCB2bXdfcmVzb3VyY2UgKnJlcywgc2l6ZV90IG5ld19zaXplKQogeworCXN0cnVjdCB0dG1f b3BlcmF0aW9uX2N0eCBjdHggPSB7IGZhbHNlLCBmYWxzZSB9OwogCXN0cnVjdCB2bXdfcHJpdmF0 ZSAqZGV2X3ByaXYgPSByZXMtPmRldl9wcml2OwogCXN0cnVjdCB2bXdfY290YWJsZSAqdmNvdGJs ID0gdm13X2NvdGFibGUocmVzKTsKIAlzdHJ1Y3Qgdm13X2RtYV9idWZmZXIgKmJ1ZiwgKm9sZF9i dWYgPSByZXMtPmJhY2t1cDsKQEAgLTQ1NSw3ICs0NTYsNyBAQCBzdGF0aWMgaW50IHZtd19jb3Rh YmxlX3Jlc2l6ZShzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMsIHNpemVfdCBuZXdfc2l6ZSkKIAl9 CiAKIAkvKiBVbnBpbiBuZXcgYnVmZmVyLCBhbmQgc3dpdGNoIGJhY2t1cCBidWZmZXJzLiAqLwot CXJldCA9IHR0bV9ib192YWxpZGF0ZShibywgJnZtd19tb2JfcGxhY2VtZW50LCBmYWxzZSwgZmFs c2UpOworCXJldCA9IHR0bV9ib192YWxpZGF0ZShibywgJnZtd19tb2JfcGxhY2VtZW50LCAmY3R4 KTsKIAlpZiAodW5saWtlbHkocmV0ICE9IDApKSB7CiAJCURSTV9FUlJPUigiRmFpbGVkIHZhbGlk YXRpbmcgbmV3IENPVGFibGUgYmFja3VwIGJ1ZmZlci5cbiIpOwogCQlnb3RvIG91dF93YWl0Owpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZG1hYnVmLmMgYi9kcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kbWFidWYuYwppbmRleCAwY2Q4ODkwMTVkYzUuLmQ0 NWQyY2FmZmE1YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZG1h YnVmLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZG1hYnVmLmMKQEAgLTQ3 LDYgKzQ3LDcgQEAgaW50IHZtd19kbWFidWZfcGluX2luX3BsYWNlbWVudChzdHJ1Y3Qgdm13X3By aXZhdGUgKmRldl9wcml2LAogCQkJCXN0cnVjdCB0dG1fcGxhY2VtZW50ICpwbGFjZW1lbnQsCiAJ CQkJYm9vbCBpbnRlcnJ1cHRpYmxlKQogeworCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHgg PSB7aW50ZXJydXB0aWJsZSwgZmFsc2UgfTsKIAlzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJv ID0gJmJ1Zi0+YmFzZTsKIAlpbnQgcmV0OwogCXVpbnQzMl90IG5ld19mbGFnczsKQEAgLTY1LDcg KzY2LDcgQEAgaW50IHZtd19kbWFidWZfcGluX2luX3BsYWNlbWVudChzdHJ1Y3Qgdm13X3ByaXZh dGUgKmRldl9wcml2LAogCQlyZXQgPSB0dG1fYm9fbWVtX2NvbXBhdChwbGFjZW1lbnQsICZiby0+ bWVtLAogCQkJCQkmbmV3X2ZsYWdzKSA9PSB0cnVlID8gMCA6IC1FSU5WQUw7CiAJZWxzZQotCQly ZXQgPSB0dG1fYm9fdmFsaWRhdGUoYm8sIHBsYWNlbWVudCwgaW50ZXJydXB0aWJsZSwgZmFsc2Up OworCQlyZXQgPSB0dG1fYm9fdmFsaWRhdGUoYm8sIHBsYWNlbWVudCwgJmN0eCk7CiAKIAlpZiAo IXJldCkKIAkJdm13X2JvX3Bpbl9yZXNlcnZlZChidWYsIHRydWUpOwpAQCAtOTUsNiArOTYsNyBA QCBpbnQgdm13X2RtYWJ1Zl9waW5faW5fdnJhbV9vcl9nbXIoc3RydWN0IHZtd19wcml2YXRlICpk ZXZfcHJpdiwKIAkJCQkgIHN0cnVjdCB2bXdfZG1hX2J1ZmZlciAqYnVmLAogCQkJCSAgYm9vbCBp bnRlcnJ1cHRpYmxlKQogeworCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7aW50ZXJy dXB0aWJsZSwgZmFsc2UgfTsKIAlzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvID0gJmJ1Zi0+ YmFzZTsKIAlpbnQgcmV0OwogCXVpbnQzMl90IG5ld19mbGFnczsKQEAgLTExNSwxMiArMTE3LDEx IEBAIGludCB2bXdfZG1hYnVmX3Bpbl9pbl92cmFtX29yX2dtcihzdHJ1Y3Qgdm13X3ByaXZhdGUg KmRldl9wcml2LAogCQlnb3RvIG91dF91bnJlc2VydmU7CiAJfQogCi0JcmV0ID0gdHRtX2JvX3Zh bGlkYXRlKGJvLCAmdm13X3ZyYW1fZ21yX3BsYWNlbWVudCwgaW50ZXJydXB0aWJsZSwKLQkJCSAg ICAgIGZhbHNlKTsKKwlyZXQgPSB0dG1fYm9fdmFsaWRhdGUoYm8sICZ2bXdfdnJhbV9nbXJfcGxh Y2VtZW50LCAmY3R4KTsKIAlpZiAobGlrZWx5KHJldCA9PSAwKSB8fCByZXQgPT0gLUVSRVNUQVJU U1lTKQogCQlnb3RvIG91dF91bnJlc2VydmU7CiAKLQlyZXQgPSB0dG1fYm9fdmFsaWRhdGUoYm8s ICZ2bXdfdnJhbV9wbGFjZW1lbnQsIGludGVycnVwdGlibGUsIGZhbHNlKTsKKwlyZXQgPSB0dG1f Ym9fdmFsaWRhdGUoYm8sICZ2bXdfdnJhbV9wbGFjZW1lbnQsICZjdHgpOwogCiBvdXRfdW5yZXNl cnZlOgogCWlmICghcmV0KQpAQCAtMTcwLDYgKzE3MSw3IEBAIGludCB2bXdfZG1hYnVmX3Bpbl9p bl9zdGFydF9vZl92cmFtKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICAgIHN0 cnVjdCB2bXdfZG1hX2J1ZmZlciAqYnVmLAogCQkJCSAgICBib29sIGludGVycnVwdGlibGUpCiB7 CisJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0eCA9IHtpbnRlcnJ1cHRpYmxlLCBmYWxzZSB9 OwogCXN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8gPSAmYnVmLT5iYXNlOwogCXN0cnVjdCB0 dG1fcGxhY2VtZW50IHBsYWNlbWVudDsKIAlzdHJ1Y3QgdHRtX3BsYWNlIHBsYWNlOwpAQCAtMjAw LDE0ICsyMDIsMTYgQEAgaW50IHZtd19kbWFidWZfcGluX2luX3N0YXJ0X29mX3ZyYW0oc3RydWN0 IHZtd19wcml2YXRlICpkZXZfcHJpdiwKIAlpZiAoYm8tPm1lbS5tZW1fdHlwZSA9PSBUVE1fUExf VlJBTSAmJgogCSAgICBiby0+bWVtLnN0YXJ0IDwgYm8tPm51bV9wYWdlcyAmJgogCSAgICBiby0+ bWVtLnN0YXJ0ID4gMCAmJgotCSAgICBidWYtPnBpbl9jb3VudCA9PSAwKQotCQkodm9pZCkgdHRt X2JvX3ZhbGlkYXRlKGJvLCAmdm13X3N5c19wbGFjZW1lbnQsIGZhbHNlLCBmYWxzZSk7CisJICAg IGJ1Zi0+cGluX2NvdW50ID09IDApIHsKKwkJY3R4LmludGVycnVwdGlibGUgPSBmYWxzZTsKKwkJ KHZvaWQpIHR0bV9ib192YWxpZGF0ZShibywgJnZtd19zeXNfcGxhY2VtZW50LCAmY3R4KTsKKwl9 CiAKIAlpZiAoYnVmLT5waW5fY291bnQgPiAwKQogCQlyZXQgPSB0dG1fYm9fbWVtX2NvbXBhdCgm cGxhY2VtZW50LCAmYm8tPm1lbSwKIAkJCQkJJm5ld19mbGFncykgPT0gdHJ1ZSA/IDAgOiAtRUlO VkFMOwogCWVsc2UKLQkJcmV0ID0gdHRtX2JvX3ZhbGlkYXRlKGJvLCAmcGxhY2VtZW50LCBpbnRl cnJ1cHRpYmxlLCBmYWxzZSk7CisJCXJldCA9IHR0bV9ib192YWxpZGF0ZShibywgJnBsYWNlbWVu dCwgJmN0eCk7CiAKIAkvKiBGb3Igc29tZSByZWFzb24gd2UgZGlkbid0IGVuZCB1cCBhdCB0aGUg c3RhcnQgb2YgdnJhbSAqLwogCVdBUk5fT04ocmV0ID09IDAgJiYgYm8tPm9mZnNldCAhPSAwKTsK QEAgLTI4Niw2ICsyOTAsNyBAQCB2b2lkIHZtd19ib19nZXRfZ3Vlc3RfcHRyKGNvbnN0IHN0cnVj dCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAgKi8KIHZvaWQgdm13X2JvX3Bpbl9yZXNlcnZlZChz dHJ1Y3Qgdm13X2RtYV9idWZmZXIgKnZibywgYm9vbCBwaW4pCiB7CisJc3RydWN0IHR0bV9vcGVy YXRpb25fY3R4IGN0eCA9IHsgZmFsc2UsIHRydWUgfTsKIAlzdHJ1Y3QgdHRtX3BsYWNlIHBsOwog CXN0cnVjdCB0dG1fcGxhY2VtZW50IHBsYWNlbWVudDsKIAlzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKmJvID0gJnZiby0+YmFzZTsKQEAgLTMxNCw3ICszMTksNyBAQCB2b2lkIHZtd19ib19waW5f cmVzZXJ2ZWQoc3RydWN0IHZtd19kbWFfYnVmZmVyICp2Ym8sIGJvb2wgcGluKQogCXBsYWNlbWVu dC5udW1fcGxhY2VtZW50ID0gMTsKIAlwbGFjZW1lbnQucGxhY2VtZW50ID0gJnBsOwogCi0JcmV0 ID0gdHRtX2JvX3ZhbGlkYXRlKGJvLCAmcGxhY2VtZW50LCBmYWxzZSwgdHJ1ZSk7CisJcmV0ID0g dHRtX2JvX3ZhbGlkYXRlKGJvLCAmcGxhY2VtZW50LCAmY3R4KTsKIAogCUJVR19PTihyZXQgIT0g MCB8fCBiby0+bWVtLm1lbV90eXBlICE9IG9sZF9tZW1fdHlwZSk7CiB9CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9leGVjYnVmLmMgYi9kcml2ZXJzL2dwdS9kcm0v dm13Z2Z4L3Ztd2dmeF9leGVjYnVmLmMKaW5kZXggMjFjNjJhMzRlNTU4Li5iNzAwNjY3ZjZmMGIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2V4ZWNidWYuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9leGVjYnVmLmMKQEAgLTM3MDEsMTQgKzM3 MDEsMTQgQEAgaW50IHZtd192YWxpZGF0ZV9zaW5nbGVfYnVmZmVyKHN0cnVjdCB2bXdfcHJpdmF0 ZSAqZGV2X3ByaXYsCiB7CiAJc3RydWN0IHZtd19kbWFfYnVmZmVyICp2Ym8gPSBjb250YWluZXJf b2YoYm8sIHN0cnVjdCB2bXdfZG1hX2J1ZmZlciwKIAkJCQkJCSAgYmFzZSk7CisJc3RydWN0IHR0 bV9vcGVyYXRpb25fY3R4IGN0eCA9IHsgaW50ZXJydXB0aWJsZSwgdHJ1ZSB9OwogCWludCByZXQ7 CiAKIAlpZiAodmJvLT5waW5fY291bnQgPiAwKQogCQlyZXR1cm4gMDsKIAogCWlmICh2YWxpZGF0 ZV9hc19tb2IpCi0JCXJldHVybiB0dG1fYm9fdmFsaWRhdGUoYm8sICZ2bXdfbW9iX3BsYWNlbWVu dCwgaW50ZXJydXB0aWJsZSwKLQkJCQkgICAgICAgZmFsc2UpOworCQlyZXR1cm4gdHRtX2JvX3Zh bGlkYXRlKGJvLCAmdm13X21vYl9wbGFjZW1lbnQsICZjdHgpOwogCiAJLyoqCiAJICogUHV0IEJP IGluIFZSQU0gaWYgdGhlcmUgaXMgc3BhY2UsIG90aGVyd2lzZSBhcyBhIEdNUi4KQEAgLTM3MTcs OCArMzcxNyw3IEBAIGludCB2bXdfdmFsaWRhdGVfc2luZ2xlX2J1ZmZlcihzdHJ1Y3Qgdm13X3By aXZhdGUgKmRldl9wcml2LAogCSAqIHVzZWQgYXMgYSBHTVIsIHRoaXMgd2lsbCByZXR1cm4gLUVO T01FTS4KIAkgKi8KIAotCXJldCA9IHR0bV9ib192YWxpZGF0ZShibywgJnZtd192cmFtX2dtcl9w bGFjZW1lbnQsIGludGVycnVwdGlibGUsCi0JCQkgICAgICBmYWxzZSk7CisJcmV0ID0gdHRtX2Jv X3ZhbGlkYXRlKGJvLCAmdm13X3ZyYW1fZ21yX3BsYWNlbWVudCwgJmN0eCk7CiAJaWYgKGxpa2Vs eShyZXQgPT0gMCB8fCByZXQgPT0gLUVSRVNUQVJUU1lTKSkKIAkJcmV0dXJuIHJldDsKIApAQCAt MzcyNyw3ICszNzI2LDcgQEAgaW50IHZtd192YWxpZGF0ZV9zaW5nbGVfYnVmZmVyKHN0cnVjdCB2 bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJICogcHJldmlvdXMgY29udGVudHMuCiAJICovCiAKLQly ZXQgPSB0dG1fYm9fdmFsaWRhdGUoYm8sICZ2bXdfdnJhbV9wbGFjZW1lbnQsIGludGVycnVwdGli bGUsIGZhbHNlKTsKKwlyZXQgPSB0dG1fYm9fdmFsaWRhdGUoYm8sICZ2bXdfdnJhbV9wbGFjZW1l bnQsICZjdHgpOwogCXJldHVybiByZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS92bXdnZngvdm13Z2Z4X3Jlc291cmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dm eF9yZXNvdXJjZS5jCmluZGV4IGE5NmY5MGYwMTdkMS4uMjAwOTA0ZmY5YTIyIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZXNvdXJjZS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS92bXdnZngvdm13Z2Z4X3Jlc291cmNlLmMKQEAgLTk2OCw2ICs5NjgsNyBAQCB2bXdf cmVzb3VyY2VfY2hlY2tfYnVmZmVyKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcywKIAkJCSAgYm9v bCBpbnRlcnJ1cHRpYmxlLAogCQkJICBzdHJ1Y3QgdHRtX3ZhbGlkYXRlX2J1ZmZlciAqdmFsX2J1 ZikKIHsKKwlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0geyB0cnVlLCBmYWxzZSB9Owog CXN0cnVjdCBsaXN0X2hlYWQgdmFsX2xpc3Q7CiAJYm9vbCBiYWNrdXBfZGlydHkgPSBmYWxzZTsK IAlpbnQgcmV0OwpAQCAtOTkyLDcgKzk5Myw3IEBAIHZtd19yZXNvdXJjZV9jaGVja19idWZmZXIo c3RydWN0IHZtd19yZXNvdXJjZSAqcmVzLAogCWJhY2t1cF9kaXJ0eSA9IHJlcy0+YmFja3VwX2Rp cnR5OwogCXJldCA9IHR0bV9ib192YWxpZGF0ZSgmcmVzLT5iYWNrdXAtPmJhc2UsCiAJCQkgICAg ICByZXMtPmZ1bmMtPmJhY2t1cF9wbGFjZW1lbnQsCi0JCQkgICAgICB0cnVlLCBmYWxzZSk7CisJ CQkgICAgICAmY3R4KTsKIAogCWlmICh1bmxpa2VseShyZXQgIT0gMCkpCiAJCWdvdG8gb3V0X25v X3ZhbGlkYXRlOwpAQCAtMTQ0Niw2ICsxNDQ3LDcgQEAgdm9pZCB2bXdfcmVzb3VyY2VfZXZpY3Rf YWxsKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYpCiAgKi8KIGludCB2bXdfcmVzb3VyY2Vf cGluKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcywgYm9vbCBpbnRlcnJ1cHRpYmxlKQogeworCXN0 cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7IGludGVycnVwdGlibGUsIGZhbHNlIH07CiAJ c3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiA9IHJlcy0+ZGV2X3ByaXY7CiAJaW50IHJldDsK IApAQCAtMTQ2Niw3ICsxNDY4LDcgQEAgaW50IHZtd19yZXNvdXJjZV9waW4oc3RydWN0IHZtd19y ZXNvdXJjZSAqcmVzLCBib29sIGludGVycnVwdGlibGUpCiAJCQkJcmV0ID0gdHRtX2JvX3ZhbGlk YXRlCiAJCQkJCSgmdmJvLT5iYXNlLAogCQkJCQkgcmVzLT5mdW5jLT5iYWNrdXBfcGxhY2VtZW50 LAotCQkJCQkgaW50ZXJydXB0aWJsZSwgZmFsc2UpOworCQkJCQkgJmN0eCk7CiAJCQkJaWYgKHJl dCkgewogCQkJCQl0dG1fYm9fdW5yZXNlcnZlKCZ2Ym8tPmJhc2UpOwogCQkJCQlnb3RvIG91dF9u b192YWxpZGF0ZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3No YWRlci5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc2hhZGVyLmMKaW5kZXggOWI4 MzJmMTM2ODEzLi4wMDRlMThiODgzMmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdn Zngvdm13Z2Z4X3NoYWRlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3No YWRlci5jCkBAIC05NzAsNiArOTcwLDcgQEAgaW50IHZtd19jb21wYXRfc2hhZGVyX2FkZChzdHJ1 Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAogCQkJICBzaXplX3Qgc2l6ZSwKIAkJCSAgc3RydWN0 IGxpc3RfaGVhZCAqbGlzdCkKIHsKKwlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0geyBm YWxzZSwgdHJ1ZSB9OwogCXN0cnVjdCB2bXdfZG1hX2J1ZmZlciAqYnVmOwogCXN0cnVjdCB0dG1f Ym9fa21hcF9vYmogbWFwOwogCWJvb2wgaXNfaW9tZW07CkBAIC0xMDA1LDcgKzEwMDYsNyBAQCBp bnQgdm13X2NvbXBhdF9zaGFkZXJfYWRkKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJ V0FSTl9PTihpc19pb21lbSk7CiAKIAl0dG1fYm9fa3VubWFwKCZtYXApOwotCXJldCA9IHR0bV9i b192YWxpZGF0ZSgmYnVmLT5iYXNlLCAmdm13X3N5c19wbGFjZW1lbnQsIGZhbHNlLCB0cnVlKTsK KwlyZXQgPSB0dG1fYm9fdmFsaWRhdGUoJmJ1Zi0+YmFzZSwgJnZtd19zeXNfcGxhY2VtZW50LCAm Y3R4KTsKIAlXQVJOX09OKHJldCAhPSAwKTsKIAl0dG1fYm9fdW5yZXNlcnZlKCZidWYtPmJhc2Up OwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2FwaS5oIGIvaW5jbHVkZS9k cm0vdHRtL3R0bV9ib19hcGkuaAppbmRleCA4MzNjM2FkMjQwOTEuLjA5Nzk1MWU5OTliYyAxMDA2 NDQKLS0tIGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaAorKysgYi9pbmNsdWRlL2RybS90 dG0vdHRtX2JvX2FwaS5oCkBAIC0yNTksNiArMjU5LDIwIEBAIHN0cnVjdCB0dG1fYm9fa21hcF9v YmogewogfTsKIAogLyoqCisgKiBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHgKKyAqCisgKiBAaW50 ZXJydXB0aWJsZTogU2xlZXAgaW50ZXJydXB0aWJsZSBpZiBzbGVlcGluZy4KKyAqIEBub193YWl0 X2dwdTogUmV0dXJuIGltbWVkaWF0ZWx5IGlmIHRoZSBHUFUgaXMgYnVzeS4KKyAqCisgKiBDb250 ZXh0IGZvciBUVE0gb3BlcmF0aW9ucyBsaWtlIGNoYW5naW5nIGJ1ZmZlciBwbGFjZW1lbnQgb3Ig Z2VuZXJhbCBtZW1vcnkKKyAqIGFsbG9jYXRpb24uCisgKi8KK3N0cnVjdCB0dG1fb3BlcmF0aW9u X2N0eCB7CisJYm9vbCBpbnRlcnJ1cHRpYmxlOworCWJvb2wgbm9fd2FpdF9ncHU7Cit9OworCisv KioKICAqIHR0bV9ib19yZWZlcmVuY2UgLSByZWZlcmVuY2UgYSBzdHJ1Y3QgdHRtX2J1ZmZlcl9v YmplY3QKICAqCiAgKiBAYm86IFRoZSBidWZmZXIgb2JqZWN0LgpAQCAtMzA2LDggKzMyMCw3IEBA IGJvb2wgdHRtX2JvX21lbV9jb21wYXQoc3RydWN0IHR0bV9wbGFjZW1lbnQgKnBsYWNlbWVudCwg c3RydWN0IHR0bV9tZW1fcmVnICptZW0sCiAgKgogICogQGJvOiBUaGUgYnVmZmVyIG9iamVjdC4K ICAqIEBwbGFjZW1lbnQ6IFByb3Bvc2VkIHBsYWNlbWVudCBmb3IgdGhlIGJ1ZmZlciBvYmplY3Qu Ci0gKiBAaW50ZXJydXB0aWJsZTogU2xlZXAgaW50ZXJydXB0aWJsZSBpZiBzbGVlcGluZy4KLSAq IEBub193YWl0X2dwdTogUmV0dXJuIGltbWVkaWF0ZWx5IGlmIHRoZSBHUFUgaXMgYnVzeS4KKyAq IEBjdHg6IHZhbGlkYXRpb24gcGFyYW1ldGVycy4KICAqCiAgKiBDaGFuZ2VzIHBsYWNlbWVudCBh bmQgY2FjaGluZyBwb2xpY3kgb2YgdGhlIGJ1ZmZlciBvYmplY3QKICAqIGFjY29yZGluZyBwcm9w b3NlZCBwbGFjZW1lbnQuCkBAIC0zMTksOCArMzMyLDcgQEAgYm9vbCB0dG1fYm9fbWVtX2NvbXBh dChzdHJ1Y3QgdHRtX3BsYWNlbWVudCAqcGxhY2VtZW50LCBzdHJ1Y3QgdHRtX21lbV9yZWcgKm1l bSwKICAqLwogaW50IHR0bV9ib192YWxpZGF0ZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJv LAogCQkgICAgc3RydWN0IHR0bV9wbGFjZW1lbnQgKnBsYWNlbWVudCwKLQkJICAgIGJvb2wgaW50 ZXJydXB0aWJsZSwKLQkJICAgIGJvb2wgbm9fd2FpdF9ncHUpOworCQkgICAgc3RydWN0IHR0bV9v cGVyYXRpb25fY3R4ICpjdHgpOwogCiAvKioKICAqIHR0bV9ib191bnJlZgotLSAKMi4xMS4wCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwg bWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK