From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH 2/2] amd-iommu: use a bitfield for DTE Date: Mon, 4 Feb 2019 11:19:54 +0000 Message-ID: <20190204111954.11312-3-paul.durrant@citrix.com> References: <20190204111954.11312-1-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gqcIO-0003da-6M for xen-devel@lists.xenproject.org; Mon, 04 Feb 2019 11:20:12 +0000 In-Reply-To: <20190204111954.11312-1-paul.durrant@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Wei Liu , Suravee Suthikulpanit , Andrew Cooper , Paul Durrant , Jan Beulich , Brian Woods , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org VGhlIGN1cnJlbnQgdXNlIG9mIGdldC9zZXRfZmllbGRfZnJvbS9pbl9yZWdfdTMyKCkgaXMgYm90 aCBpbmVmZmljaWVudCBhbmQKcmVxdWlyZXMgc29tZSB1Z2x5IGNhc3RpbmcuCgpUaGlzIHBhdGNo IGRlZmluZXMgYSBuZXcgYml0ZmllbGQgc3RydWN0dXJlIChhbWRfaW9tbXVfZHRlKSBhbmQgdXNl cyB0aGlzCnN0cnVjdHVyZSBpbiBhbGwgRFRFIG1hbmlwdWxhdGlvbiwgcmVzdWx0aW5nIGluIG11 Y2ggbW9yZSByZWFkYWJsZSBhbmQKY29tcGFjdCBjb2RlLgoKTk9URTogVGhpcyBwYXRjaCBhbHNv IGluY2x1ZGVzIHNvbWUgY2xlYW4tdXAgb2YgZ2V0X2RtYV9yZXF1ZXN0b3JfaWQoKSB0bwogICAg ICBjaGFuZ2UgdGhlIHR5cGVzIG9mIHRoZSBhcmd1bWVudHMgZnJvbSB1MTYgdG8gdWludDE2X3Qu CgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgot LS0KQ2M6IFN1cmF2ZWUgU3V0aGlrdWxwYW5pdCA8c3VyYXZlZS5zdXRoaWt1bHBhbml0QGFtZC5j b20+CkNjOiBCcmlhbiBXb29kcyA8YnJpYW4ud29vZHNAYW1kLmNvbT4KQ2M6IEphbiBCZXVsaWNo IDxqYmV1bGljaEBzdXNlLmNvbT4KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNp dHJpeC5jb20+CkNjOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgpDYzogIlJvZ2VyIFBh dSBNb25uw6kiIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC9hbWQvaW9tbXVfZ3Vlc3QuYyAgICAgfCAgNTUgKystLS0KIHhlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2FtZC9pb21tdV9tYXAuYyAgICAgICB8IDE5OSArKysrKy0tLS0tLS0tLS0tLS0KIHhl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMgICB8ICA1MSArKy0tLQog eGVuL2luY2x1ZGUvYXNtLXg4Ni9hbWQtaW9tbXUuaCAgICAgICAgICAgICAgIHwgICA1IC0KIHhl bi9pbmNsdWRlL2FzbS14ODYvaHZtL3N2bS9hbWQtaW9tbXUtZGVmcy5oICB8IDEyMCArKysrKy0t LS0tLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3ZtL2FtZC1pb21tdS1wcm90by5oIHwgIDIw ICstCiA2IGZpbGVzIGNoYW5nZWQsIDEzOSBpbnNlcnRpb25zKCspLCAzMTEgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2d1ZXN0LmMg Yi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfZ3Vlc3QuYwppbmRleCA5NjE3NWJi OWFjLi4zMjhlNzUwOWQ1IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQv aW9tbXVfZ3Vlc3QuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfZ3Vl c3QuYwpAQCAtNzYsMzkgKzc2LDEwIEBAIHN0YXRpYyB2b2lkIGd1ZXN0X2lvbW11X2Rpc2FibGUo c3RydWN0IGd1ZXN0X2lvbW11ICppb21tdSkKICAgICBpb21tdS0+ZW5hYmxlZCA9IDA7CiB9CiAK LXN0YXRpYyB1aW50NjRfdCBnZXRfZ3Vlc3RfY3IzX2Zyb21fZHRlKGRldl9lbnRyeV90ICpkdGUp CitzdGF0aWMgdWludDY0X3QgZ2V0X2d1ZXN0X2NyM19mcm9tX2R0ZShzdHJ1Y3QgYW1kX2lvbW11 X2R0ZSAqZHRlKQogewotICAgIHVpbnQ2NF90IGdjcjNfMSwgZ2NyM18yLCBnY3IzXzM7Ci0KLSAg ICBnY3IzXzEgPSBnZXRfZmllbGRfZnJvbV9yZWdfdTMyKGR0ZS0+ZGF0YVsxXSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX0RFVl9UQUJMRV9HQ1IzXzFfTUFTSywK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX0RFVl9UQUJMRV9HQ1Iz XzFfU0hJRlQpOwotICAgIGdjcjNfMiA9IGdldF9maWVsZF9mcm9tX3JlZ191MzIoZHRlLT5kYXRh WzJdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVfREVWX1RBQkxF X0dDUjNfMl9NQVNLLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVf REVWX1RBQkxFX0dDUjNfMl9TSElGVCk7Ci0gICAgZ2NyM18zID0gZ2V0X2ZpZWxkX2Zyb21fcmVn X3UzMihkdGUtPmRhdGFbM10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ T01NVV9ERVZfVEFCTEVfR0NSM18zX01BU0ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJT01NVV9ERVZfVEFCTEVfR0NSM18zX1NISUZUKTsKLQotICAgIHJldHVybiAoKGdj cjNfMyA8PCAzMSkgfCAoZ2NyM18yIDw8IDE1ICkgfCAoZ2NyM18xIDw8IDEyKSkgPj4gUEFHRV9T SElGVDsKLX0KLQotc3RhdGljIHVpbnQxNl90IGdldF9kb21pZF9mcm9tX2R0ZShkZXZfZW50cnlf dCAqZHRlKQotewotICAgIHJldHVybiBnZXRfZmllbGRfZnJvbV9yZWdfdTMyKGR0ZS0+ZGF0YVsy XSwgSU9NTVVfREVWX1RBQkxFX0RPTUFJTl9JRF9NQVNLLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElPTU1VX0RFVl9UQUJMRV9ET01BSU5fSURfU0hJRlQpOwotfQotCi1zdGF0 aWMgdWludDE2X3QgZ2V0X2dseF9mcm9tX2R0ZShkZXZfZW50cnlfdCAqZHRlKQotewotICAgIHJl dHVybiBnZXRfZmllbGRfZnJvbV9yZWdfdTMyKGR0ZS0+ZGF0YVsxXSwgSU9NTVVfREVWX1RBQkxF X0dMWF9NQVNLLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX0RFVl9U QUJMRV9HTFhfU0hJRlQpOwotfQotCi1zdGF0aWMgdWludDE2X3QgZ2V0X2d2X2Zyb21fZHRlKGRl dl9lbnRyeV90ICpkdGUpCi17Ci0gICAgcmV0dXJuIGdldF9maWVsZF9mcm9tX3JlZ191MzIoZHRl LT5kYXRhWzFdLElPTU1VX0RFVl9UQUJMRV9HVl9NQVNLLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElPTU1VX0RFVl9UQUJMRV9HVl9TSElGVCk7CisgICAgcmV0dXJuICgoZHRl LT5nY3IzX3RycF81MV8zMSA8PCAzMSkgfCAoZHRlLT5nY3IzX3RycF8zMF8xNSA8PCAxNSkgfAor ICAgICAgICAgICAgKGR0ZS0+Z2NyM190cnBfMTRfMTIgPDwgMTIpKSA+PiBQQUdFX1NISUZUOwog fQogCiBzdGF0aWMgdW5zaWduZWQgaW50IGhvc3RfZG9taWQoc3RydWN0IGRvbWFpbiAqZCwgdWlu dDY0X3QgZ19kb21pZCkKQEAgLTM5Nyw3ICszNjgsNyBAQCBzdGF0aWMgaW50IGRvX2NvbXBsZXRp b25fd2FpdChzdHJ1Y3QgZG9tYWluICpkLCBjbWRfZW50cnlfdCAqY21kKQogc3RhdGljIGludCBk b19pbnZhbGlkYXRlX2R0ZShzdHJ1Y3QgZG9tYWluICpkLCBjbWRfZW50cnlfdCAqY21kKQogewog ICAgIHVpbnQxNl90IGdiZGYsIG1iZGYsIHJlcV9pZCwgZ2RvbV9pZCwgaGRvbV9pZDsKLSAgICBk ZXZfZW50cnlfdCAqZ2R0ZSwgKm1kdGUsICpkdGVfYmFzZTsKKyAgICBzdHJ1Y3QgYW1kX2lvbW11 X2R0ZSAqZ2R0ZSwgKm1kdGUsICpkdGVfYmFzZTsKICAgICBzdHJ1Y3QgYW1kX2lvbW11ICppb21t dSA9IE5VTEw7CiAgICAgc3RydWN0IGd1ZXN0X2lvbW11ICpnX2lvbW11OwogICAgIHVpbnQ2NF90 IGdjcjNfZ2ZuLCBnY3IzX21mbjsKQEAgLTQxNCwyMyArMzg1LDIzIEBAIHN0YXRpYyBpbnQgZG9f aW52YWxpZGF0ZV9kdGUoc3RydWN0IGRvbWFpbiAqZCwgY21kX2VudHJ5X3QgKmNtZCkKICAgICAg ICAgcmV0dXJuIDA7CiAKICAgICAvKiBTb21ldGltZXMgZ3Vlc3QgaW52YWxpZGF0ZXMgZGV2aWNl cyBmcm9tIG5vbi1leGlzdHMgZHRlcyAqLwotICAgIGlmICggKGdiZGYgKiBzaXplb2YoZGV2X2Vu dHJ5X3QpKSA+IGdfaW9tbXUtPmRldl90YWJsZS5zaXplICkKKyAgICBpZiAoIChnYmRmICogc2l6 ZW9mKHN0cnVjdCBhbWRfaW9tbXVfZHRlKSkgPiBnX2lvbW11LT5kZXZfdGFibGUuc2l6ZSApCiAg ICAgICAgIHJldHVybiAwOwogCiAgICAgZHRlX21mbiA9IGd1ZXN0X2lvbW11X2dldF90YWJsZV9t Zm4oZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdfdG9fdTY0 KGdfaW9tbXUtPmRldl90YWJsZS5yZWdfYmFzZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2l6ZW9mKGRldl9lbnRyeV90KSwgZ2JkZik7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBhbWRfaW9tbXVfZHRlKSwg Z2JkZik7CiAgICAgQVNTRVJUKG1mbl92YWxpZChfbWZuKGR0ZV9tZm4pKSk7CiAKICAgICAvKiBS ZWFkIGd1ZXN0IGR0ZSBpbmZvcm1hdGlvbiAqLwogICAgIGR0ZV9iYXNlID0gbWFwX2RvbWFpbl9w YWdlKF9tZm4oZHRlX21mbikpOwogCi0gICAgZ2R0ZSA9IGR0ZV9iYXNlICsgZ2JkZiAlIChQQUdF X1NJWkUgLyBzaXplb2YoZGV2X2VudHJ5X3QpKTsKKyAgICBnZHRlID0gJmR0ZV9iYXNlW2diZGYg JSAoUEFHRV9TSVpFIC8gc2l6ZW9mKHN0cnVjdCBhbWRfaW9tbXVfZHRlKSldOwogCi0gICAgZ2Rv bV9pZCAgPSBnZXRfZG9taWRfZnJvbV9kdGUoZ2R0ZSk7CisgICAgZ2RvbV9pZCA9IGdkdGUtPmRv bWFpbl9pZDsKICAgICBnY3IzX2dmbiA9IGdldF9ndWVzdF9jcjNfZnJvbV9kdGUoZ2R0ZSk7Ci0g ICAgZ2x4ICAgICAgPSBnZXRfZ2x4X2Zyb21fZHRlKGdkdGUpOwotICAgIGd2ICAgICAgID0gZ2V0 X2d2X2Zyb21fZHRlKGdkdGUpOworICAgIGdseCA9IGdkdGUtPmdseDsKKyAgICBndiA9IGdkdGUt Pmd2OwogCiAgICAgdW5tYXBfZG9tYWluX3BhZ2UoZHRlX2Jhc2UpOwogCkBAIC00NTQsMTEgKzQy NSwxMSBAQCBzdGF0aWMgaW50IGRvX2ludmFsaWRhdGVfZHRlKHN0cnVjdCBkb21haW4gKmQsIGNt ZF9lbnRyeV90ICpjbWQpCiAgICAgLyogU2V0dXAgaG9zdCBkZXZpY2UgZW50cnkgKi8KICAgICBo ZG9tX2lkID0gaG9zdF9kb21pZChkLCBnZG9tX2lkKTsKICAgICByZXFfaWQgPSBnZXRfZG1hX3Jl cXVlc3Rvcl9pZChpb21tdS0+c2VnLCBtYmRmKTsKLSAgICBtZHRlID0gaW9tbXUtPmRldl90YWJs ZS5idWZmZXIgKyAocmVxX2lkICogc2l6ZW9mKGRldl9lbnRyeV90KSk7CisgICAgZHRlX2Jhc2Ug PSBpb21tdS0+ZGV2X3RhYmxlLmJ1ZmZlcjsKKyAgICBtZHRlID0gJmR0ZV9iYXNlW3JlcV9pZF07 CiAKICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmaW9tbXUtPmxvY2ssIGZsYWdzKTsKLSAgICBpb21t dV9kdGVfc2V0X2d1ZXN0X2NyMygodTMyICopbWR0ZSwgaGRvbV9pZCwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBnY3IzX21mbiA8PCBQQUdFX1NISUZULCBndiwgZ2x4KTsKKyAgICBpb21t dV9kdGVfc2V0X2d1ZXN0X2NyMyhtZHRlLCBoZG9tX2lkLCBnY3IzX21mbiwgZ3YsIGdseCk7CiAK ICAgICBhbWRfaW9tbXVfZmx1c2hfZGV2aWNlKGlvbW11LCByZXFfaWQpOwogICAgIHNwaW5fdW5s b2NrX2lycXJlc3RvcmUoJmlvbW11LT5sb2NrLCBmbGFncyk7CmRpZmYgLS1naXQgYS94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfbWFwLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC9hbWQvaW9tbXVfbWFwLmMKaW5kZXggNWZkYTYwNjNkZi4uY2JmMDBlOWU3MiAxMDA2NDQKLS0t IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X21hcC5jCisrKyBiL3hlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9tYXAuYwpAQCAtOTksMTY3ICs5OSw2NCBAQCBzdGF0 aWMgdW5zaWduZWQgaW50IHNldF9pb21tdV9wdGVfcHJlc2VudCh1bnNpZ25lZCBsb25nIHB0X21m biwKICAgICByZXR1cm4gZmx1c2hfZmxhZ3M7CiB9CiAKLXZvaWQgYW1kX2lvbW11X3NldF9yb290 X3BhZ2VfdGFibGUodWludDMyX3QgKmR0ZSwgdWludDY0X3Qgcm9vdF9wdHIsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQxNl90IGRvbWFpbl9pZCwgdWludDhfdCBwYWdp bmdfbW9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCB2YWxp ZCkKK3ZvaWQgYW1kX2lvbW11X3NldF9yb290X3BhZ2VfdGFibGUoc3RydWN0IGFtZF9pb21tdV9k dGUgKmR0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3Qgcm9v dF9wdHIsIHVpbnQxNl90IGRvbWFpbl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdWludDhfdCBwYWdpbmdfbW9kZSwgdWludDhfdCB2YWxpZCkKIHsKLSAgICB1aW50MzJf dCBhZGRyX2hpLCBhZGRyX2xvLCBlbnRyeTsKLSAgICBzZXRfZmllbGRfaW5fcmVnX3UzMihkb21h aW5faWQsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVfREVWX1RBQkxFX0RPTUFJ Tl9JRF9NQVNLLAotICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX0RFVl9UQUJMRV9ET01B SU5fSURfU0hJRlQsICZlbnRyeSk7Ci0gICAgZHRlWzJdID0gZW50cnk7Ci0KLSAgICBhZGRyX2xv ID0gcm9vdF9wdHIgJiBETUFfMzJCSVRfTUFTSzsKLSAgICBhZGRyX2hpID0gcm9vdF9wdHIgPj4g MzI7Ci0KLSAgICBzZXRfZmllbGRfaW5fcmVnX3UzMihhZGRyX2hpLCAwLAotICAgICAgICAgICAg ICAgICAgICAgICAgIElPTU1VX0RFVl9UQUJMRV9QQUdFX1RBQkxFX1BUUl9ISUdIX01BU0ssCi0g ICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVfREVWX1RBQkxFX1BBR0VfVEFCTEVfUFRSX0hJ R0hfU0hJRlQsICZlbnRyeSk7Ci0gICAgc2V0X2ZpZWxkX2luX3JlZ191MzIoSU9NTVVfQ09OVFJP TF9FTkFCTEVELCBlbnRyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVV9ERVZfVEFC TEVfSU9fV1JJVEVfUEVSTUlTU0lPTl9NQVNLLAotICAgICAgICAgICAgICAgICAgICAgICAgIElP TU1VX0RFVl9UQUJMRV9JT19XUklURV9QRVJNSVNTSU9OX1NISUZULCAmZW50cnkpOwotICAgIHNl dF9maWVsZF9pbl9yZWdfdTMyKElPTU1VX0NPTlRST0xfRU5BQkxFRCwgZW50cnksCi0gICAgICAg ICAgICAgICAgICAgICAgICAgSU9NTVVfREVWX1RBQkxFX0lPX1JFQURfUEVSTUlTU0lPTl9NQVNL LAotICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX0RFVl9UQUJMRV9JT19SRUFEX1BFUk1J U1NJT05fU0hJRlQsICZlbnRyeSk7Ci0gICAgZHRlWzFdID0gZW50cnk7Ci0KLSAgICBzZXRfZmll bGRfaW5fcmVnX3UzMihhZGRyX2xvID4+IFBBR0VfU0hJRlQsIDAsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgSU9NTVVfREVWX1RBQkxFX1BBR0VfVEFCTEVfUFRSX0xPV19NQVNLLAotICAgICAg ICAgICAgICAgICAgICAgICAgIElPTU1VX0RFVl9UQUJMRV9QQUdFX1RBQkxFX1BUUl9MT1dfU0hJ RlQsICZlbnRyeSk7Ci0gICAgc2V0X2ZpZWxkX2luX3JlZ191MzIocGFnaW5nX21vZGUsIGVudHJ5 LAotICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX0RFVl9UQUJMRV9QQUdJTkdfTU9ERV9N QVNLLAotICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX0RFVl9UQUJMRV9QQUdJTkdfTU9E RV9TSElGVCwgJmVudHJ5KTsKLSAgICBzZXRfZmllbGRfaW5fcmVnX3UzMihJT01NVV9DT05UUk9M X0VOQUJMRUQsIGVudHJ5LAotICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX0RFVl9UQUJM RV9UUkFOU0xBVElPTl9WQUxJRF9NQVNLLAotICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1V X0RFVl9UQUJMRV9UUkFOU0xBVElPTl9WQUxJRF9TSElGVCwgJmVudHJ5KTsKLSAgICBzZXRfZmll bGRfaW5fcmVnX3UzMih2YWxpZCA/IElPTU1VX0NPTlRST0xfRU5BQkxFRCA6Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgSU9NTVVfQ09OVFJPTF9ESVNBQkxFRCwgZW50cnksCi0gICAgICAgICAg ICAgICAgICAgICAgICAgSU9NTVVfREVWX1RBQkxFX1ZBTElEX01BU0ssCi0gICAgICAgICAgICAg ICAgICAgICAgICAgSU9NTVVfREVWX1RBQkxFX1ZBTElEX1NISUZULCAmZW50cnkpOwotICAgIGR0 ZVswXSA9IGVudHJ5OwotfQotCi12b2lkIGlvbW11X2R0ZV9zZXRfaW90bGIodWludDMyX3QgKmR0 ZSwgdWludDhfdCBpKQotewotICAgIHVpbnQzMl90IGVudHJ5OwotCi0gICAgZW50cnkgPSBkdGVb M107Ci0gICAgc2V0X2ZpZWxkX2luX3JlZ191MzIoISFpLCBlbnRyeSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICBJT01NVV9ERVZfVEFCTEVfSU9UTEJfU1VQUE9SVF9NQVNLLAotICAgICAgICAg ICAgICAgICAgICAgICAgIElPTU1VX0RFVl9UQUJMRV9JT1RMQl9TVVBQT1JUX1NISUZULCAmZW50 cnkpOwotICAgIGR0ZVszXSA9IGVudHJ5OworICAgIGR0ZS0+ZG9tYWluX2lkID0gZG9tYWluX2lk OworICAgIGR0ZS0+cHRfcm9vdCA9IHBhZGRyX3RvX3Bmbihyb290X3B0cik7CisgICAgZHRlLT5p dyA9IDE7CisgICAgZHRlLT5pciA9IDE7CisgICAgZHRlLT5wYWdpbmdfbW9kZSA9IHBhZ2luZ19t b2RlOworICAgIGR0ZS0+dHYgPSAxOworICAgIGR0ZS0+diA9IHZhbGlkOwogfQogCiB2b2lkIF9f aW5pdCBhbWRfaW9tbXVfc2V0X2ludHJlbWFwX3RhYmxlKAotICAgIHVpbnQzMl90ICpkdGUsIHVp bnQ2NF90IGludHJlbWFwX3B0ciwgdWludDhfdCBpbnRfdmFsaWQpCisgICAgc3RydWN0IGFtZF9p b21tdV9kdGUgKmR0ZSwgdWludDY0X3QgaW50cmVtYXBfcHRyLCB1aW50OF90IGludF92YWxpZCkK IHsKLSAgICB1aW50MzJfdCBhZGRyX2hpLCBhZGRyX2xvLCBlbnRyeTsKLQotICAgIGFkZHJfbG8g PSBpbnRyZW1hcF9wdHIgJiBETUFfMzJCSVRfTUFTSzsKLSAgICBhZGRyX2hpID0gaW50cmVtYXBf cHRyID4+IDMyOwotCi0gICAgZW50cnkgPSBkdGVbNV07Ci0gICAgc2V0X2ZpZWxkX2luX3JlZ191 MzIoYWRkcl9oaSwgZW50cnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVfREVWX1RB QkxFX0lOVF9UQUJMRV9QVFJfSElHSF9NQVNLLAotICAgICAgICAgICAgICAgICAgICAgICAgIElP TU1VX0RFVl9UQUJMRV9JTlRfVEFCTEVfUFRSX0hJR0hfU0hJRlQsICZlbnRyeSk7Ci0gICAgLyog Rml4ZWQgYW5kIGFyYml0cmF0ZWQgaW50ZXJydXB0cyByZW1hcGVwZCAqLwotICAgIHNldF9maWVs ZF9pbl9yZWdfdTMyKDIsIGVudHJ5LAotICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX0RF Vl9UQUJMRV9JTlRfQ09OVFJPTF9NQVNLLAotICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1V X0RFVl9UQUJMRV9JTlRfQ09OVFJPTF9TSElGVCwgJmVudHJ5KTsKLSAgICBkdGVbNV0gPSBlbnRy eTsKLQotICAgIHNldF9maWVsZF9pbl9yZWdfdTMyKGFkZHJfbG8gPj4gNiwgMCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICBJT01NVV9ERVZfVEFCTEVfSU5UX1RBQkxFX1BUUl9MT1dfTUFTSywK LSAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVV9ERVZfVEFCTEVfSU5UX1RBQkxFX1BUUl9M T1dfU0hJRlQsICZlbnRyeSk7Ci0gICAgLyogMjA0OCBlbnRyaWVzICovCi0gICAgc2V0X2ZpZWxk X2luX3JlZ191MzIoMHhCLCBlbnRyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVV9E RVZfVEFCTEVfSU5UX1RBQkxFX0xFTkdUSF9NQVNLLAotICAgICAgICAgICAgICAgICAgICAgICAg IElPTU1VX0RFVl9UQUJMRV9JTlRfVEFCTEVfTEVOR1RIX1NISUZULCAmZW50cnkpOwotCi0gICAg LyogdW5tYXBwZWQgaW50ZXJydXB0IHJlc3VsdHMgaW8gcGFnZSBmYXVsdHMqLwotICAgIHNldF9m aWVsZF9pbl9yZWdfdTMyKElPTU1VX0NPTlRST0xfRElTQUJMRUQsIGVudHJ5LAotICAgICAgICAg ICAgICAgICAgICAgICAgIElPTU1VX0RFVl9UQUJMRV9JTlRfVEFCTEVfSUdOX1VOTUFQUEVEX01B U0ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVfREVWX1RBQkxFX0lOVF9UQUJMRV9J R05fVU5NQVBQRURfU0hJRlQsICZlbnRyeSk7Ci0gICAgc2V0X2ZpZWxkX2luX3JlZ191MzIoaW50 X3ZhbGlkID8gSU9NTVVfQ09OVFJPTF9FTkFCTEVEIDoKLSAgICAgICAgICAgICAgICAgICAgICAg ICBJT01NVV9DT05UUk9MX0RJU0FCTEVELCBlbnRyeSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICBJT01NVV9ERVZfVEFCTEVfSU5UX1ZBTElEX01BU0ssCi0gICAgICAgICAgICAgICAgICAgICAg ICAgSU9NTVVfREVWX1RBQkxFX0lOVF9WQUxJRF9TSElGVCwgJmVudHJ5KTsKLSAgICBkdGVbNF0g PSBlbnRyeTsKKyAgICBkdGUtPml0X3Jvb3QgPSBpbnRyZW1hcF9wdHIgPj4gNjsKKyAgICBkdGUt PmludF90YWJfbGVuID0gMHhiOyAvKiAyMDQ4IGVudHJpZXMgKi8KKyAgICBkdGUtPmludF9jdGwg PSAyOyAvKiBmaXhlZCBhbmQgYXJiaXRyYXRlZCBpbnRlcnJ1cHRzIHJlbWFwcGVkICovCisgICAg ZHRlLT5pZyA9IDA7IC8qIHVubWFwcGVkIGludGVycnVwdCByZXN1bHRzIGlvIHBhZ2UgZmF1bHRz ICovCisgICAgZHRlLT5pdiA9IGludF92YWxpZDsKIH0KIAotdm9pZCBfX2luaXQgaW9tbXVfZHRl X2FkZF9kZXZpY2VfZW50cnkodWludDMyX3QgKmR0ZSwKK3ZvaWQgX19pbml0IGlvbW11X2R0ZV9h ZGRfZGV2aWNlX2VudHJ5KHN0cnVjdCBhbWRfaW9tbXVfZHRlICpkdGUsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXZyc19tYXBwaW5ncyAqaXZyc19kZXYp CiB7Ci0gICAgdWludDMyX3QgZW50cnk7Ci0gICAgdWludDhfdCBzeXNfbWd0LCBkZXZfZXgsIGZs YWdzOwotICAgIHVpbnQ4X3QgbWFzayA9IH4oMHg3IDw8IDMpOwotCi0gICAgZHRlWzddID0gZHRl WzZdID0gZHRlWzRdID0gZHRlWzJdID0gZHRlWzFdID0gZHRlWzBdID0gMDsKLQotICAgIGZsYWdz ID0gaXZyc19kZXYtPmRldmljZV9mbGFnczsKLSAgICBzeXNfbWd0ID0gTUFTS19FWFRSKGZsYWdz LCBBQ1BJX0lWSERfU1lTVEVNX01HTVQpOwotICAgIGRldl9leCA9IGl2cnNfZGV2LT5kdGVfYWxs b3dfZXhjbHVzaW9uOwotCi0gICAgZmxhZ3MgJj0gbWFzazsKLSAgICBzZXRfZmllbGRfaW5fcmVn X3UzMihmbGFncywgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVV9ERVZfVEFCTEVf SVZIRF9GTEFHU19NQVNLLAotICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX0RFVl9UQUJM RV9JVkhEX0ZMQUdTX1NISUZULCAmZW50cnkpOwotICAgIGR0ZVs1XSA9IGVudHJ5OwotCi0gICAg c2V0X2ZpZWxkX2luX3JlZ191MzIoc3lzX21ndCwgMCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICBJT01NVV9ERVZfVEFCTEVfU1lTX01HVF9NU0dfRU5BQkxFX01BU0ssCi0gICAgICAgICAgICAg ICAgICAgICAgICAgSU9NTVVfREVWX1RBQkxFX1NZU19NR1RfTVNHX0VOQUJMRV9TSElGVCwgJmVu dHJ5KTsKLSAgICBzZXRfZmllbGRfaW5fcmVnX3UzMihkZXZfZXgsIGVudHJ5LAotICAgICAgICAg ICAgICAgICAgICAgICAgIElPTU1VX0RFVl9UQUJMRV9BTExPV19FWENMVVNJT05fTUFTSywKLSAg ICAgICAgICAgICAgICAgICAgICAgICBJT01NVV9ERVZfVEFCTEVfQUxMT1dfRVhDTFVTSU9OX1NI SUZULCAmZW50cnkpOwotICAgIGR0ZVszXSA9IGVudHJ5OworICAgIHVpbnQ4X3QgZmxhZ3MgPSBp dnJzX2Rldi0+ZGV2aWNlX2ZsYWdzOworCisgICAgbWVtc2V0KGR0ZSwgMCwgc2l6ZW9mKCpkdGUp KTsKKworICAgIGR0ZS0+aW5pdF9wYXNzID0gTUFTS19FWFRSKGZsYWdzLCBBQ1BJX0lWSERfSU5J VF9QQVNTKTsKKyAgICBkdGUtPmV4dF9pbnRfcGFzcyA9IE1BU0tfRVhUUihmbGFncywgQUNQSV9J VkhEX0VJTlRfUEFTUyk7CisgICAgZHRlLT5ubWlfcGFzcyA9IE1BU0tfRVhUUihmbGFncywgQUNQ SV9JVkhEX05NSV9QQVNTKTsKKyAgICBkdGUtPmxpbnQwX3Bhc3MgPSBNQVNLX0VYVFIoZmxhZ3Ms IEFDUElfSVZIRF9MSU5UMF9QQVNTKTsKKyAgICBkdGUtPmxpbnQxX3Bhc3MgPSBNQVNLX0VYVFIo ZmxhZ3MsIEFDUElfSVZIRF9MSU5UMV9QQVNTKTsKKyAgICBkdGUtPnN5c19tZ3QgPSBNQVNLX0VY VFIoZmxhZ3MsIEFDUElfSVZIRF9TWVNURU1fTUdNVCk7CisgICAgZHRlLT5leCA9IGl2cnNfZGV2 LT5kdGVfYWxsb3dfZXhjbHVzaW9uOwogfQogCi12b2lkIGlvbW11X2R0ZV9zZXRfZ3Vlc3RfY3Iz KHVpbnQzMl90ICpkdGUsIHVpbnQxNl90IGRvbV9pZCwgdWludDY0X3QgZ2NyMywKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW50IGd2LCB1bnNpZ25lZCBpbnQgZ2x4KQordm9pZCBpb21t dV9kdGVfc2V0X2d1ZXN0X2NyMyhzdHJ1Y3QgYW1kX2lvbW11X2R0ZSAqZHRlLCB1aW50MTZfdCBk b21faWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGdjcjNfbWZuLCB1 aW50OF90IGd2LCB1aW50OF90IGdseCkKIHsKLSAgICB1aW50MzJfdCBlbnRyeSwgZ2NyM18xLCBn Y3IzXzIsIGdjcjNfMzsKLQotICAgIGdjcjNfMyA9IGdjcjMgPj4gMzE7Ci0gICAgZ2NyM18yID0g KGdjcjMgPj4gMTUpICYgMHhGRkZGOwotICAgIGdjcjNfMSA9IChnY3IzID4+IFBBR0VfU0hJRlQp ICYgMHg3OworI2RlZmluZSBHQ1IzX01BU0soaGksIGxvKSAoKCgxdWwgPDwgKChoaSkgKyAxKSkg LSAxKSAmIH4oKDF1bCA8PCAobG8pKSAtIDEpKQorI2RlZmluZSBHQ1IzX1NISUZUKGxvKSAoKGxv KSAtIFBBR0VfU0hJRlQpCiAKICAgICAvKiBJIGJpdCBtdXN0IGJlIHNldCB3aGVuIGdjcjMgaXMg ZW5hYmxlZCAqLwotICAgIGVudHJ5ID0gZHRlWzNdOwotICAgIHNldF9maWVsZF9pbl9yZWdfdTMy KElPTU1VX0NPTlRST0xfRU5BQkxFRCwgZW50cnksCi0gICAgICAgICAgICAgICAgICAgICAgICAg SU9NTVVfREVWX1RBQkxFX0lPVExCX1NVUFBPUlRfTUFTSywKLSAgICAgICAgICAgICAgICAgICAg ICAgICBJT01NVV9ERVZfVEFCTEVfSU9UTEJfU1VQUE9SVF9TSElGVCwgJmVudHJ5KTsKLSAgICAv KiB1cGRhdGUgZ2NyMyAqLwotICAgIHNldF9maWVsZF9pbl9yZWdfdTMyKGdjcjNfMywgZW50cnks Ci0gICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVfREVWX1RBQkxFX0dDUjNfM19NQVNLLAot ICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX0RFVl9UQUJMRV9HQ1IzXzNfU0hJRlQsICZl bnRyeSk7Ci0gICAgZHRlWzNdID0gZW50cnk7Ci0KLSAgICBzZXRfZmllbGRfaW5fcmVnX3UzMihk b21faWQsIGVudHJ5LAotICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX0RFVl9UQUJMRV9E T01BSU5fSURfTUFTSywKLSAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVV9ERVZfVEFCTEVf RE9NQUlOX0lEX1NISUZULCAmZW50cnkpOwotICAgIC8qIHVwZGF0ZSBnY3IzICovCi0gICAgZW50 cnkgPSBkdGVbMl07Ci0gICAgc2V0X2ZpZWxkX2luX3JlZ191MzIoZ2NyM18yLCBlbnRyeSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICBJT01NVV9ERVZfVEFCTEVfR0NSM18yX01BU0ssCi0gICAg ICAgICAgICAgICAgICAgICAgICAgSU9NTVVfREVWX1RBQkxFX0dDUjNfMl9TSElGVCwgJmVudHJ5 KTsKLSAgICBkdGVbMl0gPSBlbnRyeTsKLQotICAgIGVudHJ5ID0gZHRlWzFdOwotICAgIC8qIEVu YWJsZSBHViBiaXQgKi8KLSAgICBzZXRfZmllbGRfaW5fcmVnX3UzMighIWd2LCBlbnRyeSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICBJT01NVV9ERVZfVEFCTEVfR1ZfTUFTSywKLSAgICAgICAg ICAgICAgICAgICAgICAgICBJT01NVV9ERVZfVEFCTEVfR1ZfU0hJRlQsICZlbnRyeSk7Ci0KLSAg ICAvKiAxIGxldmVsIGd1ZXN0IGNyMyB0YWJsZSAgKi8KLSAgICBzZXRfZmllbGRfaW5fcmVnX3Uz MihnbHgsIGVudHJ5LAotICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX0RFVl9UQUJMRV9H TFhfTUFTSywKLSAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVV9ERVZfVEFCTEVfR0xYX1NI SUZULCAmZW50cnkpOwotICAgIC8qIHVwZGF0ZSBnY3IzICovCi0gICAgc2V0X2ZpZWxkX2luX3Jl Z191MzIoZ2NyM18xLCBlbnRyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVV9ERVZf VEFCTEVfR0NSM18xX01BU0ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVfREVWX1RB QkxFX0dDUjNfMV9TSElGVCwgJmVudHJ5KTsKLSAgICBkdGVbMV0gPSBlbnRyeTsKKyAgICBkdGUt PmkgPSAxOworCisgICAgZHRlLT5nY3IzX3RycF8xNF8xMiA9IChnY3IzX21mbiAmIEdDUjNfTUFT SygxNCwgMTIpKSA+PiBHQ1IzX1NISUZUKDEyKTsKKyAgICBkdGUtPmdjcjNfdHJwXzMwXzE1ID0g KGdjcjNfbWZuICYgR0NSM19NQVNLKDMwLCAxNSkpID4+IEdDUjNfU0hJRlQoMTUpOworICAgIGR0 ZS0+Z2NyM190cnBfNTFfMzEgPSAoZ2NyM19tZm4gJiBHQ1IzX01BU0soNTEsIDMxKSkgPj4gR0NS M19TSElGVCgzMSk7CisKKyAgICBkdGUtPmRvbWFpbl9pZCA9IGRvbV9pZDsKKyAgICBkdGUtPmds eCA9IGdseDsKKyAgICBkdGUtPmd2ID0gZ3Y7CisKKyN1bmRlZiBHQ1IzX1NISUZUCisjdW5kZWYg R0NSM19NQVNLCiB9CiAKIC8qIFdhbGsgaW8gcGFnZSB0YWJsZXMgYW5kIGJ1aWxkIGxldmVsIHBh Z2UgdGFibGVzIGlmIG5lY2Vzc2FyeQpAQCAtMzY5LDcgKzI2Niw3IEBAIHN0YXRpYyBpbnQgaW9t bXVfcGRlX2Zyb21fZGZuKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZGZuLAogc3Rh dGljIGludCB1cGRhdGVfcGFnaW5nX21vZGUoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9u ZyBkZm4pCiB7CiAgICAgdWludDE2X3QgYmRmOwotICAgIHZvaWQgKmRldmljZV9lbnRyeTsKKyAg ICBzdHJ1Y3QgYW1kX2lvbW11X2R0ZSAqdGFibGUsICpkdGU7CiAgICAgdW5zaWduZWQgaW50IHJl cV9pZCwgbGV2ZWwsIG9mZnNldDsKICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwogICAgIHN0cnVj dCBwY2lfZGV2ICpwZGV2OwpAQCAtNDM4LDExICszMzUsMTEgQEAgc3RhdGljIGludCB1cGRhdGVf cGFnaW5nX21vZGUoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBkZm4pCiAgICAgICAg ICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmaW9tbXUtPmxvY2ssIGZsYWdzKTsKICAgICAgICAgICAg IGRvIHsKICAgICAgICAgICAgICAgICByZXFfaWQgPSBnZXRfZG1hX3JlcXVlc3Rvcl9pZChwZGV2 LT5zZWcsIGJkZik7Ci0gICAgICAgICAgICAgICAgZGV2aWNlX2VudHJ5ID0gaW9tbXUtPmRldl90 YWJsZS5idWZmZXIgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXFfaWQgKiBJ T01NVV9ERVZfVEFCTEVfRU5UUllfU0laRSk7CisgICAgICAgICAgICAgICAgdGFibGUgPSBpb21t dS0+ZGV2X3RhYmxlLmJ1ZmZlcjsKKyAgICAgICAgICAgICAgICBkdGUgPSAmdGFibGVbcmVxX2lk XTsKIAogICAgICAgICAgICAgICAgIC8qIHZhbGlkID0gMCBvbmx5IHdvcmtzIGZvciBkb20wIHBh c3N0aHJvdWdoIG1vZGUgKi8KLSAgICAgICAgICAgICAgICBhbWRfaW9tbXVfc2V0X3Jvb3RfcGFn ZV90YWJsZSgodWludDMyX3QgKilkZXZpY2VfZW50cnksCisgICAgICAgICAgICAgICAgYW1kX2lv bW11X3NldF9yb290X3BhZ2VfdGFibGUoZHRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBhZ2VfdG9fbWFkZHIoaGQtPmFyY2gucm9vdF90YWJsZSksCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lk LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhkLT5hcmNo LnBhZ2luZ19tb2RlLCAxKTsKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2Ft ZC9wY2lfYW1kX2lvbW11LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9p b21tdS5jCmluZGV4IGRhNjc0ODMyMGIuLmY2YzE3YmE4N2EgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYwpAQCAtNzEsNyArNzEsNyBAQCBzdHJ1Y3QgYW1k X2lvbW11ICpmaW5kX2lvbW11X2Zvcl9kZXZpY2UoaW50IHNlZywgaW50IGJkZikKICAqIFJldHVy biBvcmlnaW5hbCBkZXZpY2UgaWQsIGlmIGRldmljZSBoYXMgdmFsaWQgaW50ZXJydXB0IHJlbWFw cGluZwogICogdGFibGUgc2V0dXAgZm9yIGJvdGggc2VsZWN0IGVudHJ5IGFuZCBhbGlhcyBlbnRy eS4KICAqLwotaW50IGdldF9kbWFfcmVxdWVzdG9yX2lkKHUxNiBzZWcsIHUxNiBiZGYpCitpbnQg Z2V0X2RtYV9yZXF1ZXN0b3JfaWQodWludDE2X3Qgc2VnLCB1aW50MTZfdCBiZGYpCiB7CiAgICAg c3RydWN0IGl2cnNfbWFwcGluZ3MgKml2cnNfbWFwcGluZ3MgPSBnZXRfaXZyc19tYXBwaW5ncyhz ZWcpOwogICAgIGludCByZXFfaWQ7CkBAIC04NSwzNSArODUsMTEgQEAgaW50IGdldF9kbWFfcmVx dWVzdG9yX2lkKHUxNiBzZWcsIHUxNiBiZGYpCiAgICAgcmV0dXJuIHJlcV9pZDsKIH0KIAotc3Rh dGljIGludCBpc190cmFuc2xhdGlvbl92YWxpZCh1MzIgKmVudHJ5KQotewotICAgIHJldHVybiAo Z2V0X2ZpZWxkX2Zyb21fcmVnX3UzMihlbnRyeVswXSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSU9NTVVfREVWX1RBQkxFX1ZBTElEX01BU0ssCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElPTU1VX0RFVl9UQUJMRV9WQUxJRF9TSElGVCkgJiYKLSAgICAg ICAgICAgIGdldF9maWVsZF9mcm9tX3JlZ191MzIoZW50cnlbMF0sCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElPTU1VX0RFVl9UQUJMRV9UUkFOU0xBVElPTl9WQUxJRF9NQVNL LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVV9ERVZfVEFCTEVfVFJB TlNMQVRJT05fVkFMSURfU0hJRlQpKTsKLX0KLQotc3RhdGljIHZvaWQgZGlzYWJsZV90cmFuc2xh dGlvbih1MzIgKmR0ZSkKLXsKLSAgICB1MzIgZW50cnk7Ci0KLSAgICBlbnRyeSA9IGR0ZVswXTsK LSAgICBzZXRfZmllbGRfaW5fcmVnX3UzMihJT01NVV9DT05UUk9MX0RJU0FCTEVELCBlbnRyeSwK LSAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVV9ERVZfVEFCTEVfVFJBTlNMQVRJT05fVkFM SURfTUFTSywKLSAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVV9ERVZfVEFCTEVfVFJBTlNM QVRJT05fVkFMSURfU0hJRlQsICZlbnRyeSk7Ci0gICAgc2V0X2ZpZWxkX2luX3JlZ191MzIoSU9N TVVfQ09OVFJPTF9ESVNBQkxFRCwgZW50cnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgSU9N TVVfREVWX1RBQkxFX1ZBTElEX01BU0ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVf REVWX1RBQkxFX1ZBTElEX1NISUZULCAmZW50cnkpOwotICAgIGR0ZVswXSA9IGVudHJ5OwotfQot CiBzdGF0aWMgdm9pZCBhbWRfaW9tbXVfc2V0dXBfZG9tYWluX2RldmljZSgKICAgICBzdHJ1Y3Qg ZG9tYWluICpkb21haW4sIHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LAotICAgIHU4IGRldmZuLCBz dHJ1Y3QgcGNpX2RldiAqcGRldikKKyAgICB1aW50OF90IGRldmZuLCBzdHJ1Y3QgcGNpX2RldiAq cGRldikKIHsKLSAgICB2b2lkICpkdGU7CisgICAgc3RydWN0IGFtZF9pb21tdV9kdGUgKnRhYmxl LCAqZHRlOwogICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAgICAgaW50IHJlcV9pZCwgdmFsaWQg PSAxOwogICAgIGludCBkdGVfaSA9IDA7CkBAIC0xMzEsMjAgKzEwNywyMSBAQCBzdGF0aWMgdm9p ZCBhbWRfaW9tbXVfc2V0dXBfZG9tYWluX2RldmljZSgKIAogICAgIC8qIGdldCBkZXZpY2UtdGFi bGUgZW50cnkgKi8KICAgICByZXFfaWQgPSBnZXRfZG1hX3JlcXVlc3Rvcl9pZChpb21tdS0+c2Vn LCBQQ0lfQkRGMihidXMsIGRldmZuKSk7Ci0gICAgZHRlID0gaW9tbXUtPmRldl90YWJsZS5idWZm ZXIgKyAocmVxX2lkICogSU9NTVVfREVWX1RBQkxFX0VOVFJZX1NJWkUpOworICAgIHRhYmxlID0g aW9tbXUtPmRldl90YWJsZS5idWZmZXI7CisgICAgZHRlID0gJnRhYmxlW3JlcV9pZF07CiAKICAg ICBzcGluX2xvY2tfaXJxc2F2ZSgmaW9tbXUtPmxvY2ssIGZsYWdzKTsKIAotICAgIGlmICggIWlz X3RyYW5zbGF0aW9uX3ZhbGlkKCh1MzIgKilkdGUpICkKKyAgICBpZiAoICFkdGUtPnYgfHwgIWR0 ZS0+dHYgKQogICAgIHsKICAgICAgICAgLyogYmluZCBEVEUgdG8gZG9tYWluIHBhZ2UtdGFibGVz ICovCiAgICAgICAgIGFtZF9pb21tdV9zZXRfcm9vdF9wYWdlX3RhYmxlKAotICAgICAgICAgICAg KHUzMiAqKWR0ZSwgcGFnZV90b19tYWRkcihoZC0+YXJjaC5yb290X3RhYmxlKSwgZG9tYWluLT5k b21haW5faWQsCisgICAgICAgICAgICBkdGUsIHBhZ2VfdG9fbWFkZHIoaGQtPmFyY2gucm9vdF90 YWJsZSksIGRvbWFpbi0+ZG9tYWluX2lkLAogICAgICAgICAgICAgaGQtPmFyY2gucGFnaW5nX21v ZGUsIHZhbGlkKTsKIAogICAgICAgICBpZiAoIHBjaV9hdHNfZGV2aWNlKGlvbW11LT5zZWcsIGJ1 cywgcGRldi0+ZGV2Zm4pICYmCiAgICAgICAgICAgICAgaW9tbXVfaGFzX2NhcChpb21tdSwgUENJ X0NBUF9JT1RMQl9TSElGVCkgKQotICAgICAgICAgICAgaW9tbXVfZHRlX3NldF9pb3RsYigodTMy ICopZHRlLCBkdGVfaSk7CisgICAgICAgICAgICBkdGUtPmkgPSBkdGVfaTsKIAogICAgICAgICBh bWRfaW9tbXVfZmx1c2hfZGV2aWNlKGlvbW11LCByZXFfaWQpOwogCkBAIC0yNzIsMjMgKzI0OSwy NSBAQCB2b2lkIGFtZF9pb21tdV9kaXNhYmxlX2RvbWFpbl9kZXZpY2Uoc3RydWN0IGRvbWFpbiAq ZG9tYWluLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBhbWRf aW9tbXUgKmlvbW11LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHU4IGRl dmZuLCBzdHJ1Y3QgcGNpX2RldiAqcGRldikKIHsKLSAgICB2b2lkICpkdGU7CisgICAgc3RydWN0 IGFtZF9pb21tdV9kdGUgKnRhYmxlLCAqZHRlOwogICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAg ICAgaW50IHJlcV9pZDsKICAgICB1OCBidXMgPSBwZGV2LT5idXM7CiAKICAgICBCVUdfT04gKCBp b21tdS0+ZGV2X3RhYmxlLmJ1ZmZlciA9PSBOVUxMICk7CiAgICAgcmVxX2lkID0gZ2V0X2RtYV9y ZXF1ZXN0b3JfaWQoaW9tbXUtPnNlZywgUENJX0JERjIoYnVzLCBkZXZmbikpOwotICAgIGR0ZSA9 IGlvbW11LT5kZXZfdGFibGUuYnVmZmVyICsgKHJlcV9pZCAqIElPTU1VX0RFVl9UQUJMRV9FTlRS WV9TSVpFKTsKKyAgICB0YWJsZSA9IGlvbW11LT5kZXZfdGFibGUuYnVmZmVyOworICAgIGR0ZSA9 ICZ0YWJsZVtyZXFfaWRdOwogCiAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJmlvbW11LT5sb2NrLCBm bGFncyk7Ci0gICAgaWYgKCBpc190cmFuc2xhdGlvbl92YWxpZCgodTMyICopZHRlKSApCisgICAg aWYgKCBkdGUtPnR2ICYmIGR0ZS0+diApCiAgICAgewotICAgICAgICBkaXNhYmxlX3RyYW5zbGF0 aW9uKCh1MzIgKilkdGUpOworICAgICAgICBkdGUtPnR2ID0gMDsKKyAgICAgICAgZHRlLT52ID0g MDsKIAogICAgICAgICBpZiAoIHBjaV9hdHNfZGV2aWNlKGlvbW11LT5zZWcsIGJ1cywgcGRldi0+ ZGV2Zm4pICYmCiAgICAgICAgICAgICAgaW9tbXVfaGFzX2NhcChpb21tdSwgUENJX0NBUF9JT1RM Ql9TSElGVCkgKQotICAgICAgICAgICAgaW9tbXVfZHRlX3NldF9pb3RsYigodTMyICopZHRlLCAw KTsKKyAgICAgICAgICAgIGR0ZS0+aSA9IDA7CiAKICAgICAgICAgYW1kX2lvbW11X2ZsdXNoX2Rl dmljZShpb21tdSwgcmVxX2lkKTsKIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9h bWQtaW9tbXUuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvYW1kLWlvbW11LmgKaW5kZXggMDI3MTVi NDgyYi4uYWQ4ZTRhMzVhMiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9hbWQtaW9t bXUuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2FtZC1pb21tdS5oCkBAIC00NiwxMSArNDYs NiBAQCB0eXBlZGVmIHN0cnVjdCBjbWRfZW50cnkKIHsKICAgICB1aW50MzJfdCBkYXRhWzRdOwog fSBjbWRfZW50cnlfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgZGV2X2VudHJ5Ci17Ci0gICAgdWludDMy X3QgZGF0YVs4XTsKLX0gZGV2X2VudHJ5X3Q7CiAjcHJhZ21hIHBhY2soKQogCiBzdHJ1Y3QgdGFi bGVfc3RydWN0IHsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3N2bS9hbWQt aW9tbXUtZGVmcy5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3ZtL2FtZC1pb21tdS1kZWZz LmgKaW5kZXggYTNhNDlmOTFlYi4uNDBkYTMzYjI3MSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUv YXNtLXg4Ni9odm0vc3ZtL2FtZC1pb21tdS1kZWZzLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4 Ni9odm0vc3ZtL2FtZC1pb21tdS1kZWZzLmgKQEAgLTEwNyw3NCArMTA3LDU4IEBACiAjZGVmaW5l IElPTU1VX0RFVl9UQUJMRV9JTlRfQ09OVFJPTF9GT1JXQVJERUQJMHgxCiAjZGVmaW5lIElPTU1V X0RFVl9UQUJMRV9JTlRfQ09OVFJPTF9UUkFOU0xBVEVECTB4MgogCi0vKiBEZXZpY2VUYWJsZSBF bnRyeVszMTowXSAqLwotI2RlZmluZSBJT01NVV9ERVZfVEFCTEVfVkFMSURfTUFTSwkJCTB4MDAw MDAwMDEKLSNkZWZpbmUgSU9NTVVfREVWX1RBQkxFX1ZBTElEX1NISUZUCQkJMAotI2RlZmluZSBJ T01NVV9ERVZfVEFCTEVfVFJBTlNMQVRJT05fVkFMSURfTUFTSwkJMHgwMDAwMDAwMgotI2RlZmlu ZSBJT01NVV9ERVZfVEFCTEVfVFJBTlNMQVRJT05fVkFMSURfU0hJRlQJCTEKLSNkZWZpbmUgSU9N TVVfREVWX1RBQkxFX1BBR0lOR19NT0RFX01BU0sJCTB4MDAwMDBFMDAKLSNkZWZpbmUgSU9NTVVf REVWX1RBQkxFX1BBR0lOR19NT0RFX1NISUZUCQk5Ci0jZGVmaW5lIElPTU1VX0RFVl9UQUJMRV9Q QUdFX1RBQkxFX1BUUl9MT1dfTUFTSwkJMHhGRkZGRjAwMAotI2RlZmluZSBJT01NVV9ERVZfVEFC TEVfUEFHRV9UQUJMRV9QVFJfTE9XX1NISUZUCTEyCi0KLS8qIERldmljZVRhYmxlIEVudHJ5WzYz OjMyXSAqLwotI2RlZmluZSBJT01NVV9ERVZfVEFCTEVfR1ZfU0hJRlQgICAgICAgICAgICAgICAg ICAgIDIzCi0jZGVmaW5lIElPTU1VX0RFVl9UQUJMRV9HVl9NQVNLICAgICAgICAgICAgICAgICAg ICAgMHg4MDAwMDAKLSNkZWZpbmUgSU9NTVVfREVWX1RBQkxFX0dMWF9TSElGVCAgICAgICAgICAg ICAgICAgICAyNAotI2RlZmluZSBJT01NVV9ERVZfVEFCTEVfR0xYX01BU0sgICAgICAgICAgICAg ICAgICAgIDB4MzAwMDAwMAotI2RlZmluZSBJT01NVV9ERVZfVEFCTEVfR0NSM18xX1NISUZUICAg ICAgICAgICAgICAgIDI2Ci0jZGVmaW5lIElPTU1VX0RFVl9UQUJMRV9HQ1IzXzFfTUFTSyAgICAg ICAgICAgICAgICAgMHgxYzAwMDAwMAotCi0jZGVmaW5lIElPTU1VX0RFVl9UQUJMRV9QQUdFX1RB QkxFX1BUUl9ISUdIX01BU0sJMHgwMDBGRkZGRgotI2RlZmluZSBJT01NVV9ERVZfVEFCTEVfUEFH RV9UQUJMRV9QVFJfSElHSF9TSElGVAkwCi0jZGVmaW5lIElPTU1VX0RFVl9UQUJMRV9JT19SRUFE X1BFUk1JU1NJT05fTUFTSwkJMHgyMDAwMDAwMAotI2RlZmluZSBJT01NVV9ERVZfVEFCTEVfSU9f UkVBRF9QRVJNSVNTSU9OX1NISUZUCTI5Ci0jZGVmaW5lIElPTU1VX0RFVl9UQUJMRV9JT19XUklU RV9QRVJNSVNTSU9OX01BU0sJMHg0MDAwMDAwMAotI2RlZmluZSBJT01NVV9ERVZfVEFCTEVfSU9f V1JJVEVfUEVSTUlTU0lPTl9TSElGVAkzMAotCi0vKiBEZXZpY2VUYWJsZSBFbnRyeVs5NTo2NF0g Ki8KLSNkZWZpbmUgSU9NTVVfREVWX1RBQkxFX0RPTUFJTl9JRF9NQVNLCTB4MDAwMEZGRkYKLSNk ZWZpbmUgSU9NTVVfREVWX1RBQkxFX0RPTUFJTl9JRF9TSElGVAkwCi0jZGVmaW5lIElPTU1VX0RF Vl9UQUJMRV9HQ1IzXzJfU0hJRlQgICAgICAgICAgICAgICAgMTYKLSNkZWZpbmUgSU9NTVVfREVW X1RBQkxFX0dDUjNfMl9NQVNLICAgICAgICAgICAgICAgICAweEZGRkYwMDAwCi0KLS8qIERldmlj ZVRhYmxlIEVudHJ5WzEyNzo5Nl0gKi8KLSNkZWZpbmUgSU9NTVVfREVWX1RBQkxFX0lPVExCX1NV UFBPUlRfTUFTSwkJMHgwMDAwMDAwMQotI2RlZmluZSBJT01NVV9ERVZfVEFCTEVfSU9UTEJfU1VQ UE9SVF9TSElGVAkJMAotI2RlZmluZSBJT01NVV9ERVZfVEFCTEVfU1VQUkVTU19MT0dHRURfUEFH RVNfTUFTSwkweDAwMDAwMDAyCi0jZGVmaW5lIElPTU1VX0RFVl9UQUJMRV9TVVBSRVNTX0xPR0dF RF9QQUdFU19TSElGVAkxCi0jZGVmaW5lIElPTU1VX0RFVl9UQUJMRV9TVVBSRVNTX0FMTF9QQUdF U19NQVNLCQkweDAwMDAwMDA0Ci0jZGVmaW5lIElPTU1VX0RFVl9UQUJMRV9TVVBSRVNTX0FMTF9Q QUdFU19TSElGVAkJMgotI2RlZmluZSBJT01NVV9ERVZfVEFCTEVfSU9fQ09OVFJPTF9NQVNLCQkJ MHgwMDAwMDAxOAotI2RlZmluZSBJT01NVV9ERVZfVEFCTEVfSU9fQ09OVFJPTF9TSElGVAkJMwot I2RlZmluZSBJT01NVV9ERVZfVEFCTEVfSU9UTEJfQ0FDSEVfSElOVF9NQVNLCQkweDAwMDAwMDIw Ci0jZGVmaW5lIElPTU1VX0RFVl9UQUJMRV9JT1RMQl9DQUNIRV9ISU5UX1NISUZUCQk1Ci0jZGVm aW5lIElPTU1VX0RFVl9UQUJMRV9TTk9PUF9ESVNBQkxFX01BU0sJCTB4MDAwMDAwNDAKLSNkZWZp bmUgSU9NTVVfREVWX1RBQkxFX1NOT09QX0RJU0FCTEVfU0hJRlQJCTYKLSNkZWZpbmUgSU9NTVVf REVWX1RBQkxFX0FMTE9XX0VYQ0xVU0lPTl9NQVNLCQkweDAwMDAwMDgwCi0jZGVmaW5lIElPTU1V X0RFVl9UQUJMRV9BTExPV19FWENMVVNJT05fU0hJRlQJCTcKLSNkZWZpbmUgSU9NTVVfREVWX1RB QkxFX1NZU19NR1RfTVNHX0VOQUJMRV9NQVNLCQkweDAwMDAwMzAwCi0jZGVmaW5lIElPTU1VX0RF Vl9UQUJMRV9TWVNfTUdUX01TR19FTkFCTEVfU0hJRlQJOAotCi0vKiBEZXZpY2VUYWJsZSBFbnRy eVsxNTk6MTI4XSAqLwotI2RlZmluZSBJT01NVV9ERVZfVEFCTEVfSU5UX1ZBTElEX01BU0sgICAg ICAgICAgMHgwMDAwMDAwMQotI2RlZmluZSBJT01NVV9ERVZfVEFCTEVfSU5UX1ZBTElEX1NISUZU ICAgICAgICAgMAotI2RlZmluZSBJT01NVV9ERVZfVEFCTEVfSU5UX1RBQkxFX0xFTkdUSF9NQVNL ICAgICAgIDB4MDAwMDAwMUUKLSNkZWZpbmUgSU9NTVVfREVWX1RBQkxFX0lOVF9UQUJMRV9MRU5H VEhfU0hJRlQgICAgICAxCi0jZGVmaW5lIElPTU1VX0RFVl9UQUJMRV9JTlRfVEFCTEVfSUdOX1VO TUFQUEVEX01BU0sgICAgICAweDAwMDAwMDAwMjAKLSNkZWZpbmUgSU9NTVVfREVWX1RBQkxFX0lO VF9UQUJMRV9JR05fVU5NQVBQRURfU0hJRlQgICAgICA1Ci0jZGVmaW5lIElPTU1VX0RFVl9UQUJM RV9JTlRfVEFCTEVfUFRSX0xPV19NQVNLICAgICAgMHhGRkZGRkZDMAotI2RlZmluZSBJT01NVV9E RVZfVEFCTEVfSU5UX1RBQkxFX1BUUl9MT1dfU0hJRlQgICAgIDYKLSNkZWZpbmUgSU9NTVVfREVW X1RBQkxFX0dDUjNfM19TSElGVCAgICAgICAgICAgICAgICAxMQotI2RlZmluZSBJT01NVV9ERVZf VEFCTEVfR0NSM18zX01BU0sgICAgICAgICAgICAgICAgIDB4ZmZmZmY4MDAKLQotLyogRGV2aWNl VGFibGUgRW50cnlbMTkxOjE2MF0gKi8KLSNkZWZpbmUgSU9NTVVfREVWX1RBQkxFX0lOVF9UQUJM RV9QVFJfSElHSF9NQVNLICAgICAweDAwMEZGRkZGCi0jZGVmaW5lIElPTU1VX0RFVl9UQUJMRV9J TlRfVEFCTEVfUFRSX0hJR0hfU0hJRlQgICAgMAotI2RlZmluZSBJT01NVV9ERVZfVEFCTEVfSVZI RF9GTEFHU19TSElGVCAgICAgICAgMjQKLSNkZWZpbmUgSU9NTVVfREVWX1RBQkxFX0lWSERfRkxB R1NfTUFTSyAgICAgICAgIDB4QzcwMDAwMDAKLSNkZWZpbmUgSU9NTVVfREVWX1RBQkxFX0lOVF9D T05UUk9MX01BU0sgICAgICAgIDB4MzAwMDAwMDAKLSNkZWZpbmUgSU9NTVVfREVWX1RBQkxFX0lO VF9DT05UUk9MX1NISUZUICAgICAgIDI4CitzdHJ1Y3QgYW1kX2lvbW11X2R0ZSB7CisgICAgLyog MCAtIDYzICovCisgICAgdWludDY0X3QgdjoxOworICAgIHVpbnQ2NF90IHR2OjE7CisgICAgdWlu dDY0X3QgcmVzZXJ2ZWQwOjU7CisgICAgdWludDY0X3QgaGFkOjI7CisgICAgdWludDY0X3QgcGFn aW5nX21vZGU6MzsKKyAgICB1aW50NjRfdCBwdF9yb290OjQwOworICAgIHVpbnQ2NF90IHBwcjox OworICAgIHVpbnQ2NF90IGdwcnA6MTsKKyAgICB1aW50NjRfdCBnaW92OjE7CisgICAgdWludDY0 X3QgZ3Y6MTsKKyAgICB1aW50NjRfdCBnbHg6MjsKKyAgICB1aW50NjRfdCBnY3IzX3RycF8xNF8x MjozOworICAgIHVpbnQ2NF90IGlyOjE7CisgICAgdWludDY0X3QgaXc6MTsKKyAgICB1aW50NjRf dCByZXNlcnZlZDE6MTsKKworICAgIC8qIDY0IC0gMTI3ICovCisgICAgdWludDY0X3QgZG9tYWlu X2lkOjE2OworICAgIHVpbnQ2NF90IGdjcjNfdHJwXzMwXzE1OjE2OworICAgIHVpbnQ2NF90IGk6 MTsKKyAgICB1aW50NjRfdCBzZToxOworICAgIHVpbnQ2NF90IHNhOjE7CisgICAgdWludDY0X3Qg aW9jdGw6MjsKKyAgICB1aW50NjRfdCBjYWNoZToxOworICAgIHVpbnQ2NF90IHNkOjE7CisgICAg dWludDY0X3QgZXg6MTsKKyAgICB1aW50NjRfdCBzeXNfbWd0OjI7CisgICAgdWludDY0X3QgcmVz ZXJ2ZWQyOjE7CisgICAgdWludDY0X3QgZ2NyM190cnBfNTFfMzE6MjE7CisKKyAgICAvKiAxMjgg LSAxOTEgKi8KKyAgICB1aW50NjRfdCBpdjoxOworICAgIHVpbnQ2NF90IGludF90YWJfbGVuOjQ7 CisgICAgdWludDY0X3QgaWc6MTsKKyAgICB1aW50NjRfdCBpdF9yb290OjQ2OworICAgIHVpbnQ2 NF90IHJlc2VydmVkMzo0OworICAgIHVpbnQ2NF90IGluaXRfcGFzczoxOworICAgIHVpbnQ2NF90 IGV4dF9pbnRfcGFzczoxOworICAgIHVpbnQ2NF90IG5taV9wYXNzOjE7CisgICAgdWludDY0X3Qg cmVzZXJ2ZWQ0OjE7CisgICAgdWludDY0X3QgaW50X2N0bDoyOworICAgIHVpbnQ2NF90IGxpbnQw X3Bhc3M6MTsKKyAgICB1aW50NjRfdCBsaW50MV9wYXNzOjE7CisKKyAgICAvKiAxOTIgLSAyNTUg Ki8KKyAgICB1aW50NjRfdCByZXNlcnZlZDU6NTQ7CisgICAgdWludDY0X3QgYXR0cl92OjE7Cisg ICAgdWludDY0X3QgbW9kZTBfZmM6MTsKKyAgICB1aW50NjRfdCBzbm9vcF9hdHRyOjg7Cit9Owog CiAvKiBDb21tYW5kIEJ1ZmZlciAqLwogI2RlZmluZSBJT01NVV9DTURfQlVGRkVSX0JBU0VfTE9X X09GRlNFVAkweDA4CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9zdm0vYW1k LWlvbW11LXByb3RvLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9zdm0vYW1kLWlvbW11LXBy b3RvLmgKaW5kZXggMWMxOTcxYmI3Yy4uZTBkNWQyMzk3OCAxMDA2NDQKLS0tIGEveGVuL2luY2x1 ZGUvYXNtLXg4Ni9odm0vc3ZtL2FtZC1pb21tdS1wcm90by5oCisrKyBiL3hlbi9pbmNsdWRlL2Fz bS14ODYvaHZtL3N2bS9hbWQtaW9tbXUtcHJvdG8uaApAQCAtNzAsMTUgKzcwLDE3IEBAIGludCBf X211c3RfY2hlY2sgYW1kX2lvbW11X2ZsdXNoX2lvdGxiX2FsbChzdHJ1Y3QgZG9tYWluICpkKTsK IHZvaWQgYW1kX2lvbW11X3NoYXJlX3AybShzdHJ1Y3QgZG9tYWluICpkKTsKIAogLyogZGV2aWNl IHRhYmxlIGZ1bmN0aW9ucyAqLwotaW50IGdldF9kbWFfcmVxdWVzdG9yX2lkKHUxNiBzZWcsIHUx NiBiZGYpOwotdm9pZCBhbWRfaW9tbXVfc2V0X2ludHJlbWFwX3RhYmxlKAotICAgIHUzMiAqZHRl LCB1NjQgaW50cmVtYXBfcHRyLCB1OCBpbnRfdmFsaWQpOwotdm9pZCBhbWRfaW9tbXVfc2V0X3Jv b3RfcGFnZV90YWJsZSgKLSAgICB1MzIgKmR0ZSwgdTY0IHJvb3RfcHRyLCB1MTYgZG9tYWluX2lk LCB1OCBwYWdpbmdfbW9kZSwgdTggdmFsaWQpOwotdm9pZCBpb21tdV9kdGVfc2V0X2lvdGxiKHUz MiAqZHRlLCB1OCBpKTsKLXZvaWQgaW9tbXVfZHRlX2FkZF9kZXZpY2VfZW50cnkodTMyICpkdGUs IHN0cnVjdCBpdnJzX21hcHBpbmdzICppdnJzX2Rldik7Ci12b2lkIGlvbW11X2R0ZV9zZXRfZ3Vl c3RfY3IzKHUzMiAqZHRlLCB1MTYgZG9tX2lkLCB1NjQgZ2NyMywKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaW50IGd2LCB1bnNpZ25lZCBpbnQgZ2x4KTsKK2ludCBnZXRfZG1hX3JlcXVl c3Rvcl9pZCh1aW50MTZfdCBzZWcsIHVpbnQxNl90IGJkZik7Cit2b2lkIGFtZF9pb21tdV9zZXRf aW50cmVtYXBfdGFibGUoc3RydWN0IGFtZF9pb21tdV9kdGUgKmR0ZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBpbnRyZW1hcF9wdHIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBpbnRfdmFsaWQpOwordm9pZCBhbWRfaW9tbXVf c2V0X3Jvb3RfcGFnZV90YWJsZShzdHJ1Y3QgYW1kX2lvbW11X2R0ZSAqZHRlLAorCQkJCSAgIHVp bnQ2NF90IHJvb3RfcHRyLCB1aW50MTZfdCBkb21haW5faWQsCisJCQkJICAgdWludDhfdCBwYWdp bmdfbW9kZSwgdWludDhfdCB2YWxpZCk7Cit2b2lkIGlvbW11X2R0ZV9hZGRfZGV2aWNlX2VudHJ5 KHN0cnVjdCBhbWRfaW9tbXVfZHRlICpkdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBpdnJzX21hcHBpbmdzICppdnJzX2Rldik7Cit2b2lkIGlvbW11X2R0ZV9zZXRf Z3Vlc3RfY3IzKHN0cnVjdCBhbWRfaW9tbXVfZHRlICpkdGUsIHVpbnQxNl90IGRvbV9pZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgZ2NyM19tZm4sIHVpbnQ4X3QgZ3Ys IHVpbnQ4X3QgZ2x4KTsKIAogLyogc2VuZCBjbWQgdG8gaW9tbXUgKi8KIHZvaWQgYW1kX2lvbW11 X2ZsdXNoX2FsbF9wYWdlcyhzdHJ1Y3QgZG9tYWluICpkKTsKLS0gCjIuMjAuMS4yLmdiMjFlYmI2 NzEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4t ZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczov L2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs