From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Stone Subject: [RFC PATCH 18/37] DRM: CRTC: Use pointer for display mode Date: Thu, 19 Mar 2015 04:33:17 +0000 Message-ID: <1426739616-10635-18-git-send-email-daniels@collabora.com> References: <1426739556-10429-1-git-send-email-daniels@collabora.com> <1426739616-10635-1-git-send-email-daniels@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [93.93.135.160]) by gabe.freedesktop.org (Postfix) with ESMTP id 9351289A0F for ; Wed, 18 Mar 2015 21:33:53 -0700 (PDT) In-Reply-To: <1426739616-10635-1-git-send-email-daniels@collabora.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org SG9sZGluZyBhIHBvaW50ZXIgdG8gdGhlIG1vZGUsIHJhdGhlciB0aGFuIGFuIGVtYmVkLCBhbGxv d3MgdXMgdG8gZ2V0CnRvd2FyZHMgc2hhcmluZyByZWZjb3VudGVkIG1vZGVzLgoKWFhYOiBzcGxp dCBpbnRvIHR3byAtIGRybV9tb2RlX2NvcHkgY2hhbmdlcyBmaXJzdCwgdGhlbiB0aGUgb3RoZXJz CgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgU3RvbmUgPGRhbmllbHNAY29sbGFib3JhLmNvbT4KLS0t CiBkcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9vdmVybGF5LmMgICAgICAgIHwgIDQgKy0t CiBkcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9tb2RlLmMgICAgICAgICAgICAgICAgIHwgIDggKyst LS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jICAgICAgICAgICAgfCA0NyAr KysrKysrKysrKysrKystLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMgICAg ICAgICAgICAgICAgICAgICB8IDExICsrKystLQogZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2hl bHBlci5jICAgICAgICAgICAgICB8IDM0ICsrKysrKysrKysrKy0tLS0tLS0KIGRyaXZlcnMvZ3B1 L2RybS9kcm1fcGxhbmVfaGVscGVyLmMgICAgICAgICAgICAgfCAgNiArKy0tCiBkcml2ZXJzL2dw dS9kcm0vaTJjL3NpbDE2NF9kcnYuYyAgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2F0b21pYy5jICAgICAgICAgICAgfCAyNiArKysrKystLS0tLS0tLQog ZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2NydGMuYyAgICAgICB8ICA0ICstLQog ZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52MDQvY3J0Yy5jICAgICAgICB8ICAyICstCiBk cml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYwNC9jdXJzb3IuYyAgICAgIHwgIDIgKy0KIGRy aXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L3R2bW9kZXNudjE3LmMgfCAgNCArLS0KIGRy aXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfY29ubmVjdG9yLmMgICAgfCAgMiArLQogZHJp dmVycy9ncHUvZHJtL25vdXZlYXUvbnY1MF9kaXNwbGF5LmMgICAgICAgICB8ICAyICstCiBkcml2 ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2NydGMuYyAgICAgICAgICAgIHwgIDQgKy0tCiBkcml2 ZXJzL2dwdS9kcm0vcXhsL3F4bF9kaXNwbGF5LmMgICAgICAgICAgICAgIHwgIDQgKy0tCiBkcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL2F0b21iaW9zX2NydGMuYyAgICAgICAgIHwgMTIgKysrLS0tLQog ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9jaWsuYyAgICAgICAgICAgICAgICAgICB8ICA0ICstLQog ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW4uYyAgICAgICAgICAgICB8ICA2ICsrLS0K IGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjEwMC5jICAgICAgICAgICAgICAgICAgfCAgNCArLS0K IGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Nvbm5lY3RvcnMuYyAgICAgfCAgMiArLQog ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY3Vyc29yLmMgICAgICAgICB8ICA0ICstLQog ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGlzcGxheS5jICAgICAgICB8IDEyICsrKy0t LS0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnM2MDAuYyAgICAgICAgICAgICAgICAgfCAgNCAr LS0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnM2OTAuYyAgICAgICAgICAgICAgICAgfCAxNiAr KysrLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnM3ODBfZHBtLmMgICAgICAgICAgICAg fCAgNCArLS0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnY1MTUuYyAgICAgICAgICAgICAgICAg fCAyMCArKysrKy0tLS0tLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9zaS5jICAgICAgICAgICAg ICAgICAgICB8ICA2ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfY3J0Yy5j ICAgICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9sdmRzZW5j LmMgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3Zv cC5jICAgIHwgIDggKystLS0KIGRyaXZlcnMvZ3B1L2RybS9zaG1vYmlsZS9zaG1vYl9kcm1fY3J0 Yy5jICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfZHJtX2NydGMuYyAgICAg ICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vdGVncmEvZGMuYyAgICAgICAgICAgICAg ICAgICAgIHwgMTYgKysrKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY19jcnRj LmMgICAgICAgICAgIHwgMTAgKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9r bXMuYyAgICAgICAgICAgIHwgMzIgKysrKysrKysrLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0v dm13Z2Z4L3Ztd2dmeF9sZHUuYyAgICAgICAgICAgIHwgMTAgKysrLS0tCiBkcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L3Ztd2dmeF9zY3JuLmMgICAgICAgICAgIHwgIDYgKystLQogaW5jbHVkZS9kcm0v ZHJtX2NydGMuaCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiAzOSBmaWxlcyBjaGFu Z2VkLCAxODcgaW5zZXJ0aW9ucygrKSwgMTYxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX292ZXJsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9h cm1hZGEvYXJtYWRhX292ZXJsYXkuYwppbmRleCBjNWIwNmZkLi40ZTU4NmFiIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9vdmVybGF5LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2FybWFkYS9hcm1hZGFfb3ZlcmxheS5jCkBAIC0xMDksOCArMTA5LDggQEAgYXJtYWRh X3BsYW5lX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpj cnRjLAogCXVuc2lnbmVkIGlkeCA9IDA7CiAJaW50IHJldDsKIAotCWNydGNfdyA9IGFybWFkYV9s aW1pdChjcnRjX3gsIGNydGNfdywgZGNydGMtPmNydGMubW9kZS5oZGlzcGxheSk7Ci0JY3J0Y19o ID0gYXJtYWRhX2xpbWl0KGNydGNfeSwgY3J0Y19oLCBkY3J0Yy0+Y3J0Yy5tb2RlLnZkaXNwbGF5 KTsKKwljcnRjX3cgPSBhcm1hZGFfbGltaXQoY3J0Y194LCBjcnRjX3csIGRjcnRjLT5jcnRjLm1v ZGUtPmhkaXNwbGF5KTsKKwljcnRjX2ggPSBhcm1hZGFfbGltaXQoY3J0Y195LCBjcnRjX2gsIGRj cnRjLT5jcnRjLm1vZGUtPnZkaXNwbGF5KTsKIAljdHJsMCA9IENGR19ETUFfRk1UKGRybV9mYl90 b19hcm1hZGFfZmIoZmIpLT5mbXQpIHwKIAkJQ0ZHX0RNQV9NT0QoZHJtX2ZiX3RvX2FybWFkYV9m YihmYiktPm1vZCkgfAogCQlDRkdfQ0JTSF9FTkEgfCBDRkdfRE1BX0hTTU9PVEggfCBDRkdfRE1B X0VOQTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X21vZGUuYyBiL2RyaXZl cnMvZ3B1L2RybS9hc3QvYXN0X21vZGUuYwppbmRleCBmYjExZjc1Li4zNTg1NjI0IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9tb2RlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2FzdC9hc3RfbW9kZS5jCkBAIC0xMDAsNyArMTAwLDcgQEAgc3RhdGljIGJvb2wgYXN0X2dldF92 Ymlvc19tb2RlX2luZm8oc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQlyZXR1cm4gZmFsc2U7CiAJ fQogCi0Jc3dpdGNoIChjcnRjLT5tb2RlLmNydGNfaGRpc3BsYXkpIHsKKwlzd2l0Y2ggKGNydGMt Pm1vZGUtPmNydGNfaGRpc3BsYXkpIHsKIAljYXNlIDY0MDoKIAkJdmJpb3NfbW9kZS0+ZW5oX3Rh YmxlID0gJnJlc182NDB4NDgwW3JlZnJlc2hfcmF0ZV9pbmRleF07CiAJCWJyZWFrOwpAQCAtMTEx LDcgKzExMSw3IEBAIHN0YXRpYyBib29sIGFzdF9nZXRfdmJpb3NfbW9kZV9pbmZvKHN0cnVjdCBk cm1fY3J0YyAqY3J0YywKIAkJdmJpb3NfbW9kZS0+ZW5oX3RhYmxlID0gJnJlc18xMDI0eDc2OFty ZWZyZXNoX3JhdGVfaW5kZXhdOwogCQlicmVhazsKIAljYXNlIDEyODA6Ci0JCWlmIChjcnRjLT5t b2RlLmNydGNfdmRpc3BsYXkgPT0gODAwKQorCQlpZiAoY3J0Yy0+bW9kZS0+Y3J0Y192ZGlzcGxh eSA9PSA4MDApCiAJCQl2Ymlvc19tb2RlLT5lbmhfdGFibGUgPSAmcmVzXzEyODB4ODAwW3JlZnJl c2hfcmF0ZV9pbmRleF07CiAJCWVsc2UKIAkJCXZiaW9zX21vZGUtPmVuaF90YWJsZSA9ICZyZXNf MTI4MHgxMDI0W3JlZnJlc2hfcmF0ZV9pbmRleF07CkBAIC0xMjMsNyArMTIzLDcgQEAgc3RhdGlj IGJvb2wgYXN0X2dldF92Ymlvc19tb2RlX2luZm8oc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQl2 Ymlvc19tb2RlLT5lbmhfdGFibGUgPSAmcmVzXzE0NDB4OTAwW3JlZnJlc2hfcmF0ZV9pbmRleF07 CiAJCWJyZWFrOwogCWNhc2UgMTYwMDoKLQkJaWYgKGNydGMtPm1vZGUuY3J0Y192ZGlzcGxheSA9 PSA5MDApCisJCWlmIChjcnRjLT5tb2RlLT5jcnRjX3ZkaXNwbGF5ID09IDkwMCkKIAkJCXZiaW9z X21vZGUtPmVuaF90YWJsZSA9ICZyZXNfMTYwMHg5MDBbcmVmcmVzaF9yYXRlX2luZGV4XTsKIAkJ ZWxzZQogCQkJdmJpb3NfbW9kZS0+ZW5oX3RhYmxlID0gJnJlc18xNjAweDEyMDBbcmVmcmVzaF9y YXRlX2luZGV4XTsKQEAgLTEzMiw3ICsxMzIsNyBAQCBzdGF0aWMgYm9vbCBhc3RfZ2V0X3ZiaW9z X21vZGVfaW5mbyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCXZiaW9zX21vZGUtPmVuaF90YWJs ZSA9ICZyZXNfMTY4MHgxMDUwW3JlZnJlc2hfcmF0ZV9pbmRleF07CiAJCWJyZWFrOwogCWNhc2Ug MTkyMDoKLQkJaWYgKGNydGMtPm1vZGUuY3J0Y192ZGlzcGxheSA9PSAxMDgwKQorCQlpZiAoY3J0 Yy0+bW9kZS0+Y3J0Y192ZGlzcGxheSA9PSAxMDgwKQogCQkJdmJpb3NfbW9kZS0+ZW5oX3RhYmxl ID0gJnJlc18xOTIweDEwODBbcmVmcmVzaF9yYXRlX2luZGV4XTsKIAkJZWxzZQogCQkJdmJpb3Nf bW9kZS0+ZW5oX3RhYmxlID0gJnJlc18xOTIweDEyMDBbcmVmcmVzaF9yYXRlX2luZGV4XTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIGIvZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKaW5kZXggOTYyNDQzZC4uYmM3YjYyOSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKQEAgLTY5OSw3ICs2OTksMTQgQEAgc2V0X3JvdXRp bmdfbGlua3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9hdG9taWNfc3RhdGUg Km9sZF9zdGF0ZSkKIAkJaWYgKCFjcnRjKQogCQkJY29udGludWU7CiAKLQkJY3J0Yy0+bW9kZSA9 ICpjcnRjLT5zdGF0ZS0+bW9kZTsKKwkJaWYgKGNydGMtPnN0YXRlLT5tb2RlKSB7CisJCQlpZiAo Y3J0Yy0+bW9kZSkKKwkJCQlkcm1fbW9kZV9kZXN0cm95KGRldiwgY3J0Yy0+bW9kZSk7CisJCQlj cnRjLT5tb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKGRldiwgY3J0Yy0+c3RhdGUtPm1vZGUpOwor CQl9IGVsc2UgaWYgKGNydGMtPm1vZGUpIHsKKwkJCWRybV9tb2RlX2Rlc3Ryb3koZGV2LCBjcnRj LT5tb2RlKTsKKwkJCWNydGMtPm1vZGUgPSBOVUxMOworCQl9CiAJCWNydGMtPmVuYWJsZWQgPSBj cnRjLT5zdGF0ZS0+ZW5hYmxlOwogCQljcnRjLT54ID0gY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPnNy Y194ID4+IDE2OwogCQljcnRjLT55ID0gY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPnNyY195ID4+IDE2 OwpAQCAtMTY0Myw3ICsxNjUwLDkgQEAgcmV0cnk6CiAKIAljcnRjX3N0YXRlLT5lbmFibGUgPSB0 cnVlOwogCWNydGNfc3RhdGUtPmFjdGl2ZSA9IHRydWU7Ci0JZHJtX21vZGVfY29weShjcnRjX3N0 YXRlLT5tb2RlLCBzZXQtPm1vZGUpOworCWlmIChjcnRjX3N0YXRlLT5tb2RlKQorCQlkcm1fbW9k ZV9kZXN0cm95KGNydGMtPmRldiwgY3J0Y19zdGF0ZS0+bW9kZSk7CisJY3J0Y19zdGF0ZS0+bW9k ZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShjcnRjLT5kZXYsIHNldC0+bW9kZSk7CiAKIAlyZXQgPSBk cm1fYXRvbWljX3NldF9jcnRjX2Zvcl9wbGFuZShwcmltYXJ5X3N0YXRlLCBjcnRjKTsKIAlpZiAo cmV0ICE9IDApCkBAIC0yMDU4LDIyICsyMDY3LDE2IEBAIEVYUE9SVF9TWU1CT0woZHJtX2F0b21p Y19oZWxwZXJfY29ubmVjdG9yX2RwbXMpOwogICovCiB2b2lkIGRybV9hdG9taWNfaGVscGVyX2Ny dGNfcmVzZXQoc3RydWN0IGRybV9jcnRjICpjcnRjKQogewotCWlmIChjcnRjLT5zdGF0ZSkKLQkJ a2ZyZWUoY3J0Yy0+c3RhdGUtPm1vZGUpOworCWlmIChjcnRjLT5zdGF0ZSAmJiBjcnRjLT5zdGF0 ZS0+bW9kZSkKKwkJZHJtX21vZGVfZGVzdHJveShjcnRjLT5kZXYsIGNydGMtPnN0YXRlLT5tb2Rl KTsKIAogCWtmcmVlKGNydGMtPnN0YXRlKTsKIAljcnRjLT5zdGF0ZSA9IGt6YWxsb2Moc2l6ZW9m KCpjcnRjLT5zdGF0ZSksIEdGUF9LRVJORUwpOwogCi0JaWYgKGNydGMtPnN0YXRlKSB7Ci0JCWNy dGMtPnN0YXRlLT5jcnRjID0gY3J0YzsKLQkJY3J0Yy0+c3RhdGUtPm1vZGUgPQotCQkJa3phbGxv YyhzaXplb2YoKmNydGMtPnN0YXRlLT5tb2RlKSwgR0ZQX0tFUk5FTCk7Ci0JfQorCWlmICghY3J0 Yy0+c3RhdGUpCisJCXJldHVybjsKIAotCWlmIChjcnRjLT5zdGF0ZSAmJiAhY3J0Yy0+c3RhdGUt Pm1vZGUpIHsKLQkJa2ZyZWUoY3J0Yy0+c3RhdGUpOwotCQljcnRjLT5zdGF0ZSA9IE5VTEw7Ci0J fQorCWNydGMtPnN0YXRlLT5jcnRjID0gY3J0YzsKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2F0b21p Y19oZWxwZXJfY3J0Y19yZXNldCk7CiAKQEAgLTIwOTQsMTIgKzIwOTcsMTggQEAgZHJtX2F0b21p Y19oZWxwZXJfY3J0Y19kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCiAJ c3RhdGUgPSBrbWVtZHVwKGNydGMtPnN0YXRlLCBzaXplb2YoKmNydGMtPnN0YXRlKSwgR0ZQX0tF Uk5FTCk7CiAKLQlpZiAoc3RhdGUpIHsKLQkJc3RhdGUtPm1vZGVfY2hhbmdlZCA9IGZhbHNlOwot CQlzdGF0ZS0+YWN0aXZlX2NoYW5nZWQgPSBmYWxzZTsKLQkJc3RhdGUtPnBsYW5lc19jaGFuZ2Vk ID0gZmFsc2U7Ci0JCXN0YXRlLT5ldmVudCA9IE5VTEw7Ci0JCXN0YXRlLT5tb2RlID0gZHJtX21v ZGVfZHVwbGljYXRlKGNydGMtPmRldiwgY3J0Yy0+c3RhdGUtPm1vZGUpOworCWlmICghc3RhdGUp CisJCXJldHVybiBOVUxMOworCisJc3RhdGUtPm1vZGVfY2hhbmdlZCA9IGZhbHNlOworCXN0YXRl LT5hY3RpdmVfY2hhbmdlZCA9IGZhbHNlOworCXN0YXRlLT5wbGFuZXNfY2hhbmdlZCA9IGZhbHNl OworCXN0YXRlLT5ldmVudCA9IE5VTEw7CisKKwlpZiAoY3J0Yy0+c3RhdGUtPm1vZGUpIHsKKwkJ c3RhdGUtPm1vZGUgPQorCQkJZHJtX21vZGVfZHVwbGljYXRlKGNydGMtPmRldiwKKwkJCSAgICAg ICAgICAgICAgICAgICBjcnRjLT5zdGF0ZS0+bW9kZSk7CiAJCWlmICghc3RhdGUtPm1vZGUpIHsK IAkJCWtmcmVlKHN0YXRlKTsKIAkJCXN0YXRlID0gTlVMTDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMKaW5kZXggNjAy Mzg1MS4uY2Y0NDQwMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMKQEAgLTY2Miw2ICs2NjIsNyBAQCBpbnQgZHJt X2NydGNfaW5pdF93aXRoX3BsYW5lcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJt X2NydGMgKmNydGMsCiAJY3J0Yy0+ZGV2ID0gZGV2OwogCWNydGMtPmZ1bmNzID0gZnVuY3M7CiAJ Y3J0Yy0+aW52ZXJ0X2RpbWVuc2lvbnMgPSBmYWxzZTsKKwljcnRjLT5tb2RlID0gTlVMTDsKIAog CWRybV9tb2Rlc2V0X2xvY2tfaW5pdCgmY3J0Yy0+bXV0ZXgpOwogCXJldCA9IGRybV9tb2RlX29i amVjdF9nZXQoZGV2LCAmY3J0Yy0+YmFzZSwgRFJNX01PREVfT0JKRUNUX0NSVEMpOwpAQCAtNzAw LDYgKzcwMSw5IEBAIHZvaWQgZHJtX2NydGNfY2xlYW51cChzdHJ1Y3QgZHJtX2NydGMgKmNydGMp CiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKIAorCWtmcmVlKGNydGMt Pm1vZGUpOworCWNydGMtPm1vZGUgPSBOVUxMOworCiAJa2ZyZWUoY3J0Yy0+Z2FtbWFfc3RvcmUp OwogCWNydGMtPmdhbW1hX3N0b3JlID0gTlVMTDsKIApAQCAtMjAwOCw2ICsyMDEyLDcgQEAgaW50 IGRybV9tb2RlX2dldGNydGMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJY3J0Y19yZXNwLT54 ID0gY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPnNyY194ID4+IDE2OwogCQljcnRjX3Jlc3AtPnkgPSBj cnRjLT5wcmltYXJ5LT5zdGF0ZS0+c3JjX3kgPj4gMTY7CiAJCWlmIChjcnRjLT5zdGF0ZS0+ZW5h YmxlKSB7CisJCQlXQVJOX09OKCFjcnRjLT5zdGF0ZS0+bW9kZSk7CiAJCQlkcm1fY3J0Y19jb252 ZXJ0X3RvX3Vtb2RlKCZjcnRjX3Jlc3AtPm1vZGUsIGNydGMtPnN0YXRlLT5tb2RlKTsKIAkJCWNy dGNfcmVzcC0+bW9kZV92YWxpZCA9IDE7CiAKQEAgLTIwMTgsNyArMjAyMyw5IEBAIGludCBkcm1f bW9kZV9nZXRjcnRjKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCWNydGNfcmVzcC0+eCA9IGNy dGMtPng7CiAJCWNydGNfcmVzcC0+eSA9IGNydGMtPnk7CiAJCWlmIChjcnRjLT5lbmFibGVkKSB7 Ci0JCQlkcm1fY3J0Y19jb252ZXJ0X3RvX3Vtb2RlKCZjcnRjX3Jlc3AtPm1vZGUsICZjcnRjLT5t b2RlKTsKKwkJCVdBUk5fT04oIWNydGMtPm1vZGUpOworCQkJZHJtX2NydGNfY29udmVydF90b191 bW9kZSgmY3J0Y19yZXNwLT5tb2RlLAorCQkJICAgICAgICAgICAgICAgICAgICAgICAgICBjcnRj LT5tb2RlKTsKIAkJCWNydGNfcmVzcC0+bW9kZV92YWxpZCA9IDE7CiAKIAkJfSBlbHNlIHsKQEAg LTQ5NDIsNyArNDk0OSw3IEBAIGludCBkcm1fbW9kZV9wYWdlX2ZsaXBfaW9jdGwoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKIAkJZ290byBvdXQ7CiAJfQogCi0JcmV0ID0gZHJtX2NydGNfY2hlY2tf dmlld3BvcnQoY3J0YywgY3J0Yy0+eCwgY3J0Yy0+eSwgJmNydGMtPm1vZGUsIGZiKTsKKwlyZXQg PSBkcm1fY3J0Y19jaGVja192aWV3cG9ydChjcnRjLCBjcnRjLT54LCBjcnRjLT55LCBjcnRjLT5t b2RlLCBmYik7CiAJaWYgKHJldCkKIAkJZ290byBvdXQ7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fY3J0Y19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxw ZXIuYwppbmRleCA4YTlhMDQ1Li40NjQ5N2RkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2NydGNfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2hlbHBlci5j CkBAIC0yNzAsNyArMjcwLDggQEAgYm9vbCBkcm1fY3J0Y19oZWxwZXJfc2V0X21vZGUoc3RydWN0 IGRybV9jcnRjICpjcnRjLAogCQkJICAgICAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqb2xkX2Zi KQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Ci0Jc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUsIHNhdmVkX21vZGUsIHNhdmVkX2h3bW9kZTsKKwlj b25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqc2F2ZWRfbW9kZTsKKwlzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSwgc2F2ZWRfaHdtb2RlOwogCXN0cnVjdCBkcm1fY3J0 Y19oZWxwZXJfZnVuY3MgKmNydGNfZnVuY3MgPSBjcnRjLT5oZWxwZXJfcHJpdmF0ZTsKIAlzdHJ1 Y3QgZHJtX2VuY29kZXJfaGVscGVyX2Z1bmNzICplbmNvZGVyX2Z1bmNzOwogCWludCBzYXZlZF94 LCBzYXZlZF95OwpAQCAtMjkyLDE0ICsyOTMsMTcgQEAgYm9vbCBkcm1fY3J0Y19oZWxwZXJfc2V0 X21vZGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCX0KIAogCXNhdmVkX21vZGUgPSBjcnRjLT5t b2RlOwotCXNhdmVkX2h3bW9kZSA9IGNydGMtPmh3bW9kZTsKKwlkcm1fbW9kZV9jb3B5KCZzYXZl ZF9od21vZGUsICZjcnRjLT5od21vZGUpOwogCXNhdmVkX3ggPSBjcnRjLT54OwogCXNhdmVkX3kg PSBjcnRjLT55OwogCiAJLyogVXBkYXRlIGNydGMgdmFsdWVzIHVwIGZyb250IHNvIHRoZSBkcml2 ZXIgY2FuIHJlbHkgb24gdGhlbSBmb3IgbW9kZQogCSAqIHNldHRpbmcuCiAJICovCi0JY3J0Yy0+ bW9kZSA9ICptb2RlOworCWlmIChtb2RlKQorCQljcnRjLT5tb2RlID0gZHJtX21vZGVfZHVwbGlj YXRlKGNydGMtPmRldiwgbW9kZSk7CisJZWxzZQorCQljcnRjLT5tb2RlID0gTlVMTDsKIAljcnRj LT54ID0geDsKIAljcnRjLT55ID0geTsKIApAQCAtMzM1LDcgKzMzOSw3IEBAIGJvb2wgZHJtX2Ny dGNfaGVscGVyX3NldF9tb2RlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAl9CiAJRFJNX0RFQlVH X0tNUygiW0NSVEM6JWRdXG4iLCBjcnRjLT5iYXNlLmlkKTsKIAotCWNydGMtPmh3bW9kZSA9ICph ZGp1c3RlZF9tb2RlOworCWRybV9tb2RlX2NvcHkoJmNydGMtPmh3bW9kZSwgYWRqdXN0ZWRfbW9k ZSk7CiAKIAkvKiBQcmVwYXJlIHRoZSBlbmNvZGVycyBhbmQgQ1JUQ3MgYmVmb3JlIHNldHRpbmcg dGhlIG1vZGUuICovCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShlbmNvZGVyLCAmZGV2LT5tb2RlX2Nv bmZpZy5lbmNvZGVyX2xpc3QsIGhlYWQpIHsKQEAgLTQxMCwxMCArNDE0LDE0IEBAIGRvbmU6CiAJ ZHJtX21vZGVfZGVzdHJveShkZXYsIGFkanVzdGVkX21vZGUpOwogCWlmICghcmV0KSB7CiAJCWNy dGMtPmVuYWJsZWQgPSBzYXZlZF9lbmFibGVkOworCQlpZiAoY3J0Yy0+bW9kZSkKKwkJCWRybV9t b2RlX2Rlc3Ryb3koY3J0Yy0+ZGV2LCBjcnRjLT5tb2RlKTsKIAkJY3J0Yy0+bW9kZSA9IHNhdmVk X21vZGU7Ci0JCWNydGMtPmh3bW9kZSA9IHNhdmVkX2h3bW9kZTsKKwkJZHJtX21vZGVfY29weSgm Y3J0Yy0+aHdtb2RlLCAmc2F2ZWRfaHdtb2RlKTsKIAkJY3J0Yy0+eCA9IHNhdmVkX3g7CiAJCWNy dGMtPnkgPSBzYXZlZF95OworCX0gZWxzZSB7CisJCWRybV9tb2RlX2Rlc3Ryb3koZGV2LCBzYXZl ZF9tb2RlKTsKIAl9CiAKIAlyZXR1cm4gcmV0OwpAQCAtNTM5LDcgKzU0Nyw3IEBAIGludCBkcm1f Y3J0Y19oZWxwZXJfc2V0X2NvbmZpZyhzdHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQpCiAJfQogCiAJ c2F2ZV9zZXQuY3J0YyA9IHNldC0+Y3J0YzsKLQlzYXZlX3NldC5tb2RlID0gJnNldC0+Y3J0Yy0+ bW9kZTsKKwlzYXZlX3NldC5tb2RlID0gc2V0LT5jcnRjLT5tb2RlOwogCXNhdmVfc2V0LnggPSBz ZXQtPmNydGMtPng7CiAJc2F2ZV9zZXQueSA9IHNldC0+Y3J0Yy0+eTsKIAlzYXZlX3NldC5mYiA9 IHNldC0+Y3J0Yy0+cHJpbWFyeS0+ZmI7CkBAIC01NjMsOSArNTcxLDkgQEAgaW50IGRybV9jcnRj X2hlbHBlcl9zZXRfY29uZmlnKHN0cnVjdCBkcm1fbW9kZV9zZXQgKnNldCkKIAlpZiAoc2V0LT54 ICE9IHNldC0+Y3J0Yy0+eCB8fCBzZXQtPnkgIT0gc2V0LT5jcnRjLT55KQogCQlmYl9jaGFuZ2Vk ID0gdHJ1ZTsKIAotCWlmIChzZXQtPm1vZGUgJiYgIWRybV9tb2RlX2VxdWFsKHNldC0+bW9kZSwg JnNldC0+Y3J0Yy0+bW9kZSkpIHsKKwlpZiAoc2V0LT5tb2RlICYmICFkcm1fbW9kZV9lcXVhbChz ZXQtPm1vZGUsIHNldC0+Y3J0Yy0+bW9kZSkpIHsKIAkJRFJNX0RFQlVHX0tNUygibW9kZXMgYXJl IGRpZmZlcmVudCwgZnVsbCBtb2RlIHNldFxuIik7Ci0JCWRybV9tb2RlX2RlYnVnX3ByaW50bW9k ZWxpbmUoJnNldC0+Y3J0Yy0+bW9kZSk7CisJCWRybV9tb2RlX2RlYnVnX3ByaW50bW9kZWxpbmUo c2V0LT5jcnRjLT5tb2RlKTsKIAkJZHJtX21vZGVfZGVidWdfcHJpbnRtb2RlbGluZShzZXQtPm1v ZGUpOwogCQltb2RlX2NoYW5nZWQgPSB0cnVlOwogCX0KQEAgLTg4MSw3ICs4ODksNyBAQCB2b2lk IGRybV9oZWxwZXJfcmVzdW1lX2ZvcmNlX21vZGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJ aWYgKCFjcnRjLT5lbmFibGVkKQogCQkJY29udGludWU7CiAKLQkJcmV0ID0gZHJtX2NydGNfaGVs cGVyX3NldF9tb2RlKGNydGMsICZjcnRjLT5tb2RlLAorCQlyZXQgPSBkcm1fY3J0Y19oZWxwZXJf c2V0X21vZGUoY3J0YywgY3J0Yy0+bW9kZSwKIAkJCQkJICAgICAgIGNydGMtPngsIGNydGMtPnks IGNydGMtPnByaW1hcnktPmZiKTsKIAogCQkvKiBSZXN0b3JpbmcgdGhlIG9sZCBjb25maWcgc2hv dWxkIG5ldmVyIGZhaWwhICovCkBAIC0xMDQwLDEyICsxMDQ4LDEyIEBAIGludCBkcm1faGVscGVy X2NydGNfbW9kZV9zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGludCB4LCBpbnQgeSwK IAlkcm1fYXRvbWljX3NldF9mYl9mb3JfcGxhbmUocGxhbmVfc3RhdGUsIGNydGMtPnByaW1hcnkt PmZiKTsKIAlwbGFuZV9zdGF0ZS0+Y3J0Y194ID0gMDsKIAlwbGFuZV9zdGF0ZS0+Y3J0Y195ID0g MDsKLQlwbGFuZV9zdGF0ZS0+Y3J0Y19oID0gY3J0Yy0+bW9kZS52ZGlzcGxheTsKLQlwbGFuZV9z dGF0ZS0+Y3J0Y193ID0gY3J0Yy0+bW9kZS5oZGlzcGxheTsKKwlwbGFuZV9zdGF0ZS0+Y3J0Y19o ID0gY3J0Yy0+bW9kZSA/IGNydGMtPm1vZGUtPnZkaXNwbGF5IDogMDsKKwlwbGFuZV9zdGF0ZS0+ Y3J0Y193ID0gY3J0Yy0+bW9kZSA/IGNydGMtPm1vZGUtPmhkaXNwbGF5IDogMDsKIAlwbGFuZV9z dGF0ZS0+c3JjX3ggPSB4IDw8IDE2OwogCXBsYW5lX3N0YXRlLT5zcmNfeSA9IHkgPDwgMTY7Ci0J cGxhbmVfc3RhdGUtPnNyY19oID0gY3J0Yy0+bW9kZS52ZGlzcGxheSA8PCAxNjsKLQlwbGFuZV9z dGF0ZS0+c3JjX3cgPSBjcnRjLT5tb2RlLmhkaXNwbGF5IDw8IDE2OworCXBsYW5lX3N0YXRlLT5z cmNfaCA9IGNydGMtPm1vZGUgPyBjcnRjLT5tb2RlLT52ZGlzcGxheSA8PCAxNiA6IDA7CisJcGxh bmVfc3RhdGUtPnNyY193ID0gY3J0Yy0+bW9kZSA/IGNydGMtPm1vZGUtPmhkaXNwbGF5IDw8IDE2 IDogMDsKIAogCXJldHVybiBkcm1fcGxhbmVfaGVscGVyX2NvbW1pdChwbGFuZSwgcGxhbmVfc3Rh dGUsIG9sZF9mYik7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lX2hl bHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZV9oZWxwZXIuYwppbmRleCAzMzgwN2Uw Li4wNzlhYzJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lX2hlbHBlci5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmVfaGVscGVyLmMKQEAgLTIzMCw3ICsyMzAs NyBAQCBpbnQgZHJtX3ByaW1hcnlfaGVscGVyX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAogCXN0cnVjdCBkcm1fbW9kZV9zZXQgc2V0ID0gewog CQkuY3J0YyA9IGNydGMsCiAJCS5mYiA9IGZiLAotCQkubW9kZSA9ICZjcnRjLT5tb2RlLAorCQku bW9kZSA9IGNydGMtPm1vZGUsCiAJCS54ID0gc3JjX3ggPj4gMTYsCiAJCS55ID0gc3JjX3kgPj4g MTYsCiAJfTsKQEAgLTI0Nyw4ICsyNDcsOCBAQCBpbnQgZHJtX3ByaW1hcnlfaGVscGVyX3VwZGF0 ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQkueTIg PSBjcnRjX3kgKyBjcnRjX2gsCiAJfTsKIAljb25zdCBzdHJ1Y3QgZHJtX3JlY3QgY2xpcCA9IHsK LQkJLngyID0gY3J0Yy0+bW9kZS5oZGlzcGxheSwKLQkJLnkyID0gY3J0Yy0+bW9kZS52ZGlzcGxh eSwKKwkJLngyID0gY3J0Yy0+bW9kZSA/IGNydGMtPm1vZGUtPmhkaXNwbGF5IDogMCwKKwkJLnky ID0gY3J0Yy0+bW9kZSA/IGNydGMtPm1vZGUtPnZkaXNwbGF5IDogMCwKIAl9OwogCXN0cnVjdCBk cm1fY29ubmVjdG9yICoqY29ubmVjdG9yX2xpc3Q7CiAJaW50IG51bV9jb25uZWN0b3JzLCByZXQ7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTJjL3NpbDE2NF9kcnYuYyBiL2RyaXZlcnMv Z3B1L2RybS9pMmMvc2lsMTY0X2Rydi5jCmluZGV4IGRkN2NlYTIuLmY4YmFmMDggMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pMmMvc2lsMTY0X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pMmMvc2lsMTY0X2Rydi5jCkBAIC0yMTgsNyArMjE4LDcgQEAgc2lsMTY0X2VuY29kZXJfZHBt cyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIGludCBtb2RlKQogewogCXN0cnVjdCBzaWwx NjRfcHJpdiAqcHJpdiA9IHRvX3NpbDE2NF9wcml2KGVuY29kZXIpOwogCWJvb2wgb24gPSAobW9k ZSA9PSBEUk1fTU9ERV9EUE1TX09OKTsKLQlib29sIGR1YWxsaW5rID0gKG9uICYmIGVuY29kZXIt PmNydGMtPm1vZGUuY2xvY2sgPiAxNjUwMDApOworCWJvb2wgZHVhbGxpbmsgPSAob24gJiYgZW5j b2Rlci0+Y3J0Yy0+bW9kZS0+Y2xvY2sgPiAxNjUwMDApOwogCiAJc2lsMTY0X3NldF9wb3dlcl9z dGF0ZShkcm1faTJjX2VuY29kZXJfZ2V0X2NsaWVudChlbmNvZGVyKSwgb24pOwogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2F0b21pYy5jCmluZGV4IGM0NzkzODYuLjgwY2I1NjIgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2F0b21pYy5jCkBAIC0yMjIsMjYgKzIyMiwyMiBAQCBpbnRlbF9jcnRjX2R1 cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJCWNydGNfc3RhdGUgPSBrbWVt ZHVwKGludGVsX2NydGMtPmNvbmZpZywKIAkJCQkgICAgIHNpemVvZigqaW50ZWxfY3J0Yy0+Y29u ZmlnKSwgR0ZQX0tFUk5FTCk7CiAKLQlpZiAoY3J0Y19zdGF0ZSkgewotCQljcnRjX3N0YXRlLT5i YXNlLmNydGMgPSBjcnRjOworCWlmICghY3J0Y19zdGF0ZSkKKwkJcmV0dXJuIE5VTEw7CiAKLQkJ LyogWFhYOiB0aGlzIGlzIHRlZGlvdXMgKi8KLQkJaWYgKGludGVsX2NydGMtPmNvbmZpZykgewot CQkJY3J0Y19zdGF0ZS0+bW9kZSA9Ci0JCQkJZHJtX21vZGVfZHVwbGljYXRlKGNydGMtPmRldiwK LQkJCQkJCSAgIGludGVsX2NydGMtPmNvbmZpZy0+bW9kZSk7Ci0JCX0gZWxzZSB7Ci0JCQljcnRj X3N0YXRlLT5tb2RlID0KLQkJCQlremFsbG9jKHNpemVvZigqY3J0Y19zdGF0ZS0+bW9kZSksIEdG UF9LRVJORUwpOwotCQl9CisJY3J0Y19zdGF0ZS0+YmFzZS5jcnRjID0gY3J0YzsKIAotCQlpZiAo IWNydGNfc3RhdGUtPm1vZGUpIHsKLQkJCWtmcmVlKGNydGNfc3RhdGUpOwotCQkJY3J0Y19zdGF0 ZSA9IE5VTEw7Ci0JCX0KKwlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnICYmIGludGVsX2NydGMtPmNv bmZpZy0+bW9kZSkgeworCQljcnRjX3N0YXRlLT5tb2RlID0KKwkJCWRybV9tb2RlX2R1cGxpY2F0 ZShjcnRjLT5kZXYsIGludGVsX2NydGMtPmNvbmZpZy0+bW9kZSk7CisJCWlmICghY3J0Y19zdGF0 ZS0+bW9kZSkKKwkJCWdvdG8gZXJyOwogCX0KIAogCXJldHVybiAmY3J0Y19zdGF0ZS0+YmFzZTsK K2VycjoKKwlrZnJlZShjcnRjX3N0YXRlKTsKKwlyZXR1cm4gTlVMTDsKIH0KIAogLyoqCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfY3J0Yy5jIGIvZHJpdmVy cy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2NydGMuYwppbmRleCAyZjI4NjNjLi4xZDZjNTEw IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfY3J0Yy5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9jcnRjLmMKQEAgLTQxNCw4ICs0 MTQsOCBAQCBzdGF0aWMgaW50IG1kcDVfY3J0Y19zZXRfcHJvcGVydHkoc3RydWN0IGRybV9jcnRj ICpjcnRjLAogc3RhdGljIHZvaWQgZ2V0X3JvaShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHVpbnQz Ml90ICpyb2lfdywgdWludDMyX3QgKnJvaV9oKQogewogCXN0cnVjdCBtZHA1X2NydGMgKm1kcDVf Y3J0YyA9IHRvX21kcDVfY3J0YyhjcnRjKTsKLQl1aW50MzJfdCB4cmVzID0gY3J0Yy0+bW9kZS5o ZGlzcGxheTsKLQl1aW50MzJfdCB5cmVzID0gY3J0Yy0+bW9kZS52ZGlzcGxheTsKKwl1aW50MzJf dCB4cmVzID0gY3J0Yy0+bW9kZS0+aGRpc3BsYXk7CisJdWludDMyX3QgeXJlcyA9IGNydGMtPm1v ZGUtPnZkaXNwbGF5OwogCiAJLyoKIAkgKiBDdXJzb3IgUmVnaW9uIE9mIEludGVyZXN0IChST0kp IGlzIGEgcGxhbmUgcmVhZCBmcm9tIGN1cnNvcgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L25vdXZlYXUvZGlzcG52MDQvY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52 MDQvY3J0Yy5jCmluZGV4IDA5M2E0MjAuLmM5ZDE5YzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9ub3V2ZWF1L2Rpc3BudjA0L2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVh dS9kaXNwbnYwNC9jcnRjLmMKQEAgLTg4Niw3ICs4ODYsNyBAQCBudjA0X2NydGNfZG9fbW9kZV9z ZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJbnZfc2V0X2NydGNfYmFzZShkZXYsIG52 X2NydGMtPmluZGV4LCByZWdwLT5mYl9zdGFydCk7CiAKIAkvKiBVcGRhdGUgdGhlIGFyYml0cmF0 aW9uIHBhcmFtZXRlcnMuICovCi0Jbm91dmVhdV9jYWxjX2FyYihkZXYsIGNydGMtPm1vZGUuY2xv Y2ssIGRybV9mYi0+Yml0c19wZXJfcGl4ZWwsCisJbm91dmVhdV9jYWxjX2FyYihkZXYsIGNydGMt Pm1vZGUtPmNsb2NrLCBkcm1fZmItPmJpdHNfcGVyX3BpeGVsLAogCQkJICZhcmJfYnVyc3QsICZh cmJfbHdtKTsKIAogCXJlZ3AtPkNSVENbTlZfQ0lPX0NSRV9GRl9JTkRFWF0gPSBhcmJfYnVyc3Q7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYwNC9jdXJzb3IuYyBi L2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L2N1cnNvci5jCmluZGV4IDRlNjExNzMu LmU5YTgzYWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L2N1 cnNvci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L2N1cnNvci5jCkBA IC00Nyw3ICs0Nyw3IEBAIG52MDRfY3Vyc29yX3NldF9vZmZzZXQoc3RydWN0IG5vdXZlYXVfY3J0 YyAqbnZfY3J0YywgdWludDMyX3Qgb2Zmc2V0KQogCQlYTEFURShvZmZzZXQsIDE3LCBOVl9DSU9f Q1JFX0hDVVJfQUREUjBfQURSKTsKIAlyZWdwLT5DUlRDW05WX0NJT19DUkVfSENVUl9BRERSMV9J TkRFWF0gPQogCQlYTEFURShvZmZzZXQsIDExLCBOVl9DSU9fQ1JFX0hDVVJfQUREUjFfQURSKTsK LQlpZiAoY3J0Yy0+bW9kZS5mbGFncyAmIERSTV9NT0RFX0ZMQUdfREJMU0NBTikKKwlpZiAoY3J0 Yy0+bW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0RCTFNDQU4pCiAJCXJlZ3AtPkNSVENbTlZf Q0lPX0NSRV9IQ1VSX0FERFIxX0lOREVYXSB8PQogCQkJTUFTSyhOVl9DSU9fQ1JFX0hDVVJfQURE UjFfQ1VSX0RCTCk7CiAJcmVncC0+Q1JUQ1tOVl9DSU9fQ1JFX0hDVVJfQUREUjJfSU5ERVhdID0g b2Zmc2V0ID4+IDI0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52 MDQvdHZtb2Rlc252MTcuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L3R2bW9k ZXNudjE3LmMKaW5kZXggMDhjNmY1ZS4uZWIxMWVjOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL25vdXZlYXUvZGlzcG52MDQvdHZtb2Rlc252MTcuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v bm91dmVhdS9kaXNwbnYwNC90dm1vZGVzbnYxNy5jCkBAIC0zMTcsNyArMzE3LDcgQEAgc3RhdGlj IHZvaWQgdHZfc2V0dXBfZmlsdGVyKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIHsKIAlz dHJ1Y3QgbnYxN190dl9lbmNvZGVyICp0dl9lbmMgPSB0b190dl9lbmMoZW5jb2Rlcik7CiAJc3Ry dWN0IG52MTdfdHZfbm9ybV9wYXJhbXMgKnR2X25vcm0gPSBnZXRfdHZfbm9ybShlbmNvZGVyKTsK LQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSA9ICZlbmNvZGVyLT5jcnRjLT5tb2RlOwor CXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlID0gZW5jb2Rlci0+Y3J0Yy0+bW9kZTsKIAl1 aW50MzJfdCAoKmZpbHRlcnNbXSlbNF1bN10gPSB7JnR2X2VuYy0+c3RhdGUuaGZpbHRlciwKIAkJ CQkgICAgICAgJnR2X2VuYy0+c3RhdGUudmZpbHRlcn07CiAJaW50IGksIGosIGs7CkBAIC01NDYs NyArNTQ2LDcgQEAgdm9pZCBudjE3X2N0dl91cGRhdGVfcmVzY2FsZXIoc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyKQogCXN0cnVjdCBudjE3X3R2X2VuY29kZXIgKnR2X2VuYyA9IHRvX3R2X2Vu YyhlbmNvZGVyKTsKIAlpbnQgaGVhZCA9IG5vdXZlYXVfY3J0YyhlbmNvZGVyLT5jcnRjKS0+aW5k ZXg7CiAJc3RydWN0IG52MDRfY3J0Y19yZWcgKnJlZ3MgPSAmbnYwNF9kaXNwbGF5KGRldiktPm1v ZGVfcmVnLmNydGNfcmVnW2hlYWRdOwotCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpjcnRjX21v ZGUgPSAmZW5jb2Rlci0+Y3J0Yy0+bW9kZTsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqY3J0 Y19tb2RlID0gZW5jb2Rlci0+Y3J0Yy0+bW9kZTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq b3V0cHV0X21vZGUgPQogCQkmZ2V0X3R2X25vcm0oZW5jb2RlciktPmN0dl9lbmNfbW9kZS5tb2Rl OwogCWludCBvdmVyc2NhbiwgaG1hcmdpbiwgdm1hcmdpbiwgaHJhdGlvLCB2cmF0aW87CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Nvbm5lY3Rvci5jIGIvZHJp dmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9jb25uZWN0b3IuYwppbmRleCA2MDRkOTQ0Li4x YjRhYzY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Nvbm5l Y3Rvci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfY29ubmVjdG9yLmMK QEAgLTUwMSw3ICs1MDEsNyBAQCBub3V2ZWF1X2Nvbm5lY3Rvcl9zZXRfcHJvcGVydHkoc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAogCQlpZiAobW9kZXNldCB8fCAhbnZfY3J0Yy0+ c2V0X3NjYWxlKSB7CiAJCQlyZXQgPSBkcm1fY3J0Y19oZWxwZXJfc2V0X21vZGUoJm52X2NydGMt PmJhc2UsCi0JCQkJCQkJJm52X2NydGMtPmJhc2UubW9kZSwKKwkJCQkJCQludl9jcnRjLT5iYXNl Lm1vZGUsCiAJCQkJCQkJbnZfY3J0Yy0+YmFzZS54LAogCQkJCQkJCW52X2NydGMtPmJhc2UueSwg TlVMTCk7CiAJCQlpZiAoIXJldCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1 L252NTBfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnY1MF9kaXNwbGF5LmMK aW5kZXggMDViMjFlZi4uYjFkYTc0MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZl YXUvbnY1MF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnY1MF9kaXNw bGF5LmMKQEAgLTcyMiw3ICs3MjIsNyBAQCBzdGF0aWMgaW50CiBudjUwX2NydGNfc2V0X3NjYWxl KHN0cnVjdCBub3V2ZWF1X2NydGMgKm52X2NydGMsIGJvb2wgdXBkYXRlKQogewogCXN0cnVjdCBu djUwX21hc3QgKm1hc3QgPSBudjUwX21hc3QobnZfY3J0Yy0+YmFzZS5kZXYpOwotCXN0cnVjdCBk cm1fZGlzcGxheV9tb2RlICpvbW9kZSwgKnVtb2RlID0gJm52X2NydGMtPmJhc2UubW9kZTsKKwlz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqb21vZGUsICp1bW9kZSA9IG52X2NydGMtPmJhc2UubW9k ZTsKIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSAmbnZfY3J0Yy0+YmFzZTsKIAlzdHJ1Y3Qgbm91 dmVhdV9jb25uZWN0b3IgKm52X2Nvbm5lY3RvcjsKIAlpbnQgbW9kZSA9IERSTV9NT0RFX1NDQUxF X05PTkU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2NydGMuYyBi L2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfY3J0Yy5jCmluZGV4IGYzOTRmZGQuLmIzZWE2 YWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfY3J0Yy5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfY3J0Yy5jCkBAIC0yODIsNyArMjgyLDcgQEAg c3RhdGljIGludCBvbWFwX2NydGNfbW9kZV9zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMs IGludCB4LCBpbnQgeSwKIHsKIAlzdHJ1Y3Qgb21hcF9jcnRjICpvbWFwX2NydGMgPSB0b19vbWFw X2NydGMoY3J0Yyk7CiAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmUgPSBvbWFwX2NydGMtPnBsYW5l OwotCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlID0gJmNydGMtPm1vZGU7CisJc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSBjcnRjLT5tb2RlOwogCiAJcmV0dXJuIG9tYXBfcGxh bmVfbW9kZV9zZXQocGxhbmUsIGNydGMsIGNydGMtPnByaW1hcnktPmZiLAogCQkJMCwgMCwgbW9k ZS0+aGRpc3BsYXksIG1vZGUtPnZkaXNwbGF5LApAQCAtMzE1LDcgKzMxNSw3IEBAIHN0YXRpYyB2 b2lkIHBhZ2VfZmxpcF93b3JrZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCXN0cnVjdCBv bWFwX2NydGMgKm9tYXBfY3J0YyA9CiAJCQljb250YWluZXJfb2Yod29yaywgc3RydWN0IG9tYXBf Y3J0YywgcGFnZV9mbGlwX3dvcmspOwogCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9ICZvbWFwX2Ny dGMtPmJhc2U7Ci0Jc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSAmY3J0Yy0+bW9kZTsK KwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSA9IGNydGMtPm1vZGU7CiAJc3RydWN0IGRy bV9nZW1fb2JqZWN0ICpibzsKIAogCWRybV9tb2Rlc2V0X2xvY2soJmNydGMtPm11dGV4LCBOVUxM KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2Rpc3BsYXkuYyBiL2RyaXZl cnMvZ3B1L2RybS9xeGwvcXhsX2Rpc3BsYXkuYwppbmRleCAxODkxMTlkLi44MzE4MGU0IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL3F4bC9xeGxfZGlzcGxheS5jCkBAIC02NjUsNyArNjY1LDcgQEAgc3RhdGljIGludCBx eGxfY3J0Y19tb2RlX3NldChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiBzdGF0aWMgdm9pZCBxeGxf Y3J0Y19wcmVwYXJlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKIAlEUk1fREVCVUcoImN1cnJl bnQ6ICVkeCVkKyVkKyVkICglZCkuXG4iLAotCQkgIGNydGMtPm1vZGUuaGRpc3BsYXksIGNydGMt Pm1vZGUudmRpc3BsYXksCisJCSAgY3J0Yy0+bW9kZS0+aGRpc3BsYXksIGNydGMtPm1vZGUtPnZk aXNwbGF5LAogCQkgIGNydGMtPngsIGNydGMtPnksIGNydGMtPmVuYWJsZWQpOwogfQogCkBAIC03 NjUsNyArNzY1LDcgQEAgc3RhdGljIHZvaWQgcXhsX3dyaXRlX21vbml0b3JzX2NvbmZpZ19mb3Jf ZW5jb2RlcihzdHJ1Y3QgcXhsX2RldmljZSAqcWRldiwKIAloZWFkID0gJnFkZXYtPm1vbml0b3Jz X2NvbmZpZy0+aGVhZHNbaV07CiAJaGVhZC0+aWQgPSBpOwogCWlmIChlbmNvZGVyLT5jcnRjLT5l bmFibGVkKSB7Ci0JCW1vZGUgPSAmZW5jb2Rlci0+Y3J0Yy0+bW9kZTsKKwkJbW9kZSA9IGVuY29k ZXItPmNydGMtPm1vZGU7CiAJCWhlYWQtPndpZHRoID0gbW9kZS0+aGRpc3BsYXk7CiAJCWhlYWQt PmhlaWdodCA9IG1vZGUtPnZkaXNwbGF5OwogCQloZWFkLT54ID0gZW5jb2Rlci0+Y3J0Yy0+eDsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vYXRvbWJpb3NfY3J0Yy5jIGIvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9hdG9tYmlvc19jcnRjLmMKaW5kZXggMDUwZTkwOC4uMjY5ZTlm YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hdG9tYmlvc19jcnRjLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hdG9tYmlvc19jcnRjLmMKQEAgLTE0MDQsMTAgKzE0 MDQsMTAgQEAgc3RhdGljIGludCBkY2U0X2NydGNfZG9fc2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRj ICpjcnRjLAogCXkgJj0gfjE7CiAJV1JFRzMyKEVWRVJHUkVFTl9WSUVXUE9SVF9TVEFSVCArIHJh ZGVvbl9jcnRjLT5jcnRjX29mZnNldCwKIAkgICAgICAgKHggPDwgMTYpIHwgeSk7Ci0Jdmlld3Bv cnRfdyA9IGNydGMtPm1vZGUuaGRpc3BsYXk7Ci0Jdmlld3BvcnRfaCA9IChjcnRjLT5tb2RlLnZk aXNwbGF5ICsgMSkgJiB+MTsKKwl2aWV3cG9ydF93ID0gY3J0Yy0+bW9kZS0+aGRpc3BsYXk7CisJ dmlld3BvcnRfaCA9IChjcnRjLT5tb2RlLT52ZGlzcGxheSArIDEpICYgfjE7CiAJaWYgKChyZGV2 LT5mYW1pbHkgPj0gQ0hJUF9CT05BSVJFKSAmJgotCSAgICAoY3J0Yy0+bW9kZS5mbGFncyAmIERS TV9NT0RFX0ZMQUdfSU5URVJMQUNFKSkKKwkgICAgKGNydGMtPm1vZGUtPmZsYWdzICYgRFJNX01P REVfRkxBR19JTlRFUkxBQ0UpKQogCQl2aWV3cG9ydF9oICo9IDI7CiAJV1JFRzMyKEVWRVJHUkVF Tl9WSUVXUE9SVF9TSVpFICsgcmFkZW9uX2NydGMtPmNydGNfb2Zmc2V0LAogCSAgICAgICAodmll d3BvcnRfdyA8PCAxNikgfCB2aWV3cG9ydF9oKTsKQEAgLTE2MDcsOCArMTYwNyw4IEBAIHN0YXRp YyBpbnQgYXZpdm9fY3J0Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJeSAm PSB+MTsKIAlXUkVHMzIoQVZJVk9fRDFNT0RFX1ZJRVdQT1JUX1NUQVJUICsgcmFkZW9uX2NydGMt PmNydGNfb2Zmc2V0LAogCSAgICAgICAoeCA8PCAxNikgfCB5KTsKLQl2aWV3cG9ydF93ID0gY3J0 Yy0+bW9kZS5oZGlzcGxheTsKLQl2aWV3cG9ydF9oID0gKGNydGMtPm1vZGUudmRpc3BsYXkgKyAx KSAmIH4xOworCXZpZXdwb3J0X3cgPSBjcnRjLT5tb2RlLT5oZGlzcGxheTsKKwl2aWV3cG9ydF9o ID0gKGNydGMtPm1vZGUtPnZkaXNwbGF5ICsgMSkgJiB+MTsKIAlXUkVHMzIoQVZJVk9fRDFNT0RF X1ZJRVdQT1JUX1NJWkUgKyByYWRlb25fY3J0Yy0+Y3J0Y19vZmZzZXQsCiAJICAgICAgICh2aWV3 cG9ydF93IDw8IDE2KSB8IHZpZXdwb3J0X2gpOwogCkBAIC0xNzgwLDcgKzE3ODAsNyBAQCBzdGF0 aWMgaW50IHJhZGVvbl9nZXRfc2hhcmVkX25vbmRwX3BwbGwoc3RydWN0IGRybV9jcnRjICpjcnRj KQogCQkJfQogCQkJLyogZm9yIG5vbi1EUCBjaGVjayB0aGUgY2xvY2sgKi8KIAkJCXRlc3RfYWRq dXN0ZWRfY2xvY2sgPSB0ZXN0X3JhZGVvbl9jcnRjLT5hZGp1c3RlZF9jbG9jazsKLQkJCWlmICgo Y3J0Yy0+bW9kZS5jbG9jayA9PSB0ZXN0X2NydGMtPm1vZGUuY2xvY2spICYmCisJCQlpZiAoKGNy dGMtPm1vZGUtPmNsb2NrID09IHRlc3RfY3J0Yy0+bW9kZS0+Y2xvY2spICYmCiAJCQkgICAgKGFk anVzdGVkX2Nsb2NrID09IHRlc3RfYWRqdXN0ZWRfY2xvY2spICYmCiAJCQkgICAgKHJhZGVvbl9j cnRjLT5zc19lbmFibGVkID09IHRlc3RfcmFkZW9uX2NydGMtPnNzX2VuYWJsZWQpICYmCiAJCQkg ICAgKHRlc3RfcmFkZW9uX2NydGMtPnBsbF9pZCAhPSBBVE9NX1BQTExfSU5WQUxJRCkpCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2Npay5jIGIvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9jaWsuYwppbmRleCAzZTY3MGQzLi5iYjYwNGYwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL2Npay5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vY2lrLmMKQEAg LTkzMjUsNyArOTMyNSw3IEBAIHN0YXRpYyB2b2lkIGRjZThfcHJvZ3JhbV93YXRlcm1hcmtzKHN0 cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogCQkJCSAgICBzdHJ1Y3QgcmFkZW9uX2NydGMgKnJh ZGVvbl9jcnRjLAogCQkJCSAgICB1MzIgbGJfc2l6ZSwgdTMyIG51bV9oZWFkcykKIHsKLQlzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSA9ICZyYWRlb25fY3J0Yy0+YmFzZS5tb2RlOworCXN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlID0gcmFkZW9uX2NydGMtPmJhc2UubW9kZTsKIAlz dHJ1Y3QgZGNlOF93bV9wYXJhbXMgd21fbG93LCB3bV9oaWdoOwogCXUzMiBwaXhlbF9wZXJpb2Q7 CiAJdTMyIGxpbmVfdGltZSA9IDA7CkBAIC05NDY3LDcgKzk0NjcsNyBAQCB2b2lkIGRjZThfYmFu ZHdpZHRoX3VwZGF0ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKIAkJCW51bV9oZWFkcysr OwogCX0KIAlmb3IgKGkgPSAwOyBpIDwgcmRldi0+bnVtX2NydGM7IGkrKykgewotCQltb2RlID0g JnJkZXYtPm1vZGVfaW5mby5jcnRjc1tpXS0+YmFzZS5tb2RlOworCQltb2RlID0gcmRldi0+bW9k ZV9pbmZvLmNydGNzW2ldLT5iYXNlLm1vZGU7CiAJCWxiX3NpemUgPSBkY2U4X2xpbmVfYnVmZmVy X2FkanVzdChyZGV2LCByZGV2LT5tb2RlX2luZm8uY3J0Y3NbaV0sIG1vZGUpOwogCQlkY2U4X3By b2dyYW1fd2F0ZXJtYXJrcyhyZGV2LCByZGV2LT5tb2RlX2luZm8uY3J0Y3NbaV0sIGxiX3NpemUs IG51bV9oZWFkcyk7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVy Z3JlZW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdyZWVuLmMKaW5kZXggOTczZGYw Ni4uNDM5YTBlZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW4u YworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJncmVlbi5jCkBAIC0yMTgwLDcgKzIx ODAsNyBAQCBzdGF0aWMgdm9pZCBldmVyZ3JlZW5fcHJvZ3JhbV93YXRlcm1hcmtzKHN0cnVjdCBy YWRlb25fZGV2aWNlICpyZGV2LAogCQkJCQkgc3RydWN0IHJhZGVvbl9jcnRjICpyYWRlb25fY3J0 YywKIAkJCQkJIHUzMiBsYl9zaXplLCB1MzIgbnVtX2hlYWRzKQogewotCXN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICptb2RlID0gJnJhZGVvbl9jcnRjLT5iYXNlLm1vZGU7CisJc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKm1vZGUgPSByYWRlb25fY3J0Yy0+YmFzZS5tb2RlOwogCXN0cnVjdCBldmVy Z3JlZW5fd21fcGFyYW1zIHdtX2xvdywgd21faGlnaDsKIAl1MzIgZHJhbV9jaGFubmVsczsKIAl1 MzIgcGl4ZWxfcGVyaW9kOwpAQCAtMjM1Niw4ICsyMzU2LDggQEAgdm9pZCBldmVyZ3JlZW5fYmFu ZHdpZHRoX3VwZGF0ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKIAkJCW51bV9oZWFkcysr OwogCX0KIAlmb3IgKGkgPSAwOyBpIDwgcmRldi0+bnVtX2NydGM7IGkgKz0gMikgewotCQltb2Rl MCA9ICZyZGV2LT5tb2RlX2luZm8uY3J0Y3NbaV0tPmJhc2UubW9kZTsKLQkJbW9kZTEgPSAmcmRl di0+bW9kZV9pbmZvLmNydGNzW2krMV0tPmJhc2UubW9kZTsKKwkJbW9kZTAgPSByZGV2LT5tb2Rl X2luZm8uY3J0Y3NbaV0tPmJhc2UubW9kZTsKKwkJbW9kZTEgPSByZGV2LT5tb2RlX2luZm8uY3J0 Y3NbaSsxXS0+YmFzZS5tb2RlOwogCQlsYl9zaXplID0gZXZlcmdyZWVuX2xpbmVfYnVmZmVyX2Fk anVzdChyZGV2LCByZGV2LT5tb2RlX2luZm8uY3J0Y3NbaV0sIG1vZGUwLCBtb2RlMSk7CiAJCWV2 ZXJncmVlbl9wcm9ncmFtX3dhdGVybWFya3MocmRldiwgcmRldi0+bW9kZV9pbmZvLmNydGNzW2ld LCBsYl9zaXplLCBudW1faGVhZHMpOwogCQlsYl9zaXplID0gZXZlcmdyZWVuX2xpbmVfYnVmZmVy X2FkanVzdChyZGV2LCByZGV2LT5tb2RlX2luZm8uY3J0Y3NbaSsxXSwgbW9kZTEsIG1vZGUwKTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjEwMC5jIGIvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9yMTAwLmMKaW5kZXggMDRmMjUxNC4uMzFmYzUxNCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yMTAwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9y MTAwLmMKQEAgLTMyMjMsMTIgKzMyMjMsMTIgQEAgdm9pZCByMTAwX2JhbmR3aWR0aF91cGRhdGUo c3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAJcmFkZW9uX3VwZGF0ZV9kaXNwbGF5X3ByaW9y aXR5KHJkZXYpOwogCiAJaWYgKHJkZXYtPm1vZGVfaW5mby5jcnRjc1swXS0+YmFzZS5lbmFibGVk KSB7Ci0JCW1vZGUxID0gJnJkZXYtPm1vZGVfaW5mby5jcnRjc1swXS0+YmFzZS5tb2RlOworCQlt b2RlMSA9IHJkZXYtPm1vZGVfaW5mby5jcnRjc1swXS0+YmFzZS5tb2RlOwogCQlwaXhlbF9ieXRl czEgPSByZGV2LT5tb2RlX2luZm8uY3J0Y3NbMF0tPmJhc2UucHJpbWFyeS0+ZmItPmJpdHNfcGVy X3BpeGVsIC8gODsKIAl9CiAJaWYgKCEocmRldi0+ZmxhZ3MgJiBSQURFT05fU0lOR0xFX0NSVEMp KSB7CiAJCWlmIChyZGV2LT5tb2RlX2luZm8uY3J0Y3NbMV0tPmJhc2UuZW5hYmxlZCkgewotCQkJ bW9kZTIgPSAmcmRldi0+bW9kZV9pbmZvLmNydGNzWzFdLT5iYXNlLm1vZGU7CisJCQltb2RlMiA9 IHJkZXYtPm1vZGVfaW5mby5jcnRjc1sxXS0+YmFzZS5tb2RlOwogCQkJcGl4ZWxfYnl0ZXMyID0g cmRldi0+bW9kZV9pbmZvLmNydGNzWzFdLT5iYXNlLnByaW1hcnktPmZiLT5iaXRzX3Blcl9waXhl bCAvIDg7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl9jb25uZWN0b3JzLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jb25uZWN0b3Jz LmMKaW5kZXggMmFhZTc3Zi4uOTFlZWI2ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yYWRlb25fY29ubmVjdG9ycy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFk ZW9uX2Nvbm5lY3RvcnMuYwpAQCAtOTAsNyArOTAsNyBAQCBzdGF0aWMgdm9pZCByYWRlb25fcHJv cGVydHlfY2hhbmdlX21vZGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogCXN0cnVjdCBk cm1fY3J0YyAqY3J0YyA9IGVuY29kZXItPmNydGM7CiAKIAlpZiAoY3J0YyAmJiBjcnRjLT5lbmFi bGVkKSB7Ci0JCWRybV9jcnRjX2hlbHBlcl9zZXRfbW9kZShjcnRjLCAmY3J0Yy0+bW9kZSwKKwkJ ZHJtX2NydGNfaGVscGVyX3NldF9tb2RlKGNydGMsIGNydGMtPm1vZGUsCiAJCQkJCSBjcnRjLT54 LCBjcnRjLT55LCBjcnRjLT5wcmltYXJ5LT5mYik7CiAJfQogfQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY3Vyc29yLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbl9jdXJzb3IuYwppbmRleCA0NWU1NDA2Li5mYzJjNTFiIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jdXJzb3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3JhZGVvbl9jdXJzb3IuYwpAQCAtMTYyLDcgKzE2Miw3IEBAIHN0YXRpYyBpbnQgcmFk ZW9uX2N1cnNvcl9tb3ZlX2xvY2tlZChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGludCB4LCBpbnQg eSkKIAkJCWludCBjdXJzb3JfZW5kLCBmcmFtZV9lbmQ7CiAKIAkJCWN1cnNvcl9lbmQgPSB4IC0g eG9yaWdpbiArIHc7Ci0JCQlmcmFtZV9lbmQgPSBjcnRjLT54ICsgY3J0Yy0+bW9kZS5jcnRjX2hk aXNwbGF5OworCQkJZnJhbWVfZW5kID0gY3J0Yy0+eCArIGNydGMtPm1vZGUtPmNydGNfaGRpc3Bs YXk7CiAJCQlpZiAoY3Vyc29yX2VuZCA+PSBmcmFtZV9lbmQpIHsKIAkJCQl3ID0gdyAtIChjdXJz b3JfZW5kIC0gZnJhbWVfZW5kKTsKIAkJCQlpZiAoIShmcmFtZV9lbmQgJiAweDdmKSkKQEAgLTE5 Myw3ICsxOTMsNyBAQCBzdGF0aWMgaW50IHJhZGVvbl9jdXJzb3JfbW92ZV9sb2NrZWQoc3RydWN0 IGRybV9jcnRjICpjcnRjLCBpbnQgeCwgaW50IHkpCiAJCVdSRUczMihBVklWT19EMUNVUl9TSVpF ICsgcmFkZW9uX2NydGMtPmNydGNfb2Zmc2V0LAogCQkgICAgICAgKCh3IC0gMSkgPDwgMTYpIHwg KHJhZGVvbl9jcnRjLT5jdXJzb3JfaGVpZ2h0IC0gMSkpOwogCX0gZWxzZSB7Ci0JCWlmIChjcnRj LT5tb2RlLmZsYWdzICYgRFJNX01PREVfRkxBR19EQkxTQ0FOKQorCQlpZiAoY3J0Yy0+bW9kZS0+ ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0RCTFNDQU4pCiAJCQl5ICo9IDI7CiAKIAkJV1JFRzMyKFJB REVPTl9DVVJfSE9SWl9WRVJUX09GRiArIHJhZGVvbl9jcnRjLT5jcnRjX29mZnNldCwKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Rpc3BsYXkuYyBiL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX2Rpc3BsYXkuYwppbmRleCA5MTNmYWZhLi40ZjJlYmUwZSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGlzcGxheS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Rpc3BsYXkuYwpAQCAtMTcwMiw5ICsxNzAy LDkgQEAgYm9vbCByYWRlb25fY3J0Y19zY2FsaW5nX21vZGVfZml4dXAoc3RydWN0IGRybV9jcnRj ICpjcnRjLAogCQkJbWVtY3B5KCZyYWRlb25fY3J0Yy0+bmF0aXZlX21vZGUsCiAJCQkgICAgICAg JnJhZGVvbl9lbmNvZGVyLT5uYXRpdmVfbW9kZSwKIAkJCQlzaXplb2Yoc3RydWN0IGRybV9kaXNw bGF5X21vZGUpKTsKLQkJCXNyY192ID0gY3J0Yy0+bW9kZS52ZGlzcGxheTsKKwkJCXNyY192ID0g Y3J0Yy0+bW9kZS0+dmRpc3BsYXk7CiAJCQlkc3RfdiA9IHJhZGVvbl9jcnRjLT5uYXRpdmVfbW9k ZS52ZGlzcGxheTsKLQkJCXNyY19oID0gY3J0Yy0+bW9kZS5oZGlzcGxheTsKKwkJCXNyY19oID0g Y3J0Yy0+bW9kZS0+aGRpc3BsYXk7CiAJCQlkc3RfaCA9IHJhZGVvbl9jcnRjLT5uYXRpdmVfbW9k ZS5oZGlzcGxheTsKIAogCQkJLyogZml4IHVwIGZvciBvdmVyc2NhbiBvbiBoZG1pICovCkBAIC0x NzIzLDEwICsxNzIzLDEwIEBAIGJvb2wgcmFkZW9uX2NydGNfc2NhbGluZ19tb2RlX2ZpeHVwKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCQllbHNlCiAJCQkJCXJhZGVvbl9jcnRjLT52X2JvcmRl ciA9IChtb2RlLT52ZGlzcGxheSA+PiA1KSArIDE2OwogCQkJCXJhZGVvbl9jcnRjLT5ybXhfdHlw ZSA9IFJNWF9GVUxMOwotCQkJCXNyY192ID0gY3J0Yy0+bW9kZS52ZGlzcGxheTsKLQkJCQlkc3Rf diA9IGNydGMtPm1vZGUudmRpc3BsYXkgLSAocmFkZW9uX2NydGMtPnZfYm9yZGVyICogMik7Ci0J CQkJc3JjX2ggPSBjcnRjLT5tb2RlLmhkaXNwbGF5OwotCQkJCWRzdF9oID0gY3J0Yy0+bW9kZS5o ZGlzcGxheSAtIChyYWRlb25fY3J0Yy0+aF9ib3JkZXIgKiAyKTsKKwkJCQlzcmNfdiA9IGNydGMt Pm1vZGUtPnZkaXNwbGF5OworCQkJCWRzdF92ID0gY3J0Yy0+bW9kZS0+dmRpc3BsYXkgLSAocmFk ZW9uX2NydGMtPnZfYm9yZGVyICogMik7CisJCQkJc3JjX2ggPSBjcnRjLT5tb2RlLT5oZGlzcGxh eTsKKwkJCQlkc3RfaCA9IGNydGMtPm1vZGUtPmhkaXNwbGF5IC0gKHJhZGVvbl9jcnRjLT5oX2Jv cmRlciAqIDIpOwogCQkJfQogCQkJZmlyc3QgPSBmYWxzZTsKIAkJfSBlbHNlIHsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnM2MDAuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vcnM2MDAuYwppbmRleCA5N2E5MDQ4Li4xNWM5MDg1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JzNjAwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yczYwMC5j CkBAIC04OTQsOSArODk0LDkgQEAgdm9pZCByczYwMF9iYW5kd2lkdGhfdXBkYXRlKHN0cnVjdCBy YWRlb25fZGV2aWNlICpyZGV2KQogCXJhZGVvbl91cGRhdGVfZGlzcGxheV9wcmlvcml0eShyZGV2 KTsKIAogCWlmIChyZGV2LT5tb2RlX2luZm8uY3J0Y3NbMF0tPmJhc2UuZW5hYmxlZCkKLQkJbW9k ZTAgPSAmcmRldi0+bW9kZV9pbmZvLmNydGNzWzBdLT5iYXNlLm1vZGU7CisJCW1vZGUwID0gcmRl di0+bW9kZV9pbmZvLmNydGNzWzBdLT5iYXNlLm1vZGU7CiAJaWYgKHJkZXYtPm1vZGVfaW5mby5j cnRjc1sxXS0+YmFzZS5lbmFibGVkKQotCQltb2RlMSA9ICZyZGV2LT5tb2RlX2luZm8uY3J0Y3Nb MV0tPmJhc2UubW9kZTsKKwkJbW9kZTEgPSByZGV2LT5tb2RlX2luZm8uY3J0Y3NbMV0tPmJhc2Uu bW9kZTsKIAogCXJzNjkwX2xpbmVfYnVmZmVyX2FkanVzdChyZGV2LCBtb2RlMCwgbW9kZTEpOwog CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JzNjkwLmMgYi9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JzNjkwLmMKaW5kZXggNTE2Y2EyNy4uMGE4Y2UxOSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yczY5MC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vcnM2OTAuYwpAQCAtMjYzLDcgKzI2Myw3IEBAIHN0YXRpYyB2b2lkIHJzNjkwX2NydGNfYmFu ZHdpZHRoX2NvbXB1dGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJCQkJCSBzdHJ1Y3Qg cnM2OTBfd2F0ZXJtYXJrICp3bSwKIAkJCQkJIGJvb2wgbG93KQogewotCXN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICptb2RlID0gJmNydGMtPmJhc2UubW9kZTsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqbW9kZSA9IGNydGMtPmJhc2UubW9kZTsKIAlmaXhlZDIwXzEyIGEsIGIsIGM7CiAJZml4 ZWQyMF8xMiBwY2xrLCByZXF1ZXN0X2ZpZm9fZGVwdGgsIHRvbGVyYWJsZV9sYXRlbmN5LCBlc3Rp bWF0ZWRfd2lkdGg7CiAJZml4ZWQyMF8xMiBjb25zdW1wdGlvbl90aW1lLCBsaW5lX3RpbWUsIGNo dW5rX3RpbWUsIHJlYWRfZGVsYXlfbGF0ZW5jeTsKQEAgLTMzNyw3ICszMzcsNyBAQCBzdGF0aWMg dm9pZCByczY5MF9jcnRjX2JhbmR3aWR0aF9jb21wdXRlKHN0cnVjdCByYWRlb25fZGV2aWNlICpy ZGV2LAogCSAqICBMaW5lVGltZSA9IHRvdGFsIG51bWJlciBvZiBob3Jpem9udGFsIHBpeGVscwog CSAqICBwY2xrID0gcGl4ZWwgY2xvY2sgcGVyaW9kKG5zKQogCSAqLwotCWEuZnVsbCA9IGRmaXhl ZF9jb25zdChjcnRjLT5iYXNlLm1vZGUuY3J0Y19odG90YWwpOworCWEuZnVsbCA9IGRmaXhlZF9j b25zdChjcnRjLT5iYXNlLm1vZGUtPmNydGNfaHRvdGFsKTsKIAlsaW5lX3RpbWUuZnVsbCA9IGRm aXhlZF9tdWwoYSwgcGNsayk7CiAKIAkvKiBEZXRlcm1pbmUgYWN0aXZlIHRpbWUKQEAgLTM0NSw4 ICszNDUsOCBAQCBzdGF0aWMgdm9pZCByczY5MF9jcnRjX2JhbmR3aWR0aF9jb21wdXRlKHN0cnVj dCByYWRlb25fZGV2aWNlICpyZGV2LAogCSAqICBoYWN0aXZlID0gdG90YWwgbnVtYmVyIG9mIGhv cml6b250YWwgYWN0aXZlIHBpeGVscwogCSAqICBodG90YWwgPSB0b3RhbCBudW1iZXIgb2YgaG9y aXpvbnRhbCBwaXhlbHMKIAkgKi8KLQlhLmZ1bGwgPSBkZml4ZWRfY29uc3QoY3J0Yy0+YmFzZS5t b2RlLmNydGNfaHRvdGFsKTsKLQliLmZ1bGwgPSBkZml4ZWRfY29uc3QoY3J0Yy0+YmFzZS5tb2Rl LmNydGNfaGRpc3BsYXkpOworCWEuZnVsbCA9IGRmaXhlZF9jb25zdChjcnRjLT5iYXNlLm1vZGUt PmNydGNfaHRvdGFsKTsKKwliLmZ1bGwgPSBkZml4ZWRfY29uc3QoY3J0Yy0+YmFzZS5tb2RlLT5j cnRjX2hkaXNwbGF5KTsKIAl3bS0+YWN0aXZlX3RpbWUuZnVsbCA9IGRmaXhlZF9tdWwobGluZV90 aW1lLCBiKTsKIAl3bS0+YWN0aXZlX3RpbWUuZnVsbCA9IGRmaXhlZF9kaXYod20tPmFjdGl2ZV90 aW1lLCBhKTsKIApAQCAtNDI5LDE0ICs0MjksMTQgQEAgc3RhdGljIHZvaWQgcnM2OTBfY3J0Y19i YW5kd2lkdGhfY29tcHV0ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAkgKiAgd2lkdGgg PSB2aWV3cG9ydCB3aWR0aCBpbiBwaXhlbHMKIAkgKi8KIAlhLmZ1bGwgPSBkZml4ZWRfY29uc3Qo MTYpOwotCXdtLT5wcmlvcml0eV9tYXJrX21heC5mdWxsID0gZGZpeGVkX2NvbnN0KGNydGMtPmJh c2UubW9kZS5jcnRjX2hkaXNwbGF5KTsKKwl3bS0+cHJpb3JpdHlfbWFya19tYXguZnVsbCA9IGRm aXhlZF9jb25zdChjcnRjLT5iYXNlLm1vZGUtPmNydGNfaGRpc3BsYXkpOwogCXdtLT5wcmlvcml0 eV9tYXJrX21heC5mdWxsID0gZGZpeGVkX2Rpdih3bS0+cHJpb3JpdHlfbWFya19tYXgsIGEpOwog CXdtLT5wcmlvcml0eV9tYXJrX21heC5mdWxsID0gZGZpeGVkX2NlaWwod20tPnByaW9yaXR5X21h cmtfbWF4KTsKIAogCS8qIERldGVybWluZSBlc3RpbWF0ZWQgd2lkdGggKi8KIAllc3RpbWF0ZWRf d2lkdGguZnVsbCA9IHRvbGVyYWJsZV9sYXRlbmN5LmZ1bGwgLSB3bS0+d29yc3RfY2FzZV9sYXRl bmN5LmZ1bGw7CiAJZXN0aW1hdGVkX3dpZHRoLmZ1bGwgPSBkZml4ZWRfZGl2KGVzdGltYXRlZF93 aWR0aCwgY29uc3VtcHRpb25fdGltZSk7Ci0JaWYgKGRmaXhlZF90cnVuYyhlc3RpbWF0ZWRfd2lk dGgpID4gY3J0Yy0+YmFzZS5tb2RlLmNydGNfaGRpc3BsYXkpIHsKKwlpZiAoZGZpeGVkX3RydW5j KGVzdGltYXRlZF93aWR0aCkgPiBjcnRjLT5iYXNlLm1vZGUtPmNydGNfaGRpc3BsYXkpIHsKIAkJ d20tPnByaW9yaXR5X21hcmsuZnVsbCA9IGRmaXhlZF9jb25zdCgxMCk7CiAJfSBlbHNlIHsKIAkJ YS5mdWxsID0gZGZpeGVkX2NvbnN0KDE2KTsKQEAgLTU4Niw5ICs1ODYsOSBAQCB2b2lkIHJzNjkw X2JhbmR3aWR0aF91cGRhdGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAJcmFkZW9uX3Vw ZGF0ZV9kaXNwbGF5X3ByaW9yaXR5KHJkZXYpOwogCiAJaWYgKHJkZXYtPm1vZGVfaW5mby5jcnRj c1swXS0+YmFzZS5lbmFibGVkKQotCQltb2RlMCA9ICZyZGV2LT5tb2RlX2luZm8uY3J0Y3NbMF0t PmJhc2UubW9kZTsKKwkJbW9kZTAgPSByZGV2LT5tb2RlX2luZm8uY3J0Y3NbMF0tPmJhc2UubW9k ZTsKIAlpZiAocmRldi0+bW9kZV9pbmZvLmNydGNzWzFdLT5iYXNlLmVuYWJsZWQpCi0JCW1vZGUx ID0gJnJkZXYtPm1vZGVfaW5mby5jcnRjc1sxXS0+YmFzZS5tb2RlOworCQltb2RlMSA9IHJkZXYt Pm1vZGVfaW5mby5jcnRjc1sxXS0+YmFzZS5tb2RlOwogCS8qCiAJICogU2V0IGRpc3BsYXkwLzEg cHJpb3JpdHkgdXAgaW4gdGhlIG1lbW9yeSBjb250cm9sbGVyIGZvcgogCSAqIG1vZGVzIGlmIHRo ZSB1c2VyIHNwZWNpZmllcyBISUdIIGZvciBkaXNwbGF5cHJpb3JpdHkKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24vcnM3ODBfZHBtLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JzNzgwX2RwbS5jCmluZGV4IDkwMzFmNGIuLmQwYjcyMTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcnM3ODBfZHBtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9y czc4MF9kcG0uYwpAQCAtNjIsOCArNjIsOCBAQCBzdGF0aWMgdm9pZCByczc4MF9nZXRfcG1fbW9k ZV9wYXJhbWV0ZXJzKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQogCQlpZiAoY3J0YyAmJiBj cnRjLT5lbmFibGVkKSB7CiAJCQlyYWRlb25fY3J0YyA9IHRvX3JhZGVvbl9jcnRjKGNydGMpOwog CQkJcGktPmNydGNfaWQgPSByYWRlb25fY3J0Yy0+Y3J0Y19pZDsKLQkJCWlmIChjcnRjLT5tb2Rl Lmh0b3RhbCAmJiBjcnRjLT5tb2RlLnZ0b3RhbCkKLQkJCQlwaS0+cmVmcmVzaF9yYXRlID0gZHJt X21vZGVfdnJlZnJlc2goJmNydGMtPm1vZGUpOworCQkJaWYgKGNydGMtPm1vZGUtPmh0b3RhbCAm JiBjcnRjLT5tb2RlLT52dG90YWwpCisJCQkJcGktPnJlZnJlc2hfcmF0ZSA9IGRybV9tb2RlX3Zy ZWZyZXNoKGNydGMtPm1vZGUpOwogCQkJYnJlYWs7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3J2NTE1LmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3J2NTE1 LmMKaW5kZXggYzU1ZDY1My4uMjNkYTAzZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9ydjUxNS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnY1MTUuYwpAQCAtOTU1 LDcgKzk1NSw3IEBAIHN0YXRpYyB2b2lkIHJ2NTE1X2NydGNfYmFuZHdpZHRoX2NvbXB1dGUoc3Ry dWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJCQkJCSBzdHJ1Y3QgcnY1MTVfd2F0ZXJtYXJrICp3 bSwKIAkJCQkJIGJvb2wgbG93KQogewotCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlID0g JmNydGMtPmJhc2UubW9kZTsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSA9IGNydGMt PmJhc2UubW9kZTsKIAlmaXhlZDIwXzEyIGEsIGIsIGM7CiAJZml4ZWQyMF8xMiBwY2xrLCByZXF1 ZXN0X2ZpZm9fZGVwdGgsIHRvbGVyYWJsZV9sYXRlbmN5LCBlc3RpbWF0ZWRfd2lkdGg7CiAJZml4 ZWQyMF8xMiBjb25zdW1wdGlvbl90aW1lLCBsaW5lX3RpbWUsIGNodW5rX3RpbWUsIHJlYWRfZGVs YXlfbGF0ZW5jeTsKQEAgLTEwMjYsNyArMTAyNiw3IEBAIHN0YXRpYyB2b2lkIHJ2NTE1X2NydGNf YmFuZHdpZHRoX2NvbXB1dGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJICogIExpbmVU aW1lID0gdG90YWwgbnVtYmVyIG9mIGhvcml6b250YWwgcGl4ZWxzCiAJICogIHBjbGsgPSBwaXhl bCBjbG9jayBwZXJpb2QobnMpCiAJICovCi0JYS5mdWxsID0gZGZpeGVkX2NvbnN0KGNydGMtPmJh c2UubW9kZS5jcnRjX2h0b3RhbCk7CisJYS5mdWxsID0gZGZpeGVkX2NvbnN0KGNydGMtPmJhc2Uu bW9kZS0+Y3J0Y19odG90YWwpOwogCWxpbmVfdGltZS5mdWxsID0gZGZpeGVkX211bChhLCBwY2xr KTsKIAogCS8qIERldGVybWluZSBhY3RpdmUgdGltZQpAQCAtMTAzNCw4ICsxMDM0LDggQEAgc3Rh dGljIHZvaWQgcnY1MTVfY3J0Y19iYW5kd2lkdGhfY29tcHV0ZShzdHJ1Y3QgcmFkZW9uX2Rldmlj ZSAqcmRldiwKIAkgKiAgaGFjdGl2ZSA9IHRvdGFsIG51bWJlciBvZiBob3Jpem9udGFsIGFjdGl2 ZSBwaXhlbHMKIAkgKiAgaHRvdGFsID0gdG90YWwgbnVtYmVyIG9mIGhvcml6b250YWwgcGl4ZWxz CiAJICovCi0JYS5mdWxsID0gZGZpeGVkX2NvbnN0KGNydGMtPmJhc2UubW9kZS5jcnRjX2h0b3Rh bCk7Ci0JYi5mdWxsID0gZGZpeGVkX2NvbnN0KGNydGMtPmJhc2UubW9kZS5jcnRjX2hkaXNwbGF5 KTsKKwlhLmZ1bGwgPSBkZml4ZWRfY29uc3QoY3J0Yy0+YmFzZS5tb2RlLT5jcnRjX2h0b3RhbCk7 CisJYi5mdWxsID0gZGZpeGVkX2NvbnN0KGNydGMtPmJhc2UubW9kZS0+Y3J0Y19oZGlzcGxheSk7 CiAJd20tPmFjdGl2ZV90aW1lLmZ1bGwgPSBkZml4ZWRfbXVsKGxpbmVfdGltZSwgYik7CiAJd20t PmFjdGl2ZV90aW1lLmZ1bGwgPSBkZml4ZWRfZGl2KHdtLT5hY3RpdmVfdGltZSwgYSk7CiAKQEAg LTEwODksMTQgKzEwODksMTQgQEAgc3RhdGljIHZvaWQgcnY1MTVfY3J0Y19iYW5kd2lkdGhfY29t cHV0ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAkgKiAgd2lkdGggPSB2aWV3cG9ydCB3 aWR0aCBpbiBwaXhlbHMKIAkgKi8KIAlhLmZ1bGwgPSBkZml4ZWRfY29uc3QoMTYpOwotCXdtLT5w cmlvcml0eV9tYXJrX21heC5mdWxsID0gZGZpeGVkX2NvbnN0KGNydGMtPmJhc2UubW9kZS5jcnRj X2hkaXNwbGF5KTsKKwl3bS0+cHJpb3JpdHlfbWFya19tYXguZnVsbCA9IGRmaXhlZF9jb25zdChj cnRjLT5iYXNlLm1vZGUtPmNydGNfaGRpc3BsYXkpOwogCXdtLT5wcmlvcml0eV9tYXJrX21heC5m dWxsID0gZGZpeGVkX2Rpdih3bS0+cHJpb3JpdHlfbWFya19tYXgsIGEpOwogCXdtLT5wcmlvcml0 eV9tYXJrX21heC5mdWxsID0gZGZpeGVkX2NlaWwod20tPnByaW9yaXR5X21hcmtfbWF4KTsKIAog CS8qIERldGVybWluZSBlc3RpbWF0ZWQgd2lkdGggKi8KIAllc3RpbWF0ZWRfd2lkdGguZnVsbCA9 IHRvbGVyYWJsZV9sYXRlbmN5LmZ1bGwgLSB3bS0+d29yc3RfY2FzZV9sYXRlbmN5LmZ1bGw7CiAJ ZXN0aW1hdGVkX3dpZHRoLmZ1bGwgPSBkZml4ZWRfZGl2KGVzdGltYXRlZF93aWR0aCwgY29uc3Vt cHRpb25fdGltZSk7Ci0JaWYgKGRmaXhlZF90cnVuYyhlc3RpbWF0ZWRfd2lkdGgpID4gY3J0Yy0+ YmFzZS5tb2RlLmNydGNfaGRpc3BsYXkpIHsKKwlpZiAoZGZpeGVkX3RydW5jKGVzdGltYXRlZF93 aWR0aCkgPiBjcnRjLT5iYXNlLm1vZGUtPmNydGNfaGRpc3BsYXkpIHsKIAkJd20tPnByaW9yaXR5 X21hcmsuZnVsbCA9IHdtLT5wcmlvcml0eV9tYXJrX21heC5mdWxsOwogCX0gZWxzZSB7CiAJCWEu ZnVsbCA9IGRmaXhlZF9jb25zdCgxNik7CkBAIC0xMjQxLDkgKzEyNDEsOSBAQCB2b2lkIHJ2NTE1 X2JhbmR3aWR0aF9hdml2b191cGRhdGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAJdTMy IGQybW9kZV9wcmlvcml0eV9hX2NudCwgZDJtb2RlX3ByaW9yaXR5X2JfY250OwogCiAJaWYgKHJk ZXYtPm1vZGVfaW5mby5jcnRjc1swXS0+YmFzZS5lbmFibGVkKQotCQltb2RlMCA9ICZyZGV2LT5t b2RlX2luZm8uY3J0Y3NbMF0tPmJhc2UubW9kZTsKKwkJbW9kZTAgPSByZGV2LT5tb2RlX2luZm8u Y3J0Y3NbMF0tPmJhc2UubW9kZTsKIAlpZiAocmRldi0+bW9kZV9pbmZvLmNydGNzWzFdLT5iYXNl LmVuYWJsZWQpCi0JCW1vZGUxID0gJnJkZXYtPm1vZGVfaW5mby5jcnRjc1sxXS0+YmFzZS5tb2Rl OworCQltb2RlMSA9IHJkZXYtPm1vZGVfaW5mby5jcnRjc1sxXS0+YmFzZS5tb2RlOwogCXJzNjkw X2xpbmVfYnVmZmVyX2FkanVzdChyZGV2LCBtb2RlMCwgbW9kZTEpOwogCiAJcnY1MTVfY3J0Y19i YW5kd2lkdGhfY29tcHV0ZShyZGV2LCByZGV2LT5tb2RlX2luZm8uY3J0Y3NbMF0sICZ3bTBfaGln aCwgZmFsc2UpOwpAQCAtMTI4Myw5ICsxMjgzLDkgQEAgdm9pZCBydjUxNV9iYW5kd2lkdGhfdXBk YXRlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQogCXJhZGVvbl91cGRhdGVfZGlzcGxheV9w cmlvcml0eShyZGV2KTsKIAogCWlmIChyZGV2LT5tb2RlX2luZm8uY3J0Y3NbMF0tPmJhc2UuZW5h YmxlZCkKLQkJbW9kZTAgPSAmcmRldi0+bW9kZV9pbmZvLmNydGNzWzBdLT5iYXNlLm1vZGU7CisJ CW1vZGUwID0gcmRldi0+bW9kZV9pbmZvLmNydGNzWzBdLT5iYXNlLm1vZGU7CiAJaWYgKHJkZXYt Pm1vZGVfaW5mby5jcnRjc1sxXS0+YmFzZS5lbmFibGVkKQotCQltb2RlMSA9ICZyZGV2LT5tb2Rl X2luZm8uY3J0Y3NbMV0tPmJhc2UubW9kZTsKKwkJbW9kZTEgPSByZGV2LT5tb2RlX2luZm8uY3J0 Y3NbMV0tPmJhc2UubW9kZTsKIAkvKgogCSAqIFNldCBkaXNwbGF5MC8xIHByaW9yaXR5IHVwIGlu IHRoZSBtZW1vcnkgY29udHJvbGxlciBmb3IKIAkgKiBtb2RlcyBpZiB0aGUgdXNlciBzcGVjaWZp ZXMgSElHSCBmb3IgZGlzcGxheXByaW9yaXR5CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3NpLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3NpLmMKaW5kZXggZTA4OGU1NS4u NmM3YWMyYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9zaS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24vc2kuYwpAQCAtMjIyMiw3ICsyMjIyLDcgQEAgc3RhdGljIHZv aWQgZGNlNl9wcm9ncmFtX3dhdGVybWFya3Moc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJ CQkJCSBzdHJ1Y3QgcmFkZW9uX2NydGMgKnJhZGVvbl9jcnRjLAogCQkJCQkgdTMyIGxiX3NpemUs IHUzMiBudW1faGVhZHMpCiB7Ci0Jc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSAmcmFk ZW9uX2NydGMtPmJhc2UubW9kZTsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSA9IHJh ZGVvbl9jcnRjLT5iYXNlLm1vZGU7CiAJc3RydWN0IGRjZTZfd21fcGFyYW1zIHdtX2xvdywgd21f aGlnaDsKIAl1MzIgZHJhbV9jaGFubmVsczsKIAl1MzIgcGl4ZWxfcGVyaW9kOwpAQCAtMjM5NSw4 ICsyMzk1LDggQEAgdm9pZCBkY2U2X2JhbmR3aWR0aF91cGRhdGUoc3RydWN0IHJhZGVvbl9kZXZp Y2UgKnJkZXYpCiAJCQludW1faGVhZHMrKzsKIAl9CiAJZm9yIChpID0gMDsgaSA8IHJkZXYtPm51 bV9jcnRjOyBpICs9IDIpIHsKLQkJbW9kZTAgPSAmcmRldi0+bW9kZV9pbmZvLmNydGNzW2ldLT5i YXNlLm1vZGU7Ci0JCW1vZGUxID0gJnJkZXYtPm1vZGVfaW5mby5jcnRjc1tpKzFdLT5iYXNlLm1v ZGU7CisJCW1vZGUwID0gcmRldi0+bW9kZV9pbmZvLmNydGNzW2ldLT5iYXNlLm1vZGU7CisJCW1v ZGUxID0gcmRldi0+bW9kZV9pbmZvLmNydGNzW2krMV0tPmJhc2UubW9kZTsKIAkJbGJfc2l6ZSA9 IGRjZTZfbGluZV9idWZmZXJfYWRqdXN0KHJkZXYsIHJkZXYtPm1vZGVfaW5mby5jcnRjc1tpXSwg bW9kZTAsIG1vZGUxKTsKIAkJZGNlNl9wcm9ncmFtX3dhdGVybWFya3MocmRldiwgcmRldi0+bW9k ZV9pbmZvLmNydGNzW2ldLCBsYl9zaXplLCBudW1faGVhZHMpOwogCQlsYl9zaXplID0gZGNlNl9s aW5lX2J1ZmZlcl9hZGp1c3QocmRldiwgcmRldi0+bW9kZV9pbmZvLmNydGNzW2krMV0sIG1vZGUx LCBtb2RlMCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2Ny dGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfY3J0Yy5jCmluZGV4IDllNzIx MzMuLjE4YTFhZDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVf Y3J0Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfY3J0Yy5jCkBAIC0z NzMsNyArMzczLDcgQEAgc3RhdGljIHZvaWQgcmNhcl9kdV9jcnRjX3N0YXJ0KHN0cnVjdCByY2Fy X2R1X2NydGMgKnJjcnRjKQogCSAqIHN5bmMgbW9kZSAod2l0aCB0aGUgSFNZTkMgYW5kIFZTWU5D IHNpZ25hbHMgY29uZmlndXJlZCBhcyBvdXRwdXRzIGFuZAogCSAqIGFjdGl2ZWx5IGRyaXZlbiku CiAJICovCi0JaW50ZXJsYWNlZCA9IHJjcnRjLT5jcnRjLm1vZGUuZmxhZ3MgJiBEUk1fTU9ERV9G TEFHX0lOVEVSTEFDRTsKKwlpbnRlcmxhY2VkID0gcmNydGMtPmNydGMubW9kZS0+ZmxhZ3MgJiBE Uk1fTU9ERV9GTEFHX0lOVEVSTEFDRTsKIAlyY2FyX2R1X2NydGNfY2xyX3NldChyY3J0YywgRFNZ U1IsIERTWVNSX1RWTV9NQVNLIHwgRFNZU1JfU0NNX01BU0ssCiAJCQkgICAgIChpbnRlcmxhY2Vk ID8gRFNZU1JfU0NNX0lOVF9WSURFTyA6IDApIHwKIAkJCSAgICAgRFNZU1JfVFZNX01BU1RFUik7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2x2ZHNlbmMuYyBi L2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfbHZkc2VuYy5jCmluZGV4IDg1MDQzYzUu Ljk4YzdjYjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfbHZk c2VuYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfbHZkc2VuYy5jCkBA IC00MSw3ICs0MSw3IEBAIHN0YXRpYyB2b2lkIHJjYXJfbHZkc193cml0ZShzdHJ1Y3QgcmNhcl9k dV9sdmRzZW5jICpsdmRzLCB1MzIgcmVnLCB1MzIgZGF0YSkKIHN0YXRpYyBpbnQgcmNhcl9kdV9s dmRzZW5jX3N0YXJ0KHN0cnVjdCByY2FyX2R1X2x2ZHNlbmMgKmx2ZHMsCiAJCQkJIHN0cnVjdCBy Y2FyX2R1X2NydGMgKnJjcnRjKQogewotCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpt b2RlID0gJnJjcnRjLT5jcnRjLm1vZGU7CisJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUg Km1vZGUgPSByY3J0Yy0+Y3J0Yy5tb2RlOwogCXVuc2lnbmVkIGludCBmcmVxID0gbW9kZS0+Y2xv Y2s7CiAJdTMyIGx2ZGNyMDsKIAl1MzIgbHZkaGNyOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuYyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hp cC9yb2NrY2hpcF9kcm1fdm9wLmMKaW5kZXggMjVmODliMy4uODhlOTlhYSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5jCkBAIC01NDIsOCArNTQyLDggQEAg c3RhdGljIGludCB2b3BfdXBkYXRlX3BsYW5lX2V2ZW50KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l LAogCQkueTIgPSBzcmNfeSArIHNyY19oLAogCX07CiAJY29uc3Qgc3RydWN0IGRybV9yZWN0IGNs aXAgPSB7Ci0JCS54MiA9IGNydGMtPm1vZGUuaGRpc3BsYXksCi0JCS55MiA9IGNydGMtPm1vZGUu dmRpc3BsYXksCisJCS54MiA9IGNydGMtPm1vZGUtPmhkaXNwbGF5LAorCQkueTIgPSBjcnRjLT5t b2RlLT52ZGlzcGxheSwKIAl9OwogCWJvb2wgY2FuX3Bvc2l0aW9uID0gcGxhbmUtPnR5cGUgIT0g RFJNX1BMQU5FX1RZUEVfUFJJTUFSWTsKIApAQCAtNTc2LDggKzU3Niw4IEBAIHN0YXRpYyBpbnQg dm9wX3VwZGF0ZV9wbGFuZV9ldmVudChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAljcnRjX3gg PSBtYXgoMCwgY3J0Y194KTsKIAljcnRjX3kgPSBtYXgoMCwgY3J0Y195KTsKIAotCWRzcF9zdHgg PSBjcnRjX3ggKyBjcnRjLT5tb2RlLmh0b3RhbCAtIGNydGMtPm1vZGUuaHN5bmNfc3RhcnQ7Ci0J ZHNwX3N0eSA9IGNydGNfeSArIGNydGMtPm1vZGUudnRvdGFsIC0gY3J0Yy0+bW9kZS52c3luY19z dGFydDsKKwlkc3Bfc3R4ID0gY3J0Y194ICsgY3J0Yy0+bW9kZS0+aHRvdGFsIC0gY3J0Yy0+bW9k ZS0+aHN5bmNfc3RhcnQ7CisJZHNwX3N0eSA9IGNydGNfeSArIGNydGMtPm1vZGUtPnZ0b3RhbCAt IGNydGMtPm1vZGUtPnZzeW5jX3N0YXJ0OwogCiAJb2Zmc2V0ID0gKHNyYy54MSA+PiAxNikgKiAo ZmItPmJpdHNfcGVyX3BpeGVsID4+IDMpOwogCW9mZnNldCArPSAoc3JjLnkxID4+IDE2KSAqIGZi LT5waXRjaGVzWzBdOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3NobW9iaWxlL3NobW9i X2RybV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vc2htb2JpbGUvc2htb2JfZHJtX2NydGMuYwpp bmRleCBhYjNiNGY0Li43NDE0NzY2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vc2htb2Jp bGUvc2htb2JfZHJtX2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vc2htb2JpbGUvc2htb2Jf ZHJtX2NydGMuYwpAQCAtNzQsNyArNzQsNyBAQCBzdGF0aWMgdm9pZCBzaG1vYl9kcm1fY3J0Y19z ZXR1cF9nZW9tZXRyeShzdHJ1Y3Qgc2htb2JfZHJtX2NydGMgKnNjcnRjKQogCXN0cnVjdCBkcm1f Y3J0YyAqY3J0YyA9ICZzY3J0Yy0+Y3J0YzsKIAlzdHJ1Y3Qgc2htb2JfZHJtX2RldmljZSAqc2Rl diA9IGNydGMtPmRldi0+ZGV2X3ByaXZhdGU7CiAJY29uc3Qgc3RydWN0IHNobW9iX2RybV9pbnRl cmZhY2VfZGF0YSAqaWRhdGEgPSAmc2Rldi0+cGRhdGEtPmlmYWNlOwotCWNvbnN0IHN0cnVjdCBk cm1fZGlzcGxheV9tb2RlICptb2RlID0gJmNydGMtPm1vZGU7CisJY29uc3Qgc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKm1vZGUgPSBjcnRjLT5tb2RlOwogCXUzMiB2YWx1ZTsKIAogCXZhbHVlID0g c2Rldi0+bGRtdDFyCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9kcm1fY3J0 Yy5jIGIvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfZHJtX2NydGMuYwppbmRleCBjZmI3NWRjLi5i OTJlN2UwOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfZHJtX2NydGMuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9kcm1fY3J0Yy5jCkBAIC0xMjIsNyArMTIyLDcg QEAgc3RpX2RybV9jcnRjX21vZGVfc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAl9CiAKIAlz dGlfdnRnX3NldF9jb25maWcobWl4ZXItPmlkID09IFNUSV9NSVhFUl9NQUlOID8KLQkJCWNvbXBv LT52dGdfbWFpbiA6IGNvbXBvLT52dGdfYXV4LCAmY3J0Yy0+bW9kZSk7CisJCQljb21wby0+dnRn X21haW4gOiBjb21wby0+dnRnX2F1eCwgY3J0Yy0+bW9kZSk7CiAKIAkvKiBhIEdEUCBpcyByZXNl cnZlZCB0byB0aGUgQ1JUQyBGQiAqLwogCWxheWVyID0gdG9fc3RpX2xheWVyKGNydGMtPnByaW1h cnkpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RjLmMgYi9kcml2ZXJzL2dw dS9kcm0vdGVncmEvZGMuYwppbmRleCA0MGY2ZTc0Li42NzE3ZjA3IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vdGVncmEvZGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZGMuYwpA QCAtOTk1LDYgKzk5NSw5IEBAIHN0YXRpYyB2b2lkIHRlZ3JhX2NydGNfcmVzZXQoc3RydWN0IGRy bV9jcnRjICpjcnRjKQogewogCXN0cnVjdCB0ZWdyYV9kY19zdGF0ZSAqc3RhdGU7CiAKKwlpZiAo Y3J0Yy0+c3RhdGUgJiYgY3J0Yy0+c3RhdGUtPm1vZGUpCisJCWRybV9tb2RlX2Rlc3Ryb3koY3J0 Yy0+ZGV2LCBjcnRjLT5zdGF0ZS0+bW9kZSk7CisKIAlrZnJlZShjcnRjLT5zdGF0ZSk7CiAJY3J0 Yy0+c3RhdGUgPSBOVUxMOwogCkBAIC0xMDE1LDExICsxMDE4LDExIEBAIHRlZ3JhX2NydGNfYXRv bWljX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJaWYgKCFjb3B5KQog CQlyZXR1cm4gTlVMTDsKIAotCS8qIFhYWDogdGVkaXVtICovCi0JY29weS0+YmFzZS5tb2RlID0g ZHJtX21vZGVfZHVwbGljYXRlKGNydGMtPmRldiwgc3RhdGUtPmJhc2UubW9kZSk7Ci0JaWYgKCFj b3B5LT5iYXNlLm1vZGUpIHsKLQkJa2ZyZWUoY29weSk7Ci0JCXJldHVybiBOVUxMOworCWlmIChz dGF0ZS0+YmFzZS5tb2RlKSB7CisJCWNvcHktPmJhc2UubW9kZSA9CisJCQlkcm1fbW9kZV9kdXBs aWNhdGUoY3J0Yy0+ZGV2LCBzdGF0ZS0+YmFzZS5tb2RlKTsKKwkJaWYgKCFjb3B5LT5iYXNlLm1v ZGUpCisJCQlnb3RvIGVycjsKIAl9CiAKIAljb3B5LT5iYXNlLm1vZGVfY2hhbmdlZCA9IGZhbHNl OwpAQCAtMTAyOCw2ICsxMDMxLDkgQEAgdGVncmFfY3J0Y19hdG9taWNfZHVwbGljYXRlX3N0YXRl KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAljb3B5LT5iYXNlLmV2ZW50ID0gTlVMTDsKIAogCXJl dHVybiAmY29weS0+YmFzZTsKK2VycjoKKwlrZnJlZShjb3B5KTsKKwlyZXR1cm4gTlVMTDsKIH0K IAogc3RhdGljIHZvaWQgdGVncmFfY3J0Y19hdG9taWNfZGVzdHJveV9zdGF0ZShzdHJ1Y3QgZHJt X2NydGMgKmNydGMsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY19j cnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY19jcnRjLmMKaW5kZXggZDVmYWZl Zi4uMjczNGRlYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfY3J0 Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX2NydGMuYwpAQCAtOTYsNyAr OTYsNyBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfc2Nhbm91dChzdHJ1Y3QgZHJtX2NydGMgKmNydGMp CiAJCQkoY3J0Yy0+eSAqIGZiLT5waXRjaGVzWzBdKSArIChjcnRjLT54ICogYnBwLzgpOwogCiAJ dGlsY2RjX2NydGMtPmVuZCA9IHRpbGNkY19jcnRjLT5zdGFydCArCi0JCQkoY3J0Yy0+bW9kZS52 ZGlzcGxheSAqIGZiLT5waXRjaGVzWzBdKTsKKwkJCShjcnRjLT5tb2RlLT52ZGlzcGxheSAqIGZi LT5waXRjaGVzWzBdKTsKIAogCWlmICh0aWxjZGNfY3J0Yy0+ZHBtcyA9PSBEUk1fTU9ERV9EUE1T X09OKSB7CiAJCS8qIGFscmVhZHkgZW5hYmxlZCwgc28ganVzdCBtYXJrIHRoZSBmcmFtZXMgdGhh dCBuZWVkCkBAIC01NDksMTcgKzU0OSwxNyBAQCB2b2lkIHRpbGNkY19jcnRjX3VwZGF0ZV9jbGso c3RydWN0IGRybV9jcnRjICpjcnRjKQogCQl0aWxjZGNfY3J0Y19kcG1zKGNydGMsIERSTV9NT0RF X0RQTVNfT0ZGKTsKIAogCS8qIGluIHJhc3RlciBtb2RlLCBtaW5pbXVtIGRpdmlzb3IgaXMgMjog Ki8KLQlyZXQgPSBjbGtfc2V0X3JhdGUocHJpdi0+ZGlzcF9jbGssIGNydGMtPm1vZGUuY2xvY2sg KiAxMDAwICogMik7CisJcmV0ID0gY2xrX3NldF9yYXRlKHByaXYtPmRpc3BfY2xrLCBjcnRjLT5t b2RlLT5jbG9jayAqIDEwMDAgKiAyKTsKIAlpZiAocmV0KSB7CiAJCWRldl9lcnIoZGV2LT5kZXYs ICJmYWlsZWQgdG8gc2V0IGRpc3BsYXkgY2xvY2sgcmF0ZSB0bzogJWRcbiIsCi0JCQkJY3J0Yy0+ bW9kZS5jbG9jayk7CisJCQkJY3J0Yy0+bW9kZS0+Y2xvY2spOwogCQlnb3RvIG91dDsKIAl9CiAK IAlsY2RfY2xrID0gY2xrX2dldF9yYXRlKHByaXYtPmNsayk7Ci0JZGl2ID0gbGNkX2NsayAvIChj cnRjLT5tb2RlLmNsb2NrICogMTAwMCk7CisJZGl2ID0gbGNkX2NsayAvIChjcnRjLT5tb2RlLT5j bG9jayAqIDEwMDApOwogCi0JREJHKCJsY2RfY2xrPSV1LCBtb2RlIGNsb2NrPSVkLCBkaXY9JXUi LCBsY2RfY2xrLCBjcnRjLT5tb2RlLmNsb2NrLCBkaXYpOworCURCRygibGNkX2Nsaz0ldSwgbW9k ZSBjbG9jaz0lZCwgZGl2PSV1IiwgbGNkX2NsaywgY3J0Yy0+bW9kZS0+Y2xvY2ssIGRpdik7CiAJ REJHKCJmY2s9JWx1LCBkcGxsX2Rpc3BfY2s9JWx1IiwgY2xrX2dldF9yYXRlKHByaXYtPmNsayks IGNsa19nZXRfcmF0ZShwcml2LT5kaXNwX2NsaykpOwogCiAJLyogQ29uZmlndXJlIHRoZSBMQ0Qg Y2xvY2sgZGl2aXNvci4gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X2ttcy5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMKaW5kZXggODcy NWI3OS4uMTcyYWEzZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf a21zLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMKQEAgLTUzNiw4 ICs1MzYsOCBAQCBzdGF0aWMgaW50IGRvX3N1cmZhY2VfZGlydHlfc291KHN0cnVjdCB2bXdfcHJp dmF0ZSAqZGV2X3ByaXYsCiAJCWNsaXAueTIgPSBib3R0b20gLSB1bml0LT5jcnRjLnk7CiAKIAkJ Lyogc2tpcCBhbnkgY3J0Y3MgdGhhdCBtaXNzZXMgdGhlIGNsaXAgcmVnaW9uICovCi0JCWlmIChj bGlwLngxID49IHVuaXQtPmNydGMubW9kZS5oZGlzcGxheSB8fAotCQkgICAgY2xpcC55MSA+PSB1 bml0LT5jcnRjLm1vZGUudmRpc3BsYXkgfHwKKwkJaWYgKGNsaXAueDEgPj0gdW5pdC0+Y3J0Yy5t b2RlLT5oZGlzcGxheSB8fAorCQkgICAgY2xpcC55MSA+PSB1bml0LT5jcnRjLm1vZGUtPnZkaXNw bGF5IHx8CiAJCSAgICBjbGlwLngyIDw9IDAgfHwgY2xpcC55MiA8PSAwKQogCQkJY29udGludWU7 CiAKQEAgLTU1MSw4ICs1NTEsOCBAQCBzdGF0aWMgaW50IGRvX3N1cmZhY2VfZGlydHlfc291KHN0 cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCWNtZC0+Ym9keS5kZXN0UmVjdC5ib3R0b20g PSBjbGlwLnkyOwogCiAJCS8qIGNyZWF0ZSBhIGNsaXAgcmVjdCBvZiB0aGUgY3J0YyBpbiBkZXN0 IGNvb3JkcyAqLwotCQljbGlwLngyID0gdW5pdC0+Y3J0Yy5tb2RlLmhkaXNwbGF5IC0gY2xpcC54 MTsKLQkJY2xpcC55MiA9IHVuaXQtPmNydGMubW9kZS52ZGlzcGxheSAtIGNsaXAueTE7CisJCWNs aXAueDIgPSB1bml0LT5jcnRjLm1vZGUtPmhkaXNwbGF5IC0gY2xpcC54MTsKKwkJY2xpcC55MiA9 IHVuaXQtPmNydGMubW9kZS0+dmRpc3BsYXkgLSBjbGlwLnkxOwogCQljbGlwLngxID0gMCAtIGNs aXAueDE7CiAJCWNsaXAueTEgPSAwIC0gY2xpcC55MTsKIApAQCAtOTAwLDE0ICs5MDAsMTQgQEAg c3RhdGljIGludCBkb19kbWFidWZfZGlydHlfc291KHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2 LAogCQkJaW50IG1vdmVfeCwgbW92ZV95OwogCiAJCQkvKiBza2lwIGFueSBjcnRjcyB0aGF0IG1p c3NlcyB0aGUgY2xpcCByZWdpb24gKi8KLQkJCWlmIChjbGlwX3gxID49IHVuaXQtPmNydGMubW9k ZS5oZGlzcGxheSB8fAotCQkJICAgIGNsaXBfeTEgPj0gdW5pdC0+Y3J0Yy5tb2RlLnZkaXNwbGF5 IHx8CisJCQlpZiAoY2xpcF94MSA+PSB1bml0LT5jcnRjLm1vZGUtPmhkaXNwbGF5IHx8CisJCQkg ICAgY2xpcF95MSA+PSB1bml0LT5jcnRjLm1vZGUtPnZkaXNwbGF5IHx8CiAJCQkgICAgY2xpcF94 MiA8PSAwIHx8IGNsaXBfeTIgPD0gMCkKIAkJCQljb250aW51ZTsKIAogCQkJLyogY2xpcCBzaXpl IHRvIGNydGMgc2l6ZSAqLwotCQkJY2xpcF94MiA9IG1pbl90KGludCwgY2xpcF94MiwgdW5pdC0+ Y3J0Yy5tb2RlLmhkaXNwbGF5KTsKLQkJCWNsaXBfeTIgPSBtaW5fdChpbnQsIGNsaXBfeTIsIHVu aXQtPmNydGMubW9kZS52ZGlzcGxheSk7CisJCQljbGlwX3gyID0gbWluX3QoaW50LCBjbGlwX3gy LCB1bml0LT5jcnRjLm1vZGUtPmhkaXNwbGF5KTsKKwkJCWNsaXBfeTIgPSBtaW5fdChpbnQsIGNs aXBfeTIsIHVuaXQtPmNydGMubW9kZS0+dmRpc3BsYXkpOwogCiAJCQkvKiB0cmFuc2xhdGUgYm90 aCBzcmMgYW5kIGRlc3QgdG8gYnJpbmcgY2xpcCBpbnRvIHNjcmVlbiAqLwogCQkJbW92ZV94ID0g bWluX3QoaW50LCBjbGlwX3gxLCAwKTsKQEAgLTEzMDYsOCArMTMwNiw4IEBAIGludCB2bXdfa21z X3ByZXNlbnQoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwKIAkJY2xpcC55MiA9IGJvdHRv bSArIGRlc3RZIC0gdW5pdC0+Y3J0Yy55OwogCiAJCS8qIHNraXAgYW55IGNydGNzIHRoYXQgbWlz c2VzIHRoZSBjbGlwIHJlZ2lvbiAqLwotCQlpZiAoY2xpcC54MSA+PSB1bml0LT5jcnRjLm1vZGUu aGRpc3BsYXkgfHwKLQkJICAgIGNsaXAueTEgPj0gdW5pdC0+Y3J0Yy5tb2RlLnZkaXNwbGF5IHx8 CisJCWlmIChjbGlwLngxID49IHVuaXQtPmNydGMubW9kZS0+aGRpc3BsYXkgfHwKKwkJICAgIGNs aXAueTEgPj0gdW5pdC0+Y3J0Yy5tb2RlLT52ZGlzcGxheSB8fAogCQkgICAgY2xpcC54MiA8PSAw IHx8IGNsaXAueTIgPD0gMCkKIAkJCWNvbnRpbnVlOwogCkBAIC0xMzIxLDggKzEzMjEsOCBAQCBp bnQgdm13X2ttc19wcmVzZW50KHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCWNtZC0+ Ym9keS5kZXN0UmVjdC5ib3R0b20gPSBjbGlwLnkyOwogCiAJCS8qIGNyZWF0ZSBhIGNsaXAgcmVj dCBvZiB0aGUgY3J0YyBpbiBkZXN0IGNvb3JkcyAqLwotCQljbGlwLngyID0gdW5pdC0+Y3J0Yy5t b2RlLmhkaXNwbGF5IC0gY2xpcC54MTsKLQkJY2xpcC55MiA9IHVuaXQtPmNydGMubW9kZS52ZGlz cGxheSAtIGNsaXAueTE7CisJCWNsaXAueDIgPSB1bml0LT5jcnRjLm1vZGUtPmhkaXNwbGF5IC0g Y2xpcC54MTsKKwkJY2xpcC55MiA9IHVuaXQtPmNydGMubW9kZS0+dmRpc3BsYXkgLSBjbGlwLnkx OwogCQljbGlwLngxID0gMCAtIGNsaXAueDE7CiAJCWNsaXAueTEgPSAwIC0gY2xpcC55MTsKIApA QCAtMTQyOSwxMiArMTQyOSwxMiBAQCBpbnQgdm13X2ttc19yZWFkYmFjayhzdHJ1Y3Qgdm13X3By aXZhdGUgKmRldl9wcml2LAogCQkJLyogY2xpcCAqLwogCQkJY2xpcF94MSA9IG1heChjbGlwX3gx LCAwKTsKIAkJCWNsaXBfeTEgPSBtYXgoY2xpcF95MSwgMCk7Ci0JCQljbGlwX3gyID0gbWluKGNs aXBfeDIsIHVuaXRzW2ldLT5jcnRjLm1vZGUuaGRpc3BsYXkpOwotCQkJY2xpcF95MiA9IG1pbihj bGlwX3kyLCB1bml0c1tpXS0+Y3J0Yy5tb2RlLnZkaXNwbGF5KTsKKwkJCWNsaXBfeDIgPSBtaW4o Y2xpcF94MiwgdW5pdHNbaV0tPmNydGMubW9kZS0+aGRpc3BsYXkpOworCQkJY2xpcF95MiA9IG1p bihjbGlwX3kyLCB1bml0c1tpXS0+Y3J0Yy5tb2RlLT52ZGlzcGxheSk7CiAKIAkJCS8qIGFuZCBj dWxsIGFueSByZWN0cyB0aGF0IG1pc3NlcyB0aGUgY3J0YyAqLwotCQkJaWYgKGNsaXBfeDEgPj0g dW5pdHNbaV0tPmNydGMubW9kZS5oZGlzcGxheSB8fAotCQkJICAgIGNsaXBfeTEgPj0gdW5pdHNb aV0tPmNydGMubW9kZS52ZGlzcGxheSB8fAorCQkJaWYgKGNsaXBfeDEgPj0gdW5pdHNbaV0tPmNy dGMubW9kZS0+aGRpc3BsYXkgfHwKKwkJCSAgICBjbGlwX3kxID49IHVuaXRzW2ldLT5jcnRjLm1v ZGUtPnZkaXNwbGF5IHx8CiAJCQkgICAgY2xpcF94MiA8PSAwIHx8IGNsaXBfeTIgPD0gMCkKIAkJ CQljb250aW51ZTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf bGR1LmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9sZHUuYwppbmRleCAzYzIzMWIy Li5lNzFiN2IyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9sZHUu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9sZHUuYwpAQCAtODcsOCArODcs OCBAQCBzdGF0aWMgaW50IHZtd19sZHVfY29tbWl0X2xpc3Qoc3RydWN0IHZtd19wcml2YXRlICpk ZXZfcHJpdikKIAkJaW50IHcgPSAwLCBoID0gMDsKIAkJbGlzdF9mb3JfZWFjaF9lbnRyeShlbnRy eSwgJmxkcy0+YWN0aXZlLCBhY3RpdmUpIHsKIAkJCWNydGMgPSAmZW50cnktPmJhc2UuY3J0YzsK LQkJCXcgPSBtYXgodywgY3J0Yy0+eCArIGNydGMtPm1vZGUuaGRpc3BsYXkpOwotCQkJaCA9IG1h eChoLCBjcnRjLT55ICsgY3J0Yy0+bW9kZS52ZGlzcGxheSk7CisJCQl3ID0gbWF4KHcsIGNydGMt PnggKyBjcnRjLT5tb2RlLT5oZGlzcGxheSk7CisJCQloID0gbWF4KGgsIGNydGMtPnkgKyBjcnRj LT5tb2RlLT52ZGlzcGxheSk7CiAJCQlpKys7CiAJCX0KIApAQCAtMTIwLDggKzEyMCw4IEBAIHN0 YXRpYyBpbnQgdm13X2xkdV9jb21taXRfbGlzdChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2 KQogCQl2bXdfd3JpdGUoZGV2X3ByaXYsIFNWR0FfUkVHX0RJU1BMQVlfSVNfUFJJTUFSWSwgIWkp OwogCQl2bXdfd3JpdGUoZGV2X3ByaXYsIFNWR0FfUkVHX0RJU1BMQVlfUE9TSVRJT05fWCwgY3J0 Yy0+eCk7CiAJCXZtd193cml0ZShkZXZfcHJpdiwgU1ZHQV9SRUdfRElTUExBWV9QT1NJVElPTl9Z LCBjcnRjLT55KTsKLQkJdm13X3dyaXRlKGRldl9wcml2LCBTVkdBX1JFR19ESVNQTEFZX1dJRFRI LCBjcnRjLT5tb2RlLmhkaXNwbGF5KTsKLQkJdm13X3dyaXRlKGRldl9wcml2LCBTVkdBX1JFR19E SVNQTEFZX0hFSUdIVCwgY3J0Yy0+bW9kZS52ZGlzcGxheSk7CisJCXZtd193cml0ZShkZXZfcHJp diwgU1ZHQV9SRUdfRElTUExBWV9XSURUSCwgY3J0Yy0+bW9kZS0+aGRpc3BsYXkpOworCQl2bXdf d3JpdGUoZGV2X3ByaXYsIFNWR0FfUkVHX0RJU1BMQVlfSEVJR0hULCBjcnRjLT5tb2RlLT52ZGlz cGxheSk7CiAJCXZtd193cml0ZShkZXZfcHJpdiwgU1ZHQV9SRUdfRElTUExBWV9JRCwgU1ZHQV9J RF9JTlZBTElEKTsKIAogCQlpKys7CkBAIC0yODYsNyArMjg2LDcgQEAgc3RhdGljIGludCB2bXdf bGR1X2NydGNfc2V0X2NvbmZpZyhzdHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQpCiAJY29ubmVjdG9y LT5lbmNvZGVyID0gZW5jb2RlcjsKIAljcnRjLT54ID0gc2V0LT54OwogCWNydGMtPnkgPSBzZXQt Pnk7Ci0JY3J0Yy0+bW9kZSA9ICptb2RlOworCWRybV9tb2RlX2NvcHkoY3J0Yy0+bW9kZSwgbW9k ZSk7CiAJY3J0Yy0+ZW5hYmxlZCA9IHRydWU7CiAKIAl2bXdfbGR1X2FkZF9hY3RpdmUoZGV2X3By aXYsIGxkdSwgdmZiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X3Njcm4uYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Njcm4uYwppbmRleCAyMTNh ZmE1Li45ZjEzYmEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9z Y3JuLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc2Nybi5jCkBAIC0zMzMs OCArMzMzLDggQEAgc3RhdGljIGludCB2bXdfc291X2NydGNfc2V0X2NvbmZpZyhzdHJ1Y3QgZHJt X21vZGVfc2V0ICpzZXQpCiAKIAl2bXdfZmJfb2ZmKGRldl9wcml2KTsKIAotCWlmIChtb2RlLT5o ZGlzcGxheSAhPSBjcnRjLT5tb2RlLmhkaXNwbGF5IHx8Ci0JICAgIG1vZGUtPnZkaXNwbGF5ICE9 IGNydGMtPm1vZGUudmRpc3BsYXkpIHsKKwlpZiAobW9kZS0+aGRpc3BsYXkgIT0gY3J0Yy0+bW9k ZS0+aGRpc3BsYXkgfHwKKwkgICAgbW9kZS0+dmRpc3BsYXkgIT0gY3J0Yy0+bW9kZS0+dmRpc3Bs YXkpIHsKIAkJLyogbm8gbmVlZCB0byBjaGVjayBpZiBkZXB0aCBpcyBkaWZmZXJlbnQsIGJlY2F1 c2UgYmFja2luZwogCQkgKiBzdG9yZSBkZXB0aCBpcyBmb3JjZWQgdG8gNCBieSB0aGUgZGV2aWNl LgogCQkgKi8KQEAgLTM4MSw3ICszODEsNyBAQCBzdGF0aWMgaW50IHZtd19zb3VfY3J0Y19zZXRf Y29uZmlnKHN0cnVjdCBkcm1fbW9kZV9zZXQgKnNldCkKIAogCWNvbm5lY3Rvci0+ZW5jb2RlciA9 IGVuY29kZXI7CiAJZW5jb2Rlci0+Y3J0YyA9IGNydGM7Ci0JY3J0Yy0+bW9kZSA9ICptb2RlOwor CWRybV9tb2RlX2NvcHkoY3J0Yy0+bW9kZSwgbW9kZSk7CiAJY3J0Yy0+cHJpbWFyeS0+ZmIgPSBm YjsKIAljcnRjLT54ID0gc2V0LT54OwogCWNydGMtPnkgPSBzZXQtPnk7CmRpZmYgLS1naXQgYS9p bmNsdWRlL2RybS9kcm1fY3J0Yy5oIGIvaW5jbHVkZS9kcm0vZHJtX2NydGMuaAppbmRleCAyYmNl OTZlLi43ZTkxYjhmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCisrKyBiL2lu Y2x1ZGUvZHJtL2RybV9jcnRjLmgKQEAgLTQ0Niw3ICs0NDYsNyBAQCBzdHJ1Y3QgZHJtX2NydGMg ewogCWJvb2wgZW5hYmxlZDsKIAogCS8qIFJlcXVlc3RlZCBtb2RlIGZyb20gbW9kZXNldHRpbmcu ICovCi0Jc3RydWN0IGRybV9kaXNwbGF5X21vZGUgbW9kZTsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqbW9kZTsKIAogCS8qIFByb2dyYW1tZWQgbW9kZSBpbiBodywgYWZ0ZXIgYWRqdXN0bWVu dHMgZm9yIGVuY29kZXJzLAogCSAqIGNydGMsIHBhbmVsIHNjYWxpbmcgZXRjLiBOZWVkZWQgZm9y IHRpbWVzdGFtcGluZyBldGMuCi0tIAoyLjMuMgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9kcmktZGV2ZWwK