From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michel Thierry Subject: [PATCH v9 19/21] drm/i915: Watchdog timeout: DRM kernel interface to set the timeout Date: Thu, 15 Jun 2017 13:18:26 -0700 Message-ID: <20170615201828.23144-20-michel.thierry@intel.com> References: <20170615201828.23144-1-michel.thierry@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 783D26E815 for ; Thu, 15 Jun 2017 20:18:33 +0000 (UTC) In-Reply-To: <20170615201828.23144-1-michel.thierry@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 List-Id: intel-gfx@lists.freedesktop.org RmluYWwgZW5hYmxlbWVudCBwYXRjaCBmb3IgR1BVIGhhbmcgZGV0ZWN0aW9uIHVzaW5nIHdhdGNo ZG9nIHRpbWVvdXQuClVzaW5nIHRoZSBnZW1fY29udGV4dF9zZXRwYXJhbSBpb2N0bCwgdXNlcnMg Y2FuIHNwZWNpZnkgdGhlIGRlc2lyZWQKdGltZW91dCB2YWx1ZSBpbiBtaWNyb3NlY29uZHMsIGFu ZCB0aGUgZHJpdmVyIHdpbGwgZG8gdGhlIGNvbnZlcnNpb24gdG8KJ3RpbWVzdGFtcHMnLgoKVGhl IHJlY29tbWVuZGVkIGRlZmF1bHQgd2F0Y2hkb2cgdGhyZXNob2xkIGZvciB2aWRlbyBlbmdpbmVz IGlzIDYwMDAwIHVzLApzaW5jZSB0aGlzIGhhcyBiZWVuIF9lbXBpcmljYWxseSBkZXRlcm1pbmVk XyB0byBiZSBhIGdvb2QgY29tcHJvbWlzZSBmb3IKbG93LWxhdGVuY3kgcmVxdWlyZW1lbnRzIGFu ZCBsb3cgcmF0ZSBvZiBmYWxzZSBwb3NpdGl2ZXMuIFRoZSBkZWZhdWx0CnJlZ2lzdGVyIHZhbHVl IGlzIH4xMDYwMDB1cyBhbmQgdGhlIHRoZW9yZXRpY2FsIG1heCB2YWx1ZSAoYWxsIDFzKSBpcwoz NTMgc2Vjb25kcy4KCk5vdGUsIFVBQkkgZW5naW5lIGlkcyBhbmQgaTkxNSBlbmdpbmUgaWRzIGFy ZSBkaWZmZXJlbnQsIGFuZCB0aGlzIHBhdGNoCnVzZXMgdGhlIGk5MTUgb25lcy4gU29tZSBraW5k IG9mIG1hcHBpbmcgdGFibGUgWzFdIGlzIHJlcXVpcmVkIGlmIHdlCmRlY2lkZSB0byB1c2UgdGhl IFVBQkkgZW5naW5lIGlkcy4KClsxXSBodHRwOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9w YXRjaC9tc2dpZC8yMDE3MDMyOTEzNTgzMS4zMDI1NC0yLWNocmlzQGNocmlzLXdpbHNvbi5jby51 awoKdjI6IEZpeGVkIGdldCBhcGkgdG8gcmV0dXJuIHZhbHVlcyBpbiBtaWNyb3NlY29uZHMuIFRo cmVzaG9sZCB1cGRhdGVkIHRvCmJlIHBlciBjb250ZXh0IGVuZ2luZS4gQ2hlY2sgZm9yIHUzMiBv dmVyZmxvdy4gQ2FwdHVyZSBjdHggdGhyZXNob2xkCnZhbHVlIGluIGVycm9yIHN0YXRlLgoKdjM6 IEFkZCBhIHdheSB0byBnZXQgYXJyYXkgc2l6ZSwgc2hvcnQtY3V0IHRvIGRpc2FibGUgYWxsIHRo cmVzaG9sZHMsCnJldHVybiBFRkFVTFQgLyBFSU5WQUwgYXMgbmVlZGVkLiBNb3ZlIHRoZSBjYXB0 dXJlIG9mIHRoZSB0aHJlc2hvbGQKdmFsdWUgaW4gdGhlIGVycm9yIHN0YXRlIGludG8gYSBuZXcg cGF0Y2guIEJYVCBoYXMgYSBkaWZmZXJlbnQKdGltZXN0YW1wIGJhc2UgKGJlY2F1c2Ugd2h5IG5v dD8pLgoKdjQ6IENoZWNraW5nIGlmIHdhdGNoZG9nIGlzIGF2YWlsYWJsZSBzaG91bGQgYmUgdGhl IGZpcnN0IHRoaW5nIHRvCmRvLCBpbnN0ZWFkIG9mIGdpdmluZyBmYWxzZSBob3BlcyB0byBhYmkg dXNlcnM7IHJlbW92ZSB1bm5lY2Vzc2FyeSAmIGluCnNldF93YXRjaGRvZzsgaWdub3JlIGFyZ3Mt PnNpemUgaW4gZ2V0cGFyYW0uCgp2NTogR0VOOS1MUCBwbGF0Zm9ybXMgaGF2ZSBhIGRpZmZlcmVu dCBjcnlzdGFsIGNsb2NrIGZyZXF1ZW5jeSwgdXNlIHRoZQpyaWdodCB0aW1lc3RhbXAgYmFzZSBm b3IgdGhlbSAobWFnaWMgOC1iYWxsIHByZWRpY3RzIHRoaXMgd2lsbCBjaGFuZ2UKYWdhaW4gbGF0 ZXIgb24sIHNvIGZ1dHVyZS1wcm9vZiBpdCkuIChEYW5pZWxlKQoKQ2M6IERhbmllbGUgQ2VyYW9s byBTcHVyaW8gPGRhbmllbGUuY2VyYW9sb3NwdXJpb0BpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6 IFRvbWFzIEVsZiA8dG9tYXMuZWxmQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogQXJ1biBTaWx1 dmVyeSA8YXJ1bi5zaWx1dmVyeUBsaW51eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IE1pY2hl bCBUaGllcnJ5IDxtaWNoZWwudGhpZXJyeUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaCAgICAgICAgIHwgNTYgKysrKysrKysrKysrKysrKysrKwogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jIHwgOTUgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAg fCAgNSArLQogaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oICAgICAgICAgICAgIHwgIDEgKwog NCBmaWxlcyBjaGFuZ2VkLCAxNTUgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAppbmRleCA5NGM3ZDg1NjE3NGMuLjhkOWJmNGMzMDNiNiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0yMTk2LDYgKzIxOTYsOSBAQCBzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSB7CiAJc3RydWN0IGRybV9pOTE1X2ZlbmNlX3JlZyBmZW5jZV9yZWdzW0k5MTVfTUFY X05VTV9GRU5DRVNdOyAvKiBhc3N1bWUgOTY1ICovCiAJaW50IG51bV9mZW5jZV9yZWdzOyAvKiA4 IG9uIHByZS05NjUsIDE2IG90aGVyd2lzZSAqLwogCisJLyogQ29tbWFuZCBzdHJlYW0gdGltZXN0 YW1wIGJhc2UgLSBoZWxwcyBkZWZpbmUgd2F0Y2hkb2cgdGhyZXNob2xkICovCisJdTMyIGNzX3Rp bWVzdGFtcF9iYXNlOworCiAJdW5zaWduZWQgaW50IGZzYl9mcmVxLCBtZW1fZnJlcSwgaXNfZGRy MzsKIAl1bnNpZ25lZCBpbnQgc2tsX3ByZWZlcnJlZF92Y29fZnJlcTsKIAl1bnNpZ25lZCBpbnQg bWF4X2NkY2xrX2ZyZXE7CkBAIC0zNjA1LDYgKzM2MDgsNTkgQEAgaTkxNV9nZW1fY29udGV4dF9s b29rdXBfdGltZWxpbmUoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAlyZXR1cm4gJnZt LT50aW1lbGluZS5lbmdpbmVbZW5naW5lLT5pZF07CiB9CiAKKy8qCisgKiBCRFcsIENIViAmIFNL TCsgVGltZXN0YW1wIHRpbWVyIHJlc29sdXRpb24gPSAwLjA4MCB1U2VjLAorICogb3IgMTI1MDAw MDAgY291bnRzIHBlciBzZWNvbmQsIG9yIH4xMiBjb3VudHMgcGVyIG1pY3Jvc2Vjb25kLgorICoK KyAqIEJ1dCBCWFQvR0xLIFRpbWVzdGFtcCB0aW1lciByZXNvbHV0aW9uIGlzIGRpZmZlcmVudCwg MC4wNTIgdVNlYywKKyAqIG9yIDE5MjAwMDAwIGNvdW50cyBwZXIgc2Vjb25kLCBvciB+MTkgY291 bnRzIHBlciBtaWNyb3NlY29uZC4KKyAqCisgKiBGdXR1cmUtcHJvb2ZpbmcsIHNvbWUgZGF5IGl0 IHdvbid0IGJlIGFzIHNpbXBsZSBhcyBqdXN0IEdFTiAmIElTX0xQLgorICovCisjZGVmaW5lIEdF TjhfVElNRVNUQU1QX0NOVFNfUEVSX1VTRUMgMTIKKyNkZWZpbmUgR0VOOV9MUF9USU1FU1RBTVBf Q05UU19QRVJfVVNFQyAxOQorc3RhdGljIGlubGluZSB1MzIgY3NfdGltZXN0YW1wX2luX3VzKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwl1MzIgY3NfdGltZXN0YW1wX2Jh c2UgPSBkZXZfcHJpdi0+Y3NfdGltZXN0YW1wX2Jhc2U7CisKKwlpZiAoY3NfdGltZXN0YW1wX2Jh c2UpCisJCXJldHVybiBjc190aW1lc3RhbXBfYmFzZTsKKworCXN3aXRjaCAoSU5URUxfR0VOKGRl dl9wcml2KSkgeworCWRlZmF1bHQ6CisJCU1JU1NJTkdfQ0FTRShJTlRFTF9HRU4oZGV2X3ByaXYp KTsKKwkJLyogZmFsbCB0aHJvdWdoICovCisJY2FzZSA5OgorCQljc190aW1lc3RhbXBfYmFzZSA9 IElTX0dFTjlfTFAoZGV2X3ByaXYpID8KKwkJCQkJR0VOOV9MUF9USU1FU1RBTVBfQ05UU19QRVJf VVNFQyA6CisJCQkJCUdFTjhfVElNRVNUQU1QX0NOVFNfUEVSX1VTRUM7CisJCWJyZWFrOworCWNh c2UgODoKKwkJY3NfdGltZXN0YW1wX2Jhc2UgPSBHRU44X1RJTUVTVEFNUF9DTlRTX1BFUl9VU0VD OworCQlicmVhazsKKwl9CisKKwlkZXZfcHJpdi0+Y3NfdGltZXN0YW1wX2Jhc2UgPSBjc190aW1l c3RhbXBfYmFzZTsKKwlyZXR1cm4gY3NfdGltZXN0YW1wX2Jhc2U7Cit9CisKK3N0YXRpYyBpbmxp bmUgdTMyCit3YXRjaGRvZ190b191cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs IHUzMiB2YWx1ZV9pbl9jbG9ja19jb3VudHMpCit7CisJcmV0dXJuIHZhbHVlX2luX2Nsb2NrX2Nv dW50cyAvIGNzX3RpbWVzdGFtcF9pbl91cyhkZXZfcHJpdik7Cit9CisKK3N0YXRpYyBpbmxpbmUg dTMyCit3YXRjaGRvZ190b19jbG9ja19jb3VudHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LCB1NjQgdmFsdWVfaW5fdXMpCit7CisJdTY0IHRocmVzaG9sZCA9IHZhbHVlX2luX3Vz ICogY3NfdGltZXN0YW1wX2luX3VzKGRldl9wcml2KTsKKworCWlmIChvdmVyZmxvd3NfdHlwZSh0 aHJlc2hvbGQsIHUzMikpCisJCXJldHVybiAtRUlOVkFMOworCisJcmV0dXJuIHRocmVzaG9sZDsK K30KKwogaW50IGk5MTVfcGVyZl9vcGVuX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZv aWQgKmRhdGEsCiAJCQkgc3RydWN0IGRybV9maWxlICpmaWxlKTsKIHZvaWQgaTkxNV9vYV9pbml0 X3JlZ19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKaW5kZXggMDQ3NjZmZGNjNGRjLi5kMDI0NjBhN2FkNTgg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKQEAgLTMzNyw2ICszMzcs OTUgQEAgaTkxNV9nZW1fY29udGV4dF9jcmVhdGVfZ3Z0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp CiAJcmV0dXJuIGN0eDsKIH0KIAorLyogUmV0dXJuIHRoZSB0aW1lciBjb3VudCB0aHJlc2hvbGQg aW4gbWljcm9zZWNvbmRzLiAqLworaW50IGk5MTVfZ2VtX2NvbnRleHRfZ2V0X3dhdGNoZG9nKHN0 cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCisJCQkJICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2Nv bnRleHRfcGFyYW0gKmFyZ3MpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gY3R4LT5pOTE1OworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKKwllbnVtIGlu dGVsX2VuZ2luZV9pZCBpZDsKKwl1MzIgdGhyZXNob2xkX2luX3VzW0k5MTVfTlVNX0VOR0lORVNd OworCisJaWYgKCFkZXZfcHJpdi0+ZW5naW5lW1ZDU10tPmVtaXRfc3RhcnRfd2F0Y2hkb2cpCisJ CXJldHVybiAtRU5PREVWOworCisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGlk KSB7CisJCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSA9ICZjdHgtPmVuZ2luZVtpZF07CisKKwkJ dGhyZXNob2xkX2luX3VzW2lkXSA9IHdhdGNoZG9nX3RvX3VzKGRldl9wcml2LAorCQkJCQkJICAg ICBjZS0+d2F0Y2hkb2dfdGhyZXNob2xkKTsKKwl9CisKKwltdXRleF91bmxvY2soJmRldl9wcml2 LT5kcm0uc3RydWN0X211dGV4KTsKKwlpZiAoX19jb3B5X3RvX3VzZXIodTY0X3RvX3VzZXJfcHRy KGFyZ3MtPnZhbHVlKSwKKwkJCSAgICZ0aHJlc2hvbGRfaW5fdXMsCisJCQkgICBzaXplb2YodGhy ZXNob2xkX2luX3VzKSkpIHsKKwkJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0 ZXgpOworCQlyZXR1cm4gLUVGQVVMVDsKKwl9CisJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRybS5z dHJ1Y3RfbXV0ZXgpOworCisJYXJncy0+c2l6ZSA9IHNpemVvZih0aHJlc2hvbGRfaW5fdXMpOwor CisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBCYXNlZCBvbiB0aW1lIG91dCB2YWx1ZSBpbiBtaWNy b3NlY29uZHMgKHVzKSBjYWxjdWxhdGUKKyAqIHRpbWVyIGNvdW50IHRocmVzaG9sZHMgbmVlZGVk IGJhc2VkIG9uIGNvcmUgZnJlcXVlbmN5LgorICogV2F0Y2hkb2cgY2FuIGJlIGRpc2FibGVkIGJ5 IHNldHRpbmcgaXQgdG8gMC4KKyAqLworaW50IGk5MTVfZ2VtX2NvbnRleHRfc2V0X3dhdGNoZG9n KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCisJCQkJICBzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X2NvbnRleHRfcGFyYW0gKmFyZ3MpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gY3R4LT5pOTE1OworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKKwllbnVt IGludGVsX2VuZ2luZV9pZCBpZDsKKwl1MzIgdGhyZXNob2xkW0k5MTVfTlVNX0VOR0lORVNdOwor CisJaWYgKCFkZXZfcHJpdi0+ZW5naW5lW1ZDU10tPmVtaXRfc3RhcnRfd2F0Y2hkb2cpCisJCXJl dHVybiAtRU5PREVWOworCisJbWVtc2V0KHRocmVzaG9sZCwgMCwgc2l6ZW9mKHRocmVzaG9sZCkp OworCisJLyogc2hvcnRjdXQgdG8gZGlzYWJsZSBpbiBhbGwgZW5naW5lcyAqLworCWlmIChhcmdz LT5zaXplID09IDApCisJCWdvdG8gc2V0X3dhdGNoZG9nOworCisJaWYgKGFyZ3MtPnNpemUgPCBz aXplb2YodGhyZXNob2xkKSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisKKwltdXRleF91bmxvY2soJmRl dl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKKwlpZiAoY29weV9mcm9tX3VzZXIodGhyZXNob2xk LAorCQkJICAgdTY0X3RvX3VzZXJfcHRyKGFyZ3MtPnZhbHVlKSwKKwkJCSAgIHNpemVvZih0aHJl c2hvbGQpKSkgeworCQltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7CisJ CXJldHVybiAtRUZBVUxUOworCX0KKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9t dXRleCk7CisKKwkvKiBub3Qgc3VwcG9ydGVkIGluIGJsaXR0ZXIgZW5naW5lICovCisJaWYgKHRo cmVzaG9sZFtCQ1NdICE9IDApCisJCXJldHVybiAtRUlOVkFMOworCisJZm9yX2VhY2hfZW5naW5l KGVuZ2luZSwgZGV2X3ByaXYsIGlkKSB7CisJCXRocmVzaG9sZFtpZF0gPSB3YXRjaGRvZ190b19j bG9ja19jb3VudHMoZGV2X3ByaXYsCisJCQkJCQkJIHRocmVzaG9sZFtpZF0pOworCisJCWlmICh0 aHJlc2hvbGRbaWRdID09IC1FSU5WQUwpCisJCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKK3NldF93 YXRjaGRvZzoKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaWQpIHsKKwkJc3Ry dWN0IGludGVsX2NvbnRleHQgKmNlID0gJmN0eC0+ZW5naW5lW2lkXTsKKworCQljZS0+d2F0Y2hk b2dfdGhyZXNob2xkID0gdGhyZXNob2xkW2lkXTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKwogaW50 IGk5MTVfZ2VtX2NvbnRleHRfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiB7CiAJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eDsKQEAgLTk1Nyw2ICsxMDQ2LDkgQEAg aW50IGk5MTVfZ2VtX2NvbnRleHRfZ2V0cGFyYW1faW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdm9pZCAqZGF0YSwKIAljYXNlIEk5MTVfQ09OVEVYVF9QQVJBTV9CQU5OQUJMRToKIAkJYXJn cy0+dmFsdWUgPSBpOTE1X2dlbV9jb250ZXh0X2lzX2Jhbm5hYmxlKGN0eCk7CiAJCWJyZWFrOwor CWNhc2UgSTkxNV9DT05URVhUX1BBUkFNX1dBVENIRE9HOgorCQlyZXQgPSBpOTE1X2dlbV9jb250 ZXh0X2dldF93YXRjaGRvZyhjdHgsIGFyZ3MpOworCQlicmVhazsKIAlkZWZhdWx0OgogCQlyZXQg PSAtRUlOVkFMOwogCQlicmVhazsKQEAgLTEwMTQsNiArMTEwNiw5IEBAIGludCBpOTE1X2dlbV9j b250ZXh0X3NldHBhcmFtX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEs CiAJCWVsc2UKIAkJCWk5MTVfZ2VtX2NvbnRleHRfY2xlYXJfYmFubmFibGUoY3R4KTsKIAkJYnJl YWs7CisJY2FzZSBJOTE1X0NPTlRFWFRfUEFSQU1fV0FUQ0hET0c6CisJCXJldCA9IGk5MTVfZ2Vt X2NvbnRleHRfc2V0X3dhdGNoZG9nKGN0eCwgYXJncyk7CisJCWJyZWFrOwogCWRlZmF1bHQ6CiAJ CXJldCA9IC1FSU5WQUw7CiAJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwppbmRleCBj ZjBkNTcxN2JiOTIuLmNjMmI4NTBiNGMzMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbHJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKQEAg LTE1NzQsNyArMTU3NCw3IEBAIHN0YXRpYyBpbmxpbmUgdTMyIGdldF93YXRjaGRvZ19kaXNhYmxl KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJcmV0dXJuIEdFTjhfWENTX1dBVENI RE9HX0RJU0FCTEU7CiB9CiAKLSNkZWZpbmUgR0VOOF9XQVRDSERPR18xMDAwVVMgMHgyZWUwIC8v WFhYOiBUZW1wLCByZXBsYWNlIHdpdGggaGVscGVyIGZ1bmN0aW9uCisjZGVmaW5lIEdFTjhfV0FU Q0hET0dfMTAwMFVTKGRldl9wcml2KSB3YXRjaGRvZ190b19jbG9ja19jb3VudHMoZGV2X3ByaXYs IDEwMDApCiBzdGF0aWMgdm9pZCBnZW44X3dhdGNoZG9nX2lycV9oYW5kbGVyKHVuc2lnbmVkIGxv bmcgZGF0YSkKIHsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSAoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqKWRhdGE7CkBAIC0xNjA0LDcgKzE2MDQsOCBAQCBzdGF0aWMgdm9pZCBn ZW44X3dhdGNoZG9nX2lycV9oYW5kbGVyKHVuc2lnbmVkIGxvbmcgZGF0YSkKIAl9IGVsc2Ugewog CQllbmdpbmUtPmhhbmdjaGVjay53YXRjaGRvZyA9IGN1cnJlbnRfc2Vxbm87CiAJCS8qIFJlLXN0 YXJ0IHRoZSBjb3VudGVyLCBpZiByZWFsbHkgaHVuZywgaXQgd2lsbCBleHBpcmUgYWdhaW4gKi8K LQkJSTkxNV9XUklURV9GVyhSSU5HX1RIUkVTSChlbmdpbmUtPm1taW9fYmFzZSksIEdFTjhfV0FU Q0hET0dfMTAwMFVTKTsKKwkJSTkxNV9XUklURV9GVyhSSU5HX1RIUkVTSChlbmdpbmUtPm1taW9f YmFzZSksCisJCQkgICAgICBHRU44X1dBVENIRE9HXzEwMDBVUyhkZXZfcHJpdikpOwogCQlJOTE1 X1dSSVRFX0ZXKFJJTkdfQ05UUihlbmdpbmUtPm1taW9fYmFzZSksIEdFTjhfV0FUQ0hET0dfRU5B QkxFKTsKIAl9CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCBiL2lu Y2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAppbmRleCBjNTk5ZDQ3NjI5YWMuLjkzYmFhYTNkOTJi YyAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCisrKyBiL2luY2x1ZGUv dWFwaS9kcm0vaTkxNV9kcm0uaApAQCAtMTMxNiw2ICsxMzE2LDcgQEAgc3RydWN0IGRybV9pOTE1 X2dlbV9jb250ZXh0X3BhcmFtIHsKICNkZWZpbmUgSTkxNV9DT05URVhUX1BBUkFNX0dUVF9TSVpF CTB4MwogI2RlZmluZSBJOTE1X0NPTlRFWFRfUEFSQU1fTk9fRVJST1JfQ0FQVFVSRQkweDQKICNk ZWZpbmUgSTkxNV9DT05URVhUX1BBUkFNX0JBTk5BQkxFCTB4NQorI2RlZmluZSBJOTE1X0NPTlRF WFRfUEFSQU1fV0FUQ0hET0cJMHg2CiAJX191NjQgdmFsdWU7CiB9OwogCi0tIAoyLjExLjAKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=