From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomas Elf Subject: [RFCv2 06/12] drm/i915: Watchdog timeout support for gen8. Date: Tue, 21 Jul 2015 14:58:49 +0100 Message-ID: <1437487135-32520-7-git-send-email-tomas.elf@intel.com> References: <1437487135-32520-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 mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id ABD617208E for ; Tue, 21 Jul 2015 06:59:56 -0700 (PDT) In-Reply-To: <1437487135-32520-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 ICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYyAgICAgICAgIHwgNTkg KysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAg ICAgICB8ICA3ICsrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyAgICAgICAgIHwg ODQgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9yZWcuaCAgICAgICAgIHwgIDcgKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu YyAgICAgICAgfCA5OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCB8IDMxICsrKysrKysrKysrCiBpbmNsdWRl L3VhcGkvZHJtL2k5MTVfZHJtLmggICAgICAgICAgICAgfCAgNSArLQogOCBmaWxlcyBjaGFuZ2Vk LCAyNzEgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2RlYnVnZnMuYwppbmRleCBlMzNlMTA1Li5hODlkYTQ4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2RlYnVnZnMuYwpAQCAtNDE4Myw3ICs0MTgzLDcgQEAgaTkxNV93ZWRnZWRfc2V0KHZvaWQgKmRh dGEsIHU2NCB2YWwpCiAKIAlpbnRlbF9ydW50aW1lX3BtX2dldChkZXZfcHJpdik7CiAKLQlpOTE1 X2hhbmRsZV9lcnJvcihkZXYsIDB4MCwgdmFsLAorCWk5MTVfaGFuZGxlX2Vycm9yKGRldiwgMHgw LCBmYWxzZSwgdmFsLAogCQkJICAiTWFudWFsbHkgc2V0dGluZyB3ZWRnZWQgdG8gJWxsdSIsIHZh bCk7CiAKIAlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k bWEuYwppbmRleCAzOWI4ZjVmLi5iZjFkNDVhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2RtYS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMKQEAg LTc5Miw2ICs3OTIsNjQgQEAgaTkxNV9oYW5nY2hlY2tfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQogCX0KIH0KIAordm9pZCBpOTE1X3dhdGNoZG9nX2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9w cml2YXRlOworCWludCBmcmVxOworCWludCBpOworCisJLyoKKwkgKiBCYXNlZCBvbiBwcmUtZGVm aW5lZCB0aW1lIG91dCB2YWx1ZSAoNjBtcyBvciAzMG1zKSBjYWxjdWxhdGUKKwkgKiB0aW1lciBj b3VudCB0aHJlc2hvbGRzIG5lZWRlZCBiYXNlZCBvbiBjb3JlIGZyZXF1ZW5jeS4KKwkgKgorCSAq IEZvciBSQ1MuCisJICogVGhlIHRpbWVzdGFtcCByZXNvbHV0aW9uIGNoYW5nZWQgaW4gR2VuNyBh bmQgYmV5b25kIHRvIDgwbnMKKwkgKiBmb3IgYWxsIHBpcGVzLiBCZWZvcmUgdGhhdCBpdCB3YXMg NjQwbnMuCisJICovCisKKyNkZWZpbmUgS01fUkNTX0VOR0lORV9USU1FT1VUX1ZBTFVFX0lOX01T IDYwCisjZGVmaW5lIEtNX0JTRF9FTkdJTkVfVElNRU9VVF9WQUxVRV9JTl9NUyA2MAorI2RlZmlu ZSBLTV9USU1FUl9NSUxMSVNFQ09ORCAxMDAwCisKKwkvKgorCSAqIFRpbWVzdGFtcCB0aW1lciBy ZXNvbHV0aW9uID0gMC4wODAgdVNlYywKKwkgKiBvciAxMjUwMDAwMCBjb3VudHMgcGVyIHNlY29u ZAorCSAqLworI2RlZmluZSBLTV9USU1FU1RBTVBfQ05UU19QRVJfU0VDXzgwTlMgMTI1MDAwMDAK KworCS8qCisJICogVGltZXN0YW1wIHRpbWVyIHJlc29sdXRpb24gPSAwLjY0MCB1U2VjLAorCSAq IG9yIDE1NjI1MDAgY291bnRzIHBlciBzZWNvbmQKKwkgKi8KKyNkZWZpbmUgS01fVElNRVNUQU1Q X0NOVFNfUEVSX1NFQ182NDBOUyAxNTYyNTAwCisKKwlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4g Pj0gNykKKwkJZnJlcSA9IEtNX1RJTUVTVEFNUF9DTlRTX1BFUl9TRUNfODBOUzsKKwllbHNlCisJ CWZyZXEgPSBLTV9USU1FU1RBTVBfQ05UU19QRVJfU0VDXzY0ME5TOworCisJZGV2X3ByaXYtPnJp bmdbUkNTXS53YXRjaGRvZ190aHJlc2hvbGQgPQorCQkoKEtNX1JDU19FTkdJTkVfVElNRU9VVF9W QUxVRV9JTl9NUykgKgorCQkoZnJlcSAvIEtNX1RJTUVSX01JTExJU0VDT05EKSk7CisKKwlkZXZf cHJpdi0+cmluZ1tWQ1NdLndhdGNoZG9nX3RocmVzaG9sZCA9CisJCSgoS01fQlNEX0VOR0lORV9U SU1FT1VUX1ZBTFVFX0lOX01TKSAqCisJCShmcmVxIC8gS01fVElNRVJfTUlMTElTRUNPTkQpKTsK KworCWRldl9wcml2LT5yaW5nW1ZDUzJdLndhdGNoZG9nX3RocmVzaG9sZCA9CisJCSgoS01fQlNE X0VOR0lORV9USU1FT1VUX1ZBTFVFX0lOX01TKSAqCisJCShmcmVxIC8gS01fVElNRVJfTUlMTElT RUNPTkQpKTsKKworCWZvciAoaSA9IDA7IGkgPCBJOTE1X05VTV9SSU5HUzsgaSsrKQorCQlkZXZf cHJpdi0+cmluZ1tpXS5oYW5nY2hlY2sud2F0Y2hkb2dfY291bnQgPSAwOworCisJRFJNX0lORk8o IldhdGNoZG9nIFRpbWVvdXQgW21zXSwgIiBcCisJCQkiUkNTOiAweCUwOFgsIFZDUzogMHglMDhY LCBWQ1MyOiAweCUwOFhcbiIsIFwKKwkJCUtNX1JDU19FTkdJTkVfVElNRU9VVF9WQUxVRV9JTl9N UywKKwkJCUtNX0JTRF9FTkdJTkVfVElNRU9VVF9WQUxVRV9JTl9NUywKKwkJCUtNX0JTRF9FTkdJ TkVfVElNRU9VVF9WQUxVRV9JTl9NUyk7Cit9CisKIC8qKgogICogaTkxNV9kcml2ZXJfbG9hZCAt IHNldHVwIGNoaXAgYW5kIGNyZWF0ZSBhbiBpbml0aWFsIGNvbmZpZwogICogQGRldjogRFJNIGRl dmljZQpAQCAtOTczLDYgKzEwMzEsNyBAQCBpbnQgaTkxNV9kcml2ZXJfbG9hZChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGZsYWdzKQogCWk5MTVfZ2VtX2xvYWQoZGV2KTsK IAogCWk5MTVfaGFuZ2NoZWNrX2luaXQoZGV2KTsKKwlpOTE1X3dhdGNoZG9nX2luaXQoZGV2KTsK IAogCS8qIE9uIHRoZSA5NDVHL0dNLCB0aGUgY2hpcHNldCByZXBvcnRzIHRoZSBNU0kgY2FwYWJp bGl0eSBvbiB0aGUKIAkgKiBpbnRlZ3JhdGVkIGdyYXBoaWNzIGV2ZW4gdGhvdWdoIHRoZSBzdXBw b3J0IGlzbid0IGFjdHVhbGx5IHRoZXJlCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCBlZjdj MTI5Li4zZDMxODcyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTI1NjMsNiArMjU2Myw3 IEBAIGV4dGVybiB1bnNpZ25lZCBsb25nIGk5MTVfZ2Z4X3ZhbChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpOwogZXh0ZXJuIHZvaWQgaTkxNV91cGRhdGVfZ2Z4X3ZhbChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogaW50IHZsdl9mb3JjZV9nZnhfY2xvY2soc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBib29sIG9uKTsKIHZvaWQgaW50ZWxfaHBk X2NhbmNlbF93b3JrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cit2b2lkIGk5 MTVfd2F0Y2hkb2dfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIHN0YXRpYyBpbmxpbmUg dm9pZCBpOTE1X2hhbmdjaGVja19yZWluaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l KQogewogCXN0cnVjdCBpbnRlbF9yaW5nX2hhbmdjaGVjayAqaGMgPSAmZW5naW5lLT5oYW5nY2hl Y2s7CkBAIC0yNTc4LDkgKzI1NzksOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaTkxNV9oYW5nY2hl Y2tfcmVpbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAogLyogaTkxNV9pcnEu YyAqLwogdm9pZCBpOTE1X3F1ZXVlX2hhbmdjaGVjayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsK LV9fcHJpbnRmKDQsIDUpCi12b2lkIGk5MTVfaGFuZGxlX2Vycm9yKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHUzMiBlbmdpbmVfbWFzaywgYm9vbCB3ZWRnZWQsCi0JCSAgICAgICBjb25zdCBjaGFy ICpmbXQsIC4uLik7CitfX3ByaW50Zig1LCA2KQordm9pZCBpOTE1X2hhbmRsZV9lcnJvcihzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgZW5naW5lX21hc2ssCisJCSAgICAgICBib29sIHdhdGNo ZG9nLCBib29sIHdlZGdlZCwgY29uc3QgY2hhciAqZm10LCAuLi4pOwogCiBleHRlcm4gdm9pZCBp bnRlbF9pcnFfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogZXh0ZXJu IHZvaWQgaW50ZWxfaHBkX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2lycS5jCmluZGV4IDQ5NzM4MjYuLjU2NzJhMmMgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9pcnEuYwpAQCAtMTI4OSw2ICsxMjg5LDE4IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBn ZW44X2d0X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJ CQlpbnRlbF9scmNfaXJxX2hhbmRsZXIoJmRldl9wcml2LT5yaW5nW1JDU10pOwogCQkJaWYgKHRt cCAmIChHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQgPDwgR0VOOF9SQ1NfSVJRX1NISUZUKSkKIAkJ CQlub3RpZnlfcmluZygmZGV2X3ByaXYtPnJpbmdbUkNTXSk7CisJCQlpZiAodG1wICYgKEdUX0dF TjhfUkNTX1dBVENIRE9HX0lOVEVSUlVQVCA8PCBHRU44X1JDU19JUlFfU0hJRlQpKSB7CisJCQkJ c3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZzsKKworCQkJCS8qIFN0b3AgdGhlIGNvdW50ZXIg dG8gcHJldmVudCBmdXJ0aGVyIGludGVycnVwdHMgKi8KKwkJCQlyaW5nID0gJmRldl9wcml2LT5y aW5nW1JDU107CisJCQkJSTkxNV9XUklURShSSU5HX0NOVFIocmluZy0+bW1pb19iYXNlKSwKKwkJ CQkJR0VONl9SQ1NfV0FUQ0hET0dfRElTQUJMRSk7CisKKwkJCQlyaW5nLT5oYW5nY2hlY2sud2F0 Y2hkb2dfY291bnQrKzsKKwkJCQlpOTE1X2hhbmRsZV9lcnJvcihyaW5nLT5kZXYsIGludGVsX3Jp bmdfZmxhZyhyaW5nKSwgdHJ1ZSwgdHJ1ZSwKKwkJCQkJIlJlbmRlciBlbmdpbmUgd2F0Y2hkb2cg dGltZWQgb3V0Iik7CisJCQl9CiAKIAkJCWlmICh0bXAgJiAoR1RfQ09OVEVYVF9TV0lUQ0hfSU5U RVJSVVBUIDw8IEdFTjhfQkNTX0lSUV9TSElGVCkpCiAJCQkJaW50ZWxfbHJjX2lycV9oYW5kbGVy KCZkZXZfcHJpdi0+cmluZ1tCQ1NdKTsKQEAgLTEzMDgsMTEgKzEzMjAsMzUgQEAgc3RhdGljIGly cXJldHVybl90IGdlbjhfZ3RfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAogCQkJCWludGVsX2xyY19pcnFfaGFuZGxlcigmZGV2X3ByaXYtPnJpbmdbVkNTXSk7 CiAJCQlpZiAodG1wICYgKEdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCA8PCBHRU44X1ZDUzFfSVJR X1NISUZUKSkKIAkJCQlub3RpZnlfcmluZygmZGV2X3ByaXYtPnJpbmdbVkNTXSk7CisJCQlpZiAo dG1wICYgKEdUX0dFTjhfVkNTX1dBVENIRE9HX0lOVEVSUlVQVCA8PCBHRU44X1ZDUzFfSVJRX1NI SUZUKSkgeworCQkJCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmc7CisKKwkJCQkvKiBTdG9w IHRoZSBjb3VudGVyIHRvIHByZXZlbnQgZnVydGhlciBpbnRlcnJ1cHRzICovCisJCQkJcmluZyA9 ICZkZXZfcHJpdi0+cmluZ1tWQ1NdOworCQkJCUk5MTVfV1JJVEUoUklOR19DTlRSKHJpbmctPm1t aW9fYmFzZSksCisJCQkJCUdFTjhfVkNTX1dBVENIRE9HX0RJU0FCTEUpOworCisJCQkJcmluZy0+ aGFuZ2NoZWNrLndhdGNoZG9nX2NvdW50Kys7CisJCQkJaTkxNV9oYW5kbGVfZXJyb3IocmluZy0+ ZGV2LCBpbnRlbF9yaW5nX2ZsYWcocmluZyksIHRydWUsIHRydWUsCisJCQkJCQkgICJNZWRpYSBl bmdpbmUgd2F0Y2hkb2cgdGltZWQgb3V0Iik7CisJCQl9CiAKIAkJCWlmICh0bXAgJiAoR1RfQ09O VEVYVF9TV0lUQ0hfSU5URVJSVVBUIDw8IEdFTjhfVkNTMl9JUlFfU0hJRlQpKQogCQkJCWludGVs X2xyY19pcnFfaGFuZGxlcigmZGV2X3ByaXYtPnJpbmdbVkNTMl0pOwogCQkJaWYgKHRtcCAmIChH VF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQgPDwgR0VOOF9WQ1MyX0lSUV9TSElGVCkpCiAJCQkJbm90 aWZ5X3JpbmcoJmRldl9wcml2LT5yaW5nW1ZDUzJdKTsKKwkJCWlmICh0bXAgJiAoR1RfR0VOOF9W Q1NfV0FUQ0hET0dfSU5URVJSVVBUIDw8IEdFTjhfVkNTMl9JUlFfU0hJRlQpKSB7CisJCQkJc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqcmluZzsKKworCQkJCS8qIFN0b3AgdGhlIGNvdW50ZXIgdG8g cHJldmVudCBmdXJ0aGVyIGludGVycnVwdHMgKi8KKwkJCQlyaW5nID0gJmRldl9wcml2LT5yaW5n W1ZDUzJdOworCQkJCUk5MTVfV1JJVEUoUklOR19DTlRSKHJpbmctPm1taW9fYmFzZSksCisJCQkJ CUdFTjhfVkNTX1dBVENIRE9HX0RJU0FCTEUpOworCisJCQkJcmluZy0+aGFuZ2NoZWNrLndhdGNo ZG9nX2NvdW50Kys7CisJCQkJaTkxNV9oYW5kbGVfZXJyb3IocmluZy0+ZGV2LCBpbnRlbF9yaW5n X2ZsYWcocmluZyksIHRydWUsIHRydWUsCisJCQkJCQkgICJNZWRpYSBlbmdpbmUgMiB3YXRjaGRv ZyB0aW1lZCBvdXQiKTsKKwkJCX0KIAkJfSBlbHNlCiAJCQlEUk1fRVJST1IoIlRoZSBtYXN0ZXIg Y29udHJvbCBpbnRlcnJ1cHQgbGllZCAoR1QxKSFcbiIpOwogCX0KQEAgLTI1NzMsNiArMjYwOSw3 IEBAIHN0YXRpYyB2b2lkIGk5MTVfcmVwb3J0X2FuZF9jbGVhcl9laXIoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKICAqCQkJb3IgaWYgb25lIG9mIHRoZSBjdXJyZW50IGVuZ2luZSByZXNldHMgZmFp bHMgd2UgZmFsbAogICoJCQliYWNrIHRvIGxlZ2FjeSBmdWxsIEdQVSByZXNldC4KICAqCisgKiBA d2F0Y2hkb2c6IAkJdHJ1ZSA9IEVuZ2luZSBoYW5nIGRldGVjdGVkIGJ5IGhhcmR3YXJlIHdhdGNo ZG9nLgogICogQHdlZGdlZDogCQl0cnVlID0gSGFuZyBkZXRlY3RlZCwgaW52b2tlIGhhbmcgcmVj b3ZlcnkuCiAgKiBAZm10LCAuLi46IAkJRXJyb3IgbWVzc2FnZSBkZXNjcmliaW5nIHJlYXNvbiBm b3IgZXJyb3IuCiAgKgpAQCAtMjU4NCw4ICsyNjIxLDggQEAgc3RhdGljIHZvaWQgaTkxNV9yZXBv cnRfYW5kX2NsZWFyX2VpcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogICogcmVzZXQgdGhlIGFz c29jaWF0ZWQgZW5naW5lLiBGYWlsaW5nIHRoYXQsIHRyeSB0byBmYWxsIGJhY2sgdG8gbGVnYWN5 CiAgKiBmdWxsIEdQVSByZXNldCByZWNvdmVyeSBtb2RlLgogICovCi12b2lkIGk5MTVfaGFuZGxl X2Vycm9yKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiBlbmdpbmVfbWFzaywgYm9vbCB3ZWRn ZWQsCi0JCSAgICAgICBjb25zdCBjaGFyICpmbXQsIC4uLikKK3ZvaWQgaTkxNV9oYW5kbGVfZXJy b3Ioc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIGVuZ2luZV9tYXNrLAorICAgICAgICAgICAg ICAgICAgICAgICBib29sIHdhdGNoZG9nLCBib29sIHdlZGdlZCwgY29uc3QgY2hhciAqZm10LCAu Li4pCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJp dmF0ZTsKIAl2YV9saXN0IGFyZ3M7CkBAIC0yNjE3LDIwICsyNjU0LDI3IEBAIHZvaWQgaTkxNV9o YW5kbGVfZXJyb3Ioc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIGVuZ2luZV9tYXNrLCBib29s IHdlZGdlZCwKIAkJCXUzMiBpOwogCiAJCQlmb3JfZWFjaF9yaW5nKGVuZ2luZSwgZGV2X3ByaXYs IGkpIHsKLQkJCQl1MzIgbm93LCBsYXN0X2VuZ2luZV9yZXNldF90aW1lZGlmZjsKIAogCQkJCWlm ICghKGludGVsX3JpbmdfZmxhZyhlbmdpbmUpICYgZW5naW5lX21hc2spKQogCQkJCQljb250aW51 ZTsKIAotCQkJCS8qIE1lYXN1cmUgdGhlIHRpbWUgc2luY2UgdGhpcyBlbmdpbmUgd2FzIGxhc3Qg cmVzZXQgKi8KLQkJCQlub3cgPSBnZXRfc2Vjb25kcygpOwotCQkJCWxhc3RfZW5naW5lX3Jlc2V0 X3RpbWVkaWZmID0KLQkJCQkJbm93IC0gZW5naW5lLT5oYW5nY2hlY2subGFzdF9lbmdpbmVfcmVz ZXRfdGltZTsKLQotCQkJCWZ1bGxfcmVzZXQgPSBsYXN0X2VuZ2luZV9yZXNldF90aW1lZGlmZiA8 Ci0JCQkJCWk5MTUuZ3B1X3Jlc2V0X3Byb21vdGlvbl90aW1lOwotCi0JCQkJZW5naW5lLT5oYW5n Y2hlY2subGFzdF9lbmdpbmVfcmVzZXRfdGltZSA9IG5vdzsKKwkJCQlpZiAoIXdhdGNoZG9nKSB7 CisJCQkJCS8qIE1lYXN1cmUgdGhlIHRpbWUgc2luY2UgdGhpcyBlbmdpbmUgd2FzIGxhc3QgcmVz ZXQgKi8KKwkJCQkJdTMyIG5vdyA9IGdldF9zZWNvbmRzKCk7CisJCQkJCXUzMiBsYXN0X2VuZ2lu ZV9yZXNldF90aW1lZGlmZiA9CisJCQkJCQlub3cgLSBlbmdpbmUtPmhhbmdjaGVjay5sYXN0X2Vu Z2luZV9yZXNldF90aW1lOworCisJCQkJCWZ1bGxfcmVzZXQgPSBsYXN0X2VuZ2luZV9yZXNldF90 aW1lZGlmZiA8CisJCQkJCQlpOTE1LmdwdV9yZXNldF9wcm9tb3Rpb25fdGltZTsKKworCQkJCQll bmdpbmUtPmhhbmdjaGVjay5sYXN0X2VuZ2luZV9yZXNldF90aW1lID0gbm93OworCQkJCX0gZWxz ZSB7CisJCQkJCS8qCisJCQkJCSAqIFdhdGNoZG9nIHRpbWVvdXQgYWx3YXlzIHJlc3VsdHMKKwkJ CQkJICogaW4gZW5naW5lIHJlc2V0LgorCQkJCQkgKi8KKwkJCQkJZnVsbF9yZXNldCA9IGZhbHNl OworCQkJCX0KIAogCQkJCS8qCiAJCQkJICogVGhpcyBlbmdpbmUgd2FzIG5vdCByZXNldCB0b28g cmVjZW50bHkgLSBnbyBhaGVhZApAQCAtMjY0MSwxMCArMjY4NSwxMSBAQCB2b2lkIGk5MTVfaGFu ZGxlX2Vycm9yKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiBlbmdpbmVfbWFzaywgYm9vbCB3 ZWRnZWQsCiAJCQkJICogVGhpcyBjYW4gc3RpbGwgYmUgb3ZlcnJpZGRlbiBieSBhIGdsb2JhbAog CQkJCSAqIHJlc2V0IGUuZy4gaWYgcGVyLWVuZ2luZSByZXNldCBmYWlscy4KIAkJCQkgKi8KLQkJ CQlpZiAoIWZ1bGxfcmVzZXQpCisJCQkJaWYgKHdhdGNoZG9nIHx8ICFmdWxsX3Jlc2V0KQogCQkJ CQlhdG9taWNfc2V0X21hc2soSTkxNV9FTkdJTkVfUkVTRVRfSU5fUFJPR1JFU1MsCiAJCQkJCQkm ZW5naW5lLT5oYW5nY2hlY2suZmxhZ3MpOwotCQkJCWVsc2UKKworCQkJCWlmIChmdWxsX3Jlc2V0 KQogCQkJCQlicmVhazsKIAogCQkJfSAvKiBmb3JfZWFjaF9yaW5nICovCkBAIC0yNjUyLDcgKzI2 OTcsNyBAQCB2b2lkIGk5MTVfaGFuZGxlX2Vycm9yKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUz MiBlbmdpbmVfbWFzaywgYm9vbCB3ZWRnZWQsCiAKIAkJaWYgKGZ1bGxfcmVzZXQpIHsKIAkJCWF0 b21pY19zZXRfbWFzayhJOTE1X1JFU0VUX0lOX1BST0dSRVNTX0ZMQUcsCi0JCQkJCSZkZXZfcHJp di0+Z3B1X2Vycm9yLnJlc2V0X2NvdW50ZXIpOworCQkJCSZkZXZfcHJpdi0+Z3B1X2Vycm9yLnJl c2V0X2NvdW50ZXIpOwogCQl9CiAKIAkJLyoKQEAgLTI5OTAsNyArMzAzNSw3IEBAIHJpbmdfc3R1 Y2soc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywgdTY0IGFjdGhkKQogCSAqLwogCXRtcCA9 IEk5MTVfUkVBRF9DVEwocmluZyk7CiAJaWYgKHRtcCAmIFJJTkdfV0FJVCkgewotCQlpOTE1X2hh bmRsZV9lcnJvcihkZXYsIGludGVsX3JpbmdfZmxhZyhyaW5nKSwgZmFsc2UsCisJCWk5MTVfaGFu ZGxlX2Vycm9yKGRldiwgaW50ZWxfcmluZ19mbGFnKHJpbmcpLCBmYWxzZSwgZmFsc2UsCiAJCQkJ ICAiS2lja2luZyBzdHVjayB3YWl0IG9uICVzIiwKIAkJCQkgIHJpbmctPm5hbWUpOwogCQlJOTE1 X1dSSVRFX0NUTChyaW5nLCB0bXApOwpAQCAtMzAwMiw3ICszMDQ3LDcgQEAgcmluZ19zdHVjayhz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCB1NjQgYWN0aGQpCiAJCWRlZmF1bHQ6CiAJCQly ZXR1cm4gSEFOR0NIRUNLX0hVTkc7CiAJCWNhc2UgMToKLQkJCWk5MTVfaGFuZGxlX2Vycm9yKGRl diwgaW50ZWxfcmluZ19mbGFnKHJpbmcpLCBmYWxzZSwKKwkJCWk5MTVfaGFuZGxlX2Vycm9yKGRl diwgaW50ZWxfcmluZ19mbGFnKHJpbmcpLCBmYWxzZSwgZmFsc2UsCiAJCQkJCSAgIktpY2tpbmcg c3R1Y2sgc2VtYXBob3JlIG9uICVzIiwKIAkJCQkJICByaW5nLT5uYW1lKTsKIAkJCUk5MTVfV1JJ VEVfQ1RMKHJpbmcsIHRtcCk7CkBAIC0zMTM1LDcgKzMxODAsNyBAQCBzdGF0aWMgdm9pZCBpOTE1 X2hhbmdjaGVja19lbGFwc2VkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAl9CiAKIAlpZiAo ZW5naW5lX21hc2spCi0JCWk5MTVfaGFuZGxlX2Vycm9yKGRldiwgZW5naW5lX21hc2ssIHRydWUs ICJSaW5nIGh1bmcgKDB4JTAyeCkiLCBlbmdpbmVfbWFzayk7CisJCWk5MTVfaGFuZGxlX2Vycm9y KGRldiwgZW5naW5lX21hc2ssIGZhbHNlLCB0cnVlLCAiUmluZyBodW5nICgweCUwMngpIiwgZW5n aW5lX21hc2spOwogCiAJaWYgKGJ1c3lfY291bnQpCiAJCS8qIFJlc2V0IHRpbWVyIGNhc2UgY2hp cCBoYW5ncyB3aXRob3V0IGFub3RoZXIgcmVxdWVzdApAQCAtMzU4OSwxMSArMzYzNCwxNCBAQCBz dGF0aWMgdm9pZCBnZW44X2d0X2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCiB7CiAJLyogVGhlc2UgYXJlIGludGVycnVwdHMgd2UnbGwgdG9nZ2xlIHdp dGggdGhlIHJpbmcgbWFzayByZWdpc3RlciAqLwogCXVpbnQzMl90IGd0X2ludGVycnVwdHNbXSA9 IHsKKwkJR1RfR0VOOF9SQ1NfV0FUQ0hET0dfSU5URVJSVVBUIDw8IEdFTjhfUkNTX0lSUV9TSElG VCB8CiAJCUdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCA8PCBHRU44X1JDU19JUlFfU0hJRlQgfAog CQkJR1RfQ09OVEVYVF9TV0lUQ0hfSU5URVJSVVBUIDw8IEdFTjhfUkNTX0lSUV9TSElGVCB8CiAJ CQlHVF9SRU5ERVJfTDNfUEFSSVRZX0VSUk9SX0lOVEVSUlVQVCB8CiAJCQlHVF9SRU5ERVJfVVNF Ul9JTlRFUlJVUFQgPDwgR0VOOF9CQ1NfSVJRX1NISUZUIHwKIAkJCUdUX0NPTlRFWFRfU1dJVENI X0lOVEVSUlVQVCA8PCBHRU44X0JDU19JUlFfU0hJRlQsCisJCUdUX0dFTjhfVkNTX1dBVENIRE9H X0lOVEVSUlVQVCA8PCBHRU44X1ZDUzFfSVJRX1NISUZUIHwKKwkJR1RfR0VOOF9WQ1NfV0FUQ0hE T0dfSU5URVJSVVBUIDw8IEdFTjhfVkNTMl9JUlFfU0hJRlQgfAogCQlHVF9SRU5ERVJfVVNFUl9J TlRFUlJVUFQgPDwgR0VOOF9WQ1MxX0lSUV9TSElGVCB8CiAJCQlHVF9DT05URVhUX1NXSVRDSF9J TlRFUlJVUFQgPDwgR0VOOF9WQ1MxX0lSUV9TSElGVCB8CiAJCQlHVF9SRU5ERVJfVVNFUl9JTlRF UlJVUFQgPDwgR0VOOF9WQ1MyX0lSUV9TSElGVCB8CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAppbmRl eCBhZjlmMGFkLi5kMmFkYjliIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3JlZy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKQEAgLTExODEsNiAr MTE4MSw4IEBAIGVudW0gc2tsX2Rpc3BfcG93ZXJfd2VsbHMgewogI2RlZmluZSBSSU5HX0hFQUQo YmFzZSkJCSgoYmFzZSkrMHgzNCkKICNkZWZpbmUgUklOR19TVEFSVChiYXNlKQkoKGJhc2UpKzB4 MzgpCiAjZGVmaW5lIFJJTkdfQ1RMKGJhc2UpCQkoKGJhc2UpKzB4M2MpCisjZGVmaW5lIFJJTkdf Q05UUihiYXNlKSAgICAgICAgKChiYXNlKSsweDE3OCkKKyNkZWZpbmUgUklOR19USFJFU0goYmFz ZSkgKChiYXNlKSsweDE3QykKICNkZWZpbmUgUklOR19TWU5DXzAoYmFzZSkJKChiYXNlKSsweDQw KQogI2RlZmluZSBSSU5HX1NZTkNfMShiYXNlKQkoKGJhc2UpKzB4NDQpCiAjZGVmaW5lIFJJTkdf U1lOQ18yKGJhc2UpCSgoYmFzZSkrMHg0OCkKQEAgLTE1ODQsNiArMTU4NiwxMSBAQCBlbnVtIHNr bF9kaXNwX3Bvd2VyX3dlbGxzIHsKICNkZWZpbmUgR1RfQlNEX1VTRVJfSU5URVJSVVBUCQkJKDEg PDwgMTIpCiAjZGVmaW5lIEdUX1JFTkRFUl9MM19QQVJJVFlfRVJST1JfSU5URVJSVVBUX1MxCSgx IDw8IDExKSAvKiBoc3crOyByc3ZkIG9uIHNuYiwgaXZiLCB2bHYgKi8KICNkZWZpbmUgR1RfQ09O VEVYVF9TV0lUQ0hfSU5URVJSVVBUCQkoMSA8PCAgOCkKKyNkZWZpbmUgR1RfR0VONl9SRU5ERVJf V0FUQ0hET0dfSU5URVJSVVBUCSgxIDw8ICA2KQorI2RlZmluZSBHVF9HRU44X1JDU19XQVRDSERP R19JTlRFUlJVUFQJCSgxIDw8ICA2KQorI2RlZmluZSAgIEdFTjZfUkNTX1dBVENIRE9HX0RJU0FC TEUJCTEKKyNkZWZpbmUgR1RfR0VOOF9WQ1NfV0FUQ0hET0dfSU5URVJSVVBUCQkoMSA8PCAgNikK KyNkZWZpbmUgICBHRU44X1ZDU19XQVRDSERPR19ESVNBQkxFCQkweEZGRkZGRkZGCiAjZGVmaW5l IEdUX1JFTkRFUl9MM19QQVJJVFlfRVJST1JfSU5URVJSVVBUCSgxIDw8ICA1KSAvKiAhc25iICov CiAjZGVmaW5lIEdUX1JFTkRFUl9QSVBFQ1RMX05PVElGWV9JTlRFUlJVUFQJKDEgPDwgIDQpCiAj ZGVmaW5lIEdUX1JFTkRFUl9DU19NQVNURVJfRVJST1JfSU5URVJSVVBUCSgxIDw8ICAzKQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9scmMuYwppbmRleCA0YTE5Mzg1Li5mZjlkMjdjYiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbHJjLmMKQEAgLTEwMDUsNiArMTAwNSw3OCBAQCBzdGF0aWMgaW50IGludGVsX2xv Z2ljYWxfcmluZ19iZWdpbihzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiwKIAlyZXR1 cm4gMDsKIH0KIAorc3RhdGljIGludAorZ2VuOF9yaW5nX3N0YXJ0X3dhdGNoZG9nKHN0cnVjdCBp bnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmLCBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4KQorewor CWludCByZXQ7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJpbmdidWYtPnJpbmc7 CisKKwlyZXQgPSBpbnRlbF9sb2dpY2FsX3JpbmdfYmVnaW4ocmluZ2J1ZiwgY3R4LCAxMCk7CisJ aWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCS8qCisJICogaTkxNV9yZWcuaCBpbmNsdWRlcyBh IHdhcm5pbmcgdG8gcGxhY2UgYSBNSV9OT09QCisJICogYmVmb3JlIGEgTUlfTE9BRF9SRUdJU1RF Ul9JTU0KKwkgKi8KKwlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBNSV9OT09QKTsK KwlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBNSV9OT09QKTsKKworCS8qIFNldCBj b3VudGVyIHBlcmlvZCAqLworCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIE1JX0xP QURfUkVHSVNURVJfSU1NKDEpKTsKKwlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBS SU5HX1RIUkVTSChyaW5nLT5tbWlvX2Jhc2UpKTsKKwlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChy aW5nYnVmLCByaW5nLT53YXRjaGRvZ190aHJlc2hvbGQpOworCWludGVsX2xvZ2ljYWxfcmluZ19l bWl0KHJpbmdidWYsIE1JX05PT1ApOworCisJLyogU3RhcnQgY291bnRlciAqLworCWludGVsX2xv Z2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIE1JX0xPQURfUkVHSVNURVJfSU1NKDEpKTsKKwlpbnRl bF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBSSU5HX0NOVFIocmluZy0+bW1pb19iYXNlKSk7 CisJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgSTkxNV9XQVRDSERPR19FTkFCTEUp OworCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIE1JX05PT1ApOworCWludGVsX2xv Z2ljYWxfcmluZ19hZHZhbmNlKHJpbmdidWYpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBp bnQKK2dlbjhfcmluZ19zdG9wX3dhdGNoZG9nKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5n YnVmLCBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4KQoreworCWludCByZXQ7CisJc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZyA9IHJpbmdidWYtPnJpbmc7CisKKwlyZXQgPSBpbnRlbF9sb2dp Y2FsX3JpbmdfYmVnaW4ocmluZ2J1ZiwgY3R4LCA2KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0 OworCisJLyoKKwkgKiBpOTE1X3JlZy5oIGluY2x1ZGVzIGEgd2FybmluZyB0byBwbGFjZSBhIE1J X05PT1AKKwkgKiBiZWZvcmUgYSBNSV9MT0FEX1JFR0lTVEVSX0lNTQorCSAqLworCWludGVsX2xv Z2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIE1JX05PT1ApOworCWludGVsX2xvZ2ljYWxfcmluZ19l bWl0KHJpbmdidWYsIE1JX05PT1ApOworCisJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1 ZiwgTUlfTE9BRF9SRUdJU1RFUl9JTU0oMSkpOworCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJp bmdidWYsIFJJTkdfQ05UUihyaW5nLT5tbWlvX2Jhc2UpKTsKKworCXN3aXRjaCAocmluZy0+aWQp IHsKKwlkZWZhdWx0OgorCQlXQVJOKDEsICIlcyBkb2VzIG5vdCBzdXBwb3J0IHdhdGNoZG9nIHRp bWVvdXQhICIgXAorCQkJIkRlZmF1bHRpbmcgdG8gcmVuZGVyIGVuZ2luZS5cbiIsIHJpbmctPm5h bWUpOworCWNhc2UgUkNTOgorCQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBHRU42 X1JDU19XQVRDSERPR19ESVNBQkxFKTsKKwkJYnJlYWs7CisJY2FzZSBWQ1M6CisJY2FzZSBWQ1My OgorCQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBHRU44X1ZDU19XQVRDSERPR19E SVNBQkxFKTsKKwkJYnJlYWs7CisJfQorCisJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1 ZiwgTUlfTk9PUCk7CisJaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2UocmluZ2J1Zik7CisKKwly ZXR1cm4gMDsKK30KKwogLyoqCiAgKiBleGVjbGlzdHNfc3VibWlzc2lvbigpIC0gc3VibWl0IGEg YmF0Y2hidWZmZXIgZm9yIGV4ZWN1dGlvbiwgRXhlY2xpc3RzIHN0eWxlCiAgKiBAZGV2OiBEUk0g ZGV2aWNlLgpAQCAtMTAzNSw2ICsxMTA3LDcgQEAgaW50IGludGVsX2V4ZWNsaXN0c19zdWJtaXNz aW9uKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKIAlpbnQg aW5zdHBfbW9kZTsKIAl1MzIgaW5zdHBfbWFzazsKIAlpbnQgcmV0OworCWJvb2wgd2F0Y2hkb2df cnVubmluZyA9IGZhbHNlOwogCiAJaW5zdHBfbW9kZSA9IGFyZ3MtPmZsYWdzICYgSTkxNV9FWEVD X0NPTlNUQU5UU19NQVNLOwogCWluc3RwX21hc2sgPSBJOTE1X0VYRUNfQ09OU1RBTlRTX01BU0s7 CkBAIC0xMDg2LDYgKzExNTksMTggQEAgaW50IGludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKIAlpZiAocmV0KQog CQlyZXR1cm4gcmV0OwogCisJLyogU3RhcnQgd2F0Y2hkb2cgdGltZXIgKi8KKwlpZiAoYXJncy0+ ZmxhZ3MgJiBJOTE1X0VYRUNfRU5BQkxFX1dBVENIRE9HKSB7CisJCWlmICghaW50ZWxfcmluZ19z dXBwb3J0c193YXRjaGRvZyhyaW5nKSkKKwkJCXJldHVybiAtRUlOVkFMOworCisJCXJldCA9IGdl bjhfcmluZ19zdGFydF93YXRjaGRvZyhyaW5nYnVmLCBjdHgpOworCQlpZiAocmV0KQorCQkJcmV0 dXJuIHJldDsKKworCQl3YXRjaGRvZ19ydW5uaW5nID0gdHJ1ZTsKKwl9CisKIAlpZiAocmluZyA9 PSAmZGV2X3ByaXYtPnJpbmdbUkNTXSAmJgogCSAgICBpbnN0cF9tb2RlICE9IGRldl9wcml2LT5y ZWxhdGl2ZV9jb25zdGFudHNfbW9kZSkgewogCQlyZXQgPSBpbnRlbF9sb2dpY2FsX3JpbmdfYmVn aW4ocmluZ2J1ZiwgY3R4LCA0KTsKQEAgLTExMDcsNiArMTE5MiwxMyBAQCBpbnQgaW50ZWxfZXhl Y2xpc3RzX3N1Ym1pc3Npb24oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxl ICpmaWxlLAogCiAJdHJhY2VfaTkxNV9nZW1fcmluZ19kaXNwYXRjaChpbnRlbF9yaW5nX2dldF9y ZXF1ZXN0KHJpbmcpLCBkaXNwYXRjaF9mbGFncyk7CiAKKwkvKiBDYW5jZWwgd2F0Y2hkb2cgdGlt ZXIgKi8KKwlpZiAod2F0Y2hkb2dfcnVubmluZykgeworCQlyZXQgPSBnZW44X3Jpbmdfc3RvcF93 YXRjaGRvZyhyaW5nYnVmLCBjdHgpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKwl9CisK IAlpOTE1X2dlbV9leGVjYnVmZmVyX21vdmVfdG9fYWN0aXZlKHZtYXMsIHJpbmcpOwogCWk5MTVf Z2VtX2V4ZWNidWZmZXJfcmV0aXJlX2NvbW1hbmRzKGRldiwgZmlsZSwgcmluZywgYmF0Y2hfb2Jq KTsKIApAQCAtMTc3NSw2ICsxODY3LDkgQEAgc3RhdGljIGludCBsb2dpY2FsX3JlbmRlcl9yaW5n X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlpZiAoSEFTX0wzX0RQRihkZXYpKQogCQly aW5nLT5pcnFfa2VlcF9tYXNrIHw9IEdUX1JFTkRFUl9MM19QQVJJVFlfRVJST1JfSU5URVJSVVBU OwogCisJcmluZy0+aXJxX2tlZXBfbWFzayB8PQorCQkoR1RfR0VOOF9SQ1NfV0FUQ0hET0dfSU5U RVJSVVBUIDw8IEdFTjhfUkNTX0lSUV9TSElGVCk7CisKIAlpZiAoSU5URUxfSU5GTyhkZXYpLT5n ZW4gPj0gOSkKIAkJcmluZy0+aW5pdF9odyA9IGdlbjlfaW5pdF9yZW5kZXJfcmluZzsKIAllbHNl CkBAIC0xODEzLDYgKzE5MDgsOCBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfYnNkX3JpbmdfaW5pdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQgPDwgR0VO OF9WQ1MxX0lSUV9TSElGVDsKIAlyaW5nLT5pcnFfa2VlcF9tYXNrID0KIAkJR1RfQ09OVEVYVF9T V0lUQ0hfSU5URVJSVVBUIDw8IEdFTjhfVkNTMV9JUlFfU0hJRlQ7CisJcmluZy0+aXJxX2tlZXBf bWFzayB8PQorCQkoR1RfR0VOOF9WQ1NfV0FUQ0hET0dfSU5URVJSVVBUIDw8IEdFTjhfVkNTMV9J UlFfU0hJRlQpOwogCiAJcmluZy0+aW5pdF9odyA9IGdlbjhfaW5pdF9jb21tb25fcmluZzsKIAly aW5nLT5nZXRfc2Vxbm8gPSBnZW44X2dldF9zZXFubzsKQEAgLTE4NDIsNiArMTkzOSw4IEBAIHN0 YXRpYyBpbnQgbG9naWNhbF9ic2QyX3JpbmdfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQog CQlHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQgPDwgR0VOOF9WQ1MyX0lSUV9TSElGVDsKIAlyaW5n LT5pcnFfa2VlcF9tYXNrID0KIAkJR1RfQ09OVEVYVF9TV0lUQ0hfSU5URVJSVVBUIDw8IEdFTjhf VkNTMl9JUlFfU0hJRlQ7CisJcmluZy0+aXJxX2tlZXBfbWFzayB8PQorCQkoR1RfR0VOOF9WQ1Nf V0FUQ0hET0dfSU5URVJSVVBUIDw8IEdFTjhfVkNTMl9JUlFfU0hJRlQpOwogCiAJcmluZy0+aW5p dF9odyA9IGdlbjhfaW5pdF9jb21tb25fcmluZzsKIAlyaW5nLT5nZXRfc2Vxbm8gPSBnZW44X2dl dF9zZXFubzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAppbmRleCAzNTM2 MGE0Li45MDU4Nzg5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5n YnVmZmVyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCkBA IC0zMCw2ICszMCw4IEBAIHN0cnVjdCAgaW50ZWxfaHdfc3RhdHVzX3BhZ2UgewogCXN0cnVjdAkJ ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwogfTsKIAorI2RlZmluZSBJOTE1X1dBVENIRE9HX0VO QUJMRSAwCisKICNkZWZpbmUgSTkxNV9SRUFEX1RBSUwocmluZykgSTkxNV9SRUFEKFJJTkdfVEFJ TCgocmluZyktPm1taW9fYmFzZSkpCiAjZGVmaW5lIEk5MTVfV1JJVEVfVEFJTChyaW5nLCB2YWwp IEk5MTVfV1JJVEUoUklOR19UQUlMKChyaW5nKS0+bW1pb19iYXNlKSwgdmFsKQogCkBAIC0xMzYs NiArMTM4LDkgQEAgc3RydWN0IGludGVsX3JpbmdfaGFuZ2NoZWNrIHsKIAogCS8qIE51bWJlciBv ZiBURFIgaGFuZyBkZXRlY3Rpb25zICovCiAJdTMyIHRkcl9jb3VudDsKKworCS8qIE51bWJlciBv ZiB3YXRjaGRvZyBoYW5nIGRldGVjdGlvbnMgZm9yIHRoaXMgcmluZyAqLworCXUzMiB3YXRjaGRv Z19jb3VudDsKIH07CiAKIHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyIHsKQEAgLTMzOCw2ICszNDMs MTIgQEAgc3RydWN0ICBpbnRlbF9lbmdpbmVfY3MgewogCS8qIFNhdmVkIGhlYWQgdmFsdWUgdG8g YmUgcmVzdG9yZWQgYWZ0ZXIgcmVzZXQgKi8KIAl1MzIgc2F2ZWRfaGVhZDsKIAorCS8qCisJICog V2F0Y2hkb2cgdGltZXIgdGhyZXNob2xkIHZhbHVlcworCSAqIG9ubHkgUkNTLCBWQ1MsIFZDUzIg cmluZ3MgaGF2ZSB3YXRjaGRvZyB0aW1lb3V0IHN1cHBvcnQKKwkgKi8KKwl1aW50MzJfdCB3YXRj aGRvZ190aHJlc2hvbGQ7CisKIAlzdHJ1Y3QgewogCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqOwogCQl1MzIgZ3R0X29mZnNldDsKQEAgLTQ4NCw2ICs0OTUsMjYgQEAgaW50IGludGVs X3Jpbmdfc2F2ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogaW50IGludGVsX3Jpbmdf cmVzdG9yZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCQlzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcSk7CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF9yaW5nX3N1cHBv cnRzX3dhdGNoZG9nKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCit7CisJYm9vbCByZXQg PSBmYWxzZTsKKworCWlmIChXQVJOX09OKCFyaW5nKSkKKwkJZ290byBleGl0OworCisJcmV0ID0g KAlyaW5nLT5pZCA9PSBSQ1MgfHwKKwkJcmluZy0+aWQgPT0gVkNTIHx8CisJCXJpbmctPmlkID09 IFZDUzIpOworCisJaWYgKCFyZXQpCisJCURSTV9FUlJPUigiJXMgZG9lcyBub3Qgc3VwcG9ydCB3 YXRjaGRvZyB0aW1lb3V0IVxuIiwgcmluZy0+bmFtZSk7CisKK2V4aXQ6CisJcmV0dXJuIHJldDsK K30KK2ludCBpbnRlbF9yaW5nX3N0YXJ0X3dhdGNoZG9nKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KnJpbmcpOworaW50IGludGVsX3Jpbmdfc3RvcF93YXRjaGRvZyhzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpyaW5nKTsKKwogaW50IF9fbXVzdF9jaGVjayBpbnRlbF9yaW5nX2lkbGUoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZyk7CiB2b2lkIGludGVsX3JpbmdfaW5pdF9zZXFubyhzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICpyaW5nLCB1MzIgc2Vxbm8pOwogaW50IGludGVsX3JpbmdfZmx1c2hf YWxsX2NhY2hlcyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaApp bmRleCA0ODUxZDY2Li5mOGFmN2QyIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVf ZHJtLmgKKysrIGIvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCkBAIC03NjAsNyArNzYwLDEw IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgewogI2RlZmluZSBJOTE1X0VYRUNf QlNEX1JJTkcxCQkoMTw8MTMpCiAjZGVmaW5lIEk5MTVfRVhFQ19CU0RfUklORzIJCSgyPDwxMykK IAotI2RlZmluZSBfX0k5MTVfRVhFQ19VTktOT1dOX0ZMQUdTIC0oMTw8MTUpCisvKiBFbmFibGUg d2F0Y2hkb2cgdGltZXIgZm9yIHRoaXMgYmF0Y2ggYnVmZmVyICovCisjZGVmaW5lIEk5MTVfRVhF Q19FTkFCTEVfV0FUQ0hET0cgICAgICAgKDE8PDE1KQorCisjZGVmaW5lIF9fSTkxNV9FWEVDX1VO S05PV05fRkxBR1MgLSgxPDwxNikKIAogI2RlZmluZSBJOTE1X0VYRUNfQ09OVEVYVF9JRF9NQVNL CSgweGZmZmZmZmZmKQogI2RlZmluZSBpOTE1X2V4ZWNidWZmZXIyX3NldF9jb250ZXh0X2lkKGVi MiwgY29udGV4dCkgXAotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cg==