From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 09/10] drm/i915: Replace hangcheck by heartbeats Date: Thu, 10 Oct 2019 08:14:33 +0100 Message-ID: <20191010071434.31195-9-chris@chris-wilson.co.uk> References: <20191010071434.31195-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 422196EAAB for ; Thu, 10 Oct 2019 07:14:48 +0000 (UTC) In-Reply-To: <20191010071434.31195-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 cm0vaTkxNS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCmluZGV4IGNm YWI3Yzg1ODViMy4uNTlkMzU2Y2M0MDZjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQpAQCAtODgsNyAr ODgsNiBAQCBndC15ICs9IFwKIAlndC9pbnRlbF9ndF9wbS5vIFwKIAlndC9pbnRlbF9ndF9wbV9p cnEubyBcCiAJZ3QvaW50ZWxfZ3RfcmVxdWVzdHMubyBcCi0JZ3QvaW50ZWxfaGFuZ2NoZWNrLm8g XAogCWd0L2ludGVsX2xyYy5vIFwKIAlndC9pbnRlbF9yYzYubyBcCiAJZ3QvaW50ZWxfcmVuZGVy c3RhdGUubyBcCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5j CmluZGV4IDFhNTMzY2NkYjU0Zi4uNWU1ZGUzMDgxZjQ4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwpAQCAtMTQzMzgsNyArMTQzMzgsNyBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9wbGFuZV91bnBpbl9mYihzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKm9s ZF9wbGFuZV9zdGF0ZSkKIHN0YXRpYyB2b2lkIGZiX29ial9idW1wX3JlbmRlcl9wcmlvcml0eShz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogewogCXN0cnVjdCBpOTE1X3NjaGVkX2F0 dHIgYXR0ciA9IHsKLQkJLnByaW9yaXR5ID0gSTkxNV9QUklPUklUWV9ESVNQTEFZLAorCQkucHJp b3JpdHkgPSBJOTE1X1VTRVJfUFJJT1JJVFkoSTkxNV9QUklPUklUWV9ESVNQTEFZKSwKIAl9Owog CiAJaTkxNV9nZW1fb2JqZWN0X3dhaXRfcHJpb3JpdHkob2JqLCAwLCAmYXR0cik7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmgKaW5kZXggYzVlMTRjOWM4MDVjLi41 YmQ1MWUzOTczNzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dl bV9vYmplY3QuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0 LmgKQEAgLTQ2MCw2ICs0NjAsNSBAQCBpbnQgaTkxNV9nZW1fb2JqZWN0X3dhaXQoc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIGludCBpOTE1X2dlbV9vYmplY3Rfd2FpdF9wcmlvcml0 eShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkJCSAgdW5zaWduZWQgaW50IGZs YWdzLAogCQkJCSAgY29uc3Qgc3RydWN0IGk5MTVfc2NoZWRfYXR0ciAqYXR0cik7Ci0jZGVmaW5l IEk5MTVfUFJJT1JJVFlfRElTUExBWSBJOTE1X1VTRVJfUFJJT1JJVFkoSTkxNV9QUklPUklUWV9N QVgpCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVf Z2VtX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fcG0uYwppbmRleCA3 OTg3YjU0ZmIxZjUuLjBlOTc1MjBjYjFiYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ2VtL2k5MTVfZ2VtX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVf Z2VtX3BtLmMKQEAgLTEwMCw4ICsxMDAsNiBAQCB2b2lkIGk5MTVfZ2VtX3N1c3BlbmQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJaW50ZWxfZ3Rfc3VzcGVuZCgmaTkxNS0+Z3QpOwog CWludGVsX3VjX3N1c3BlbmQoJmk5MTUtPmd0LnVjKTsKIAotCWNhbmNlbF9kZWxheWVkX3dvcmtf c3luYygmaTkxNS0+Z3QuaGFuZ2NoZWNrLndvcmspOwotCiAJaTkxNV9nZW1fZHJhaW5fZnJlZWRf b2JqZWN0cyhpOTE1KTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv aW50ZWxfZW5naW5lLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmUuaApp bmRleCA5M2VhMzY3ZmU2MjQuLjhhZDU3ZWFjZTM1MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv aW50ZWxfZW5naW5lLmgKQEAgLTg5LDM4ICs4OSw2IEBAIHN0cnVjdCBkcm1fcHJpbnRlcjsKIC8q IHNlcW5vIHNpemUgaXMgYWN0dWFsbHkgb25seSBhIHVpbnQzMiwgYnV0IHNpbmNlIHdlIHBsYW4g dG8gdXNlIE1JX0ZMVVNIX0RXIHRvCiAgKiBkbyB0aGUgd3JpdGVzLCBhbmQgdGhhdCBtdXN0IGhh dmUgcXcgYWxpZ25lZCBvZmZzZXRzLCBzaW1wbHkgcHJldGVuZCBpdCdzIDhiLgogICovCi1lbnVt IGludGVsX2VuZ2luZV9oYW5nY2hlY2tfYWN0aW9uIHsKLQlFTkdJTkVfSURMRSA9IDAsCi0JRU5H SU5FX1dBSVQsCi0JRU5HSU5FX0FDVElWRV9TRVFOTywKLQlFTkdJTkVfQUNUSVZFX0hFQUQsCi0J RU5HSU5FX0FDVElWRV9TVUJVTklUUywKLQlFTkdJTkVfV0FJVF9LSUNLLAotCUVOR0lORV9ERUFE LAotfTsKLQotc3RhdGljIGlubGluZSBjb25zdCBjaGFyICoKLWhhbmdjaGVja19hY3Rpb25fdG9f c3RyKGNvbnN0IGVudW0gaW50ZWxfZW5naW5lX2hhbmdjaGVja19hY3Rpb24gYSkKLXsKLQlzd2l0 Y2ggKGEpIHsKLQljYXNlIEVOR0lORV9JRExFOgotCQlyZXR1cm4gImlkbGUiOwotCWNhc2UgRU5H SU5FX1dBSVQ6Ci0JCXJldHVybiAid2FpdCI7Ci0JY2FzZSBFTkdJTkVfQUNUSVZFX1NFUU5POgot CQlyZXR1cm4gImFjdGl2ZSBzZXFubyI7Ci0JY2FzZSBFTkdJTkVfQUNUSVZFX0hFQUQ6Ci0JCXJl dHVybiAiYWN0aXZlIGhlYWQiOwotCWNhc2UgRU5HSU5FX0FDVElWRV9TVUJVTklUUzoKLQkJcmV0 dXJuICJhY3RpdmUgc3VidW5pdHMiOwotCWNhc2UgRU5HSU5FX1dBSVRfS0lDSzoKLQkJcmV0dXJu ICJ3YWl0IGtpY2siOwotCWNhc2UgRU5HSU5FX0RFQUQ6Ci0JCXJldHVybiAiZGVhZCI7Ci0JfQot Ci0JcmV0dXJuICJ1bmtub3duIjsKLX0KIAogc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQKIGV4 ZWNsaXN0c19udW1fcG9ydHMoY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKiBj b25zdCBleGVjbGlzdHMpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRl bF9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9jcy5j CmluZGV4IDFlYjUxMTQ3ODM5YS4uZDgyOWFkMzQwY2EwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9pbnRlbF9lbmdpbmVfY3MuYwpAQCAtMzA1LDYgKzMwNSw3IEBAIHN0YXRpYyBpbnQgaW50 ZWxfZW5naW5lX3NldHVwKHN0cnVjdCBpbnRlbF9ndCAqZ3QsIGVudW0gaW50ZWxfZW5naW5lX2lk IGlkKQogCV9fc3ByaW50X2VuZ2luZV9uYW1lKGVuZ2luZSk7CiAKIAllbmdpbmUtPnByb3BzLnBy ZWVtcHRfdGltZW91dCA9IENPTkZJR19EUk1fSTkxNV9QUkVFTVBUX1RJTUVPVVQ7CisJZW5naW5l LT5wcm9wcy5oZWFydGJlYXRfaW50ZXJ2YWwgPSBDT05GSUdfRFJNX0k5MTVfSEVBUlRCRUFUX0lO VEVSVkFMOwogCiAJLyoKIAkgKiBUbyBiZSBvdmVycmlkZGVuIGJ5IHRoZSBiYWNrZW5kIG9uIHNl dHVwLiBIb3dldmVyIHRvIGZhY2lsaXRhdGUKQEAgLTU5OSw3ICs2MDAsNiBAQCBzdGF0aWMgaW50 IGludGVsX2VuZ2luZV9zZXR1cF9jb21tb24oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l KQogCWludGVsX2VuZ2luZV9pbml0X2FjdGl2ZShlbmdpbmUsIEVOR0lORV9QSFlTSUNBTCk7CiAJ aW50ZWxfZW5naW5lX2luaXRfYnJlYWRjcnVtYnMoZW5naW5lKTsKIAlpbnRlbF9lbmdpbmVfaW5p dF9leGVjbGlzdHMoZW5naW5lKTsKLQlpbnRlbF9lbmdpbmVfaW5pdF9oYW5nY2hlY2soZW5naW5l KTsKIAlpbnRlbF9lbmdpbmVfaW5pdF9jbWRfcGFyc2VyKGVuZ2luZSk7CiAJaW50ZWxfZW5naW5l X2luaXRfX3BtKGVuZ2luZSk7CiAKQEAgLTE0MzIsOCArMTQzMiwxMyBAQCB2b2lkIGludGVsX2Vu 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 ZXggN2Q3NjYxMWQ5ZGYxLi42ZmJmYTIxNjJlNTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L2ludGVsX2VuZ2luZV9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L2ludGVsX2VuZ2luZV9wbS5jCkBAIC03LDYgKzcsNyBAQAogI2luY2x1ZGUgImk5MTVfZHJ2Lmgi CiAKICNpbmNsdWRlICJpbnRlbF9lbmdpbmUuaCIKKyNpbmNsdWRlICJpbnRlbF9lbmdpbmVfaGVh cnRiZWF0LmgiCiAjaW5jbHVkZSAiaW50ZWxfZW5naW5lX3BtLmgiCiAjaW5jbHVkZSAiaW50ZWxf ZW5naW5lX3Bvb2wuaCIKICNpbmNsdWRlICJpbnRlbF9ndC5oIgpAQCAtMzQsNyArMzUsNyBAQCBz dGF0aWMgaW50IF9fZW5naW5lX3VucGFyayhzdHJ1Y3QgaW50ZWxfd2FrZXJlZiAqd2YpCiAJaWYg KGVuZ2luZS0+dW5wYXJrKQogCQllbmdpbmUtPnVucGFyayhlbmdpbmUpOwogCi0JaW50ZWxfZW5n aW5lX2luaXRfaGFuZ2NoZWNrKGVuZ2luZSk7CisJaW50ZWxfZW5naW5lX3VucGFya19oZWFydGJl YXQoZW5naW5lKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMTU4LDYgKzE1OSw3IEBAIHN0YXRpYyBp bnQgX19lbmdpbmVfcGFyayhzdHJ1Y3QgaW50ZWxfd2FrZXJlZiAqd2YpCiAKIAljYWxsX2lkbGVf YmFycmllcnMoZW5naW5lKTsgLyogY2xlYW51cCBhZnRlciB3ZWRnaW5nICovCiAKKwlpbnRlbF9l bmdpbmVfcGFya19oZWFydGJlYXQoZW5naW5lKTsKIAlpbnRlbF9lbmdpbmVfZGlzYXJtX2JyZWFk Y3J1bWJzKGVuZ2luZSk7CiAJaW50ZWxfZW5naW5lX3Bvb2xfcGFyaygmZW5naW5lLT5wb29sKTsK IApAQCAtMTg4LDYgKzE5MCw3IEBAIHZvaWQgaW50ZWxfZW5naW5lX2luaXRfX3BtKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlzdHJ1Y3QgaW50ZWxfcnVudGltZV9wbSAqcnBtID0g ZW5naW5lLT51bmNvcmUtPnJwbTsKIAogCWludGVsX3dha2VyZWZfaW5pdCgmZW5naW5lLT53YWtl cmVmLCBycG0sICZ3Zl9vcHMpOworCWludGVsX2VuZ2luZV9pbml0X2hlYXJ0YmVhdChlbmdpbmUp OwogfQogCiAjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfU0VMRlRFU1QpCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfc3lzZnMuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9zeXNmcy5jCmluZGV4IGFhYzI2MDk3Yzkx Ni4uODUzMmY5Y2RjODg1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRl bF9lbmdpbmVfc3lzZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdp bmVfc3lzZnMuYwpAQCAtNzAsMTIgKzcwLDM4IEBAIHByZWVtcHRfdGltZW91dF9zdG9yZShzdHJ1 Y3Qga29iamVjdCAqa29iaiwgc3RydWN0IGtvYmpfYXR0cmlidXRlICphdHRyLAogCXJldHVybiBj b3VudDsKIH0KIAorc3RhdGljIHNzaXplX3QKK2hlYXJ0YmVhdF9pbnRlcnZhbF9zaG93KHN0cnVj dCBrb2JqZWN0ICprb2JqLCBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikK K3sKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSBrb2JqX3RvX2VuZ2luZShrb2Jq KTsKKworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVsdVxuIiwgZW5naW5lLT5wcm9wcy5oZWFydGJl YXRfaW50ZXJ2YWwpOworfQorCitzdGF0aWMgc3NpemVfdAoraGVhcnRiZWF0X2ludGVydmFsX3N0 b3JlKHN0cnVjdCBrb2JqZWN0ICprb2JqLCBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsCisJ CQkgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpCit7CisJc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lID0ga29ial90b19lbmdpbmUoa29iaik7CisJdW5zaWduZWQgbG9uZyBkZWxh eTsKKwlpbnQgZXJyOworCisJZXJyID0ga3N0cnRvdWwoYnVmLCAwLCAmZGVsYXkpOworCWlmIChl cnIpCisJCXJldHVybiBlcnI7CisKKwllbmdpbmUtPnByb3BzLmhlYXJ0YmVhdF9pbnRlcnZhbCA9 IGRlbGF5OworCXJldHVybiBjb3VudDsKK30KKwogc3RhdGljIHN0cnVjdCBrb2JqX2F0dHJpYnV0 ZSBuYW1lX2F0dHIgPSBfX0FUVFIobmFtZSwgMDQ0NCwgbmFtZV9zaG93LCBOVUxMKTsKIHN0YXRp YyBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgY2xhc3NfYXR0ciA9IF9fQVRUUihjbGFzcywgMDQ0NCwg Y2xhc3Nfc2hvdywgTlVMTCk7CiBzdGF0aWMgc3RydWN0IGtvYmpfYXR0cmlidXRlIGluc3RfYXR0 ciA9IF9fQVRUUihpbnN0YW5jZSwgMDQ0NCwgaW5zdF9zaG93LCBOVUxMKTsKIHN0YXRpYyBzdHJ1 Y3Qga29ial9hdHRyaWJ1dGUgbW1pb19hdHRyID0gX19BVFRSKG1taW9fYmFzZSwgMDQ0NCwgbW1p b19zaG93LCBOVUxMKTsKIHN0YXRpYyBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgcHJlZW1wdF90aW1l b3V0X2F0dHIgPQogX19BVFRSKHByZWVtcHRfdGltZW91dF9tcywgMDYwMCwgcHJlZW1wdF90aW1l b3V0X3Nob3csIHByZWVtcHRfdGltZW91dF9zdG9yZSk7CitzdGF0aWMgc3RydWN0IGtvYmpfYXR0 cmlidXRlIGhlYXJ0YmVhdF9pbnRlcnZhbF9hdHRyID0KK19fQVRUUihoZWFydGJlYXRfaW50ZXJ2 YWxfbXMsIDA2MDAsIGhlYXJ0YmVhdF9pbnRlcnZhbF9zaG93LCBoZWFydGJlYXRfaW50ZXJ2YWxf c3RvcmUpOwogCiBzdGF0aWMgdm9pZCBrb2JqX2VuZ2luZV9yZWxlYXNlKHN0cnVjdCBrb2JqZWN0 ICprb2JqKQogewpAQCAtMTE1LDYgKzE0MSw5IEBAIHZvaWQgaW50ZWxfZW5naW5lc19hZGRfc3lz ZnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJCSZjbGFzc19hdHRyLmF0dHIsCiAJ CSZpbnN0X2F0dHIuYXR0ciwKIAkJJm1taW9fYXR0ci5hdHRyLAorI2lmIENPTkZJR19EUk1fSTkx NV9IRUFSVEJFQVRfSU5URVJWQUwKKwkJJmhlYXJ0YmVhdF9pbnRlcnZhbF9hdHRyLmF0dHIsCisj ZW5kaWYKIAkJTlVMTAogCX07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L2ludGVsX2VuZ2luZV90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5n aW5lX3R5cGVzLmgKaW5kZXggNmFmOWIwMDk2OTc1Li5hZDNiZTJmYmQ3MWEgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV90eXBlcy5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV90eXBlcy5oCkBAIC0xNSw2ICsxNSw3IEBA CiAjaW5jbHVkZSA8bGludXgvcmJ0cmVlLmg+CiAjaW5jbHVkZSA8bGludXgvdGltZXIuaD4KICNp bmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgogCiAj aW5jbHVkZSAiaTkxNV9nZW0uaCIKICNpbmNsdWRlICJpOTE1X3BtdS5oIgpAQCAtNzYsMTQgKzc3 LDYgQEAgc3RydWN0IGludGVsX2luc3Rkb25lIHsKIAl1MzIgcm93W0k5MTVfTUFYX1NMSUNFU11b STkxNV9NQVhfU1VCU0xJQ0VTXTsKIH07CiAKLXN0cnVjdCBpbnRlbF9lbmdpbmVfaGFuZ2NoZWNr IHsKLQl1NjQgYWN0aGQ7Ci0JdTMyIGxhc3RfcmluZzsKLQl1MzIgbGFzdF9oZWFkOwotCXVuc2ln bmVkIGxvbmcgYWN0aW9uX3RpbWVzdGFtcDsKLQlzdHJ1Y3QgaW50ZWxfaW5zdGRvbmUgaW5zdGRv bmU7Ci19OwotCiBzdHJ1Y3QgaW50ZWxfcmluZyB7CiAJc3RydWN0IGtyZWYgcmVmOwogCXN0cnVj dCBpOTE1X3ZtYSAqdm1hOwpAQCAtMzMwLDYgKzMyMywxMSBAQCBzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzIHsKIAogCWludGVsX2VuZ2luZV9tYXNrX3Qgc2F0dXJhdGVkOyAvKiBzdWJtaXR0aW5nIHNl bWFwaG9yZXMgdG9vIGxhdGU/ICovCiAKKwlzdHJ1Y3QgeworCQlzdHJ1Y3QgZGVsYXllZF93b3Jr IHdvcms7CisJCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnN5c3RvbGU7CisJfSBoZWFydGJlYXQ7CisK IAl1bnNpZ25lZCBsb25nIHNlcmlhbDsKIAogCXVuc2lnbmVkIGxvbmcgd2FrZXJlZl9zZXJpYWw7 CkBAIC00ODAsOCArNDc4LDYgQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7CiAJLyogc3RhdHVz X25vdGlmaWVyOiBsaXN0IG9mIGNhbGxiYWNrcyBmb3IgY29udGV4dC1zd2l0Y2ggY2hhbmdlcyAq LwogCXN0cnVjdCBhdG9taWNfbm90aWZpZXJfaGVhZCBjb250ZXh0X3N0YXR1c19ub3RpZmllcjsK IAotCXN0cnVjdCBpbnRlbF9lbmdpbmVfaGFuZ2NoZWNrIGhhbmdjaGVjazsKLQogI2RlZmluZSBJ OTE1X0VOR0lORV9ORUVEU19DTURfUEFSU0VSIEJJVCgwKQogI2RlZmluZSBJOTE1X0VOR0lORV9T VVBQT1JUU19TVEFUUyAgIEJJVCgxKQogI2RlZmluZSBJOTE1X0VOR0lORV9IQVNfUFJFRU1QVElP TiAgIEJJVCgyKQpAQCAtNTQ5LDYgKzU0NSw3IEBAIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mgewog CiAJc3RydWN0IHsKIAkJdW5zaWduZWQgbG9uZyBwcmVlbXB0X3RpbWVvdXQ7CisJCXVuc2lnbmVk IGxvbmcgaGVhcnRiZWF0X2ludGVydmFsOwogCX0gcHJvcHM7CiB9OwogCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvaW50ZWxfZ3QuYwppbmRleCBiMzYxOWEyYTVkMGUuLmYzZTE5MjU5ODdlMSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3QuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9pbnRlbF9ndC5jCkBAIC0yMiw3ICsyMiw2IEBAIHZvaWQgaW50ZWxfZ3RfaW5p dF9lYXJseShzdHJ1Y3QgaW50ZWxfZ3QgKmd0LCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSkKIAlJTklUX0xJU1RfSEVBRCgmZ3QtPmNsb3NlZF92bWEpOwogCXNwaW5fbG9ja19pbml0KCZn dC0+Y2xvc2VkX2xvY2spOwogCi0JaW50ZWxfZ3RfaW5pdF9oYW5nY2hlY2soZ3QpOwogCWludGVs X2d0X2luaXRfcmVzZXQoZ3QpOwogCWludGVsX2d0X2luaXRfcmVxdWVzdHMoZ3QpOwogCWludGVs X2d0X3BtX2luaXRfZWFybHkoZ3QpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvaW50ZWxfZ3QuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0LmgKaW5kZXgg ZTZhYjBiZmYwZWZiLi41YjZlZmZlZDM3MTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L2ludGVsX2d0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3Qu aApAQCAtNDYsOCArNDYsNiBAQCB2b2lkIGludGVsX2d0X2NsZWFyX2Vycm9yX3JlZ2lzdGVycyhz dHJ1Y3QgaW50ZWxfZ3QgKmd0LAogdm9pZCBpbnRlbF9ndF9mbHVzaF9nZ3R0X3dyaXRlcyhzdHJ1 Y3QgaW50ZWxfZ3QgKmd0KTsKIHZvaWQgaW50ZWxfZ3RfY2hpcHNldF9mbHVzaChzdHJ1Y3QgaW50 ZWxfZ3QgKmd0KTsKIAotdm9pZCBpbnRlbF9ndF9pbml0X2hhbmdjaGVjayhzdHJ1Y3QgaW50ZWxf Z3QgKmd0KTsKLQogc3RhdGljIGlubGluZSB1MzIgaW50ZWxfZ3Rfc2NyYXRjaF9vZmZzZXQoY29u c3Qgc3RydWN0IGludGVsX2d0ICpndCwKIAkJCQkJICBlbnVtIGludGVsX2d0X3NjcmF0Y2hfZmll bGQgZmllbGQpCiB7CkBAIC01OSw2ICs1Nyw0IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF9n dF9pc193ZWRnZWQoc3RydWN0IGludGVsX2d0ICpndCkKIAlyZXR1cm4gX19pbnRlbF9yZXNldF9m YWlsZWQoJmd0LT5yZXNldCk7CiB9CiAKLXZvaWQgaW50ZWxfZ3RfcXVldWVfaGFuZ2NoZWNrKHN0 cnVjdCBpbnRlbF9ndCAqZ3QpOwotCiAjZW5kaWYgLyogX19JTlRFTF9HVF9IX18gKi8KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0X3BtLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9pbnRlbF9ndF9wbS5jCmluZGV4IDg3ZTM0ZTBiNjQyNy4uODVhZjBkMTZm ODY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndF9wbS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0X3BtLmMKQEAgLTUyLDcgKzUyLDYg QEAgc3RhdGljIGludCBfX2d0X3VucGFyayhzdHJ1Y3QgaW50ZWxfd2FrZXJlZiAqd2YpCiAKIAlp OTE1X3BtdV9ndF91bnBhcmtlZChpOTE1KTsKIAotCWludGVsX2d0X3F1ZXVlX2hhbmdjaGVjayhn dCk7CiAJaW50ZWxfZ3RfdW5wYXJrX3JlcXVlc3RzKGd0KTsKIAogCXBtX25vdGlmeShndCwgSU5U RUxfR1RfVU5QQVJLKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVs X2d0X3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndF90eXBlcy5oCmlu ZGV4IDgwMmY1MTZhMzQzMC4uNTlmOGVlMGFhMTUxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9pbnRlbF9ndF90eXBlcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L2ludGVsX2d0X3R5cGVzLmgKQEAgLTI2LDE0ICsyNiw2IEBAIHN0cnVjdCBpOTE1X2dndHQ7CiBz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzOwogc3RydWN0IGludGVsX3VuY29yZTsKIAotc3RydWN0IGlu dGVsX2hhbmdjaGVjayB7Ci0JLyogRm9yIGhhbmdjaGVjayB0aW1lciAqLwotI2RlZmluZSBEUk1f STkxNV9IQU5HQ0hFQ0tfUEVSSU9EIDE1MDAgLyogaW4gbXMgKi8KLSNkZWZpbmUgRFJNX0k5MTVf SEFOR0NIRUNLX0pJRkZJRVMgbXNlY3NfdG9famlmZmllcyhEUk1fSTkxNV9IQU5HQ0hFQ0tfUEVS SU9EKQotCi0Jc3RydWN0IGRlbGF5ZWRfd29yayB3b3JrOwotfTsKLQogc3RydWN0IGludGVsX2d0 IHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNTsKIAlzdHJ1Y3QgaW50ZWxfdW5jb3Jl ICp1bmNvcmU7CkBAIC02Nyw3ICs1OSw2IEBAIHN0cnVjdCBpbnRlbF9ndCB7CiAJc3RydWN0IGxp c3RfaGVhZCBjbG9zZWRfdm1hOwogCXNwaW5sb2NrX3QgY2xvc2VkX2xvY2s7IC8qIGd1YXJkcyB0 aGUgbGlzdCBvZiBjbG9zZWRfdm1hICovCiAKLQlzdHJ1Y3QgaW50ZWxfaGFuZ2NoZWNrIGhhbmdj aGVjazsKIAlzdHJ1Y3QgaW50ZWxfcmVzZXQgcmVzZXQ7CiAKIAkvKioKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2hhbmdjaGVjay5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvaW50ZWxfaGFuZ2NoZWNrLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IGMxNGRiZWIzY2NjMy4uMDAwMDAwMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L2ludGVsX2hhbmdjaGVjay5jCisrKyAvZGV2L251bGwKQEAgLTEsMzYxICswLDAgQEAKLS8qCi0g KiBDb3B5cmlnaHQgwqkgMjAxNiBJbnRlbCBDb3Jwb3JhdGlvbgotICoKLSAqIFBlcm1pc3Npb24g aXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmlu ZyBhCi0gKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlv biBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAotICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0 aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgotICogdGhlIHJp Z2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1 YmxpY2Vuc2UsCi0gKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8g cGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKLSAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBk byBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gKgotICogVGhlIGFi b3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGlu ZyB0aGUgbmV4dAotICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVz IG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQotICogU29mdHdhcmUuCi0gKgotICogVEhF IFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJ TkQsIEVYUFJFU1MgT1IKLSAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8g VEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotICogRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCi0g KiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJ TSwgREFNQUdFUyBPUiBPVEhFUgotICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBP RiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKLSAqIEZST00sIE9VVCBPRiBP UiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVB TElOR1MKLSAqIElOIFRIRSBTT0ZUV0FSRS4KLSAqCi0gKi8KLQotI2luY2x1ZGUgImk5MTVfZHJ2 LmgiCi0jaW5jbHVkZSAiaW50ZWxfZW5naW5lLmgiCi0jaW5jbHVkZSAiaW50ZWxfZ3QuaCIKLSNp bmNsdWRlICJpbnRlbF9yZXNldC5oIgotCi1zdHJ1Y3QgaGFuZ2NoZWNrIHsKLQl1NjQgYWN0aGQ7 Ci0JdTMyIHJpbmc7Ci0JdTMyIGhlYWQ7Ci0JZW51bSBpbnRlbF9lbmdpbmVfaGFuZ2NoZWNrX2Fj dGlvbiBhY3Rpb247Ci0JdW5zaWduZWQgbG9uZyBhY3Rpb25fdGltZXN0YW1wOwotCWludCBkZWFk bG9jazsKLQlzdHJ1Y3QgaW50ZWxfaW5zdGRvbmUgaW5zdGRvbmU7Ci0JYm9vbCB3ZWRnZWQ6MTsK LQlib29sIHN0YWxsZWQ6MTsKLX07Ci0KLXN0YXRpYyBib29sIGluc3Rkb25lX3VuY2hhbmdlZCh1 MzIgY3VycmVudF9pbnN0ZG9uZSwgdTMyICpvbGRfaW5zdGRvbmUpCi17Ci0JdTMyIHRtcCA9IGN1 cnJlbnRfaW5zdGRvbmUgfCAqb2xkX2luc3Rkb25lOwotCWJvb2wgdW5jaGFuZ2VkOwotCi0JdW5j aGFuZ2VkID0gdG1wID09ICpvbGRfaW5zdGRvbmU7Ci0JKm9sZF9pbnN0ZG9uZSB8PSB0bXA7Ci0K LQlyZXR1cm4gdW5jaGFuZ2VkOwotfQotCi1zdGF0aWMgYm9vbCBzdWJ1bml0c19zdHVjayhzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gZW5naW5lLT5pOTE1OwotCWNvbnN0IHN0cnVjdCBzc2V1X2Rldl9pbmZvICpz c2V1ID0gJlJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPnNzZXU7Ci0Jc3RydWN0IGludGVsX2luc3Rk b25lIGluc3Rkb25lOwotCXN0cnVjdCBpbnRlbF9pbnN0ZG9uZSAqYWNjdV9pbnN0ZG9uZSA9ICZl bmdpbmUtPmhhbmdjaGVjay5pbnN0ZG9uZTsKLQlib29sIHN0dWNrOwotCWludCBzbGljZTsKLQlp bnQgc3Vic2xpY2U7Ci0KLQlpbnRlbF9lbmdpbmVfZ2V0X2luc3Rkb25lKGVuZ2luZSwgJmluc3Rk b25lKTsKLQotCS8qIFRoZXJlIG1pZ2h0IGJlIHVuc3RhYmxlIHN1YnVuaXQgc3RhdGVzIGV2ZW4g d2hlbgotCSAqIGFjdHVhbCBoZWFkIGlzIG5vdCBtb3ZpbmcuIEZpbHRlciBvdXQgdGhlIHVuc3Rh YmxlIG9uZXMgYnkKLQkgKiBhY2N1bXVsYXRpbmcgdGhlIHVuZG9uZSAtPiBkb25lIHRyYW5zaXRp b25zIGFuZCBvbmx5Ci0JICogY29uc2lkZXIgdGhvc2UgYXMgcHJvZ3Jlc3MuCi0JICovCi0Jc3R1 Y2sgPSBpbnN0ZG9uZV91bmNoYW5nZWQoaW5zdGRvbmUuaW5zdGRvbmUsCi0JCQkJICAgJmFjY3Vf aW5zdGRvbmUtPmluc3Rkb25lKTsKLQlzdHVjayAmPSBpbnN0ZG9uZV91bmNoYW5nZWQoaW5zdGRv bmUuc2xpY2VfY29tbW9uLAotCQkJCSAgICAmYWNjdV9pbnN0ZG9uZS0+c2xpY2VfY29tbW9uKTsK LQotCWZvcl9lYWNoX2luc3Rkb25lX3NsaWNlX3N1YnNsaWNlKGRldl9wcml2LCBzc2V1LCBzbGlj ZSwgc3Vic2xpY2UpIHsKLQkJc3R1Y2sgJj0gaW5zdGRvbmVfdW5jaGFuZ2VkKGluc3Rkb25lLnNh bXBsZXJbc2xpY2VdW3N1YnNsaWNlXSwKLQkJCQkJICAgICZhY2N1X2luc3Rkb25lLT5zYW1wbGVy W3NsaWNlXVtzdWJzbGljZV0pOwotCQlzdHVjayAmPSBpbnN0ZG9uZV91bmNoYW5nZWQoaW5zdGRv bmUucm93W3NsaWNlXVtzdWJzbGljZV0sCi0JCQkJCSAgICAmYWNjdV9pbnN0ZG9uZS0+cm93W3Ns aWNlXVtzdWJzbGljZV0pOwotCX0KLQotCXJldHVybiBzdHVjazsKLX0KLQotc3RhdGljIGVudW0g aW50ZWxfZW5naW5lX2hhbmdjaGVja19hY3Rpb24KLWhlYWRfc3R1Y2soc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lLCB1NjQgYWN0aGQpCi17Ci0JaWYgKGFjdGhkICE9IGVuZ2luZS0+aGFu Z2NoZWNrLmFjdGhkKSB7Ci0KLQkJLyogQ2xlYXIgc3VidW5pdCBzdGF0ZXMgb24gaGVhZCBtb3Zl bWVudCAqLwotCQltZW1zZXQoJmVuZ2luZS0+aGFuZ2NoZWNrLmluc3Rkb25lLCAwLAotCQkgICAg ICAgc2l6ZW9mKGVuZ2luZS0+aGFuZ2NoZWNrLmluc3Rkb25lKSk7Ci0KLQkJcmV0dXJuIEVOR0lO RV9BQ1RJVkVfSEVBRDsKLQl9Ci0KLQlpZiAoIXN1YnVuaXRzX3N0dWNrKGVuZ2luZSkpCi0JCXJl dHVybiBFTkdJTkVfQUNUSVZFX1NVQlVOSVRTOwotCi0JcmV0dXJuIEVOR0lORV9ERUFEOwotfQot Ci1zdGF0aWMgZW51bSBpbnRlbF9lbmdpbmVfaGFuZ2NoZWNrX2FjdGlvbgotZW5naW5lX3N0dWNr KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgdTY0IGFjdGhkKQotewotCWVudW0gaW50 ZWxfZW5naW5lX2hhbmdjaGVja19hY3Rpb24gaGE7Ci0JdTMyIHRtcDsKLQotCWhhID0gaGVhZF9z dHVjayhlbmdpbmUsIGFjdGhkKTsKLQlpZiAoaGEgIT0gRU5HSU5FX0RFQUQpCi0JCXJldHVybiBo YTsKLQotCWlmIChJU19HRU4oZW5naW5lLT5pOTE1LCAyKSkKLQkJcmV0dXJuIEVOR0lORV9ERUFE OwotCi0JLyogSXMgdGhlIGNoaXAgaGFuZ2luZyBvbiBhIFdBSVRfRk9SX0VWRU5UPwotCSAqIElm IHNvIHdlIGNhbiBzaW1wbHkgcG9rZSB0aGUgUkJfV0FJVCBiaXQKLQkgKiBhbmQgYnJlYWsgdGhl IGhhbmcuIFRoaXMgc2hvdWxkIHdvcmsgb24KLQkgKiBhbGwgYnV0IHRoZSBzZWNvbmQgZ2VuZXJh dGlvbiBjaGlwc2V0cy4KLQkgKi8KLQl0bXAgPSBFTkdJTkVfUkVBRChlbmdpbmUsIFJJTkdfQ1RM KTsKLQlpZiAodG1wICYgUklOR19XQUlUKSB7Ci0JCWludGVsX2d0X2hhbmRsZV9lcnJvcihlbmdp bmUtPmd0LCBlbmdpbmUtPm1hc2ssIDAsCi0JCQkJICAgICAgInN0dWNrIHdhaXQgb24gJXMiLCBl bmdpbmUtPm5hbWUpOwotCQlFTkdJTkVfV1JJVEUoZW5naW5lLCBSSU5HX0NUTCwgdG1wKTsKLQkJ cmV0dXJuIEVOR0lORV9XQUlUX0tJQ0s7Ci0JfQotCi0JcmV0dXJuIEVOR0lORV9ERUFEOwotfQot Ci1zdGF0aWMgdm9pZCBoYW5nY2hlY2tfbG9hZF9zYW1wbGUoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lLAotCQkJCSAgc3RydWN0IGhhbmdjaGVjayAqaGMpCi17Ci0JaGMtPmFjdGhkID0g aW50ZWxfZW5naW5lX2dldF9hY3RpdmVfaGVhZChlbmdpbmUpOwotCWhjLT5yaW5nID0gRU5HSU5F X1JFQUQoZW5naW5lLCBSSU5HX1NUQVJUKTsKLQloYy0+aGVhZCA9IEVOR0lORV9SRUFEKGVuZ2lu ZSwgUklOR19IRUFEKTsKLX0KLQotc3RhdGljIHZvaWQgaGFuZ2NoZWNrX3N0b3JlX3NhbXBsZShz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCi0JCQkJICAgY29uc3Qgc3RydWN0IGhhbmdj aGVjayAqaGMpCi17Ci0JZW5naW5lLT5oYW5nY2hlY2suYWN0aGQgPSBoYy0+YWN0aGQ7Ci0JZW5n aW5lLT5oYW5nY2hlY2subGFzdF9yaW5nID0gaGMtPnJpbmc7Ci0JZW5naW5lLT5oYW5nY2hlY2su bGFzdF9oZWFkID0gaGMtPmhlYWQ7Ci19Ci0KLXN0YXRpYyBlbnVtIGludGVsX2VuZ2luZV9oYW5n Y2hlY2tfYWN0aW9uCi1oYW5nY2hlY2tfZ2V0X2FjdGlvbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUsCi0JCSAgICAgY29uc3Qgc3RydWN0IGhhbmdjaGVjayAqaGMpCi17Ci0JaWYgKGlu dGVsX2VuZ2luZV9pc19pZGxlKGVuZ2luZSkpCi0JCXJldHVybiBFTkdJTkVfSURMRTsKLQotCWlm IChlbmdpbmUtPmhhbmdjaGVjay5sYXN0X3JpbmcgIT0gaGMtPnJpbmcpCi0JCXJldHVybiBFTkdJ TkVfQUNUSVZFX1NFUU5POwotCi0JaWYgKGVuZ2luZS0+aGFuZ2NoZWNrLmxhc3RfaGVhZCAhPSBo Yy0+aGVhZCkKLQkJcmV0dXJuIEVOR0lORV9BQ1RJVkVfU0VRTk87Ci0KLQlyZXR1cm4gZW5naW5l X3N0dWNrKGVuZ2luZSwgaGMtPmFjdGhkKTsKLX0KLQotc3RhdGljIHZvaWQgaGFuZ2NoZWNrX2Fj Y3VtdWxhdGVfc2FtcGxlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKLQkJCQkJc3Ry dWN0IGhhbmdjaGVjayAqaGMpCi17Ci0JdW5zaWduZWQgbG9uZyB0aW1lb3V0ID0gSTkxNV9FTkdJ TkVfREVBRF9USU1FT1VUOwotCi0JaGMtPmFjdGlvbiA9IGhhbmdjaGVja19nZXRfYWN0aW9uKGVu Z2luZSwgaGMpOwotCi0JLyogV2UgYWx3YXlzIGluY3JlbWVudCB0aGUgcHJvZ3Jlc3MKLQkgKiBp ZiB0aGUgZW5naW5lIGlzIGJ1c3kgYW5kIHN0aWxsIHByb2Nlc3NpbmcKLQkgKiB0aGUgc2FtZSBy ZXF1ZXN0LCBzbyB0aGF0IG5vIHNpbmdsZSByZXF1ZXN0Ci0JICogY2FuIHJ1biBpbmRlZmluaXRl bHkgKHN1Y2ggYXMgYSBjaGFpbiBvZgotCSAqIGJhdGNoZXMpLiBUaGUgb25seSB0aW1lIHdlIGRv IG5vdCBpbmNyZW1lbnQKLQkgKiB0aGUgaGFuZ2NoZWNrIHNjb3JlIG9uIHRoaXMgcmluZywgaWYg dGhpcwotCSAqIGVuZ2luZSBpcyBpbiBhIGxlZ2l0aW1hdGUgd2FpdCBmb3IgYW5vdGhlcgotCSAq IGVuZ2luZS4gSW4gdGhhdCBjYXNlIHRoZSB3YWl0aW5nIGVuZ2luZSBpcyBhCi0JICogdmljdGlt IGFuZCB3ZSB3YW50IHRvIGJlIHN1cmUgd2UgY2F0Y2ggdGhlCi0JICogcmlnaHQgY3VscHJpdC4g VGhlbiBldmVyeSB0aW1lIHdlIGRvIGtpY2sKLQkgKiB0aGUgcmluZywgbWFrZSBpdCBhcyBhIHBy b2dyZXNzIGFzIHRoZSBzZXFubwotCSAqIGFkdmFuY2VtZW50IG1pZ2h0IGVuc3VyZSBhbmQgaWYg bm90LCBpdAotCSAqIHdpbGwgY2F0Y2ggdGhlIGhhbmdpbmcgZW5naW5lLgotCSAqLwotCi0Jc3dp dGNoIChoYy0+YWN0aW9uKSB7Ci0JY2FzZSBFTkdJTkVfSURMRToKLQljYXNlIEVOR0lORV9BQ1RJ VkVfU0VRTk86Ci0JCS8qIENsZWFyIGhlYWQgYW5kIHN1YnVuaXQgc3RhdGVzIG9uIHNlcW5vIG1v dmVtZW50ICovCi0JCWhjLT5hY3RoZCA9IDA7Ci0KLQkJbWVtc2V0KCZlbmdpbmUtPmhhbmdjaGVj ay5pbnN0ZG9uZSwgMCwKLQkJICAgICAgIHNpemVvZihlbmdpbmUtPmhhbmdjaGVjay5pbnN0ZG9u ZSkpOwotCi0JCS8qIEludGVudGlvbmFsIGZhbGwgdGhyb3VnaCAqLwotCWNhc2UgRU5HSU5FX1dB SVRfS0lDSzoKLQljYXNlIEVOR0lORV9XQUlUOgotCQllbmdpbmUtPmhhbmdjaGVjay5hY3Rpb25f dGltZXN0YW1wID0gamlmZmllczsKLQkJYnJlYWs7Ci0KLQljYXNlIEVOR0lORV9BQ1RJVkVfSEVB RDoKLQljYXNlIEVOR0lORV9BQ1RJVkVfU1VCVU5JVFM6Ci0JCS8qCi0JCSAqIFNlcW5vIHN0dWNr IHdpdGggc3RpbGwgYWN0aXZlIGVuZ2luZSBnZXRzIGxlZXdheSwKLQkJICogaW4gaG9wZXMgdGhh dCBpdCBpcyBqdXN0IGEgbG9uZyBzaGFkZXIuCi0JCSAqLwotCQl0aW1lb3V0ID0gSTkxNV9TRVFO T19ERUFEX1RJTUVPVVQ7Ci0JCWJyZWFrOwotCi0JY2FzZSBFTkdJTkVfREVBRDoKLQkJYnJlYWs7 Ci0KLQlkZWZhdWx0OgotCQlNSVNTSU5HX0NBU0UoaGMtPmFjdGlvbik7Ci0JfQotCi0JaGMtPnN0 YWxsZWQgPSB0aW1lX2FmdGVyKGppZmZpZXMsCi0JCQkJIGVuZ2luZS0+aGFuZ2NoZWNrLmFjdGlv bl90aW1lc3RhbXAgKyB0aW1lb3V0KTsKLQloYy0+d2VkZ2VkID0gdGltZV9hZnRlcihqaWZmaWVz LAotCQkJCSBlbmdpbmUtPmhhbmdjaGVjay5hY3Rpb25fdGltZXN0YW1wICsKLQkJCQkgSTkxNV9F TkdJTkVfV0VER0VEX1RJTUVPVVQpOwotfQotCi1zdGF0aWMgdm9pZCBoYW5nY2hlY2tfZGVjbGFy ZV9oYW5nKHN0cnVjdCBpbnRlbF9ndCAqZ3QsCi0JCQkJICAgaW50ZWxfZW5naW5lX21hc2tfdCBo dW5nLAotCQkJCSAgIGludGVsX2VuZ2luZV9tYXNrX3Qgc3R1Y2spCi17Ci0Jc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lOwotCWludGVsX2VuZ2luZV9tYXNrX3QgdG1wOwotCWNoYXIgbXNn WzgwXTsKLQlpbnQgbGVuOwotCi0JLyogSWYgc29tZSByaW5ncyBodW5nIGJ1dCBvdGhlcnMgd2Vy ZSBzdGlsbCBidXN5LCBvbmx5Ci0JICogYmxhbWUgdGhlIGhhbmdpbmcgcmluZ3MgaW4gdGhlIHN5 bm9wc2lzLgotCSAqLwotCWlmIChzdHVjayAhPSBodW5nKQotCQlodW5nICY9IH5zdHVjazsKLQls ZW4gPSBzY25wcmludGYobXNnLCBzaXplb2YobXNnKSwKLQkJCSIlcyBvbiAiLCBzdHVjayA9PSBo dW5nID8gIm5vIHByb2dyZXNzIiA6ICJoYW5nIik7Ci0JZm9yX2VhY2hfZW5naW5lX21hc2tlZChl bmdpbmUsIGd0LT5pOTE1LCBodW5nLCB0bXApCi0JCWxlbiArPSBzY25wcmludGYobXNnICsgbGVu LCBzaXplb2YobXNnKSAtIGxlbiwKLQkJCQkgIiVzLCAiLCBlbmdpbmUtPm5hbWUpOwotCW1zZ1ts ZW4tMl0gPSAnXDAnOwotCi0JcmV0dXJuIGludGVsX2d0X2hhbmRsZV9lcnJvcihndCwgaHVuZywg STkxNV9FUlJPUl9DQVBUVVJFLCAiJXMiLCBtc2cpOwotfQotCi0vKgotICogVGhpcyBpcyBjYWxs ZWQgd2hlbiB0aGUgY2hpcCBoYXNuJ3QgcmVwb3J0ZWQgYmFjayB3aXRoIGNvbXBsZXRlZAotICog YmF0Y2hidWZmZXJzIGluIGEgbG9uZyB0aW1lLiBXZSBrZWVwIHRyYWNrIHBlciByaW5nIHNlcW5v IHByb2dyZXNzIGFuZAotICogaWYgdGhlcmUgYXJlIG5vIHByb2dyZXNzLCBoYW5nY2hlY2sgc2Nv cmUgZm9yIHRoYXQgcmluZyBpcyBpbmNyZWFzZWQuCi0gKiBGdXJ0aGVyLCBhY3RoZCBpcyBpbnNw ZWN0ZWQgdG8gc2VlIGlmIHRoZSByaW5nIGlzIHN0dWNrLiBPbiBzdHVjayBjYXNlCi0gKiB3ZSBr aWNrIHRoZSByaW5nLiBJZiB3ZSBzZWUgbm8gcHJvZ3Jlc3Mgb24gdGhyZWUgc3Vic2VxdWVudCBj YWxscwotICogd2UgYXNzdW1lIGNoaXAgaXMgd2VkZ2VkIGFuZCB0cnkgdG8gZml4IGl0IGJ5IHJl c2V0dGluZyB0aGUgY2hpcC4KLSAqLwotc3RhdGljIHZvaWQgaGFuZ2NoZWNrX2VsYXBzZWQoc3Ry dWN0IHdvcmtfc3RydWN0ICp3b3JrKQotewotCXN0cnVjdCBpbnRlbF9ndCAqZ3QgPQotCQljb250 YWluZXJfb2Yod29yaywgdHlwZW9mKCpndCksIGhhbmdjaGVjay53b3JrLndvcmspOwotCWludGVs X2VuZ2luZV9tYXNrX3QgaHVuZyA9IDAsIHN0dWNrID0gMCwgd2VkZ2VkID0gMDsKLQlzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0JZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7Ci0JaW50 ZWxfd2FrZXJlZl90IHdha2VyZWY7Ci0KLQlpZiAoIWk5MTVfbW9kcGFyYW1zLmVuYWJsZV9oYW5n Y2hlY2spCi0JCXJldHVybjsKLQotCWlmICghUkVBRF9PTkNFKGd0LT5hd2FrZSkpCi0JCXJldHVy bjsKLQotCWlmIChpbnRlbF9ndF9pc193ZWRnZWQoZ3QpKQotCQlyZXR1cm47Ci0KLQl3YWtlcmVm ID0gaW50ZWxfcnVudGltZV9wbV9nZXRfaWZfaW5fdXNlKGd0LT51bmNvcmUtPnJwbSk7Ci0JaWYg KCF3YWtlcmVmKQotCQlyZXR1cm47Ci0KLQkvKiBBcyBlbmFibGluZyB0aGUgR1BVIHJlcXVpcmVz IGZhaXJseSBleHRlbnNpdmUgbW1pbyBhY2Nlc3MsCi0JICogcGVyaW9kaWNhbGx5IGFybSB0aGUg bW1pbyBjaGVja2VyIHRvIHNlZSBpZiB3ZSBhcmUgdHJpZ2dlcmluZwotCSAqIGFueSBpbnZhbGlk IGFjY2Vzcy4KLQkgKi8KLQlpbnRlbF91bmNvcmVfYXJtX3VuY2xhaW1lZF9tbWlvX2RldGVjdGlv bihndC0+dW5jb3JlKTsKLQotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkg ewotCQlzdHJ1Y3QgaGFuZ2NoZWNrIGhjOwotCi0JCWludGVsX2VuZ2luZV9icmVhZGNydW1ic19p cnEoZW5naW5lKTsKLQotCQloYW5nY2hlY2tfbG9hZF9zYW1wbGUoZW5naW5lLCAmaGMpOwotCQlo YW5nY2hlY2tfYWNjdW11bGF0ZV9zYW1wbGUoZW5naW5lLCAmaGMpOwotCQloYW5nY2hlY2tfc3Rv cmVfc2FtcGxlKGVuZ2luZSwgJmhjKTsKLQotCQlpZiAoaGMuc3RhbGxlZCkgewotCQkJaHVuZyB8 PSBlbmdpbmUtPm1hc2s7Ci0JCQlpZiAoaGMuYWN0aW9uICE9IEVOR0lORV9ERUFEKQotCQkJCXN0 dWNrIHw9IGVuZ2luZS0+bWFzazsKLQkJfQotCi0JCWlmIChoYy53ZWRnZWQpCi0JCQl3ZWRnZWQg fD0gZW5naW5lLT5tYXNrOwotCX0KLQotCWlmIChHRU1fU0hPV19ERUJVRygpICYmIChodW5nIHwg c3R1Y2spKSB7Ci0JCXN0cnVjdCBkcm1fcHJpbnRlciBwID0gZHJtX2RlYnVnX3ByaW50ZXIoImhh bmdjaGVjayIpOwotCi0JCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkgewot CQkJaWYgKGludGVsX2VuZ2luZV9pc19pZGxlKGVuZ2luZSkpCi0JCQkJY29udGludWU7Ci0KLQkJ CWludGVsX2VuZ2luZV9kdW1wKGVuZ2luZSwgJnAsICIlc1xuIiwgZW5naW5lLT5uYW1lKTsKLQkJ fQotCX0KLQotCWlmICh3ZWRnZWQpIHsKLQkJZGV2X2VycihndC0+aTkxNS0+ZHJtLmRldiwKLQkJ CSJHUFUgcmVjb3ZlcnkgdGltZWQgb3V0LCIKLQkJCSIgY2FuY2VsbGluZyBhbGwgaW4tZmxpZ2h0 IHJlbmRlcmluZy5cbiIpOwotCQlHRU1fVFJBQ0VfRFVNUCgpOwotCQlpbnRlbF9ndF9zZXRfd2Vk Z2VkKGd0KTsKLQl9Ci0KLQlpZiAoaHVuZykKLQkJaGFuZ2NoZWNrX2RlY2xhcmVfaGFuZyhndCwg aHVuZywgc3R1Y2spOwotCi0JaW50ZWxfcnVudGltZV9wbV9wdXQoZ3QtPnVuY29yZS0+cnBtLCB3 YWtlcmVmKTsKLQotCS8qIFJlc2V0IHRpbWVyIGluIGNhc2UgR1BVIGhhbmdzIHdpdGhvdXQgYW5v dGhlciByZXF1ZXN0IGJlaW5nIGFkZGVkICovCi0JaW50ZWxfZ3RfcXVldWVfaGFuZ2NoZWNrKGd0 KTsKLX0KLQotdm9pZCBpbnRlbF9ndF9xdWV1ZV9oYW5nY2hlY2soc3RydWN0IGludGVsX2d0ICpn dCkKLXsKLQl1bnNpZ25lZCBsb25nIGRlbGF5OwotCi0JaWYgKHVubGlrZWx5KCFpOTE1X21vZHBh cmFtcy5lbmFibGVfaGFuZ2NoZWNrKSkKLQkJcmV0dXJuOwotCi0JLyoKLQkgKiBEb24ndCBjb250 aW51YWxseSBkZWZlciB0aGUgaGFuZ2NoZWNrIHNvIHRoYXQgaXQgaXMgYWx3YXlzIHJ1biBhdAot CSAqIGxlYXN0IG9uY2UgYWZ0ZXIgd29yayBoYXMgYmVlbiBzY2hlZHVsZWQgb24gYW55IHJpbmcu IE90aGVyd2lzZSwKLQkgKiB3ZSB3aWxsIGlnbm9yZSBhIGh1bmcgcmluZyBpZiBhIHNlY29uZCBy aW5nIGlzIGtlcHQgYnVzeS4KLQkgKi8KLQotCWRlbGF5ID0gcm91bmRfamlmZmllc191cF9yZWxh dGl2ZShEUk1fSTkxNV9IQU5HQ0hFQ0tfSklGRklFUyk7Ci0JcXVldWVfZGVsYXllZF93b3JrKHN5 c3RlbV9sb25nX3dxLCAmZ3QtPmhhbmdjaGVjay53b3JrLCBkZWxheSk7Ci19Ci0KLXZvaWQgaW50 ZWxfZW5naW5lX2luaXRfaGFuZ2NoZWNrKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkK LXsKLQltZW1zZXQoJmVuZ2luZS0+aGFuZ2NoZWNrLCAwLCBzaXplb2YoZW5naW5lLT5oYW5nY2hl Y2spKTsKLQllbmdpbmUtPmhhbmdjaGVjay5hY3Rpb25fdGltZXN0YW1wID0gamlmZmllczsKLX0K LQotdm9pZCBpbnRlbF9ndF9pbml0X2hhbmdjaGVjayhzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQotewot CUlOSVRfREVMQVlFRF9XT1JLKCZndC0+aGFuZ2NoZWNrLndvcmssIGhhbmdjaGVja19lbGFwc2Vk KTsKLX0KLQotI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X1NFTEZURVNUKQotI2luY2x1 ZGUgInNlbGZ0ZXN0X2hhbmdjaGVjay5jIgotI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9pbnRlbF9yZXNldC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50 ZWxfcmVzZXQuYwppbmRleCAzNDc5MWZjNzlkZWEuLjllZDJjZjkxYTQ2ZCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9pbnRlbF9yZXNldC5jCkBAIC0xMDE4LDggKzEwMTgsNiBAQCB2b2lkIGludGVs X2d0X3Jlc2V0KHN0cnVjdCBpbnRlbF9ndCAqZ3QsCiAJaWYgKHJldCkKIAkJZ290byB0YWludDsK IAotCWludGVsX2d0X3F1ZXVlX2hhbmdjaGVjayhndCk7Ci0KIGZpbmlzaDoKIAlyZXNldF9maW5p c2goZ3QsIGF3YWtlKTsKIHVubG9jazoKQEAgLTEzNDcsNCArMTM0NSw1IEBAIHZvaWQgX19pbnRl bF9maW5pX3dlZGdlKHN0cnVjdCBpbnRlbF93ZWRnZV9tZSAqdykKIAogI2lmIElTX0VOQUJMRUQo Q09ORklHX0RSTV9JOTE1X1NFTEZURVNUKQogI2luY2x1ZGUgInNlbGZ0ZXN0X3Jlc2V0LmMiCisj aW5jbHVkZSAic2VsZnRlc3RfaGFuZ2NoZWNrLmMiCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2hhbmdjaGVjay5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3Qvc2VsZnRlc3RfaGFuZ2NoZWNrLmMKaW5kZXggNTY5YTQxMDVkNDllLi41NzA1NDZl ZGE1ZTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2hhbmdj aGVjay5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2hhbmdjaGVjay5j CkBAIC0xNjg2LDcgKzE2ODYsNiBAQCBpbnQgaW50ZWxfaGFuZ2NoZWNrX2xpdmVfc2VsZnRlc3Rz KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCX07CiAJc3RydWN0IGludGVsX2d0ICpn dCA9ICZpOTE1LT5ndDsKIAlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKLQlib29sIHNhdmVkX2hh bmdjaGVjazsKIAlpbnQgZXJyOwogCiAJaWYgKCFpbnRlbF9oYXNfZ3B1X3Jlc2V0KGd0KSkKQEAg LTE2OTYsMTIgKzE2OTUsOSBAQCBpbnQgaW50ZWxfaGFuZ2NoZWNrX2xpdmVfc2VsZnRlc3RzKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCQlyZXR1cm4gLUVJTzsgLyogd2UncmUgbG9u ZyBwYXN0IGhvcGUgb2YgYSBzdWNjZXNzZnVsIHJlc2V0ICovCiAKIAl3YWtlcmVmID0gaW50ZWxf cnVudGltZV9wbV9nZXQoZ3QtPnVuY29yZS0+cnBtKTsKLQlzYXZlZF9oYW5nY2hlY2sgPSBmZXRj aF9hbmRfemVybygmaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2hhbmdjaGVjayk7Ci0JZHJhaW5fZGVs YXllZF93b3JrKCZndC0+aGFuZ2NoZWNrLndvcmspOyAvKiBmbHVzaCBwYXJhbSAqLwogCiAJZXJy ID0gaW50ZWxfZ3RfbGl2ZV9zdWJ0ZXN0cyh0ZXN0cywgZ3QpOwogCi0JaTkxNV9tb2RwYXJhbXMu ZW5hYmxlX2hhbmdjaGVjayA9IHNhdmVkX2hhbmdjaGVjazsKIAlpbnRlbF9ydW50aW1lX3BtX3B1 dChndC0+dW5jb3JlLT5ycG0sIHdha2VyZWYpOwogCiAJcmV0dXJuIGVycjsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXggMjc3ZjMxMjk3ZjI5Li41NTg1MmUwNDVjM2EgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCkBAIC0xMDExLDkyICsxMDExLDYgQEAgc3RhdGlj IGludCBpOTE1X2ZyZXF1ZW5jeV9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2Vk KQogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyB2b2lkIGk5MTVfaW5zdGRvbmVfaW5mbyhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkgICAgICAgc3RydWN0IHNlcV9maWxl ICptLAotCQkJICAgICAgIHN0cnVjdCBpbnRlbF9pbnN0ZG9uZSAqaW5zdGRvbmUpCi17Ci0JY29u c3Qgc3RydWN0IHNzZXVfZGV2X2luZm8gKnNzZXUgPSAmUlVOVElNRV9JTkZPKGRldl9wcml2KS0+ c3NldTsKLQlpbnQgc2xpY2U7Ci0JaW50IHN1YnNsaWNlOwotCi0Jc2VxX3ByaW50ZihtLCAiXHRc dElOU1RET05FOiAweCUwOHhcbiIsCi0JCSAgIGluc3Rkb25lLT5pbnN0ZG9uZSk7Ci0KLQlpZiAo SU5URUxfR0VOKGRldl9wcml2KSA8PSAzKQotCQlyZXR1cm47Ci0KLQlzZXFfcHJpbnRmKG0sICJc dFx0U0NfSU5TVERPTkU6IDB4JTA4eFxuIiwKLQkJICAgaW5zdGRvbmUtPnNsaWNlX2NvbW1vbik7 Ci0KLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8PSA2KQotCQlyZXR1cm47Ci0KLQlmb3JfZWFj aF9pbnN0ZG9uZV9zbGljZV9zdWJzbGljZShkZXZfcHJpdiwgc3NldSwgc2xpY2UsIHN1YnNsaWNl KQotCQlzZXFfcHJpbnRmKG0sICJcdFx0U0FNUExFUl9JTlNURE9ORVslZF1bJWRdOiAweCUwOHhc biIsCi0JCQkgICBzbGljZSwgc3Vic2xpY2UsIGluc3Rkb25lLT5zYW1wbGVyW3NsaWNlXVtzdWJz bGljZV0pOwotCi0JZm9yX2VhY2hfaW5zdGRvbmVfc2xpY2Vfc3Vic2xpY2UoZGV2X3ByaXYsIHNz ZXUsIHNsaWNlLCBzdWJzbGljZSkKLQkJc2VxX3ByaW50ZihtLCAiXHRcdFJPV19JTlNURE9ORVsl ZF1bJWRdOiAweCUwOHhcbiIsCi0JCQkgICBzbGljZSwgc3Vic2xpY2UsIGluc3Rkb25lLT5yb3db c2xpY2VdW3N1YnNsaWNlXSk7Ci19Ci0KLXN0YXRpYyBpbnQgaTkxNV9oYW5nY2hlY2tfaW5mbyhz dHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSA9IG5vZGVfdG9faTkxNShtLT5wcml2YXRlKTsKLQlzdHJ1Y3QgaW50ZWxfZ3Qg Kmd0ID0gJmk5MTUtPmd0OwotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKLQlpbnRl bF93YWtlcmVmX3Qgd2FrZXJlZjsKLQllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKLQotCXNlcV9w cmludGYobSwgIlJlc2V0IGZsYWdzOiAlbHhcbiIsIGd0LT5yZXNldC5mbGFncyk7Ci0JaWYgKHRl c3RfYml0KEk5MTVfV0VER0VELCAmZ3QtPnJlc2V0LmZsYWdzKSkKLQkJc2VxX3B1dHMobSwgIlx0 V2VkZ2VkXG4iKTsKLQlpZiAodGVzdF9iaXQoSTkxNV9SRVNFVF9CQUNLT0ZGLCAmZ3QtPnJlc2V0 LmZsYWdzKSkKLQkJc2VxX3B1dHMobSwgIlx0RGV2aWNlIChnbG9iYWwpIHJlc2V0IGluIHByb2dy ZXNzXG4iKTsKLQotCWlmICghaTkxNV9tb2RwYXJhbXMuZW5hYmxlX2hhbmdjaGVjaykgewotCQlz ZXFfcHV0cyhtLCAiSGFuZ2NoZWNrIGRpc2FibGVkXG4iKTsKLQkJcmV0dXJuIDA7Ci0JfQotCi0J aWYgKHRpbWVyX3BlbmRpbmcoJmd0LT5oYW5nY2hlY2sud29yay50aW1lcikpCi0JCXNlcV9wcmlu dGYobSwgIkhhbmdjaGVjayBhY3RpdmUsIHRpbWVyIGZpcmVzIGluICVkbXNcbiIsCi0JCQkgICBq aWZmaWVzX3RvX21zZWNzKGd0LT5oYW5nY2hlY2sud29yay50aW1lci5leHBpcmVzIC0KLQkJCQkJ ICAgIGppZmZpZXMpKTsKLQllbHNlIGlmIChkZWxheWVkX3dvcmtfcGVuZGluZygmZ3QtPmhhbmdj aGVjay53b3JrKSkKLQkJc2VxX3B1dHMobSwgIkhhbmdjaGVjayBhY3RpdmUsIHdvcmsgcGVuZGlu Z1xuIik7Ci0JZWxzZQotCQlzZXFfcHV0cyhtLCAiSGFuZ2NoZWNrIGluYWN0aXZlXG4iKTsKLQot CXNlcV9wcmludGYobSwgIkdUIGFjdGl2ZT8gJXNcbiIsIHllc25vKGd0LT5hd2FrZSkpOwotCi0J d2l0aF9pbnRlbF9ydW50aW1lX3BtKCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKSB7Ci0JCWZv cl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKSB7Ci0JCQlzdHJ1Y3QgaW50ZWxfaW5zdGRv bmUgaW5zdGRvbmU7Ci0KLQkJCXNlcV9wcmludGYobSwgIiVzOiAlZCBtcyBhZ29cbiIsCi0JCQkJ ICAgZW5naW5lLT5uYW1lLAotCQkJCSAgIGppZmZpZXNfdG9fbXNlY3MoamlmZmllcyAtCi0JCQkJ CQkgICAgZW5naW5lLT5oYW5nY2hlY2suYWN0aW9uX3RpbWVzdGFtcCkpOwotCi0JCQlzZXFfcHJp bnRmKG0sICJcdEFDVEhEID0gMHglMDhsbHggW2N1cnJlbnQgMHglMDhsbHhdXG4iLAotCQkJCSAg IChsb25nIGxvbmcpZW5naW5lLT5oYW5nY2hlY2suYWN0aGQsCi0JCQkJICAgaW50ZWxfZW5naW5l X2dldF9hY3RpdmVfaGVhZChlbmdpbmUpKTsKLQotCQkJaW50ZWxfZW5naW5lX2dldF9pbnN0ZG9u ZShlbmdpbmUsICZpbnN0ZG9uZSk7Ci0KLQkJCXNlcV9wdXRzKG0sICJcdGluc3Rkb25lIHJlYWQg PVxuIik7Ci0JCQlpOTE1X2luc3Rkb25lX2luZm8oaTkxNSwgbSwgJmluc3Rkb25lKTsKLQotCQkJ c2VxX3B1dHMobSwgIlx0aW5zdGRvbmUgYWNjdSA9XG4iKTsKLQkJCWk5MTVfaW5zdGRvbmVfaW5m byhpOTE1LCBtLAotCQkJCQkgICAmZW5naW5lLT5oYW5nY2hlY2suaW5zdGRvbmUpOwotCQl9Ci0J fQotCi0JcmV0dXJuIDA7Ci19Ci0KIHN0YXRpYyBpbnQgaXJvbmxha2VfZHJwY19pbmZvKHN0cnVj dCBzZXFfZmlsZSAqbSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IG5vZGVf dG9faTkxNShtLT5wcml2YXRlKTsKQEAgLTQzMDMsNyArNDIxNyw2IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgZHJtX2luZm9fbGlzdCBpOTE1X2RlYnVnZnNfbGlzdFtdID0gewogCXsiaTkxNV9ndWNf c3RhZ2VfcG9vbCIsIGk5MTVfZ3VjX3N0YWdlX3Bvb2wsIDB9LAogCXsiaTkxNV9odWNfbG9hZF9z dGF0dXMiLCBpOTE1X2h1Y19sb2FkX3N0YXR1c19pbmZvLCAwfSwKIAl7Imk5MTVfZnJlcXVlbmN5 X2luZm8iLCBpOTE1X2ZyZXF1ZW5jeV9pbmZvLCAwfSwKLQl7Imk5MTVfaGFuZ2NoZWNrX2luZm8i LCBpOTE1X2hhbmdjaGVja19pbmZvLCAwfSwKIAl7Imk5MTVfZHJwY19pbmZvIiwgaTkxNV9kcnBj X2luZm8sIDB9LAogCXsiaTkxNV9yaW5nX2ZyZXFfdGFibGUiLCBpOTE1X3JpbmdfZnJlcV90YWJs ZSwgMH0sCiAJeyJpOTE1X2Zyb250YnVmZmVyX3RyYWNraW5nIiwgaTkxNV9mcm9udGJ1ZmZlcl90 cmFja2luZywgMH0sCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwppbmRleCBmMDJhMzQ3MjIyMTcuLjFk YWU0M2VkNGM0OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCkBAIC0xNTQ2LDEwICsxNTQ2LDcg QEAgdm9pZCBpOTE1X2RyaXZlcl9yZW1vdmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUp CiAKIAlpOTE1X2RyaXZlcl9tb2Rlc2V0X3JlbW92ZShpOTE1KTsKIAotCS8qIEZyZWUgZXJyb3Ig c3RhdGUgYWZ0ZXIgaW50ZXJydXB0cyBhcmUgZnVsbHkgZGlzYWJsZWQuICovCi0JY2FuY2VsX2Rl bGF5ZWRfd29ya19zeW5jKCZpOTE1LT5ndC5oYW5nY2hlY2sud29yayk7CiAJaTkxNV9yZXNldF9l cnJvcl9zdGF0ZShpOTE1KTsKLQogCWk5MTVfZ2VtX2RyaXZlcl9yZW1vdmUoaTkxNSk7CiAKIAlp bnRlbF9wb3dlcl9kb21haW5zX2RyaXZlcl9yZW1vdmUoaTkxNSk7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAppbmRleCBkMjg0YjA0YzQ5MmIuLjU4MzQwYzk5YWYwMiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCkBAIC0xODQ1LDcgKzE4NDUsNiBAQCB2b2lkIGk5MTVfZHJpdmVyX3JlbW92ZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7CiBpbnQgaTkxNV9yZXN1bWVfc3dpdGNoZXJvbyhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7CiBpbnQgaTkxNV9zdXNwZW5kX3N3aXRjaGVy b28oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHBtX21lc3NhZ2VfdCBzdGF0ZSk7CiAK LXZvaWQgaW50ZWxfZW5naW5lX2luaXRfaGFuZ2NoZWNrKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSk7CiBpbnQgdmx2X2ZvcmNlX2dmeF9jbG9jayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsIGJvb2wgb24pOwogCiBzdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfZ3Z0X2Fj dGl2ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9ncHVfZXJyb3IuYwppbmRleCA1Y2Y0ZWVkNWFkZDguLjQ3MjM5ZGY2NTNmMiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCkBAIC01MzQsMTAgKzUzNCw2IEBAIHN0YXRp YyB2b2lkIGVycm9yX3ByaW50X2VuZ2luZShzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfc3RhdGVfYnVm ICptLAogCX0KIAllcnJfcHJpbnRmKG0sICIgIHJpbmctPmhlYWQ6IDB4JTA4eFxuIiwgZWUtPmNw dV9yaW5nX2hlYWQpOwogCWVycl9wcmludGYobSwgIiAgcmluZy0+dGFpbDogMHglMDh4XG4iLCBl ZS0+Y3B1X3JpbmdfdGFpbCk7Ci0JZXJyX3ByaW50ZihtLCAiICBoYW5nY2hlY2sgdGltZXN0YW1w OiAlZG1zICglbHUlcylcbiIsCi0JCSAgIGppZmZpZXNfdG9fbXNlY3MoZWUtPmhhbmdjaGVja190 aW1lc3RhbXAgLSBlcG9jaCksCi0JCSAgIGVlLT5oYW5nY2hlY2tfdGltZXN0YW1wLAotCQkgICBl ZS0+aGFuZ2NoZWNrX3RpbWVzdGFtcCA9PSBlcG9jaCA/ICI7IGVwb2NoIiA6ICIiKTsKIAllcnJf cHJpbnRmKG0sICIgIGVuZ2luZSByZXNldCBjb3VudDogJXVcbiIsIGVlLT5yZXNldF9jb3VudCk7 CiAKIAlmb3IgKG4gPSAwOyBuIDwgZWUtPm51bV9wb3J0czsgbisrKSB7CkBAIC02NzksMTEgKzY3 NSw4IEBAIHN0YXRpYyB2b2lkIF9fZXJyX3ByaW50X3RvX3NnbChzdHJ1Y3QgZHJtX2k5MTVfZXJy b3Jfc3RhdGVfYnVmICptLAogCXRzID0ga3RpbWVfdG9fdGltZXNwZWM2NChlcnJvci0+dXB0aW1l KTsKIAllcnJfcHJpbnRmKG0sICJVcHRpbWU6ICVsbGQgcyAlbGQgdXNcbiIsCiAJCSAgIChzNjQp dHMudHZfc2VjLCB0cy50dl9uc2VjIC8gTlNFQ19QRVJfVVNFQyk7Ci0JZXJyX3ByaW50ZihtLCAi RXBvY2g6ICVsdSBqaWZmaWVzICgldSBIWilcbiIsIGVycm9yLT5lcG9jaCwgSFopOwotCWVycl9w cmludGYobSwgIkNhcHR1cmU6ICVsdSBqaWZmaWVzOyAlZCBtcyBhZ28sICVkIG1zIGFmdGVyIGVw b2NoXG4iLAotCQkgICBlcnJvci0+Y2FwdHVyZSwKLQkJICAgamlmZmllc190b19tc2VjcyhqaWZm aWVzIC0gZXJyb3ItPmNhcHR1cmUpLAotCQkgICBqaWZmaWVzX3RvX21zZWNzKGVycm9yLT5jYXB0 dXJlIC0gZXJyb3ItPmVwb2NoKSk7CisJZXJyX3ByaW50ZihtLCAiQ2FwdHVyZTogJWx1IGppZmZp ZXM7ICVkIG1zIGFnb1xuIiwKKwkJICAgZXJyb3ItPmNhcHR1cmUsIGppZmZpZXNfdG9fbXNlY3Mo amlmZmllcyAtIGVycm9yLT5jYXB0dXJlKSk7CiAKIAlmb3IgKGVlID0gZXJyb3ItPmVuZ2luZTsg ZWU7IGVlID0gZWUtPm5leHQpCiAJCWVycl9wcmludGYobSwgIkFjdGl2ZSBwcm9jZXNzIChvbiBy aW5nICVzKTogJXMgWyVkXVxuIiwKQEAgLTc0Miw3ICs3MzUsNyBAQCBzdGF0aWMgdm9pZCBfX2Vy cl9wcmludF90b19zZ2woc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlX2J1ZiAqbSwKIAkJZXJy X3ByaW50ZihtLCAiR1RUX0NBQ0hFX0VOOiAweCUwOHhcbiIsIGVycm9yLT5ndHRfY2FjaGUpOwog CiAJZm9yIChlZSA9IGVycm9yLT5lbmdpbmU7IGVlOyBlZSA9IGVlLT5uZXh0KQotCQllcnJvcl9w cmludF9lbmdpbmUobSwgZWUsIGVycm9yLT5lcG9jaCk7CisJCWVycm9yX3ByaW50X2VuZ2luZSht LCBlZSwgZXJyb3ItPmNhcHR1cmUpOwogCiAJZm9yIChlZSA9IGVycm9yLT5lbmdpbmU7IGVlOyBl ZSA9IGVlLT5uZXh0KSB7CiAJCWNvbnN0IHN0cnVjdCBkcm1faTkxNV9lcnJvcl9vYmplY3QgKm9i ajsKQEAgLTc3MCw3ICs3NjMsNyBAQCBzdGF0aWMgdm9pZCBfX2Vycl9wcmludF90b19zZ2woc3Ry dWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlX2J1ZiAqbSwKIAkJCWZvciAoaiA9IDA7IGogPCBlZS0+ bnVtX3JlcXVlc3RzOyBqKyspCiAJCQkJZXJyb3JfcHJpbnRfcmVxdWVzdChtLCAiICIsCiAJCQkJ CQkgICAgJmVlLT5yZXF1ZXN0c1tqXSwKLQkJCQkJCSAgICBlcnJvci0+ZXBvY2gpOworCQkJCQkJ ICAgIGVycm9yLT5jYXB0dXJlKTsKIAkJfQogCiAJCXByaW50X2Vycm9yX29iaihtLCBlZS0+ZW5n aW5lLCAicmluZ2J1ZmZlciIsIGVlLT5yaW5nYnVmZmVyKTsKQEAgLTExNDQsOCArMTEzNyw2IEBA IHN0YXRpYyB2b2lkIGVycm9yX3JlY29yZF9lbmdpbmVfcmVnaXN0ZXJzKHN0cnVjdCBpOTE1X2dw dV9zdGF0ZSAqZXJyb3IsCiAJfQogCiAJZWUtPmlkbGUgPSBpbnRlbF9lbmdpbmVfaXNfaWRsZShl bmdpbmUpOwotCWlmICghZWUtPmlkbGUpCi0JCWVlLT5oYW5nY2hlY2tfdGltZXN0YW1wID0gZW5n aW5lLT5oYW5nY2hlY2suYWN0aW9uX3RpbWVzdGFtcDsKIAllZS0+cmVzZXRfY291bnQgPSBpOTE1 X3Jlc2V0X2VuZ2luZV9jb3VudCgmZGV2X3ByaXYtPmdwdV9lcnJvciwKIAkJCQkJCSAgZW5naW5l KTsKIApAQCAtMTY1NywyMCArMTY0OCw2IEBAIHN0YXRpYyB2b2lkIGNhcHR1cmVfcGFyYW1zKHN0 cnVjdCBpOTE1X2dwdV9zdGF0ZSAqZXJyb3IpCiAJaTkxNV9wYXJhbXNfY29weSgmZXJyb3ItPnBh cmFtcywgJmk5MTVfbW9kcGFyYW1zKTsKIH0KIAotc3RhdGljIHVuc2lnbmVkIGxvbmcgY2FwdHVy ZV9maW5kX2Vwb2NoKGNvbnN0IHN0cnVjdCBpOTE1X2dwdV9zdGF0ZSAqZXJyb3IpCi17Ci0JY29u c3Qgc3RydWN0IGRybV9pOTE1X2Vycm9yX2VuZ2luZSAqZWU7Ci0JdW5zaWduZWQgbG9uZyBlcG9j aCA9IGVycm9yLT5jYXB0dXJlOwotCi0JZm9yIChlZSA9IGVycm9yLT5lbmdpbmU7IGVlOyBlZSA9 IGVlLT5uZXh0KSB7Ci0JCWlmIChlZS0+aGFuZ2NoZWNrX3RpbWVzdGFtcCAmJgotCQkgICAgdGlt ZV9iZWZvcmUoZWUtPmhhbmdjaGVja190aW1lc3RhbXAsIGVwb2NoKSkKLQkJCWVwb2NoID0gZWUt PmhhbmdjaGVja190aW1lc3RhbXA7Ci0JfQotCi0JcmV0dXJuIGVwb2NoOwotfQotCiBzdGF0aWMg dm9pZCBjYXB0dXJlX2ZpbmlzaChzdHJ1Y3QgaTkxNV9ncHVfc3RhdGUgKmVycm9yKQogewogCXN0 cnVjdCBpOTE1X2dndHQgKmdndHQgPSAmZXJyb3ItPmk5MTUtPmdndHQ7CkBAIC0xNzIyLDggKzE2 OTksNiBAQCBpOTE1X2NhcHR1cmVfZ3B1X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1KQogCWVycm9yLT5vdmVybGF5ID0gaW50ZWxfb3ZlcmxheV9jYXB0dXJlX2Vycm9yX3N0YXRl KGk5MTUpOwogCWVycm9yLT5kaXNwbGF5ID0gaW50ZWxfZGlzcGxheV9jYXB0dXJlX2Vycm9yX3N0 YXRlKGk5MTUpOwogCi0JZXJyb3ItPmVwb2NoID0gY2FwdHVyZV9maW5kX2Vwb2NoKGVycm9yKTsK LQogCWNhcHR1cmVfZmluaXNoKGVycm9yKTsKIAljb21wcmVzc19maW5pKCZjb21wcmVzcyk7CiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5oCmluZGV4IDdmMWNkMGIxZmVmNy4uNGRj MzZkNmVlM2EyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJv ci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmgKQEAgLTM0LDcg KzM0LDYgQEAgc3RydWN0IGk5MTVfZ3B1X3N0YXRlIHsKIAlrdGltZV90IGJvb3R0aW1lOwogCWt0 aW1lX3QgdXB0aW1lOwogCXVuc2lnbmVkIGxvbmcgY2FwdHVyZTsKLQl1bnNpZ25lZCBsb25nIGVw b2NoOwogCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTU7CiAKQEAgLTg2LDcgKzg1LDYg QEAgc3RydWN0IGk5MTVfZ3B1X3N0YXRlIHsKIAogCQkvKiBTb2Z0d2FyZSB0cmFja2VkIHN0YXRl ICovCiAJCWJvb2wgaWRsZTsKLQkJdW5zaWduZWQgbG9uZyBoYW5nY2hlY2tfdGltZXN0YW1wOwog CQlpbnQgbnVtX3JlcXVlc3RzOwogCQl1MzIgcmVzZXRfY291bnQ7CiAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcHJpb2xpc3RfdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcHJpb2xpc3RfdHlwZXMuaAppbmRleCBhZThiYjNjYjYyN2UuLjczMmFhZDE0 ODg4MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wcmlvbGlzdF90eXBl cy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcHJpb2xpc3RfdHlwZXMuaApAQCAt MTYsNiArMTYsMTIgQEAgZW51bSB7CiAJSTkxNV9QUklPUklUWV9NSU4gPSBJOTE1X0NPTlRFWFRf TUlOX1VTRVJfUFJJT1JJVFkgLSAxLAogCUk5MTVfUFJJT1JJVFlfTk9STUFMID0gSTkxNV9DT05U RVhUX0RFRkFVTFRfUFJJT1JJVFksCiAJSTkxNV9QUklPUklUWV9NQVggPSBJOTE1X0NPTlRFWFRf TUFYX1VTRVJfUFJJT1JJVFkgKyAxLAorCisJLyogQSBwcmVlbXB0aXZlIHB1bHNlIHVzZWQgdG8g bW9uaXRvciB0aGUgaGVhbHRoIG9mIGVhY2ggZW5naW5lICovCisJSTkxNV9QUklPUklUWV9IRUFS VEJFQVQsCisKKwkvKiBJbnRlcmFjdGl2ZSB3b3JrbG9hZCwgc2NoZWR1bGVkIGZvciBpbW1lZGlh dGUgcGFnZWZsaXBwaW5nICovCisJSTkxNV9QUklPUklUWV9ESVNQTEFZLAogfTsKIAogI2RlZmlu ZSBJOTE1X1VTRVJfUFJJT1JJVFlfU0hJRlQgMgotLSAKMi4yMy4wCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=