From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 11/12] drm/i915: Replace hangcheck by heartbeats Date: Sun, 6 Oct 2019 17:50:01 +0100 Message-ID: <20191006165002.30312-11-chris@chris-wilson.co.uk> References: <20191006165002.30312-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8AE1F8999C for ; Sun, 6 Oct 2019 16:50:17 +0000 (UTC) In-Reply-To: <20191006165002.30312-1-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org UmVwbGFjZSBzYW1wbGluZyB0aGUgZW5naW5lIHN0YXRlIGV2ZXJ5IHNvIG9mdGVuIHdpdGggYSBw ZXJpb2RpYwpoZWFydGJlYXQgcmVxdWVzdCB0byBtZWFzdXJlIHRoZSBoZWFsdGggb2YgYW4gZW5n aW5lLiBUaGlzIGlzIGNvdXBsZWQKd2l0aCB0aGUgZm9yY2VkLXByZWVtcHRpb24gdG8gYWxsb3cg bG9uZyBydW5uaW5nIHJlcXVlc3RzIHRvIHN1cnZpdmUgc28KbG9uZyBhcyB0aGV5IGRvIG5vdCBi bG9jayBvdGhlciB1c2Vycy4KClRoZSBoZWFydGJlYXQgaW50ZXJ2YWwgY2FuIGJlIGFkanVzdGVk IHBlci1lbmdpbmUgdXNpbmcsCgoJL3N5cy9jbGFzcy9kcm0vY2FyZD8vZW5naW5lLyovaGVhcnRi ZWF0X2ludGVydmFsX21zCgp2MjogQ291cGxlIGluIHN5c2ZzIGNvbnRyb2xzCgpTaWduZWQtb2Zm LWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KQ2M6IEpvb25hcyBM YWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KQ2M6IFR2cnRrbyBVcnN1 bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+CkNjOiBKb24gQmxvb21maWVsZCA8am9uLmJs b29tZmllbGRAaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogSm9uIEJsb29tZmllbGQgPGpvbi5ibG9v bWZpZWxkQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9LY29uZmlnLnByb2Zp bGUgICAgICAgICAgfCAgMTQgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgICAgICAg ICAgICAgICAgIHwgICAxIC0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlz cGxheS5jICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVj dC5oICAgIHwgICAxIC0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9wbS5jICAg ICAgICB8ICAgMiAtCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmUuaCAgICAg ICAgfCAgMzIgLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9jcy5jICAg ICB8ICAxMSArLQogLi4uL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfaGVhcnRiZWF0LmMg IHwgMTE1ICsrKysrKwogLi4uL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfaGVhcnRiZWF0 LmggIHwgICA1ICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9wbS5jICAg ICB8ICAgNSArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3N5c2ZzLmMg IHwgIDI5ICsrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfdHlwZXMuaCAg fCAgMTcgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0LmMgICAgICAgICAgICB8 ICAgMSAtCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndC5oICAgICAgICAgICAgfCAg IDQgLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3RfcG0uYyAgICAgICAgIHwgICAx IC0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0X3R5cGVzLmggICAgICB8ICAgOSAt CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9oYW5nY2hlY2suYyAgICAgfCAzNjEgLS0t LS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZXNldC5jICAg ICAgICAgfCAgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2hhbmdjaGVj ay5jICB8ICAgNCAtCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgICAg ICAgfCAgODcgLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgICAgICAgICAg ICAgICB8ICAgMyAtCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAg ICAgfCAgIDEgLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyAgICAgICAg IHwgIDMzICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5oICAgICAgICAg fCAgIDIgLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wcmlvbGlzdF90eXBlcy5oICAgIHwg ICA2ICsKIDI1IGZpbGVzIGNoYW5nZWQsIDE5NCBpbnNlcnRpb25zKCspLCA1NTUgZGVsZXRpb25z KC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfaGFu Z2NoZWNrLmMKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9LY29uZmlnLnByb2Zp bGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9LY29uZmlnLnByb2ZpbGUKaW5kZXggOGZjZWVhODU5 MzdiLi5kMzk1MGFhYmI0OTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25m aWcucHJvZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9LY29uZmlnLnByb2ZpbGUKQEAg LTQwLDMgKzQwLDE3IEBAIGNvbmZpZyBEUk1fSTkxNV9QUkVFTVBUX1RJTUVPVVQKIAkgIC9zeXMv Y2xhc3MvZHJtL2NhcmQ/L2VuZ2luZS8qL3ByZWVtcHRfdGltZW91dF9tcwogCiAJICBNYXkgYmUg MCB0byBkaXNhYmxlIHRoZSB0aW1lb3V0LgorCitjb25maWcgRFJNX0k5MTVfSEVBUlRCRUFUX0lO VEVSVkFMCisJaW50ICJJbnRlcnZhbCBiZXR3ZWVuIGhlYXJ0YmVhdCBwdWxzZXMgKG1zKSIKKwlk ZWZhdWx0IDI1MDAgIyBtaWxsaXNlY29uZHMKKwloZWxwCisJICBXaGlsZSBhY3RpdmUgdGhlIGRy aXZlciB1c2VzIGEgcGVyaW9kaWMgcmVxdWVzdCwgYSBoZWFydGJlYXQsIHRvCisJICBjaGVjayB0 aGUgd2VsbG5lc3Mgb2YgdGhlIEdQVSBhbmQgdG8gcmVndWxhcmx5IGZsdXNoIHN0YXRlIGNoYW5n ZXMKKwkgIChpZGxlIGJhcnJpZXJzKS4KKworCSAgVGhpcyBpcyBhZGp1c3RhYmxlIHZpYQorCSAg L3N5cy9jbGFzcy9kcm0vY2FyZD8vZW5naW5lLyovaGVhcnRiZWF0X2ludGVydmFsX21zCisKKwkg IE1heSBiZSAwIHRvIGRpc2FibGUgaGVhcnRiZWF0cyBhbmQgdGhlcmVmb3JlIGRpc2FibGUgYXV0 b21hdGljIEdQVQorCSAgaGFuZyBkZXRlY3Rpb24uCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCmluZGV4IDJk ZDNlZTNjZTQwNy4uMmE1NDZlZTdmMGJhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQpAQCAtODcsNyAr ODcsNiBAQCBndC15ICs9IFwKIAlndC9pbnRlbF9ndF9wbS5vIFwKIAlndC9pbnRlbF9ndF9wbV9p cnEubyBcCiAJZ3QvaW50ZWxfZ3RfcmVxdWVzdHMubyBcCi0JZ3QvaW50ZWxfaGFuZ2NoZWNrLm8g XAogCWd0L2ludGVsX2xyYy5vIFwKIAlndC9pbnRlbF9yYzYubyBcCiAJZ3QvaW50ZWxfcmVuZGVy c3RhdGUubyBcCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5j CmluZGV4IDA1ZmI2NzJhMDBiOS4uZTVhMWYzY2RhZTdkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwpAQCAtMTQzMzcsNyArMTQzMzcsNyBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9wbGFuZV91bnBpbl9mYihzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKm9s ZF9wbGFuZV9zdGF0ZSkKIHN0YXRpYyB2b2lkIGZiX29ial9idW1wX3JlbmRlcl9wcmlvcml0eShz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogewogCXN0cnVjdCBpOTE1X3NjaGVkX2F0 dHIgYXR0ciA9IHsKLQkJLnByaW9yaXR5ID0gSTkxNV9QUklPUklUWV9ESVNQTEFZLAorCQkucHJp b3JpdHkgPSBJOTE1X1VTRVJfUFJJT1JJVFkoSTkxNV9QUklPUklUWV9ESVNQTEFZKSwKIAl9Owog CiAJaTkxNV9nZW1fb2JqZWN0X3dhaXRfcHJpb3JpdHkob2JqLCAwLCAmYXR0cik7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmgKaW5kZXggMDg2YTliZjVhZGNjLi5h Zjg0NDk0YjM3ZWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dl bV9vYmplY3QuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0 LmgKQEAgLTQ0Miw2ICs0NDIsNSBAQCBpbnQgaTkxNV9nZW1fb2JqZWN0X3dhaXQoc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIGludCBpOTE1X2dlbV9vYmplY3Rfd2FpdF9wcmlvcml0 eShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkJCSAgdW5zaWduZWQgaW50IGZs YWdzLAogCQkJCSAgY29uc3Qgc3RydWN0IGk5MTVfc2NoZWRfYXR0ciAqYXR0cik7Ci0jZGVmaW5l IEk5MTVfUFJJT1JJVFlfRElTUExBWSBJOTE1X1VTRVJfUFJJT1JJVFkoSTkxNV9QUklPUklUWV9N QVgpCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVf Z2VtX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fcG0uYwppbmRleCA3 OTg3YjU0ZmIxZjUuLjBlOTc1MjBjYjFiYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ2VtL2k5MTVfZ2VtX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVf Z2VtX3BtLmMKQEAgLTEwMCw4ICsxMDAsNiBAQCB2b2lkIGk5MTVfZ2VtX3N1c3BlbmQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJaW50ZWxfZ3Rfc3VzcGVuZCgmaTkxNS0+Z3QpOwog CWludGVsX3VjX3N1c3BlbmQoJmk5MTUtPmd0LnVjKTsKIAotCWNhbmNlbF9kZWxheWVkX3dvcmtf c3luYygmaTkxNS0+Z3QuaGFuZ2NoZWNrLndvcmspOwotCiAJaTkxNV9nZW1fZHJhaW5fZnJlZWRf b2JqZWN0cyhpOTE1KTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv aW50ZWxfZW5naW5lLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmUuaApp bmRleCBjOWU4YzhjY2JkNDcuLmRjZDFjYjVlZmFhNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv aW50ZWxfZW5naW5lLmgKQEAgLTg5LDM4ICs4OSw2IEBAIHN0cnVjdCBkcm1fcHJpbnRlcjsKIC8q IHNlcW5vIHNpemUgaXMgYWN0dWFsbHkgb25seSBhIHVpbnQzMiwgYnV0IHNpbmNlIHdlIHBsYW4g dG8gdXNlIE1JX0ZMVVNIX0RXIHRvCiAgKiBkbyB0aGUgd3JpdGVzLCBhbmQgdGhhdCBtdXN0IGhh dmUgcXcgYWxpZ25lZCBvZmZzZXRzLCBzaW1wbHkgcHJldGVuZCBpdCdzIDhiLgogICovCi1lbnVt IGludGVsX2VuZ2luZV9oYW5nY2hlY2tfYWN0aW9uIHsKLQlFTkdJTkVfSURMRSA9IDAsCi0JRU5H SU5FX1dBSVQsCi0JRU5HSU5FX0FDVElWRV9TRVFOTywKLQlFTkdJTkVfQUNUSVZFX0hFQUQsCi0J RU5HSU5FX0FDVElWRV9TVUJVTklUUywKLQlFTkdJTkVfV0FJVF9LSUNLLAotCUVOR0lORV9ERUFE LAotfTsKLQotc3RhdGljIGlubGluZSBjb25zdCBjaGFyICoKLWhhbmdjaGVja19hY3Rpb25fdG9f c3RyKGNvbnN0IGVudW0gaW50ZWxfZW5naW5lX2hhbmdjaGVja19hY3Rpb24gYSkKLXsKLQlzd2l0 Y2ggKGEpIHsKLQljYXNlIEVOR0lORV9JRExFOgotCQlyZXR1cm4gImlkbGUiOwotCWNhc2UgRU5H SU5FX1dBSVQ6Ci0JCXJldHVybiAid2FpdCI7Ci0JY2FzZSBFTkdJTkVfQUNUSVZFX1NFUU5POgot CQlyZXR1cm4gImFjdGl2ZSBzZXFubyI7Ci0JY2FzZSBFTkdJTkVfQUNUSVZFX0hFQUQ6Ci0JCXJl dHVybiAiYWN0aXZlIGhlYWQiOwotCWNhc2UgRU5HSU5FX0FDVElWRV9TVUJVTklUUzoKLQkJcmV0 dXJuICJhY3RpdmUgc3VidW5pdHMiOwotCWNhc2UgRU5HSU5FX1dBSVRfS0lDSzoKLQkJcmV0dXJu ICJ3YWl0IGtpY2siOwotCWNhc2UgRU5HSU5FX0RFQUQ6Ci0JCXJldHVybiAiZGVhZCI7Ci0JfQot Ci0JcmV0dXJuICJ1bmtub3duIjsKLX0KIAogc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQKIGV4 ZWNsaXN0c19udW1fcG9ydHMoY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKiBj b25zdCBleGVjbGlzdHMpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRl bF9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9jcy5j CmluZGV4IGRmZGZmYWYzNTY3OC4uZmNhZjVlNjk0NjdjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9pbnRlbF9lbmdpbmVfY3MuYwpAQCAtMzA1LDYgKzMwNSw3IEBAIHN0YXRpYyBpbnQgaW50 ZWxfZW5naW5lX3NldHVwKHN0cnVjdCBpbnRlbF9ndCAqZ3QsIGVudW0gaW50ZWxfZW5naW5lX2lk IGlkKQogCV9fc3ByaW50X2VuZ2luZV9uYW1lKGVuZ2luZSk7CiAKIAllbmdpbmUtPnByb3BzLnBy ZWVtcHRfdGltZW91dCA9IENPTkZJR19EUk1fSTkxNV9QUkVFTVBUX1RJTUVPVVQ7CisJZW5naW5l LT5wcm9wcy5oZWFydGJlYXRfaW50ZXJ2YWwgPSBDT05GSUdfRFJNX0k5MTVfSEVBUlRCRUFUX0lO VEVSVkFMOwogCiAJLyoKIAkgKiBUbyBiZSBvdmVycmlkZGVuIGJ5IHRoZSBiYWNrZW5kIG9uIHNl dHVwLiBIb3dldmVyIHRvIGZhY2lsaXRhdGUKQEAgLTU5OSw3ICs2MDAsNiBAQCBzdGF0aWMgaW50 IGludGVsX2VuZ2luZV9zZXR1cF9jb21tb24oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l KQogCWludGVsX2VuZ2luZV9pbml0X2FjdGl2ZShlbmdpbmUsIEVOR0lORV9QSFlTSUNBTCk7CiAJ aW50ZWxfZW5naW5lX2luaXRfYnJlYWRjcnVtYnMoZW5naW5lKTsKIAlpbnRlbF9lbmdpbmVfaW5p dF9leGVjbGlzdHMoZW5naW5lKTsKLQlpbnRlbF9lbmdpbmVfaW5pdF9oYW5nY2hlY2soZW5naW5l KTsKIAlpbnRlbF9lbmdpbmVfaW5pdF9jbWRfcGFyc2VyKGVuZ2luZSk7CiAJaW50ZWxfZW5naW5l X2luaXRfX3BtKGVuZ2luZSk7CiAKQEAgLTE0MTgsOCArMTQxOCwxMyBAQCB2b2lkIGludGVsX2Vu Z2luZV9kdW1wKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAkJZHJtX3ByaW50Ziht LCAiKioqIFdFREdFRCAqKipcbiIpOwogCiAJZHJtX3ByaW50ZihtLCAiXHRBd2FrZT8gJWRcbiIs IGF0b21pY19yZWFkKCZlbmdpbmUtPndha2VyZWYuY291bnQpKTsKLQlkcm1fcHJpbnRmKG0sICJc dEhhbmdjaGVjazogJWQgbXMgYWdvXG4iLAotCQkgICBqaWZmaWVzX3RvX21zZWNzKGppZmZpZXMg LSBlbmdpbmUtPmhhbmdjaGVjay5hY3Rpb25fdGltZXN0YW1wKSk7CisKKwlyY3VfcmVhZF9sb2Nr KCk7CisJcnEgPSBSRUFEX09OQ0UoZW5naW5lLT5oZWFydGJlYXQuc3lzdG9sZSk7CisJaWYgKHJx KQorCQlkcm1fcHJpbnRmKG0sICJcdEhlYXJ0YmVhdDogJWQgbXMgYWdvXG4iLAorCQkJICAgamlm Zmllc190b19tc2VjcyhqaWZmaWVzIC0gcnEtPmVtaXR0ZWRfamlmZmllcykpOworCXJjdV9yZWFk X3VubG9jaygpOwogCWRybV9wcmludGYobSwgIlx0UmVzZXQgY291bnQ6ICVkIChnbG9iYWwgJWQp XG4iLAogCQkgICBpOTE1X3Jlc2V0X2VuZ2luZV9jb3VudChlcnJvciwgZW5naW5lKSwKIAkJICAg aTkxNV9yZXNldF9jb3VudChlcnJvcikpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvaW50ZWxfZW5naW5lX2hlYXJ0YmVhdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv aW50ZWxfZW5naW5lX2hlYXJ0YmVhdC5jCmluZGV4IDJmYzQxM2Y5ZDUwNi4uZjY4YWNmOTExOGYz IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfaGVhcnRi ZWF0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX2hlYXJ0YmVh dC5jCkBAIC0xMSw2ICsxMSwyNyBAQAogI2luY2x1ZGUgImludGVsX2VuZ2luZV9wbS5oIgogI2lu Y2x1ZGUgImludGVsX2VuZ2luZS5oIgogI2luY2x1ZGUgImludGVsX2d0LmgiCisjaW5jbHVkZSAi aW50ZWxfcmVzZXQuaCIKKworLyoKKyAqIFdoaWxlIHRoZSBlbmdpbmUgaXMgYWN0aXZlLCB3ZSBz ZW5kIGEgcGVyaW9kaWMgcHVsc2UgYWxvbmcgdGhlIGVuZ2luZQorICogdG8gY2hlY2sgb24gaXRz IGhlYWx0aCBhbmQgdG8gZmx1c2ggYW55IGlkbGUtYmFycmllcnMuIElmIHRoYXQgcmVxdWVzdAor ICogaXMgc3R1Y2ssIGFuZCB3ZSBmYWlsIHRvIHByZWVtcHQgaXQsIHdlIGRlY2xhcmUgdGhlIGVu Z2luZSBodW5nIGFuZAorICogaXNzdWUgYSByZXNldCAtLSBpbiB0aGUgaG9wZSB0aGF0IHJlc3Rv cmVzIHByb2dyZXNzLgorICovCisKK3N0YXRpYyB2b2lkIG5leHRfaGVhcnRiZWF0KHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3sKKwlsb25nIGRlbGF5OworCisJZGVsYXkgPSBSRUFE X09OQ0UoZW5naW5lLT5wcm9wcy5oZWFydGJlYXRfaW50ZXJ2YWwpOworCWlmICghZGVsYXkpCisJ CXJldHVybjsKKworCWRlbGF5ID0gbXNlY3NfdG9famlmZmllc190aW1lb3V0KGRlbGF5KTsKKwlz Y2hlZHVsZV9kZWxheWVkX3dvcmsoJmVuZ2luZS0+aGVhcnRiZWF0LndvcmssCisJCQkgICAgICBy b3VuZF9qaWZmaWVzX3VwX3JlbGF0aXZlKGRlbGF5KSk7Cit9CiAKIHN0YXRpYyB2b2lkIGlkbGVf cHVsc2Uoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBzdHJ1Y3QgaTkxNV9yZXF1ZXN0 ICpycSkKIHsKQEAgLTE4LDYgKzM5LDEwMCBAQCBzdGF0aWMgdm9pZCBpZGxlX3B1bHNlKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiAJaTkx NV9yZXF1ZXN0X2FkZF9hY3RpdmVfYmFycmllcnMocnEpOwogfQogCitzdGF0aWMgdm9pZCBoZWFy dGJlYXQoc3RydWN0IHdvcmtfc3RydWN0ICp3cmspCit7CisJc3RydWN0IGk5MTVfc2NoZWRfYXR0 ciBhdHRyID0geworCQkucHJpb3JpdHkgPSBJOTE1X1VTRVJfUFJJT1JJVFkoSTkxNV9QUklPUklU WV9NSU4pLAorCX07CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0KKwkJY29udGFp bmVyX29mKHdyaywgdHlwZW9mKCplbmdpbmUpLCBoZWFydGJlYXQud29yay53b3JrKTsKKwlzdHJ1 Y3QgaW50ZWxfY29udGV4dCAqY2UgPSBlbmdpbmUtPmtlcm5lbF9jb250ZXh0OworCXN0cnVjdCBp OTE1X3JlcXVlc3QgKnJxOworCisJaWYgKCFpbnRlbF9lbmdpbmVfcG1fZ2V0X2lmX2F3YWtlKGVu Z2luZSkpCisJCXJldHVybjsKKworCXJxID0gZW5naW5lLT5oZWFydGJlYXQuc3lzdG9sZTsKKwlp ZiAocnEgJiYgaTkxNV9yZXF1ZXN0X2NvbXBsZXRlZChycSkpIHsKKwkJaTkxNV9yZXF1ZXN0X3B1 dChycSk7CisJCWVuZ2luZS0+aGVhcnRiZWF0LnN5c3RvbGUgPSBOVUxMOworCX0KKworCWlmIChp bnRlbF9ndF9pc193ZWRnZWQoZW5naW5lLT5ndCkpCisJCWdvdG8gb3V0OworCisJaWYgKGVuZ2lu ZS0+aGVhcnRiZWF0LnN5c3RvbGUpIHsKKwkJaWYgKElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1 X0RFQlVHX0dFTSkpIHsKKwkJCXN0cnVjdCBkcm1fcHJpbnRlciBwID0gZHJtX2RlYnVnX3ByaW50 ZXIoX19mdW5jX18pOworCisJCQlpbnRlbF9lbmdpbmVfZHVtcChlbmdpbmUsICZwLAorCQkJCQkg ICIlcyBoZWFydGJlYXQgbm90IHRpY2tpbmdcbiIsCisJCQkJCSAgZW5naW5lLT5uYW1lKTsKKwkJ fQorCisJCWlmIChlbmdpbmUtPnNjaGVkdWxlICYmCisJCSAgICBycS0+c2NoZWQuYXR0ci5wcmlv cml0eSA8IEk5MTVfUFJJT1JJVFlfQkFSUklFUikgeworCQkJYXR0ci5wcmlvcml0eSA9CisJCQkJ STkxNV9VU0VSX1BSSU9SSVRZKEk5MTVfUFJJT1JJVFlfSEVBUlRCRUFUKTsKKwkJCWlmIChycS0+ c2NoZWQuYXR0ci5wcmlvcml0eSA+PSBhdHRyLnByaW9yaXR5KQorCQkJCWF0dHIucHJpb3JpdHkg PSBJOTE1X1BSSU9SSVRZX0JBUlJJRVI7CisKKwkJCWxvY2FsX2JoX2Rpc2FibGUoKTsKKwkJCWVu Z2luZS0+c2NoZWR1bGUocnEsICZhdHRyKTsKKwkJCWxvY2FsX2JoX2VuYWJsZSgpOworCQl9IGVs c2UgeworCQkJaW50ZWxfZ3RfaGFuZGxlX2Vycm9yKGVuZ2luZS0+Z3QsIGVuZ2luZS0+bWFzaywK KwkJCQkJICAgICAgSTkxNV9FUlJPUl9DQVBUVVJFLAorCQkJCQkgICAgICAic3RvcHBlZCBoZWFy dGJlYXQgb24gJXMiLAorCQkJCQkgICAgICBlbmdpbmUtPm5hbWUpOworCQl9CisJCWdvdG8gb3V0 OworCX0KKworCWlmIChlbmdpbmUtPndha2VyZWZfc2VyaWFsID09IGVuZ2luZS0+c2VyaWFsKQor CQlnb3RvIG91dDsKKworCW11dGV4X2xvY2soJmNlLT50aW1lbGluZS0+bXV0ZXgpOworCisJaW50 ZWxfY29udGV4dF9lbnRlcihjZSk7CisJcnEgPSBfX2k5MTVfcmVxdWVzdF9jcmVhdGUoY2UsIEdG UF9OT1dBSVQgfCBfX0dGUF9OT1dBUk4pOworCWludGVsX2NvbnRleHRfZXhpdChjZSk7CisJaWYg KElTX0VSUihycSkpCisJCWdvdG8gdW5sb2NrOworCisJaWRsZV9wdWxzZShlbmdpbmUsIHJxKTsK KwlpZiAoaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2hhbmdjaGVjaykKKwkJZW5naW5lLT5oZWFydGJl YXQuc3lzdG9sZSA9IGk5MTVfcmVxdWVzdF9nZXQocnEpOworCisJX19pOTE1X3JlcXVlc3RfY29t bWl0KHJxKTsKKwlfX2k5MTVfcmVxdWVzdF9xdWV1ZShycSwgJmF0dHIpOworCit1bmxvY2s6CisJ bXV0ZXhfdW5sb2NrKCZjZS0+dGltZWxpbmUtPm11dGV4KTsKK291dDoKKwluZXh0X2hlYXJ0YmVh dChlbmdpbmUpOworCWludGVsX2VuZ2luZV9wbV9wdXQoZW5naW5lKTsKK30KKwordm9pZCBpbnRl bF9lbmdpbmVfdW5wYXJrX2hlYXJ0YmVhdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp Cit7CisJaWYgKCFDT05GSUdfRFJNX0k5MTVfSEVBUlRCRUFUX0lOVEVSVkFMKQorCQlyZXR1cm47 CisKKwluZXh0X2hlYXJ0YmVhdChlbmdpbmUpOworfQorCit2b2lkIGludGVsX2VuZ2luZV9wYXJr X2hlYXJ0YmVhdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCit7CisJY2FuY2VsX2Rl bGF5ZWRfd29yaygmZW5naW5lLT5oZWFydGJlYXQud29yayk7CisJaTkxNV9yZXF1ZXN0X3B1dChm ZXRjaF9hbmRfemVybygmZW5naW5lLT5oZWFydGJlYXQuc3lzdG9sZSkpOworfQorCit2b2lkIGlu dGVsX2VuZ2luZV9pbml0X2hlYXJ0YmVhdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp Cit7CisJSU5JVF9ERUxBWUVEX1dPUksoJmVuZ2luZS0+aGVhcnRiZWF0LndvcmssIGhlYXJ0YmVh dCk7Cit9CisKIGludCBpbnRlbF9lbmdpbmVfcHVsc2Uoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lKQogewogCXN0cnVjdCBpOTE1X3NjaGVkX2F0dHIgYXR0ciA9IHsgLnByaW9yaXR5ID0g STkxNV9QUklPUklUWV9CQVJSSUVSIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9pbnRlbF9lbmdpbmVfaGVhcnRiZWF0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9p bnRlbF9lbmdpbmVfaGVhcnRiZWF0LmgKaW5kZXggYjk1MDQ1MWI1OTk4Li4zOTM5MTAwNDU1NGQg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9oZWFydGJl YXQuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfaGVhcnRiZWF0 LmgKQEAgLTksNiArOSwxMSBAQAogCiBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzOwogCit2b2lkIGlu dGVsX2VuZ2luZV9pbml0X2hlYXJ0YmVhdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp OworCit2b2lkIGludGVsX2VuZ2luZV9wYXJrX2hlYXJ0YmVhdChzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpOwordm9pZCBpbnRlbF9lbmdpbmVfdW5wYXJrX2hlYXJ0YmVhdChzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUpOworCiBpbnQgaW50ZWxfZW5naW5lX3B1bHNlKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CiAKICNlbmRpZiAvKiBJTlRFTF9FTkdJTkVfSEVB UlRCRUFUX0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2Vu Z2luZV9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3BtLmMKaW5k ZXggODZjMGIyMjgwYjdiLi4zOTJkYzFiOWYwNGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L2ludGVsX2VuZ2luZV9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L2ludGVsX2VuZ2luZV9wbS5jCkBAIC03LDYgKzcsNyBAQAogI2luY2x1ZGUgImk5MTVfZHJ2Lmgi CiAKICNpbmNsdWRlICJpbnRlbF9lbmdpbmUuaCIKKyNpbmNsdWRlICJpbnRlbF9lbmdpbmVfaGVh cnRiZWF0LmgiCiAjaW5jbHVkZSAiaW50ZWxfZW5naW5lX3BtLmgiCiAjaW5jbHVkZSAiaW50ZWxf ZW5naW5lX3Bvb2wuaCIKICNpbmNsdWRlICJpbnRlbF9ndC5oIgpAQCAtMzQsNyArMzUsNyBAQCBz dGF0aWMgaW50IF9fZW5naW5lX3VucGFyayhzdHJ1Y3QgaW50ZWxfd2FrZXJlZiAqd2YpCiAJaWYg KGVuZ2luZS0+dW5wYXJrKQogCQllbmdpbmUtPnVucGFyayhlbmdpbmUpOwogCi0JaW50ZWxfZW5n aW5lX2luaXRfaGFuZ2NoZWNrKGVuZ2luZSk7CisJaW50ZWxfZW5naW5lX3VucGFya19oZWFydGJl YXQoZW5naW5lKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMTU4LDYgKzE1OSw3IEBAIHN0YXRpYyBp bnQgX19lbmdpbmVfcGFyayhzdHJ1Y3QgaW50ZWxfd2FrZXJlZiAqd2YpCiAKIAljYWxsX2lkbGVf YmFycmllcnMoZW5naW5lKTsgLyogY2xlYW51cCBhZnRlciB3ZWRnaW5nICovCiAKKwlpbnRlbF9l bmdpbmVfcGFya19oZWFydGJlYXQoZW5naW5lKTsKIAlpbnRlbF9lbmdpbmVfZGlzYXJtX2JyZWFk Y3J1bWJzKGVuZ2luZSk7CiAJaW50ZWxfZW5naW5lX3Bvb2xfcGFyaygmZW5naW5lLT5wb29sKTsK IApAQCAtMTg4LDYgKzE5MCw3IEBAIHZvaWQgaW50ZWxfZW5naW5lX2luaXRfX3BtKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlzdHJ1Y3QgaW50ZWxfcnVudGltZV9wbSAqcnBtID0g JmVuZ2luZS0+aTkxNS0+cnVudGltZV9wbTsKIAogCWludGVsX3dha2VyZWZfaW5pdCgmZW5naW5l LT53YWtlcmVmLCBycG0sICZ3Zl9vcHMpOworCWludGVsX2VuZ2luZV9pbml0X2hlYXJ0YmVhdChl bmdpbmUpOwogfQogCiAjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfU0VMRlRFU1QpCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfc3lzZnMuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9zeXNmcy5jCmluZGV4IGFhYzI2 MDk3YzkxNi4uODUzMmY5Y2RjODg1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9pbnRlbF9lbmdpbmVfc3lzZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRl bF9lbmdpbmVfc3lzZnMuYwpAQCAtNzAsMTIgKzcwLDM4IEBAIHByZWVtcHRfdGltZW91dF9zdG9y ZShzdHJ1Y3Qga29iamVjdCAqa29iaiwgc3RydWN0IGtvYmpfYXR0cmlidXRlICphdHRyLAogCXJl dHVybiBjb3VudDsKIH0KIAorc3RhdGljIHNzaXplX3QKK2hlYXJ0YmVhdF9pbnRlcnZhbF9zaG93 KHN0cnVjdCBrb2JqZWN0ICprb2JqLCBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIg KmJ1ZikKK3sKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSBrb2JqX3RvX2VuZ2lu ZShrb2JqKTsKKworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVsdVxuIiwgZW5naW5lLT5wcm9wcy5o ZWFydGJlYXRfaW50ZXJ2YWwpOworfQorCitzdGF0aWMgc3NpemVfdAoraGVhcnRiZWF0X2ludGVy dmFsX3N0b3JlKHN0cnVjdCBrb2JqZWN0ICprb2JqLCBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0 dHIsCisJCQkgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpCit7CisJc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lID0ga29ial90b19lbmdpbmUoa29iaik7CisJdW5zaWduZWQgbG9u ZyBkZWxheTsKKwlpbnQgZXJyOworCisJZXJyID0ga3N0cnRvdWwoYnVmLCAwLCAmZGVsYXkpOwor CWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKKwllbmdpbmUtPnByb3BzLmhlYXJ0YmVhdF9pbnRl cnZhbCA9IGRlbGF5OworCXJldHVybiBjb3VudDsKK30KKwogc3RhdGljIHN0cnVjdCBrb2JqX2F0 dHJpYnV0ZSBuYW1lX2F0dHIgPSBfX0FUVFIobmFtZSwgMDQ0NCwgbmFtZV9zaG93LCBOVUxMKTsK IHN0YXRpYyBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgY2xhc3NfYXR0ciA9IF9fQVRUUihjbGFzcywg MDQ0NCwgY2xhc3Nfc2hvdywgTlVMTCk7CiBzdGF0aWMgc3RydWN0IGtvYmpfYXR0cmlidXRlIGlu c3RfYXR0ciA9IF9fQVRUUihpbnN0YW5jZSwgMDQ0NCwgaW5zdF9zaG93LCBOVUxMKTsKIHN0YXRp YyBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgbW1pb19hdHRyID0gX19BVFRSKG1taW9fYmFzZSwgMDQ0 NCwgbW1pb19zaG93LCBOVUxMKTsKIHN0YXRpYyBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgcHJlZW1w dF90aW1lb3V0X2F0dHIgPQogX19BVFRSKHByZWVtcHRfdGltZW91dF9tcywgMDYwMCwgcHJlZW1w dF90aW1lb3V0X3Nob3csIHByZWVtcHRfdGltZW91dF9zdG9yZSk7CitzdGF0aWMgc3RydWN0IGtv YmpfYXR0cmlidXRlIGhlYXJ0YmVhdF9pbnRlcnZhbF9hdHRyID0KK19fQVRUUihoZWFydGJlYXRf aW50ZXJ2YWxfbXMsIDA2MDAsIGhlYXJ0YmVhdF9pbnRlcnZhbF9zaG93LCBoZWFydGJlYXRfaW50 ZXJ2YWxfc3RvcmUpOwogCiBzdGF0aWMgdm9pZCBrb2JqX2VuZ2luZV9yZWxlYXNlKHN0cnVjdCBr b2JqZWN0ICprb2JqKQogewpAQCAtMTE1LDYgKzE0MSw5IEBAIHZvaWQgaW50ZWxfZW5naW5lc19h ZGRfc3lzZnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJCSZjbGFzc19hdHRyLmF0 dHIsCiAJCSZpbnN0X2F0dHIuYXR0ciwKIAkJJm1taW9fYXR0ci5hdHRyLAorI2lmIENPTkZJR19E Uk1fSTkxNV9IRUFSVEJFQVRfSU5URVJWQUwKKwkJJmhlYXJ0YmVhdF9pbnRlcnZhbF9hdHRyLmF0 dHIsCisjZW5kaWYKIAkJTlVMTAogCX07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L2ludGVsX2VuZ2luZV90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50 ZWxfZW5naW5lX3R5cGVzLmgKaW5kZXggNmFmOWIwMDk2OTc1Li5hZDNiZTJmYmQ3MWEgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV90eXBlcy5oCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV90eXBlcy5oCkBAIC0xNSw2ICsx NSw3IEBACiAjaW5jbHVkZSA8bGludXgvcmJ0cmVlLmg+CiAjaW5jbHVkZSA8bGludXgvdGltZXIu aD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5o PgogCiAjaW5jbHVkZSAiaTkxNV9nZW0uaCIKICNpbmNsdWRlICJpOTE1X3BtdS5oIgpAQCAtNzYs MTQgKzc3LDYgQEAgc3RydWN0IGludGVsX2luc3Rkb25lIHsKIAl1MzIgcm93W0k5MTVfTUFYX1NM SUNFU11bSTkxNV9NQVhfU1VCU0xJQ0VTXTsKIH07CiAKLXN0cnVjdCBpbnRlbF9lbmdpbmVfaGFu Z2NoZWNrIHsKLQl1NjQgYWN0aGQ7Ci0JdTMyIGxhc3RfcmluZzsKLQl1MzIgbGFzdF9oZWFkOwot CXVuc2lnbmVkIGxvbmcgYWN0aW9uX3RpbWVzdGFtcDsKLQlzdHJ1Y3QgaW50ZWxfaW5zdGRvbmUg aW5zdGRvbmU7Ci19OwotCiBzdHJ1Y3QgaW50ZWxfcmluZyB7CiAJc3RydWN0IGtyZWYgcmVmOwog CXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwpAQCAtMzMwLDYgKzMyMywxMSBAQCBzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzIHsKIAogCWludGVsX2VuZ2luZV9tYXNrX3Qgc2F0dXJhdGVkOyAvKiBzdWJtaXR0 aW5nIHNlbWFwaG9yZXMgdG9vIGxhdGU/ICovCiAKKwlzdHJ1Y3QgeworCQlzdHJ1Y3QgZGVsYXll ZF93b3JrIHdvcms7CisJCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnN5c3RvbGU7CisJfSBoZWFydGJl YXQ7CisKIAl1bnNpZ25lZCBsb25nIHNlcmlhbDsKIAogCXVuc2lnbmVkIGxvbmcgd2FrZXJlZl9z ZXJpYWw7CkBAIC00ODAsOCArNDc4LDYgQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7CiAJLyog c3RhdHVzX25vdGlmaWVyOiBsaXN0IG9mIGNhbGxiYWNrcyBmb3IgY29udGV4dC1zd2l0Y2ggY2hh bmdlcyAqLwogCXN0cnVjdCBhdG9taWNfbm90aWZpZXJfaGVhZCBjb250ZXh0X3N0YXR1c19ub3Rp ZmllcjsKIAotCXN0cnVjdCBpbnRlbF9lbmdpbmVfaGFuZ2NoZWNrIGhhbmdjaGVjazsKLQogI2Rl ZmluZSBJOTE1X0VOR0lORV9ORUVEU19DTURfUEFSU0VSIEJJVCgwKQogI2RlZmluZSBJOTE1X0VO R0lORV9TVVBQT1JUU19TVEFUUyAgIEJJVCgxKQogI2RlZmluZSBJOTE1X0VOR0lORV9IQVNfUFJF RU1QVElPTiAgIEJJVCgyKQpAQCAtNTQ5LDYgKzU0NSw3IEBAIHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgewogCiAJc3RydWN0IHsKIAkJdW5zaWduZWQgbG9uZyBwcmVlbXB0X3RpbWVvdXQ7CisJCXVu c2lnbmVkIGxvbmcgaGVhcnRiZWF0X2ludGVydmFsOwogCX0gcHJvcHM7CiB9OwogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndC5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvaW50ZWxfZ3QuYwppbmRleCA4ZjQ0Y2Y4Yzc5YjIuLmQ3ZjQ5NWJmMjkyOSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3QuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndC5jCkBAIC0yMiw3ICsyMiw2IEBAIHZvaWQgaW50ZWxf Z3RfaW5pdF9lYXJseShzdHJ1Y3QgaW50ZWxfZ3QgKmd0LCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSkKIAlJTklUX0xJU1RfSEVBRCgmZ3QtPmNsb3NlZF92bWEpOwogCXNwaW5fbG9ja19p bml0KCZndC0+Y2xvc2VkX2xvY2spOwogCi0JaW50ZWxfZ3RfaW5pdF9oYW5nY2hlY2soZ3QpOwog CWludGVsX2d0X2luaXRfcmVzZXQoZ3QpOwogCWludGVsX2d0X2luaXRfcmVxdWVzdHMoZ3QpOwog CWludGVsX2d0X3BtX2luaXRfZWFybHkoZ3QpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvaW50ZWxfZ3QuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0LmgK aW5kZXggZTZhYjBiZmYwZWZiLi41YjZlZmZlZDM3MTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L2ludGVsX2d0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50 ZWxfZ3QuaApAQCAtNDYsOCArNDYsNiBAQCB2b2lkIGludGVsX2d0X2NsZWFyX2Vycm9yX3JlZ2lz dGVycyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0LAogdm9pZCBpbnRlbF9ndF9mbHVzaF9nZ3R0X3dyaXRl cyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0KTsKIHZvaWQgaW50ZWxfZ3RfY2hpcHNldF9mbHVzaChzdHJ1 Y3QgaW50ZWxfZ3QgKmd0KTsKIAotdm9pZCBpbnRlbF9ndF9pbml0X2hhbmdjaGVjayhzdHJ1Y3Qg aW50ZWxfZ3QgKmd0KTsKLQogc3RhdGljIGlubGluZSB1MzIgaW50ZWxfZ3Rfc2NyYXRjaF9vZmZz ZXQoY29uc3Qgc3RydWN0IGludGVsX2d0ICpndCwKIAkJCQkJICBlbnVtIGludGVsX2d0X3NjcmF0 Y2hfZmllbGQgZmllbGQpCiB7CkBAIC01OSw2ICs1Nyw0IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBp bnRlbF9ndF9pc193ZWRnZWQoc3RydWN0IGludGVsX2d0ICpndCkKIAlyZXR1cm4gX19pbnRlbF9y ZXNldF9mYWlsZWQoJmd0LT5yZXNldCk7CiB9CiAKLXZvaWQgaW50ZWxfZ3RfcXVldWVfaGFuZ2No ZWNrKHN0cnVjdCBpbnRlbF9ndCAqZ3QpOwotCiAjZW5kaWYgLyogX19JTlRFTF9HVF9IX18gKi8K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0X3BtLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndF9wbS5jCmluZGV4IGI1MmUyYmEzZDA5Mi4uYmEz MWYxYzllMGRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndF9w bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0X3BtLmMKQEAgLTUyLDcg KzUyLDYgQEAgc3RhdGljIGludCBfX2d0X3VucGFyayhzdHJ1Y3QgaW50ZWxfd2FrZXJlZiAqd2Yp CiAKIAlpOTE1X3BtdV9ndF91bnBhcmtlZChpOTE1KTsKIAotCWludGVsX2d0X3F1ZXVlX2hhbmdj aGVjayhndCk7CiAJaW50ZWxfZ3RfdW5wYXJrX3JlcXVlc3RzKGd0KTsKIAogCXBtX25vdGlmeShn dCwgSU5URUxfR1RfVU5QQVJLKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L2ludGVsX2d0X3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndF90eXBl cy5oCmluZGV4IDgwMmY1MTZhMzQzMC4uNTlmOGVlMGFhMTUxIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndF90eXBlcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L2ludGVsX2d0X3R5cGVzLmgKQEAgLTI2LDE0ICsyNiw2IEBAIHN0cnVjdCBpOTE1X2dn dHQ7CiBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzOwogc3RydWN0IGludGVsX3VuY29yZTsKIAotc3Ry dWN0IGludGVsX2hhbmdjaGVjayB7Ci0JLyogRm9yIGhhbmdjaGVjayB0aW1lciAqLwotI2RlZmlu ZSBEUk1fSTkxNV9IQU5HQ0hFQ0tfUEVSSU9EIDE1MDAgLyogaW4gbXMgKi8KLSNkZWZpbmUgRFJN X0k5MTVfSEFOR0NIRUNLX0pJRkZJRVMgbXNlY3NfdG9famlmZmllcyhEUk1fSTkxNV9IQU5HQ0hF Q0tfUEVSSU9EKQotCi0Jc3RydWN0IGRlbGF5ZWRfd29yayB3b3JrOwotfTsKLQogc3RydWN0IGlu dGVsX2d0IHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNTsKIAlzdHJ1Y3QgaW50ZWxf dW5jb3JlICp1bmNvcmU7CkBAIC02Nyw3ICs1OSw2IEBAIHN0cnVjdCBpbnRlbF9ndCB7CiAJc3Ry dWN0IGxpc3RfaGVhZCBjbG9zZWRfdm1hOwogCXNwaW5sb2NrX3QgY2xvc2VkX2xvY2s7IC8qIGd1 YXJkcyB0aGUgbGlzdCBvZiBjbG9zZWRfdm1hICovCiAKLQlzdHJ1Y3QgaW50ZWxfaGFuZ2NoZWNr IGhhbmdjaGVjazsKIAlzdHJ1Y3QgaW50ZWxfcmVzZXQgcmVzZXQ7CiAKIAkvKioKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2hhbmdjaGVjay5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvaW50ZWxfaGFuZ2NoZWNrLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDk4MTRiMThiMzJhZC4uMDAwMDAwMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L2ludGVsX2hhbmdjaGVjay5jCisrKyAvZGV2L251bGwKQEAgLTEsMzYxICswLDAgQEAK LS8qCi0gKiBDb3B5cmlnaHQgwqkgMjAxNiBJbnRlbCBDb3Jwb3JhdGlvbgotICoKLSAqIFBlcm1p c3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9i dGFpbmluZyBhCi0gKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1l bnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAotICogdG8gZGVhbCBpbiB0aGUgU29mdHdh cmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgotICog dGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1 dGUsIHN1YmxpY2Vuc2UsCi0gKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBh bmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKLSAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hl ZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gKgotICog VGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGlu Y2x1ZGluZyB0aGUgbmV4dAotICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwg Y29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQotICogU29mdHdhcmUuCi0gKgot ICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg QU5ZIEtJTkQsIEVYUFJFU1MgT1IKLSAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlU RUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotICogRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNI QUxMCi0gKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFO WSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgotICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFD VElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKLSAqIEZST00sIE9V VCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RI RVIgREVBTElOR1MKLSAqIElOIFRIRSBTT0ZUV0FSRS4KLSAqCi0gKi8KLQotI2luY2x1ZGUgImk5 MTVfZHJ2LmgiCi0jaW5jbHVkZSAiaW50ZWxfZW5naW5lLmgiCi0jaW5jbHVkZSAiaW50ZWxfZ3Qu aCIKLSNpbmNsdWRlICJpbnRlbF9yZXNldC5oIgotCi1zdHJ1Y3QgaGFuZ2NoZWNrIHsKLQl1NjQg YWN0aGQ7Ci0JdTMyIHJpbmc7Ci0JdTMyIGhlYWQ7Ci0JZW51bSBpbnRlbF9lbmdpbmVfaGFuZ2No ZWNrX2FjdGlvbiBhY3Rpb247Ci0JdW5zaWduZWQgbG9uZyBhY3Rpb25fdGltZXN0YW1wOwotCWlu dCBkZWFkbG9jazsKLQlzdHJ1Y3QgaW50ZWxfaW5zdGRvbmUgaW5zdGRvbmU7Ci0JYm9vbCB3ZWRn ZWQ6MTsKLQlib29sIHN0YWxsZWQ6MTsKLX07Ci0KLXN0YXRpYyBib29sIGluc3Rkb25lX3VuY2hh bmdlZCh1MzIgY3VycmVudF9pbnN0ZG9uZSwgdTMyICpvbGRfaW5zdGRvbmUpCi17Ci0JdTMyIHRt cCA9IGN1cnJlbnRfaW5zdGRvbmUgfCAqb2xkX2luc3Rkb25lOwotCWJvb2wgdW5jaGFuZ2VkOwot Ci0JdW5jaGFuZ2VkID0gdG1wID09ICpvbGRfaW5zdGRvbmU7Ci0JKm9sZF9pbnN0ZG9uZSB8PSB0 bXA7Ci0KLQlyZXR1cm4gdW5jaGFuZ2VkOwotfQotCi1zdGF0aWMgYm9vbCBzdWJ1bml0c19zdHVj ayhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5pOTE1OwotCWNvbnN0IHN0cnVjdCBzc2V1X2Rldl9p bmZvICpzc2V1ID0gJlJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPnNzZXU7Ci0Jc3RydWN0IGludGVs X2luc3Rkb25lIGluc3Rkb25lOwotCXN0cnVjdCBpbnRlbF9pbnN0ZG9uZSAqYWNjdV9pbnN0ZG9u ZSA9ICZlbmdpbmUtPmhhbmdjaGVjay5pbnN0ZG9uZTsKLQlib29sIHN0dWNrOwotCWludCBzbGlj ZTsKLQlpbnQgc3Vic2xpY2U7Ci0KLQlpbnRlbF9lbmdpbmVfZ2V0X2luc3Rkb25lKGVuZ2luZSwg Jmluc3Rkb25lKTsKLQotCS8qIFRoZXJlIG1pZ2h0IGJlIHVuc3RhYmxlIHN1YnVuaXQgc3RhdGVz IGV2ZW4gd2hlbgotCSAqIGFjdHVhbCBoZWFkIGlzIG5vdCBtb3ZpbmcuIEZpbHRlciBvdXQgdGhl IHVuc3RhYmxlIG9uZXMgYnkKLQkgKiBhY2N1bXVsYXRpbmcgdGhlIHVuZG9uZSAtPiBkb25lIHRy YW5zaXRpb25zIGFuZCBvbmx5Ci0JICogY29uc2lkZXIgdGhvc2UgYXMgcHJvZ3Jlc3MuCi0JICov Ci0Jc3R1Y2sgPSBpbnN0ZG9uZV91bmNoYW5nZWQoaW5zdGRvbmUuaW5zdGRvbmUsCi0JCQkJICAg JmFjY3VfaW5zdGRvbmUtPmluc3Rkb25lKTsKLQlzdHVjayAmPSBpbnN0ZG9uZV91bmNoYW5nZWQo aW5zdGRvbmUuc2xpY2VfY29tbW9uLAotCQkJCSAgICAmYWNjdV9pbnN0ZG9uZS0+c2xpY2VfY29t bW9uKTsKLQotCWZvcl9lYWNoX2luc3Rkb25lX3NsaWNlX3N1YnNsaWNlKGRldl9wcml2LCBzc2V1 LCBzbGljZSwgc3Vic2xpY2UpIHsKLQkJc3R1Y2sgJj0gaW5zdGRvbmVfdW5jaGFuZ2VkKGluc3Rk b25lLnNhbXBsZXJbc2xpY2VdW3N1YnNsaWNlXSwKLQkJCQkJICAgICZhY2N1X2luc3Rkb25lLT5z YW1wbGVyW3NsaWNlXVtzdWJzbGljZV0pOwotCQlzdHVjayAmPSBpbnN0ZG9uZV91bmNoYW5nZWQo aW5zdGRvbmUucm93W3NsaWNlXVtzdWJzbGljZV0sCi0JCQkJCSAgICAmYWNjdV9pbnN0ZG9uZS0+ cm93W3NsaWNlXVtzdWJzbGljZV0pOwotCX0KLQotCXJldHVybiBzdHVjazsKLX0KLQotc3RhdGlj IGVudW0gaW50ZWxfZW5naW5lX2hhbmdjaGVja19hY3Rpb24KLWhlYWRfc3R1Y2soc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1NjQgYWN0aGQpCi17Ci0JaWYgKGFjdGhkICE9IGVuZ2lu ZS0+aGFuZ2NoZWNrLmFjdGhkKSB7Ci0KLQkJLyogQ2xlYXIgc3VidW5pdCBzdGF0ZXMgb24gaGVh ZCBtb3ZlbWVudCAqLwotCQltZW1zZXQoJmVuZ2luZS0+aGFuZ2NoZWNrLmluc3Rkb25lLCAwLAot CQkgICAgICAgc2l6ZW9mKGVuZ2luZS0+aGFuZ2NoZWNrLmluc3Rkb25lKSk7Ci0KLQkJcmV0dXJu IEVOR0lORV9BQ1RJVkVfSEVBRDsKLQl9Ci0KLQlpZiAoIXN1YnVuaXRzX3N0dWNrKGVuZ2luZSkp Ci0JCXJldHVybiBFTkdJTkVfQUNUSVZFX1NVQlVOSVRTOwotCi0JcmV0dXJuIEVOR0lORV9ERUFE OwotfQotCi1zdGF0aWMgZW51bSBpbnRlbF9lbmdpbmVfaGFuZ2NoZWNrX2FjdGlvbgotZW5naW5l X3N0dWNrKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgdTY0IGFjdGhkKQotewotCWVu dW0gaW50ZWxfZW5naW5lX2hhbmdjaGVja19hY3Rpb24gaGE7Ci0JdTMyIHRtcDsKLQotCWhhID0g aGVhZF9zdHVjayhlbmdpbmUsIGFjdGhkKTsKLQlpZiAoaGEgIT0gRU5HSU5FX0RFQUQpCi0JCXJl dHVybiBoYTsKLQotCWlmIChJU19HRU4oZW5naW5lLT5pOTE1LCAyKSkKLQkJcmV0dXJuIEVOR0lO RV9ERUFEOwotCi0JLyogSXMgdGhlIGNoaXAgaGFuZ2luZyBvbiBhIFdBSVRfRk9SX0VWRU5UPwot CSAqIElmIHNvIHdlIGNhbiBzaW1wbHkgcG9rZSB0aGUgUkJfV0FJVCBiaXQKLQkgKiBhbmQgYnJl YWsgdGhlIGhhbmcuIFRoaXMgc2hvdWxkIHdvcmsgb24KLQkgKiBhbGwgYnV0IHRoZSBzZWNvbmQg Z2VuZXJhdGlvbiBjaGlwc2V0cy4KLQkgKi8KLQl0bXAgPSBFTkdJTkVfUkVBRChlbmdpbmUsIFJJ TkdfQ1RMKTsKLQlpZiAodG1wICYgUklOR19XQUlUKSB7Ci0JCWludGVsX2d0X2hhbmRsZV9lcnJv cihlbmdpbmUtPmd0LCBlbmdpbmUtPm1hc2ssIDAsCi0JCQkJICAgICAgInN0dWNrIHdhaXQgb24g JXMiLCBlbmdpbmUtPm5hbWUpOwotCQlFTkdJTkVfV1JJVEUoZW5naW5lLCBSSU5HX0NUTCwgdG1w KTsKLQkJcmV0dXJuIEVOR0lORV9XQUlUX0tJQ0s7Ci0JfQotCi0JcmV0dXJuIEVOR0lORV9ERUFE OwotfQotCi1zdGF0aWMgdm9pZCBoYW5nY2hlY2tfbG9hZF9zYW1wbGUoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lLAotCQkJCSAgc3RydWN0IGhhbmdjaGVjayAqaGMpCi17Ci0JaGMtPmFj dGhkID0gaW50ZWxfZW5naW5lX2dldF9hY3RpdmVfaGVhZChlbmdpbmUpOwotCWhjLT5yaW5nID0g RU5HSU5FX1JFQUQoZW5naW5lLCBSSU5HX1NUQVJUKTsKLQloYy0+aGVhZCA9IEVOR0lORV9SRUFE KGVuZ2luZSwgUklOR19IRUFEKTsKLX0KLQotc3RhdGljIHZvaWQgaGFuZ2NoZWNrX3N0b3JlX3Nh bXBsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCi0JCQkJICAgY29uc3Qgc3RydWN0 IGhhbmdjaGVjayAqaGMpCi17Ci0JZW5naW5lLT5oYW5nY2hlY2suYWN0aGQgPSBoYy0+YWN0aGQ7 Ci0JZW5naW5lLT5oYW5nY2hlY2subGFzdF9yaW5nID0gaGMtPnJpbmc7Ci0JZW5naW5lLT5oYW5n Y2hlY2subGFzdF9oZWFkID0gaGMtPmhlYWQ7Ci19Ci0KLXN0YXRpYyBlbnVtIGludGVsX2VuZ2lu ZV9oYW5nY2hlY2tfYWN0aW9uCi1oYW5nY2hlY2tfZ2V0X2FjdGlvbihzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUsCi0JCSAgICAgY29uc3Qgc3RydWN0IGhhbmdjaGVjayAqaGMpCi17Ci0J aWYgKGludGVsX2VuZ2luZV9pc19pZGxlKGVuZ2luZSkpCi0JCXJldHVybiBFTkdJTkVfSURMRTsK LQotCWlmIChlbmdpbmUtPmhhbmdjaGVjay5sYXN0X3JpbmcgIT0gaGMtPnJpbmcpCi0JCXJldHVy biBFTkdJTkVfQUNUSVZFX1NFUU5POwotCi0JaWYgKGVuZ2luZS0+aGFuZ2NoZWNrLmxhc3RfaGVh ZCAhPSBoYy0+aGVhZCkKLQkJcmV0dXJuIEVOR0lORV9BQ1RJVkVfU0VRTk87Ci0KLQlyZXR1cm4g ZW5naW5lX3N0dWNrKGVuZ2luZSwgaGMtPmFjdGhkKTsKLX0KLQotc3RhdGljIHZvaWQgaGFuZ2No ZWNrX2FjY3VtdWxhdGVfc2FtcGxlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKLQkJ CQkJc3RydWN0IGhhbmdjaGVjayAqaGMpCi17Ci0JdW5zaWduZWQgbG9uZyB0aW1lb3V0ID0gSTkx NV9FTkdJTkVfREVBRF9USU1FT1VUOwotCi0JaGMtPmFjdGlvbiA9IGhhbmdjaGVja19nZXRfYWN0 aW9uKGVuZ2luZSwgaGMpOwotCi0JLyogV2UgYWx3YXlzIGluY3JlbWVudCB0aGUgcHJvZ3Jlc3MK LQkgKiBpZiB0aGUgZW5naW5lIGlzIGJ1c3kgYW5kIHN0aWxsIHByb2Nlc3NpbmcKLQkgKiB0aGUg c2FtZSByZXF1ZXN0LCBzbyB0aGF0IG5vIHNpbmdsZSByZXF1ZXN0Ci0JICogY2FuIHJ1biBpbmRl ZmluaXRlbHkgKHN1Y2ggYXMgYSBjaGFpbiBvZgotCSAqIGJhdGNoZXMpLiBUaGUgb25seSB0aW1l IHdlIGRvIG5vdCBpbmNyZW1lbnQKLQkgKiB0aGUgaGFuZ2NoZWNrIHNjb3JlIG9uIHRoaXMgcmlu ZywgaWYgdGhpcwotCSAqIGVuZ2luZSBpcyBpbiBhIGxlZ2l0aW1hdGUgd2FpdCBmb3IgYW5vdGhl cgotCSAqIGVuZ2luZS4gSW4gdGhhdCBjYXNlIHRoZSB3YWl0aW5nIGVuZ2luZSBpcyBhCi0JICog dmljdGltIGFuZCB3ZSB3YW50IHRvIGJlIHN1cmUgd2UgY2F0Y2ggdGhlCi0JICogcmlnaHQgY3Vs cHJpdC4gVGhlbiBldmVyeSB0aW1lIHdlIGRvIGtpY2sKLQkgKiB0aGUgcmluZywgbWFrZSBpdCBh cyBhIHByb2dyZXNzIGFzIHRoZSBzZXFubwotCSAqIGFkdmFuY2VtZW50IG1pZ2h0IGVuc3VyZSBh bmQgaWYgbm90LCBpdAotCSAqIHdpbGwgY2F0Y2ggdGhlIGhhbmdpbmcgZW5naW5lLgotCSAqLwot Ci0Jc3dpdGNoIChoYy0+YWN0aW9uKSB7Ci0JY2FzZSBFTkdJTkVfSURMRToKLQljYXNlIEVOR0lO RV9BQ1RJVkVfU0VRTk86Ci0JCS8qIENsZWFyIGhlYWQgYW5kIHN1YnVuaXQgc3RhdGVzIG9uIHNl cW5vIG1vdmVtZW50ICovCi0JCWhjLT5hY3RoZCA9IDA7Ci0KLQkJbWVtc2V0KCZlbmdpbmUtPmhh bmdjaGVjay5pbnN0ZG9uZSwgMCwKLQkJICAgICAgIHNpemVvZihlbmdpbmUtPmhhbmdjaGVjay5p bnN0ZG9uZSkpOwotCi0JCS8qIEludGVudGlvbmFsIGZhbGwgdGhyb3VnaCAqLwotCWNhc2UgRU5H SU5FX1dBSVRfS0lDSzoKLQljYXNlIEVOR0lORV9XQUlUOgotCQllbmdpbmUtPmhhbmdjaGVjay5h Y3Rpb25fdGltZXN0YW1wID0gamlmZmllczsKLQkJYnJlYWs7Ci0KLQljYXNlIEVOR0lORV9BQ1RJ VkVfSEVBRDoKLQljYXNlIEVOR0lORV9BQ1RJVkVfU1VCVU5JVFM6Ci0JCS8qCi0JCSAqIFNlcW5v IHN0dWNrIHdpdGggc3RpbGwgYWN0aXZlIGVuZ2luZSBnZXRzIGxlZXdheSwKLQkJICogaW4gaG9w ZXMgdGhhdCBpdCBpcyBqdXN0IGEgbG9uZyBzaGFkZXIuCi0JCSAqLwotCQl0aW1lb3V0ID0gSTkx NV9TRVFOT19ERUFEX1RJTUVPVVQ7Ci0JCWJyZWFrOwotCi0JY2FzZSBFTkdJTkVfREVBRDoKLQkJ YnJlYWs7Ci0KLQlkZWZhdWx0OgotCQlNSVNTSU5HX0NBU0UoaGMtPmFjdGlvbik7Ci0JfQotCi0J aGMtPnN0YWxsZWQgPSB0aW1lX2FmdGVyKGppZmZpZXMsCi0JCQkJIGVuZ2luZS0+aGFuZ2NoZWNr LmFjdGlvbl90aW1lc3RhbXAgKyB0aW1lb3V0KTsKLQloYy0+d2VkZ2VkID0gdGltZV9hZnRlcihq aWZmaWVzLAotCQkJCSBlbmdpbmUtPmhhbmdjaGVjay5hY3Rpb25fdGltZXN0YW1wICsKLQkJCQkg STkxNV9FTkdJTkVfV0VER0VEX1RJTUVPVVQpOwotfQotCi1zdGF0aWMgdm9pZCBoYW5nY2hlY2tf ZGVjbGFyZV9oYW5nKHN0cnVjdCBpbnRlbF9ndCAqZ3QsCi0JCQkJICAgaW50ZWxfZW5naW5lX21h c2tfdCBodW5nLAotCQkJCSAgIGludGVsX2VuZ2luZV9tYXNrX3Qgc3R1Y2spCi17Ci0Jc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwotCWludGVsX2VuZ2luZV9tYXNrX3QgdG1wOwotCWNo YXIgbXNnWzgwXTsKLQlpbnQgbGVuOwotCi0JLyogSWYgc29tZSByaW5ncyBodW5nIGJ1dCBvdGhl cnMgd2VyZSBzdGlsbCBidXN5LCBvbmx5Ci0JICogYmxhbWUgdGhlIGhhbmdpbmcgcmluZ3MgaW4g dGhlIHN5bm9wc2lzLgotCSAqLwotCWlmIChzdHVjayAhPSBodW5nKQotCQlodW5nICY9IH5zdHVj azsKLQlsZW4gPSBzY25wcmludGYobXNnLCBzaXplb2YobXNnKSwKLQkJCSIlcyBvbiAiLCBzdHVj ayA9PSBodW5nID8gIm5vIHByb2dyZXNzIiA6ICJoYW5nIik7Ci0JZm9yX2VhY2hfZW5naW5lX21h c2tlZChlbmdpbmUsIGd0LT5pOTE1LCBodW5nLCB0bXApCi0JCWxlbiArPSBzY25wcmludGYobXNn ICsgbGVuLCBzaXplb2YobXNnKSAtIGxlbiwKLQkJCQkgIiVzLCAiLCBlbmdpbmUtPm5hbWUpOwot CW1zZ1tsZW4tMl0gPSAnXDAnOwotCi0JcmV0dXJuIGludGVsX2d0X2hhbmRsZV9lcnJvcihndCwg aHVuZywgSTkxNV9FUlJPUl9DQVBUVVJFLCAiJXMiLCBtc2cpOwotfQotCi0vKgotICogVGhpcyBp cyBjYWxsZWQgd2hlbiB0aGUgY2hpcCBoYXNuJ3QgcmVwb3J0ZWQgYmFjayB3aXRoIGNvbXBsZXRl ZAotICogYmF0Y2hidWZmZXJzIGluIGEgbG9uZyB0aW1lLiBXZSBrZWVwIHRyYWNrIHBlciByaW5n IHNlcW5vIHByb2dyZXNzIGFuZAotICogaWYgdGhlcmUgYXJlIG5vIHByb2dyZXNzLCBoYW5nY2hl Y2sgc2NvcmUgZm9yIHRoYXQgcmluZyBpcyBpbmNyZWFzZWQuCi0gKiBGdXJ0aGVyLCBhY3RoZCBp cyBpbnNwZWN0ZWQgdG8gc2VlIGlmIHRoZSByaW5nIGlzIHN0dWNrLiBPbiBzdHVjayBjYXNlCi0g KiB3ZSBraWNrIHRoZSByaW5nLiBJZiB3ZSBzZWUgbm8gcHJvZ3Jlc3Mgb24gdGhyZWUgc3Vic2Vx dWVudCBjYWxscwotICogd2UgYXNzdW1lIGNoaXAgaXMgd2VkZ2VkIGFuZCB0cnkgdG8gZml4IGl0 IGJ5IHJlc2V0dGluZyB0aGUgY2hpcC4KLSAqLwotc3RhdGljIHZvaWQgaGFuZ2NoZWNrX2VsYXBz ZWQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQotewotCXN0cnVjdCBpbnRlbF9ndCAqZ3QgPQot CQljb250YWluZXJfb2Yod29yaywgdHlwZW9mKCpndCksIGhhbmdjaGVjay53b3JrLndvcmspOwot CWludGVsX2VuZ2luZV9tYXNrX3QgaHVuZyA9IDAsIHN0dWNrID0gMCwgd2VkZ2VkID0gMDsKLQlz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0JZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7 Ci0JaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7Ci0KLQlpZiAoIWk5MTVfbW9kcGFyYW1zLmVuYWJs ZV9oYW5nY2hlY2spCi0JCXJldHVybjsKLQotCWlmICghUkVBRF9PTkNFKGd0LT5hd2FrZSkpCi0J CXJldHVybjsKLQotCWlmIChpbnRlbF9ndF9pc193ZWRnZWQoZ3QpKQotCQlyZXR1cm47Ci0KLQl3 YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXRfaWZfaW5fdXNlKCZndC0+aTkxNS0+cnVudGlt ZV9wbSk7Ci0JaWYgKCF3YWtlcmVmKQotCQlyZXR1cm47Ci0KLQkvKiBBcyBlbmFibGluZyB0aGUg R1BVIHJlcXVpcmVzIGZhaXJseSBleHRlbnNpdmUgbW1pbyBhY2Nlc3MsCi0JICogcGVyaW9kaWNh bGx5IGFybSB0aGUgbW1pbyBjaGVja2VyIHRvIHNlZSBpZiB3ZSBhcmUgdHJpZ2dlcmluZwotCSAq IGFueSBpbnZhbGlkIGFjY2Vzcy4KLQkgKi8KLQlpbnRlbF91bmNvcmVfYXJtX3VuY2xhaW1lZF9t bWlvX2RldGVjdGlvbihndC0+dW5jb3JlKTsKLQotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0 LT5pOTE1LCBpZCkgewotCQlzdHJ1Y3QgaGFuZ2NoZWNrIGhjOwotCi0JCWludGVsX2VuZ2luZV9i cmVhZGNydW1ic19pcnEoZW5naW5lKTsKLQotCQloYW5nY2hlY2tfbG9hZF9zYW1wbGUoZW5naW5l LCAmaGMpOwotCQloYW5nY2hlY2tfYWNjdW11bGF0ZV9zYW1wbGUoZW5naW5lLCAmaGMpOwotCQlo YW5nY2hlY2tfc3RvcmVfc2FtcGxlKGVuZ2luZSwgJmhjKTsKLQotCQlpZiAoaGMuc3RhbGxlZCkg ewotCQkJaHVuZyB8PSBlbmdpbmUtPm1hc2s7Ci0JCQlpZiAoaGMuYWN0aW9uICE9IEVOR0lORV9E RUFEKQotCQkJCXN0dWNrIHw9IGVuZ2luZS0+bWFzazsKLQkJfQotCi0JCWlmIChoYy53ZWRnZWQp Ci0JCQl3ZWRnZWQgfD0gZW5naW5lLT5tYXNrOwotCX0KLQotCWlmIChHRU1fU0hPV19ERUJVRygp ICYmIChodW5nIHwgc3R1Y2spKSB7Ci0JCXN0cnVjdCBkcm1fcHJpbnRlciBwID0gZHJtX2RlYnVn X3ByaW50ZXIoImhhbmdjaGVjayIpOwotCi0JCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5p OTE1LCBpZCkgewotCQkJaWYgKGludGVsX2VuZ2luZV9pc19pZGxlKGVuZ2luZSkpCi0JCQkJY29u dGludWU7Ci0KLQkJCWludGVsX2VuZ2luZV9kdW1wKGVuZ2luZSwgJnAsICIlc1xuIiwgZW5naW5l LT5uYW1lKTsKLQkJfQotCX0KLQotCWlmICh3ZWRnZWQpIHsKLQkJZGV2X2VycihndC0+aTkxNS0+ ZHJtLmRldiwKLQkJCSJHUFUgcmVjb3ZlcnkgdGltZWQgb3V0LCIKLQkJCSIgY2FuY2VsbGluZyBh bGwgaW4tZmxpZ2h0IHJlbmRlcmluZy5cbiIpOwotCQlHRU1fVFJBQ0VfRFVNUCgpOwotCQlpbnRl bF9ndF9zZXRfd2VkZ2VkKGd0KTsKLQl9Ci0KLQlpZiAoaHVuZykKLQkJaGFuZ2NoZWNrX2RlY2xh cmVfaGFuZyhndCwgaHVuZywgc3R1Y2spOwotCi0JaW50ZWxfcnVudGltZV9wbV9wdXQoJmd0LT5p OTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKLQotCS8qIFJlc2V0IHRpbWVyIGluIGNhc2UgR1BV IGhhbmdzIHdpdGhvdXQgYW5vdGhlciByZXF1ZXN0IGJlaW5nIGFkZGVkICovCi0JaW50ZWxfZ3Rf cXVldWVfaGFuZ2NoZWNrKGd0KTsKLX0KLQotdm9pZCBpbnRlbF9ndF9xdWV1ZV9oYW5nY2hlY2so c3RydWN0IGludGVsX2d0ICpndCkKLXsKLQl1bnNpZ25lZCBsb25nIGRlbGF5OwotCi0JaWYgKHVu bGlrZWx5KCFpOTE1X21vZHBhcmFtcy5lbmFibGVfaGFuZ2NoZWNrKSkKLQkJcmV0dXJuOwotCi0J LyoKLQkgKiBEb24ndCBjb250aW51YWxseSBkZWZlciB0aGUgaGFuZ2NoZWNrIHNvIHRoYXQgaXQg aXMgYWx3YXlzIHJ1biBhdAotCSAqIGxlYXN0IG9uY2UgYWZ0ZXIgd29yayBoYXMgYmVlbiBzY2hl ZHVsZWQgb24gYW55IHJpbmcuIE90aGVyd2lzZSwKLQkgKiB3ZSB3aWxsIGlnbm9yZSBhIGh1bmcg cmluZyBpZiBhIHNlY29uZCByaW5nIGlzIGtlcHQgYnVzeS4KLQkgKi8KLQotCWRlbGF5ID0gcm91 bmRfamlmZmllc191cF9yZWxhdGl2ZShEUk1fSTkxNV9IQU5HQ0hFQ0tfSklGRklFUyk7Ci0JcXVl dWVfZGVsYXllZF93b3JrKHN5c3RlbV9sb25nX3dxLCAmZ3QtPmhhbmdjaGVjay53b3JrLCBkZWxh eSk7Ci19Ci0KLXZvaWQgaW50ZWxfZW5naW5lX2luaXRfaGFuZ2NoZWNrKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSkKLXsKLQltZW1zZXQoJmVuZ2luZS0+aGFuZ2NoZWNrLCAwLCBzaXpl b2YoZW5naW5lLT5oYW5nY2hlY2spKTsKLQllbmdpbmUtPmhhbmdjaGVjay5hY3Rpb25fdGltZXN0 YW1wID0gamlmZmllczsKLX0KLQotdm9pZCBpbnRlbF9ndF9pbml0X2hhbmdjaGVjayhzdHJ1Y3Qg aW50ZWxfZ3QgKmd0KQotewotCUlOSVRfREVMQVlFRF9XT1JLKCZndC0+aGFuZ2NoZWNrLndvcmss IGhhbmdjaGVja19lbGFwc2VkKTsKLX0KLQotI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1 X1NFTEZURVNUKQotI2luY2x1ZGUgInNlbGZ0ZXN0X2hhbmdjaGVjay5jIgotI2VuZGlmCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZXNldC5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuYwppbmRleCA3YjNkOWQ0NTE3YTAuLmRkMzcyYjM3 MmVlNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZXNldC5jCkBAIC0xMDE4LDggKzEw MTgsNiBAQCB2b2lkIGludGVsX2d0X3Jlc2V0KHN0cnVjdCBpbnRlbF9ndCAqZ3QsCiAJaWYgKHJl dCkKIAkJZ290byB0YWludDsKIAotCWludGVsX2d0X3F1ZXVlX2hhbmdjaGVjayhndCk7Ci0KIGZp bmlzaDoKIAlyZXNldF9maW5pc2goZ3QsIGF3YWtlKTsKIHVubG9jazoKQEAgLTEzNDcsNCArMTM0 NSw1IEBAIHZvaWQgX19pbnRlbF9maW5pX3dlZGdlKHN0cnVjdCBpbnRlbF93ZWRnZV9tZSAqdykK IAogI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X1NFTEZURVNUKQogI2luY2x1ZGUgInNl bGZ0ZXN0X3Jlc2V0LmMiCisjaW5jbHVkZSAic2VsZnRlc3RfaGFuZ2NoZWNrLmMiCiAjZW5kaWYK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2hhbmdjaGVjay5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfaGFuZ2NoZWNrLmMKaW5kZXggZThh NDBkZjc5YmQwLi5jNmNmNzZlMzUzZWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L3NlbGZ0ZXN0X2hhbmdjaGVjay5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3Nl bGZ0ZXN0X2hhbmdjaGVjay5jCkBAIC0xNjg2LDcgKzE2ODYsNiBAQCBpbnQgaW50ZWxfaGFuZ2No ZWNrX2xpdmVfc2VsZnRlc3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCX07CiAJ c3RydWN0IGludGVsX2d0ICpndCA9ICZpOTE1LT5ndDsKIAlpbnRlbF93YWtlcmVmX3Qgd2FrZXJl ZjsKLQlib29sIHNhdmVkX2hhbmdjaGVjazsKIAlpbnQgZXJyOwogCiAJaWYgKCFpbnRlbF9oYXNf Z3B1X3Jlc2V0KGd0KSkKQEAgLTE2OTYsMTIgKzE2OTUsOSBAQCBpbnQgaW50ZWxfaGFuZ2NoZWNr X2xpdmVfc2VsZnRlc3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCQlyZXR1cm4g LUVJTzsgLyogd2UncmUgbG9uZyBwYXN0IGhvcGUgb2YgYSBzdWNjZXNzZnVsIHJlc2V0ICovCiAK IAl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoJmd0LT5pOTE1LT5ydW50aW1lX3BtKTsK LQlzYXZlZF9oYW5nY2hlY2sgPSBmZXRjaF9hbmRfemVybygmaTkxNV9tb2RwYXJhbXMuZW5hYmxl X2hhbmdjaGVjayk7Ci0JZHJhaW5fZGVsYXllZF93b3JrKCZndC0+aGFuZ2NoZWNrLndvcmspOyAv KiBmbHVzaCBwYXJhbSAqLwogCiAJZXJyID0gaW50ZWxfZ3RfbGl2ZV9zdWJ0ZXN0cyh0ZXN0cywg Z3QpOwogCi0JaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2hhbmdjaGVjayA9IHNhdmVkX2hhbmdjaGVj azsKIAlpbnRlbF9ydW50aW1lX3BtX3B1dCgmZ3QtPmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYp OwogCiAJcmV0dXJuIGVycjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXggMjk4 YTNlODc5ZTY1Li42YTdlNmJmYTU4MTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5j CkBAIC0xMDExLDkyICsxMDExLDYgQEAgc3RhdGljIGludCBpOTE1X2ZyZXF1ZW5jeV9pbmZvKHN0 cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRp YyB2b2lkIGk5MTVfaW5zdGRvbmVfaW5mbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCi0JCQkgICAgICAgc3RydWN0IHNlcV9maWxlICptLAotCQkJICAgICAgIHN0cnVjdCBpbnRl bF9pbnN0ZG9uZSAqaW5zdGRvbmUpCi17Ci0JY29uc3Qgc3RydWN0IHNzZXVfZGV2X2luZm8gKnNz ZXUgPSAmUlVOVElNRV9JTkZPKGRldl9wcml2KS0+c3NldTsKLQlpbnQgc2xpY2U7Ci0JaW50IHN1 YnNsaWNlOwotCi0Jc2VxX3ByaW50ZihtLCAiXHRcdElOU1RET05FOiAweCUwOHhcbiIsCi0JCSAg IGluc3Rkb25lLT5pbnN0ZG9uZSk7Ci0KLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8PSAzKQot CQlyZXR1cm47Ci0KLQlzZXFfcHJpbnRmKG0sICJcdFx0U0NfSU5TVERPTkU6IDB4JTA4eFxuIiwK LQkJICAgaW5zdGRvbmUtPnNsaWNlX2NvbW1vbik7Ci0KLQlpZiAoSU5URUxfR0VOKGRldl9wcml2 KSA8PSA2KQotCQlyZXR1cm47Ci0KLQlmb3JfZWFjaF9pbnN0ZG9uZV9zbGljZV9zdWJzbGljZShk ZXZfcHJpdiwgc3NldSwgc2xpY2UsIHN1YnNsaWNlKQotCQlzZXFfcHJpbnRmKG0sICJcdFx0U0FN UExFUl9JTlNURE9ORVslZF1bJWRdOiAweCUwOHhcbiIsCi0JCQkgICBzbGljZSwgc3Vic2xpY2Us IGluc3Rkb25lLT5zYW1wbGVyW3NsaWNlXVtzdWJzbGljZV0pOwotCi0JZm9yX2VhY2hfaW5zdGRv bmVfc2xpY2Vfc3Vic2xpY2UoZGV2X3ByaXYsIHNzZXUsIHNsaWNlLCBzdWJzbGljZSkKLQkJc2Vx X3ByaW50ZihtLCAiXHRcdFJPV19JTlNURE9ORVslZF1bJWRdOiAweCUwOHhcbiIsCi0JCQkgICBz bGljZSwgc3Vic2xpY2UsIGluc3Rkb25lLT5yb3dbc2xpY2VdW3N1YnNsaWNlXSk7Ci19Ci0KLXN0 YXRpYyBpbnQgaTkxNV9oYW5nY2hlY2tfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVu dXNlZCkKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IG5vZGVfdG9faTkxNSht LT5wcml2YXRlKTsKLQlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gJmk5MTUtPmd0OwotCXN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKLQlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKLQllbnVt IGludGVsX2VuZ2luZV9pZCBpZDsKLQotCXNlcV9wcmludGYobSwgIlJlc2V0IGZsYWdzOiAlbHhc biIsIGd0LT5yZXNldC5mbGFncyk7Ci0JaWYgKHRlc3RfYml0KEk5MTVfV0VER0VELCAmZ3QtPnJl c2V0LmZsYWdzKSkKLQkJc2VxX3B1dHMobSwgIlx0V2VkZ2VkXG4iKTsKLQlpZiAodGVzdF9iaXQo STkxNV9SRVNFVF9CQUNLT0ZGLCAmZ3QtPnJlc2V0LmZsYWdzKSkKLQkJc2VxX3B1dHMobSwgIlx0 RGV2aWNlIChnbG9iYWwpIHJlc2V0IGluIHByb2dyZXNzXG4iKTsKLQotCWlmICghaTkxNV9tb2Rw YXJhbXMuZW5hYmxlX2hhbmdjaGVjaykgewotCQlzZXFfcHV0cyhtLCAiSGFuZ2NoZWNrIGRpc2Fi bGVkXG4iKTsKLQkJcmV0dXJuIDA7Ci0JfQotCi0JaWYgKHRpbWVyX3BlbmRpbmcoJmd0LT5oYW5n Y2hlY2sud29yay50aW1lcikpCi0JCXNlcV9wcmludGYobSwgIkhhbmdjaGVjayBhY3RpdmUsIHRp bWVyIGZpcmVzIGluICVkbXNcbiIsCi0JCQkgICBqaWZmaWVzX3RvX21zZWNzKGd0LT5oYW5nY2hl Y2sud29yay50aW1lci5leHBpcmVzIC0KLQkJCQkJICAgIGppZmZpZXMpKTsKLQllbHNlIGlmIChk ZWxheWVkX3dvcmtfcGVuZGluZygmZ3QtPmhhbmdjaGVjay53b3JrKSkKLQkJc2VxX3B1dHMobSwg IkhhbmdjaGVjayBhY3RpdmUsIHdvcmsgcGVuZGluZ1xuIik7Ci0JZWxzZQotCQlzZXFfcHV0cyht LCAiSGFuZ2NoZWNrIGluYWN0aXZlXG4iKTsKLQotCXNlcV9wcmludGYobSwgIkdUIGFjdGl2ZT8g JXNcbiIsIHllc25vKGd0LT5hd2FrZSkpOwotCi0Jd2l0aF9pbnRlbF9ydW50aW1lX3BtKCZpOTE1 LT5ydW50aW1lX3BtLCB3YWtlcmVmKSB7Ci0JCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUs IGlkKSB7Ci0JCQlzdHJ1Y3QgaW50ZWxfaW5zdGRvbmUgaW5zdGRvbmU7Ci0KLQkJCXNlcV9wcmlu dGYobSwgIiVzOiAlZCBtcyBhZ29cbiIsCi0JCQkJICAgZW5naW5lLT5uYW1lLAotCQkJCSAgIGpp ZmZpZXNfdG9fbXNlY3MoamlmZmllcyAtCi0JCQkJCQkgICAgZW5naW5lLT5oYW5nY2hlY2suYWN0 aW9uX3RpbWVzdGFtcCkpOwotCi0JCQlzZXFfcHJpbnRmKG0sICJcdEFDVEhEID0gMHglMDhsbHgg W2N1cnJlbnQgMHglMDhsbHhdXG4iLAotCQkJCSAgIChsb25nIGxvbmcpZW5naW5lLT5oYW5nY2hl Y2suYWN0aGQsCi0JCQkJICAgaW50ZWxfZW5naW5lX2dldF9hY3RpdmVfaGVhZChlbmdpbmUpKTsK LQotCQkJaW50ZWxfZW5naW5lX2dldF9pbnN0ZG9uZShlbmdpbmUsICZpbnN0ZG9uZSk7Ci0KLQkJ CXNlcV9wdXRzKG0sICJcdGluc3Rkb25lIHJlYWQgPVxuIik7Ci0JCQlpOTE1X2luc3Rkb25lX2lu Zm8oaTkxNSwgbSwgJmluc3Rkb25lKTsKLQotCQkJc2VxX3B1dHMobSwgIlx0aW5zdGRvbmUgYWNj dSA9XG4iKTsKLQkJCWk5MTVfaW5zdGRvbmVfaW5mbyhpOTE1LCBtLAotCQkJCQkgICAmZW5naW5l LT5oYW5nY2hlY2suaW5zdGRvbmUpOwotCQl9Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KIHN0YXRp YyBpbnQgaXJvbmxha2VfZHJwY19pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSkKIHsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IG5vZGVfdG9faTkxNShtLT5wcml2YXRlKTsKQEAgLTQy OTYsNyArNDIxMCw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2luZm9fbGlzdCBpOTE1X2Rl YnVnZnNfbGlzdFtdID0gewogCXsiaTkxNV9ndWNfc3RhZ2VfcG9vbCIsIGk5MTVfZ3VjX3N0YWdl X3Bvb2wsIDB9LAogCXsiaTkxNV9odWNfbG9hZF9zdGF0dXMiLCBpOTE1X2h1Y19sb2FkX3N0YXR1 c19pbmZvLCAwfSwKIAl7Imk5MTVfZnJlcXVlbmN5X2luZm8iLCBpOTE1X2ZyZXF1ZW5jeV9pbmZv LCAwfSwKLQl7Imk5MTVfaGFuZ2NoZWNrX2luZm8iLCBpOTE1X2hhbmdjaGVja19pbmZvLCAwfSwK IAl7Imk5MTVfZHJwY19pbmZvIiwgaTkxNV9kcnBjX2luZm8sIDB9LAogCXsiaTkxNV9yaW5nX2Zy ZXFfdGFibGUiLCBpOTE1X3JpbmdfZnJlcV90YWJsZSwgMH0sCiAJeyJpOTE1X2Zyb250YnVmZmVy X3RyYWNraW5nIiwgaTkxNV9mcm9udGJ1ZmZlcl90cmFja2luZywgMH0sCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuYwppbmRleCA5MzU0OTI0NTc2YzQuLjEzNDEyZTYxNDgzMiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5jCkBAIC0xNTQ2LDEwICsxNTQ2LDcgQEAgdm9pZCBpOTE1X2RyaXZlcl9yZW1vdmUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAKIAlpOTE1X2RyaXZlcl9tb2Rlc2V0X3Jl bW92ZShpOTE1KTsKIAotCS8qIEZyZWUgZXJyb3Igc3RhdGUgYWZ0ZXIgaW50ZXJydXB0cyBhcmUg ZnVsbHkgZGlzYWJsZWQuICovCi0JY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZpOTE1LT5ndC5o YW5nY2hlY2sud29yayk7CiAJaTkxNV9yZXNldF9lcnJvcl9zdGF0ZShpOTE1KTsKLQogCWk5MTVf Z2VtX2RyaXZlcl9yZW1vdmUoaTkxNSk7CiAKIAlpbnRlbF9wb3dlcl9kb21haW5zX2RyaXZlcl9y ZW1vdmUoaTkxNSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCBiMzY3NDY3YjAzYzIuLjgz MWMzZDgzNTNhOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0yMTkyLDcgKzIxOTIsNiBA QCB2b2lkIGk5MTVfZHJpdmVyX3JlbW92ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7 CiBpbnQgaTkxNV9yZXN1bWVfc3dpdGNoZXJvbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSk7CiBpbnQgaTkxNV9zdXNwZW5kX3N3aXRjaGVyb28oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUsIHBtX21lc3NhZ2VfdCBzdGF0ZSk7CiAKLXZvaWQgaW50ZWxfZW5naW5lX2luaXRfaGFu Z2NoZWNrKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CiBpbnQgdmx2X2ZvcmNlX2dm eF9jbG9jayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGJvb2wgb24pOwogCiBz dGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfZ3Z0X2FjdGl2ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9l cnJvci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwppbmRleCA1Y2Y0 ZWVkNWFkZDguLjQ3MjM5ZGY2NTNmMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9ncHVfZXJyb3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJv ci5jCkBAIC01MzQsMTAgKzUzNCw2IEBAIHN0YXRpYyB2b2lkIGVycm9yX3ByaW50X2VuZ2luZShz dHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfc3RhdGVfYnVmICptLAogCX0KIAllcnJfcHJpbnRmKG0sICIg IHJpbmctPmhlYWQ6IDB4JTA4eFxuIiwgZWUtPmNwdV9yaW5nX2hlYWQpOwogCWVycl9wcmludGYo bSwgIiAgcmluZy0+dGFpbDogMHglMDh4XG4iLCBlZS0+Y3B1X3JpbmdfdGFpbCk7Ci0JZXJyX3By aW50ZihtLCAiICBoYW5nY2hlY2sgdGltZXN0YW1wOiAlZG1zICglbHUlcylcbiIsCi0JCSAgIGpp ZmZpZXNfdG9fbXNlY3MoZWUtPmhhbmdjaGVja190aW1lc3RhbXAgLSBlcG9jaCksCi0JCSAgIGVl LT5oYW5nY2hlY2tfdGltZXN0YW1wLAotCQkgICBlZS0+aGFuZ2NoZWNrX3RpbWVzdGFtcCA9PSBl cG9jaCA/ICI7IGVwb2NoIiA6ICIiKTsKIAllcnJfcHJpbnRmKG0sICIgIGVuZ2luZSByZXNldCBj b3VudDogJXVcbiIsIGVlLT5yZXNldF9jb3VudCk7CiAKIAlmb3IgKG4gPSAwOyBuIDwgZWUtPm51 bV9wb3J0czsgbisrKSB7CkBAIC02NzksMTEgKzY3NSw4IEBAIHN0YXRpYyB2b2lkIF9fZXJyX3By aW50X3RvX3NnbChzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfc3RhdGVfYnVmICptLAogCXRzID0ga3Rp bWVfdG9fdGltZXNwZWM2NChlcnJvci0+dXB0aW1lKTsKIAllcnJfcHJpbnRmKG0sICJVcHRpbWU6 ICVsbGQgcyAlbGQgdXNcbiIsCiAJCSAgIChzNjQpdHMudHZfc2VjLCB0cy50dl9uc2VjIC8gTlNF Q19QRVJfVVNFQyk7Ci0JZXJyX3ByaW50ZihtLCAiRXBvY2g6ICVsdSBqaWZmaWVzICgldSBIWilc biIsIGVycm9yLT5lcG9jaCwgSFopOwotCWVycl9wcmludGYobSwgIkNhcHR1cmU6ICVsdSBqaWZm aWVzOyAlZCBtcyBhZ28sICVkIG1zIGFmdGVyIGVwb2NoXG4iLAotCQkgICBlcnJvci0+Y2FwdHVy ZSwKLQkJICAgamlmZmllc190b19tc2VjcyhqaWZmaWVzIC0gZXJyb3ItPmNhcHR1cmUpLAotCQkg ICBqaWZmaWVzX3RvX21zZWNzKGVycm9yLT5jYXB0dXJlIC0gZXJyb3ItPmVwb2NoKSk7CisJZXJy X3ByaW50ZihtLCAiQ2FwdHVyZTogJWx1IGppZmZpZXM7ICVkIG1zIGFnb1xuIiwKKwkJICAgZXJy b3ItPmNhcHR1cmUsIGppZmZpZXNfdG9fbXNlY3MoamlmZmllcyAtIGVycm9yLT5jYXB0dXJlKSk7 CiAKIAlmb3IgKGVlID0gZXJyb3ItPmVuZ2luZTsgZWU7IGVlID0gZWUtPm5leHQpCiAJCWVycl9w cmludGYobSwgIkFjdGl2ZSBwcm9jZXNzIChvbiByaW5nICVzKTogJXMgWyVkXVxuIiwKQEAgLTc0 Miw3ICs3MzUsNyBAQCBzdGF0aWMgdm9pZCBfX2Vycl9wcmludF90b19zZ2woc3RydWN0IGRybV9p OTE1X2Vycm9yX3N0YXRlX2J1ZiAqbSwKIAkJZXJyX3ByaW50ZihtLCAiR1RUX0NBQ0hFX0VOOiAw eCUwOHhcbiIsIGVycm9yLT5ndHRfY2FjaGUpOwogCiAJZm9yIChlZSA9IGVycm9yLT5lbmdpbmU7 IGVlOyBlZSA9IGVlLT5uZXh0KQotCQllcnJvcl9wcmludF9lbmdpbmUobSwgZWUsIGVycm9yLT5l cG9jaCk7CisJCWVycm9yX3ByaW50X2VuZ2luZShtLCBlZSwgZXJyb3ItPmNhcHR1cmUpOwogCiAJ Zm9yIChlZSA9IGVycm9yLT5lbmdpbmU7IGVlOyBlZSA9IGVlLT5uZXh0KSB7CiAJCWNvbnN0IHN0 cnVjdCBkcm1faTkxNV9lcnJvcl9vYmplY3QgKm9iajsKQEAgLTc3MCw3ICs3NjMsNyBAQCBzdGF0 aWMgdm9pZCBfX2Vycl9wcmludF90b19zZ2woc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlX2J1 ZiAqbSwKIAkJCWZvciAoaiA9IDA7IGogPCBlZS0+bnVtX3JlcXVlc3RzOyBqKyspCiAJCQkJZXJy b3JfcHJpbnRfcmVxdWVzdChtLCAiICIsCiAJCQkJCQkgICAgJmVlLT5yZXF1ZXN0c1tqXSwKLQkJ CQkJCSAgICBlcnJvci0+ZXBvY2gpOworCQkJCQkJICAgIGVycm9yLT5jYXB0dXJlKTsKIAkJfQog CiAJCXByaW50X2Vycm9yX29iaihtLCBlZS0+ZW5naW5lLCAicmluZ2J1ZmZlciIsIGVlLT5yaW5n YnVmZmVyKTsKQEAgLTExNDQsOCArMTEzNyw2IEBAIHN0YXRpYyB2b2lkIGVycm9yX3JlY29yZF9l bmdpbmVfcmVnaXN0ZXJzKHN0cnVjdCBpOTE1X2dwdV9zdGF0ZSAqZXJyb3IsCiAJfQogCiAJZWUt PmlkbGUgPSBpbnRlbF9lbmdpbmVfaXNfaWRsZShlbmdpbmUpOwotCWlmICghZWUtPmlkbGUpCi0J CWVlLT5oYW5nY2hlY2tfdGltZXN0YW1wID0gZW5naW5lLT5oYW5nY2hlY2suYWN0aW9uX3RpbWVz dGFtcDsKIAllZS0+cmVzZXRfY291bnQgPSBpOTE1X3Jlc2V0X2VuZ2luZV9jb3VudCgmZGV2X3By aXYtPmdwdV9lcnJvciwKIAkJCQkJCSAgZW5naW5lKTsKIApAQCAtMTY1NywyMCArMTY0OCw2IEBA IHN0YXRpYyB2b2lkIGNhcHR1cmVfcGFyYW1zKHN0cnVjdCBpOTE1X2dwdV9zdGF0ZSAqZXJyb3Ip CiAJaTkxNV9wYXJhbXNfY29weSgmZXJyb3ItPnBhcmFtcywgJmk5MTVfbW9kcGFyYW1zKTsKIH0K IAotc3RhdGljIHVuc2lnbmVkIGxvbmcgY2FwdHVyZV9maW5kX2Vwb2NoKGNvbnN0IHN0cnVjdCBp OTE1X2dwdV9zdGF0ZSAqZXJyb3IpCi17Ci0JY29uc3Qgc3RydWN0IGRybV9pOTE1X2Vycm9yX2Vu Z2luZSAqZWU7Ci0JdW5zaWduZWQgbG9uZyBlcG9jaCA9IGVycm9yLT5jYXB0dXJlOwotCi0JZm9y IChlZSA9IGVycm9yLT5lbmdpbmU7IGVlOyBlZSA9IGVlLT5uZXh0KSB7Ci0JCWlmIChlZS0+aGFu Z2NoZWNrX3RpbWVzdGFtcCAmJgotCQkgICAgdGltZV9iZWZvcmUoZWUtPmhhbmdjaGVja190aW1l c3RhbXAsIGVwb2NoKSkKLQkJCWVwb2NoID0gZWUtPmhhbmdjaGVja190aW1lc3RhbXA7Ci0JfQot Ci0JcmV0dXJuIGVwb2NoOwotfQotCiBzdGF0aWMgdm9pZCBjYXB0dXJlX2ZpbmlzaChzdHJ1Y3Qg aTkxNV9ncHVfc3RhdGUgKmVycm9yKQogewogCXN0cnVjdCBpOTE1X2dndHQgKmdndHQgPSAmZXJy b3ItPmk5MTUtPmdndHQ7CkBAIC0xNzIyLDggKzE2OTksNiBAQCBpOTE1X2NhcHR1cmVfZ3B1X3N0 YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCWVycm9yLT5vdmVybGF5ID0gaW50 ZWxfb3ZlcmxheV9jYXB0dXJlX2Vycm9yX3N0YXRlKGk5MTUpOwogCWVycm9yLT5kaXNwbGF5ID0g aW50ZWxfZGlzcGxheV9jYXB0dXJlX2Vycm9yX3N0YXRlKGk5MTUpOwogCi0JZXJyb3ItPmVwb2No ID0gY2FwdHVyZV9maW5kX2Vwb2NoKGVycm9yKTsKLQogCWNhcHR1cmVfZmluaXNoKGVycm9yKTsK IAljb21wcmVzc19maW5pKCZjb21wcmVzcyk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9l cnJvci5oCmluZGV4IDdmMWNkMGIxZmVmNy4uNGRjMzZkNmVlM2EyIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ3B1X2Vycm9yLmgKQEAgLTM0LDcgKzM0LDYgQEAgc3RydWN0IGk5MTVfZ3B1X3N0 YXRlIHsKIAlrdGltZV90IGJvb3R0aW1lOwogCWt0aW1lX3QgdXB0aW1lOwogCXVuc2lnbmVkIGxv bmcgY2FwdHVyZTsKLQl1bnNpZ25lZCBsb25nIGVwb2NoOwogCiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTU7CiAKQEAgLTg2LDcgKzg1LDYgQEAgc3RydWN0IGk5MTVfZ3B1X3N0YXRlIHsK IAogCQkvKiBTb2Z0d2FyZSB0cmFja2VkIHN0YXRlICovCiAJCWJvb2wgaWRsZTsKLQkJdW5zaWdu ZWQgbG9uZyBoYW5nY2hlY2tfdGltZXN0YW1wOwogCQlpbnQgbnVtX3JlcXVlc3RzOwogCQl1MzIg cmVzZXRfY291bnQ7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcHJp b2xpc3RfdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcHJpb2xpc3RfdHlwZXMu aAppbmRleCBhZThiYjNjYjYyN2UuLjczMmFhZDE0ODg4MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9wcmlvbGlzdF90eXBlcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcHJpb2xpc3RfdHlwZXMuaApAQCAtMTYsNiArMTYsMTIgQEAgZW51bSB7CiAJSTkx NV9QUklPUklUWV9NSU4gPSBJOTE1X0NPTlRFWFRfTUlOX1VTRVJfUFJJT1JJVFkgLSAxLAogCUk5 MTVfUFJJT1JJVFlfTk9STUFMID0gSTkxNV9DT05URVhUX0RFRkFVTFRfUFJJT1JJVFksCiAJSTkx NV9QUklPUklUWV9NQVggPSBJOTE1X0NPTlRFWFRfTUFYX1VTRVJfUFJJT1JJVFkgKyAxLAorCisJ LyogQSBwcmVlbXB0aXZlIHB1bHNlIHVzZWQgdG8gbW9uaXRvciB0aGUgaGVhbHRoIG9mIGVhY2gg ZW5naW5lICovCisJSTkxNV9QUklPUklUWV9IRUFSVEJFQVQsCisKKwkvKiBJbnRlcmFjdGl2ZSB3 b3JrbG9hZCwgc2NoZWR1bGVkIGZvciBpbW1lZGlhdGUgcGFnZWZsaXBwaW5nICovCisJSTkxNV9Q UklPUklUWV9ESVNQTEFZLAogfTsKIAogI2RlZmluZSBJOTE1X1VTRVJfUFJJT1JJVFlfU0hJRlQg MgotLSAKMi4yMy4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n Zng=