From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keith Packard Subject: [PATCH] vulkan: Add VK_GOOGLE_display_timing extension (x11+display, anv+radv) [v7] Date: Sat, 17 Nov 2018 13:36:49 -0800 Message-ID: <20181117213649.9273-1-keithp@keithp.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: mesa-dev@lists.freedesktop.org Cc: Keith Packard , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org VGhpcyBhZGRzIHN1cHBvcnQgZm9yIHRoZSBWS19HT09HTEVfZGlzcGxheSB0aW1pbmcgZXh0ZW5z aW9uLCB3aGljaApwcm92aWRlcyB0d28gdGhpbmdzOgoKIDEpIERldGFpbGVkIGluZm9ybWF0aW9u IGFib3V0IHdoZW4gZnJhbWVzIGFyZSBkaXNwbGF5ZWQsIGluY2x1ZGluZwogICAgc2xhY2sgdGlt ZSBiZXR3ZWVuIEdQVSBleGVjdXRpb24gYW5kIGRpc3BsYXkgZnJhbWUuCgogMikgQWJzb2x1dGUg dGltZSBjb250cm9sIG92ZXIgc3dhcGNoYWluIHF1ZXVlIHByb2Nlc3NpbmcuIFRoaXMgYWxsb3dz CiAgICB0aGUgYXBwbGljYXRpb24gdG8gcmVxdWVzdCBmcmFtZXMgYmUgZGlzcGxheWVkIGF0IHNw ZWNpZmljCiAgICBhYnNvbHV0ZSB0aW1lcywgdXNpbmcgdGhlIHNhbWUgdGltZWJhc2UgYXMgdGhh dCBwcm92aWRlZCBpbiB2YmxhbmsKICAgIGV2ZW50cy4KClN1cHBvcnQgZm9yIHRoaXMgZXh0ZW5z aW9uIGhhcyBiZWVuIGltcGxlbWVudGVkIGZvciB0aGUgeDExIGFuZApkaXNwbGF5IGJhY2tlbmRz OyBhZGRpbmcgc3VwcG9ydCB0byBvdGhlciBiYWNrZW5kcyBzaG91bGQgYmUKcmVhc29uYWJsZSBz dHJhaWdodGZvcndhcmQgZm9yIG9uZSBmYW1pbGlhciB3aXRoIHRob3NlIHN5c3RlbXMgYW5kCnNo b3VsZCBub3QgcmVxdWlyZSBhbnkgYWRkaXRpb25hbCBkZXZpY2Utc3BlY2lmaWMgY29kZS4KCnYy OgoJQWRqdXN0IEdPT0dMRV9kaXNwbGF5X3RpbWluZyBlYXJsaWVzdCB2YWx1ZS4gIFRoZQoJZWFy bGllc3RQcmVzZW50VGltZSBmb3IgYW4gaW1hZ2UgY2Fubm90IGJlIGJlZm9yZSB0aGUgcHJldmlv dXMKCWltYWdlIHdhcyBkaXNwbGF5ZWQsIG9yIGV2ZW4gYSBmcmFtZSBsYXRlciAoaW4gRklGTyBt b2RlKS4KCglNYWtlIEdPT0dMRV9kaXNwbGF5X3RpbWluZyB1c2UgcmVuZGVyIGNvbXBsZXRlZCB0 aW1lLiAgU3dpdGNoCglmcm9tIFZLX1BJUEVMSU5FX1RPUF9PRl9QSVBFX0JJVCB0bwoJVktfUElQ RUxJTkVfU1RBR0VfQUxMX0NPTU1BTkRTX0JJVCBzbyB0aGF0IHRoZSB0aW1lIHJlcG9ydGVkCgl0 byBhcHBsaWNhdGlvbnMgYXMgdGhlIGVuZCBvZiByZW5kZXJpbmcgcmVmbGVjdHMgdGhlIGxhdGVz dAoJcG9zc2libGUgdmFsdWUgdG8gZW5zdXJlIHRoYXQgYXBwbGljYXRpb25zIGRvbid0IHVuZGVy ZXN0aW1hdGUKCXRoZSBhbW91bnQgb2Ygd29yayBkb25lIGluIHRoZSBmcmFtZS4KCnYzOgoJQWRv cHQgSmFzb24gRWtzdHJhbmQncyBjb2RpbmcgY29udmVudGlvbnMuICBEZWNsYXJlIHZhcmlhYmxl cwoJYXQgZmlyc3QgdXNlLCBlbGltaW5hdGUgZXh0cmEgd2hpdGVzcGFjZSBiZXR3ZWVuIHR5cGVz IGFuZAoJbmFtZXMuIFdyYXAgbGluZXMgdG8gODAgY29sdW1ucy4KCiAgICAgICAgU3VnZ2VzdGVk LWJ5OiBKYXNvbiBFa3N0cmFuZCA8amFzb24uZWtzdHJhbmRAaW50ZWwuY29tPgoKdjQ6CglBZGFw dCB0byBjaGFuZ2VzIGluIE1FU0FfcXVlcnlfdGltZXN0YW1wIGV4dGVuc2lvbgoKdjU6CglTcXVh c2ggY29yZSBiaXRzIGFuZCBhbnYvcmFkdiB3cmFwcGVycyBpbnRvIGEgc2luZ2xlIHBhdGNoCgog ICAgICAgIFN1Z2dlc3RlZC1ieTogSmFzb24gRWtzdHJhbmQgPGphc29uLmVrc3RyYW5kQGludGVs LmNvbT4KCnY2OgoJU3dpdGNoIGZyb20gTUVTQV9xdWVyeV90aW1lc3RhbXAgdG8gRVhUX2NhbGli cmF0ZWRfdGltZXN0YW1wcwoKdjc6CglFbnN1cmUgd2UgdGFyZ2V0IGZyYW1lIG5vIGVhcmxpZXIg dGhhbiBkZXNpcmVkLiBUaGlzIG1lYW5zCglyb3VuZGluZyB0aGUgdGFyZ2V0IGZyYW1lIHVwLCBy YXRoZXIgdGhhbiBzZWxlY3RpbmcgdGhlCgluZWFyZXN0IG9uZS4KCglTdWdnZXN0ZWQtYnk6IE1p Y2hlbCBEw6RuemVyIDxtaWNoZWxAZGFlbnplci5uZXQ+CgpTaWduZWQtb2ZmLWJ5OiBLZWl0aCBQ YWNrYXJkIDxrZWl0aHBAa2VpdGhwLmNvbT4KLS0tCiBzcmMvYW1kL3Z1bGthbi9yYWR2X2V4dGVu c2lvbnMucHkgICB8ICAgMSArCiBzcmMvYW1kL3Z1bGthbi9yYWR2X3dzaS5jICAgICAgICAgICB8 ICAzMyArKysKIHNyYy9pbnRlbC92dWxrYW4vYW52X2V4dGVuc2lvbnMucHkgIHwgICAxICsKIHNy Yy9pbnRlbC92dWxrYW4vYW52X3dzaS5jICAgICAgICAgIHwgIDMzICsrKwogc3JjL3Z1bGthbi93 c2kvd3NpX2NvbW1vbi5jICAgICAgICAgfCAzMDMgKysrKysrKysrKysrKysrKysrKysrKysrKysr LQogc3JjL3Z1bGthbi93c2kvd3NpX2NvbW1vbi5oICAgICAgICAgfCAgMzIgKysrCiBzcmMvdnVs a2FuL3dzaS93c2lfY29tbW9uX2Rpc3BsYXkuYyB8IDE2NSArKysrKysrKysrKysrKy0KIHNyYy92 dWxrYW4vd3NpL3dzaV9jb21tb25fcHJpdmF0ZS5oIHwgIDM1ICsrKysKIHNyYy92dWxrYW4vd3Np L3dzaV9jb21tb25feDExLmMgICAgIHwgIDcxICsrKysrKy0KIDkgZmlsZXMgY2hhbmdlZCwgNjYy IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9hbWQvdnVs a2FuL3JhZHZfZXh0ZW5zaW9ucy5weSBiL3NyYy9hbWQvdnVsa2FuL3JhZHZfZXh0ZW5zaW9ucy5w eQppbmRleCA2YmRmOTg4ZDExNy4uNzZjM2FkZTA2ZjAgMTAwNjQ0Ci0tLSBhL3NyYy9hbWQvdnVs a2FuL3JhZHZfZXh0ZW5zaW9ucy5weQorKysgYi9zcmMvYW1kL3Z1bGthbi9yYWR2X2V4dGVuc2lv bnMucHkKQEAgLTExOSw2ICsxMTksNyBAQCBFWFRFTlNJT05TID0gWwogICAgIEV4dGVuc2lvbign VktfQU1EX3NoYWRlcl90cmluYXJ5X21pbm1heCcsICAgICAgICAgICAgIDEsIFRydWUpLAogICAg IEV4dGVuc2lvbignVktfR09PR0xFX2RlY29yYXRlX3N0cmluZycsICAgICAgICAgICAgICAgIDEs IFRydWUpLAogICAgIEV4dGVuc2lvbignVktfR09PR0xFX2hsc2xfZnVuY3Rpb25hbGl0eTEnLCAg ICAgICAgICAgIDEsIFRydWUpLAorICAgIEV4dGVuc2lvbignVktfR09PR0xFX2Rpc3BsYXlfdGlt aW5nJywgICAgICAgICAgICAgICAgIDEsIFRydWUpLAogXQogCiBjbGFzcyBWa1ZlcnNpb246CmRp ZmYgLS1naXQgYS9zcmMvYW1kL3Z1bGthbi9yYWR2X3dzaS5jIGIvc3JjL2FtZC92dWxrYW4vcmFk dl93c2kuYwppbmRleCAzNDZmYjQzZDY3NS4uYmEyNGQwN2VkZmMgMTAwNjQ0Ci0tLSBhL3NyYy9h bWQvdnVsa2FuL3JhZHZfd3NpLmMKKysrIGIvc3JjL2FtZC92dWxrYW4vcmFkdl93c2kuYwpAQCAt Mjk1LDMgKzI5NSwzNiBAQCBWa1Jlc3VsdCByYWR2X0dldFBoeXNpY2FsRGV2aWNlUHJlc2VudFJl Y3RhbmdsZXNLSFIoCiAJCQkJCQkgc3VyZmFjZSwKIAkJCQkJCSBwUmVjdENvdW50LCBwUmVjdHMp OwogfQorCisvKiBWS19HT09HTEVfZGlzcGxheV90aW1pbmcgKi8KK1ZrUmVzdWx0CityYWR2X0dl dFJlZnJlc2hDeWNsZUR1cmF0aW9uR09PR0xFKAorCVZrRGV2aWNlIF9kZXZpY2UsCisJVmtTd2Fw Y2hhaW5LSFIgc3dhcGNoYWluLAorCVZrUmVmcmVzaEN5Y2xlRHVyYXRpb25HT09HTEUgKnBEaXNw bGF5VGltaW5nUHJvcGVydGllcykKK3sKKwlSQURWX0ZST01fSEFORExFKHJhZHZfZGV2aWNlLCBk ZXZpY2UsIF9kZXZpY2UpOworCXN0cnVjdCByYWR2X3BoeXNpY2FsX2RldmljZSAqcGRldmljZSA9 IGRldmljZS0+cGh5c2ljYWxfZGV2aWNlOworCisJcmV0dXJuIHdzaV9jb21tb25fZ2V0X3JlZnJl c2hfY3ljbGVfZHVyYXRpb24oJnBkZXZpY2UtPndzaV9kZXZpY2UsCisJCQkJCQkgICAgIF9kZXZp Y2UsCisJCQkJCQkgICAgIHN3YXBjaGFpbiwKKwkJCQkJCSAgICAgcERpc3BsYXlUaW1pbmdQcm9w ZXJ0aWVzKTsKK30KKworVmtSZXN1bHQKK3JhZHZfR2V0UGFzdFByZXNlbnRhdGlvblRpbWluZ0dP T0dMRShWa0RldmljZSBfZGV2aWNlLAorCQkJCSAgICAgVmtTd2FwY2hhaW5LSFIgc3dhcGNoYWlu LAorCQkJCSAgICAgdWludDMyX3QgKnBQcmVzZW50YXRpb25UaW1pbmdDb3VudCwKKwkJCQkgICAg IFZrUGFzdFByZXNlbnRhdGlvblRpbWluZ0dPT0dMRQorCQkJCSAgICAgKnBQcmVzZW50YXRpb25U aW1pbmdzKQoreworCVJBRFZfRlJPTV9IQU5ETEUocmFkdl9kZXZpY2UsIGRldmljZSwgX2Rldmlj ZSk7CisJc3RydWN0IHJhZHZfcGh5c2ljYWxfZGV2aWNlICpwZGV2aWNlID0gZGV2aWNlLT5waHlz aWNhbF9kZXZpY2U7CisKKwlyZXR1cm4gd3NpX2NvbW1vbl9nZXRfcGFzdF9wcmVzZW50YXRpb25f dGltaW5nKCZwZGV2aWNlLT53c2lfZGV2aWNlLAorCQkJCQkJICAgICAgIF9kZXZpY2UsCisJCQkJ CQkgICAgICAgc3dhcGNoYWluLAorCQkJCQkJICAgICAgIHBQcmVzZW50YXRpb25UaW1pbmdDb3Vu dCwKKwkJCQkJCSAgICAgICBwUHJlc2VudGF0aW9uVGltaW5ncyk7Cit9CmRpZmYgLS1naXQgYS9z cmMvaW50ZWwvdnVsa2FuL2Fudl9leHRlbnNpb25zLnB5IGIvc3JjL2ludGVsL3Z1bGthbi9hbnZf ZXh0ZW5zaW9ucy5weQppbmRleCBlOWFmZTA2YmIxMy4uOGZjYzRkMTM3NmUgMTAwNjQ0Ci0tLSBh L3NyYy9pbnRlbC92dWxrYW4vYW52X2V4dGVuc2lvbnMucHkKKysrIGIvc3JjL2ludGVsL3Z1bGth bi9hbnZfZXh0ZW5zaW9ucy5weQpAQCAtMTMwLDYgKzEzMCw3IEBAIEVYVEVOU0lPTlMgPSBbCiAg ICAgRXh0ZW5zaW9uKCdWS19FWFRfY2FsaWJyYXRlZF90aW1lc3RhbXBzJywgICAgICAgICAgICAg MSwgVHJ1ZSksCiAgICAgRXh0ZW5zaW9uKCdWS19HT09HTEVfZGVjb3JhdGVfc3RyaW5nJywgICAg ICAgICAgICAgICAgMSwgVHJ1ZSksCiAgICAgRXh0ZW5zaW9uKCdWS19HT09HTEVfaGxzbF9mdW5j dGlvbmFsaXR5MScsICAgICAgICAgICAgMSwgVHJ1ZSksCisgICAgRXh0ZW5zaW9uKCdWS19HT09H TEVfZGlzcGxheV90aW1pbmcnLCAgICAgICAgICAgICAgICAgMSwgVHJ1ZSksCiBdCiAKIGNsYXNz IFZrVmVyc2lvbjoKZGlmZiAtLWdpdCBhL3NyYy9pbnRlbC92dWxrYW4vYW52X3dzaS5jIGIvc3Jj L2ludGVsL3Z1bGthbi9hbnZfd3NpLmMKaW5kZXggMDI0YmMxYzI0NWQuLmJmZGJjYjU2YzU2IDEw MDY0NAotLS0gYS9zcmMvaW50ZWwvdnVsa2FuL2Fudl93c2kuYworKysgYi9zcmMvaW50ZWwvdnVs a2FuL2Fudl93c2kuYwpAQCAtMzA1LDMgKzMwNSwzNiBAQCBWa1Jlc3VsdCBhbnZfR2V0UGh5c2lj YWxEZXZpY2VQcmVzZW50UmVjdGFuZ2xlc0tIUigKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3VyZmFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcFJlY3RDb3VudCwgcFJlY3RzKTsKIH0KKworLyogVktfR09PR0xFX2Rp c3BsYXlfdGltaW5nICovCitWa1Jlc3VsdAorYW52X0dldFJlZnJlc2hDeWNsZUR1cmF0aW9uR09P R0xFKFZrRGV2aWNlIF9kZXZpY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg VmtTd2FwY2hhaW5LSFIgc3dhcGNoYWluLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFZrUmVmcmVzaEN5Y2xlRHVyYXRpb25HT09HTEUKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAqcERpc3BsYXlUaW1pbmdQcm9wZXJ0aWVzKQoreworICAgQU5WX0ZST01fSEFO RExFKGFudl9kZXZpY2UsIGRldmljZSwgX2RldmljZSk7CisKKyAgIHJldHVybiB3c2lfY29tbW9u X2dldF9yZWZyZXNoX2N5Y2xlX2R1cmF0aW9uKCZkZXZpY2UtPmluc3RhbmNlLT4KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBoeXNpY2FsRGV2aWNlLndz aV9kZXZpY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBfZGV2aWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3dhcGNoYWluLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcERpc3BsYXlUaW1pbmdQcm9wZXJ0aWVzKTsKK30KKworVmtSZXN1bHQKK2Fudl9HZXRQ YXN0UHJlc2VudGF0aW9uVGltaW5nR09PR0xFKFZrRGV2aWNlIF9kZXZpY2UsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBWa1N3YXBjaGFpbktIUiBzd2FwY2hhaW4sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqcFByZXNlbnRhdGlvblRp bWluZ0NvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmtQYXN0UHJl c2VudGF0aW9uVGltaW5nR09PR0xFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAqcFByZXNlbnRhdGlvblRpbWluZ3MpCit7CisgICBBTlZfRlJPTV9IQU5ETEUoYW52X2Rldmlj ZSwgZGV2aWNlLCBfZGV2aWNlKTsKKworICAgcmV0dXJuIHdzaV9jb21tb25fZ2V0X3Bhc3RfcHJl c2VudGF0aW9uX3RpbWluZygmZGV2aWNlLT5pbnN0YW5jZS0+CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBoeXNpY2FsRGV2aWNlLndzaV9kZXZpY2Us CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9kZXZp Y2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3 YXBjaGFpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcFByZXNlbnRhdGlvblRpbWluZ0NvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwUHJlc2VudGF0aW9uVGltaW5ncyk7Cit9CmRpZmYgLS1n aXQgYS9zcmMvdnVsa2FuL3dzaS93c2lfY29tbW9uLmMgYi9zcmMvdnVsa2FuL3dzaS93c2lfY29t bW9uLmMKaW5kZXggMWNkNWY4ZDYyYzUuLmQ2YzU1YjM1NTc0IDEwMDY0NAotLS0gYS9zcmMvdnVs a2FuL3dzaS93c2lfY29tbW9uLmMKKysrIGIvc3JjL3Z1bGthbi93c2kvd3NpX2NvbW1vbi5jCkBA IC00OCw2ICs0OCw3IEBAIHdzaV9kZXZpY2VfaW5pdChzdHJ1Y3Qgd3NpX2RldmljZSAqd3NpLAog ICAgV1NJX0dFVF9DQihHZXRQaHlzaWNhbERldmljZVByb3BlcnRpZXMyKTsKICAgIFdTSV9HRVRf Q0IoR2V0UGh5c2ljYWxEZXZpY2VNZW1vcnlQcm9wZXJ0aWVzKTsKICAgIFdTSV9HRVRfQ0IoR2V0 UGh5c2ljYWxEZXZpY2VRdWV1ZUZhbWlseVByb3BlcnRpZXMpOworICAgV1NJX0dFVF9DQihHZXRQ aHlzaWNhbERldmljZVByb3BlcnRpZXMpOwogI3VuZGVmIFdTSV9HRVRfQ0IKIAogICAgd3NpLT5w Y2lfYnVzX2luZm8uc1R5cGUgPQpAQCAtNjEsNiArNjIsMTAgQEAgd3NpX2RldmljZV9pbml0KHN0 cnVjdCB3c2lfZGV2aWNlICp3c2ksCiAgICBHZXRQaHlzaWNhbERldmljZU1lbW9yeVByb3BlcnRp ZXMocGRldmljZSwgJndzaS0+bWVtb3J5X3Byb3BzKTsKICAgIEdldFBoeXNpY2FsRGV2aWNlUXVl dWVGYW1pbHlQcm9wZXJ0aWVzKHBkZXZpY2UsICZ3c2ktPnF1ZXVlX2ZhbWlseV9jb3VudCwgTlVM TCk7CiAKKyAgIFZrUGh5c2ljYWxEZXZpY2VQcm9wZXJ0aWVzIHByb3BlcnRpZXM7CisgICBHZXRQ aHlzaWNhbERldmljZVByb3BlcnRpZXMocGRldmljZSwgJnByb3BlcnRpZXMpOworICAgd3NpLT50 aW1lc3RhbXBfcGVyaW9kID0gcHJvcGVydGllcy5saW1pdHMudGltZXN0YW1wUGVyaW9kOworCiAj ZGVmaW5lIFdTSV9HRVRfQ0IoZnVuYykgXAogICAgd3NpLT5mdW5jID0gKFBGTl92ayMjZnVuYylw cm9jX2FkZHIocGRldmljZSwgInZrIiAjZnVuYykKICAgIFdTSV9HRVRfQ0IoQWxsb2NhdGVNZW1v cnkpOwpAQCAtNjksMTQgKzc0LDE4IEBAIHdzaV9kZXZpY2VfaW5pdChzdHJ1Y3Qgd3NpX2Rldmlj ZSAqd3NpLAogICAgV1NJX0dFVF9DQihCaW5kSW1hZ2VNZW1vcnkpOwogICAgV1NJX0dFVF9DQihC ZWdpbkNvbW1hbmRCdWZmZXIpOwogICAgV1NJX0dFVF9DQihDbWRDb3B5SW1hZ2VUb0J1ZmZlcik7 CisgICBXU0lfR0VUX0NCKENtZFJlc2V0UXVlcnlQb29sKTsKKyAgIFdTSV9HRVRfQ0IoQ21kV3Jp dGVUaW1lc3RhbXApOwogICAgV1NJX0dFVF9DQihDcmVhdGVCdWZmZXIpOwogICAgV1NJX0dFVF9D QihDcmVhdGVDb21tYW5kUG9vbCk7CiAgICBXU0lfR0VUX0NCKENyZWF0ZUZlbmNlKTsKICAgIFdT SV9HRVRfQ0IoQ3JlYXRlSW1hZ2UpOworICAgV1NJX0dFVF9DQihDcmVhdGVRdWVyeVBvb2wpOwog ICAgV1NJX0dFVF9DQihEZXN0cm95QnVmZmVyKTsKICAgIFdTSV9HRVRfQ0IoRGVzdHJveUNvbW1h bmRQb29sKTsKICAgIFdTSV9HRVRfQ0IoRGVzdHJveUZlbmNlKTsKICAgIFdTSV9HRVRfQ0IoRGVz dHJveUltYWdlKTsKKyAgIFdTSV9HRVRfQ0IoRGVzdHJveVF1ZXJ5UG9vbCk7CiAgICBXU0lfR0VU X0NCKEVuZENvbW1hbmRCdWZmZXIpOwogICAgV1NJX0dFVF9DQihGcmVlTWVtb3J5KTsKICAgIFdT SV9HRVRfQ0IoRnJlZUNvbW1hbmRCdWZmZXJzKTsKQEAgLTg0LDEwICs5MywxNCBAQCB3c2lfZGV2 aWNlX2luaXQoc3RydWN0IHdzaV9kZXZpY2UgKndzaSwKICAgIFdTSV9HRVRfQ0IoR2V0SW1hZ2VN ZW1vcnlSZXF1aXJlbWVudHMpOwogICAgV1NJX0dFVF9DQihHZXRJbWFnZVN1YnJlc291cmNlTGF5 b3V0KTsKICAgIFdTSV9HRVRfQ0IoR2V0TWVtb3J5RmRLSFIpOworICAgV1NJX0dFVF9DQihHZXRQ aHlzaWNhbERldmljZVByb3BlcnRpZXMpOwogICAgV1NJX0dFVF9DQihHZXRQaHlzaWNhbERldmlj ZUZvcm1hdFByb3BlcnRpZXMpOwogICAgV1NJX0dFVF9DQihHZXRQaHlzaWNhbERldmljZUZvcm1h dFByb3BlcnRpZXMyS0hSKTsKKyAgIFdTSV9HRVRfQ0IoR2V0UGh5c2ljYWxEZXZpY2VRdWV1ZUZh bWlseVByb3BlcnRpZXMpOworICAgV1NJX0dFVF9DQihHZXRRdWVyeVBvb2xSZXN1bHRzKTsKICAg IFdTSV9HRVRfQ0IoUmVzZXRGZW5jZXMpOwogICAgV1NJX0dFVF9DQihRdWV1ZVN1Ym1pdCk7Cisg ICBXU0lfR0VUX0NCKEdldENhbGlicmF0ZWRUaW1lc3RhbXBzRVhUKTsKICAgIFdTSV9HRVRfQ0Io V2FpdEZvckZlbmNlcyk7CiAjdW5kZWYgV1NJX0dFVF9DQgogCkBAIC0xNzIsNiArMTg1LDggQEAg d3NpX3N3YXBjaGFpbl9pbml0KGNvbnN0IHN0cnVjdCB3c2lfZGV2aWNlICp3c2ksCiAgICBjaGFp bi0+ZGV2aWNlID0gZGV2aWNlOwogICAgY2hhaW4tPmFsbG9jID0gKnBBbGxvY2F0b3I7CiAgICBj aGFpbi0+dXNlX3ByaW1lX2JsaXQgPSBmYWxzZTsKKyAgIGNoYWluLT50aW1pbmdfaW5zZXJ0ID0g MDsKKyAgIGNoYWluLT50aW1pbmdfY291bnQgPSAwOwogCiAgICBjaGFpbi0+Y21kX3Bvb2xzID0K ICAgICAgIHZrX3phbGxvYyhwQWxsb2NhdG9yLCBzaXplb2YoVmtDb21tYW5kUG9vbCkgKiB3c2kt PnF1ZXVlX2ZhbWlseV9jb3VudCwgOCwKQEAgLTI0NSw2ICsyNjAsNjMgQEAgYWxpZ25fdTMyKHVp bnQzMl90IHYsIHVpbnQzMl90IGEpCiAgICByZXR1cm4gKHYgKyBhIC0gMSkgJiB+KGEgLSAxKTsK IH0KIAorc3RhdGljIFZrUmVzdWx0Cit3c2lfaW1hZ2VfaW5pdF90aW1lc3RhbXAoY29uc3Qgc3Ry dWN0IHdzaV9zd2FwY2hhaW4gKmNoYWluLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj dCB3c2lfaW1hZ2UgKmltYWdlKQoreworICAgY29uc3Qgc3RydWN0IHdzaV9kZXZpY2UgKndzaSA9 IGNoYWluLT53c2k7CisgICBWa1Jlc3VsdCByZXN1bHQ7CisgICAvKiBTZXQgdXAgY29tbWFuZCBi dWZmZXIgdG8gZ2V0IHRpbWVzdGFtcCBpbmZvICovCisKKyAgIHJlc3VsdCA9IHdzaS0+Q3JlYXRl UXVlcnlQb29sKAorICAgICAgY2hhaW4tPmRldmljZSwKKyAgICAgICYoY29uc3QgVmtRdWVyeVBv b2xDcmVhdGVJbmZvKSB7CisgICAgICAgICAuc1R5cGUgPSBWS19TVFJVQ1RVUkVfVFlQRV9RVUVS WV9QT09MX0NSRUFURV9JTkZPLAorICAgICAgICAgICAgLnF1ZXJ5VHlwZSA9IFZLX1FVRVJZX1RZ UEVfVElNRVNUQU1QLAorICAgICAgICAgICAgLnF1ZXJ5Q291bnQgPSAxLAorICAgICAgICAgICAg fSwKKyAgICAgIE5VTEwsCisgICAgICAmaW1hZ2UtPnF1ZXJ5X3Bvb2wpOworCisgICBpZiAocmVz dWx0ICE9IFZLX1NVQ0NFU1MpCisgICAgICBnb3RvIGZhaWw7CisKKyAgIHJlc3VsdCA9IHdzaS0+ QWxsb2NhdGVDb21tYW5kQnVmZmVycygKKyAgICAgIGNoYWluLT5kZXZpY2UsCisgICAgICAmKGNv bnN0IFZrQ29tbWFuZEJ1ZmZlckFsbG9jYXRlSW5mbykgeworICAgICAgICAgLnNUeXBlID0gVktf U1RSVUNUVVJFX1RZUEVfQ09NTUFORF9CVUZGRVJfQUxMT0NBVEVfSU5GTywKKyAgICAgICAgICAg IC5wTmV4dCA9IE5VTEwsCisgICAgICAgICAgICAuY29tbWFuZFBvb2wgPSBjaGFpbi0+Y21kX3Bv b2xzWzBdLAorICAgICAgICAgICAgLmxldmVsID0gVktfQ09NTUFORF9CVUZGRVJfTEVWRUxfUFJJ TUFSWSwKKyAgICAgICAgICAgIC5jb21tYW5kQnVmZmVyQ291bnQgPSAxLAorICAgICAgICAgICAg fSwKKyAgICAgICZpbWFnZS0+dGltZXN0YW1wX2J1ZmZlcik7CisgICBpZiAocmVzdWx0ICE9IFZL X1NVQ0NFU1MpCisgICAgICBnb3RvIGZhaWw7CisKKyAgIHdzaS0+QmVnaW5Db21tYW5kQnVmZmVy KAorICAgICAgaW1hZ2UtPnRpbWVzdGFtcF9idWZmZXIsCisgICAgICAmKFZrQ29tbWFuZEJ1ZmZl ckJlZ2luSW5mbykgeworICAgICAgICAgLnNUeXBlID0gVktfU1RSVUNUVVJFX1RZUEVfQ09NTUFO RF9CVUZGRVJfQkVHSU5fSU5GTywKKyAgICAgICAgICAgIC5mbGFncyA9IDAKKyAgICAgICAgICAg IH0pOworCisgICB3c2ktPkNtZFJlc2V0UXVlcnlQb29sKGltYWdlLT50aW1lc3RhbXBfYnVmZmVy LAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZS0+cXVlcnlfcG9vbCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgMCwgMSk7CisKKyAgIHdzaS0+Q21kV3JpdGVUaW1lc3RhbXAoaW1h Z2UtPnRpbWVzdGFtcF9idWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFZLX1BJUEVM SU5FX1NUQUdFX0FMTF9DT01NQU5EU19CSVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGlt YWdlLT5xdWVyeV9wb29sLAorICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsKKworICAgd3Np LT5FbmRDb21tYW5kQnVmZmVyKGltYWdlLT50aW1lc3RhbXBfYnVmZmVyKTsKKworICAgcmV0dXJu IFZLX1NVQ0NFU1M7CitmYWlsOgorICAgcmV0dXJuIHJlc3VsdDsKK30KKwogVmtSZXN1bHQKIHdz aV9jcmVhdGVfbmF0aXZlX2ltYWdlKGNvbnN0IHN0cnVjdCB3c2lfc3dhcGNoYWluICpjaGFpbiwK ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZrU3dhcGNoYWluQ3JlYXRlSW5mb0tIUiAq cENyZWF0ZUluZm8sCkBAIC00MTgsNiArNDkwLDEwIEBAIHdzaV9jcmVhdGVfbmF0aXZlX2ltYWdl KGNvbnN0IHN0cnVjdCB3c2lfc3dhcGNoYWluICpjaGFpbiwKICAgIGlmIChyZXN1bHQgIT0gVktf U1VDQ0VTUykKICAgICAgIGdvdG8gZmFpbDsKIAorICAgcmVzdWx0ID0gd3NpX2ltYWdlX2luaXRf dGltZXN0YW1wKGNoYWluLCBpbWFnZSk7CisgICBpZiAocmVzdWx0ICE9IFZLX1NVQ0NFU1MpCisg ICAgICBnb3RvIGZhaWw7CisKICAgIGlmIChudW1fbW9kaWZpZXJfbGlzdHMgPiAwKSB7CiAgICAg ICBpbWFnZS0+ZHJtX21vZGlmaWVyID0gd3NpLT5pbWFnZV9nZXRfbW9kaWZpZXIoaW1hZ2UtPmlt YWdlKTsKICAgICAgIGFzc2VydChpbWFnZS0+ZHJtX21vZGlmaWVyICE9IERSTV9GT1JNQVRfTU9E X0lOVkFMSUQpOwpAQCAtNjYzLDYgKzczOSwxMCBAQCB3c2lfY3JlYXRlX3ByaW1lX2ltYWdlKGNv bnN0IHN0cnVjdCB3c2lfc3dhcGNoYWluICpjaGFpbiwKICAgICAgICAgIGdvdG8gZmFpbDsKICAg IH0KIAorICAgcmVzdWx0ID0gd3NpX2ltYWdlX2luaXRfdGltZXN0YW1wKGNoYWluLCBpbWFnZSk7 CisgICBpZiAocmVzdWx0ICE9IFZLX1NVQ0NFU1MpCisgICAgICBnb3RvIGZhaWw7CisKICAgIGNv bnN0IFZrTWVtb3J5R2V0RmRJbmZvS0hSIGxpbmVhcl9tZW1vcnlfZ2V0X2ZkX2luZm8gPSB7CiAg ICAgICAuc1R5cGUgPSBWS19TVFJVQ1RVUkVfVFlQRV9NRU1PUllfR0VUX0ZEX0lORk9fS0hSLAog ICAgICAgLnBOZXh0ID0gTlVMTCwKQEAgLTkxMyw2ICs5OTMsMTI4IEBAIHdzaV9jb21tb25fYWNx dWlyZV9uZXh0X2ltYWdlMihjb25zdCBzdHJ1Y3Qgd3NpX2RldmljZSAqd3NpLAogICAgcmV0dXJu IHN3YXBjaGFpbi0+YWNxdWlyZV9uZXh0X2ltYWdlKHN3YXBjaGFpbiwgcEFjcXVpcmVJbmZvLCBw SW1hZ2VJbmRleCk7CiB9CiAKK3N0YXRpYyBzdHJ1Y3Qgd3NpX3RpbWluZyAqCit3c2lfZ2V0X3Rp bWluZyhzdHJ1Y3Qgd3NpX3N3YXBjaGFpbiAqY2hhaW4sIHVpbnQzMl90IGkpCit7CisgICB1aW50 MzJfdCBqID0gV1NJX1RJTUlOR19ISVNUT1JZICsgY2hhaW4tPnRpbWluZ19pbnNlcnQgLQorICAg ICAgY2hhaW4tPnRpbWluZ19jb3VudCArIGk7CisKKyAgIGlmIChqID49IFdTSV9USU1JTkdfSElT VE9SWSkKKyAgICAgIGogLT0gV1NJX1RJTUlOR19ISVNUT1JZOworICAgcmV0dXJuICZjaGFpbi0+ dGltaW5nW2pdOworfQorCitzdGF0aWMgc3RydWN0IHdzaV90aW1pbmcgKgord3NpX25leHRfdGlt aW5nKHN0cnVjdCB3c2lfc3dhcGNoYWluICpjaGFpbiwgaW50IGltYWdlX2luZGV4KQoreworICAg dWludDMyX3QgaiA9IGNoYWluLT50aW1pbmdfaW5zZXJ0OworICAgKytjaGFpbi0+dGltaW5nX2lu c2VydDsKKyAgIGlmIChjaGFpbi0+dGltaW5nX2luc2VydCA+PSBXU0lfVElNSU5HX0hJU1RPUlkp CisgICAgICBjaGFpbi0+dGltaW5nX2luc2VydCA9IDA7CisgICBpZiAoY2hhaW4tPnRpbWluZ19j b3VudCA8IFdTSV9USU1JTkdfSElTVE9SWSkKKyAgICAgICsrY2hhaW4tPnRpbWluZ19jb3VudDsK KyAgIHN0cnVjdCB3c2lfdGltaW5nICp0aW1pbmcgPSAmY2hhaW4tPnRpbWluZ1tqXTsKKyAgIG1l bXNldCh0aW1pbmcsICdcMCcsIHNpemVvZiAoKnRpbWluZykpOworICAgcmV0dXJuIHRpbWluZzsK K30KKwordm9pZAord3NpX21hcmtfdGltaW5nKHN0cnVjdCB3c2lfc3dhcGNoYWluICpzd2FwY2hh aW4sCisgICAgICAgICAgICAgICAgc3RydWN0IHdzaV9pbWFnZSAqaW1hZ2UsCisgICAgICAgICAg ICAgICAgdWludDY0X3QgdXN0LAorICAgICAgICAgICAgICAgIHVpbnQ2NF90IG1zYykKK3sKKyAg IGNvbnN0IHN0cnVjdCB3c2lfZGV2aWNlICp3c2kgPSBzd2FwY2hhaW4tPndzaTsKKyAgIHN0cnVj dCB3c2lfdGltaW5nICp0aW1pbmcgPSBpbWFnZS0+dGltaW5nOworCisgICBpZiAoIXRpbWluZykK KyAgICAgIHJldHVybjsKKworICAgdWludDY0X3QgcmVuZGVyX3RpbWVzdGFtcDsKKworICAgVmtS ZXN1bHQgcmVzdWx0ID0gd3NpLT5HZXRRdWVyeVBvb2xSZXN1bHRzKAorICAgICAgc3dhcGNoYWlu LT5kZXZpY2UsIGltYWdlLT5xdWVyeV9wb29sLAorICAgICAgMCwgMSwgc2l6ZW9mKHJlbmRlcl90 aW1lc3RhbXApLCAmcmVuZGVyX3RpbWVzdGFtcCwKKyAgICAgIHNpemVvZiAodWludDY0X3QpLAor ICAgICAgVktfUVVFUllfUkVTVUxUXzY0X0JJVHxWS19RVUVSWV9SRVNVTFRfV0FJVF9CSVQpOwor ICAgaWYgKHJlc3VsdCAhPSBWS19TVUNDRVNTKQorICAgICAgcmV0dXJuOworCisgICBzdGF0aWMg Y29uc3QgVmtDYWxpYnJhdGVkVGltZXN0YW1wSW5mb0VYVCAgICB0aW1lc3RhbXBJbmZvWzJdID0g eworICAgICAgeworICAgICAgICAgLnNUeXBlID0gVktfU1RSVUNUVVJFX1RZUEVfQ0FMSUJSQVRF RF9USU1FU1RBTVBfSU5GT19FWFQsCisgICAgICAgICAucE5leHQgPSBOVUxMLAorICAgICAgICAg LnRpbWVEb21haW4gPSBWS19USU1FX0RPTUFJTl9ERVZJQ0VfRVhULAorICAgICAgfSwKKyAgICAg IHsKKyAgICAgICAgIC5zVHlwZSA9IFZLX1NUUlVDVFVSRV9UWVBFX0NBTElCUkFURURfVElNRVNU QU1QX0lORk9fRVhULAorICAgICAgICAgLnBOZXh0ID0gTlVMTCwKKyAgICAgICAgIC50aW1lRG9t YWluID0gVktfVElNRV9ET01BSU5fQ0xPQ0tfTU9OT1RPTklDX0VYVCwKKyAgICAgIH0sCisgICB9 OworCisgICB1aW50NjRfdCAgICAgdGltZXN0YW1wc1syXTsKKyAgIHVpbnQ2NF90ICAgICBtYXhE ZXZpYXRpb247CisKKyAgIHJlc3VsdCA9IHdzaS0+R2V0Q2FsaWJyYXRlZFRpbWVzdGFtcHNFWFQo c3dhcGNoYWluLT5kZXZpY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRp bWVzdGFtcEluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRpbWVzdGFtcHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICZtYXhEZXZpYXRpb24pOworICAgaWYgKHJlc3VsdCAhPSBWS19TVUNDRVNTKQorICAgICAgcmV0 dXJuOworCisgICB1aW50NjRfdCBjdXJyZW50X2dwdV90aW1lc3RhbXAgPSB0aW1lc3RhbXBzWzBd OworICAgdWludDY0X3QgY3VycmVudF90aW1lID0gdGltZXN0YW1wc1sxXTsKKworICAgVmtSZWZy ZXNoQ3ljbGVEdXJhdGlvbkdPT0dMRSBkaXNwbGF5X3RpbWluZ3M7CisgICBzd2FwY2hhaW4tPmdl dF9yZWZyZXNoX2N5Y2xlX2R1cmF0aW9uKHN3YXBjaGFpbiwgJmRpc3BsYXlfdGltaW5ncyk7CisK KyAgIHVpbnQ2NF90IHJlZnJlc2hfZHVyYXRpb24gPSBkaXNwbGF5X3RpbWluZ3MucmVmcmVzaER1 cmF0aW9uOworCisgICAvKiBXaGVuIGRpZCBkcmF3aW5nIGNvbXBsZXRlIChpbiBuc2VjKSAqLwor CisgICBpbnQ2NF90IHNpbmNlX3JlbmRlciA9IChpbnQ2NF90KSBmbG9vciAoKGRvdWJsZSkgKGN1 cnJlbnRfZ3B1X3RpbWVzdGFtcCAtIHJlbmRlcl90aW1lc3RhbXApICoKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZG91YmxlKSB3c2ktPnRpbWVzdGFtcF9wZXJp b2QgKyAwLjUpOworICAgdWludDY0X3QgcmVuZGVyX3RpbWUgPSBjdXJyZW50X3RpbWUgLSBzaW5j ZV9yZW5kZXI7CisKKyAgIGlmIChyZW5kZXJfdGltZSA+IHVzdCkKKyAgICAgIHJlbmRlcl90aW1l ID0gdXN0OworCisgICB1aW50NjRfdCByZW5kZXJfZnJhbWVzID0gKHVzdCAtIHJlbmRlcl90aW1l KSAvIHJlZnJlc2hfZHVyYXRpb247CisKKyAgIHVpbnQ2NF90IGVhcmxpZXN0X3RpbWUgPSB1c3Qg LSByZW5kZXJfZnJhbWVzICogcmVmcmVzaF9kdXJhdGlvbjsKKworICAgLyogVXNlIHRoZSBwcmVz ZW50YXRpb24gbW9kZSB0byBmaWd1cmUgb3V0IHdoZW4gdGhlIGltYWdlIGNvdWxkIGhhdmUgYmVl bgorICAgICogZGlzcGxheWVkLiBJdCBjb3VsZG4ndCBoYXZlIGJlZW4gZGlzcGxheWVkIGJlZm9y ZSB0aGUgcHJldmlvdXMgaW1hZ2UsIHNvCisgICAgKiB1c2UgdGhhdCBhcyBhIGxvd2VyIGJvdW5k LiBJZiB3ZSdyZSBpbiBGSUZPIG1vZGUsIHRoZW4gaXQgY291bGRuJ3QgaGF2ZQorICAgICogYmVl biBkaXNwbGF5ZWQgYmVmb3JlIG9uZSBmcmFtZSAqYWZ0ZXIqIHRoZSBwcmV2aW91cyBpbWFnZQor ICAgICovCisgICB1aW50NjRfdCBwb3NzaWJsZV9mcmFtZSA9IHN3YXBjaGFpbi0+ZnJhbWVfdXN0 OworCisgICBzd2l0Y2ggKHN3YXBjaGFpbi0+cHJlc2VudF9tb2RlKSB7CisgICBjYXNlIFZLX1BS RVNFTlRfTU9ERV9GSUZPX0tIUjoKKyAgIGNhc2UgVktfUFJFU0VOVF9NT0RFX0ZJRk9fUkVMQVhF RF9LSFI6CisgICAgICBwb3NzaWJsZV9mcmFtZSArPSByZWZyZXNoX2R1cmF0aW9uOworICAgICAg YnJlYWs7CisgICBkZWZhdWx0OgorICAgICAgYnJlYWs7CisgICB9CisgICBpZiAoZWFybGllc3Rf dGltZSA8IHBvc3NpYmxlX2ZyYW1lKQorICAgICAgZWFybGllc3RfdGltZSA9IHBvc3NpYmxlX2Zy YW1lOworCisgICBpZiAoZWFybGllc3RfdGltZSA+IHVzdCkKKyAgICAgIGVhcmxpZXN0X3RpbWUg PSB1c3Q7CisKKyAgIHRpbWluZy0+dGltaW5nLmFjdHVhbFByZXNlbnRUaW1lID0gdXN0OworICAg dGltaW5nLT50aW1pbmcuZWFybGllc3RQcmVzZW50VGltZSA9IGVhcmxpZXN0X3RpbWU7CisgICB0 aW1pbmctPnRpbWluZy5wcmVzZW50TWFyZ2luID0gZWFybGllc3RfdGltZSAtIHJlbmRlcl90aW1l OworICAgdGltaW5nLT5jb21wbGV0ZSA9IHRydWU7CisKKyAgIHN3YXBjaGFpbi0+ZnJhbWVfbXNj ID0gbXNjOworICAgc3dhcGNoYWluLT5mcmFtZV91c3QgPSB1c3Q7Cit9CisKIFZrUmVzdWx0CiB3 c2lfY29tbW9uX3F1ZXVlX3ByZXNlbnQoY29uc3Qgc3RydWN0IHdzaV9kZXZpY2UgKndzaSwKICAg ICAgICAgICAgICAgICAgICAgICAgICBWa0RldmljZSBkZXZpY2UsCkBAIC05MjQsMTAgKzExMjYs MTMgQEAgd3NpX2NvbW1vbl9xdWV1ZV9wcmVzZW50KGNvbnN0IHN0cnVjdCB3c2lfZGV2aWNlICp3 c2ksCiAKICAgIGNvbnN0IFZrUHJlc2VudFJlZ2lvbnNLSFIgKnJlZ2lvbnMgPQogICAgICAgdmtf ZmluZF9zdHJ1Y3RfY29uc3QocFByZXNlbnRJbmZvLT5wTmV4dCwgUFJFU0VOVF9SRUdJT05TX0tI Uik7CisgICBjb25zdCBWa1ByZXNlbnRUaW1lc0luZm9HT09HTEUgKnByZXNlbnRfdGltZXNfaW5m byA9CisgICAgICB2a19maW5kX3N0cnVjdF9jb25zdChwUHJlc2VudEluZm8tPnBOZXh0LCBQUkVT RU5UX1RJTUVTX0lORk9fR09PR0xFKTsKIAogICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IHBQ cmVzZW50SW5mby0+c3dhcGNoYWluQ291bnQ7IGkrKykgewogICAgICAgV1NJX0ZST01fSEFORExF KHdzaV9zd2FwY2hhaW4sIHN3YXBjaGFpbiwgcFByZXNlbnRJbmZvLT5wU3dhcGNoYWluc1tpXSk7 CiAgICAgICBWa1Jlc3VsdCByZXN1bHQ7CisgICAgICBzdHJ1Y3Qgd3NpX3RpbWluZyAqdGltaW5n ID0gTlVMTDsKIAogICAgICAgaWYgKHN3YXBjaGFpbi0+ZmVuY2VzWzBdID09IFZLX05VTExfSEFO RExFKSB7CiAgICAgICAgICBjb25zdCBWa0ZlbmNlQ3JlYXRlSW5mbyBmZW5jZV9pbmZvID0gewpA QCAtOTQ0LDkgKzExNDksMTIgQEAgd3NpX2NvbW1vbl9xdWV1ZV9wcmVzZW50KGNvbnN0IHN0cnVj dCB3c2lfZGV2aWNlICp3c2ksCiAgICAgICAgICB3c2ktPlJlc2V0RmVuY2VzKGRldmljZSwgMSwg JnN3YXBjaGFpbi0+ZmVuY2VzWzBdKTsKICAgICAgIH0KIAorICAgICAgVmtDb21tYW5kQnVmZmVy IHN1Ym1pdF9idWZmZXJzWzJdOwogICAgICAgVmtTdWJtaXRJbmZvIHN1Ym1pdF9pbmZvID0gewog ICAgICAgICAgLnNUeXBlID0gVktfU1RSVUNUVVJFX1RZUEVfU1VCTUlUX0lORk8sCiAgICAgICAg ICAucE5leHQgPSBOVUxMLAorICAgICAgICAgLnBDb21tYW5kQnVmZmVycyA9IHN1Ym1pdF9idWZm ZXJzLAorICAgICAgICAgLmNvbW1hbmRCdWZmZXJDb3VudCA9IDAKICAgICAgIH07CiAKICAgICAg IFZrUGlwZWxpbmVTdGFnZUZsYWdzICpzdGFnZV9mbGFncyA9IE5VTEw7CkBAIC05NzksOSArMTE4 Nyw0OSBAQCB3c2lfY29tbW9uX3F1ZXVlX3ByZXNlbnQoY29uc3Qgc3RydWN0IHdzaV9kZXZpY2Ug KndzaSwKICAgICAgICAgICAqLwogICAgICAgICAgc3RydWN0IHdzaV9pbWFnZSAqaW1hZ2UgPQog ICAgICAgICAgICAgc3dhcGNoYWluLT5nZXRfd3NpX2ltYWdlKHN3YXBjaGFpbiwgcFByZXNlbnRJ bmZvLT5wSW1hZ2VJbmRpY2VzW2ldKTsKLSAgICAgICAgIHN1Ym1pdF9pbmZvLmNvbW1hbmRCdWZm ZXJDb3VudCA9IDE7Ci0gICAgICAgICBzdWJtaXRfaW5mby5wQ29tbWFuZEJ1ZmZlcnMgPQotICAg ICAgICAgICAgJmltYWdlLT5wcmltZS5ibGl0X2NtZF9idWZmZXJzW3F1ZXVlX2ZhbWlseV9pbmRl eF07CisgICAgICAgICBzdWJtaXRfYnVmZmVyc1tzdWJtaXRfaW5mby5jb21tYW5kQnVmZmVyQ291 bnQrK10gPSAKKyAgICAgICAgICAgIGltYWdlLT5wcmltZS5ibGl0X2NtZF9idWZmZXJzW3F1ZXVl X2ZhbWlseV9pbmRleF07CisgICAgICB9CisKKyAgICAgIC8qIFNldCB1cCBHT09HTEVfZGlzcGxh eV90aW1pbmcgYml0cyAqLworICAgICAgaWYgKHByZXNlbnRfdGltZXNfaW5mbyAmJgorICAgICAg ICAgIHByZXNlbnRfdGltZXNfaW5mby0+cFRpbWVzICE9IE5VTEwgJiYKKyAgICAgICAgICBpIDwg cHJlc2VudF90aW1lc19pbmZvLT5zd2FwY2hhaW5Db3VudCkKKyAgICAgIHsKKyAgICAgICAgIGNv bnN0IFZrUHJlc2VudFRpbWVHT09HTEUgKnByZXNlbnRfdGltZSA9CisgICAgICAgICAgICAmcHJl c2VudF90aW1lc19pbmZvLT5wVGltZXNbaV07CisKKyAgICAgICAgIHN0cnVjdCB3c2lfaW1hZ2Ug KmltYWdlID0KKyAgICAgICAgICAgIHN3YXBjaGFpbi0+Z2V0X3dzaV9pbWFnZShzd2FwY2hhaW4s IHBQcmVzZW50SW5mby0+cEltYWdlSW5kaWNlc1tpXSk7CisKKyAgICAgICAgIHRpbWluZyA9IHdz aV9uZXh0X3RpbWluZyhzd2FwY2hhaW4sIHBQcmVzZW50SW5mby0+cEltYWdlSW5kaWNlc1tpXSk7 CisgICAgICAgICB0aW1pbmctPnRpbWluZy5wcmVzZW50SUQgPSBwcmVzZW50X3RpbWUtPnByZXNl bnRJRDsKKyAgICAgICAgIHRpbWluZy0+dGltaW5nLmRlc2lyZWRQcmVzZW50VGltZSA9IHByZXNl bnRfdGltZS0+ZGVzaXJlZFByZXNlbnRUaW1lOworICAgICAgICAgdGltaW5nLT50YXJnZXRfbXNj ID0gMDsKKyAgICAgICAgIGltYWdlLT50aW1pbmcgPSB0aW1pbmc7CisKKyAgICAgICAgIGlmIChw cmVzZW50X3RpbWUtPmRlc2lyZWRQcmVzZW50VGltZSAhPSAwKQorICAgICAgICAgeworICAgICAg ICAgICAgaW50NjRfdCBkZWx0YV9uc2VjID0gKGludDY0X3QpIChwcmVzZW50X3RpbWUtPmRlc2ly ZWRQcmVzZW50VGltZSAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN3YXBjaGFpbi0+ZnJhbWVfdXN0KTsKKworICAgICAgICAgICAgLyogU2V0IHRoZSB0YXJn ZXQgbXNjIG9ubHkgaWYgaXQncyBubyBtb3JlIHRoYW4gdHdvIHNlY29uZHMgZnJvbQorICAgICAg ICAgICAgICogbm93LCBhbmQgbm90IHN0YWxlCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAg IGlmICgwIDw9IGRlbHRhX25zZWMgJiYgZGVsdGFfbnNlYyA8PSAyMDAwMDAwMDAwdWwpIHsKKyAg ICAgICAgICAgICAgIFZrUmVmcmVzaEN5Y2xlRHVyYXRpb25HT09HTEUgcmVmcmVzaF90aW1pbmc7 CisKKyAgICAgICAgICAgICAgIHN3YXBjaGFpbi0+Z2V0X3JlZnJlc2hfY3ljbGVfZHVyYXRpb24o c3dhcGNoYWluLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmcmVmcmVzaF90aW1pbmcpOworCisgICAgICAgICAgICAgICBpbnQ2NF90IHJlZnJl c2ggPSAoaW50NjRfdCkgcmVmcmVzaF90aW1pbmcucmVmcmVzaER1cmF0aW9uOworICAgICAgICAg ICAgICAgaW50NjRfdCBmcmFtZXMgPSAoZGVsdGFfbnNlYyArIHJlZnJlc2ggLSAxKSAvIHJlZnJl c2g7CisgICAgICAgICAgICAgICB0aW1pbmctPnRhcmdldF9tc2MgPSBzd2FwY2hhaW4tPmZyYW1l X21zYyArIGZyYW1lczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKworICAgICAgICAgc3Vi bWl0X2J1ZmZlcnNbc3VibWl0X2luZm8uY29tbWFuZEJ1ZmZlckNvdW50KytdID0KKyAgICAgICAg ICAgIGltYWdlLT50aW1lc3RhbXBfYnVmZmVyOwogICAgICAgfQogCiAgICAgICByZXN1bHQgPSB3 c2ktPlF1ZXVlU3VibWl0KHF1ZXVlLCAxLCAmc3VibWl0X2luZm8sIHN3YXBjaGFpbi0+ZmVuY2Vz WzBdKTsKQEAgLTEwMTksMyArMTI2Nyw1MiBAQCB3c2lfY29tbW9uX3F1ZXVlX3ByZXNlbnQoY29u c3Qgc3RydWN0IHdzaV9kZXZpY2UgKndzaSwKIAogICAgcmV0dXJuIGZpbmFsX3Jlc3VsdDsKIH0K KworVmtSZXN1bHQKK3dzaV9jb21tb25fZ2V0X3JlZnJlc2hfY3ljbGVfZHVyYXRpb24oCisgICBj b25zdCBzdHJ1Y3Qgd3NpX2RldmljZSAqd3NpLAorICAgVmtEZXZpY2UgZGV2aWNlX2gsCisgICBW a1N3YXBjaGFpbktIUiBfc3dhcGNoYWluLAorICAgVmtSZWZyZXNoQ3ljbGVEdXJhdGlvbkdPT0dM RSAqcERpc3BsYXlUaW1pbmdQcm9wZXJ0aWVzKQoreworICAgV1NJX0ZST01fSEFORExFKHdzaV9z d2FwY2hhaW4sIHN3YXBjaGFpbiwgX3N3YXBjaGFpbik7CisKKyAgIGlmICghc3dhcGNoYWluLT5n ZXRfcmVmcmVzaF9jeWNsZV9kdXJhdGlvbikKKyAgICAgIHJldHVybiBWS19FUlJPUl9FWFRFTlNJ T05fTk9UX1BSRVNFTlQ7CisgICByZXR1cm4gc3dhcGNoYWluLT5nZXRfcmVmcmVzaF9jeWNsZV9k dXJhdGlvbihzd2FwY2hhaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwRGlzcGxheVRpbWluZ1Byb3BlcnRpZXMpOworfQorCisKK1ZrUmVzdWx0Cit3 c2lfY29tbW9uX2dldF9wYXN0X3ByZXNlbnRhdGlvbl90aW1pbmcoCisgICBjb25zdCBzdHJ1Y3Qg d3NpX2RldmljZSAqd3NpLAorICAgVmtEZXZpY2UgZGV2aWNlX2gsCisgICBWa1N3YXBjaGFpbktI UiBfc3dhcGNoYWluLAorICAgdWludDMyX3QgKmNvdW50LAorICAgVmtQYXN0UHJlc2VudGF0aW9u VGltaW5nR09PR0xFICp0aW1pbmdzKQoreworICAgV1NJX0ZST01fSEFORExFKHdzaV9zd2FwY2hh aW4sIHN3YXBjaGFpbiwgX3N3YXBjaGFpbik7CisgICB1aW50MzJfdCB0aW1pbmdfY291bnRfcmVx dWVzdGVkID0gKmNvdW50OworICAgdWludDMyX3QgdGltaW5nX2NvdW50X2F2YWlsYWJsZSA9IDA7 CisKKyAgIC8qIENvdW50IHRoZSBudW1iZXIgb2YgY29tcGxldGVkIGVudHJpZXMsIGNvcHkgKi8K KyAgIGZvciAodWludDMyX3QgdCA9IDA7IHQgPCBzd2FwY2hhaW4tPnRpbWluZ19jb3VudDsgdCsr KSB7CisgICAgICBzdHJ1Y3Qgd3NpX3RpbWluZyAqdGltaW5nID0gd3NpX2dldF90aW1pbmcoc3dh cGNoYWluLCB0KTsKKworICAgICAgaWYgKHRpbWluZy0+Y29tcGxldGUgJiYgIXRpbWluZy0+Y29u c3VtZWQpIHsKKyAgICAgICAgIGlmICh0aW1pbmdzICYmIHRpbWluZ19jb3VudF9hdmFpbGFibGUg PCB0aW1pbmdfY291bnRfcmVxdWVzdGVkKSB7CisgICAgICAgICAgICB0aW1pbmdzW3RpbWluZ19j b3VudF9hdmFpbGFibGVdID0gdGltaW5nLT50aW1pbmc7CisgICAgICAgICAgICB0aW1pbmctPmNv bnN1bWVkID0gdHJ1ZTsKKyAgICAgICAgIH0KKyAgICAgICAgIHRpbWluZ19jb3VudF9hdmFpbGFi bGUrKzsKKyAgICAgIH0KKyAgIH0KKworICAgKmNvdW50ID0gdGltaW5nX2NvdW50X2F2YWlsYWJs ZTsKKworICAgaWYgKHRpbWluZ19jb3VudF9hdmFpbGFibGUgPiB0aW1pbmdfY291bnRfcmVxdWVz dGVkICYmIHRpbWluZ3MgIT0gTlVMTCkKKyAgICAgIHJldHVybiBWS19JTkNPTVBMRVRFOworCisg ICByZXR1cm4gVktfU1VDQ0VTUzsKK30KZGlmZiAtLWdpdCBhL3NyYy92dWxrYW4vd3NpL3dzaV9j b21tb24uaCBiL3NyYy92dWxrYW4vd3NpL3dzaV9jb21tb24uaAppbmRleCBmNmNhMDEzYzJhOC4u ZjA3Y2YzYTU4ODAgMTAwNjQ0Ci0tLSBhL3NyYy92dWxrYW4vd3NpL3dzaV9jb21tb24uaAorKysg Yi9zcmMvdnVsa2FuL3dzaS93c2lfY29tbW9uLmgKQEAgLTk2LDYgKzk2LDcgQEAgc3RydWN0IHdz aV9kZXZpY2UgewogICAgVmtQaHlzaWNhbERldmljZSBwZGV2aWNlOwogICAgVmtQaHlzaWNhbERl dmljZU1lbW9yeVByb3BlcnRpZXMgbWVtb3J5X3Byb3BzOwogICAgdWludDMyX3QgcXVldWVfZmFt aWx5X2NvdW50OworICAgZmxvYXQgdGltZXN0YW1wX3BlcmlvZDsKIAogICAgVmtQaHlzaWNhbERl dmljZVBDSUJ1c0luZm9Qcm9wZXJ0aWVzRVhUIHBjaV9idXNfaW5mbzsKIApAQCAtMTA5LDE0ICsx MTAsMTggQEAgc3RydWN0IHdzaV9kZXZpY2UgewogICAgV1NJX0NCKEJpbmRJbWFnZU1lbW9yeSk7 CiAgICBXU0lfQ0IoQmVnaW5Db21tYW5kQnVmZmVyKTsKICAgIFdTSV9DQihDbWRDb3B5SW1hZ2VU b0J1ZmZlcik7CisgICBXU0lfQ0IoQ21kUmVzZXRRdWVyeVBvb2wpOworICAgV1NJX0NCKENtZFdy aXRlVGltZXN0YW1wKTsKICAgIFdTSV9DQihDcmVhdGVCdWZmZXIpOwogICAgV1NJX0NCKENyZWF0 ZUNvbW1hbmRQb29sKTsKICAgIFdTSV9DQihDcmVhdGVGZW5jZSk7CiAgICBXU0lfQ0IoQ3JlYXRl SW1hZ2UpOworICAgV1NJX0NCKENyZWF0ZVF1ZXJ5UG9vbCk7CiAgICBXU0lfQ0IoRGVzdHJveUJ1 ZmZlcik7CiAgICBXU0lfQ0IoRGVzdHJveUNvbW1hbmRQb29sKTsKICAgIFdTSV9DQihEZXN0cm95 RmVuY2UpOwogICAgV1NJX0NCKERlc3Ryb3lJbWFnZSk7CisgICBXU0lfQ0IoRGVzdHJveVF1ZXJ5 UG9vbCk7CiAgICBXU0lfQ0IoRW5kQ29tbWFuZEJ1ZmZlcik7CiAgICBXU0lfQ0IoRnJlZU1lbW9y eSk7CiAgICBXU0lfQ0IoRnJlZUNvbW1hbmRCdWZmZXJzKTsKQEAgLTEyNCwxMCArMTI5LDE0IEBA IHN0cnVjdCB3c2lfZGV2aWNlIHsKICAgIFdTSV9DQihHZXRJbWFnZU1lbW9yeVJlcXVpcmVtZW50 cyk7CiAgICBXU0lfQ0IoR2V0SW1hZ2VTdWJyZXNvdXJjZUxheW91dCk7CiAgICBXU0lfQ0IoR2V0 TWVtb3J5RmRLSFIpOworICAgV1NJX0NCKEdldFBoeXNpY2FsRGV2aWNlUHJvcGVydGllcyk7CiAg ICBXU0lfQ0IoR2V0UGh5c2ljYWxEZXZpY2VGb3JtYXRQcm9wZXJ0aWVzKTsKICAgIFdTSV9DQihH ZXRQaHlzaWNhbERldmljZUZvcm1hdFByb3BlcnRpZXMyS0hSKTsKKyAgIFdTSV9DQihHZXRQaHlz aWNhbERldmljZVF1ZXVlRmFtaWx5UHJvcGVydGllcyk7CisgICBXU0lfQ0IoR2V0UXVlcnlQb29s UmVzdWx0cyk7CiAgICBXU0lfQ0IoUmVzZXRGZW5jZXMpOwogICAgV1NJX0NCKFF1ZXVlU3VibWl0 KTsKKyAgIFdTSV9DQihHZXRDYWxpYnJhdGVkVGltZXN0YW1wc0VYVCk7CiAgICBXU0lfQ0IoV2Fp dEZvckZlbmNlcyk7CiAjdW5kZWYgV1NJX0NCCiAKQEAgLTI0MSw0ICsyNTAsMjcgQEAgd3NpX2Nv bW1vbl9xdWV1ZV9wcmVzZW50KGNvbnN0IHN0cnVjdCB3c2lfZGV2aWNlICp3c2ksCiAgICAgICAg ICAgICAgICAgICAgICAgICAgaW50IHF1ZXVlX2ZhbWlseV9pbmRleCwKICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBWa1ByZXNlbnRJbmZvS0hSICpwUHJlc2VudEluZm8pOwogCitWa1Jl c3VsdAord3NpX2NvbW1vbl9jb252ZXJ0X3RpbWVzdGFtcChjb25zdCBzdHJ1Y3Qgd3NpX2Rldmlj ZSAqd3NpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWa0RldmljZSBkZXZpY2VfaCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmtTdXJmYWNlS0hSIHN1cmZhY2VfaCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgbW9ub3RvbmljX3RpbWVzdGFtcCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgKnN1cmZhY2VfdGltZXN0YW1w KTsKKworLyogVktfR09PR0xFX2Rpc3BsYXlfdGltaW5nICovCitWa1Jlc3VsdAord3NpX2NvbW1v bl9nZXRfcmVmcmVzaF9jeWNsZV9kdXJhdGlvbihjb25zdCBzdHJ1Y3Qgd3NpX2RldmljZSAqd3Np LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWa0RldmljZSBkZXZpY2Vf aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmtTd2FwY2hhaW5LSFIg c3dhcGNoYWluLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWa1JlZnJl c2hDeWNsZUR1cmF0aW9uR09PR0xFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICpwRGlzcGxheVRpbWluZ1Byb3BlcnRpZXMpOworCitWa1Jlc3VsdAord3NpX2NvbW1vbl9n ZXRfcGFzdF9wcmVzZW50YXRpb25fdGltaW5nKGNvbnN0IHN0cnVjdCB3c2lfZGV2aWNlICp3c2ks CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmtEZXZpY2UgZGV2aWNl X2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmtTd2FwY2hhaW5L SFIgc3dhcGNoYWluLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVp bnQzMl90ICpwUHJlc2VudGF0aW9uVGltaW5nQ291bnQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgVmtQYXN0UHJlc2VudGF0aW9uVGltaW5nR09PR0xFCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKnBQcmVzZW50YXRpb25UaW1pbmdzKTsK KwogI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvdnVsa2FuL3dzaS93c2lfY29tbW9uX2Rpc3BsYXku YyBiL3NyYy92dWxrYW4vd3NpL3dzaV9jb21tb25fZGlzcGxheS5jCmluZGV4IGZkMGQzMGFkODBj Li41ZjRkMTZiZjE3YiAxMDA2NDQKLS0tIGEvc3JjL3Z1bGthbi93c2kvd3NpX2NvbW1vbl9kaXNw bGF5LmMKKysrIGIvc3JjL3Z1bGthbi93c2kvd3NpX2NvbW1vbl9kaXNwbGF5LmMKQEAgLTc2LDYg Kzc2LDggQEAgdHlwZWRlZiBzdHJ1Y3Qgd3NpX2Rpc3BsYXlfY29ubmVjdG9yIHsKICAgIGNoYXIg ICAgICAgICAgICAgICAgICAgICAgICAgKm5hbWU7CiAgICBib29sICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbm5lY3RlZDsKICAgIGJvb2wgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZl OworICAgdWludDY0X3QgICAgICAgICAgICAgICAgICAgICBsYXN0X2ZyYW1lOworICAgdWludDY0 X3QgICAgICAgICAgICAgICAgICAgICBsYXN0X25zZWM7CiAgICBzdHJ1Y3QgbGlzdF9oZWFkICAg ICAgICAgICAgIGRpc3BsYXlfbW9kZXM7CiAgICB3c2lfZGlzcGxheV9tb2RlICAgICAgICAgICAg ICpjdXJyZW50X21vZGU7CiAgICBkcm1Nb2RlTW9kZUluZm8gICAgICAgICAgICAgIGN1cnJlbnRf ZHJtX21vZGU7CkBAIC0xMTAsNiArMTEyLDcgQEAgc3RydWN0IHdzaV9kaXNwbGF5IHsKIGVudW0g d3NpX2ltYWdlX3N0YXRlIHsKICAgIFdTSV9JTUFHRV9JRExFLAogICAgV1NJX0lNQUdFX0RSQVdJ TkcsCisgICBXU0lfSU1BR0VfV0FJVElORywKICAgIFdTSV9JTUFHRV9RVUVVRUQsCiAgICBXU0lf SU1BR0VfRkxJUFBJTkcsCiAgICBXU0lfSU1BR0VfRElTUExBWUlORwpAQCAtMTE5LDYgKzEyMiw3 IEBAIHN0cnVjdCB3c2lfZGlzcGxheV9pbWFnZSB7CiAgICBzdHJ1Y3Qgd3NpX2ltYWdlICAgICAg ICAgICAgIGJhc2U7CiAgICBzdHJ1Y3Qgd3NpX2Rpc3BsYXlfc3dhcGNoYWluICpjaGFpbjsKICAg IGVudW0gd3NpX2ltYWdlX3N0YXRlICAgICAgICAgc3RhdGU7CisgICBzdHJ1Y3Qgd3NpX2Rpc3Bs YXlfZmVuY2UgICAgICpmZW5jZTsKICAgIHVpbnQzMl90ICAgICAgICAgICAgICAgICAgICAgZmJf aWQ7CiAgICB1aW50MzJfdCAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcls0XTsKICAgIHVpbnQ2 NF90ICAgICAgICAgICAgICAgICAgICAgZmxpcF9zZXF1ZW5jZTsKQEAgLTEyOSw2ICsxMzMsNyBA QCBzdHJ1Y3Qgd3NpX2Rpc3BsYXlfc3dhcGNoYWluIHsKICAgIHN0cnVjdCB3c2lfZGlzcGxheSAg ICAgICAgICAgKndzaTsKICAgIFZrSWNkU3VyZmFjZURpc3BsYXkgICAgICAgICAgKnN1cmZhY2U7 CiAgICB1aW50NjRfdCAgICAgICAgICAgICAgICAgICAgIGZsaXBfc2VxdWVuY2U7CisgICBjb25z dCBWa0FsbG9jYXRpb25DYWxsYmFja3MgICphbGxvY2F0b3I7CiAgICBWa1Jlc3VsdCAgICAgICAg ICAgICAgICAgICAgIHN0YXR1czsKICAgIHN0cnVjdCB3c2lfZGlzcGxheV9pbWFnZSAgICAgaW1h Z2VzWzBdOwogfTsKQEAgLTEzOCw2ICsxNDMsNyBAQCBzdHJ1Y3Qgd3NpX2Rpc3BsYXlfZmVuY2Ug ewogICAgYm9vbCAgICAgICAgICAgICAgICAgICAgICAgICBldmVudF9yZWNlaXZlZDsKICAgIGJv b2wgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdHJveWVkOwogICAgdWludDY0X3QgICAgICAg ICAgICAgICAgICAgICBzZXF1ZW5jZTsKKyAgIHN0cnVjdCB3c2lfZGlzcGxheV9pbWFnZSAgICAg KmltYWdlOwogfTsKIAogc3RhdGljIHVpbnQ2NF90IGZlbmNlX3NlcXVlbmNlOwpAQCAtMTAwNiw2 ICsxMDEyLDcgQEAgd3NpX2Rpc3BsYXlfaW1hZ2VfaW5pdChWa0RldmljZSBkZXZpY2VfaCwKIAog ICAgaW1hZ2UtPmNoYWluID0gY2hhaW47CiAgICBpbWFnZS0+c3RhdGUgPSBXU0lfSU1BR0VfSURM RTsKKyAgIGltYWdlLT5mZW5jZSA9IE5VTEw7CiAgICBpbWFnZS0+ZmJfaWQgPSAwOwogCiAgICBp bnQgcmV0ID0gZHJtTW9kZUFkZEZCMih3c2ktPmZkLApAQCAtMTA5NSw2ICsxMTAyLDExIEBAIHdz aV9kaXNwbGF5X2lkbGVfb2xkX2Rpc3BsYXlpbmcoc3RydWN0IHdzaV9kaXNwbGF5X2ltYWdlICph Y3RpdmVfaW1hZ2UpCiBzdGF0aWMgVmtSZXN1bHQKIF93c2lfZGlzcGxheV9xdWV1ZV9uZXh0KHN0 cnVjdCB3c2lfc3dhcGNoYWluICpkcnZfY2hhaW4pOwogCitzdGF0aWMgdWludDY0X3Qgd2lkZW5f MzJfdG9fNjQodWludDMyX3QgbmFycm93LCB1aW50NjRfdCBuZWFyKQoreworCXJldHVybiBuZWFy ICsgKGludDMyX3QpIChuYXJyb3cgLSBuZWFyKTsKK30KKwogc3RhdGljIHZvaWQKIHdzaV9kaXNw bGF5X3BhZ2VfZmxpcF9oYW5kbGVyMihpbnQgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgaW50IGZyYW1lLApAQCAtMTEwNSwxNyArMTExNywzOCBAQCB3c2lfZGlz cGxheV9wYWdlX2ZsaXBfaGFuZGxlcjIoaW50IGZkLAogewogICAgc3RydWN0IHdzaV9kaXNwbGF5 X2ltYWdlICppbWFnZSA9IGRhdGE7CiAgICBzdHJ1Y3Qgd3NpX2Rpc3BsYXlfc3dhcGNoYWluICpj aGFpbiA9IGltYWdlLT5jaGFpbjsKKyAgIFZrSWNkU3VyZmFjZURpc3BsYXkgKnN1cmZhY2UgPSBj aGFpbi0+c3VyZmFjZTsKKyAgIHdzaV9kaXNwbGF5X21vZGUgKmRpc3BsYXlfbW9kZSA9CisgICAg ICB3c2lfZGlzcGxheV9tb2RlX2Zyb21faGFuZGxlKHN1cmZhY2UtPmRpc3BsYXlNb2RlKTsKKyAg IHdzaV9kaXNwbGF5X2Nvbm5lY3RvciAqY29ubmVjdG9yID0gZGlzcGxheV9tb2RlLT5jb25uZWN0 b3I7CisgICB1aW50NjRfdCBuc2VjID0gKHVpbnQ2NF90KSBzZWMgKiAxMDAwMDAwMDAwdWxsICsg KHVpbnQ2NF90KSB1c2VjICogMTAwMDsKIAogICAgd3NpX2Rpc3BsYXlfZGVidWcoImltYWdlICVs ZCBkaXNwbGF5ZWQgYXQgJWRcbiIsCiAgICAgICAgICAgICAgICAgICAgICBpbWFnZSAtICYoaW1h Z2UtPmNoYWluLT5pbWFnZXNbMF0pLCBmcmFtZSk7CisKKyAgIC8qIERvbid0IGxldCB0aW1lIGdv IGJhY2t3YXJkcyBiZWNhdXNlIHRoaXMgZnVuY3Rpb24gaGFzIGxvd2VyIHJlc29sdXRpb24KKyAg ICAqIHRoYW4ga3RpbWUgKi8KKworICAgaWYgKG5zZWMgPCBjb25uZWN0b3ItPmxhc3RfbnNlYykK KyAgICAgIG5zZWMgPSBjb25uZWN0b3ItPmxhc3RfbnNlYzsKKwogICAgaW1hZ2UtPnN0YXRlID0g V1NJX0lNQUdFX0RJU1BMQVlJTkc7CisKKyAgIHVpbnQ2NF90IGZyYW1lNjQgPSB3aWRlbl8zMl90 b182NChmcmFtZSwgY29ubmVjdG9yLT5sYXN0X2ZyYW1lKTsKKworICAgY29ubmVjdG9yLT5sYXN0 X2ZyYW1lID0gZnJhbWU2NDsKKyAgIGNvbm5lY3Rvci0+bGFzdF9uc2VjID0gbnNlYzsKKyAgIHdz aV9tYXJrX3RpbWluZygmaW1hZ2UtPmNoYWluLT5iYXNlLCAmaW1hZ2UtPmJhc2UsCisgICAgICAg ICAgICAgICAgICAgbnNlYywgZnJhbWU2NCk7CiAgICB3c2lfZGlzcGxheV9pZGxlX29sZF9kaXNw bGF5aW5nKGltYWdlKTsKICAgIFZrUmVzdWx0IHJlc3VsdCA9IF93c2lfZGlzcGxheV9xdWV1ZV9u ZXh0KCYoY2hhaW4tPmJhc2UpKTsKICAgIGlmIChyZXN1bHQgIT0gVktfU1VDQ0VTUykKICAgICAg IGNoYWluLT5zdGF0dXMgPSByZXN1bHQ7CiB9CiAKLXN0YXRpYyB2b2lkIHdzaV9kaXNwbGF5X2Zl bmNlX2V2ZW50X2hhbmRsZXIoc3RydWN0IHdzaV9kaXNwbGF5X2ZlbmNlICpmZW5jZSk7CitzdGF0 aWMgdm9pZCB3c2lfZGlzcGxheV9mZW5jZV9ldmVudF9oYW5kbGVyKHN0cnVjdCB3c2lfZGlzcGxh eV9mZW5jZSAqZmVuY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVpbnQ2NF90IG5zZWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVpbnQ2NF90IGZyYW1lKTsKIAogc3RhdGljIHZvaWQgd3NpX2Rpc3BsYXlfcGFnZV9m bGlwX2hhbmRsZXIoaW50IGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgaW50IGZyYW1lLApAQCAtMTEzMSw4ICsxMTY0LDE3IEBAIHN0YXRpYyB2 b2lkIHdzaV9kaXNwbGF5X3ZibGFua19oYW5kbGVyKGludCBmZCwgdW5zaWduZWQgaW50IGZyYW1l LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqZGF0YSkKIHsK ICAgIHN0cnVjdCB3c2lfZGlzcGxheV9mZW5jZSAqZmVuY2UgPSBkYXRhOworICAgc3RydWN0IHdz aV9kaXNwbGF5X2Nvbm5lY3RvciAqY29ubmVjdG9yID0KKyAgICAgIHdzaV9kaXNwbGF5X2Nvbm5l Y3Rvcl9mcm9tX2hhbmRsZShmZW5jZS0+YmFzZS5kaXNwbGF5KTsKKyAgIHVpbnQ2NF90IGZyYW1l NjQgPSB3aWRlbl8zMl90b182NChmcmFtZSwgY29ubmVjdG9yLT5sYXN0X2ZyYW1lKTsKKyAgIHVp bnQ2NF90IG5zZWMgPSAodWludDY0X3QpIHNlYyAqIDEwMDAwMDAwMDAgKyAodWludDY0X3QpIHVz ZWMgKiAxMDAwOwogCi0gICB3c2lfZGlzcGxheV9mZW5jZV9ldmVudF9oYW5kbGVyKGZlbmNlKTsK KyAgIC8qIERvbid0IGxldCB0aW1lIGdvIGJhY2t3YXJkcyBiZWNhdXNlIHRoaXMgZnVuY3Rpb24g aGFzIGxvd2VyIHJlc29sdXRpb24KKyAgICAqIHRoYW4ga3RpbWUgKi8KKyAgIGlmIChuc2VjIDwg Y29ubmVjdG9yLT5sYXN0X25zZWMpCisgICAgICBuc2VjID0gY29ubmVjdG9yLT5sYXN0X25zZWM7 CisKKyAgIHdzaV9kaXNwbGF5X2ZlbmNlX2V2ZW50X2hhbmRsZXIoZmVuY2UsIG5zZWMsIGZyYW1l NjQpOwogfQogCiBzdGF0aWMgdm9pZCB3c2lfZGlzcGxheV9zZXF1ZW5jZV9oYW5kbGVyKGludCBm ZCwgdWludDY0X3QgZnJhbWUsCkBAIC0xMTQxLDcgKzExODMsNyBAQCBzdGF0aWMgdm9pZCB3c2lf ZGlzcGxheV9zZXF1ZW5jZV9oYW5kbGVyKGludCBmZCwgdWludDY0X3QgZnJhbWUsCiAgICBzdHJ1 Y3Qgd3NpX2Rpc3BsYXlfZmVuY2UgKmZlbmNlID0KICAgICAgIChzdHJ1Y3Qgd3NpX2Rpc3BsYXlf ZmVuY2UgKikgKHVpbnRwdHJfdCkgdXNlcl9kYXRhOwogCi0gICB3c2lfZGlzcGxheV9mZW5jZV9l dmVudF9oYW5kbGVyKGZlbmNlKTsKKyAgIHdzaV9kaXNwbGF5X2ZlbmNlX2V2ZW50X2hhbmRsZXIo ZmVuY2UsIG5zZWMsIGZyYW1lKTsKIH0KIAogc3RhdGljIGRybUV2ZW50Q29udGV4dCBldmVudF9j b250ZXh0ID0gewpAQCAtMTQ3MywxMiArMTUxNSwzMSBAQCB3c2lfZGlzcGxheV9mZW5jZV9jaGVj a19mcmVlKHN0cnVjdCB3c2lfZGlzcGxheV9mZW5jZSAqZmVuY2UpCiAgICAgICB2a19mcmVlKGZl bmNlLT5iYXNlLmFsbG9jLCBmZW5jZSk7CiB9CiAKLXN0YXRpYyB2b2lkIHdzaV9kaXNwbGF5X2Zl bmNlX2V2ZW50X2hhbmRsZXIoc3RydWN0IHdzaV9kaXNwbGF5X2ZlbmNlICpmZW5jZSkKK3N0YXRp YyB2b2lkIHdzaV9kaXNwbGF5X2ZlbmNlX2V2ZW50X2hhbmRsZXIoc3RydWN0IHdzaV9kaXNwbGF5 X2ZlbmNlICpmZW5jZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdWludDY0X3QgbnNlYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdWludDY0X3QgZnJhbWUpCiB7CisgICBzdHJ1Y3Qgd3NpX2Rpc3BsYXlfY29ubmVjdG9y ICpjb25uZWN0b3IgPQorICAgICAgd3NpX2Rpc3BsYXlfY29ubmVjdG9yX2Zyb21faGFuZGxlKGZl bmNlLT5iYXNlLmRpc3BsYXkpOworICAgc3RydWN0IHdzaV9kaXNwbGF5X2ltYWdlICppbWFnZSA9 IGZlbmNlLT5pbWFnZTsKKworICAgd3NpX2Rpc3BsYXlfZGVidWcoIiU5bHUgZmVuY2UgJWx1IHJl Y2VpdmVkICVsdSBuc2VjICVsdVxuIiwKKyAgICAgICAgICAgICAgICAgICAgIHB0aHJlYWRfc2Vs ZigpLCBmZW5jZS0+c2VxdWVuY2UsIGZyYW1lLCBuc2VjKTsKKworICAgY29ubmVjdG9yLT5sYXN0 X25zZWMgPSBuc2VjOworICAgY29ubmVjdG9yLT5sYXN0X2ZyYW1lID0gZnJhbWU7CiAgICBmZW5j ZS0+ZXZlbnRfcmVjZWl2ZWQgPSB0cnVlOwogICAgd3NpX2Rpc3BsYXlfZmVuY2VfY2hlY2tfZnJl ZShmZW5jZSk7CisgICBpZiAoaW1hZ2UpIHsKKyAgICAgIGltYWdlLT5mbGlwX3NlcXVlbmNlID0g KytpbWFnZS0+Y2hhaW4tPmZsaXBfc2VxdWVuY2U7CisgICAgICBpbWFnZS0+c3RhdGUgPSBXU0lf SU1BR0VfUVVFVUVEOworICAgICAgVmtSZXN1bHQgcmVzdWx0ID0gX3dzaV9kaXNwbGF5X3F1ZXVl X25leHQoJmltYWdlLT5jaGFpbi0+YmFzZSk7CisgICAgICBpZiAocmVzdWx0ICE9IFZLX1NVQ0NF U1MpCisgICAgICAgICBpbWFnZS0+Y2hhaW4tPnN0YXR1cyA9IHJlc3VsdDsKKyAgIH0KIH0KIAor CiBzdGF0aWMgdm9pZAogd3NpX2Rpc3BsYXlfZmVuY2VfZGVzdHJveShzdHJ1Y3Qgd3NpX2ZlbmNl ICpmZW5jZV93c2kpCiB7CkBAIC0xNTEzLDYgKzE1NzQsNyBAQCB3c2lfZGlzcGxheV9mZW5jZV9h bGxvYyhWa0RldmljZSBkZXZpY2UsCiAgICBmZW5jZS0+ZXZlbnRfcmVjZWl2ZWQgPSBmYWxzZTsK ICAgIGZlbmNlLT5kZXN0cm95ZWQgPSBmYWxzZTsKICAgIGZlbmNlLT5zZXF1ZW5jZSA9ICsrZmVu Y2Vfc2VxdWVuY2U7CisgICBmZW5jZS0+aW1hZ2UgPSBOVUxMOwogICAgcmV0dXJuIGZlbmNlOwog fQogCkBAIC0xNjIwLDcgKzE2ODIsMTQgQEAgX3dzaV9kaXNwbGF5X3F1ZXVlX25leHQoc3RydWN0 IHdzaV9zd2FwY2hhaW4gKmRydl9jaGFpbikKICAgICAgIGlmICghaW1hZ2UpCiAgICAgICAgICBy ZXR1cm4gVktfU1VDQ0VTUzsKIAorICAgICAgaWYgKGltYWdlLT5mZW5jZSkgeworICAgICAgICAg aW1hZ2UtPmZlbmNlLT5pbWFnZSA9IE5VTEw7CisgICAgICAgICB3c2lfZGlzcGxheV9mZW5jZV9k ZXN0cm95KCZpbWFnZS0+ZmVuY2UtPmJhc2UpOworICAgICAgICAgaW1hZ2UtPmZlbmNlID0gTlVM TDsKKyAgICAgIH0KKwogICAgICAgaW50IHJldDsKKwogICAgICAgaWYgKGNvbm5lY3Rvci0+YWN0 aXZlKSB7CiAgICAgICAgICByZXQgPSBkcm1Nb2RlUGFnZUZsaXAod3NpLT5mZCwgY29ubmVjdG9y LT5jcnRjX2lkLCBpbWFnZS0+ZmJfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIERSTV9NT0RFX1BBR0VfRkxJUF9FVkVOVCwgaW1hZ2UpOwpAQCAtMTY5MSw2ICsxNzYwLDY2 IEBAIHdzaV9kaXNwbGF5X3F1ZXVlX3ByZXNlbnQoc3RydWN0IHdzaV9zd2FwY2hhaW4gKmRydl9j aGFpbiwKIAogICAgcHRocmVhZF9tdXRleF9sb2NrKCZ3c2ktPndhaXRfbXV0ZXgpOwogCisgICBp ZiAoaW1hZ2UtPmJhc2UudGltaW5nICYmIGltYWdlLT5iYXNlLnRpbWluZy0+dGFyZ2V0X21zYyAh PSAwKSB7CisgICAgICBWa0ljZFN1cmZhY2VEaXNwbGF5ICpzdXJmYWNlID0gY2hhaW4tPnN1cmZh Y2U7CisgICAgICB3c2lfZGlzcGxheV9tb2RlICpkaXNwbGF5X21vZGUgPQorICAgICAgICAgd3Np X2Rpc3BsYXlfbW9kZV9mcm9tX2hhbmRsZShzdXJmYWNlLT5kaXNwbGF5TW9kZSk7CisgICAgICB3 c2lfZGlzcGxheV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IGRpc3BsYXlfbW9kZS0+Y29ubmVjdG9y OworCisgICAgICB3c2lfZGlzcGxheV9kZWJ1ZygiZGVsdGEgZnJhbWUgJWxkXG4iLAorICAgICAg ICAgICAgICAgICAgICAgICAgaW1hZ2UtPmJhc2UudGltaW5nLT50YXJnZXRfbXNjIC0gY29ubmVj dG9yLT5sYXN0X2ZyYW1lKTsKKyAgICAgIGlmIChpbWFnZS0+YmFzZS50aW1pbmctPnRhcmdldF9t c2MgPiBjb25uZWN0b3ItPmxhc3RfZnJhbWUpIHsKKyAgICAgICAgIHVpbnQ2NF90IGZyYW1lX3F1 ZXVlZDsKKyAgICAgICAgIFZrRGlzcGxheUtIUiBkaXNwbGF5ID0gd3NpX2Rpc3BsYXlfY29ubmVj dG9yX3RvX2hhbmRsZShjb25uZWN0b3IpOworCisgICAgICAgICB3c2lfZGlzcGxheV9kZWJ1Z19j b2RlKHVpbnQ2NF90IGN1cnJlbnRfZnJhbWUsIGN1cnJlbnRfbnNlYzsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZHJtQ3J0Y0dldFNlcXVlbmNlKHdzaS0+ZmQsIGNvbm5lY3Rvci0+ Y3J0Y19pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICZjdXJyZW50X2ZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJmN1cnJlbnRfbnNlYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHdzaV9kaXNwbGF5X2RlYnVnKCJmcm9tIGN1cnJlbnQ6ICVsZFxuIiwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2UtPmJhc2UudGlt aW5nLT50YXJnZXRfbXNjCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC0gY3VycmVudF9mcmFtZSkpOworCisgICAgICAgICBpbWFnZS0+ZmVuY2UgPSB3 c2lfZGlzcGxheV9mZW5jZV9hbGxvYyhjaGFpbi0+YmFzZS5kZXZpY2UsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFpbi0+YmFzZS53c2ksCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5LCAmY2hh aW4tPmJhc2UuYWxsb2MpOworCisgICAgICAgICBpZiAoIWltYWdlLT5mZW5jZSkgeworICAgICAg ICAgICAgcmVzdWx0ID0gVktfRVJST1JfT1VUX09GX0hPU1RfTUVNT1JZOworICAgICAgICAgICAg Z290byBiYWlsX3VubG9jazsKKyAgICAgICAgIH0KKworICAgICAgICAgcmVzdWx0ID0gd3NpX3Jl Z2lzdGVyX3ZibGFua19ldmVudChpbWFnZS0+ZmVuY2UsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNoYWluLT5iYXNlLndzaSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW1hZ2UtPmJhc2UudGltaW5nLT50YXJnZXRfbXNjIC0gMSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZyYW1lX3F1ZXVlZCk7CisK KyAgICAgICAgIGlmIChyZXN1bHQgIT0gVktfU1VDQ0VTUykKKyAgICAgICAgICAgIGdvdG8gYmFp bF91bmxvY2s7CisKKyAgICAgICAgIC8qIENoZWNrIGFuZCBtYWtlIHN1cmUgd2UgYXJlIHF1ZXVl ZCBmb3IgdGhlIHJpZ2h0IGZyYW1lLCBvdGhlcndpc2UKKyAgICAgICAgICAqIGp1c3QgZ28gcXVl dWUgYW4gaW1hZ2UKKyAgICAgICAgICAqLworICAgICAgICAgaWYgKGZyYW1lX3F1ZXVlZCA8PSBp bWFnZS0+YmFzZS50aW1pbmctPnRhcmdldF9tc2MgLSAxKSB7CisgICAgICAgICAgICBpbWFnZS0+ c3RhdGUgPSBXU0lfSU1BR0VfV0FJVElORzsKKworICAgICAgICAgICAgLyoKKyAgICAgICAgICAg ICAqIERvbid0IHNldCB0aGUgaW1hZ2UgbWVtYmVyIHVudGlsIHdlJ3JlIGdvaW5nIHRvIHdhaXQg Zm9yIHRoZQorICAgICAgICAgICAgICogZXZlbnQgdG8gYXJyaXZlIGJlZm9yZSBmbGlwcGluZyB0 byB0aGUgaW1hZ2UuIFRoYXQgd2F5LCBpZiB0aGUKKyAgICAgICAgICAgICAqIHJlZ2lzdGVyX3Zi bGFua19ldmVudCBjYWxsIGhhcHBlbnMgdG8gcHJvY2VzcyB0aGUgZXZlbnQsIGl0CisgICAgICAg ICAgICAgKiB3b24ndCBhY3R1YWxseSBkbyBhbnl0aGluZworICAgICAgICAgICAgICovCisgICAg ICAgICAgICBpbWFnZS0+ZmVuY2UtPmltYWdlID0gaW1hZ2U7CisgICAgICAgICAgICB3c2lfZGlz cGxheV9zdGFydF93YWl0X3RocmVhZCh3c2kpOworICAgICAgICAgICAgcmVzdWx0ID0gVktfU1VD Q0VTUzsKKyAgICAgICAgICAgIGdvdG8gYmFpbF91bmxvY2s7CisgICAgICAgICB9CisKKyAgICAg IH0KKyAgIH0KKwogICAgaW1hZ2UtPmZsaXBfc2VxdWVuY2UgPSArK2NoYWluLT5mbGlwX3NlcXVl bmNlOwogICAgaW1hZ2UtPnN0YXRlID0gV1NJX0lNQUdFX1FVRVVFRDsKIApAQCAtMTY5OCw2ICsx ODI3LDcgQEAgd3NpX2Rpc3BsYXlfcXVldWVfcHJlc2VudChzdHJ1Y3Qgd3NpX3N3YXBjaGFpbiAq ZHJ2X2NoYWluLAogICAgaWYgKHJlc3VsdCAhPSBWS19TVUNDRVNTKQogICAgICAgY2hhaW4tPnN0 YXR1cyA9IHJlc3VsdDsKIAorYmFpbF91bmxvY2s6CiAgICBwdGhyZWFkX211dGV4X3VubG9jaygm d3NpLT53YWl0X211dGV4KTsKIAogICAgaWYgKHJlc3VsdCAhPSBWS19TVUNDRVNTKQpAQCAtMTcw Niw2ICsxODM2LDIxIEBAIHdzaV9kaXNwbGF5X3F1ZXVlX3ByZXNlbnQoc3RydWN0IHdzaV9zd2Fw Y2hhaW4gKmRydl9jaGFpbiwKICAgIHJldHVybiBjaGFpbi0+c3RhdHVzOwogfQogCitzdGF0aWMg VmtSZXN1bHQKK3dzaV9kaXNwbGF5X2dldF9yZWZyZXNoX2N5Y2xlX2R1cmF0aW9uKHN0cnVjdCB3 c2lfc3dhcGNoYWluICpkcnZfY2hhaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBWa1JlZnJlc2hDeWNsZUR1cmF0aW9uR09PR0xFICpkdXJhdGlvbikKK3sKKyAgIHN0 cnVjdCB3c2lfZGlzcGxheV9zd2FwY2hhaW4gKmNoYWluID0KKyAgICAgIChzdHJ1Y3Qgd3NpX2Rp c3BsYXlfc3dhcGNoYWluICopIGRydl9jaGFpbjsKKyAgIFZrSWNkU3VyZmFjZURpc3BsYXkgKnN1 cmZhY2UgPSBjaGFpbi0+c3VyZmFjZTsKKyAgIHdzaV9kaXNwbGF5X21vZGUgKmRpc3BsYXlfbW9k ZSA9CisgICAgICB3c2lfZGlzcGxheV9tb2RlX2Zyb21faGFuZGxlKHN1cmZhY2UtPmRpc3BsYXlN b2RlKTsKKyAgIGRvdWJsZSByZWZyZXNoID0gd3NpX2Rpc3BsYXlfbW9kZV9yZWZyZXNoKGRpc3Bs YXlfbW9kZSk7CisKKyAgIGR1cmF0aW9uLT5yZWZyZXNoRHVyYXRpb24gPSAodWludDY0X3QpIChm bG9vciAoMS4wL3JlZnJlc2ggKiAxZTkgKyAwLjUpKTsKKyAgIHJldHVybiBWS19TVUNDRVNTOwor fQorCiBzdGF0aWMgVmtSZXN1bHQKIHdzaV9kaXNwbGF5X3N1cmZhY2VfY3JlYXRlX3N3YXBjaGFp bigKICAgIFZrSWNkU3VyZmFjZUJhc2UgKmljZF9zdXJmYWNlLApAQCAtMTc0MCwxMCArMTg4NSwx MyBAQCB3c2lfZGlzcGxheV9zdXJmYWNlX2NyZWF0ZV9zd2FwY2hhaW4oCiAgICBjaGFpbi0+YmFz ZS5nZXRfd3NpX2ltYWdlID0gd3NpX2Rpc3BsYXlfZ2V0X3dzaV9pbWFnZTsKICAgIGNoYWluLT5i YXNlLmFjcXVpcmVfbmV4dF9pbWFnZSA9IHdzaV9kaXNwbGF5X2FjcXVpcmVfbmV4dF9pbWFnZTsK ICAgIGNoYWluLT5iYXNlLnF1ZXVlX3ByZXNlbnQgPSB3c2lfZGlzcGxheV9xdWV1ZV9wcmVzZW50 OworICAgY2hhaW4tPmJhc2UuZ2V0X3JlZnJlc2hfY3ljbGVfZHVyYXRpb24gPQorICAgICAgd3Np X2Rpc3BsYXlfZ2V0X3JlZnJlc2hfY3ljbGVfZHVyYXRpb247CiAgICBjaGFpbi0+YmFzZS5wcmVz ZW50X21vZGUgPSBjcmVhdGVfaW5mby0+cHJlc2VudE1vZGU7CiAgICBjaGFpbi0+YmFzZS5pbWFn ZV9jb3VudCA9IG51bV9pbWFnZXM7CiAKICAgIGNoYWluLT53c2kgPSB3c2k7CisgICBjaGFpbi0+ YWxsb2NhdG9yID0gYWxsb2NhdG9yOwogICAgY2hhaW4tPnN0YXR1cyA9IFZLX1NVQ0NFU1M7CiAK ICAgIGNoYWluLT5zdXJmYWNlID0gKFZrSWNkU3VyZmFjZURpc3BsYXkgKikgaWNkX3N1cmZhY2U7 CkBAIC0yNDc5LDkgKzI2MjcsMTQgQEAgd3NpX2dldF9zd2FwY2hhaW5fY291bnRlcihWa0Rldmlj ZSBkZXZpY2UsCiAgICAgICByZXR1cm4gVktfU1VDQ0VTUzsKICAgIH0KIAotICAgaW50IHJldCA9 IGRybUNydGNHZXRTZXF1ZW5jZSh3c2ktPmZkLCBjb25uZWN0b3ItPmNydGNfaWQsIHZhbHVlLCBO VUxMKTsKLSAgIGlmIChyZXQpCisgICB1aW50NjRfdCBuc2VjOworICAgaW50IHJldCA9IGRybUNy dGNHZXRTZXF1ZW5jZSh3c2ktPmZkLCBjb25uZWN0b3ItPmNydGNfaWQsIHZhbHVlLCAmbnNlYyk7 CisgICBpZiAocmV0KSB7CiAgICAgICAqdmFsdWUgPSAwOworICAgfSBlbHNlIHsKKyAgICAgIGNv bm5lY3Rvci0+bGFzdF9mcmFtZSA9ICp2YWx1ZTsKKyAgICAgIGNvbm5lY3Rvci0+bGFzdF9uc2Vj ID0gbnNlYzsKKyAgIH0KIAogICAgcmV0dXJuIFZLX1NVQ0NFU1M7CiB9CmRpZmYgLS1naXQgYS9z cmMvdnVsa2FuL3dzaS93c2lfY29tbW9uX3ByaXZhdGUuaCBiL3NyYy92dWxrYW4vd3NpL3dzaV9j b21tb25fcHJpdmF0ZS5oCmluZGV4IDUwYTc4YWNhY2IwLi5hMGM5Nzk0Mjk1NCAxMDA2NDQKLS0t IGEvc3JjL3Z1bGthbi93c2kvd3NpX2NvbW1vbl9wcml2YXRlLmgKKysrIGIvc3JjL3Z1bGthbi93 c2kvd3NpX2NvbW1vbl9wcml2YXRlLmgKQEAgLTI1LDYgKzI1LDEzIEBACiAKICNpbmNsdWRlICJ3 c2lfY29tbW9uLmgiCiAKK3N0cnVjdCB3c2lfdGltaW5nIHsKKyAgIGJvb2wgY29tcGxldGU7Cisg ICBib29sIGNvbnN1bWVkOworICAgdWludDY0X3QgdGFyZ2V0X21zYzsKKyAgIFZrUGFzdFByZXNl bnRhdGlvblRpbWluZ0dPT0dMRSB0aW1pbmc7Cit9OworCiBzdHJ1Y3Qgd3NpX2ltYWdlIHsKICAg IFZrSW1hZ2UgaW1hZ2U7CiAgICBWa0RldmljZU1lbW9yeSBtZW1vcnk7CkBAIC00MSw4ICs0OCwx NiBAQCBzdHJ1Y3Qgd3NpX2ltYWdlIHsKICAgIHVpbnQzMl90IG9mZnNldHNbNF07CiAgICB1aW50 MzJfdCByb3dfcGl0Y2hlc1s0XTsKICAgIGludCBmZHNbNF07CisKKyAgIFZrUXVlcnlQb29sIHF1 ZXJ5X3Bvb2w7CisKKyAgIFZrQ29tbWFuZEJ1ZmZlciB0aW1lc3RhbXBfYnVmZmVyOworCisgICBz dHJ1Y3Qgd3NpX3RpbWluZyAqdGltaW5nOwogfTsKIAorI2RlZmluZSBXU0lfVElNSU5HX0hJU1RP UlkgICAgICAxNgorCiBzdHJ1Y3Qgd3NpX3N3YXBjaGFpbiB7CiAgICBjb25zdCBzdHJ1Y3Qgd3Np X2RldmljZSAqd3NpOwogCkBAIC01NCw2ICs2OSwxNiBAQCBzdHJ1Y3Qgd3NpX3N3YXBjaGFpbiB7 CiAKICAgIGJvb2wgdXNlX3ByaW1lX2JsaXQ7CiAKKyAgIHVpbnQzMl90IHRpbWluZ19pbnNlcnQ7 CisgICB1aW50MzJfdCB0aW1pbmdfY291bnQ7CisKKyAgIHN0cnVjdCB3c2lfdGltaW5nIHRpbWlu Z1tXU0lfVElNSU5HX0hJU1RPUlldOworCisgICB1aW50NjRfdCBmcmFtZV9tc2M7CisgICB1aW50 NjRfdCBmcmFtZV91c3Q7CisKKyAgIGZsb2F0IHRpbWVzdGFtcF9wZXJpb2Q7CisKICAgIC8qIENv bW1hbmQgcG9vbHMsIG9uZSBwZXIgcXVldWUgZmFtaWx5ICovCiAgICBWa0NvbW1hbmRQb29sICpj bWRfcG9vbHM7CiAKQEAgLTY3LDYgKzkyLDEwIEBAIHN0cnVjdCB3c2lfc3dhcGNoYWluIHsKICAg IFZrUmVzdWx0ICgqcXVldWVfcHJlc2VudCkoc3RydWN0IHdzaV9zd2FwY2hhaW4gKnN3YXBfY2hh aW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGltYWdlX2luZGV4LAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBWa1ByZXNlbnRSZWdpb25LSFIgKmRh bWFnZSk7CisgICBWa1Jlc3VsdCAoKmdldF9yZWZyZXNoX2N5Y2xlX2R1cmF0aW9uKShzdHJ1Y3Qg d3NpX3N3YXBjaGFpbiAqc3dhcF9jaGFpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFZrUmVmcmVzaEN5Y2xlRHVyYXRpb25HT09HTEUKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICpwRGlzcGxheVRpbWluZ1Byb3BlcnRpZXMpOwor CiB9OwogCiBib29sCkBAIC0xMDAsNiArMTI5LDEyIEBAIHdzaV9kZXN0cm95X2ltYWdlKGNvbnN0 IHN0cnVjdCB3c2lfc3dhcGNoYWluICpjaGFpbiwKICAgICAgICAgICAgICAgICAgIHN0cnVjdCB3 c2lfaW1hZ2UgKmltYWdlKTsKIAogCit2b2lkCit3c2lfbWFya190aW1pbmcoc3RydWN0IHdzaV9z d2FwY2hhaW4gKnN3YXBjaGFpbiwKKyAgICAgICAgICAgICAgICBzdHJ1Y3Qgd3NpX2ltYWdlICpp bWFnZSwKKyAgICAgICAgICAgICAgICB1aW50NjRfdCB1c3QsCisgICAgICAgICAgICAgICAgdWlu dDY0X3QgbXNjKTsKKwogc3RydWN0IHdzaV9pbnRlcmZhY2UgewogICAgVmtSZXN1bHQgKCpnZXRf c3VwcG9ydCkoVmtJY2RTdXJmYWNlQmFzZSAqc3VyZmFjZSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCB3c2lfZGV2aWNlICp3c2lfZGV2aWNlLApkaWZmIC0tZ2l0IGEvc3JjL3Z1 bGthbi93c2kvd3NpX2NvbW1vbl94MTEuYyBiL3NyYy92dWxrYW4vd3NpL3dzaV9jb21tb25feDEx LmMKaW5kZXggYzc0MDcyNmZlNTQuLjQ4MjEzMjllNTMzIDEwMDY0NAotLS0gYS9zcmMvdnVsa2Fu L3dzaS93c2lfY29tbW9uX3gxMS5jCisrKyBiL3NyYy92dWxrYW4vd3NpL3dzaV9jb21tb25feDEx LmMKQEAgLTY4Nyw2ICs2ODcsNyBAQCBzdHJ1Y3QgeDExX2ltYWdlIHsKICAgIGJvb2wgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1c3k7CiAgICBzdHJ1Y3QgeHNobWZlbmNl ICogICAgICAgICAgICAgICAgICAgICAgICBzaG1fZmVuY2U7CiAgICB1aW50MzJfdCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzeW5jX2ZlbmNlOworICAgdWludDMyX3QgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VyaWFsOwogfTsKIAogc3RydWN0IHgxMV9zd2Fw Y2hhaW4gewpAQCAtNzA1LDYgKzcwNiw4IEBAIHN0cnVjdCB4MTFfc3dhcGNoYWluIHsKICAgIHVp bnQ2NF90ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbmRfc2JjOwogICAg dWludDY0X3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdF9wcmVzZW50 X21zYzsKICAgIHVpbnQzMl90ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 YW1wOworICAgdWludDY0X3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFz dF9wcmVzZW50X25zZWM7CisgICB1aW50NjRfdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICByZWZyZXNoX3BlcmlvZDsKIAogICAgYm9vbCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdGhyZWFkZWQ7CiAgICBWa1Jlc3VsdCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdGF0dXM7CkBAIC03OTYsOCArNzk5LDM5IEBAIHgxMV9oYW5k bGVfZHJpM19wcmVzZW50X2V2ZW50KHN0cnVjdCB4MTFfc3dhcGNoYWluICpjaGFpbiwKIAogICAg Y2FzZSBYQ0JfUFJFU0VOVF9FVkVOVF9DT01QTEVURV9OT1RJRlk6IHsKICAgICAgIHhjYl9wcmVz ZW50X2NvbXBsZXRlX25vdGlmeV9ldmVudF90ICpjb21wbGV0ZSA9ICh2b2lkICopIGV2ZW50Owot ICAgICAgaWYgKGNvbXBsZXRlLT5raW5kID09IFhDQl9QUkVTRU5UX0NPTVBMRVRFX0tJTkRfUElY TUFQKQorICAgICAgaWYgKGNvbXBsZXRlLT5raW5kID09IFhDQl9QUkVTRU5UX0NPTVBMRVRFX0tJ TkRfUElYTUFQKSB7CisgICAgICAgICB1aW50NjRfdCBmcmFtZXMgPSBjb21wbGV0ZS0+bXNjIC0g Y2hhaW4tPmxhc3RfcHJlc2VudF9tc2M7CisgICAgICAgICB1aW50NjRfdCBwcmVzZW50X25zZWMg PSBjb21wbGV0ZS0+dXN0ICogMTAwMDsKKworICAgICAgICAgLyoKKyAgICAgICAgICAqIFdlbGws IHRoaXMgaXMgYWJvdXQgYXMgZ29vZCBhcyB3ZSBjYW4gZG8gLS0gbWVhc3VyZSB0aGUgcmVmcmVz aAorICAgICAgICAgICogaW5zdGVhZCBvZiBhc2tpbmcgZm9yIHRoZSBjdXJyZW50IG1vZGUgYW5k IHVzaW5nIHRoYXQuIFR1cm5zIG91dCwKKyAgICAgICAgICAqIGZvciBlRFAgcGFuZWxzLCB0aGlz IHdvcmtzIGJldHRlciBhbnl3YXlzIGFzIHRoZXkgdXNlIHRoZSBidWlsdGluCisgICAgICAgICAg KiBmaXhlZCBtb2RlIGZvciBldmVyeXRoaW5nCisgICAgICAgICAgKi8KKyAgICAgICAgIGlmICgw IDwgZnJhbWVzICYmIGZyYW1lcyA8IDEwICYmCisgICAgICAgICAgICAgcHJlc2VudF9uc2VjID4g Y2hhaW4tPmxhc3RfcHJlc2VudF9uc2VjKQorICAgICAgICAgeworICAgICAgICAgICAgdWludDY0 X3QgcmVmcmVzaF9wZXJpb2QgPQorICAgICAgICAgICAgICAgKHByZXNlbnRfbnNlYyAtIGNoYWlu LT5sYXN0X3ByZXNlbnRfbnNlYyArIGZyYW1lcyAvIDIpIC8gZnJhbWVzOworCisgICAgICAgICAg ICBpZiAoY2hhaW4tPnJlZnJlc2hfcGVyaW9kKQorICAgICAgICAgICAgICAgcmVmcmVzaF9wZXJp b2QgPQorICAgICAgICAgICAgICAgICAgKDMgKiBjaGFpbi0+cmVmcmVzaF9wZXJpb2QgKyByZWZy ZXNoX3BlcmlvZCkgPj4gMjsKKworICAgICAgICAgICAgY2hhaW4tPnJlZnJlc2hfcGVyaW9kID0g cmVmcmVzaF9wZXJpb2Q7CisgICAgICAgICB9CisKICAgICAgICAgIGNoYWluLT5sYXN0X3ByZXNl bnRfbXNjID0gY29tcGxldGUtPm1zYzsKKyAgICAgICAgIGNoYWluLT5sYXN0X3ByZXNlbnRfbnNl YyA9IHByZXNlbnRfbnNlYzsKKyAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjaGFp bi0+YmFzZS5pbWFnZV9jb3VudDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoY2hhaW4tPmltYWdl c1tpXS5zZXJpYWwgPT0gY29tcGxldGUtPnNlcmlhbCkgeworICAgICAgICAgICAgICAgd3NpX21h cmtfdGltaW5nKCZjaGFpbi0+YmFzZSwgJmNoYWluLT5pbWFnZXNbaV0uYmFzZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwcmVzZW50X25zZWMsIGNvbXBsZXRlLT5tc2MpOworICAg ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgICB9CiAK ICAgICAgIFZrUmVzdWx0IHJlc3VsdCA9IFZLX1NVQ0NFU1M7CiAKQEAgLTk0MSw3ICs5NzUsNyBA QCB4MTFfYWNxdWlyZV9uZXh0X2ltYWdlX2Zyb21fcXVldWUoc3RydWN0IHgxMV9zd2FwY2hhaW4g KmNoYWluLAogCiBzdGF0aWMgVmtSZXN1bHQKIHgxMV9wcmVzZW50X3RvX3gxMShzdHJ1Y3QgeDEx X3N3YXBjaGFpbiAqY2hhaW4sIHVpbnQzMl90IGltYWdlX2luZGV4LAotICAgICAgICAgICAgICAg ICAgIHVpbnQzMl90IHRhcmdldF9tc2MpCisgICAgICAgICAgICAgICAgICAgdWludDY0X3QgdGFy Z2V0X21zYykKIHsKICAgIHN0cnVjdCB4MTFfaW1hZ2UgKmltYWdlID0gJmNoYWluLT5pbWFnZXNb aW1hZ2VfaW5kZXhdOwogCkBAIC05NjMsMTEgKzk5NywxMiBAQCB4MTFfcHJlc2VudF90b194MTEo c3RydWN0IHgxMV9zd2FwY2hhaW4gKmNoYWluLCB1aW50MzJfdCBpbWFnZV9pbmRleCwKICAgIHhz aG1mZW5jZV9yZXNldChpbWFnZS0+c2htX2ZlbmNlKTsKIAogICAgKytjaGFpbi0+c2VuZF9zYmM7 CisgICBpbWFnZS0+c2VyaWFsID0gKHVpbnQzMl90KSBjaGFpbi0+c2VuZF9zYmM7CiAgICB4Y2Jf dm9pZF9jb29raWVfdCBjb29raWUgPQogICAgICAgeGNiX3ByZXNlbnRfcGl4bWFwKGNoYWluLT5j b25uLAogICAgICAgICAgICAgICAgICAgICAgICAgIGNoYWluLT53aW5kb3csCiAgICAgICAgICAg ICAgICAgICAgICAgICAgaW1hZ2UtPnBpeG1hcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAo dWludDMyX3QpIGNoYWluLT5zZW5kX3NiYywKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbWFn ZS0+c2VyaWFsLAogICAgICAgICAgICAgICAgICAgICAgICAgIDAsICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLyogdmFsaWQgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAw LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHVwZGF0ZSAqLwogICAgICAg ICAgICAgICAgICAgICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LyogeF9vZmYgKi8KQEAgLTEwMTcsNiArMTA1MiwyNiBAQCB4MTFfcXVldWVfcHJlc2VudChzdHJ1 Y3Qgd3NpX3N3YXBjaGFpbiAqYW52X2NoYWluLAogICAgfQogfQogCitzdGF0aWMgdWludDY0X3QK K3gxMV9yZWZyZXNoX2R1cmF0aW9uKHN0cnVjdCB4MTFfc3dhcGNoYWluICpjaGFpbikKK3sKKyAg IC8qIFBpY2sgNjBIeiBpZiB3ZSBkb24ndCBrbm93IHdoYXQgaXQgYWN0dWFsbHkgaXMgeWV0ICov CisgICBpZiAoIWNoYWluLT5yZWZyZXNoX3BlcmlvZCkKKyAgICAgIHJldHVybiAodWludDY0X3Qp ICgxZTkgLyA1OS45OCArIDAuNSk7CisKKyAgIHJldHVybiBjaGFpbi0+cmVmcmVzaF9wZXJpb2Q7 Cit9CisKK3N0YXRpYyBWa1Jlc3VsdAoreDExX2dldF9yZWZyZXNoKHN0cnVjdCB3c2lfc3dhcGNo YWluICp3c2lfY2hhaW4sCisgICAgICAgICAgICAgICAgVmtSZWZyZXNoQ3ljbGVEdXJhdGlvbkdP T0dMRSAqdGltaW5ncykKK3sKKyAgIHN0cnVjdCB4MTFfc3dhcGNoYWluICpjaGFpbiA9IChzdHJ1 Y3QgeDExX3N3YXBjaGFpbiAqKXdzaV9jaGFpbjsKKworICAgdGltaW5ncy0+cmVmcmVzaER1cmF0 aW9uID0geDExX3JlZnJlc2hfZHVyYXRpb24oY2hhaW4pOworICAgcmV0dXJuIFZLX1NVQ0NFU1M7 Cit9CisKIHN0YXRpYyB2b2lkICoKIHgxMV9tYW5hZ2VfZmlmb19xdWV1ZXModm9pZCAqc3RhdGUp CiB7CkBAIC0xMDMzLDYgKzEwODgsNyBAQCB4MTFfbWFuYWdlX2ZpZm9fcXVldWVzKHZvaWQgKnN0 YXRlKQogICAgICAgICogb3RoZXIgdGhhbiB0aGUgY3VycmVudGx5IHByZXNlbnRlZCBvbmUuCiAg ICAgICAgKi8KICAgICAgIHVpbnQzMl90IGltYWdlX2luZGV4ID0gMDsKKyAgICAgIHN0cnVjdCB4 MTFfaW1hZ2UgKmltYWdlOwogICAgICAgcmVzdWx0ID0gd3NpX3F1ZXVlX3B1bGwoJmNoYWluLT5w cmVzZW50X3F1ZXVlLCAmaW1hZ2VfaW5kZXgsIElOVDY0X01BWCk7CiAgICAgICBhc3NlcnQocmVz dWx0ICE9IFZLX1RJTUVPVVQpOwogICAgICAgaWYgKHJlc3VsdCA8IDApIHsKQEAgLTEwNDUsNiAr MTEwMSwxMyBAQCB4MTFfbWFuYWdlX2ZpZm9fcXVldWVzKHZvaWQgKnN0YXRlKQogICAgICAgfQog CiAgICAgICB1aW50NjRfdCB0YXJnZXRfbXNjID0gY2hhaW4tPmxhc3RfcHJlc2VudF9tc2MgKyAx OworCisgICAgICBpbWFnZSA9ICZjaGFpbi0+aW1hZ2VzW2ltYWdlX2luZGV4XTsKKworICAgICAg c3RydWN0IHdzaV90aW1pbmcgKnRpbWluZyA9IGltYWdlLT5iYXNlLnRpbWluZzsKKyAgICAgIGlm ICh0aW1pbmcgJiYgdGltaW5nLT50YXJnZXRfbXNjICE9IDAgJiYgdGltaW5nLT50YXJnZXRfbXNj ID4gdGFyZ2V0X21zYykKKyAgICAgICAgIHRhcmdldF9tc2MgPSB0aW1pbmctPnRhcmdldF9tc2M7 CisKICAgICAgIHJlc3VsdCA9IHgxMV9wcmVzZW50X3RvX3gxMShjaGFpbiwgaW1hZ2VfaW5kZXgs IHRhcmdldF9tc2MpOwogICAgICAgaWYgKHJlc3VsdCA8IDApCiAgICAgICAgICBnb3RvIGZhaWw7 CkBAIC0xMzQ4LDYgKzE0MTEsNyBAQCB4MTFfc3VyZmFjZV9jcmVhdGVfc3dhcGNoYWluKFZrSWNk U3VyZmFjZUJhc2UgKmljZF9zdXJmYWNlLAogICAgY2hhaW4tPmJhc2UuYWNxdWlyZV9uZXh0X2lt YWdlID0geDExX2FjcXVpcmVfbmV4dF9pbWFnZTsKICAgIGNoYWluLT5iYXNlLnF1ZXVlX3ByZXNl bnQgPSB4MTFfcXVldWVfcHJlc2VudDsKICAgIGNoYWluLT5iYXNlLnByZXNlbnRfbW9kZSA9IHBD cmVhdGVJbmZvLT5wcmVzZW50TW9kZTsKKyAgIGNoYWluLT5iYXNlLmdldF9yZWZyZXNoX2N5Y2xl X2R1cmF0aW9uID0geDExX2dldF9yZWZyZXNoOwogICAgY2hhaW4tPmJhc2UuaW1hZ2VfY291bnQg PSBudW1faW1hZ2VzOwogICAgY2hhaW4tPmNvbm4gPSBjb25uOwogICAgY2hhaW4tPndpbmRvdyA9 IHdpbmRvdzsKQEAgLTEzNTUsNiArMTQxOSw3IEBAIHgxMV9zdXJmYWNlX2NyZWF0ZV9zd2FwY2hh aW4oVmtJY2RTdXJmYWNlQmFzZSAqaWNkX3N1cmZhY2UsCiAgICBjaGFpbi0+ZXh0ZW50ID0gcENy ZWF0ZUluZm8tPmltYWdlRXh0ZW50OwogICAgY2hhaW4tPnNlbmRfc2JjID0gMDsKICAgIGNoYWlu LT5sYXN0X3ByZXNlbnRfbXNjID0gMDsKKyAgIGNoYWluLT5sYXN0X3ByZXNlbnRfbnNlYyA9IDA7 CiAgICBjaGFpbi0+dGhyZWFkZWQgPSBmYWxzZTsKICAgIGNoYWluLT5zdGF0dXMgPSBWS19TVUND RVNTOwogICAgY2hhaW4tPmhhc19kcmkzX21vZGlmaWVycyA9IHdzaV9jb25uLT5oYXNfZHJpM19t b2RpZmllcnM7Ci0tIAoyLjE5LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9kcmktZGV2ZWwK