From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v2 4/8] dm_op: convert HVMOP_set_pci_intx_level, HVMOP_set_isa_irq_level, and... Date: Tue, 6 Dec 2016 13:46:15 +0000 Message-ID: <1481031979-4751-5-git-send-email-paul.durrant@citrix.com> References: <1481031979-4751-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 1cEGQO-00080C-7b for xen-devel@lists.xenproject.org; Tue, 06 Dec 2016 14:08:52 +0000 In-Reply-To: <1481031979-4751-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: Wei Liu , Andrew Cooper , Ian Jackson , Paul Durrant , Jan Beulich , Daniel De Graaf List-Id: xen-devel@lists.xenproject.org Li4uIEhWTU9QX3NldF9wY2lfbGlua19yb3V0ZQoKVGhlc2UgSFZNT1BzIHdlcmUgZXhwb3NlZCB0 byBndWVzdHMgc28gdGhlaXIgZGVmaW5pdGlvbnMgbmVlZCB0byBiZQpwcmVzZXJ2ZWQgZm9yIGNv bXBhdGliaWxpdHkuIFRoaXMgcGF0Y2ggdGhlcmVmb3JlIHVwZGF0ZXMKX19YRU5fTEFURVNUX0lO VEVSRkFDRV9WRVJTSU9OX18gdG8gMHgwMDA0MDkwMCBhbmQgbWFrZXMgdGhlIEhWTU9QCmRlZmlu dGlvbnMgY29uZGl0aW9uYWwgb24gX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyBsZXNzIHRoYW4g dGhhdCB2YWx1ZS4KCk5PVEU6IFRoaXMgcGF0Y2ggYWxzbyB3aWRlbnMgdGhlICdkb21haW4nIHBh cmFtZXRlciBvZgogICAgICB4Y19odm1fc2V0X3BjaV9pbnR4X2xldmVsKCkgZnJvbSBhIHVpbnQ4 X3QgdG8gYSB1aW50MTZfdC4KClN1Z2dlc3RlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1 c2UuY29tPgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXgu Y29tPgotLS0KQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KQ2M6IERhbmllbCBE ZSBHcmFhZiA8ZGdkZWdyYUB0eWNoby5uc2EuZ292PgpDYzogSWFuIEphY2tzb24gPGlhbi5qYWNr c29uQGV1LmNpdHJpeC5jb20+CkNjOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgpDYzog QW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KCnYyOgotIEludGVyZmFj ZSB2ZXJzaW9uIG1vZGlmaWNhdGlvbiBtb3ZlZCB0byB0aGlzIHBhdGNoLCB3aGVyZSBpdCBpcyBu ZWVkZWQuCi0gQWRkcmVzc2VkIHNldmVyYWwgY29tbWVudHMgZnJvbSBKYW4uCi0tLQogdG9vbHMv Zmxhc2svcG9saWN5L21vZHVsZXMveGVuLmlmICAgfCAgIDggKy0tCiB0b29scy9saWJ4Yy9pbmNs dWRlL3hlbmN0cmwuaCAgICAgICB8ICAgMiArLQogdG9vbHMvbGlieGMveGNfbWlzYy5jICAgICAg ICAgICAgICAgfCAgODMgKysrKysrKystLS0tLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L2h2bS9k bS5jICAgICAgICAgICAgICAgfCAgODQgKysrKysrKysrKysrKysrKysrKysrKwogeGVuL2FyY2gv eDg2L2h2bS9odm0uYyAgICAgICAgICAgICAgfCAxMzYgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvaHZtL2lycS5jICAgICAgICAgICAgICB8ICAgNyAr LQogeGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oICAgICAgfCAgNDYgKysrKysrKysrKysr CiB4ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5oICAgICB8ICAgNCArKwogeGVuL2luY2x1 ZGUvcHVibGljL3hlbi1jb21wYXQuaCAgICAgfCAgIDIgKy0KIHhlbi9pbmNsdWRlL3hlbi9odm0v aXJxLmggICAgICAgICAgIHwgICAyICstCiB4ZW4vaW5jbHVkZS94c20vZHVtbXkuaCAgICAgICAg ICAgICB8ICAxOCAtLS0tLQogeGVuL2luY2x1ZGUveHNtL3hzbS5oICAgICAgICAgICAgICAgfCAg MTggLS0tLS0KIHhlbi94c20vZHVtbXkuYyAgICAgICAgICAgICAgICAgICAgIHwgICAzIC0KIHhl bi94c20vZmxhc2svaG9va3MuYyAgICAgICAgICAgICAgIHwgIDE1IC0tLS0KIHhlbi94c20vZmxh c2svcG9saWN5L2FjY2Vzc192ZWN0b3JzIHwgICA2IC0tCiAxNSBmaWxlcyBjaGFuZ2VkLCAxNzQg aW5zZXJ0aW9ucygrKSwgMjYwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2ZsYXNr L3BvbGljeS9tb2R1bGVzL3hlbi5pZiBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL3hlbi5p ZgppbmRleCAzNjYyNzNlLi5lNmRmYWYwIDEwMDY0NAotLS0gYS90b29scy9mbGFzay9wb2xpY3kv bW9kdWxlcy94ZW4uaWYKKysrIGIvdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMveGVuLmlmCkBA IC01Nyw4ICs1Nyw4IEBAIGRlZmluZShgY3JlYXRlX2RvbWFpbl9jb21tb24nLCBgCiAJYWxsb3cg JDEgJDI6c2hhZG93IGVuYWJsZTsKIAlhbGxvdyAkMSAkMjptbXUgeyBtYXBfcmVhZCBtYXBfd3Jp dGUgYWRqdXN0IG1lbW9yeW1hcCBwaHlzbWFwIHBpbnBhZ2UgbW11ZXh0X29wIHVwZGF0ZW1wIH07 CiAJYWxsb3cgJDEgJDI6Z3JhbnQgc2V0dXA7Ci0JYWxsb3cgJDEgJDI6aHZtIHsgY2FjaGVhdHRy IGdldHBhcmFtIGh2bWN0bCBpcnFsZXZlbCBwY2lyb3V0ZSBzZXRodm1jCi0JCQlzZXRwYXJhbSBw Y2lsZXZlbCBuZXN0ZWQgYWx0cDJtaHZtIGFsdHAybWh2bV9vcCB9OworCWFsbG93ICQxICQyOmh2 bSB7IGNhY2hlYXR0ciBnZXRwYXJhbSBodm1jdGwgc2V0aHZtYworCQkJc2V0cGFyYW0gbmVzdGVk IGFsdHAybWh2bSBhbHRwMm1odm1fb3AgfTsKICcpCiAKICMgY3JlYXRlX2RvbWFpbihwcml2LCB0 YXJnZXQpCkBAIC05Myw3ICs5Myw3IEBAIGRlZmluZShgbWFuYWdlX2RvbWFpbicsIGAKICMgICAo aW5ib3VuZCBtaWdyYXRpb24gaXMgdGhlIHNhbWUgYXMgZG9tYWluIGNyZWF0aW9uKQogZGVmaW5l KGBtaWdyYXRlX2RvbWFpbl9vdXQnLCBgCiAJYWxsb3cgJDEgZG9teGVuX3Q6bW11IG1hcF9yZWFk OwotCWFsbG93ICQxICQyOmh2bSB7IGdldGh2bWMgZ2V0cGFyYW0gaXJxbGV2ZWwgfTsKKwlhbGxv dyAkMSAkMjpodm0geyBnZXRodm1jIGdldHBhcmFtIH07CiAJYWxsb3cgJDEgJDI6bW11IHsgc3Rh dCBwYWdlaW5mbyBtYXBfcmVhZCB9OwogCWFsbG93ICQxICQyOmRvbWFpbiB7IGdldGFkZHJzaXpl IGdldHZjcHVjb250ZXh0IHBhdXNlIGRlc3Ryb3kgfTsKIAlhbGxvdyAkMSAkMjpkb21haW4yIGdl dHRzYzsKQEAgLTE1MSw3ICsxNTEsNyBAQCBkZWZpbmUoYGRldmljZV9tb2RlbCcsIGAKIAogCWFs bG93ICQxICQyX3RhcmdldDpkb21haW4geyBnZXRkb21haW5pbmZvIHNodXRkb3duIH07CiAJYWxs b3cgJDEgJDJfdGFyZ2V0Om1tdSB7IG1hcF9yZWFkIG1hcF93cml0ZSBhZGp1c3QgcGh5c21hcCB0 YXJnZXRfaGFjayB9OwotCWFsbG93ICQxICQyX3RhcmdldDpodm0geyBnZXRwYXJhbSBzZXRwYXJh bSBodm1jdGwgaXJxbGV2ZWwgcGNpcm91dGUgcGNpbGV2ZWwgY2FjaGVhdHRyIHNlbmRfaXJxIGRt IH07CisJYWxsb3cgJDEgJDJfdGFyZ2V0Omh2bSB7IGdldHBhcmFtIHNldHBhcmFtIGh2bWN0bCBj YWNoZWF0dHIgc2VuZF9pcnEgZG0gfTsKICcpCiAKICMgbWFrZV9kZXZpY2VfbW9kZWwocHJpdiwg ZG1fZG9tLCBodm1fZG9tKQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJs LmggYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaAppbmRleCBhNmUyNmMyLi5kYjA0ODQ4 IDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaAorKysgYi90b29scy9s aWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaApAQCAtMTU5NCw3ICsxNTk0LDcgQEAgaW50IHhjX3BoeXNk ZXZfdW5tYXBfcGlycSh4Y19pbnRlcmZhY2UgKnhjaCwKIAogaW50IHhjX2h2bV9zZXRfcGNpX2lu dHhfbGV2ZWwoCiAgICAgeGNfaW50ZXJmYWNlICp4Y2gsIGRvbWlkX3QgZG9tLAotICAgIHVpbnQ4 X3QgZG9tYWluLCB1aW50OF90IGJ1cywgdWludDhfdCBkZXZpY2UsIHVpbnQ4X3QgaW50eCwKKyAg ICB1aW50MTZfdCBkb21haW4sIHVpbnQ4X3QgYnVzLCB1aW50OF90IGRldmljZSwgdWludDhfdCBp bnR4LAogICAgIHVuc2lnbmVkIGludCBsZXZlbCk7CiBpbnQgeGNfaHZtX3NldF9pc2FfaXJxX2xl dmVsKAogICAgIHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbSwKZGlmZiAtLWdpdCBhL3Rv b2xzL2xpYnhjL3hjX21pc2MuYyBiL3Rvb2xzL2xpYnhjL3hjX21pc2MuYwppbmRleCA0YzQxZDQx Li5kZGVhMmJiIDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy94Y19taXNjLmMKKysrIGIvdG9vbHMv bGlieGMveGNfbWlzYy5jCkBAIC00NzAsMzMgKzQ3MCwyNCBAQCBpbnQgeGNfZ2V0Y3B1aW5mbyh4 Y19pbnRlcmZhY2UgKnhjaCwgaW50IG1heF9jcHVzLAogCiBpbnQgeGNfaHZtX3NldF9wY2lfaW50 eF9sZXZlbCgKICAgICB4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb20sCi0gICAgdWludDhf dCBkb21haW4sIHVpbnQ4X3QgYnVzLCB1aW50OF90IGRldmljZSwgdWludDhfdCBpbnR4LAorICAg IHVpbnQxNl90IGRvbWFpbiwgdWludDhfdCBidXMsIHVpbnQ4X3QgZGV2aWNlLCB1aW50OF90IGlu dHgsCiAgICAgdW5zaWduZWQgaW50IGxldmVsKQogewotICAgIERFQ0xBUkVfSFlQRVJDQUxMX0JV RkZFUihzdHJ1Y3QgeGVuX2h2bV9zZXRfcGNpX2ludHhfbGV2ZWwsIGFyZyk7Ci0gICAgaW50IHJj OwotCi0gICAgYXJnID0geGNfaHlwZXJjYWxsX2J1ZmZlcl9hbGxvYyh4Y2gsIGFyZywgc2l6ZW9m KCphcmcpKTsKLSAgICBpZiAoIGFyZyA9PSBOVUxMICkKLSAgICB7Ci0gICAgICAgIFBFUlJPUigi Q291bGQgbm90IGFsbG9jYXRlIG1lbW9yeSBmb3IgeGNfaHZtX3NldF9wY2lfaW50eF9sZXZlbCBo eXBlcmNhbGwiKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KKyAgICBzdHJ1Y3QgeGVuX2Rt X29wIG9wOworICAgIHN0cnVjdCB4ZW5fZG1fb3Bfc2V0X3BjaV9pbnR4X2xldmVsICpkYXRhOwog Ci0gICAgYXJnLT5kb21pZCAgPSBkb207Ci0gICAgYXJnLT5kb21haW4gPSBkb21haW47Ci0gICAg YXJnLT5idXMgICAgPSBidXM7Ci0gICAgYXJnLT5kZXZpY2UgPSBkZXZpY2U7Ci0gICAgYXJnLT5p bnR4ICAgPSBpbnR4OwotICAgIGFyZy0+bGV2ZWwgID0gbGV2ZWw7CisgICAgbWVtc2V0KCZvcCwg MCwgc2l6ZW9mKG9wKSk7CiAKLSAgICByYyA9IHhlbmNhbGwyKHhjaC0+eGNhbGwsIF9fSFlQRVJW SVNPUl9odm1fb3AsCi0gICAgICAgICAgICAgICAgICBIVk1PUF9zZXRfcGNpX2ludHhfbGV2ZWws Ci0gICAgICAgICAgICAgICAgICBIWVBFUkNBTExfQlVGRkVSX0FTX0FSRyhhcmcpKTsKKyAgICBv cC5vcCA9IFhFTl9ETU9QX3NldF9wY2lfaW50eF9sZXZlbDsKKyAgICBkYXRhID0gJm9wLnUuc2V0 X3BjaV9pbnR4X2xldmVsOwogCi0gICAgeGNfaHlwZXJjYWxsX2J1ZmZlcl9mcmVlKHhjaCwgYXJn KTsKKyAgICBkYXRhLT5kb21haW4gPSBkb21haW47CisgICAgZGF0YS0+YnVzID0gYnVzOworICAg IGRhdGEtPmRldmljZSA9IGRldmljZTsKKyAgICBkYXRhLT5pbnR4ID0gaW50eDsKKyAgICBkYXRh LT5sZXZlbCA9IGxldmVsOwogCi0gICAgcmV0dXJuIHJjOworICAgIHJldHVybiBkb19kbV9vcCh4 Y2gsIGRvbSwgMSwgJm9wLCBzaXplb2Yob3ApKTsKIH0KIAogaW50IHhjX2h2bV9zZXRfaXNhX2ly cV9sZXZlbCgKQEAgLTUwNCw1MyArNDk1LDM1IEBAIGludCB4Y19odm1fc2V0X2lzYV9pcnFfbGV2 ZWwoCiAgICAgdWludDhfdCBpc2FfaXJxLAogICAgIHVuc2lnbmVkIGludCBsZXZlbCkKIHsKLSAg ICBERUNMQVJFX0hZUEVSQ0FMTF9CVUZGRVIoc3RydWN0IHhlbl9odm1fc2V0X2lzYV9pcnFfbGV2 ZWwsIGFyZyk7Ci0gICAgaW50IHJjOwotCi0gICAgYXJnID0geGNfaHlwZXJjYWxsX2J1ZmZlcl9h bGxvYyh4Y2gsIGFyZywgc2l6ZW9mKCphcmcpKTsKLSAgICBpZiAoIGFyZyA9PSBOVUxMICkKLSAg ICB7Ci0gICAgICAgIFBFUlJPUigiQ291bGQgbm90IGFsbG9jYXRlIG1lbW9yeSBmb3IgeGNfaHZt X3NldF9pc2FfaXJxX2xldmVsIGh5cGVyY2FsbCIpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAg fQorICAgIHN0cnVjdCB4ZW5fZG1fb3Agb3A7CisgICAgc3RydWN0IHhlbl9kbV9vcF9zZXRfaXNh X2lycV9sZXZlbCAqZGF0YTsKIAotICAgIGFyZy0+ZG9taWQgICA9IGRvbTsKLSAgICBhcmctPmlz YV9pcnEgPSBpc2FfaXJxOwotICAgIGFyZy0+bGV2ZWwgICA9IGxldmVsOworICAgIG1lbXNldCgm b3AsIDAsIHNpemVvZihvcCkpOwogCi0gICAgcmMgPSB4ZW5jYWxsMih4Y2gtPnhjYWxsLCBfX0hZ UEVSVklTT1JfaHZtX29wLAotICAgICAgICAgICAgICAgICAgSFZNT1Bfc2V0X2lzYV9pcnFfbGV2 ZWwsCi0gICAgICAgICAgICAgICAgICBIWVBFUkNBTExfQlVGRkVSX0FTX0FSRyhhcmcpKTsKKyAg ICBvcC5vcCA9IFhFTl9ETU9QX3NldF9pc2FfaXJxX2xldmVsOworICAgIGRhdGEgPSAmb3AudS5z ZXRfaXNhX2lycV9sZXZlbDsKIAotICAgIHhjX2h5cGVyY2FsbF9idWZmZXJfZnJlZSh4Y2gsIGFy Zyk7CisgICAgZGF0YS0+aXNhX2lycSA9IGlzYV9pcnE7CisgICAgZGF0YS0+bGV2ZWwgPSBsZXZl bDsKIAotICAgIHJldHVybiByYzsKKyAgICByZXR1cm4gZG9fZG1fb3AoeGNoLCBkb20sIDEsICZv cCwgc2l6ZW9mKG9wKSk7CiB9CiAKIGludCB4Y19odm1fc2V0X3BjaV9saW5rX3JvdXRlKAogICAg IHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbSwgdWludDhfdCBsaW5rLCB1aW50OF90IGlz YV9pcnEpCiB7Ci0gICAgREVDTEFSRV9IWVBFUkNBTExfQlVGRkVSKHN0cnVjdCB4ZW5faHZtX3Nl dF9wY2lfbGlua19yb3V0ZSwgYXJnKTsKLSAgICBpbnQgcmM7Ci0KLSAgICBhcmcgPSB4Y19oeXBl cmNhbGxfYnVmZmVyX2FsbG9jKHhjaCwgYXJnLCBzaXplb2YoKmFyZykpOwotICAgIGlmICggYXJn ID09IE5VTEwgKQotICAgIHsKLSAgICAgICAgUEVSUk9SKCJDb3VsZCBub3QgYWxsb2NhdGUgbWVt b3J5IGZvciB4Y19odm1fc2V0X3BjaV9saW5rX3JvdXRlIGh5cGVyY2FsbCIpOwotICAgICAgICBy ZXR1cm4gLTE7Ci0gICAgfQorICAgIHN0cnVjdCB4ZW5fZG1fb3Agb3A7CisgICAgc3RydWN0IHhl bl9kbV9vcF9zZXRfcGNpX2xpbmtfcm91dGUgKmRhdGE7CiAKLSAgICBhcmctPmRvbWlkICAgPSBk b207Ci0gICAgYXJnLT5saW5rICAgID0gbGluazsKLSAgICBhcmctPmlzYV9pcnEgPSBpc2FfaXJx OworICAgIG1lbXNldCgmb3AsIDAsIHNpemVvZihvcCkpOwogCi0gICAgcmMgPSB4ZW5jYWxsMih4 Y2gtPnhjYWxsLCBfX0hZUEVSVklTT1JfaHZtX29wLAotICAgICAgICAgICAgICAgICAgSFZNT1Bf c2V0X3BjaV9saW5rX3JvdXRlLAotICAgICAgICAgICAgICAgICAgSFlQRVJDQUxMX0JVRkZFUl9B U19BUkcoYXJnKSk7CisgICAgb3Aub3AgPSBYRU5fRE1PUF9zZXRfcGNpX2xpbmtfcm91dGU7Cisg ICAgZGF0YSA9ICZvcC51LnNldF9wY2lfbGlua19yb3V0ZTsKIAotICAgIHhjX2h5cGVyY2FsbF9i dWZmZXJfZnJlZSh4Y2gsIGFyZyk7CisgICAgZGF0YS0+bGluayA9IGxpbms7CisgICAgZGF0YS0+ aXNhX2lycSA9IGlzYV9pcnE7CiAKLSAgICByZXR1cm4gcmM7CisgICAgcmV0dXJuIGRvX2RtX29w KHhjaCwgZG9tLCAxLCAmb3AsIHNpemVvZihvcCkpOwogfQogCiBpbnQgeGNfaHZtX2luamVjdF9t c2koCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2RtLmMgYi94ZW4vYXJjaC94ODYvaHZt L2RtLmMKaW5kZXggMWFiZTY0My4uMDZiYWNlMCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2 bS9kbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vZG0uYwpAQCAtOTksNiArOTksNDkgQEAgc3Rh dGljIGludCB0cmFja19kaXJ0eV92cmFtKHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAgIGhhcF90 cmFja19kaXJ0eV92cmFtKGQsIGZpcnN0X3BmbiwgbnIsIGJ1Zi5oKTsKIH0KIAorc3RhdGljIGlu dCBzZXRfcGNpX2ludHhfbGV2ZWwoc3RydWN0IGRvbWFpbiAqZCwgdWludDE2X3QgZG9tYWluLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBidXMsIHVpbnQ4X3QgZGV2aWNl LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBpbnR4LCB1aW50OF90IGxl dmVsKQoreworICAgIGlmICggZG9tYWluICE9IDAgfHwgYnVzICE9IDAgfHwgZGV2aWNlID4gMHgx ZiB8fCBpbnR4ID4gMyApCisgICAgICAgIHJldHVybiAtRUlOVkFMOworCisgICAgc3dpdGNoICgg bGV2ZWwgKQorICAgIHsKKyAgICBjYXNlIDA6CisgICAgICAgIGh2bV9wY2lfaW50eF9kZWFzc2Vy dChkLCBkZXZpY2UsIGludHgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIDE6CisgICAgICAg IGh2bV9wY2lfaW50eF9hc3NlcnQoZCwgZGV2aWNlLCBpbnR4KTsKKyAgICAgICAgYnJlYWs7Cisg ICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisgICAgfQorCisgICAgcmV0dXJu IDA7Cit9CisKK3N0YXRpYyBpbnQgc2V0X2lzYV9pcnFfbGV2ZWwoc3RydWN0IGRvbWFpbiAqZCwg dWludDhfdCBpc2FfaXJxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IGxl dmVsKQoreworICAgIGlmICggaXNhX2lycSA+IDE1ICkKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7 CisKKyAgICBzd2l0Y2ggKCBsZXZlbCApCisgICAgeworICAgIGNhc2UgMDoKKyAgICAgICAgaHZt X2lzYV9pcnFfZGVhc3NlcnQoZCwgaXNhX2lycSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug MToKKyAgICAgICAgaHZtX2lzYV9pcnFfYXNzZXJ0KGQsIGlzYV9pcnEpOworICAgICAgICBicmVh azsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICB9CisKKyAgICBy ZXR1cm4gMDsKK30KKwogbG9uZyBkb19kbV9vcChkb21pZF90IGRvbWlkLAogICAgICAgICAgICAg ICB1bnNpZ25lZCBpbnQgbnJfYnVmcywKICAgICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV9Q QVJBTSh4ZW5fZG1fb3BfYnVmX3QpIGJ1ZnMpCkBAIC0yMjcsNiArMjcwLDQ3IEBAIGxvbmcgZG9f ZG1fb3AoZG9taWRfdCBkb21pZCwKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgY2FzZSBY RU5fRE1PUF9zZXRfcGNpX2ludHhfbGV2ZWw6CisgICAgeworICAgICAgICBjb25zdCBzdHJ1Y3Qg eGVuX2RtX29wX3NldF9wY2lfaW50eF9sZXZlbCAqZGF0YSA9CisgICAgICAgICAgICAmb3AudS5z ZXRfcGNpX2ludHhfbGV2ZWw7CisKKyAgICAgICAgcmMgPSAtRUlOVkFMOworICAgICAgICBpZiAo IGRhdGEtPnBhZCApCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICByYyA9IHNldF9wY2lf aW50eF9sZXZlbChkLCBkYXRhLT5kb21haW4sIGRhdGEtPmJ1cywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGF0YS0+ZGV2aWNlLCBkYXRhLT5pbnR4LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkYXRhLT5sZXZlbCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKwor ICAgIGNhc2UgWEVOX0RNT1Bfc2V0X2lzYV9pcnFfbGV2ZWw6CisgICAgeworICAgICAgICBjb25z dCBzdHJ1Y3QgeGVuX2RtX29wX3NldF9pc2FfaXJxX2xldmVsICpkYXRhID0KKyAgICAgICAgICAg ICZvcC51LnNldF9pc2FfaXJxX2xldmVsOworCisgICAgICAgIHJjID0gLUVJTlZBTDsKKyAgICAg ICAgaWYgKCBkYXRhLT5wYWQgKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgcmMgPSBz ZXRfaXNhX2lycV9sZXZlbChkLCBkYXRhLT5pc2FfaXJxLCBkYXRhLT5sZXZlbCk7CisgICAgICAg IGJyZWFrOworICAgIH0KKworICAgIGNhc2UgWEVOX0RNT1Bfc2V0X3BjaV9saW5rX3JvdXRlOgor ICAgIHsKKyAgICAgICAgY29uc3Qgc3RydWN0IHhlbl9kbV9vcF9zZXRfcGNpX2xpbmtfcm91dGUg KmRhdGEgPQorICAgICAgICAgICAgJm9wLnUuc2V0X3BjaV9saW5rX3JvdXRlOworCisgICAgICAg IHJjID0gLUVJTlZBTDsKKyAgICAgICAgaWYgKCBkYXRhLT5wYWQgKQorICAgICAgICAgICAgYnJl YWs7CisKKyAgICAgICAgcmMgPSBodm1fc2V0X3BjaV9saW5rX3JvdXRlKGQsIGRhdGEtPmxpbmss IGRhdGEtPmlzYV9pcnEpOworICAgICAgICBicmVhazsKKyAgICB9CisKICAgICBkZWZhdWx0Ogog ICAgICAgICByYyA9IC1FT1BOT1RTVVBQOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9odm0vaHZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCmluZGV4IGUwZTk5 NDAuLmIzMzY4NDAgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKKysrIGIveGVu L2FyY2gveDg2L2h2bS9odm0uYwpAQCAtNDQ3Miw1MCArNDQ3Miw2IEBAIHZvaWQgaHZtX2h5cGVy Y2FsbF9wYWdlX2luaXRpYWxpc2Uoc3RydWN0IGRvbWFpbiAqZCwKICAgICBodm1fZnVuY3MuaW5p dF9oeXBlcmNhbGxfcGFnZShkLCBoeXBlcmNhbGxfcGFnZSk7CiB9CiAKLXN0YXRpYyBpbnQgaHZt b3Bfc2V0X3BjaV9pbnR4X2xldmVsKAotICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2h2 bV9zZXRfcGNpX2ludHhfbGV2ZWxfdCkgdW9wKQotewotICAgIHN0cnVjdCB4ZW5faHZtX3NldF9w Y2lfaW50eF9sZXZlbCBvcDsKLSAgICBzdHJ1Y3QgZG9tYWluICpkOwotICAgIGludCByYzsKLQot ICAgIGlmICggY29weV9mcm9tX2d1ZXN0KCZvcCwgdW9wLCAxKSApCi0gICAgICAgIHJldHVybiAt RUZBVUxUOwotCi0gICAgaWYgKCAob3AuZG9tYWluID4gMCkgfHwgKG9wLmJ1cyA+IDApIHx8IChv cC5kZXZpY2UgPiAzMSkgfHwgKG9wLmludHggPiAzKSApCi0gICAgICAgIHJldHVybiAtRUlOVkFM OwotCi0gICAgcmMgPSByY3VfbG9ja19yZW1vdGVfZG9tYWluX2J5X2lkKG9wLmRvbWlkLCAmZCk7 Ci0gICAgaWYgKCByYyAhPSAwICkKLSAgICAgICAgcmV0dXJuIHJjOwotCi0gICAgcmMgPSAtRUlO VkFMOwotICAgIGlmICggIWlzX2h2bV9kb21haW4oZCkgKQotICAgICAgICBnb3RvIG91dDsKLQot ICAgIHJjID0geHNtX2h2bV9zZXRfcGNpX2ludHhfbGV2ZWwoWFNNX0RNX1BSSVYsIGQpOwotICAg IGlmICggcmMgKQotICAgICAgICBnb3RvIG91dDsKLQotICAgIHJjID0gMDsKLSAgICBzd2l0Y2gg KCBvcC5sZXZlbCApCi0gICAgewotICAgIGNhc2UgMDoKLSAgICAgICAgaHZtX3BjaV9pbnR4X2Rl YXNzZXJ0KGQsIG9wLmRldmljZSwgb3AuaW50eCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug MToKLSAgICAgICAgaHZtX3BjaV9pbnR4X2Fzc2VydChkLCBvcC5kZXZpY2UsIG9wLmludHgpOwot ICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICByYyA9IC1FSU5WQUw7Ci0gICAg ICAgIGJyZWFrOwotICAgIH0KLQotIG91dDoKLSAgICByY3VfdW5sb2NrX2RvbWFpbihkKTsKLSAg ICByZXR1cm4gcmM7Ci19Ci0KIHZvaWQgaHZtX3ZjcHVfcmVzZXRfc3RhdGUoc3RydWN0IHZjcHUg KnYsIHVpbnQxNl90IGNzLCB1aW50MTZfdCBpcCkKIHsKICAgICBzdHJ1Y3QgZG9tYWluICpkID0g di0+ZG9tYWluOwpAQCAtNDY1OSw4MyArNDYxNSw2IEBAIHN0YXRpYyB2b2lkIGh2bV9zM19yZXN1 bWUoc3RydWN0IGRvbWFpbiAqZCkKICAgICB9CiB9CiAKLXN0YXRpYyBpbnQgaHZtb3Bfc2V0X2lz YV9pcnFfbGV2ZWwoCi0gICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5faHZtX3NldF9pc2Ff aXJxX2xldmVsX3QpIHVvcCkKLXsKLSAgICBzdHJ1Y3QgeGVuX2h2bV9zZXRfaXNhX2lycV9sZXZl bCBvcDsKLSAgICBzdHJ1Y3QgZG9tYWluICpkOwotICAgIGludCByYzsKLQotICAgIGlmICggY29w eV9mcm9tX2d1ZXN0KCZvcCwgdW9wLCAxKSApCi0gICAgICAgIHJldHVybiAtRUZBVUxUOwotCi0g ICAgaWYgKCBvcC5pc2FfaXJxID4gMTUgKQotICAgICAgICByZXR1cm4gLUVJTlZBTDsKLQotICAg IHJjID0gcmN1X2xvY2tfcmVtb3RlX2RvbWFpbl9ieV9pZChvcC5kb21pZCwgJmQpOwotICAgIGlm ICggcmMgIT0gMCApCi0gICAgICAgIHJldHVybiByYzsKLQotICAgIHJjID0gLUVJTlZBTDsKLSAg ICBpZiAoICFpc19odm1fZG9tYWluKGQpICkKLSAgICAgICAgZ290byBvdXQ7Ci0KLSAgICByYyA9 IHhzbV9odm1fc2V0X2lzYV9pcnFfbGV2ZWwoWFNNX0RNX1BSSVYsIGQpOwotICAgIGlmICggcmMg KQotICAgICAgICBnb3RvIG91dDsKLQotICAgIHJjID0gMDsKLSAgICBzd2l0Y2ggKCBvcC5sZXZl bCApCi0gICAgewotICAgIGNhc2UgMDoKLSAgICAgICAgaHZtX2lzYV9pcnFfZGVhc3NlcnQoZCwg b3AuaXNhX2lycSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgMToKLSAgICAgICAgaHZtX2lz YV9pcnFfYXNzZXJ0KGQsIG9wLmlzYV9pcnEpOwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0 OgotICAgICAgICByYyA9IC1FSU5WQUw7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQotIG91dDoK LSAgICByY3VfdW5sb2NrX2RvbWFpbihkKTsKLSAgICByZXR1cm4gcmM7Ci19Ci0KLXN0YXRpYyBp bnQgaHZtb3Bfc2V0X3BjaV9saW5rX3JvdXRlKAotICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0o eGVuX2h2bV9zZXRfcGNpX2xpbmtfcm91dGVfdCkgdW9wKQotewotICAgIHN0cnVjdCB4ZW5faHZt X3NldF9wY2lfbGlua19yb3V0ZSBvcDsKLSAgICBzdHJ1Y3QgZG9tYWluICpkOwotICAgIGludCBy YzsKLQotICAgIGlmICggY29weV9mcm9tX2d1ZXN0KCZvcCwgdW9wLCAxKSApCi0gICAgICAgIHJl dHVybiAtRUZBVUxUOwotCi0gICAgaWYgKCAob3AubGluayA+IDMpIHx8IChvcC5pc2FfaXJxID4g MTUpICkKLSAgICAgICAgcmV0dXJuIC1FSU5WQUw7Ci0KLSAgICByYyA9IHJjdV9sb2NrX3JlbW90 ZV9kb21haW5fYnlfaWQob3AuZG9taWQsICZkKTsKLSAgICBpZiAoIHJjICE9IDAgKQotICAgICAg ICByZXR1cm4gcmM7Ci0KLSAgICByYyA9IC1FSU5WQUw7Ci0gICAgaWYgKCAhaXNfaHZtX2RvbWFp bihkKSApCi0gICAgICAgIGdvdG8gb3V0OwotCi0gICAgcmMgPSB4c21faHZtX3NldF9wY2lfbGlu a19yb3V0ZShYU01fRE1fUFJJViwgZCk7Ci0gICAgaWYgKCByYyApCi0gICAgICAgIGdvdG8gb3V0 OwotCi0gICAgcmMgPSAwOwotICAgIGh2bV9zZXRfcGNpX2xpbmtfcm91dGUoZCwgb3AubGluaywg b3AuaXNhX2lycSk7Ci0KLSBvdXQ6Ci0gICAgcmN1X3VubG9ja19kb21haW4oZCk7Ci0gICAgcmV0 dXJuIHJjOwotfQotCiBzdGF0aWMgaW50IGh2bW9wX2luamVjdF9tc2koCiAgICAgWEVOX0dVRVNU X0hBTkRMRV9QQVJBTSh4ZW5faHZtX2luamVjdF9tc2lfdCkgdW9wKQogewpAQCAtNTUzMCwyNiAr NTQwOSwxMSBAQCBsb25nIGRvX2h2bV9vcCh1bnNpZ25lZCBsb25nIG9wLCBYRU5fR1VFU1RfSEFO RExFX1BBUkFNKHZvaWQpIGFyZykKICAgICAgICAgICAgIGd1ZXN0X2hhbmRsZV9jYXN0KGFyZywg eGVuX2h2bV9wYXJhbV90KSk7CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBIVk1PUF9zZXRf cGNpX2ludHhfbGV2ZWw6Ci0gICAgICAgIHJjID0gaHZtb3Bfc2V0X3BjaV9pbnR4X2xldmVsKAot ICAgICAgICAgICAgZ3Vlc3RfaGFuZGxlX2Nhc3QoYXJnLCB4ZW5faHZtX3NldF9wY2lfaW50eF9s ZXZlbF90KSk7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgY2FzZSBIVk1PUF9zZXRfaXNhX2lycV9s ZXZlbDoKLSAgICAgICAgcmMgPSBodm1vcF9zZXRfaXNhX2lycV9sZXZlbCgKLSAgICAgICAgICAg IGd1ZXN0X2hhbmRsZV9jYXN0KGFyZywgeGVuX2h2bV9zZXRfaXNhX2lycV9sZXZlbF90KSk7Ci0g ICAgICAgIGJyZWFrOwotCiAgICAgY2FzZSBIVk1PUF9pbmplY3RfbXNpOgogICAgICAgICByYyA9 IGh2bW9wX2luamVjdF9tc2koCiAgICAgICAgICAgICBndWVzdF9oYW5kbGVfY2FzdChhcmcsIHhl bl9odm1faW5qZWN0X21zaV90KSk7CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBIVk1PUF9z ZXRfcGNpX2xpbmtfcm91dGU6Ci0gICAgICAgIHJjID0gaHZtb3Bfc2V0X3BjaV9saW5rX3JvdXRl KAotICAgICAgICAgICAgZ3Vlc3RfaGFuZGxlX2Nhc3QoYXJnLCB4ZW5faHZtX3NldF9wY2lfbGlu a19yb3V0ZV90KSk7Ci0gICAgICAgIGJyZWFrOwotCiAgICAgY2FzZSBIVk1PUF9mbHVzaF90bGJz OgogICAgICAgICByYyA9IGd1ZXN0X2hhbmRsZV9pc19udWxsKGFyZykgPyBodm1vcF9mbHVzaF90 bGJfYWxsKCkgOiAtRUlOVkFMOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni9odm0vaXJxLmMgYi94ZW4vYXJjaC94ODYvaHZtL2lycS5jCmluZGV4IGU1OTcxMTQuLjI2 NWE2MjAgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaXJxLmMKKysrIGIveGVuL2FyY2gv eDg2L2h2bS9pcnEuYwpAQCAtMjI5LDEzICsyMjksMTQgQEAgdm9pZCBodm1fYXNzZXJ0X2V2dGNo bl9pcnEoc3RydWN0IHZjcHUgKnYpCiAgICAgICAgIGh2bV9zZXRfY2FsbGJhY2tfaXJxX2xldmVs KHYpOwogfQogCi12b2lkIGh2bV9zZXRfcGNpX2xpbmtfcm91dGUoc3RydWN0IGRvbWFpbiAqZCwg dTggbGluaywgdTggaXNhX2lycSkKK2ludCBodm1fc2V0X3BjaV9saW5rX3JvdXRlKHN0cnVjdCBk b21haW4gKmQsIHU4IGxpbmssIHU4IGlzYV9pcnEpCiB7CiAgICAgc3RydWN0IGh2bV9pcnEgKmh2 bV9pcnEgPSAmZC0+YXJjaC5odm1fZG9tYWluLmlycTsKICAgICB1OCBvbGRfaXNhX2lycTsKICAg ICBpbnQgaTsKIAotICAgIEFTU0VSVCgobGluayA8PSAzKSAmJiAoaXNhX2lycSA8PSAxNSkpOwor ICAgIGlmICggKGxpbmsgPiAzKSB8fCAoaXNhX2lycSA+IDE1KSApCisgICAgICAgIHJldHVybiAt RUlOVkFMOwogCiAgICAgc3Bpbl9sb2NrKCZkLT5hcmNoLmh2bV9kb21haW4uaXJxX2xvY2spOwog CkBAIC0yNzMsNiArMjc0LDggQEAgdm9pZCBodm1fc2V0X3BjaV9saW5rX3JvdXRlKHN0cnVjdCBk b21haW4gKmQsIHU4IGxpbmssIHU4IGlzYV9pcnEpCiAKICAgICBkcHJpbnRrKFhFTkxPR19HX0lO Rk8sICJEb20ldSBQQ0kgbGluayAldSBjaGFuZ2VkICV1IC0+ICV1XG4iLAogICAgICAgICAgICAg ZC0+ZG9tYWluX2lkLCBsaW5rLCBvbGRfaXNhX2lycSwgaXNhX2lycSk7CisKKyAgICByZXR1cm4g MDsKIH0KIAogaW50IGh2bV9pbmplY3RfbXNpKHN0cnVjdCBkb21haW4gKmQsIHVpbnQ2NF90IGFk ZHIsIHVpbnQzMl90IGRhdGEpCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2Rt X29wLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmgKaW5kZXggMjQ5ZmQxZi4uNTc1 MTQxMSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oCisrKyBiL3hl bi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaApAQCAtMTkxLDYgKzE5MSw0OSBAQCBzdHJ1Y3Qg eGVuX2RtX29wX3RyYWNrX2RpcnR5X3ZyYW0gewogICAgIHVpbnQ2NF9hbGlnbmVkX3QgZmlyc3Rf cGZuOwogfTsKIAorLyoKKyAqIFhFTl9ETU9QX3NldF9wY2lfaW50eF9sZXZlbDogU2V0IHRoZSBs b2dpY2FsIGxldmVsIG9mIG9uZSBvZiBhIGRvbWFpbidzCisgKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBDSSBJTlR4IHBpbnMuCisgKi8KKyNkZWZpbmUgWEVOX0RNT1Bfc2V0X3BjaV9p bnR4X2xldmVsIDgKKworc3RydWN0IHhlbl9kbV9vcF9zZXRfcGNpX2ludHhfbGV2ZWwgeworICAg IC8qIElOIC0gUENJIElOVHggaWRlbnRpZmljYXRpb24gKGRvbWFpbjpidXM6ZGV2aWNlOmludHgp ICovCisgICAgdWludDE2X3QgZG9tYWluOworICAgIHVpbnQ4X3QgYnVzLCBkZXZpY2UsIGludHg7 CisgICAgLyogSU4gLSBMZXZlbDogMCAtPiBkZWFzc2VydGVkLCAxIC0+IGFzc2VydGVkICovCisg ICAgdWludDhfdCAgbGV2ZWw7CisgICAgdWludDE2X3QgcGFkOworfTsKKworLyoKKyAqIFhFTl9E TU9QX3NldF9pc2FfaXJxX2xldmVsOiBTZXQgdGhlIGxvZ2ljYWwgbGV2ZWwgb2YgYSBvbmUgb2Yg YSBkb21haW4ncworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIElTQSBJUlEgbGluZXMu CisgKi8KKyNkZWZpbmUgWEVOX0RNT1Bfc2V0X2lzYV9pcnFfbGV2ZWwgOQorCitzdHJ1Y3QgeGVu X2RtX29wX3NldF9pc2FfaXJxX2xldmVsIHsKKyAgICAvKiBJTiAtIElTQSBJUlEgKDAtMTUpICov CisgICAgdWludDhfdCAgaXNhX2lycTsKKyAgICAvKiBJTiAtIExldmVsOiAwIC0+IGRlYXNzZXJ0 ZWQsIDEgLT4gYXNzZXJ0ZWQgKi8KKyAgICB1aW50OF90ICBsZXZlbDsKKyAgICB1aW50MTZfdCBw YWQ7Cit9OworCisvKgorICogWEVOX0RNT1Bfc2V0X3BjaV9saW5rX3JvdXRlOiBNYXAgYSBQQ0kg SU5UeCBsaW5lIHRvIGFuIElSUSBsaW5lLgorICovCisjZGVmaW5lIFhFTl9ETU9QX3NldF9wY2lf bGlua19yb3V0ZSAxMAorCitzdHJ1Y3QgeGVuX2RtX29wX3NldF9wY2lfbGlua19yb3V0ZSB7Cisg ICAgLyogUENJIElOVHggbGluZSAoMC0zKSAqLworICAgIHVpbnQ4X3QgIGxpbms7CisgICAgLyog SVNBIElSUSAoMS0xNSkgb3IgMCAtPiBkaXNhYmxlIGxpbmsgKi8KKyAgICB1aW50OF90ICBpc2Ff aXJxOworICAgIHVpbnQxNl90IHBhZDsKK307CisKKwogc3RydWN0IHhlbl9kbV9vcCB7CiAgICAg dWludDMyX3Qgb3A7CiAgICAgdWludDMyX3QgcGFkOwpAQCAtMjAyLDYgKzI0NSw5IEBAIHN0cnVj dCB4ZW5fZG1fb3AgewogICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX3NldF9pb3JlcV9zZXJ2ZXJf c3RhdGUgc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZTsKICAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9k ZXN0cm95X2lvcmVxX3NlcnZlciBkZXN0cm95X2lvcmVxX3NlcnZlcjsKICAgICAgICAgc3RydWN0 IHhlbl9kbV9vcF90cmFja19kaXJ0eV92cmFtIHRyYWNrX2RpcnR5X3ZyYW07CisgICAgICAgIHN0 cnVjdCB4ZW5fZG1fb3Bfc2V0X3BjaV9pbnR4X2xldmVsIHNldF9wY2lfaW50eF9sZXZlbDsKKyAg ICAgICAgc3RydWN0IHhlbl9kbV9vcF9zZXRfaXNhX2lycV9sZXZlbCBzZXRfaXNhX2lycV9sZXZl bDsKKyAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9zZXRfcGNpX2xpbmtfcm91dGUgc2V0X3BjaV9s aW5rX3JvdXRlOwogICAgIH0gdTsKIH07CiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1Ymxp Yy9odm0vaHZtX29wLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5oCmluZGV4IDQ3 ZTgzNmMuLjdjZjhkNGQgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vaHZtX29w LmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1fb3AuaApAQCAtMzgsNiArMzgsOCBA QCBzdHJ1Y3QgeGVuX2h2bV9wYXJhbSB7CiB0eXBlZGVmIHN0cnVjdCB4ZW5faHZtX3BhcmFtIHhl bl9odm1fcGFyYW1fdDsKIERFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9odm1fcGFyYW1fdCk7 CiAKKyNpZiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fIDwgMHgwMDA0MDkwMAorCiAvKiBTZXQg dGhlIGxvZ2ljYWwgbGV2ZWwgb2Ygb25lIG9mIGEgZG9tYWluJ3MgUENJIElOVHggd2lyZXMuICov CiAjZGVmaW5lIEhWTU9QX3NldF9wY2lfaW50eF9sZXZlbCAgMgogc3RydWN0IHhlbl9odm1fc2V0 X3BjaV9pbnR4X2xldmVsIHsKQEAgLTc2LDYgKzc4LDggQEAgc3RydWN0IHhlbl9odm1fc2V0X3Bj aV9saW5rX3JvdXRlIHsKIHR5cGVkZWYgc3RydWN0IHhlbl9odm1fc2V0X3BjaV9saW5rX3JvdXRl IHhlbl9odm1fc2V0X3BjaV9saW5rX3JvdXRlX3Q7CiBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4 ZW5faHZtX3NldF9wY2lfbGlua19yb3V0ZV90KTsKIAorI2VuZGlmIC8qIF9fWEVOX0lOVEVSRkFD RV9WRVJTSU9OX18gPCAweDAwMDQwOTAwICovCisKIC8qIEZsdXNoZXMgYWxsIFZDUFUgVExCczog QGFyZyBtdXN0IGJlIE5VTEwuICovCiAjZGVmaW5lIEhWTU9QX2ZsdXNoX3RsYnMgICAgICAgICAg NQogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMveGVuLWNvbXBhdC5oIGIveGVuL2lu Y2x1ZGUvcHVibGljL3hlbi1jb21wYXQuaAppbmRleCBkZDhhNWMwLi5iNjczNjUzIDEwMDY0NAot LS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMveGVuLWNvbXBhdC5oCisrKyBiL3hlbi9pbmNsdWRlL3B1 YmxpYy94ZW4tY29tcGF0LmgKQEAgLTI3LDcgKzI3LDcgQEAKICNpZm5kZWYgX19YRU5fUFVCTElD X1hFTl9DT01QQVRfSF9fCiAjZGVmaW5lIF9fWEVOX1BVQkxJQ19YRU5fQ09NUEFUX0hfXwogCi0j ZGVmaW5lIF9fWEVOX0xBVEVTVF9JTlRFUkZBQ0VfVkVSU0lPTl9fIDB4MDAwNDA4MDAKKyNkZWZp bmUgX19YRU5fTEFURVNUX0lOVEVSRkFDRV9WRVJTSU9OX18gMHgwMDA0MDkwMAogCiAjaWYgZGVm aW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCiAvKiBYZW4gaXMgYnVpbHQg d2l0aCBtYXRjaGluZyBoZWFkZXJzIGFuZCBpbXBsZW1lbnRzIHRoZSBsYXRlc3QgaW50ZXJmYWNl LiAqLwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL2h2bS9pcnEuaCBiL3hlbi9pbmNsdWRl L3hlbi9odm0vaXJxLmgKaW5kZXggNGM5Y2IyMC4uZDNmODYyMyAxMDA2NDQKLS0tIGEveGVuL2lu Y2x1ZGUveGVuL2h2bS9pcnEuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vaHZtL2lycS5oCkBAIC0x MjIsNyArMTIyLDcgQEAgdm9pZCBodm1faXNhX2lycV9hc3NlcnQoCiB2b2lkIGh2bV9pc2FfaXJx X2RlYXNzZXJ0KAogICAgIHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBpc2FfaXJxKTsK IAotdm9pZCBodm1fc2V0X3BjaV9saW5rX3JvdXRlKHN0cnVjdCBkb21haW4gKmQsIHU4IGxpbmss IHU4IGlzYV9pcnEpOworaW50IGh2bV9zZXRfcGNpX2xpbmtfcm91dGUoc3RydWN0IGRvbWFpbiAq ZCwgdTggbGluaywgdTggaXNhX2lycSk7CiAKIGludCBodm1faW5qZWN0X21zaShzdHJ1Y3QgZG9t YWluICpkLCB1aW50NjRfdCBhZGRyLCB1aW50MzJfdCBkYXRhKTsKIApkaWZmIC0tZ2l0IGEveGVu L2luY2x1ZGUveHNtL2R1bW15LmggYi94ZW4vaW5jbHVkZS94c20vZHVtbXkuaAppbmRleCA5Zjdj MTc0Li5kM2RlNGI3IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94c20vZHVtbXkuaAorKysgYi94 ZW4vaW5jbHVkZS94c20vZHVtbXkuaApAQCAtNjEwLDI0ICs2MTAsNiBAQCBzdGF0aWMgWFNNX0lO TElORSBpbnQgeHNtX3NoYWRvd19jb250cm9sKFhTTV9ERUZBVUxUX0FSRyBzdHJ1Y3QgZG9tYWlu ICpkLCB1aW50MwogICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oYWN0aW9uLCBjdXJyZW50 LT5kb21haW4sIGQpOwogfQogCi1zdGF0aWMgWFNNX0lOTElORSBpbnQgeHNtX2h2bV9zZXRfcGNp X2ludHhfbGV2ZWwoWFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBkb21haW4gKmQpCi17Ci0gICAgWFNN X0FTU0VSVF9BQ1RJT04oWFNNX0RNX1BSSVYpOwotICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rp b24oYWN0aW9uLCBjdXJyZW50LT5kb21haW4sIGQpOwotfQotCi1zdGF0aWMgWFNNX0lOTElORSBp bnQgeHNtX2h2bV9zZXRfaXNhX2lycV9sZXZlbChYU01fREVGQVVMVF9BUkcgc3RydWN0IGRvbWFp biAqZCkKLXsKLSAgICBYU01fQVNTRVJUX0FDVElPTihYU01fRE1fUFJJVik7Ci0gICAgcmV0dXJu IHhzbV9kZWZhdWx0X2FjdGlvbihhY3Rpb24sIGN1cnJlbnQtPmRvbWFpbiwgZCk7Ci19Ci0KLXN0 YXRpYyBYU01fSU5MSU5FIGludCB4c21faHZtX3NldF9wY2lfbGlua19yb3V0ZShYU01fREVGQVVM VF9BUkcgc3RydWN0IGRvbWFpbiAqZCkKLXsKLSAgICBYU01fQVNTRVJUX0FDVElPTihYU01fRE1f UFJJVik7Ci0gICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihhY3Rpb24sIGN1cnJlbnQtPmRv bWFpbiwgZCk7Ci19Ci0KIHN0YXRpYyBYU01fSU5MSU5FIGludCB4c21faHZtX2luamVjdF9tc2ko WFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBkb21haW4gKmQpCiB7CiAgICAgWFNNX0FTU0VSVF9BQ1RJ T04oWFNNX0RNX1BSSVYpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveHNtL3hzbS5oIGIveGVu L2luY2x1ZGUveHNtL3hzbS5oCmluZGV4IGI1ODQ1YTIuLjJlNGEzY2UgMTAwNjQ0Ci0tLSBhL3hl bi9pbmNsdWRlL3hzbS94c20uaAorKysgYi94ZW4vaW5jbHVkZS94c20veHNtLmgKQEAgLTE2Miw5 ICsxNjIsNiBAQCBzdHJ1Y3QgeHNtX29wZXJhdGlvbnMgewogI2lmZGVmIENPTkZJR19YODYKICAg ICBpbnQgKCpkb19tY2EpICh2b2lkKTsKICAgICBpbnQgKCpzaGFkb3dfY29udHJvbCkgKHN0cnVj dCBkb21haW4gKmQsIHVpbnQzMl90IG9wKTsKLSAgICBpbnQgKCpodm1fc2V0X3BjaV9pbnR4X2xl dmVsKSAoc3RydWN0IGRvbWFpbiAqZCk7Ci0gICAgaW50ICgqaHZtX3NldF9pc2FfaXJxX2xldmVs KSAoc3RydWN0IGRvbWFpbiAqZCk7Ci0gICAgaW50ICgqaHZtX3NldF9wY2lfbGlua19yb3V0ZSkg KHN0cnVjdCBkb21haW4gKmQpOwogICAgIGludCAoKmh2bV9pbmplY3RfbXNpKSAoc3RydWN0IGRv bWFpbiAqZCk7CiAgICAgaW50ICgqbWVtX3NoYXJpbmdfb3ApIChzdHJ1Y3QgZG9tYWluICpkLCBz dHJ1Y3QgZG9tYWluICpjZCwgaW50IG9wKTsKICAgICBpbnQgKCphcGljKSAoc3RydWN0IGRvbWFp biAqZCwgaW50IGNtZCk7CkBAIC02MzUsMjEgKzYzMiw2IEBAIHN0YXRpYyBpbmxpbmUgaW50IHhz bV9zaGFkb3dfY29udHJvbCAoeHNtX2RlZmF1bHRfdCBkZWYsIHN0cnVjdCBkb21haW4gKmQsIHVp bnQzCiAgICAgcmV0dXJuIHhzbV9vcHMtPnNoYWRvd19jb250cm9sKGQsIG9wKTsKIH0KIAotc3Rh dGljIGlubGluZSBpbnQgeHNtX2h2bV9zZXRfcGNpX2ludHhfbGV2ZWwgKHhzbV9kZWZhdWx0X3Qg ZGVmLCBzdHJ1Y3QgZG9tYWluICpkKQotewotICAgIHJldHVybiB4c21fb3BzLT5odm1fc2V0X3Bj aV9pbnR4X2xldmVsKGQpOwotfQotCi1zdGF0aWMgaW5saW5lIGludCB4c21faHZtX3NldF9pc2Ff aXJxX2xldmVsICh4c21fZGVmYXVsdF90IGRlZiwgc3RydWN0IGRvbWFpbiAqZCkKLXsKLSAgICBy ZXR1cm4geHNtX29wcy0+aHZtX3NldF9pc2FfaXJxX2xldmVsKGQpOwotfQotCi1zdGF0aWMgaW5s aW5lIGludCB4c21faHZtX3NldF9wY2lfbGlua19yb3V0ZSAoeHNtX2RlZmF1bHRfdCBkZWYsIHN0 cnVjdCBkb21haW4gKmQpCi17Ci0gICAgcmV0dXJuIHhzbV9vcHMtPmh2bV9zZXRfcGNpX2xpbmtf cm91dGUoZCk7Ci19Ci0KIHN0YXRpYyBpbmxpbmUgaW50IHhzbV9odm1faW5qZWN0X21zaSAoeHNt X2RlZmF1bHRfdCBkZWYsIHN0cnVjdCBkb21haW4gKmQpCiB7CiAgICAgcmV0dXJuIHhzbV9vcHMt Pmh2bV9pbmplY3RfbXNpKGQpOwpkaWZmIC0tZ2l0IGEveGVuL3hzbS9kdW1teS5jIGIveGVuL3hz bS9kdW1teS5jCmluZGV4IGQ1NDRlYzEuLmYxNTY4ZGQgMTAwNjQ0Ci0tLSBhL3hlbi94c20vZHVt bXkuYworKysgYi94ZW4veHNtL2R1bW15LmMKQEAgLTE0NSw5ICsxNDUsNiBAQCB2b2lkIF9faW5p dCB4c21fZml4dXBfb3BzIChzdHJ1Y3QgeHNtX29wZXJhdGlvbnMgKm9wcykKICNpZmRlZiBDT05G SUdfWDg2CiAgICAgc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBkb19tY2EpOwogICAgIHNldF90 b19kdW1teV9pZl9udWxsKG9wcywgc2hhZG93X2NvbnRyb2wpOwotICAgIHNldF90b19kdW1teV9p Zl9udWxsKG9wcywgaHZtX3NldF9wY2lfaW50eF9sZXZlbCk7Ci0gICAgc2V0X3RvX2R1bW15X2lm X251bGwob3BzLCBodm1fc2V0X2lzYV9pcnFfbGV2ZWwpOwotICAgIHNldF90b19kdW1teV9pZl9u dWxsKG9wcywgaHZtX3NldF9wY2lfbGlua19yb3V0ZSk7CiAgICAgc2V0X3RvX2R1bW15X2lmX251 bGwob3BzLCBodm1faW5qZWN0X21zaSk7CiAgICAgc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBt ZW1fc2hhcmluZ19vcCk7CiAgICAgc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBhcGljKTsKZGlm ZiAtLWdpdCBhL3hlbi94c20vZmxhc2svaG9va3MuYyBiL3hlbi94c20vZmxhc2svaG9va3MuYwpp bmRleCBlZmZjODBlLi5iMzk2OTJlIDEwMDY0NAotLS0gYS94ZW4veHNtL2ZsYXNrL2hvb2tzLmMK KysrIGIveGVuL3hzbS9mbGFzay9ob29rcy5jCkBAIC0xNDk5LDIxICsxNDk5LDYgQEAgc3RhdGlj IGludCBmbGFza19pb3BvcnRfbWFwcGluZyhzdHJ1Y3QgZG9tYWluICpkLCB1aW50MzJfdCBzdGFy dCwgdWludDMyX3QgZW5kLAogICAgIHJldHVybiBmbGFza19pb3BvcnRfcGVybWlzc2lvbihkLCBz dGFydCwgZW5kLCBhY2Nlc3MpOwogfQogCi1zdGF0aWMgaW50IGZsYXNrX2h2bV9zZXRfcGNpX2lu dHhfbGV2ZWwoc3RydWN0IGRvbWFpbiAqZCkKLXsKLSAgICByZXR1cm4gY3VycmVudF9oYXNfcGVy bShkLCBTRUNDTEFTU19IVk0sIEhWTV9fUENJTEVWRUwpOwotfQotCi1zdGF0aWMgaW50IGZsYXNr X2h2bV9zZXRfaXNhX2lycV9sZXZlbChzdHJ1Y3QgZG9tYWluICpkKQotewotICAgIHJldHVybiBj dXJyZW50X2hhc19wZXJtKGQsIFNFQ0NMQVNTX0hWTSwgSFZNX19JUlFMRVZFTCk7Ci19Ci0KLXN0 YXRpYyBpbnQgZmxhc2tfaHZtX3NldF9wY2lfbGlua19yb3V0ZShzdHJ1Y3QgZG9tYWluICpkKQot ewotICAgIHJldHVybiBjdXJyZW50X2hhc19wZXJtKGQsIFNFQ0NMQVNTX0hWTSwgSFZNX19QQ0lS T1VURSk7Ci19Ci0KIHN0YXRpYyBpbnQgZmxhc2tfaHZtX2luamVjdF9tc2koc3RydWN0IGRvbWFp biAqZCkKIHsKICAgICByZXR1cm4gY3VycmVudF9oYXNfcGVybShkLCBTRUNDTEFTU19IVk0sIEhW TV9fU0VORF9JUlEpOwpkaWZmIC0tZ2l0IGEveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3Zl Y3RvcnMgYi94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycwppbmRleCA1YWY0Mjdm Li43MDhjZmU2IDEwMDY0NAotLS0gYS94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9y cworKysgYi94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycwpAQCAtMjU3LDEyICsy NTcsNiBAQCBjbGFzcyBodm0KICAgICBzZXRwYXJhbQogIyBIVk1PUF9nZXRfcGFyYW0KICAgICBn ZXRwYXJhbQotIyBIVk1PUF9zZXRfcGNpX2ludHhfbGV2ZWwgKGFsc28gbmVlZHMgaHZtY3RsKQot ICAgIHBjaWxldmVsCi0jIEhWTU9QX3NldF9pc2FfaXJxX2xldmVsCi0gICAgaXJxbGV2ZWwKLSMg SFZNT1Bfc2V0X3BjaV9saW5rX3JvdXRlCi0gICAgcGNpcm91dGUKICAgICBiaW5kX2lycQogIyBY RU5fRE9NQ1RMX3Bpbl9tZW1fY2FjaGVhdHRyCiAgICAgY2FjaGVhdHRyCi0tIAoyLjEuNAoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3Jn L3hlbi1kZXZlbAo=