From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v8 4/8] dm_op: convert HVMOP_set_pci_intx_level, HVMOP_set_isa_irq_level, and... Date: Tue, 24 Jan 2017 15:27:06 +0000 Message-ID: <1485271630-1860-5-git-send-email-paul.durrant@citrix.com> References: <1485271630-1860-1-git-send-email-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cW30S-0000aE-3f for xen-devel@lists.xenproject.org; Tue, 24 Jan 2017 15:27:36 +0000 In-Reply-To: <1485271630-1860-1-git-send-email-paul.durrant@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Paul Durrant , Ian Jackson List-Id: xen-devel@lists.xenproject.org Li4uIEhWTU9QX3NldF9wY2lfbGlua19yb3V0ZQoKVGhlc2UgSFZNT1BzIHdlcmUgZXhwb3NlZCB0 byBndWVzdHMgc28gdGhlaXIgZGVmaW5pdGlvbnMgbmVlZCB0byBiZQpwcmVzZXJ2ZWQgZm9yIGNv bXBhdGliaWxpdHkuIFRoaXMgcGF0Y2ggdGhlcmVmb3JlIHVwZGF0ZXMKX19YRU5fTEFURVNUX0lO VEVSRkFDRV9WRVJTSU9OX18gdG8gMHgwMDA0MDkwMCBhbmQgbWFrZXMgdGhlIEhWTU9QCmRlZmlu dGlvbnMgY29uZGl0aW9uYWwgb24gX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyBsZXNzIHRoYW4g dGhhdCB2YWx1ZS4KCk5PVEU6IFRoaXMgcGF0Y2ggYWxzbyB3aWRlbnMgdGhlICdkb21haW4nIHBh cmFtZXRlciBvZgogICAgICB4Y19odm1fc2V0X3BjaV9pbnR4X2xldmVsKCkgZnJvbSBhIHVpbnQ4 X3QgdG8gYSB1aW50MTZfdC4KClN1Z2dlc3RlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1 c2UuY29tPgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXgu Y29tPgpSZXZpZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpBY2tlZC1i eTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KQWNrZWQtYnk6IERhbmllbCBEZSBHcmFh ZiA8ZGdkZWdyYUB0eWNoby5uc2EuZ292PgpSZXZpZXdlZC1ieTogQW5kcmV3IENvb3BlciA8YW5k cmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KLS0tCkNjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25A ZXUuY2l0cml4LmNvbT4KCnY4OgotIEFkZCBDSEVDSyBtYWNyb3MuCgp2MzoKLSBSZW1vdmUgdW5u ZWNlc3NhcnkgcGFkZGluZy4KCnYyOgotIEludGVyZmFjZSB2ZXJzaW9uIG1vZGlmaWNhdGlvbiBt b3ZlZCB0byB0aGlzIHBhdGNoLCB3aGVyZSBpdCBpcyBuZWVkZWQuCi0gQWRkcmVzc2VkIHNldmVy YWwgY29tbWVudHMgZnJvbSBKYW4uCi0tLQogdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMveGVu LmlmICAgfCAgIDggKy0tCiB0b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaCAgICAgICB8ICAg MiArLQogdG9vbHMvbGlieGMveGNfbWlzYy5jICAgICAgICAgICAgICAgfCAgODMgKysrKysrKyst LS0tLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L2h2bS9kbS5jICAgICAgICAgICAgICAgfCAgNzUg KysrKysrKysrKysrKysrKysrKysKIHhlbi9hcmNoL3g4Ni9odm0vaHZtLmMgICAgICAgICAgICAg IHwgMTM2IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2 L2h2bS9pcnEuYyAgICAgICAgICAgICAgfCAgIDcgKy0KIHhlbi9pbmNsdWRlL3B1YmxpYy9odm0v ZG1fb3AuaCAgICAgIHwgIDQyICsrKysrKysrKysrCiB4ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2 bV9vcC5oICAgICB8ICAgNCArKwogeGVuL2luY2x1ZGUvcHVibGljL3hlbi1jb21wYXQuaCAgICAg fCAgIDIgKy0KIHhlbi9pbmNsdWRlL3hlbi9odm0vaXJxLmggICAgICAgICAgIHwgICAyICstCiB4 ZW4vaW5jbHVkZS94bGF0LmxzdCAgICAgICAgICAgICAgICB8ICAgMyArCiB4ZW4vaW5jbHVkZS94 c20vZHVtbXkuaCAgICAgICAgICAgICB8ICAxOCAtLS0tLQogeGVuL2luY2x1ZGUveHNtL3hzbS5o ICAgICAgICAgICAgICAgfCAgMTggLS0tLS0KIHhlbi94c20vZHVtbXkuYyAgICAgICAgICAgICAg ICAgICAgIHwgICAzIC0KIHhlbi94c20vZmxhc2svaG9va3MuYyAgICAgICAgICAgICAgIHwgIDE1 IC0tLS0KIHhlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzIHwgICA2IC0tCiAxNiBm aWxlcyBjaGFuZ2VkLCAxNjQgaW5zZXJ0aW9ucygrKSwgMjYwIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL3hlbi5pZiBiL3Rvb2xzL2ZsYXNrL3Bv bGljeS9tb2R1bGVzL3hlbi5pZgppbmRleCA0NWU1YjVmLi4wOTJhNmM1IDEwMDY0NAotLS0gYS90 b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy94ZW4uaWYKKysrIGIvdG9vbHMvZmxhc2svcG9saWN5 L21vZHVsZXMveGVuLmlmCkBAIC01Nyw4ICs1Nyw4IEBAIGRlZmluZShgY3JlYXRlX2RvbWFpbl9j b21tb24nLCBgCiAJYWxsb3cgJDEgJDI6c2hhZG93IGVuYWJsZTsKIAlhbGxvdyAkMSAkMjptbXUg eyBtYXBfcmVhZCBtYXBfd3JpdGUgYWRqdXN0IG1lbW9yeW1hcCBwaHlzbWFwIHBpbnBhZ2UgbW11 ZXh0X29wIHVwZGF0ZW1wIH07CiAJYWxsb3cgJDEgJDI6Z3JhbnQgc2V0dXA7Ci0JYWxsb3cgJDEg JDI6aHZtIHsgY2FjaGVhdHRyIGdldHBhcmFtIGh2bWN0bCBpcnFsZXZlbCBwY2lyb3V0ZSBzZXRo dm1jCi0JCQlzZXRwYXJhbSBwY2lsZXZlbCBuZXN0ZWQgYWx0cDJtaHZtIGFsdHAybWh2bV9vcCBz ZW5kX2lycSB9OworCWFsbG93ICQxICQyOmh2bSB7IGNhY2hlYXR0ciBnZXRwYXJhbSBodm1jdGwg c2V0aHZtYworCQkJc2V0cGFyYW0gbmVzdGVkIGFsdHAybWh2bSBhbHRwMm1odm1fb3Agc2VuZF9p cnEgfTsKICcpCiAKICMgY3JlYXRlX2RvbWFpbihwcml2LCB0YXJnZXQpCkBAIC05Myw3ICs5Myw3 IEBAIGRlZmluZShgbWFuYWdlX2RvbWFpbicsIGAKICMgICAoaW5ib3VuZCBtaWdyYXRpb24gaXMg dGhlIHNhbWUgYXMgZG9tYWluIGNyZWF0aW9uKQogZGVmaW5lKGBtaWdyYXRlX2RvbWFpbl9vdXQn LCBgCiAJYWxsb3cgJDEgZG9teGVuX3Q6bW11IG1hcF9yZWFkOwotCWFsbG93ICQxICQyOmh2bSB7 IGdldGh2bWMgZ2V0cGFyYW0gaXJxbGV2ZWwgfTsKKwlhbGxvdyAkMSAkMjpodm0geyBnZXRodm1j IGdldHBhcmFtIH07CiAJYWxsb3cgJDEgJDI6bW11IHsgc3RhdCBwYWdlaW5mbyBtYXBfcmVhZCB9 OwogCWFsbG93ICQxICQyOmRvbWFpbiB7IGdldGFkZHJzaXplIGdldHZjcHVjb250ZXh0IHBhdXNl IGRlc3Ryb3kgfTsKIAlhbGxvdyAkMSAkMjpkb21haW4yIGdldHRzYzsKQEAgLTE1MSw3ICsxNTEs NyBAQCBkZWZpbmUoYGRldmljZV9tb2RlbCcsIGAKIAogCWFsbG93ICQxICQyX3RhcmdldDpkb21h aW4geyBnZXRkb21haW5pbmZvIHNodXRkb3duIH07CiAJYWxsb3cgJDEgJDJfdGFyZ2V0Om1tdSB7 IG1hcF9yZWFkIG1hcF93cml0ZSBhZGp1c3QgcGh5c21hcCB0YXJnZXRfaGFjayB9OwotCWFsbG93 ICQxICQyX3RhcmdldDpodm0geyBnZXRwYXJhbSBzZXRwYXJhbSBodm1jdGwgaXJxbGV2ZWwgcGNp cm91dGUgcGNpbGV2ZWwgY2FjaGVhdHRyIHNlbmRfaXJxIGRtIH07CisJYWxsb3cgJDEgJDJfdGFy Z2V0Omh2bSB7IGdldHBhcmFtIHNldHBhcmFtIGh2bWN0bCBjYWNoZWF0dHIgc2VuZF9pcnEgZG0g fTsKICcpCiAKICMgbWFrZV9kZXZpY2VfbW9kZWwocHJpdiwgZG1fZG9tLCBodm1fZG9tKQpkaWZm IC0tZ2l0IGEvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmggYi90b29scy9saWJ4Yy9pbmNs dWRlL3hlbmN0cmwuaAppbmRleCAwY2YxYjQ4Li42YWI3ZTIwIDEwMDY0NAotLS0gYS90b29scy9s aWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaAorKysgYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwu aApAQCAtMTU5NCw3ICsxNTk0LDcgQEAgaW50IHhjX3BoeXNkZXZfdW5tYXBfcGlycSh4Y19pbnRl cmZhY2UgKnhjaCwKIAogaW50IHhjX2h2bV9zZXRfcGNpX2ludHhfbGV2ZWwoCiAgICAgeGNfaW50 ZXJmYWNlICp4Y2gsIGRvbWlkX3QgZG9tLAotICAgIHVpbnQ4X3QgZG9tYWluLCB1aW50OF90IGJ1 cywgdWludDhfdCBkZXZpY2UsIHVpbnQ4X3QgaW50eCwKKyAgICB1aW50MTZfdCBkb21haW4sIHVp bnQ4X3QgYnVzLCB1aW50OF90IGRldmljZSwgdWludDhfdCBpbnR4LAogICAgIHVuc2lnbmVkIGlu dCBsZXZlbCk7CiBpbnQgeGNfaHZtX3NldF9pc2FfaXJxX2xldmVsKAogICAgIHhjX2ludGVyZmFj ZSAqeGNoLCBkb21pZF90IGRvbSwKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hjX21pc2MuYyBi L3Rvb2xzL2xpYnhjL3hjX21pc2MuYwppbmRleCA0YzQxZDQxLi5kZGVhMmJiIDEwMDY0NAotLS0g YS90b29scy9saWJ4Yy94Y19taXNjLmMKKysrIGIvdG9vbHMvbGlieGMveGNfbWlzYy5jCkBAIC00 NzAsMzMgKzQ3MCwyNCBAQCBpbnQgeGNfZ2V0Y3B1aW5mbyh4Y19pbnRlcmZhY2UgKnhjaCwgaW50 IG1heF9jcHVzLAogCiBpbnQgeGNfaHZtX3NldF9wY2lfaW50eF9sZXZlbCgKICAgICB4Y19pbnRl cmZhY2UgKnhjaCwgZG9taWRfdCBkb20sCi0gICAgdWludDhfdCBkb21haW4sIHVpbnQ4X3QgYnVz LCB1aW50OF90IGRldmljZSwgdWludDhfdCBpbnR4LAorICAgIHVpbnQxNl90IGRvbWFpbiwgdWlu dDhfdCBidXMsIHVpbnQ4X3QgZGV2aWNlLCB1aW50OF90IGludHgsCiAgICAgdW5zaWduZWQgaW50 IGxldmVsKQogewotICAgIERFQ0xBUkVfSFlQRVJDQUxMX0JVRkZFUihzdHJ1Y3QgeGVuX2h2bV9z ZXRfcGNpX2ludHhfbGV2ZWwsIGFyZyk7Ci0gICAgaW50IHJjOwotCi0gICAgYXJnID0geGNfaHlw ZXJjYWxsX2J1ZmZlcl9hbGxvYyh4Y2gsIGFyZywgc2l6ZW9mKCphcmcpKTsKLSAgICBpZiAoIGFy ZyA9PSBOVUxMICkKLSAgICB7Ci0gICAgICAgIFBFUlJPUigiQ291bGQgbm90IGFsbG9jYXRlIG1l bW9yeSBmb3IgeGNfaHZtX3NldF9wY2lfaW50eF9sZXZlbCBoeXBlcmNhbGwiKTsKLSAgICAgICAg cmV0dXJuIC0xOwotICAgIH0KKyAgICBzdHJ1Y3QgeGVuX2RtX29wIG9wOworICAgIHN0cnVjdCB4 ZW5fZG1fb3Bfc2V0X3BjaV9pbnR4X2xldmVsICpkYXRhOwogCi0gICAgYXJnLT5kb21pZCAgPSBk b207Ci0gICAgYXJnLT5kb21haW4gPSBkb21haW47Ci0gICAgYXJnLT5idXMgICAgPSBidXM7Ci0g ICAgYXJnLT5kZXZpY2UgPSBkZXZpY2U7Ci0gICAgYXJnLT5pbnR4ICAgPSBpbnR4OwotICAgIGFy Zy0+bGV2ZWwgID0gbGV2ZWw7CisgICAgbWVtc2V0KCZvcCwgMCwgc2l6ZW9mKG9wKSk7CiAKLSAg ICByYyA9IHhlbmNhbGwyKHhjaC0+eGNhbGwsIF9fSFlQRVJWSVNPUl9odm1fb3AsCi0gICAgICAg ICAgICAgICAgICBIVk1PUF9zZXRfcGNpX2ludHhfbGV2ZWwsCi0gICAgICAgICAgICAgICAgICBI WVBFUkNBTExfQlVGRkVSX0FTX0FSRyhhcmcpKTsKKyAgICBvcC5vcCA9IFhFTl9ETU9QX3NldF9w Y2lfaW50eF9sZXZlbDsKKyAgICBkYXRhID0gJm9wLnUuc2V0X3BjaV9pbnR4X2xldmVsOwogCi0g ICAgeGNfaHlwZXJjYWxsX2J1ZmZlcl9mcmVlKHhjaCwgYXJnKTsKKyAgICBkYXRhLT5kb21haW4g PSBkb21haW47CisgICAgZGF0YS0+YnVzID0gYnVzOworICAgIGRhdGEtPmRldmljZSA9IGRldmlj ZTsKKyAgICBkYXRhLT5pbnR4ID0gaW50eDsKKyAgICBkYXRhLT5sZXZlbCA9IGxldmVsOwogCi0g ICAgcmV0dXJuIHJjOworICAgIHJldHVybiBkb19kbV9vcCh4Y2gsIGRvbSwgMSwgJm9wLCBzaXpl b2Yob3ApKTsKIH0KIAogaW50IHhjX2h2bV9zZXRfaXNhX2lycV9sZXZlbCgKQEAgLTUwNCw1MyAr NDk1LDM1IEBAIGludCB4Y19odm1fc2V0X2lzYV9pcnFfbGV2ZWwoCiAgICAgdWludDhfdCBpc2Ff aXJxLAogICAgIHVuc2lnbmVkIGludCBsZXZlbCkKIHsKLSAgICBERUNMQVJFX0hZUEVSQ0FMTF9C VUZGRVIoc3RydWN0IHhlbl9odm1fc2V0X2lzYV9pcnFfbGV2ZWwsIGFyZyk7Ci0gICAgaW50IHJj OwotCi0gICAgYXJnID0geGNfaHlwZXJjYWxsX2J1ZmZlcl9hbGxvYyh4Y2gsIGFyZywgc2l6ZW9m KCphcmcpKTsKLSAgICBpZiAoIGFyZyA9PSBOVUxMICkKLSAgICB7Ci0gICAgICAgIFBFUlJPUigi Q291bGQgbm90IGFsbG9jYXRlIG1lbW9yeSBmb3IgeGNfaHZtX3NldF9pc2FfaXJxX2xldmVsIGh5 cGVyY2FsbCIpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQorICAgIHN0cnVjdCB4ZW5fZG1f b3Agb3A7CisgICAgc3RydWN0IHhlbl9kbV9vcF9zZXRfaXNhX2lycV9sZXZlbCAqZGF0YTsKIAot ICAgIGFyZy0+ZG9taWQgICA9IGRvbTsKLSAgICBhcmctPmlzYV9pcnEgPSBpc2FfaXJxOwotICAg IGFyZy0+bGV2ZWwgICA9IGxldmVsOworICAgIG1lbXNldCgmb3AsIDAsIHNpemVvZihvcCkpOwog Ci0gICAgcmMgPSB4ZW5jYWxsMih4Y2gtPnhjYWxsLCBfX0hZUEVSVklTT1JfaHZtX29wLAotICAg ICAgICAgICAgICAgICAgSFZNT1Bfc2V0X2lzYV9pcnFfbGV2ZWwsCi0gICAgICAgICAgICAgICAg ICBIWVBFUkNBTExfQlVGRkVSX0FTX0FSRyhhcmcpKTsKKyAgICBvcC5vcCA9IFhFTl9ETU9QX3Nl dF9pc2FfaXJxX2xldmVsOworICAgIGRhdGEgPSAmb3AudS5zZXRfaXNhX2lycV9sZXZlbDsKIAot ICAgIHhjX2h5cGVyY2FsbF9idWZmZXJfZnJlZSh4Y2gsIGFyZyk7CisgICAgZGF0YS0+aXNhX2ly cSA9IGlzYV9pcnE7CisgICAgZGF0YS0+bGV2ZWwgPSBsZXZlbDsKIAotICAgIHJldHVybiByYzsK KyAgICByZXR1cm4gZG9fZG1fb3AoeGNoLCBkb20sIDEsICZvcCwgc2l6ZW9mKG9wKSk7CiB9CiAK IGludCB4Y19odm1fc2V0X3BjaV9saW5rX3JvdXRlKAogICAgIHhjX2ludGVyZmFjZSAqeGNoLCBk b21pZF90IGRvbSwgdWludDhfdCBsaW5rLCB1aW50OF90IGlzYV9pcnEpCiB7Ci0gICAgREVDTEFS RV9IWVBFUkNBTExfQlVGRkVSKHN0cnVjdCB4ZW5faHZtX3NldF9wY2lfbGlua19yb3V0ZSwgYXJn KTsKLSAgICBpbnQgcmM7Ci0KLSAgICBhcmcgPSB4Y19oeXBlcmNhbGxfYnVmZmVyX2FsbG9jKHhj aCwgYXJnLCBzaXplb2YoKmFyZykpOwotICAgIGlmICggYXJnID09IE5VTEwgKQotICAgIHsKLSAg ICAgICAgUEVSUk9SKCJDb3VsZCBub3QgYWxsb2NhdGUgbWVtb3J5IGZvciB4Y19odm1fc2V0X3Bj aV9saW5rX3JvdXRlIGh5cGVyY2FsbCIpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQorICAg IHN0cnVjdCB4ZW5fZG1fb3Agb3A7CisgICAgc3RydWN0IHhlbl9kbV9vcF9zZXRfcGNpX2xpbmtf cm91dGUgKmRhdGE7CiAKLSAgICBhcmctPmRvbWlkICAgPSBkb207Ci0gICAgYXJnLT5saW5rICAg ID0gbGluazsKLSAgICBhcmctPmlzYV9pcnEgPSBpc2FfaXJxOworICAgIG1lbXNldCgmb3AsIDAs IHNpemVvZihvcCkpOwogCi0gICAgcmMgPSB4ZW5jYWxsMih4Y2gtPnhjYWxsLCBfX0hZUEVSVklT T1JfaHZtX29wLAotICAgICAgICAgICAgICAgICAgSFZNT1Bfc2V0X3BjaV9saW5rX3JvdXRlLAot ICAgICAgICAgICAgICAgICAgSFlQRVJDQUxMX0JVRkZFUl9BU19BUkcoYXJnKSk7CisgICAgb3Au b3AgPSBYRU5fRE1PUF9zZXRfcGNpX2xpbmtfcm91dGU7CisgICAgZGF0YSA9ICZvcC51LnNldF9w Y2lfbGlua19yb3V0ZTsKIAotICAgIHhjX2h5cGVyY2FsbF9idWZmZXJfZnJlZSh4Y2gsIGFyZyk7 CisgICAgZGF0YS0+bGluayA9IGxpbms7CisgICAgZGF0YS0+aXNhX2lycSA9IGlzYV9pcnE7CiAK LSAgICByZXR1cm4gcmM7CisgICAgcmV0dXJuIGRvX2RtX29wKHhjaCwgZG9tLCAxLCAmb3AsIHNp emVvZihvcCkpOwogfQogCiBpbnQgeGNfaHZtX2luamVjdF9tc2koCmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvaHZtL2RtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2RtLmMKaW5kZXggYmFhOTFiMS4u OTk1NjE5NCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9kbS5jCisrKyBiL3hlbi9hcmNo L3g4Ni9odm0vZG0uYwpAQCAtNzQsNiArNzQsNDkgQEAgc3RhdGljIGludCB0cmFja19kaXJ0eV92 cmFtKHN0cnVjdCBkb21haW4gKmQsIHhlbl9wZm5fdCBmaXJzdF9wZm4sCiAgICAgICAgIGhhcF90 cmFja19kaXJ0eV92cmFtKGQsIGZpcnN0X3BmbiwgbnIsIGJ1Zi0+aCk7CiB9CiAKK3N0YXRpYyBp bnQgc2V0X3BjaV9pbnR4X2xldmVsKHN0cnVjdCBkb21haW4gKmQsIHVpbnQxNl90IGRvbWFpbiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgYnVzLCB1aW50OF90IGRldmlj ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgaW50eCwgdWludDhfdCBs ZXZlbCkKK3sKKyAgICBpZiAoIGRvbWFpbiAhPSAwIHx8IGJ1cyAhPSAwIHx8IGRldmljZSA+IDB4 MWYgfHwgaW50eCA+IDMgKQorICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAgIHN3aXRjaCAo IGxldmVsICkKKyAgICB7CisgICAgY2FzZSAwOgorICAgICAgICBodm1fcGNpX2ludHhfZGVhc3Nl cnQoZCwgZGV2aWNlLCBpbnR4KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAxOgorICAgICAg ICBodm1fcGNpX2ludHhfYXNzZXJ0KGQsIGRldmljZSwgaW50eCk7CisgICAgICAgIGJyZWFrOwor ICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAtRUlOVkFMOworICAgIH0KKworICAgIHJldHVy biAwOworfQorCitzdGF0aWMgaW50IHNldF9pc2FfaXJxX2xldmVsKHN0cnVjdCBkb21haW4gKmQs IHVpbnQ4X3QgaXNhX2lycSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBs ZXZlbCkKK3sKKyAgICBpZiAoIGlzYV9pcnEgPiAxNSApCisgICAgICAgIHJldHVybiAtRUlOVkFM OworCisgICAgc3dpdGNoICggbGV2ZWwgKQorICAgIHsKKyAgICBjYXNlIDA6CisgICAgICAgIGh2 bV9pc2FfaXJxX2RlYXNzZXJ0KGQsIGlzYV9pcnEpOworICAgICAgICBicmVhazsKKyAgICBjYXNl IDE6CisgICAgICAgIGh2bV9pc2FfaXJxX2Fzc2VydChkLCBpc2FfaXJxKTsKKyAgICAgICAgYnJl YWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisgICAgfQorCisgICAg cmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgZG1fb3AoZG9taWRfdCBkb21pZCwKICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgaW50IG5yX2J1ZnMsCiAgICAgICAgICAgICAgICAgIHhlbl9kbV9v cF9idWZfdCBidWZzW10pCkBAIC0yMTEsNiArMjU0LDM1IEBAIHN0YXRpYyBpbnQgZG1fb3AoZG9t aWRfdCBkb21pZCwKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgY2FzZSBYRU5fRE1PUF9z ZXRfcGNpX2ludHhfbGV2ZWw6CisgICAgeworICAgICAgICBjb25zdCBzdHJ1Y3QgeGVuX2RtX29w X3NldF9wY2lfaW50eF9sZXZlbCAqZGF0YSA9CisgICAgICAgICAgICAmb3AudS5zZXRfcGNpX2lu dHhfbGV2ZWw7CisKKyAgICAgICAgcmMgPSBzZXRfcGNpX2ludHhfbGV2ZWwoZCwgZGF0YS0+ZG9t YWluLCBkYXRhLT5idXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtPmRl dmljZSwgZGF0YS0+aW50eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS0+ bGV2ZWwpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBjYXNlIFhFTl9ETU9QX3NldF9p c2FfaXJxX2xldmVsOgorICAgIHsKKyAgICAgICAgY29uc3Qgc3RydWN0IHhlbl9kbV9vcF9zZXRf aXNhX2lycV9sZXZlbCAqZGF0YSA9CisgICAgICAgICAgICAmb3AudS5zZXRfaXNhX2lycV9sZXZl bDsKKworICAgICAgICByYyA9IHNldF9pc2FfaXJxX2xldmVsKGQsIGRhdGEtPmlzYV9pcnEsIGRh dGEtPmxldmVsKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY2FzZSBYRU5fRE1PUF9z ZXRfcGNpX2xpbmtfcm91dGU6CisgICAgeworICAgICAgICBjb25zdCBzdHJ1Y3QgeGVuX2RtX29w X3NldF9wY2lfbGlua19yb3V0ZSAqZGF0YSA9CisgICAgICAgICAgICAmb3AudS5zZXRfcGNpX2xp bmtfcm91dGU7CisKKyAgICAgICAgcmMgPSBodm1fc2V0X3BjaV9saW5rX3JvdXRlKGQsIGRhdGEt PmxpbmssIGRhdGEtPmlzYV9pcnEpOworICAgICAgICBicmVhazsKKyAgICB9CisKICAgICBkZWZh dWx0OgogICAgICAgICByYyA9IC1FT1BOT1RTVVBQOwogICAgICAgICBicmVhazsKQEAgLTIzMyw2 ICszMDUsOSBAQCBDSEVDS19kbV9vcF9pb3JlcV9zZXJ2ZXJfcmFuZ2U7CiBDSEVDS19kbV9vcF9z ZXRfaW9yZXFfc2VydmVyX3N0YXRlOwogQ0hFQ0tfZG1fb3BfZGVzdHJveV9pb3JlcV9zZXJ2ZXI7 CiBDSEVDS19kbV9vcF90cmFja19kaXJ0eV92cmFtOworQ0hFQ0tfZG1fb3Bfc2V0X3BjaV9pbnR4 X2xldmVsOworQ0hFQ0tfZG1fb3Bfc2V0X2lzYV9pcnFfbGV2ZWw7CitDSEVDS19kbV9vcF9zZXRf cGNpX2xpbmtfcm91dGU7CiAKICNkZWZpbmUgTUFYX05SX0JVRlMgMgogCmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvaHZtL2h2bS5jIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwppbmRleCA4ZmU5 ZTZhLi4zOGEyYTQ2IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCisrKyBiL3hl bi9hcmNoL3g4Ni9odm0vaHZtLmMKQEAgLTQwNDUsNTAgKzQwNDUsNiBAQCB2b2lkIGh2bV9oeXBl cmNhbGxfcGFnZV9pbml0aWFsaXNlKHN0cnVjdCBkb21haW4gKmQsCiAgICAgaHZtX2Z1bmNzLmlu aXRfaHlwZXJjYWxsX3BhZ2UoZCwgaHlwZXJjYWxsX3BhZ2UpOwogfQogCi1zdGF0aWMgaW50IGh2 bW9wX3NldF9wY2lfaW50eF9sZXZlbCgKLSAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9o dm1fc2V0X3BjaV9pbnR4X2xldmVsX3QpIHVvcCkKLXsKLSAgICBzdHJ1Y3QgeGVuX2h2bV9zZXRf cGNpX2ludHhfbGV2ZWwgb3A7Ci0gICAgc3RydWN0IGRvbWFpbiAqZDsKLSAgICBpbnQgcmM7Ci0K LSAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgmb3AsIHVvcCwgMSkgKQotICAgICAgICByZXR1cm4g LUVGQVVMVDsKLQotICAgIGlmICggKG9wLmRvbWFpbiA+IDApIHx8IChvcC5idXMgPiAwKSB8fCAo b3AuZGV2aWNlID4gMzEpIHx8IChvcC5pbnR4ID4gMykgKQotICAgICAgICByZXR1cm4gLUVJTlZB TDsKLQotICAgIHJjID0gcmN1X2xvY2tfcmVtb3RlX2RvbWFpbl9ieV9pZChvcC5kb21pZCwgJmQp OwotICAgIGlmICggcmMgIT0gMCApCi0gICAgICAgIHJldHVybiByYzsKLQotICAgIHJjID0gLUVJ TlZBTDsKLSAgICBpZiAoICFpc19odm1fZG9tYWluKGQpICkKLSAgICAgICAgZ290byBvdXQ7Ci0K LSAgICByYyA9IHhzbV9odm1fc2V0X3BjaV9pbnR4X2xldmVsKFhTTV9ETV9QUklWLCBkKTsKLSAg ICBpZiAoIHJjICkKLSAgICAgICAgZ290byBvdXQ7Ci0KLSAgICByYyA9IDA7Ci0gICAgc3dpdGNo ICggb3AubGV2ZWwgKQotICAgIHsKLSAgICBjYXNlIDA6Ci0gICAgICAgIGh2bV9wY2lfaW50eF9k ZWFzc2VydChkLCBvcC5kZXZpY2UsIG9wLmludHgpOwotICAgICAgICBicmVhazsKLSAgICBjYXNl IDE6Ci0gICAgICAgIGh2bV9wY2lfaW50eF9hc3NlcnQoZCwgb3AuZGV2aWNlLCBvcC5pbnR4KTsK LSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmMgPSAtRUlOVkFMOwotICAg ICAgICBicmVhazsKLSAgICB9Ci0KLSBvdXQ6Ci0gICAgcmN1X3VubG9ja19kb21haW4oZCk7Ci0g ICAgcmV0dXJuIHJjOwotfQotCiB2b2lkIGh2bV92Y3B1X3Jlc2V0X3N0YXRlKHN0cnVjdCB2Y3B1 ICp2LCB1aW50MTZfdCBjcywgdWludDE2X3QgaXApCiB7CiAgICAgc3RydWN0IGRvbWFpbiAqZCA9 IHYtPmRvbWFpbjsKQEAgLTQyMzIsODMgKzQxODgsNiBAQCBzdGF0aWMgdm9pZCBodm1fczNfcmVz dW1lKHN0cnVjdCBkb21haW4gKmQpCiAgICAgfQogfQogCi1zdGF0aWMgaW50IGh2bW9wX3NldF9p c2FfaXJxX2xldmVsKAotICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2h2bV9zZXRfaXNh X2lycV9sZXZlbF90KSB1b3ApCi17Ci0gICAgc3RydWN0IHhlbl9odm1fc2V0X2lzYV9pcnFfbGV2 ZWwgb3A7Ci0gICAgc3RydWN0IGRvbWFpbiAqZDsKLSAgICBpbnQgcmM7Ci0KLSAgICBpZiAoIGNv cHlfZnJvbV9ndWVzdCgmb3AsIHVvcCwgMSkgKQotICAgICAgICByZXR1cm4gLUVGQVVMVDsKLQot ICAgIGlmICggb3AuaXNhX2lycSA+IDE1ICkKLSAgICAgICAgcmV0dXJuIC1FSU5WQUw7Ci0KLSAg ICByYyA9IHJjdV9sb2NrX3JlbW90ZV9kb21haW5fYnlfaWQob3AuZG9taWQsICZkKTsKLSAgICBp ZiAoIHJjICE9IDAgKQotICAgICAgICByZXR1cm4gcmM7Ci0KLSAgICByYyA9IC1FSU5WQUw7Ci0g ICAgaWYgKCAhaXNfaHZtX2RvbWFpbihkKSApCi0gICAgICAgIGdvdG8gb3V0OwotCi0gICAgcmMg PSB4c21faHZtX3NldF9pc2FfaXJxX2xldmVsKFhTTV9ETV9QUklWLCBkKTsKLSAgICBpZiAoIHJj ICkKLSAgICAgICAgZ290byBvdXQ7Ci0KLSAgICByYyA9IDA7Ci0gICAgc3dpdGNoICggb3AubGV2 ZWwgKQotICAgIHsKLSAgICBjYXNlIDA6Ci0gICAgICAgIGh2bV9pc2FfaXJxX2RlYXNzZXJ0KGQs IG9wLmlzYV9pcnEpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIDE6Ci0gICAgICAgIGh2bV9p c2FfaXJxX2Fzc2VydChkLCBvcC5pc2FfaXJxKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVs dDoKLSAgICAgICAgcmMgPSAtRUlOVkFMOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSBvdXQ6 Ci0gICAgcmN1X3VubG9ja19kb21haW4oZCk7Ci0gICAgcmV0dXJuIHJjOwotfQotCi1zdGF0aWMg aW50IGh2bW9wX3NldF9wY2lfbGlua19yb3V0ZSgKLSAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFN KHhlbl9odm1fc2V0X3BjaV9saW5rX3JvdXRlX3QpIHVvcCkKLXsKLSAgICBzdHJ1Y3QgeGVuX2h2 bV9zZXRfcGNpX2xpbmtfcm91dGUgb3A7Ci0gICAgc3RydWN0IGRvbWFpbiAqZDsKLSAgICBpbnQg cmM7Ci0KLSAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgmb3AsIHVvcCwgMSkgKQotICAgICAgICBy ZXR1cm4gLUVGQVVMVDsKLQotICAgIGlmICggKG9wLmxpbmsgPiAzKSB8fCAob3AuaXNhX2lycSA+ IDE1KSApCi0gICAgICAgIHJldHVybiAtRUlOVkFMOwotCi0gICAgcmMgPSByY3VfbG9ja19yZW1v dGVfZG9tYWluX2J5X2lkKG9wLmRvbWlkLCAmZCk7Ci0gICAgaWYgKCByYyAhPSAwICkKLSAgICAg ICAgcmV0dXJuIHJjOwotCi0gICAgcmMgPSAtRUlOVkFMOwotICAgIGlmICggIWlzX2h2bV9kb21h aW4oZCkgKQotICAgICAgICBnb3RvIG91dDsKLQotICAgIHJjID0geHNtX2h2bV9zZXRfcGNpX2xp bmtfcm91dGUoWFNNX0RNX1BSSVYsIGQpOwotICAgIGlmICggcmMgKQotICAgICAgICBnb3RvIG91 dDsKLQotICAgIHJjID0gMDsKLSAgICBodm1fc2V0X3BjaV9saW5rX3JvdXRlKGQsIG9wLmxpbmss IG9wLmlzYV9pcnEpOwotCi0gb3V0OgotICAgIHJjdV91bmxvY2tfZG9tYWluKGQpOwotICAgIHJl dHVybiByYzsKLX0KLQogc3RhdGljIGludCBodm1vcF9pbmplY3RfbXNpKAogICAgIFhFTl9HVUVT VF9IQU5ETEVfUEFSQU0oeGVuX2h2bV9pbmplY3RfbXNpX3QpIHVvcCkKIHsKQEAgLTUxMTAsMjYg KzQ5ODksMTEgQEAgbG9uZyBkb19odm1fb3AodW5zaWduZWQgbG9uZyBvcCwgWEVOX0dVRVNUX0hB TkRMRV9QQVJBTSh2b2lkKSBhcmcpCiAgICAgICAgICAgICBndWVzdF9oYW5kbGVfY2FzdChhcmcs IHhlbl9odm1fcGFyYW1fdCkpOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgSFZNT1Bfc2V0 X3BjaV9pbnR4X2xldmVsOgotICAgICAgICByYyA9IGh2bW9wX3NldF9wY2lfaW50eF9sZXZlbCgK LSAgICAgICAgICAgIGd1ZXN0X2hhbmRsZV9jYXN0KGFyZywgeGVuX2h2bV9zZXRfcGNpX2ludHhf bGV2ZWxfdCkpOwotICAgICAgICBicmVhazsKLQotICAgIGNhc2UgSFZNT1Bfc2V0X2lzYV9pcnFf bGV2ZWw6Ci0gICAgICAgIHJjID0gaHZtb3Bfc2V0X2lzYV9pcnFfbGV2ZWwoCi0gICAgICAgICAg ICBndWVzdF9oYW5kbGVfY2FzdChhcmcsIHhlbl9odm1fc2V0X2lzYV9pcnFfbGV2ZWxfdCkpOwot ICAgICAgICBicmVhazsKLQogICAgIGNhc2UgSFZNT1BfaW5qZWN0X21zaToKICAgICAgICAgcmMg PSBodm1vcF9pbmplY3RfbXNpKAogICAgICAgICAgICAgZ3Vlc3RfaGFuZGxlX2Nhc3QoYXJnLCB4 ZW5faHZtX2luamVjdF9tc2lfdCkpOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgSFZNT1Bf c2V0X3BjaV9saW5rX3JvdXRlOgotICAgICAgICByYyA9IGh2bW9wX3NldF9wY2lfbGlua19yb3V0 ZSgKLSAgICAgICAgICAgIGd1ZXN0X2hhbmRsZV9jYXN0KGFyZywgeGVuX2h2bV9zZXRfcGNpX2xp bmtfcm91dGVfdCkpOwotICAgICAgICBicmVhazsKLQogICAgIGNhc2UgSFZNT1BfZmx1c2hfdGxi czoKICAgICAgICAgcmMgPSBndWVzdF9oYW5kbGVfaXNfbnVsbChhcmcpID8gaHZtb3BfZmx1c2hf dGxiX2FsbCgpIDogLUVJTlZBTDsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS94ZW4vYXJj aC94ODYvaHZtL2lycS5jIGIveGVuL2FyY2gveDg2L2h2bS9pcnEuYwppbmRleCBlNTk3MTE0Li4y NjVhNjIwIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2lycS5jCisrKyBiL3hlbi9hcmNo L3g4Ni9odm0vaXJxLmMKQEAgLTIyOSwxMyArMjI5LDE0IEBAIHZvaWQgaHZtX2Fzc2VydF9ldnRj aG5faXJxKHN0cnVjdCB2Y3B1ICp2KQogICAgICAgICBodm1fc2V0X2NhbGxiYWNrX2lycV9sZXZl bCh2KTsKIH0KIAotdm9pZCBodm1fc2V0X3BjaV9saW5rX3JvdXRlKHN0cnVjdCBkb21haW4gKmQs IHU4IGxpbmssIHU4IGlzYV9pcnEpCitpbnQgaHZtX3NldF9wY2lfbGlua19yb3V0ZShzdHJ1Y3Qg ZG9tYWluICpkLCB1OCBsaW5rLCB1OCBpc2FfaXJxKQogewogICAgIHN0cnVjdCBodm1faXJxICpo dm1faXJxID0gJmQtPmFyY2guaHZtX2RvbWFpbi5pcnE7CiAgICAgdTggb2xkX2lzYV9pcnE7CiAg ICAgaW50IGk7CiAKLSAgICBBU1NFUlQoKGxpbmsgPD0gMykgJiYgKGlzYV9pcnEgPD0gMTUpKTsK KyAgICBpZiAoIChsaW5rID4gMykgfHwgKGlzYV9pcnEgPiAxNSkgKQorICAgICAgICByZXR1cm4g LUVJTlZBTDsKIAogICAgIHNwaW5fbG9jaygmZC0+YXJjaC5odm1fZG9tYWluLmlycV9sb2NrKTsK IApAQCAtMjczLDYgKzI3NCw4IEBAIHZvaWQgaHZtX3NldF9wY2lfbGlua19yb3V0ZShzdHJ1Y3Qg ZG9tYWluICpkLCB1OCBsaW5rLCB1OCBpc2FfaXJxKQogCiAgICAgZHByaW50ayhYRU5MT0dfR19J TkZPLCAiRG9tJXUgUENJIGxpbmsgJXUgY2hhbmdlZCAldSAtPiAldVxuIiwKICAgICAgICAgICAg IGQtPmRvbWFpbl9pZCwgbGluaywgb2xkX2lzYV9pcnEsIGlzYV9pcnEpOworCisgICAgcmV0dXJu IDA7CiB9CiAKIGludCBodm1faW5qZWN0X21zaShzdHJ1Y3QgZG9tYWluICpkLCB1aW50NjRfdCBh ZGRyLCB1aW50MzJfdCBkYXRhKQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9k bV9vcC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oCmluZGV4IGZlZjAxZDIuLjE3 Y2I4MzAgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaAorKysgYi94 ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmgKQEAgLTE5NCw2ICsxOTQsNDUgQEAgc3RydWN0 IHhlbl9kbV9vcF90cmFja19kaXJ0eV92cmFtIHsKICAgICB1aW50NjRfYWxpZ25lZF90IGZpcnN0 X3BmbjsKIH07CiAKKy8qCisgKiBYRU5fRE1PUF9zZXRfcGNpX2ludHhfbGV2ZWw6IFNldCB0aGUg bG9naWNhbCBsZXZlbCBvZiBvbmUgb2YgYSBkb21haW4ncworICogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQQ0kgSU5UeCBwaW5zLgorICovCisjZGVmaW5lIFhFTl9ETU9QX3NldF9wY2lf aW50eF9sZXZlbCA4CisKK3N0cnVjdCB4ZW5fZG1fb3Bfc2V0X3BjaV9pbnR4X2xldmVsIHsKKyAg ICAvKiBJTiAtIFBDSSBJTlR4IGlkZW50aWZpY2F0aW9uIChkb21haW46YnVzOmRldmljZTppbnR4 KSAqLworICAgIHVpbnQxNl90IGRvbWFpbjsKKyAgICB1aW50OF90IGJ1cywgZGV2aWNlLCBpbnR4 OworICAgIC8qIElOIC0gTGV2ZWw6IDAgLT4gZGVhc3NlcnRlZCwgMSAtPiBhc3NlcnRlZCAqLwor ICAgIHVpbnQ4X3QgIGxldmVsOworfTsKKworLyoKKyAqIFhFTl9ETU9QX3NldF9pc2FfaXJxX2xl dmVsOiBTZXQgdGhlIGxvZ2ljYWwgbGV2ZWwgb2YgYSBvbmUgb2YgYSBkb21haW4ncworICogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElTQSBJUlEgbGluZXMuCisgKi8KKyNkZWZpbmUgWEVO X0RNT1Bfc2V0X2lzYV9pcnFfbGV2ZWwgOQorCitzdHJ1Y3QgeGVuX2RtX29wX3NldF9pc2FfaXJx X2xldmVsIHsKKyAgICAvKiBJTiAtIElTQSBJUlEgKDAtMTUpICovCisgICAgdWludDhfdCAgaXNh X2lycTsKKyAgICAvKiBJTiAtIExldmVsOiAwIC0+IGRlYXNzZXJ0ZWQsIDEgLT4gYXNzZXJ0ZWQg Ki8KKyAgICB1aW50OF90ICBsZXZlbDsKK307CisKKy8qCisgKiBYRU5fRE1PUF9zZXRfcGNpX2xp bmtfcm91dGU6IE1hcCBhIFBDSSBJTlR4IGxpbmUgdG8gYW4gSVJRIGxpbmUuCisgKi8KKyNkZWZp bmUgWEVOX0RNT1Bfc2V0X3BjaV9saW5rX3JvdXRlIDEwCisKK3N0cnVjdCB4ZW5fZG1fb3Bfc2V0 X3BjaV9saW5rX3JvdXRlIHsKKyAgICAvKiBQQ0kgSU5UeCBsaW5lICgwLTMpICovCisgICAgdWlu dDhfdCAgbGluazsKKyAgICAvKiBJU0EgSVJRICgxLTE1KSBvciAwIC0+IGRpc2FibGUgbGluayAq LworICAgIHVpbnQ4X3QgIGlzYV9pcnE7Cit9OworCiBzdHJ1Y3QgeGVuX2RtX29wIHsKICAgICB1 aW50MzJfdCBvcDsKICAgICB1aW50MzJfdCBwYWQ7CkBAIC0yMDUsNiArMjQ0LDkgQEAgc3RydWN0 IHhlbl9kbV9vcCB7CiAgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3Bfc2V0X2lvcmVxX3NlcnZlcl9z dGF0ZSBzZXRfaW9yZXFfc2VydmVyX3N0YXRlOwogICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX2Rl c3Ryb3lfaW9yZXFfc2VydmVyIGRlc3Ryb3lfaW9yZXFfc2VydmVyOwogICAgICAgICBzdHJ1Y3Qg eGVuX2RtX29wX3RyYWNrX2RpcnR5X3ZyYW0gdHJhY2tfZGlydHlfdnJhbTsKKyAgICAgICAgc3Ry dWN0IHhlbl9kbV9vcF9zZXRfcGNpX2ludHhfbGV2ZWwgc2V0X3BjaV9pbnR4X2xldmVsOworICAg ICAgICBzdHJ1Y3QgeGVuX2RtX29wX3NldF9pc2FfaXJxX2xldmVsIHNldF9pc2FfaXJxX2xldmVs OworICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX3NldF9wY2lfbGlua19yb3V0ZSBzZXRfcGNpX2xp bmtfcm91dGU7CiAgICAgfSB1OwogfTsKIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGlj L2h2bS9odm1fb3AuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vaHZtX29wLmgKaW5kZXggNDdl ODM2Yy4uN2NmOGQ0ZCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1fb3Au aAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5oCkBAIC0zOCw2ICszOCw4IEBA IHN0cnVjdCB4ZW5faHZtX3BhcmFtIHsKIHR5cGVkZWYgc3RydWN0IHhlbl9odm1fcGFyYW0geGVu X2h2bV9wYXJhbV90OwogREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2bV9wYXJhbV90KTsK IAorI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gPCAweDAwMDQwOTAwCisKIC8qIFNldCB0 aGUgbG9naWNhbCBsZXZlbCBvZiBvbmUgb2YgYSBkb21haW4ncyBQQ0kgSU5UeCB3aXJlcy4gKi8K ICNkZWZpbmUgSFZNT1Bfc2V0X3BjaV9pbnR4X2xldmVsICAyCiBzdHJ1Y3QgeGVuX2h2bV9zZXRf cGNpX2ludHhfbGV2ZWwgewpAQCAtNzYsNiArNzgsOCBAQCBzdHJ1Y3QgeGVuX2h2bV9zZXRfcGNp X2xpbmtfcm91dGUgewogdHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9zZXRfcGNpX2xpbmtfcm91dGUg eGVuX2h2bV9zZXRfcGNpX2xpbmtfcm91dGVfdDsKIERFRklORV9YRU5fR1VFU1RfSEFORExFKHhl bl9odm1fc2V0X3BjaV9saW5rX3JvdXRlX3QpOwogCisjZW5kaWYgLyogX19YRU5fSU5URVJGQUNF X1ZFUlNJT05fXyA8IDB4MDAwNDA5MDAgKi8KKwogLyogRmx1c2hlcyBhbGwgVkNQVSBUTEJzOiBA YXJnIG11c3QgYmUgTlVMTC4gKi8KICNkZWZpbmUgSFZNT1BfZmx1c2hfdGxicyAgICAgICAgICA1 CiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy94ZW4tY29tcGF0LmggYi94ZW4vaW5j bHVkZS9wdWJsaWMveGVuLWNvbXBhdC5oCmluZGV4IGRkOGE1YzAuLmI2NzM2NTMgMTAwNjQ0Ci0t LSBhL3hlbi9pbmNsdWRlL3B1YmxpYy94ZW4tY29tcGF0LmgKKysrIGIveGVuL2luY2x1ZGUvcHVi bGljL3hlbi1jb21wYXQuaApAQCAtMjcsNyArMjcsNyBAQAogI2lmbmRlZiBfX1hFTl9QVUJMSUNf WEVOX0NPTVBBVF9IX18KICNkZWZpbmUgX19YRU5fUFVCTElDX1hFTl9DT01QQVRfSF9fCiAKLSNk ZWZpbmUgX19YRU5fTEFURVNUX0lOVEVSRkFDRV9WRVJTSU9OX18gMHgwMDA0MDgwMAorI2RlZmlu ZSBfX1hFTl9MQVRFU1RfSU5URVJGQUNFX1ZFUlNJT05fXyAweDAwMDQwOTAwCiAKICNpZiBkZWZp bmVkKF9fWEVOX18pIHx8IGRlZmluZWQoX19YRU5fVE9PTFNfXykKIC8qIFhlbiBpcyBidWlsdCB3 aXRoIG1hdGNoaW5nIGhlYWRlcnMgYW5kIGltcGxlbWVudHMgdGhlIGxhdGVzdCBpbnRlcmZhY2Uu ICovCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vaHZtL2lycS5oIGIveGVuL2luY2x1ZGUv eGVuL2h2bS9pcnEuaAppbmRleCA0YzljYjIwLi5kM2Y4NjIzIDEwMDY0NAotLS0gYS94ZW4vaW5j bHVkZS94ZW4vaHZtL2lycS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9odm0vaXJxLmgKQEAgLTEy Miw3ICsxMjIsNyBAQCB2b2lkIGh2bV9pc2FfaXJxX2Fzc2VydCgKIHZvaWQgaHZtX2lzYV9pcnFf ZGVhc3NlcnQoCiAgICAgc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IGlzYV9pcnEpOwog Ci12b2lkIGh2bV9zZXRfcGNpX2xpbmtfcm91dGUoc3RydWN0IGRvbWFpbiAqZCwgdTggbGluaywg dTggaXNhX2lycSk7CitpbnQgaHZtX3NldF9wY2lfbGlua19yb3V0ZShzdHJ1Y3QgZG9tYWluICpk LCB1OCBsaW5rLCB1OCBpc2FfaXJxKTsKIAogaW50IGh2bV9pbmplY3RfbXNpKHN0cnVjdCBkb21h aW4gKmQsIHVpbnQ2NF90IGFkZHIsIHVpbnQzMl90IGRhdGEpOwogCmRpZmYgLS1naXQgYS94ZW4v aW5jbHVkZS94bGF0LmxzdCBiL3hlbi9pbmNsdWRlL3hsYXQubHN0CmluZGV4IDU1YWM1ZmMuLjAz MzA5YTUgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hsYXQubHN0CisrKyBiL3hlbi9pbmNsdWRl L3hsYXQubHN0CkBAIC02Miw2ICs2Miw5IEBACiA/CWRtX29wX2dldF9pb3JlcV9zZXJ2ZXJfaW5m bwlodm0vZG1fb3AuaAogPwlkbV9vcF9pb3JlcV9zZXJ2ZXJfcmFuZ2UJaHZtL2RtX29wLmgKID8J ZG1fb3Bfc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZQlodm0vZG1fb3AuaAorPwlkbV9vcF9zZXRfaXNh X2lycV9sZXZlbAkJaHZtL2RtX29wLmgKKz8JZG1fb3Bfc2V0X3BjaV9pbnR4X2xldmVsCWh2bS9k bV9vcC5oCis/CWRtX29wX3NldF9wY2lfbGlua19yb3V0ZQlodm0vZG1fb3AuaAogPwlkbV9vcF90 cmFja19kaXJ0eV92cmFtCQlodm0vZG1fb3AuaAogPwl2Y3B1X2h2bV9jb250ZXh0CQlodm0vaHZt X3ZjcHUuaAogPwl2Y3B1X2h2bV94ODZfMzIJCQlodm0vaHZtX3ZjcHUuaApkaWZmIC0tZ2l0IGEv eGVuL2luY2x1ZGUveHNtL2R1bW15LmggYi94ZW4vaW5jbHVkZS94c20vZHVtbXkuaAppbmRleCA5 ZjdjMTc0Li5kM2RlNGI3IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94c20vZHVtbXkuaAorKysg Yi94ZW4vaW5jbHVkZS94c20vZHVtbXkuaApAQCAtNjEwLDI0ICs2MTAsNiBAQCBzdGF0aWMgWFNN X0lOTElORSBpbnQgeHNtX3NoYWRvd19jb250cm9sKFhTTV9ERUZBVUxUX0FSRyBzdHJ1Y3QgZG9t YWluICpkLCB1aW50MwogICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oYWN0aW9uLCBjdXJy ZW50LT5kb21haW4sIGQpOwogfQogCi1zdGF0aWMgWFNNX0lOTElORSBpbnQgeHNtX2h2bV9zZXRf cGNpX2ludHhfbGV2ZWwoWFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBkb21haW4gKmQpCi17Ci0gICAg WFNNX0FTU0VSVF9BQ1RJT04oWFNNX0RNX1BSSVYpOwotICAgIHJldHVybiB4c21fZGVmYXVsdF9h Y3Rpb24oYWN0aW9uLCBjdXJyZW50LT5kb21haW4sIGQpOwotfQotCi1zdGF0aWMgWFNNX0lOTElO RSBpbnQgeHNtX2h2bV9zZXRfaXNhX2lycV9sZXZlbChYU01fREVGQVVMVF9BUkcgc3RydWN0IGRv bWFpbiAqZCkKLXsKLSAgICBYU01fQVNTRVJUX0FDVElPTihYU01fRE1fUFJJVik7Ci0gICAgcmV0 dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihhY3Rpb24sIGN1cnJlbnQtPmRvbWFpbiwgZCk7Ci19Ci0K LXN0YXRpYyBYU01fSU5MSU5FIGludCB4c21faHZtX3NldF9wY2lfbGlua19yb3V0ZShYU01fREVG QVVMVF9BUkcgc3RydWN0IGRvbWFpbiAqZCkKLXsKLSAgICBYU01fQVNTRVJUX0FDVElPTihYU01f RE1fUFJJVik7Ci0gICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihhY3Rpb24sIGN1cnJlbnQt PmRvbWFpbiwgZCk7Ci19Ci0KIHN0YXRpYyBYU01fSU5MSU5FIGludCB4c21faHZtX2luamVjdF9t c2koWFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBkb21haW4gKmQpCiB7CiAgICAgWFNNX0FTU0VSVF9B Q1RJT04oWFNNX0RNX1BSSVYpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveHNtL3hzbS5oIGIv eGVuL2luY2x1ZGUveHNtL3hzbS5oCmluZGV4IGI1ODQ1YTIuLjJlNGEzY2UgMTAwNjQ0Ci0tLSBh L3hlbi9pbmNsdWRlL3hzbS94c20uaAorKysgYi94ZW4vaW5jbHVkZS94c20veHNtLmgKQEAgLTE2 Miw5ICsxNjIsNiBAQCBzdHJ1Y3QgeHNtX29wZXJhdGlvbnMgewogI2lmZGVmIENPTkZJR19YODYK ICAgICBpbnQgKCpkb19tY2EpICh2b2lkKTsKICAgICBpbnQgKCpzaGFkb3dfY29udHJvbCkgKHN0 cnVjdCBkb21haW4gKmQsIHVpbnQzMl90IG9wKTsKLSAgICBpbnQgKCpodm1fc2V0X3BjaV9pbnR4 X2xldmVsKSAoc3RydWN0IGRvbWFpbiAqZCk7Ci0gICAgaW50ICgqaHZtX3NldF9pc2FfaXJxX2xl dmVsKSAoc3RydWN0IGRvbWFpbiAqZCk7Ci0gICAgaW50ICgqaHZtX3NldF9wY2lfbGlua19yb3V0 ZSkgKHN0cnVjdCBkb21haW4gKmQpOwogICAgIGludCAoKmh2bV9pbmplY3RfbXNpKSAoc3RydWN0 IGRvbWFpbiAqZCk7CiAgICAgaW50ICgqbWVtX3NoYXJpbmdfb3ApIChzdHJ1Y3QgZG9tYWluICpk LCBzdHJ1Y3QgZG9tYWluICpjZCwgaW50IG9wKTsKICAgICBpbnQgKCphcGljKSAoc3RydWN0IGRv bWFpbiAqZCwgaW50IGNtZCk7CkBAIC02MzUsMjEgKzYzMiw2IEBAIHN0YXRpYyBpbmxpbmUgaW50 IHhzbV9zaGFkb3dfY29udHJvbCAoeHNtX2RlZmF1bHRfdCBkZWYsIHN0cnVjdCBkb21haW4gKmQs IHVpbnQzCiAgICAgcmV0dXJuIHhzbV9vcHMtPnNoYWRvd19jb250cm9sKGQsIG9wKTsKIH0KIAot c3RhdGljIGlubGluZSBpbnQgeHNtX2h2bV9zZXRfcGNpX2ludHhfbGV2ZWwgKHhzbV9kZWZhdWx0 X3QgZGVmLCBzdHJ1Y3QgZG9tYWluICpkKQotewotICAgIHJldHVybiB4c21fb3BzLT5odm1fc2V0 X3BjaV9pbnR4X2xldmVsKGQpOwotfQotCi1zdGF0aWMgaW5saW5lIGludCB4c21faHZtX3NldF9p c2FfaXJxX2xldmVsICh4c21fZGVmYXVsdF90IGRlZiwgc3RydWN0IGRvbWFpbiAqZCkKLXsKLSAg ICByZXR1cm4geHNtX29wcy0+aHZtX3NldF9pc2FfaXJxX2xldmVsKGQpOwotfQotCi1zdGF0aWMg aW5saW5lIGludCB4c21faHZtX3NldF9wY2lfbGlua19yb3V0ZSAoeHNtX2RlZmF1bHRfdCBkZWYs IHN0cnVjdCBkb21haW4gKmQpCi17Ci0gICAgcmV0dXJuIHhzbV9vcHMtPmh2bV9zZXRfcGNpX2xp bmtfcm91dGUoZCk7Ci19Ci0KIHN0YXRpYyBpbmxpbmUgaW50IHhzbV9odm1faW5qZWN0X21zaSAo eHNtX2RlZmF1bHRfdCBkZWYsIHN0cnVjdCBkb21haW4gKmQpCiB7CiAgICAgcmV0dXJuIHhzbV9v cHMtPmh2bV9pbmplY3RfbXNpKGQpOwpkaWZmIC0tZ2l0IGEveGVuL3hzbS9kdW1teS5jIGIveGVu L3hzbS9kdW1teS5jCmluZGV4IGQ1NDRlYzEuLmYxNTY4ZGQgMTAwNjQ0Ci0tLSBhL3hlbi94c20v ZHVtbXkuYworKysgYi94ZW4veHNtL2R1bW15LmMKQEAgLTE0NSw5ICsxNDUsNiBAQCB2b2lkIF9f aW5pdCB4c21fZml4dXBfb3BzIChzdHJ1Y3QgeHNtX29wZXJhdGlvbnMgKm9wcykKICNpZmRlZiBD T05GSUdfWDg2CiAgICAgc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBkb19tY2EpOwogICAgIHNl dF90b19kdW1teV9pZl9udWxsKG9wcywgc2hhZG93X2NvbnRyb2wpOwotICAgIHNldF90b19kdW1t eV9pZl9udWxsKG9wcywgaHZtX3NldF9wY2lfaW50eF9sZXZlbCk7Ci0gICAgc2V0X3RvX2R1bW15 X2lmX251bGwob3BzLCBodm1fc2V0X2lzYV9pcnFfbGV2ZWwpOwotICAgIHNldF90b19kdW1teV9p Zl9udWxsKG9wcywgaHZtX3NldF9wY2lfbGlua19yb3V0ZSk7CiAgICAgc2V0X3RvX2R1bW15X2lm X251bGwob3BzLCBodm1faW5qZWN0X21zaSk7CiAgICAgc2V0X3RvX2R1bW15X2lmX251bGwob3Bz LCBtZW1fc2hhcmluZ19vcCk7CiAgICAgc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBhcGljKTsK ZGlmZiAtLWdpdCBhL3hlbi94c20vZmxhc2svaG9va3MuYyBiL3hlbi94c20vZmxhc2svaG9va3Mu YwppbmRleCBhNDI3MmQ3Li42ODVjYmZhIDEwMDY0NAotLS0gYS94ZW4veHNtL2ZsYXNrL2hvb2tz LmMKKysrIGIveGVuL3hzbS9mbGFzay9ob29rcy5jCkBAIC0xNTAyLDIxICsxNTAyLDYgQEAgc3Rh dGljIGludCBmbGFza19pb3BvcnRfbWFwcGluZyhzdHJ1Y3QgZG9tYWluICpkLCB1aW50MzJfdCBz dGFydCwgdWludDMyX3QgZW5kLAogICAgIHJldHVybiBmbGFza19pb3BvcnRfcGVybWlzc2lvbihk LCBzdGFydCwgZW5kLCBhY2Nlc3MpOwogfQogCi1zdGF0aWMgaW50IGZsYXNrX2h2bV9zZXRfcGNp X2ludHhfbGV2ZWwoc3RydWN0IGRvbWFpbiAqZCkKLXsKLSAgICByZXR1cm4gY3VycmVudF9oYXNf cGVybShkLCBTRUNDTEFTU19IVk0sIEhWTV9fUENJTEVWRUwpOwotfQotCi1zdGF0aWMgaW50IGZs YXNrX2h2bV9zZXRfaXNhX2lycV9sZXZlbChzdHJ1Y3QgZG9tYWluICpkKQotewotICAgIHJldHVy biBjdXJyZW50X2hhc19wZXJtKGQsIFNFQ0NMQVNTX0hWTSwgSFZNX19JUlFMRVZFTCk7Ci19Ci0K LXN0YXRpYyBpbnQgZmxhc2tfaHZtX3NldF9wY2lfbGlua19yb3V0ZShzdHJ1Y3QgZG9tYWluICpk KQotewotICAgIHJldHVybiBjdXJyZW50X2hhc19wZXJtKGQsIFNFQ0NMQVNTX0hWTSwgSFZNX19Q Q0lST1VURSk7Ci19Ci0KIHN0YXRpYyBpbnQgZmxhc2tfaHZtX2luamVjdF9tc2koc3RydWN0IGRv bWFpbiAqZCkKIHsKICAgICByZXR1cm4gY3VycmVudF9oYXNfcGVybShkLCBTRUNDTEFTU19IVk0s IEhWTV9fU0VORF9JUlEpOwpkaWZmIC0tZ2l0IGEveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNz X3ZlY3RvcnMgYi94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycwppbmRleCA0N2Nl NTg5Li4yZjBlZDJkIDEwMDY0NAotLS0gYS94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVj dG9ycworKysgYi94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycwpAQCAtMjU5LDEy ICsyNTksNiBAQCBjbGFzcyBodm0KICAgICBzZXRwYXJhbQogIyBIVk1PUF9nZXRfcGFyYW0KICAg ICBnZXRwYXJhbQotIyBIVk1PUF9zZXRfcGNpX2ludHhfbGV2ZWwgKGFsc28gbmVlZHMgaHZtY3Rs KQotICAgIHBjaWxldmVsCi0jIEhWTU9QX3NldF9pc2FfaXJxX2xldmVsCi0gICAgaXJxbGV2ZWwK LSMgSFZNT1Bfc2V0X3BjaV9saW5rX3JvdXRlCi0gICAgcGNpcm91dGUKICAgICBiaW5kX2lycQog IyBYRU5fRE9NQ1RMX3Bpbl9tZW1fY2FjaGVhdHRyCiAgICAgY2FjaGVhdHRyCi0tIAoyLjEuNAoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4u b3JnL3hlbi1kZXZlbAo=