From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH-for-4.9 v1 4/8] dm_op: convert HVMOP_set_pci_intx_level, HVMOP_set_isa_irq_level, and... Date: Fri, 18 Nov 2016 17:14:00 +0000 Message-ID: <1479489244-2201-5-git-send-email-paul.durrant@citrix.com> References: <1479489244-2201-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 1c7n50-00059f-35 for xen-devel@lists.xenproject.org; Fri, 18 Nov 2016 17:36:02 +0000 In-Reply-To: <1479489244-2201-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 , Daniel De Graaf , Paul Durrant , Ian Jackson , Andrew Cooper List-Id: xen-devel@lists.xenproject.org Li4uIEhWTU9QX3NldF9wY2lfbGlua19yb3V0ZQoKU3VnZ2VzdGVkLWJ5OiBKYW4gQmV1bGljaCA8 amJldWxpY2hAc3VzZS5jb20+ClNpZ25lZC1vZmYtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJy YW50QGNpdHJpeC5jb20+Ci0tLQpDYzogRGFuaWVsIERlIEdyYWFmIDxkZ2RlZ3JhQHR5Y2hvLm5z YS5nb3Y+CkNjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4KQ2M6IFdl aSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29v cGVyM0BjaXRyaXguY29tPgotLS0KIHRvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL3hlbi5pZiAg IHwgICA4ICstLQogdG9vbHMvbGlieGMveGNfbWlzYy5jICAgICAgICAgICAgICAgfCAgODEgKysr KysrKy0tLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvaHZtL2RtLmMgICAgICAgICAgICAgICB8 ICA4MCArKysrKysrKysrKysrKysrKysrKysKIHhlbi9hcmNoL3g4Ni9odm0vaHZtLmMgICAgICAg ICAgICAgIHwgMTM2IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2lu Y2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oICAgICAgfCAgNDIgKysrKysrKysrKysKIHhlbi9pbmNs dWRlL3B1YmxpYy9odm0vaHZtX29wLmggICAgIHwgICA0ICsrCiB4ZW4vaW5jbHVkZS94c20vZHVt bXkuaCAgICAgICAgICAgICB8ICAxOCAtLS0tLQogeGVuL2luY2x1ZGUveHNtL3hzbS5oICAgICAg ICAgICAgICAgfCAgMTggLS0tLS0KIHhlbi94c20vZHVtbXkuYyAgICAgICAgICAgICAgICAgICAg IHwgICAzIC0KIHhlbi94c20vZmxhc2svaG9va3MuYyAgICAgICAgICAgICAgIHwgIDE1IC0tLS0K IHhlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzIHwgICA2IC0tCiAxMSBmaWxlcyBj aGFuZ2VkLCAxNTQgaW5zZXJ0aW9ucygrKSwgMjU3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL3hlbi5pZiBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9t b2R1bGVzL3hlbi5pZgppbmRleCAzNjYyNzNlLi5lNmRmYWYwIDEwMDY0NAotLS0gYS90b29scy9m bGFzay9wb2xpY3kvbW9kdWxlcy94ZW4uaWYKKysrIGIvdG9vbHMvZmxhc2svcG9saWN5L21vZHVs ZXMveGVuLmlmCkBAIC01Nyw4ICs1Nyw4IEBAIGRlZmluZShgY3JlYXRlX2RvbWFpbl9jb21tb24n LCBgCiAJYWxsb3cgJDEgJDI6c2hhZG93IGVuYWJsZTsKIAlhbGxvdyAkMSAkMjptbXUgeyBtYXBf cmVhZCBtYXBfd3JpdGUgYWRqdXN0IG1lbW9yeW1hcCBwaHlzbWFwIHBpbnBhZ2UgbW11ZXh0X29w IHVwZGF0ZW1wIH07CiAJYWxsb3cgJDEgJDI6Z3JhbnQgc2V0dXA7Ci0JYWxsb3cgJDEgJDI6aHZt IHsgY2FjaGVhdHRyIGdldHBhcmFtIGh2bWN0bCBpcnFsZXZlbCBwY2lyb3V0ZSBzZXRodm1jCi0J CQlzZXRwYXJhbSBwY2lsZXZlbCBuZXN0ZWQgYWx0cDJtaHZtIGFsdHAybWh2bV9vcCB9OworCWFs bG93ICQxICQyOmh2bSB7IGNhY2hlYXR0ciBnZXRwYXJhbSBodm1jdGwgc2V0aHZtYworCQkJc2V0 cGFyYW0gbmVzdGVkIGFsdHAybWh2bSBhbHRwMm1odm1fb3AgfTsKICcpCiAKICMgY3JlYXRlX2Rv bWFpbihwcml2LCB0YXJnZXQpCkBAIC05Myw3ICs5Myw3IEBAIGRlZmluZShgbWFuYWdlX2RvbWFp bicsIGAKICMgICAoaW5ib3VuZCBtaWdyYXRpb24gaXMgdGhlIHNhbWUgYXMgZG9tYWluIGNyZWF0 aW9uKQogZGVmaW5lKGBtaWdyYXRlX2RvbWFpbl9vdXQnLCBgCiAJYWxsb3cgJDEgZG9teGVuX3Q6 bW11IG1hcF9yZWFkOwotCWFsbG93ICQxICQyOmh2bSB7IGdldGh2bWMgZ2V0cGFyYW0gaXJxbGV2 ZWwgfTsKKwlhbGxvdyAkMSAkMjpodm0geyBnZXRodm1jIGdldHBhcmFtIH07CiAJYWxsb3cgJDEg JDI6bW11IHsgc3RhdCBwYWdlaW5mbyBtYXBfcmVhZCB9OwogCWFsbG93ICQxICQyOmRvbWFpbiB7 IGdldGFkZHJzaXplIGdldHZjcHVjb250ZXh0IHBhdXNlIGRlc3Ryb3kgfTsKIAlhbGxvdyAkMSAk Mjpkb21haW4yIGdldHRzYzsKQEAgLTE1MSw3ICsxNTEsNyBAQCBkZWZpbmUoYGRldmljZV9tb2Rl bCcsIGAKIAogCWFsbG93ICQxICQyX3RhcmdldDpkb21haW4geyBnZXRkb21haW5pbmZvIHNodXRk b3duIH07CiAJYWxsb3cgJDEgJDJfdGFyZ2V0Om1tdSB7IG1hcF9yZWFkIG1hcF93cml0ZSBhZGp1 c3QgcGh5c21hcCB0YXJnZXRfaGFjayB9OwotCWFsbG93ICQxICQyX3RhcmdldDpodm0geyBnZXRw YXJhbSBzZXRwYXJhbSBodm1jdGwgaXJxbGV2ZWwgcGNpcm91dGUgcGNpbGV2ZWwgY2FjaGVhdHRy IHNlbmRfaXJxIGRtIH07CisJYWxsb3cgJDEgJDJfdGFyZ2V0Omh2bSB7IGdldHBhcmFtIHNldHBh cmFtIGh2bWN0bCBjYWNoZWF0dHIgc2VuZF9pcnEgZG0gfTsKICcpCiAKICMgbWFrZV9kZXZpY2Vf bW9kZWwocHJpdiwgZG1fZG9tLCBodm1fZG9tKQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMveGNf bWlzYy5jIGIvdG9vbHMvbGlieGMveGNfbWlzYy5jCmluZGV4IDM2NTFjYWIuLjg0MmI2OTkgMTAw NjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL3hjX21pc2MuYworKysgYi90b29scy9saWJ4Yy94Y19taXNj LmMKQEAgLTQ3MywzMCArNDczLDE5IEBAIGludCB4Y19odm1fc2V0X3BjaV9pbnR4X2xldmVsKAog ICAgIHVpbnQ4X3QgZG9tYWluLCB1aW50OF90IGJ1cywgdWludDhfdCBkZXZpY2UsIHVpbnQ4X3Qg aW50eCwKICAgICB1bnNpZ25lZCBpbnQgbGV2ZWwpCiB7Ci0gICAgREVDTEFSRV9IWVBFUkNBTExf QlVGRkVSKHN0cnVjdCB4ZW5faHZtX3NldF9wY2lfaW50eF9sZXZlbCwgYXJnKTsKLSAgICBpbnQg cmM7Ci0KLSAgICBhcmcgPSB4Y19oeXBlcmNhbGxfYnVmZmVyX2FsbG9jKHhjaCwgYXJnLCBzaXpl b2YoKmFyZykpOwotICAgIGlmICggYXJnID09IE5VTEwgKQotICAgIHsKLSAgICAgICAgUEVSUk9S KCJDb3VsZCBub3QgYWxsb2NhdGUgbWVtb3J5IGZvciB4Y19odm1fc2V0X3BjaV9pbnR4X2xldmVs IGh5cGVyY2FsbCIpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQotCi0gICAgYXJnLT5kb21p ZCAgPSBkb207Ci0gICAgYXJnLT5kb21haW4gPSBkb21haW47Ci0gICAgYXJnLT5idXMgICAgPSBi dXM7Ci0gICAgYXJnLT5kZXZpY2UgPSBkZXZpY2U7Ci0gICAgYXJnLT5pbnR4ICAgPSBpbnR4Owot ICAgIGFyZy0+bGV2ZWwgID0gbGV2ZWw7CisgICAgc3RydWN0IHhlbl9kbV9vcCBvcDsKKyAgICBz dHJ1Y3QgeGVuX2RtX29wX3NldF9wY2lfaW50eF9sZXZlbCAqZGF0YTsKIAotICAgIHJjID0geGVu Y2FsbDIoeGNoLT54Y2FsbCwgX19IWVBFUlZJU09SX2h2bV9vcCwKLSAgICAgICAgICAgICAgICAg IEhWTU9QX3NldF9wY2lfaW50eF9sZXZlbCwKLSAgICAgICAgICAgICAgICAgIEhZUEVSQ0FMTF9C VUZGRVJfQVNfQVJHKGFyZykpOworICAgIG9wLm9wID0gRE1PUF9zZXRfcGNpX2ludHhfbGV2ZWw7 CisgICAgZGF0YSA9ICZvcC51LnNldF9wY2lfaW50eF9sZXZlbDsKIAotICAgIHhjX2h5cGVyY2Fs bF9idWZmZXJfZnJlZSh4Y2gsIGFyZyk7CisgICAgZGF0YS0+ZG9tYWluID0gZG9tYWluOworICAg IGRhdGEtPmJ1cyA9IGJ1czsKKyAgICBkYXRhLT5kZXZpY2UgPSBkZXZpY2U7CisgICAgZGF0YS0+ aW50eCA9IGludHg7CisgICAgZGF0YS0+bGV2ZWwgPSBsZXZlbDsKIAotICAgIHJldHVybiByYzsK KyAgICByZXR1cm4gZG9fZG1fb3AoeGNoLCBkb20sIDEsICZvcCwgc2l6ZW9mKG9wKSk7CiB9CiAK IGludCB4Y19odm1fc2V0X2lzYV9pcnFfbGV2ZWwoCkBAIC01MDQsNTMgKzQ5MywzMSBAQCBpbnQg eGNfaHZtX3NldF9pc2FfaXJxX2xldmVsKAogICAgIHVpbnQ4X3QgaXNhX2lycSwKICAgICB1bnNp Z25lZCBpbnQgbGV2ZWwpCiB7Ci0gICAgREVDTEFSRV9IWVBFUkNBTExfQlVGRkVSKHN0cnVjdCB4 ZW5faHZtX3NldF9pc2FfaXJxX2xldmVsLCBhcmcpOwotICAgIGludCByYzsKLQotICAgIGFyZyA9 IHhjX2h5cGVyY2FsbF9idWZmZXJfYWxsb2MoeGNoLCBhcmcsIHNpemVvZigqYXJnKSk7Ci0gICAg aWYgKCBhcmcgPT0gTlVMTCApCi0gICAgewotICAgICAgICBQRVJST1IoIkNvdWxkIG5vdCBhbGxv Y2F0ZSBtZW1vcnkgZm9yIHhjX2h2bV9zZXRfaXNhX2lycV9sZXZlbCBoeXBlcmNhbGwiKTsKLSAg ICAgICAgcmV0dXJuIC0xOwotICAgIH0KKyAgICBzdHJ1Y3QgeGVuX2RtX29wIG9wOworICAgIHN0 cnVjdCB4ZW5fZG1fb3Bfc2V0X2lzYV9pcnFfbGV2ZWwgKmRhdGE7CiAKLSAgICBhcmctPmRvbWlk ICAgPSBkb207Ci0gICAgYXJnLT5pc2FfaXJxID0gaXNhX2lycTsKLSAgICBhcmctPmxldmVsICAg PSBsZXZlbDsKKyAgICBvcC5vcCA9IERNT1Bfc2V0X2lzYV9pcnFfbGV2ZWw7CisgICAgZGF0YSA9 ICZvcC51LnNldF9pc2FfaXJxX2xldmVsOwogCi0gICAgcmMgPSB4ZW5jYWxsMih4Y2gtPnhjYWxs LCBfX0hZUEVSVklTT1JfaHZtX29wLAotICAgICAgICAgICAgICAgICAgSFZNT1Bfc2V0X2lzYV9p cnFfbGV2ZWwsCi0gICAgICAgICAgICAgICAgICBIWVBFUkNBTExfQlVGRkVSX0FTX0FSRyhhcmcp KTsKLQotICAgIHhjX2h5cGVyY2FsbF9idWZmZXJfZnJlZSh4Y2gsIGFyZyk7CisgICAgZGF0YS0+ aXNhX2lycSA9IGlzYV9pcnE7CisgICAgZGF0YS0+bGV2ZWwgPSBsZXZlbDsKIAotICAgIHJldHVy biByYzsKKyAgICByZXR1cm4gZG9fZG1fb3AoeGNoLCBkb20sIDEsICZvcCwgc2l6ZW9mKG9wKSk7 CiB9CiAKIGludCB4Y19odm1fc2V0X3BjaV9saW5rX3JvdXRlKAogICAgIHhjX2ludGVyZmFjZSAq eGNoLCBkb21pZF90IGRvbSwgdWludDhfdCBsaW5rLCB1aW50OF90IGlzYV9pcnEpCiB7Ci0gICAg REVDTEFSRV9IWVBFUkNBTExfQlVGRkVSKHN0cnVjdCB4ZW5faHZtX3NldF9wY2lfbGlua19yb3V0 ZSwgYXJnKTsKLSAgICBpbnQgcmM7Ci0KLSAgICBhcmcgPSB4Y19oeXBlcmNhbGxfYnVmZmVyX2Fs bG9jKHhjaCwgYXJnLCBzaXplb2YoKmFyZykpOwotICAgIGlmICggYXJnID09IE5VTEwgKQotICAg IHsKLSAgICAgICAgUEVSUk9SKCJDb3VsZCBub3QgYWxsb2NhdGUgbWVtb3J5IGZvciB4Y19odm1f c2V0X3BjaV9saW5rX3JvdXRlIGh5cGVyY2FsbCIpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAg fQorICAgIHN0cnVjdCB4ZW5fZG1fb3Agb3A7CisgICAgc3RydWN0IHhlbl9kbV9vcF9zZXRfcGNp X2xpbmtfcm91dGUgKmRhdGE7CiAKLSAgICBhcmctPmRvbWlkICAgPSBkb207Ci0gICAgYXJnLT5s aW5rICAgID0gbGluazsKLSAgICBhcmctPmlzYV9pcnEgPSBpc2FfaXJxOworICAgIG9wLm9wID0g RE1PUF9zZXRfcGNpX2xpbmtfcm91dGU7CisgICAgZGF0YSA9ICZvcC51LnNldF9wY2lfbGlua19y b3V0ZTsKIAotICAgIHJjID0geGVuY2FsbDIoeGNoLT54Y2FsbCwgX19IWVBFUlZJU09SX2h2bV9v cCwKLSAgICAgICAgICAgICAgICAgIEhWTU9QX3NldF9wY2lfbGlua19yb3V0ZSwKLSAgICAgICAg ICAgICAgICAgIEhZUEVSQ0FMTF9CVUZGRVJfQVNfQVJHKGFyZykpOwotCi0gICAgeGNfaHlwZXJj YWxsX2J1ZmZlcl9mcmVlKHhjaCwgYXJnKTsKKyAgICBkYXRhLT5saW5rID0gbGluazsKKyAgICBk YXRhLT5pc2FfaXJxID0gaXNhX2lycTsKIAotICAgIHJldHVybiByYzsKKyAgICByZXR1cm4gZG9f ZG1fb3AoeGNoLCBkb20sIDEsICZvcCwgc2l6ZW9mKG9wKSk7CiB9CiAKIGludCB4Y19odm1faW5q ZWN0X21zaSgKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vZG0uYyBiL3hlbi9hcmNoL3g4 Ni9odm0vZG0uYwppbmRleCA3OGRkNmU3Li5iOGVkZjJjIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYvaHZtL2RtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9kbS5jCkBAIC0xMDUsNiArMTA1LDYw IEBAIHN0YXRpYyBpbnQgZG1fb3BfdHJhY2tfZGlydHlfdnJhbShzdHJ1Y3QgZG9tYWluICpkLAog ICAgICAgICBoYXBfdHJhY2tfZGlydHlfdnJhbShkLCBmaXJzdF9wZm4sIG5yLCBidWYuaCk7CiB9 CiAKK3N0YXRpYyBpbnQgZG1fb3Bfc2V0X3BjaV9pbnR4X2xldmVsKHN0cnVjdCBkb21haW4gKmQs IHVpbnQ4X3QgZG9tYWluLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu dDhfdCBidXMsIHVpbnQ4X3QgZGV2aWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdWludDhfdCBpbnR4LCB1aW50OF90IGxldmVsKQoreworICAgIGlmICggZG9tYWluICE9 IDAgfHwgYnVzICE9IDAgfHwgZGV2aWNlID4gMHgxZiB8fCBpbnR4ID4gMyApCisgICAgICAgIHJl dHVybiAtRUlOVkFMOworCisgICAgc3dpdGNoICggbGV2ZWwgKQorICAgIHsKKyAgICBjYXNlIDA6 CisgICAgICAgIGh2bV9wY2lfaW50eF9kZWFzc2VydChkLCBkZXZpY2UsIGludHgpOworICAgICAg ICBicmVhazsKKyAgICBjYXNlIDE6CisgICAgICAgIGh2bV9wY2lfaW50eF9hc3NlcnQoZCwgZGV2 aWNlLCBpbnR4KTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJu IC1FSU5WQUw7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZG1fb3Bf c2V0X2lzYV9pcnFfbGV2ZWwoc3RydWN0IGRvbWFpbiAqZCwgdWludDhfdCBpc2FfaXJxLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IGxldmVsKQoreworICAgIGlm ICggaXNhX2lycSA+IDE1ICkKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICBzd2l0Y2gg KCBsZXZlbCApCisgICAgeworICAgIGNhc2UgMDoKKyAgICAgICAgaHZtX2lzYV9pcnFfZGVhc3Nl cnQoZCwgaXNhX2lycSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgMToKKyAgICAgICAgaHZt X2lzYV9pcnFfYXNzZXJ0KGQsIGlzYV9pcnEpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0 OgorICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKwor c3RhdGljIGludCBkbV9vcF9zZXRfcGNpX2xpbmtfcm91dGUoc3RydWN0IGRvbWFpbiAqZCwgdWlu dDhfdCBsaW5rLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBp c2FfaXJxKQoreworICAgIGlmICggbGluayA+IDMgfHwgaXNhX2lycSA+IDE1ICkKKyAgICAgICAg cmV0dXJuIC1FSU5WQUw7CisKKyAgICBodm1fc2V0X3BjaV9saW5rX3JvdXRlKGQsIGxpbmssIGlz YV9pcnEpOworCisgICAgcmV0dXJuIDA7Cit9CisKIGxvbmcgZG9fZG1fb3AoZG9taWRfdCBkb21p ZCwKICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG5yX2J1ZnMsCiAgICAgICAgICAgICAgIFhF Tl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2RtX29wX2J1Zl90KSBidWZzKQpAQCAtMTk3LDYgKzI1 MSwzMiBAQCBsb25nIGRvX2RtX29wKGRvbWlkX3QgZG9taWQsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkYXRhLT5ucik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBj YXNlIERNT1Bfc2V0X3BjaV9pbnR4X2xldmVsOgorICAgIHsKKyAgICAgICAgc3RydWN0IHhlbl9k bV9vcF9zZXRfcGNpX2ludHhfbGV2ZWwgKmRhdGEgPQorICAgICAgICAgICAgJm9wLnUuc2V0X3Bj aV9pbnR4X2xldmVsOworCisgICAgICAgIHJjID0gZG1fb3Bfc2V0X3BjaV9pbnR4X2xldmVsKGQs IGRhdGEtPmRvbWFpbiwgZGF0YS0+YnVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkYXRhLT5kZXZpY2UsIGRhdGEtPmludHgsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRhdGEtPmxldmVsKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAg IGNhc2UgRE1PUF9zZXRfaXNhX2lycV9sZXZlbDoKKyAgICB7CisgICAgICAgIHN0cnVjdCB4ZW5f ZG1fb3Bfc2V0X2lzYV9pcnFfbGV2ZWwgKmRhdGEgPQorICAgICAgICAgICAgJm9wLnUuc2V0X2lz YV9pcnFfbGV2ZWw7CisKKyAgICAgICAgcmMgPSBkbV9vcF9zZXRfaXNhX2lycV9sZXZlbChkLCBk YXRhLT5pc2FfaXJxLCBkYXRhLT5sZXZlbCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBj YXNlIERNT1Bfc2V0X3BjaV9saW5rX3JvdXRlOgorICAgIHsKKyAgICAgICAgc3RydWN0IHhlbl9k bV9vcF9zZXRfcGNpX2xpbmtfcm91dGUgKmRhdGEgPQorICAgICAgICAgICAgJm9wLnUuc2V0X3Bj aV9saW5rX3JvdXRlOworCisgICAgICAgIHJjID0gZG1fb3Bfc2V0X3BjaV9saW5rX3JvdXRlKGQs IGRhdGEtPmxpbmssIGRhdGEtPmlzYV9pcnEpOworICAgICAgICBicmVhazsKKyAgICB9CiAgICAg ZGVmYXVsdDoKICAgICAgICAgcmMgPSAtRU9QTk9UU1VQUDsKICAgICAgICAgYnJlYWs7CmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwpp bmRleCAwY2E5Y2EwLi4xNGQzYjg3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5j CisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKQEAgLTQ0NTUsNTAgKzQ0NTUsNiBAQCB2b2lk IGh2bV9oeXBlcmNhbGxfcGFnZV9pbml0aWFsaXNlKHN0cnVjdCBkb21haW4gKmQsCiAgICAgaHZt X2Z1bmNzLmluaXRfaHlwZXJjYWxsX3BhZ2UoZCwgaHlwZXJjYWxsX3BhZ2UpOwogfQogCi1zdGF0 aWMgaW50IGh2bW9wX3NldF9wY2lfaW50eF9sZXZlbCgKLSAgICBYRU5fR1VFU1RfSEFORExFX1BB UkFNKHhlbl9odm1fc2V0X3BjaV9pbnR4X2xldmVsX3QpIHVvcCkKLXsKLSAgICBzdHJ1Y3QgeGVu X2h2bV9zZXRfcGNpX2ludHhfbGV2ZWwgb3A7Ci0gICAgc3RydWN0IGRvbWFpbiAqZDsKLSAgICBp bnQgcmM7Ci0KLSAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgmb3AsIHVvcCwgMSkgKQotICAgICAg ICByZXR1cm4gLUVGQVVMVDsKLQotICAgIGlmICggKG9wLmRvbWFpbiA+IDApIHx8IChvcC5idXMg PiAwKSB8fCAob3AuZGV2aWNlID4gMzEpIHx8IChvcC5pbnR4ID4gMykgKQotICAgICAgICByZXR1 cm4gLUVJTlZBTDsKLQotICAgIHJjID0gcmN1X2xvY2tfcmVtb3RlX2RvbWFpbl9ieV9pZChvcC5k b21pZCwgJmQpOwotICAgIGlmICggcmMgIT0gMCApCi0gICAgICAgIHJldHVybiByYzsKLQotICAg IHJjID0gLUVJTlZBTDsKLSAgICBpZiAoICFpc19odm1fZG9tYWluKGQpICkKLSAgICAgICAgZ290 byBvdXQ7Ci0KLSAgICByYyA9IHhzbV9odm1fc2V0X3BjaV9pbnR4X2xldmVsKFhTTV9ETV9QUklW LCBkKTsKLSAgICBpZiAoIHJjICkKLSAgICAgICAgZ290byBvdXQ7Ci0KLSAgICByYyA9IDA7Ci0g ICAgc3dpdGNoICggb3AubGV2ZWwgKQotICAgIHsKLSAgICBjYXNlIDA6Ci0gICAgICAgIGh2bV9w Y2lfaW50eF9kZWFzc2VydChkLCBvcC5kZXZpY2UsIG9wLmludHgpOwotICAgICAgICBicmVhazsK LSAgICBjYXNlIDE6Ci0gICAgICAgIGh2bV9wY2lfaW50eF9hc3NlcnQoZCwgb3AuZGV2aWNlLCBv cC5pbnR4KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmMgPSAtRUlO VkFMOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSBvdXQ6Ci0gICAgcmN1X3VubG9ja19kb21h aW4oZCk7Ci0gICAgcmV0dXJuIHJjOwotfQotCiB2b2lkIGh2bV92Y3B1X3Jlc2V0X3N0YXRlKHN0 cnVjdCB2Y3B1ICp2LCB1aW50MTZfdCBjcywgdWludDE2X3QgaXApCiB7CiAgICAgc3RydWN0IGRv bWFpbiAqZCA9IHYtPmRvbWFpbjsKQEAgLTQ2NDIsODMgKzQ1OTgsNiBAQCBzdGF0aWMgdm9pZCBo dm1fczNfcmVzdW1lKHN0cnVjdCBkb21haW4gKmQpCiAgICAgfQogfQogCi1zdGF0aWMgaW50IGh2 bW9wX3NldF9pc2FfaXJxX2xldmVsKAotICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2h2 bV9zZXRfaXNhX2lycV9sZXZlbF90KSB1b3ApCi17Ci0gICAgc3RydWN0IHhlbl9odm1fc2V0X2lz YV9pcnFfbGV2ZWwgb3A7Ci0gICAgc3RydWN0IGRvbWFpbiAqZDsKLSAgICBpbnQgcmM7Ci0KLSAg ICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgmb3AsIHVvcCwgMSkgKQotICAgICAgICByZXR1cm4gLUVG QVVMVDsKLQotICAgIGlmICggb3AuaXNhX2lycSA+IDE1ICkKLSAgICAgICAgcmV0dXJuIC1FSU5W QUw7Ci0KLSAgICByYyA9IHJjdV9sb2NrX3JlbW90ZV9kb21haW5fYnlfaWQob3AuZG9taWQsICZk KTsKLSAgICBpZiAoIHJjICE9IDAgKQotICAgICAgICByZXR1cm4gcmM7Ci0KLSAgICByYyA9IC1F SU5WQUw7Ci0gICAgaWYgKCAhaXNfaHZtX2RvbWFpbihkKSApCi0gICAgICAgIGdvdG8gb3V0Owot Ci0gICAgcmMgPSB4c21faHZtX3NldF9pc2FfaXJxX2xldmVsKFhTTV9ETV9QUklWLCBkKTsKLSAg ICBpZiAoIHJjICkKLSAgICAgICAgZ290byBvdXQ7Ci0KLSAgICByYyA9IDA7Ci0gICAgc3dpdGNo ICggb3AubGV2ZWwgKQotICAgIHsKLSAgICBjYXNlIDA6Ci0gICAgICAgIGh2bV9pc2FfaXJxX2Rl YXNzZXJ0KGQsIG9wLmlzYV9pcnEpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIDE6Ci0gICAg ICAgIGh2bV9pc2FfaXJxX2Fzc2VydChkLCBvcC5pc2FfaXJxKTsKLSAgICAgICAgYnJlYWs7Ci0g ICAgZGVmYXVsdDoKLSAgICAgICAgcmMgPSAtRUlOVkFMOwotICAgICAgICBicmVhazsKLSAgICB9 Ci0KLSBvdXQ6Ci0gICAgcmN1X3VubG9ja19kb21haW4oZCk7Ci0gICAgcmV0dXJuIHJjOwotfQot Ci1zdGF0aWMgaW50IGh2bW9wX3NldF9wY2lfbGlua19yb3V0ZSgKLSAgICBYRU5fR1VFU1RfSEFO RExFX1BBUkFNKHhlbl9odm1fc2V0X3BjaV9saW5rX3JvdXRlX3QpIHVvcCkKLXsKLSAgICBzdHJ1 Y3QgeGVuX2h2bV9zZXRfcGNpX2xpbmtfcm91dGUgb3A7Ci0gICAgc3RydWN0IGRvbWFpbiAqZDsK LSAgICBpbnQgcmM7Ci0KLSAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgmb3AsIHVvcCwgMSkgKQot ICAgICAgICByZXR1cm4gLUVGQVVMVDsKLQotICAgIGlmICggKG9wLmxpbmsgPiAzKSB8fCAob3Au aXNhX2lycSA+IDE1KSApCi0gICAgICAgIHJldHVybiAtRUlOVkFMOwotCi0gICAgcmMgPSByY3Vf bG9ja19yZW1vdGVfZG9tYWluX2J5X2lkKG9wLmRvbWlkLCAmZCk7Ci0gICAgaWYgKCByYyAhPSAw ICkKLSAgICAgICAgcmV0dXJuIHJjOwotCi0gICAgcmMgPSAtRUlOVkFMOwotICAgIGlmICggIWlz X2h2bV9kb21haW4oZCkgKQotICAgICAgICBnb3RvIG91dDsKLQotICAgIHJjID0geHNtX2h2bV9z ZXRfcGNpX2xpbmtfcm91dGUoWFNNX0RNX1BSSVYsIGQpOwotICAgIGlmICggcmMgKQotICAgICAg ICBnb3RvIG91dDsKLQotICAgIHJjID0gMDsKLSAgICBodm1fc2V0X3BjaV9saW5rX3JvdXRlKGQs IG9wLmxpbmssIG9wLmlzYV9pcnEpOwotCi0gb3V0OgotICAgIHJjdV91bmxvY2tfZG9tYWluKGQp OwotICAgIHJldHVybiByYzsKLX0KLQogc3RhdGljIGludCBodm1vcF9pbmplY3RfbXNpKAogICAg IFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2h2bV9pbmplY3RfbXNpX3QpIHVvcCkKIHsKQEAg LTU1MTMsMjYgKzUzOTIsMTEgQEAgbG9uZyBkb19odm1fb3AodW5zaWduZWQgbG9uZyBvcCwgWEVO X0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpCiAgICAgICAgICAgICBndWVzdF9oYW5kbGVf Y2FzdChhcmcsIHhlbl9odm1fcGFyYW1fdCkpOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2Ug SFZNT1Bfc2V0X3BjaV9pbnR4X2xldmVsOgotICAgICAgICByYyA9IGh2bW9wX3NldF9wY2lfaW50 eF9sZXZlbCgKLSAgICAgICAgICAgIGd1ZXN0X2hhbmRsZV9jYXN0KGFyZywgeGVuX2h2bV9zZXRf cGNpX2ludHhfbGV2ZWxfdCkpOwotICAgICAgICBicmVhazsKLQotICAgIGNhc2UgSFZNT1Bfc2V0 X2lzYV9pcnFfbGV2ZWw6Ci0gICAgICAgIHJjID0gaHZtb3Bfc2V0X2lzYV9pcnFfbGV2ZWwoCi0g ICAgICAgICAgICBndWVzdF9oYW5kbGVfY2FzdChhcmcsIHhlbl9odm1fc2V0X2lzYV9pcnFfbGV2 ZWxfdCkpOwotICAgICAgICBicmVhazsKLQogICAgIGNhc2UgSFZNT1BfaW5qZWN0X21zaToKICAg ICAgICAgcmMgPSBodm1vcF9pbmplY3RfbXNpKAogICAgICAgICAgICAgZ3Vlc3RfaGFuZGxlX2Nh c3QoYXJnLCB4ZW5faHZtX2luamVjdF9tc2lfdCkpOwogICAgICAgICBicmVhazsKIAotICAgIGNh c2UgSFZNT1Bfc2V0X3BjaV9saW5rX3JvdXRlOgotICAgICAgICByYyA9IGh2bW9wX3NldF9wY2lf bGlua19yb3V0ZSgKLSAgICAgICAgICAgIGd1ZXN0X2hhbmRsZV9jYXN0KGFyZywgeGVuX2h2bV9z ZXRfcGNpX2xpbmtfcm91dGVfdCkpOwotICAgICAgICBicmVhazsKLQogICAgIGNhc2UgSFZNT1Bf Zmx1c2hfdGxiczoKICAgICAgICAgcmMgPSBndWVzdF9oYW5kbGVfaXNfbnVsbChhcmcpID8gaHZt b3BfZmx1c2hfdGxiX2FsbCgpIDogLUVJTlZBTDsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQg YS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZt L2RtX29wLmgKaW5kZXggYzE1NTdlYi4uYjQ3MDE0YiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUv cHVibGljL2h2bS9kbV9vcC5oCisrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaApA QCAtMTk0LDYgKzE5NCw0NSBAQCBzdHJ1Y3QgeGVuX2RtX29wX3RyYWNrX2RpcnR5X3ZyYW0gewog ICAgIHVpbnQ2NF9hbGlnbmVkX3QgZmlyc3RfcGZuOwogfTsKIAorLyoKKyAqIERNT1Bfc2V0X3Bj aV9pbnR4X2xldmVsOiBTZXQgdGhlIGxvZ2ljYWwgbGV2ZWwgb2Ygb25lIG9mIGEgZG9tYWluJ3MK KyAqICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0kgSU5UeCBwaW5zLgorICovCisjZGVmaW5l IERNT1Bfc2V0X3BjaV9pbnR4X2xldmVsIDgKKworc3RydWN0IHhlbl9kbV9vcF9zZXRfcGNpX2lu dHhfbGV2ZWwgeworICAgIC8qIElOIC0gUENJIElOVHggaWRlbnRpZmljYXRpb24gKGRvbWFpbjpi dXM6ZGV2aWNlOmludHgpICovCisgICAgdWludDhfdCAgZG9tYWluLCBidXMsIGRldmljZSwgaW50 eDsKKyAgICAvKiBJTiAtIExldmVsOiAwIC0+IGRlYXNzZXJ0ZWQsIDEgLT4gYXNzZXJ0ZWQgKi8K KyAgICB1aW50OF90ICBsZXZlbDsKK307CisKKy8qCisgKiBETU9QX3NldF9pc2FfaXJxX2xldmVs OiBTZXQgdGhlIGxvZ2ljYWwgbGV2ZWwgb2YgYSBvbmUgb2YgYSBkb21haW4ncworICogICAgICAg ICAgICAgICAgICAgICAgICAgSVNBIElSUSBsaW5lcy4KKyAqLworI2RlZmluZSBETU9QX3NldF9p c2FfaXJxX2xldmVsIDkKKworc3RydWN0IHhlbl9kbV9vcF9zZXRfaXNhX2lycV9sZXZlbCB7Cisg ICAgLyogSU4gLSBJU0EgSVJRICgwLTE1KSAqLworICAgIHVpbnQ4X3QgIGlzYV9pcnE7CisgICAg LyogSU4gLSBMZXZlbDogMCAtPiBkZWFzc2VydGVkLCAxIC0+IGFzc2VydGVkICovCisgICAgdWlu dDhfdCAgbGV2ZWw7Cit9OworCisvKgorICogRE1PUF9zZXRfcGNpX2xpbmtfcm91dGU6IE1hcCBh IFBDSSBJTlR4IGxpbmUgdG8gYW4gSVJRIGxpbmUuCisgKi8KKyNkZWZpbmUgRE1PUF9zZXRfcGNp X2xpbmtfcm91dGUgMTAKKworc3RydWN0IHhlbl9kbV9vcF9zZXRfcGNpX2xpbmtfcm91dGUgewor ICAgIC8qIFBDSSBJTlR4IGxpbmUgKDAtMykgKi8KKyAgICB1aW50OF90ICBsaW5rOworICAgIC8q IElTQSBJUlEgKDEtMTUpIG9yIDAgLT4gZGlzYWJsZSBsaW5rICovCisgICAgdWludDhfdCAgaXNh X2lycTsKK307CisKKwogc3RydWN0IHhlbl9kbV9vcCB7CiAgICAgdWludDMyX3Qgb3A7CiAgICAg dW5pb24gewpAQCAtMjA0LDYgKzI0Myw5IEBAIHN0cnVjdCB4ZW5fZG1fb3AgewogICAgICAgICBz dHJ1Y3QgeGVuX2RtX29wX3NldF9pb3JlcV9zZXJ2ZXJfc3RhdGUgc2V0X2lvcmVxX3NlcnZlcl9z dGF0ZTsKICAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9kZXN0cm95X2lvcmVxX3NlcnZlciBkZXN0 cm95X2lvcmVxX3NlcnZlcjsKICAgICAgICAgc3RydWN0IHhlbl9kbV9vcF90cmFja19kaXJ0eV92 cmFtIHRyYWNrX2RpcnR5X3ZyYW07CisgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3Bfc2V0X3BjaV9p bnR4X2xldmVsIHNldF9wY2lfaW50eF9sZXZlbDsKKyAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9z ZXRfaXNhX2lycV9sZXZlbCBzZXRfaXNhX2lycV9sZXZlbDsKKyAgICAgICAgc3RydWN0IHhlbl9k bV9vcF9zZXRfcGNpX2xpbmtfcm91dGUgc2V0X3BjaV9saW5rX3JvdXRlOwogICAgIH0gdTsKIH07 CiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vaHZtX29wLmggYi94ZW4vaW5j bHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5oCmluZGV4IDFiYjUyMjEuLjFiOWUzZTAgMTAwNjQ0Ci0t LSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vaHZtX29wLmgKKysrIGIveGVuL2luY2x1ZGUvcHVi bGljL2h2bS9odm1fb3AuaApAQCAtMzksNiArMzksOCBAQCBzdHJ1Y3QgeGVuX2h2bV9wYXJhbSB7 CiB0eXBlZGVmIHN0cnVjdCB4ZW5faHZtX3BhcmFtIHhlbl9odm1fcGFyYW1fdDsKIERFRklORV9Y RU5fR1VFU1RfSEFORExFKHhlbl9odm1fcGFyYW1fdCk7CiAKKyNpZiBfX1hFTl9JTlRFUkZBQ0Vf VkVSU0lPTl9fIDwgMHgwMDA0MDkwMAorCiAvKiBTZXQgdGhlIGxvZ2ljYWwgbGV2ZWwgb2Ygb25l IG9mIGEgZG9tYWluJ3MgUENJIElOVHggd2lyZXMuICovCiAjZGVmaW5lIEhWTU9QX3NldF9wY2lf aW50eF9sZXZlbCAgMgogc3RydWN0IHhlbl9odm1fc2V0X3BjaV9pbnR4X2xldmVsIHsKQEAgLTc3 LDYgKzc5LDggQEAgc3RydWN0IHhlbl9odm1fc2V0X3BjaV9saW5rX3JvdXRlIHsKIHR5cGVkZWYg c3RydWN0IHhlbl9odm1fc2V0X3BjaV9saW5rX3JvdXRlIHhlbl9odm1fc2V0X3BjaV9saW5rX3Jv dXRlX3Q7CiBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX3NldF9wY2lfbGlua19yb3V0 ZV90KTsKIAorI2VuZGlmIC8qIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gPCAweDAwMDQwOTAw ICovCisKIC8qIEZsdXNoZXMgYWxsIFZDUFUgVExCczogQGFyZyBtdXN0IGJlIE5VTEwuICovCiAj ZGVmaW5lIEhWTU9QX2ZsdXNoX3RsYnMgICAgICAgICAgNQogCmRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS94c20vZHVtbXkuaCBiL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCmluZGV4IGI3ZDMxNzMu LjQ3YzYwNzIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCisrKyBiL3hlbi9p bmNsdWRlL3hzbS9kdW1teS5oCkBAIC02MTAsMjQgKzYxMCw2IEBAIHN0YXRpYyBYU01fSU5MSU5F IGludCB4c21fc2hhZG93X2NvbnRyb2woWFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBkb21haW4gKmQs IHVpbnQzCiAgICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihhY3Rpb24sIGN1cnJlbnQtPmRv bWFpbiwgZCk7CiB9CiAKLXN0YXRpYyBYU01fSU5MSU5FIGludCB4c21faHZtX3NldF9wY2lfaW50 eF9sZXZlbChYU01fREVGQVVMVF9BUkcgc3RydWN0IGRvbWFpbiAqZCkKLXsKLSAgICBYU01fQVNT RVJUX0FDVElPTihYU01fRE1fUFJJVik7Ci0gICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihh Y3Rpb24sIGN1cnJlbnQtPmRvbWFpbiwgZCk7Ci19Ci0KLXN0YXRpYyBYU01fSU5MSU5FIGludCB4 c21faHZtX3NldF9pc2FfaXJxX2xldmVsKFhTTV9ERUZBVUxUX0FSRyBzdHJ1Y3QgZG9tYWluICpk KQotewotICAgIFhTTV9BU1NFUlRfQUNUSU9OKFhTTV9ETV9QUklWKTsKLSAgICByZXR1cm4geHNt X2RlZmF1bHRfYWN0aW9uKGFjdGlvbiwgY3VycmVudC0+ZG9tYWluLCBkKTsKLX0KLQotc3RhdGlj IFhTTV9JTkxJTkUgaW50IHhzbV9odm1fc2V0X3BjaV9saW5rX3JvdXRlKFhTTV9ERUZBVUxUX0FS RyBzdHJ1Y3QgZG9tYWluICpkKQotewotICAgIFhTTV9BU1NFUlRfQUNUSU9OKFhTTV9ETV9QUklW KTsKLSAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKGFjdGlvbiwgY3VycmVudC0+ZG9tYWlu LCBkKTsKLX0KLQogc3RhdGljIFhTTV9JTkxJTkUgaW50IHhzbV9odm1faW5qZWN0X21zaShYU01f REVGQVVMVF9BUkcgc3RydWN0IGRvbWFpbiAqZCkKIHsKICAgICBYU01fQVNTRVJUX0FDVElPTihY U01fRE1fUFJJVik7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94c20veHNtLmggYi94ZW4vaW5j bHVkZS94c20veHNtLmgKaW5kZXggMGJjZGUzOS4uY2IzMjY0NCAxMDA2NDQKLS0tIGEveGVuL2lu Y2x1ZGUveHNtL3hzbS5oCisrKyBiL3hlbi9pbmNsdWRlL3hzbS94c20uaApAQCAtMTYyLDkgKzE2 Miw2IEBAIHN0cnVjdCB4c21fb3BlcmF0aW9ucyB7CiAjaWZkZWYgQ09ORklHX1g4NgogICAgIGlu dCAoKmRvX21jYSkgKHZvaWQpOwogICAgIGludCAoKnNoYWRvd19jb250cm9sKSAoc3RydWN0IGRv bWFpbiAqZCwgdWludDMyX3Qgb3ApOwotICAgIGludCAoKmh2bV9zZXRfcGNpX2ludHhfbGV2ZWwp IChzdHJ1Y3QgZG9tYWluICpkKTsKLSAgICBpbnQgKCpodm1fc2V0X2lzYV9pcnFfbGV2ZWwpIChz dHJ1Y3QgZG9tYWluICpkKTsKLSAgICBpbnQgKCpodm1fc2V0X3BjaV9saW5rX3JvdXRlKSAoc3Ry dWN0IGRvbWFpbiAqZCk7CiAgICAgaW50ICgqaHZtX2luamVjdF9tc2kpIChzdHJ1Y3QgZG9tYWlu ICpkKTsKICAgICBpbnQgKCptZW1fc2hhcmluZ19vcCkgKHN0cnVjdCBkb21haW4gKmQsIHN0cnVj dCBkb21haW4gKmNkLCBpbnQgb3ApOwogICAgIGludCAoKmFwaWMpIChzdHJ1Y3QgZG9tYWluICpk LCBpbnQgY21kKTsKQEAgLTYzNSwyMSArNjMyLDYgQEAgc3RhdGljIGlubGluZSBpbnQgeHNtX3No YWRvd19jb250cm9sICh4c21fZGVmYXVsdF90IGRlZiwgc3RydWN0IGRvbWFpbiAqZCwgdWludDMK ICAgICByZXR1cm4geHNtX29wcy0+c2hhZG93X2NvbnRyb2woZCwgb3ApOwogfQogCi1zdGF0aWMg aW5saW5lIGludCB4c21faHZtX3NldF9wY2lfaW50eF9sZXZlbCAoeHNtX2RlZmF1bHRfdCBkZWYs IHN0cnVjdCBkb21haW4gKmQpCi17Ci0gICAgcmV0dXJuIHhzbV9vcHMtPmh2bV9zZXRfcGNpX2lu dHhfbGV2ZWwoZCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IHhzbV9odm1fc2V0X2lzYV9pcnFf bGV2ZWwgKHhzbV9kZWZhdWx0X3QgZGVmLCBzdHJ1Y3QgZG9tYWluICpkKQotewotICAgIHJldHVy biB4c21fb3BzLT5odm1fc2V0X2lzYV9pcnFfbGV2ZWwoZCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUg aW50IHhzbV9odm1fc2V0X3BjaV9saW5rX3JvdXRlICh4c21fZGVmYXVsdF90IGRlZiwgc3RydWN0 IGRvbWFpbiAqZCkKLXsKLSAgICByZXR1cm4geHNtX29wcy0+aHZtX3NldF9wY2lfbGlua19yb3V0 ZShkKTsKLX0KLQogc3RhdGljIGlubGluZSBpbnQgeHNtX2h2bV9pbmplY3RfbXNpICh4c21fZGVm YXVsdF90IGRlZiwgc3RydWN0IGRvbWFpbiAqZCkKIHsKICAgICByZXR1cm4geHNtX29wcy0+aHZt X2luamVjdF9tc2koZCk7CmRpZmYgLS1naXQgYS94ZW4veHNtL2R1bW15LmMgYi94ZW4veHNtL2R1 bW15LmMKaW5kZXggZDU0NGVjMS4uZjE1NjhkZCAxMDA2NDQKLS0tIGEveGVuL3hzbS9kdW1teS5j CisrKyBiL3hlbi94c20vZHVtbXkuYwpAQCAtMTQ1LDkgKzE0NSw2IEBAIHZvaWQgX19pbml0IHhz bV9maXh1cF9vcHMgKHN0cnVjdCB4c21fb3BlcmF0aW9ucyAqb3BzKQogI2lmZGVmIENPTkZJR19Y ODYKICAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGRvX21jYSk7CiAgICAgc2V0X3RvX2R1 bW15X2lmX251bGwob3BzLCBzaGFkb3dfY29udHJvbCk7Ci0gICAgc2V0X3RvX2R1bW15X2lmX251 bGwob3BzLCBodm1fc2V0X3BjaV9pbnR4X2xldmVsKTsKLSAgICBzZXRfdG9fZHVtbXlfaWZfbnVs bChvcHMsIGh2bV9zZXRfaXNhX2lycV9sZXZlbCk7Ci0gICAgc2V0X3RvX2R1bW15X2lmX251bGwo b3BzLCBodm1fc2V0X3BjaV9saW5rX3JvdXRlKTsKICAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChv cHMsIGh2bV9pbmplY3RfbXNpKTsKICAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIG1lbV9z aGFyaW5nX29wKTsKICAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGFwaWMpOwpkaWZmIC0t Z2l0IGEveGVuL3hzbS9mbGFzay9ob29rcy5jIGIveGVuL3hzbS9mbGFzay9ob29rcy5jCmluZGV4 IDc5NzI1NDYuLjA4OGFhODcgMTAwNjQ0Ci0tLSBhL3hlbi94c20vZmxhc2svaG9va3MuYworKysg Yi94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKQEAgLTE0OTksMjEgKzE0OTksNiBAQCBzdGF0aWMgaW50 IGZsYXNrX2lvcG9ydF9tYXBwaW5nKHN0cnVjdCBkb21haW4gKmQsIHVpbnQzMl90IHN0YXJ0LCB1 aW50MzJfdCBlbmQsCiAgICAgcmV0dXJuIGZsYXNrX2lvcG9ydF9wZXJtaXNzaW9uKGQsIHN0YXJ0 LCBlbmQsIGFjY2Vzcyk7CiB9CiAKLXN0YXRpYyBpbnQgZmxhc2tfaHZtX3NldF9wY2lfaW50eF9s ZXZlbChzdHJ1Y3QgZG9tYWluICpkKQotewotICAgIHJldHVybiBjdXJyZW50X2hhc19wZXJtKGQs IFNFQ0NMQVNTX0hWTSwgSFZNX19QQ0lMRVZFTCk7Ci19Ci0KLXN0YXRpYyBpbnQgZmxhc2tfaHZt X3NldF9pc2FfaXJxX2xldmVsKHN0cnVjdCBkb21haW4gKmQpCi17Ci0gICAgcmV0dXJuIGN1cnJl bnRfaGFzX3Blcm0oZCwgU0VDQ0xBU1NfSFZNLCBIVk1fX0lSUUxFVkVMKTsKLX0KLQotc3RhdGlj IGludCBmbGFza19odm1fc2V0X3BjaV9saW5rX3JvdXRlKHN0cnVjdCBkb21haW4gKmQpCi17Ci0g ICAgcmV0dXJuIGN1cnJlbnRfaGFzX3Blcm0oZCwgU0VDQ0xBU1NfSFZNLCBIVk1fX1BDSVJPVVRF KTsKLX0KLQogc3RhdGljIGludCBmbGFza19odm1faW5qZWN0X21zaShzdHJ1Y3QgZG9tYWluICpk KQogewogICAgIHJldHVybiBjdXJyZW50X2hhc19wZXJtKGQsIFNFQ0NMQVNTX0hWTSwgSFZNX19T RU5EX0lSUSk7CmRpZmYgLS1naXQgYS94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9y cyBiL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzCmluZGV4IDVhZjQyN2YuLjcw OGNmZTYgMTAwNjQ0Ci0tLSBhL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzCisr KyBiL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzCkBAIC0yNTcsMTIgKzI1Nyw2 IEBAIGNsYXNzIGh2bQogICAgIHNldHBhcmFtCiAjIEhWTU9QX2dldF9wYXJhbQogICAgIGdldHBh cmFtCi0jIEhWTU9QX3NldF9wY2lfaW50eF9sZXZlbCAoYWxzbyBuZWVkcyBodm1jdGwpCi0gICAg cGNpbGV2ZWwKLSMgSFZNT1Bfc2V0X2lzYV9pcnFfbGV2ZWwKLSAgICBpcnFsZXZlbAotIyBIVk1P UF9zZXRfcGNpX2xpbmtfcm91dGUKLSAgICBwY2lyb3V0ZQogICAgIGJpbmRfaXJxCiAjIFhFTl9E T01DVExfcGluX21lbV9jYWNoZWF0dHIKICAgICBjYWNoZWF0dHIKLS0gCjIuMS40CgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxp bmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVu LWRldmVsCg==