From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomas Elf Subject: [RFC 08/11] drm/i915: Watchdog timeout support for gen8. Date: Mon, 8 Jun 2015 18:03:26 +0100 Message-ID: <1433783009-17251-9-git-send-email-tomas.elf@intel.com> References: <1433783009-17251-1-git-send-email-tomas.elf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 55FE76E686 for ; Mon, 8 Jun 2015 10:06:51 -0700 (PDT) In-Reply-To: <1433783009-17251-1-git-send-email-tomas.elf@intel.com> 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 Cc: Ian Lister List-Id: intel-gfx@lists.freedesktop.org V2F0Y2hkb2cgdGltZW91dCAob3IgIm1lZGlhIGVuZ2luZSByZXNldCIgYXMgaXQgaXMgc29tZXRp bWVzIGNhbGxlZCwgZXZlbgp0aG91Z2ggdGhlIHJlbmRlciBlbmdpbmUgaXMgYWxzbyBzdXBwb3J0 ZWQpIGlzIGEgZmVhdHVyZSB0aGF0IGFsbG93cyB1c2VybGFuZAphcHBsaWNhdGlvbnMgdG8gZW5h YmxlIGhhbmcgZGV0ZWN0aW9uIG9uIGluZGl2aWR1YWwgYmF0Y2ggYnVmZmVycy4gVGhlCmRldGVj dGlvbiBtZWNoYW5pc20gaXRzZWxmIGlzIG1vc3RseSBib3VuZCB0byB0aGUgaGFyZHdhcmUgYW5k IHRoZSBvbmx5IHRoaW5nCnRoYXQgdGhlIGRyaXZlciBuZWVkcyB0byBkbyB0byBzdXBwb3J0IHRo aXMgZm9ybSBvZiBoYW5nIGRldGVjdGlvbiBpcyB0bwppbXBsZW1lbnQgdGhlIGludGVycnVwdCBo YW5kbGluZyBzdXBwb3J0IGFzIHdlbGwgYXMgd2F0Y2hkb2cgaW5zdHJ1Y3Rpb24KaW5qZWN0aW9u IGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIGVtaXR0ZWQgYmF0Y2ggYnVmZmVyIHN0YXJ0IGluc3RydWN0 aW9uIGluIHRoZQpyaW5nIGJ1ZmZlci4KClRoZSBwcmluY2lwbGUgb2YgdGhpcyBoYW5nIGRldGVj dGlvbiBtZWNoYW5pc20gaXMgYXMgZm9sbG93czoKCjEuIE9uY2UgdGhlIGRlY2lzaW9uIGhhcyBi ZWVuIG1hZGUgdG8gZW5hYmxlIHdhdGNoZG9nIHRpbWVvdXQgZm9yIGEgcGFydGljdWxhcgpiYXRj aCBidWZmZXIgYW5kIHRoZSBkcml2ZXIgaXMgaW4gdGhlIHByb2Nlc3Mgb2YgZW1pdHRpbmcgdGhl IGJhdGNoIGJ1ZmZlcgpzdGFydCBpbnN0cnVjdGlvbiBpbnRvIHRoZSByaW5nIGJ1ZmZlciBpdCBh bHNvIGVtaXRzIGEgd2F0Y2hkb2cgdGltZXIgc3RhcnQKaW5zdHJ1Y3Rpb24gYmVmb3JlIGFuZCBh IHdhdGNoZG9nIHRpbWVyIGNhbmNlbGxhdGlvbiBpbnN0cnVjdGlvbiBhZnRlciB0aGUKYmF0Y2gg YnVmZmVyIGluc3RydWN0aW9uIGluIHRoZSByaW5nIGJ1ZmZlci4KCjIuIE9uY2UgdGhlIEdQVSBl eGVjdXRpb24gcmVhY2hlcyB0aGUgd2F0Y2hkb2cgdGltZXIgc3RhcnQgaW5zdHJ1Y3Rpb24gdGhl CmhhcmR3YXJlIHdhdGNoZG9nIGNvdW50ZXIgaXMgc3RhcnRlZCBieSB0aGUgaGFyZHdhcmUuICBU aGUgY291bnRlciBrZWVwcwpjb3VudGluZyB1bnRpbCBpdCByZWFjaGVzIGEgcHJldmlvdXNseSBj b25maWd1cmVkIHRocmVzaG9sZCB2YWx1ZS4KCjJhLiBJZiB0aGUgY291bnRlciByZWFjaGVzIHRo ZSB0aHJlc2hvbGQgdmFsdWUgdGhlIGhhcmR3YXJlIGZpcmVzIGEgd2F0Y2hkb2cKaW50ZXJydXB0 IHRoYXQgaXMgcGlja2VkIHVwIGJ5IHRoZSB3YXRjaGRvZyBpbnRlcnJ1cHQgc2VydmljZSByb3V0 aW5lIGluIHRoaXMKY29tbWl0LiBUaGlzIG1lYW5zIHRoYXQgYSBoYW5nIGhhcyBiZWVuIGRldGVj dGVkIGFuZCB0aGUgZHJpdmVyIG5lZWRzIHRvIGRlYWwKd2l0aCBpdCB0aGUgc2FtZSB3YXkgaXQg d291bGQgZGVhbCB3aXRoIGEgZW5naW5lIGhhbmcgZGV0ZWN0ZWQgYnkgdGhlIHBlcmlvZGljCmhh bmcgY2hlY2tlci4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB0d28gaXMgdGhhdCB3 ZSBuZXZlciBwcm9tb3RlIGZ1bGwKR1BVIHJlc2V0IGZvbGxvd2luZyBhIHdhdGNoZG9nIHRpbWVv dXQgaW4gY2FzZSBhIHBlci1lbmdpbmUgcmVzZXQgd2FzIGF0dGVtcHRlZAp0b28gcmVjZW50bHku IFRodXNseSwgdGhlIHdhdGNoZG9nIGludGVycnVwdCBoYW5kbGVyIGNhbGxzIHRoZSBlcnJvciBo YW5kbGVyCmRpcmVjdGx5IHBhc3NpbmcgdGhlIGVuZ2luZSBtYXNrIG9mIHRoZSBodW5nIGVuZ2lu ZSBpbiBxdWVzdGlvbiwgd2hpY2gKaW1tZWRpYXRlbHkgcmVzdWx0cyBpbiBhIHBlci1lbmdpbmUg aGFuZyByZWNvdmVyeSBiZWluZyBzY2hlZHVsZWQuCgoyYi4gSWYgdGhlIGJhdGNoIGJ1ZmZlciBm aW5pc2hlcyBleGVjdXRpbmcgYW5kIHRoZSBleGVjdXRpb24gcmVhY2hlcyB0aGUKd2F0Y2hkb2cg Y2FuY2VsbGF0aW9uIGluc3RydWN0aW9uIGJlZm9yZSB0aGUgd2F0Y2hkb2cgY291bnRlciByZWFj aGVzIGl0cwp0aHJlc2hvbGQgdmFsdWUgdGhlIHdhdGNoZG9nIGlzIGNhbmNlbGxlZCBhbmQgbm90 aGluZyBtb3JlIGNvbWVzIG9mIGl0LiBObyBoYW5nCndhcyBkZXRlY3RlZC4KCkN1cnJlbnRseSB3 YXRjaGRvZyB0aW1lb3V0IGZvciB0aGUgcmVuZGVyIGVuZ2luZSBhbmQgYWxsIGF2YWlsYWJsZSBt ZWRpYQplbmdpbmVzIGFyZSBzdXBwb3J0ZWQuIFRoZSBzcGVjaWZpY2F0aW9ucyBlbHVkZSB0byB0 aGUgVkVDUyBlbmdpbmUgYmVpbmcKc3VwcG9ydGVkIGJ1dCB0aGF0IGlzIGN1cnJlbnRseSBub3Qg c3VwcG9ydGVkIGJ5IHRoaXMgY29tbWl0LgoKVGhlIGN1cnJlbnQgZGVmYXVsdCB3YXRjaGRvZyB0 aHJlc2hvbGQgdmFsdWUgaXMgNjAgbXMsIHNpbmNlIHRoaXMgaGFzIGJlZW4KZW1wcmljYWxseSBk ZXRlcm1pbmVkIHRvIGJlIGEgZ29vZCBjb21wcm9taXNlIGZvciBsb3ctbGF0ZW5jeSByZXF1aXJl bWVudHMgYW5kCmxvdyByYXRlIG9mIGZhbHNlIHBvc2l0aXZlcy4KCk5PVEU6IEkgZG9uJ3Qga25v dyBpZiBCZW4gV2lkYXdza3kgaGFkIGFueSBwYXJ0IGluIHRoaXMgY29kZSBmcm9tIDMgeWVhcnMK YWdvLiBUaGVyZSBoYXZlIGJlZW4gc28gbWFueSBwZW9wbGUgaW52b2x2ZWQgaW4gdGhpcyBhbHJl YWR5IHRoYXQgSSBhbSBpbiBubwpwb3NpdGlvbiB0byBrbm93LiBJZiBJJ3ZlIG1pc3NlZCBhbnlv bmUncyBzb2IgbGluZSBwbGVhc2UgbGV0IG1lIGtub3cuCgpTaWduZWQtb2ZmLWJ5OiBUb21hcyBF bGYgPHRvbWFzLmVsZkBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEFydW4gU2lsdXZlcnkgPGFy dW4uc2lsdXZlcnlAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBJYW4gTGlzdGVyIDxpYW4ubGlz dGVyQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAg ICAgfCAgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jICAgICAgICAgfCAg IDU5ICsrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAg ICAgICAgIHwgICAgNyArKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgICAg ICB8ICAgODYgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlZy5oICAgICAgICAgfCAgICA3ICsrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMgICAgICAgIHwgICA5OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggfCAgIDMxICsrKysrKysrKysK IGluY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCAgICAgICAgICAgICB8ICAgIDUgKy0KIDggZmls ZXMgY2hhbmdlZCwgMjcyIGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXggZTMzZTEwNS4uYTg5ZGE0OCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKQEAgLTQxODMsNyArNDE4Myw3IEBAIGk5MTVfd2VkZ2VkX3Nl dCh2b2lkICpkYXRhLCB1NjQgdmFsKQogCiAJaW50ZWxfcnVudGltZV9wbV9nZXQoZGV2X3ByaXYp OwogCi0JaTkxNV9oYW5kbGVfZXJyb3IoZGV2LCAweDAsIHZhbCwKKwlpOTE1X2hhbmRsZV9lcnJv cihkZXYsIDB4MCwgZmFsc2UsIHZhbCwKIAkJCSAgIk1hbnVhbGx5IHNldHRpbmcgd2VkZ2VkIHRv ICVsbHUiLCB2YWwpOwogCiAJaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3ByaXYpOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZG1hLmMKaW5kZXggYjk4YWJmOC4uMmVjMzE2MyAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2RtYS5jCkBAIC03OTEsNiArNzkxLDY0IEBAIGk5MTVfaGFuZ2NoZWNrX2luaXQoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIAl9CiB9CiAKK3ZvaWQgaTkxNV93YXRjaGRvZ19pbml0KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKKwlpbnQgZnJlcTsKKwlpbnQgaTsKKworCS8qCisJICogQmFzZWQg b24gcHJlLWRlZmluZWQgdGltZSBvdXQgdmFsdWUgKDYwbXMgb3IgMzBtcykgY2FsY3VsYXRlCisJ ICogdGltZXIgY291bnQgdGhyZXNob2xkcyBuZWVkZWQgYmFzZWQgb24gY29yZSBmcmVxdWVuY3ku CisJICoKKwkgKiBGb3IgUkNTLgorCSAqIFRoZSB0aW1lc3RhbXAgcmVzb2x1dGlvbiBjaGFuZ2Vk IGluIEdlbjcgYW5kIGJleW9uZCB0byA4MG5zCisJICogZm9yIGFsbCBwaXBlcy4gQmVmb3JlIHRo YXQgaXQgd2FzIDY0MG5zLgorCSAqLworCisjZGVmaW5lIEtNX1JDU19FTkdJTkVfVElNRU9VVF9W QUxVRV9JTl9NUyA2MAorI2RlZmluZSBLTV9CU0RfRU5HSU5FX1RJTUVPVVRfVkFMVUVfSU5fTVMg NjAKKyNkZWZpbmUgS01fVElNRVJfTUlMTElTRUNPTkQgMTAwMAorCisJLyoKKwkgKiBUaW1lc3Rh bXAgdGltZXIgcmVzb2x1dGlvbiA9IDAuMDgwIHVTZWMsCisJICogb3IgMTI1MDAwMDAgY291bnRz IHBlciBzZWNvbmQKKwkgKi8KKyNkZWZpbmUgS01fVElNRVNUQU1QX0NOVFNfUEVSX1NFQ184ME5T IDEyNTAwMDAwCisKKwkvKgorCSAqIFRpbWVzdGFtcCB0aW1lciByZXNvbHV0aW9uID0gMC42NDAg dVNlYywKKwkgKiBvciAxNTYyNTAwIGNvdW50cyBwZXIgc2Vjb25kCisJICovCisjZGVmaW5lIEtN X1RJTUVTVEFNUF9DTlRTX1BFUl9TRUNfNjQwTlMgMTU2MjUwMAorCisJaWYgKElOVEVMX0lORk8o ZGV2KS0+Z2VuID49IDcpCisJCWZyZXEgPSBLTV9USU1FU1RBTVBfQ05UU19QRVJfU0VDXzgwTlM7 CisJZWxzZQorCQlmcmVxID0gS01fVElNRVNUQU1QX0NOVFNfUEVSX1NFQ182NDBOUzsKKworCWRl dl9wcml2LT5yaW5nW1JDU10ud2F0Y2hkb2dfdGhyZXNob2xkID0KKwkJKChLTV9SQ1NfRU5HSU5F X1RJTUVPVVRfVkFMVUVfSU5fTVMpICoKKwkJKGZyZXEgLyBLTV9USU1FUl9NSUxMSVNFQ09ORCkp OworCisJZGV2X3ByaXYtPnJpbmdbVkNTXS53YXRjaGRvZ190aHJlc2hvbGQgPQorCQkoKEtNX0JT RF9FTkdJTkVfVElNRU9VVF9WQUxVRV9JTl9NUykgKgorCQkoZnJlcSAvIEtNX1RJTUVSX01JTExJ U0VDT05EKSk7CisKKwlkZXZfcHJpdi0+cmluZ1tWQ1MyXS53YXRjaGRvZ190aHJlc2hvbGQgPQor CQkoKEtNX0JTRF9FTkdJTkVfVElNRU9VVF9WQUxVRV9JTl9NUykgKgorCQkoZnJlcSAvIEtNX1RJ TUVSX01JTExJU0VDT05EKSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1fUklOR1M7IGkr KykKKwkJZGV2X3ByaXYtPnJpbmdbaV0uaGFuZ2NoZWNrLndhdGNoZG9nX2NvdW50ID0gMDsKKwor CURSTV9JTkZPKCJXYXRjaGRvZyBUaW1lb3V0IFttc10sICIgXAorCQkJIlJDUzogMHglMDhYLCBW Q1M6IDB4JTA4WCwgVkNTMjogMHglMDhYXG4iLCBcCisJCQlLTV9SQ1NfRU5HSU5FX1RJTUVPVVRf VkFMVUVfSU5fTVMsCisJCQlLTV9CU0RfRU5HSU5FX1RJTUVPVVRfVkFMVUVfSU5fTVMsCisJCQlL TV9CU0RfRU5HSU5FX1RJTUVPVVRfVkFMVUVfSU5fTVMpOworfQorCiAvKioKICAqIGk5MTVfZHJp dmVyX2xvYWQgLSBzZXR1cCBjaGlwIGFuZCBjcmVhdGUgYW4gaW5pdGlhbCBjb25maWcKICAqIEBk ZXY6IERSTSBkZXZpY2UKQEAgLTk3Miw2ICsxMDMwLDcgQEAgaW50IGk5MTVfZHJpdmVyX2xvYWQo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBmbGFncykKIAlpOTE1X2dlbV9s b2FkKGRldik7CiAKIAlpOTE1X2hhbmdjaGVja19pbml0KGRldik7CisJaTkxNV93YXRjaGRvZ19p bml0KGRldik7CiAKIAkvKiBPbiB0aGUgOTQ1Ry9HTSwgdGhlIGNoaXBzZXQgcmVwb3J0cyB0aGUg TVNJIGNhcGFiaWxpdHkgb24gdGhlCiAJICogaW50ZWdyYXRlZCBncmFwaGljcyBldmVuIHRob3Vn aCB0aGUgc3VwcG9ydCBpc24ndCBhY3R1YWxseSB0aGVyZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK aW5kZXggZWZhNDNjMy4uNTEzOWRhYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0yNTYz LDYgKzI1NjMsNyBAQCBleHRlcm4gdW5zaWduZWQgbG9uZyBpOTE1X2dmeF92YWwoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIGV4dGVybiB2b2lkIGk5MTVfdXBkYXRlX2dmeF92 YWwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIGludCB2bHZfZm9yY2VfZ2Z4 X2Nsb2NrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgYm9vbCBvbik7CiB2b2lk IGludGVsX2hwZF9jYW5jZWxfd29yayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp Owordm9pZCBpOTE1X3dhdGNoZG9nX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiBzdGF0 aWMgaW5saW5lIHZvaWQgaTkxNV9oYW5nY2hlY2tfcmVpbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSkKIHsKIAlzdHJ1Y3QgaW50ZWxfcmluZ19oYW5nY2hlY2sgKmhjID0gJmVuZ2lu ZS0+aGFuZ2NoZWNrOwpAQCAtMjU3OCw5ICsyNTc5LDkgQEAgc3RhdGljIGlubGluZSB2b2lkIGk5 MTVfaGFuZ2NoZWNrX3JlaW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAKIC8q IGk5MTVfaXJxLmMgKi8KIHZvaWQgaTkxNV9xdWV1ZV9oYW5nY2hlY2soc3RydWN0IGRybV9kZXZp Y2UgKmRldik7Ci1fX3ByaW50Zig0LCA1KQotdm9pZCBpOTE1X2hhbmRsZV9lcnJvcihzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCB1MzIgZW5naW5lX21hc2ssIGJvb2wgd2VkZ2VkLAotCQkgICAgICAg Y29uc3QgY2hhciAqZm10LCAuLi4pOworX19wcmludGYoNSwgNikKK3ZvaWQgaTkxNV9oYW5kbGVf ZXJyb3Ioc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIGVuZ2luZV9tYXNrLAorCQkgICAgICAg Ym9vbCB3YXRjaGRvZywgYm9vbCB3ZWRnZWQsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKIAogZXh0 ZXJuIHZvaWQgaW50ZWxfaXJxX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KTsKIGV4dGVybiB2b2lkIGludGVsX2hwZF9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwppbmRleCA5OTEzYzhmLi41N2M4NTY4IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKQEAgLTEyODksNiArMTI4OSwxOCBAQCBzdGF0aWMgaXJx cmV0dXJuX3QgZ2VuOF9ndF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCiAJCQkJaW50ZWxfbHJjX2lycV9oYW5kbGVyKCZkZXZfcHJpdi0+cmluZ1tSQ1NdKTsK IAkJCWlmICh0bXAgJiAoR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUIDw8IEdFTjhfUkNTX0lSUV9T SElGVCkpCiAJCQkJbm90aWZ5X3JpbmcoJmRldl9wcml2LT5yaW5nW1JDU10pOworCQkJaWYgKHRt cCAmIChHVF9HRU44X1JDU19XQVRDSERPR19JTlRFUlJVUFQgPDwgR0VOOF9SQ1NfSVJRX1NISUZU KSkgeworCQkJCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmc7CisKKwkJCQkvKiBTdG9wIHRo ZSBjb3VudGVyIHRvIHByZXZlbnQgZnVydGhlciBpbnRlcnJ1cHRzICovCisJCQkJcmluZyA9ICZk ZXZfcHJpdi0+cmluZ1tSQ1NdOworCQkJCUk5MTVfV1JJVEUoUklOR19DTlRSKHJpbmctPm1taW9f YmFzZSksCisJCQkJCUdFTjZfUkNTX1dBVENIRE9HX0RJU0FCTEUpOworCisJCQkJcmluZy0+aGFu Z2NoZWNrLndhdGNoZG9nX2NvdW50Kys7CisJCQkJaTkxNV9oYW5kbGVfZXJyb3IocmluZy0+ZGV2 LCBpbnRlbF9yaW5nX2ZsYWcocmluZyksIHRydWUsIHRydWUsCisJCQkJCSJSZW5kZXIgZW5naW5l IHdhdGNoZG9nIHRpbWVkIG91dCIpOworCQkJfQogCiAJCQlpZiAodG1wICYgKEdUX0NPTlRFWFRf U1dJVENIX0lOVEVSUlVQVCA8PCBHRU44X0JDU19JUlFfU0hJRlQpKQogCQkJCWludGVsX2xyY19p cnFfaGFuZGxlcigmZGV2X3ByaXYtPnJpbmdbQkNTXSk7CkBAIC0xMzA4LDExICsxMzIwLDM1IEBA IHN0YXRpYyBpcnFyZXR1cm5fdCBnZW44X2d0X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKIAkJCQlpbnRlbF9scmNfaXJxX2hhbmRsZXIoJmRldl9wcml2LT5y aW5nW1ZDU10pOwogCQkJaWYgKHRtcCAmIChHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQgPDwgR0VO OF9WQ1MxX0lSUV9TSElGVCkpCiAJCQkJbm90aWZ5X3JpbmcoJmRldl9wcml2LT5yaW5nW1ZDU10p OworCQkJaWYgKHRtcCAmIChHVF9HRU44X1ZDU19XQVRDSERPR19JTlRFUlJVUFQgPDwgR0VOOF9W Q1MxX0lSUV9TSElGVCkpIHsKKwkJCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nOworCisJ CQkJLyogU3RvcCB0aGUgY291bnRlciB0byBwcmV2ZW50IGZ1cnRoZXIgaW50ZXJydXB0cyAqLwor CQkJCXJpbmcgPSAmZGV2X3ByaXYtPnJpbmdbVkNTXTsKKwkJCQlJOTE1X1dSSVRFKFJJTkdfQ05U UihyaW5nLT5tbWlvX2Jhc2UpLAorCQkJCQlHRU44X1ZDU19XQVRDSERPR19ESVNBQkxFKTsKKwor CQkJCXJpbmctPmhhbmdjaGVjay53YXRjaGRvZ19jb3VudCsrOworCQkJCWk5MTVfaGFuZGxlX2Vy cm9yKHJpbmctPmRldiwgaW50ZWxfcmluZ19mbGFnKHJpbmcpLCB0cnVlLCB0cnVlLAorCQkJCQkJ ICAiTWVkaWEgZW5naW5lIHdhdGNoZG9nIHRpbWVkIG91dCIpOworCQkJfQogCiAJCQlpZiAodG1w ICYgKEdUX0NPTlRFWFRfU1dJVENIX0lOVEVSUlVQVCA8PCBHRU44X1ZDUzJfSVJRX1NISUZUKSkK IAkJCQlpbnRlbF9scmNfaXJxX2hhbmRsZXIoJmRldl9wcml2LT5yaW5nW1ZDUzJdKTsKIAkJCWlm ICh0bXAgJiAoR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUIDw8IEdFTjhfVkNTMl9JUlFfU0hJRlQp KQogCQkJCW5vdGlmeV9yaW5nKCZkZXZfcHJpdi0+cmluZ1tWQ1MyXSk7CisJCQlpZiAodG1wICYg KEdUX0dFTjhfVkNTX1dBVENIRE9HX0lOVEVSUlVQVCA8PCBHRU44X1ZDUzJfSVJRX1NISUZUKSkg eworCQkJCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmc7CisKKwkJCQkvKiBTdG9wIHRoZSBj b3VudGVyIHRvIHByZXZlbnQgZnVydGhlciBpbnRlcnJ1cHRzICovCisJCQkJcmluZyA9ICZkZXZf cHJpdi0+cmluZ1tWQ1MyXTsKKwkJCQlJOTE1X1dSSVRFKFJJTkdfQ05UUihyaW5nLT5tbWlvX2Jh c2UpLAorCQkJCQlHRU44X1ZDU19XQVRDSERPR19ESVNBQkxFKTsKKworCQkJCXJpbmctPmhhbmdj aGVjay53YXRjaGRvZ19jb3VudCsrOworCQkJCWk5MTVfaGFuZGxlX2Vycm9yKHJpbmctPmRldiwg aW50ZWxfcmluZ19mbGFnKHJpbmcpLCB0cnVlLCB0cnVlLAorCQkJCQkJICAiTWVkaWEgZW5naW5l IDIgd2F0Y2hkb2cgdGltZWQgb3V0Iik7CisJCQl9CiAJCX0gZWxzZQogCQkJRFJNX0VSUk9SKCJU aGUgbWFzdGVyIGNvbnRyb2wgaW50ZXJydXB0IGxpZWQgKEdUMSkhXG4iKTsKIAl9CkBAIC0yNTYz LDYgKzI1OTksNyBAQCBzdGF0aWMgdm9pZCBpOTE1X3JlcG9ydF9hbmRfY2xlYXJfZWlyKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCiAgKgkJCW9yIGlmIG9uZSBvZiB0aGUgY3VycmVudCBlbmdpbmUg cmVzZXRzIGZhaWxzIHdlIGZhbGwKICAqCQkJYmFjayB0byBsZWdhY3kgZnVsbCBHUFUgcmVzZXQu CiAgKgorICogQHdhdGNoZG9nOiAJCXRydWUgPSBFbmdpbmUgaGFuZyBkZXRlY3RlZCBieSBoYXJk d2FyZSB3YXRjaGRvZy4KICAqIEB3ZWRnZWQ6IAkJdHJ1ZSA9IEhhbmcgZGV0ZWN0ZWQsIGludm9r ZSBoYW5nIHJlY292ZXJ5LgogICogQGZtdCwgLi4uOiAJCUVycm9yIG1lc3NhZ2UgZGVzY3JpYmlu ZyByZWFzb24gZm9yIGVycm9yLgogICoKQEAgLTI1NzQsOCArMjYxMSw4IEBAIHN0YXRpYyB2b2lk IGk5MTVfcmVwb3J0X2FuZF9jbGVhcl9laXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKICAqIHJl c2V0IHRoZSBhc3NvY2lhdGVkIGVuZ2luZS4gRmFpbGluZyB0aGF0LCB0cnkgdG8gZmFsbCBiYWNr IHRvIGxlZ2FjeQogICogZnVsbCBHUFUgcmVzZXQgcmVjb3ZlcnkgbW9kZS4KICAqLwotdm9pZCBp OTE1X2hhbmRsZV9lcnJvcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgZW5naW5lX21hc2ss IGJvb2wgd2VkZ2VkLAotCQkgICAgICAgY29uc3QgY2hhciAqZm10LCAuLi4pCit2b2lkIGk5MTVf aGFuZGxlX2Vycm9yKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiBlbmdpbmVfbWFzaywKKyAg ICAgICAgICAgICAgICAgICAgICAgYm9vbCB3YXRjaGRvZywgYm9vbCB3ZWRnZWQsIGNvbnN0IGNo YXIgKmZtdCwgLi4uKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRl di0+ZGV2X3ByaXZhdGU7CiAJdmFfbGlzdCBhcmdzOwpAQCAtMjYwNywyMCArMjY0NCwyNyBAQCB2 b2lkIGk5MTVfaGFuZGxlX2Vycm9yKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiBlbmdpbmVf bWFzaywgYm9vbCB3ZWRnZWQsCiAJCQl1MzIgaTsKIAogCQkJZm9yX2VhY2hfcmluZyhlbmdpbmUs IGRldl9wcml2LCBpKSB7Ci0JCQkJdTMyIG5vdywgbGFzdF9lbmdpbmVfcmVzZXRfdGltZWRpZmY7 CiAKIAkJCQlpZiAoIShpbnRlbF9yaW5nX2ZsYWcoZW5naW5lKSAmIGVuZ2luZV9tYXNrKSkKIAkJ CQkJY29udGludWU7CiAKLQkJCQkvKiBNZWFzdXJlIHRoZSB0aW1lIHNpbmNlIHRoaXMgZW5naW5l IHdhcyBsYXN0IHJlc2V0ICovCi0JCQkJbm93ID0gZ2V0X3NlY29uZHMoKTsKLQkJCQlsYXN0X2Vu Z2luZV9yZXNldF90aW1lZGlmZiA9Ci0JCQkJCW5vdyAtIGVuZ2luZS0+aGFuZ2NoZWNrLmxhc3Rf ZW5naW5lX3Jlc2V0X3RpbWU7Ci0KLQkJCQlmdWxsX3Jlc2V0ID0gbGFzdF9lbmdpbmVfcmVzZXRf dGltZWRpZmYgPAotCQkJCQlpOTE1LmdwdV9yZXNldF9wcm9tb3Rpb25fdGltZTsKLQotCQkJCWVu Z2luZS0+aGFuZ2NoZWNrLmxhc3RfZW5naW5lX3Jlc2V0X3RpbWUgPSBub3c7CisJCQkJaWYgKCF3 YXRjaGRvZykgeworCQkJCQkvKiBNZWFzdXJlIHRoZSB0aW1lIHNpbmNlIHRoaXMgZW5naW5lIHdh cyBsYXN0IHJlc2V0ICovCisJCQkJCXUzMiBub3cgPSBnZXRfc2Vjb25kcygpOworCQkJCQl1MzIg bGFzdF9lbmdpbmVfcmVzZXRfdGltZWRpZmYgPQorCQkJCQkJbm93IC0gZW5naW5lLT5oYW5nY2hl Y2subGFzdF9lbmdpbmVfcmVzZXRfdGltZTsKKworCQkJCQlmdWxsX3Jlc2V0ID0gbGFzdF9lbmdp bmVfcmVzZXRfdGltZWRpZmYgPAorCQkJCQkJaTkxNS5ncHVfcmVzZXRfcHJvbW90aW9uX3RpbWU7 CisKKwkJCQkJZW5naW5lLT5oYW5nY2hlY2subGFzdF9lbmdpbmVfcmVzZXRfdGltZSA9IG5vdzsK KwkJCQl9IGVsc2UgeworCQkJCQkvKgorCQkJCQkgKiBXYXRjaGRvZyB0aW1lb3V0IGFsd2F5cyBy ZXN1bHRzCisJCQkJCSAqIGluIGVuZ2luZSByZXNldC4KKwkJCQkJICovCisJCQkJCWZ1bGxfcmVz ZXQgPSBmYWxzZTsKKwkJCQl9CiAKIAkJCQkvKgogCQkJCSAqIFRoaXMgZW5naW5lIHdhcyBub3Qg cmVzZXQgdG9vIHJlY2VudGx5IC0gZ28gYWhlYWQKQEAgLTI2MzEsMTAgKzI2NzUsMTEgQEAgdm9p ZCBpOTE1X2hhbmRsZV9lcnJvcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgZW5naW5lX21h c2ssIGJvb2wgd2VkZ2VkLAogCQkJCSAqIFRoaXMgY2FuIHN0aWxsIGJlIG92ZXJyaWRkZW4gYnkg YSBnbG9iYWwKIAkJCQkgKiByZXNldCBlLmcuIGlmIHBlci1lbmdpbmUgcmVzZXQgZmFpbHMuCiAJ CQkJICovCi0JCQkJaWYgKCFmdWxsX3Jlc2V0KQorCQkJCWlmICh3YXRjaGRvZyB8fCAhZnVsbF9y ZXNldCkKIAkJCQkJYXRvbWljX3NldF9tYXNrKEk5MTVfRU5HSU5FX1JFU0VUX0lOX1BST0dSRVNT LAogCQkJCQkJJmVuZ2luZS0+aGFuZ2NoZWNrLmZsYWdzKTsKLQkJCQllbHNlCisKKwkJCQlpZiAo ZnVsbF9yZXNldCkKIAkJCQkJYnJlYWs7CiAKIAkJCX0gLyogZm9yX2VhY2hfcmluZyAqLwpAQCAt MjY0Miw3ICsyNjg3LDcgQEAgdm9pZCBpOTE1X2hhbmRsZV9lcnJvcihzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB1MzIgZW5naW5lX21hc2ssIGJvb2wgd2VkZ2VkLAogCiAJCWlmIChmdWxsX3Jlc2V0 KSB7CiAJCQlhdG9taWNfc2V0X21hc2soSTkxNV9SRVNFVF9JTl9QUk9HUkVTU19GTEFHLAotCQkJ CQkmZGV2X3ByaXYtPmdwdV9lcnJvci5yZXNldF9jb3VudGVyKTsKKwkJCQkmZGV2X3ByaXYtPmdw dV9lcnJvci5yZXNldF9jb3VudGVyKTsKIAkJfQogCiAJCS8qCkBAIC0yOTgwLDcgKzMwMjUsNyBA QCByaW5nX3N0dWNrKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIHU2NCBhY3RoZCkKIAkg Ki8KIAl0bXAgPSBJOTE1X1JFQURfQ1RMKHJpbmcpOwogCWlmICh0bXAgJiBSSU5HX1dBSVQpIHsK LQkJaTkxNV9oYW5kbGVfZXJyb3IoZGV2LCBpbnRlbF9yaW5nX2ZsYWcocmluZyksIGZhbHNlLAor CQlpOTE1X2hhbmRsZV9lcnJvcihkZXYsIGludGVsX3JpbmdfZmxhZyhyaW5nKSwgZmFsc2UsIGZh bHNlLAogCQkJCSAgIktpY2tpbmcgc3R1Y2sgd2FpdCBvbiAlcyIsCiAJCQkJICByaW5nLT5uYW1l KTsKIAkJSTkxNV9XUklURV9DVEwocmluZywgdG1wKTsKQEAgLTI5OTIsNyArMzAzNyw3IEBAIHJp bmdfc3R1Y2soc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywgdTY0IGFjdGhkKQogCQlkZWZh dWx0OgogCQkJcmV0dXJuIEhBTkdDSEVDS19IVU5HOwogCQljYXNlIDE6Ci0JCQlpOTE1X2hhbmRs ZV9lcnJvcihkZXYsIGludGVsX3JpbmdfZmxhZyhyaW5nKSwgZmFsc2UsCisJCQlpOTE1X2hhbmRs ZV9lcnJvcihkZXYsIGludGVsX3JpbmdfZmxhZyhyaW5nKSwgZmFsc2UsIGZhbHNlLAogCQkJCQkg ICJLaWNraW5nIHN0dWNrIHNlbWFwaG9yZSBvbiAlcyIsCiAJCQkJCSAgcmluZy0+bmFtZSk7CiAJ CQlJOTE1X1dSSVRFX0NUTChyaW5nLCB0bXApOwpAQCAtMzEzNCw5ICszMTc5LDkgQEAgc3RhdGlj IHZvaWQgaTkxNV9oYW5nY2hlY2tfZWxhcHNlZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJ fQogCiAJaWYgKGVuZ2luZV9tYXNrKQotCQlpOTE1X2hhbmRsZV9lcnJvcihkZXYsIGVuZ2luZV9t YXNrLCB0cnVlLCAiUmluZyBodW5nICgweCUwMngpIiwgZW5naW5lX21hc2spOworCQlpOTE1X2hh bmRsZV9lcnJvcihkZXYsIGVuZ2luZV9tYXNrLCBmYWxzZSwgdHJ1ZSwgIlJpbmcgaHVuZyAoMHgl MDJ4KSIsIGVuZ2luZV9tYXNrKTsKIAllbHNlIGlmIChmb3JjZV9mdWxsX2dwdV9yZXNldCkKLQkJ aTkxNV9oYW5kbGVfZXJyb3IoZGV2LCAweDAsIHRydWUsCisJCWk5MTVfaGFuZGxlX2Vycm9yKGRl diwgMHgwLCBmYWxzZSwgdHJ1ZSwKIAkJCSJIYW5nIHJlY292ZXJ5IGluZWZmZWN0aXZlLCBmYWxs aW5nIGJhY2sgdG8gZnVsbCBHUFUgcmVzZXQiKTsKIAogCWlmIChidXN5X2NvdW50KQpAQCAtMzU5 MSwxMSArMzYzNiwxNCBAQCBzdGF0aWMgdm9pZCBnZW44X2d0X2lycV9wb3N0aW5zdGFsbChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJLyogVGhlc2UgYXJlIGludGVycnVw dHMgd2UnbGwgdG9nZ2xlIHdpdGggdGhlIHJpbmcgbWFzayByZWdpc3RlciAqLwogCXVpbnQzMl90 IGd0X2ludGVycnVwdHNbXSA9IHsKKwkJR1RfR0VOOF9SQ1NfV0FUQ0hET0dfSU5URVJSVVBUIDw8 IEdFTjhfUkNTX0lSUV9TSElGVCB8CiAJCUdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCA8PCBHRU44 X1JDU19JUlFfU0hJRlQgfAogCQkJR1RfQ09OVEVYVF9TV0lUQ0hfSU5URVJSVVBUIDw8IEdFTjhf UkNTX0lSUV9TSElGVCB8CiAJCQlHVF9SRU5ERVJfTDNfUEFSSVRZX0VSUk9SX0lOVEVSUlVQVCB8 CiAJCQlHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQgPDwgR0VOOF9CQ1NfSVJRX1NISUZUIHwKIAkJ CUdUX0NPTlRFWFRfU1dJVENIX0lOVEVSUlVQVCA8PCBHRU44X0JDU19JUlFfU0hJRlQsCisJCUdU X0dFTjhfVkNTX1dBVENIRE9HX0lOVEVSUlVQVCA8PCBHRU44X1ZDUzFfSVJRX1NISUZUIHwKKwkJ R1RfR0VOOF9WQ1NfV0FUQ0hET0dfSU5URVJSVVBUIDw8IEdFTjhfVkNTMl9JUlFfU0hJRlQgfAog CQlHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQgPDwgR0VOOF9WQ1MxX0lSUV9TSElGVCB8CiAJCQlH VF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQgPDwgR0VOOF9WQ1MxX0lSUV9TSElGVCB8CiAJCQlH VF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQgPDwgR0VOOF9WQ1MyX0lSUV9TSElGVCB8CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9yZWcuaAppbmRleCBhZjlmMGFkLi5kMmFkYjliIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVnLmgKQEAgLTExODEsNiArMTE4MSw4IEBAIGVudW0gc2tsX2Rpc3BfcG93ZXJfd2VsbHMgewog I2RlZmluZSBSSU5HX0hFQUQoYmFzZSkJCSgoYmFzZSkrMHgzNCkKICNkZWZpbmUgUklOR19TVEFS VChiYXNlKQkoKGJhc2UpKzB4MzgpCiAjZGVmaW5lIFJJTkdfQ1RMKGJhc2UpCQkoKGJhc2UpKzB4 M2MpCisjZGVmaW5lIFJJTkdfQ05UUihiYXNlKSAgICAgICAgKChiYXNlKSsweDE3OCkKKyNkZWZp bmUgUklOR19USFJFU0goYmFzZSkgKChiYXNlKSsweDE3QykKICNkZWZpbmUgUklOR19TWU5DXzAo YmFzZSkJKChiYXNlKSsweDQwKQogI2RlZmluZSBSSU5HX1NZTkNfMShiYXNlKQkoKGJhc2UpKzB4 NDQpCiAjZGVmaW5lIFJJTkdfU1lOQ18yKGJhc2UpCSgoYmFzZSkrMHg0OCkKQEAgLTE1ODQsNiAr MTU4NiwxMSBAQCBlbnVtIHNrbF9kaXNwX3Bvd2VyX3dlbGxzIHsKICNkZWZpbmUgR1RfQlNEX1VT RVJfSU5URVJSVVBUCQkJKDEgPDwgMTIpCiAjZGVmaW5lIEdUX1JFTkRFUl9MM19QQVJJVFlfRVJS T1JfSU5URVJSVVBUX1MxCSgxIDw8IDExKSAvKiBoc3crOyByc3ZkIG9uIHNuYiwgaXZiLCB2bHYg Ki8KICNkZWZpbmUgR1RfQ09OVEVYVF9TV0lUQ0hfSU5URVJSVVBUCQkoMSA8PCAgOCkKKyNkZWZp bmUgR1RfR0VONl9SRU5ERVJfV0FUQ0hET0dfSU5URVJSVVBUCSgxIDw8ICA2KQorI2RlZmluZSBH VF9HRU44X1JDU19XQVRDSERPR19JTlRFUlJVUFQJCSgxIDw8ICA2KQorI2RlZmluZSAgIEdFTjZf UkNTX1dBVENIRE9HX0RJU0FCTEUJCTEKKyNkZWZpbmUgR1RfR0VOOF9WQ1NfV0FUQ0hET0dfSU5U RVJSVVBUCQkoMSA8PCAgNikKKyNkZWZpbmUgICBHRU44X1ZDU19XQVRDSERPR19ESVNBQkxFCQkw eEZGRkZGRkZGCiAjZGVmaW5lIEdUX1JFTkRFUl9MM19QQVJJVFlfRVJST1JfSU5URVJSVVBUCSgx IDw8ICA1KSAvKiAhc25iICovCiAjZGVmaW5lIEdUX1JFTkRFUl9QSVBFQ1RMX05PVElGWV9JTlRF UlJVUFQJKDEgPDwgIDQpCiAjZGVmaW5lIEdUX1JFTkRFUl9DU19NQVNURVJfRVJST1JfSU5URVJS VVBUCSgxIDw8ICAzKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwppbmRleCBlOTk0MGNjLi4wNTFk YTA5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwpAQCAtMTEyMiw2ICsxMTIyLDc4IEBAIHN0 YXRpYyBpbnQgaW50ZWxfbG9naWNhbF9yaW5nX2JlZ2luKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVy ICpyaW5nYnVmLAogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50CitnZW44X3Jpbmdfc3RhcnRf d2F0Y2hkb2coc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYsIHN0cnVjdCBpbnRlbF9j b250ZXh0ICpjdHgpCit7CisJaW50IHJldDsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5n ID0gcmluZ2J1Zi0+cmluZzsKKworCXJldCA9IGludGVsX2xvZ2ljYWxfcmluZ19iZWdpbihyaW5n YnVmLCBjdHgsIDEwKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJLyoKKwkgKiBpOTE1 X3JlZy5oIGluY2x1ZGVzIGEgd2FybmluZyB0byBwbGFjZSBhIE1JX05PT1AKKwkgKiBiZWZvcmUg YSBNSV9MT0FEX1JFR0lTVEVSX0lNTQorCSAqLworCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJp bmdidWYsIE1JX05PT1ApOworCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIE1JX05P T1ApOworCisJLyogU2V0IGNvdW50ZXIgcGVyaW9kICovCisJaW50ZWxfbG9naWNhbF9yaW5nX2Vt aXQocmluZ2J1ZiwgTUlfTE9BRF9SRUdJU1RFUl9JTU0oMSkpOworCWludGVsX2xvZ2ljYWxfcmlu Z19lbWl0KHJpbmdidWYsIFJJTkdfVEhSRVNIKHJpbmctPm1taW9fYmFzZSkpOworCWludGVsX2xv Z2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIHJpbmctPndhdGNoZG9nX3RocmVzaG9sZCk7CisJaW50 ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgTUlfTk9PUCk7CisKKwkvKiBTdGFydCBjb3Vu dGVyICovCisJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgTUlfTE9BRF9SRUdJU1RF Ul9JTU0oMSkpOworCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIFJJTkdfQ05UUihy aW5nLT5tbWlvX2Jhc2UpKTsKKwlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBJOTE1 X1dBVENIRE9HX0VOQUJMRSk7CisJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgTUlf Tk9PUCk7CisJaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2UocmluZ2J1Zik7CisKKwlyZXR1cm4g MDsKK30KKworc3RhdGljIGludAorZ2VuOF9yaW5nX3N0b3Bfd2F0Y2hkb2coc3RydWN0IGludGVs X3JpbmdidWZmZXIgKnJpbmdidWYsIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpCit7CisJaW50 IHJldDsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gcmluZ2J1Zi0+cmluZzsKKwor CXJldCA9IGludGVsX2xvZ2ljYWxfcmluZ19iZWdpbihyaW5nYnVmLCBjdHgsIDYpOworCWlmIChy ZXQpCisJCXJldHVybiByZXQ7CisKKwkvKgorCSAqIGk5MTVfcmVnLmggaW5jbHVkZXMgYSB3YXJu aW5nIHRvIHBsYWNlIGEgTUlfTk9PUAorCSAqIGJlZm9yZSBhIE1JX0xPQURfUkVHSVNURVJfSU1N CisJICovCisJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgTUlfTk9PUCk7CisJaW50 ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgTUlfTk9PUCk7CisKKwlpbnRlbF9sb2dpY2Fs X3JpbmdfZW1pdChyaW5nYnVmLCBNSV9MT0FEX1JFR0lTVEVSX0lNTSgxKSk7CisJaW50ZWxfbG9n aWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgUklOR19DTlRSKHJpbmctPm1taW9fYmFzZSkpOworCisJ c3dpdGNoIChyaW5nLT5pZCkgeworCWRlZmF1bHQ6CisJCVdBUk4oMSwgIiVzIGRvZXMgbm90IHN1 cHBvcnQgd2F0Y2hkb2cgdGltZW91dCEgIiBcCisJCQkiRGVmYXVsdGluZyB0byByZW5kZXIgZW5n aW5lLlxuIiwgcmluZy0+bmFtZSk7CisJY2FzZSBSQ1M6CisJCWludGVsX2xvZ2ljYWxfcmluZ19l bWl0KHJpbmdidWYsIEdFTjZfUkNTX1dBVENIRE9HX0RJU0FCTEUpOworCQlicmVhazsKKwljYXNl IFZDUzoKKwljYXNlIFZDUzI6CisJCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIEdF TjhfVkNTX1dBVENIRE9HX0RJU0FCTEUpOworCQlicmVhazsKKwl9CisKKwlpbnRlbF9sb2dpY2Fs X3JpbmdfZW1pdChyaW5nYnVmLCBNSV9OT09QKTsKKwlpbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5j ZShyaW5nYnVmKTsKKworCXJldHVybiAwOworfQorCiAvKioKICAqIGV4ZWNsaXN0c19zdWJtaXNz aW9uKCkgLSBzdWJtaXQgYSBiYXRjaGJ1ZmZlciBmb3IgZXhlY3V0aW9uLCBFeGVjbGlzdHMgc3R5 bGUKICAqIEBkZXY6IERSTSBkZXZpY2UuCkBAIC0xMTUyLDYgKzEyMjQsNyBAQCBpbnQgaW50ZWxf ZXhlY2xpc3RzX3N1Ym1pc3Npb24oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9m aWxlICpmaWxlLAogCWludCBpbnN0cF9tb2RlOwogCXUzMiBpbnN0cF9tYXNrOwogCWludCByZXQ7 CisJYm9vbCB3YXRjaGRvZ19ydW5uaW5nID0gZmFsc2U7CiAKIAlpbnN0cF9tb2RlID0gYXJncy0+ ZmxhZ3MgJiBJOTE1X0VYRUNfQ09OU1RBTlRTX01BU0s7CiAJaW5zdHBfbWFzayA9IEk5MTVfRVhF Q19DT05TVEFOVFNfTUFTSzsKQEAgLTEyMDMsNiArMTI3NiwxOCBAQCBpbnQgaW50ZWxfZXhlY2xp c3RzX3N1Ym1pc3Npb24oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpm aWxlLAogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKKwkvKiBTdGFydCB3YXRjaGRvZyB0aW1l ciAqLworCWlmIChhcmdzLT5mbGFncyAmIEk5MTVfRVhFQ19FTkFCTEVfV0FUQ0hET0cpIHsKKwkJ aWYgKCFpbnRlbF9yaW5nX3N1cHBvcnRzX3dhdGNoZG9nKHJpbmcpKQorCQkJcmV0dXJuIC1FSU5W QUw7CisKKwkJcmV0ID0gZ2VuOF9yaW5nX3N0YXJ0X3dhdGNoZG9nKHJpbmdidWYsIGN0eCk7CisJ CWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCisJCXdhdGNoZG9nX3J1bm5pbmcgPSB0cnVlOwor CX0KKwogCWlmIChyaW5nID09ICZkZXZfcHJpdi0+cmluZ1tSQ1NdICYmCiAJICAgIGluc3RwX21v ZGUgIT0gZGV2X3ByaXYtPnJlbGF0aXZlX2NvbnN0YW50c19tb2RlKSB7CiAJCXJldCA9IGludGVs X2xvZ2ljYWxfcmluZ19iZWdpbihyaW5nYnVmLCBjdHgsIDQpOwpAQCAtMTIyNCw2ICsxMzA5LDEz IEBAIGludCBpbnRlbF9leGVjbGlzdHNfc3VibWlzc2lvbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCiAKIAl0cmFjZV9pOTE1X2dlbV9yaW5nX2Rpc3BhdGNo KGludGVsX3JpbmdfZ2V0X3JlcXVlc3QocmluZyksIGRpc3BhdGNoX2ZsYWdzKTsKIAorCS8qIENh bmNlbCB3YXRjaGRvZyB0aW1lciAqLworCWlmICh3YXRjaGRvZ19ydW5uaW5nKSB7CisJCXJldCA9 IGdlbjhfcmluZ19zdG9wX3dhdGNoZG9nKHJpbmdidWYsIGN0eCk7CisJCWlmIChyZXQpCisJCQly ZXR1cm4gcmV0OworCX0KKwogCWk5MTVfZ2VtX2V4ZWNidWZmZXJfbW92ZV90b19hY3RpdmUodm1h cywgcmluZyk7CiAJaTkxNV9nZW1fZXhlY2J1ZmZlcl9yZXRpcmVfY29tbWFuZHMoZGV2LCBmaWxl LCByaW5nLCBiYXRjaF9vYmopOwogCkBAIC0xODkyLDYgKzE5ODQsOSBAQCBzdGF0aWMgaW50IGxv Z2ljYWxfcmVuZGVyX3JpbmdfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWlmIChIQVNf TDNfRFBGKGRldikpCiAJCXJpbmctPmlycV9rZWVwX21hc2sgfD0gR1RfUkVOREVSX0wzX1BBUklU WV9FUlJPUl9JTlRFUlJVUFQ7CiAKKwlyaW5nLT5pcnFfa2VlcF9tYXNrIHw9CisJCShHVF9HRU44 X1JDU19XQVRDSERPR19JTlRFUlJVUFQgPDwgR0VOOF9SQ1NfSVJRX1NISUZUKTsKKwogCWlmIChJ TlRFTF9JTkZPKGRldiktPmdlbiA+PSA5KQogCQlyaW5nLT5pbml0X2h3ID0gZ2VuOV9pbml0X3Jl bmRlcl9yaW5nOwogCWVsc2UKQEAgLTE5MzAsNiArMjAyNSw4IEBAIHN0YXRpYyBpbnQgbG9naWNh bF9ic2RfcmluZ19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCUdUX1JFTkRFUl9VU0VS X0lOVEVSUlVQVCA8PCBHRU44X1ZDUzFfSVJRX1NISUZUOwogCXJpbmctPmlycV9rZWVwX21hc2sg PQogCQlHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQgPDwgR0VOOF9WQ1MxX0lSUV9TSElGVDsK KwlyaW5nLT5pcnFfa2VlcF9tYXNrIHw9CisJCShHVF9HRU44X1ZDU19XQVRDSERPR19JTlRFUlJV UFQgPDwgR0VOOF9WQ1MxX0lSUV9TSElGVCk7CiAKIAlyaW5nLT5pbml0X2h3ID0gZ2VuOF9pbml0 X2NvbW1vbl9yaW5nOwogCXJpbmctPmdldF9zZXFubyA9IGdlbjhfZ2V0X3NlcW5vOwpAQCAtMTk1 OSw2ICsyMDU2LDggQEAgc3RhdGljIGludCBsb2dpY2FsX2JzZDJfcmluZ19pbml0KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCiAJCUdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCA8PCBHRU44X1ZDUzJf SVJRX1NISUZUOwogCXJpbmctPmlycV9rZWVwX21hc2sgPQogCQlHVF9DT05URVhUX1NXSVRDSF9J TlRFUlJVUFQgPDwgR0VOOF9WQ1MyX0lSUV9TSElGVDsKKwlyaW5nLT5pcnFfa2VlcF9tYXNrIHw9 CisJCShHVF9HRU44X1ZDU19XQVRDSERPR19JTlRFUlJVUFQgPDwgR0VOOF9WQ1MyX0lSUV9TSElG VCk7CiAKIAlyaW5nLT5pbml0X2h3ID0gZ2VuOF9pbml0X2NvbW1vbl9yaW5nOwogCXJpbmctPmdl dF9zZXFubyA9IGdlbjhfZ2V0X3NlcW5vOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5oCmluZGV4IDM1MzYwYTQuLjkwNTg3ODkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9yaW5nYnVmZmVyLmgKQEAgLTMwLDYgKzMwLDggQEAgc3RydWN0ICBpbnRlbF9od19zdGF0dXNf cGFnZSB7CiAJc3RydWN0CQlkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CiB9OwogCisjZGVmaW5l IEk5MTVfV0FUQ0hET0dfRU5BQkxFIDAKKwogI2RlZmluZSBJOTE1X1JFQURfVEFJTChyaW5nKSBJ OTE1X1JFQUQoUklOR19UQUlMKChyaW5nKS0+bW1pb19iYXNlKSkKICNkZWZpbmUgSTkxNV9XUklU RV9UQUlMKHJpbmcsIHZhbCkgSTkxNV9XUklURShSSU5HX1RBSUwoKHJpbmcpLT5tbWlvX2Jhc2Up LCB2YWwpCiAKQEAgLTEzNiw2ICsxMzgsOSBAQCBzdHJ1Y3QgaW50ZWxfcmluZ19oYW5nY2hlY2sg ewogCiAJLyogTnVtYmVyIG9mIFREUiBoYW5nIGRldGVjdGlvbnMgKi8KIAl1MzIgdGRyX2NvdW50 OworCisJLyogTnVtYmVyIG9mIHdhdGNoZG9nIGhhbmcgZGV0ZWN0aW9ucyBmb3IgdGhpcyByaW5n ICovCisJdTMyIHdhdGNoZG9nX2NvdW50OwogfTsKIAogc3RydWN0IGludGVsX3JpbmdidWZmZXIg ewpAQCAtMzM4LDYgKzM0MywxMiBAQCBzdHJ1Y3QgIGludGVsX2VuZ2luZV9jcyB7CiAJLyogU2F2 ZWQgaGVhZCB2YWx1ZSB0byBiZSByZXN0b3JlZCBhZnRlciByZXNldCAqLwogCXUzMiBzYXZlZF9o ZWFkOwogCisJLyoKKwkgKiBXYXRjaGRvZyB0aW1lciB0aHJlc2hvbGQgdmFsdWVzCisJICogb25s eSBSQ1MsIFZDUywgVkNTMiByaW5ncyBoYXZlIHdhdGNoZG9nIHRpbWVvdXQgc3VwcG9ydAorCSAq LworCXVpbnQzMl90IHdhdGNoZG9nX3RocmVzaG9sZDsKKwogCXN0cnVjdCB7CiAJCXN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CiAJCXUzMiBndHRfb2Zmc2V0OwpAQCAtNDg0LDYgKzQ5 NSwyNiBAQCBpbnQgaW50ZWxfcmluZ19zYXZlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcs CiBpbnQgaW50ZWxfcmluZ19yZXN0b3JlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAJ CXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKTsKIAorc3RhdGljIGlubGluZSBib29s IGludGVsX3Jpbmdfc3VwcG9ydHNfd2F0Y2hkb2coc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmlu ZykKK3sKKwlib29sIHJldCA9IGZhbHNlOworCisJaWYgKFdBUk5fT04oIXJpbmcpKQorCQlnb3Rv IGV4aXQ7CisKKwlyZXQgPSAoCXJpbmctPmlkID09IFJDUyB8fAorCQlyaW5nLT5pZCA9PSBWQ1Mg fHwKKwkJcmluZy0+aWQgPT0gVkNTMik7CisKKwlpZiAoIXJldCkKKwkJRFJNX0VSUk9SKCIlcyBk b2VzIG5vdCBzdXBwb3J0IHdhdGNoZG9nIHRpbWVvdXQhXG4iLCByaW5nLT5uYW1lKTsKKworZXhp dDoKKwlyZXR1cm4gcmV0OworfQoraW50IGludGVsX3Jpbmdfc3RhcnRfd2F0Y2hkb2coc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqcmluZyk7CitpbnQgaW50ZWxfcmluZ19zdG9wX3dhdGNoZG9nKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOworCiBpbnQgX19tdXN0X2NoZWNrIGludGVsX3Jp bmdfaWRsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKIHZvaWQgaW50ZWxfcmluZ19p bml0X3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIHUzMiBzZXFubyk7CiBpbnQg aW50ZWxfcmluZ19mbHVzaF9hbGxfY2FjaGVzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcp OwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oIGIvaW5jbHVkZS91YXBp L2RybS9pOTE1X2RybS5oCmluZGV4IDQ4NTFkNjYuLmY4YWY3ZDIgMTAwNjQ0Ci0tLSBhL2luY2x1 ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAorKysgYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgK QEAgLTc2MCw3ICs3NjAsMTAgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiB7CiAj ZGVmaW5lIEk5MTVfRVhFQ19CU0RfUklORzEJCSgxPDwxMykKICNkZWZpbmUgSTkxNV9FWEVDX0JT RF9SSU5HMgkJKDI8PDEzKQogCi0jZGVmaW5lIF9fSTkxNV9FWEVDX1VOS05PV05fRkxBR1MgLSgx PDwxNSkKKy8qIEVuYWJsZSB3YXRjaGRvZyB0aW1lciBmb3IgdGhpcyBiYXRjaCBidWZmZXIgKi8K KyNkZWZpbmUgSTkxNV9FWEVDX0VOQUJMRV9XQVRDSERPRyAgICAgICAoMTw8MTUpCisKKyNkZWZp bmUgX19JOTE1X0VYRUNfVU5LTk9XTl9GTEFHUyAtKDE8PDE2KQogCiAjZGVmaW5lIEk5MTVfRVhF Q19DT05URVhUX0lEX01BU0sJKDB4ZmZmZmZmZmYpCiAjZGVmaW5lIGk5MTVfZXhlY2J1ZmZlcjJf c2V0X2NvbnRleHRfaWQoZWIyLCBjb250ZXh0KSBcCi0tIAoxLjcuOS41CgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=