From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH v3] drm/i915: Do not call API requiring struct_mutex where it is not available Date: Wed, 13 Jan 2016 16:16:21 +0000 Message-ID: <1452701781-8721-1-git-send-email-tvrtko.ursulin@linux.intel.com> References: <56952011.9020205@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 6D1556E115 for ; Wed, 13 Jan 2016 08:16:43 -0800 (PST) In-Reply-To: <56952011.9020205@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: Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCkxSQyBjb2Rl IHdhcyBjYWxsaW5nIEdFTSBBUEkgbGlrZSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQgZnJvbQpw bGFjZXMgd2hlcmUgdGhlIHN0cnVjdF9tdXRleCBjYW5ub3QgYmUgZ3JhYmJlZCAoaXJxIGhhbmRs ZXJzKS4KClRvIGF2b2lkIHRoYXQgdGhpcyBwYXRjaCBjYWNoZXMgc29tZSBpbnRlcmVzdGluZyBi aXRzIGFuZCB2YWx1ZXMKaW4gdGhlIGVuZ2luZSBhbmQgY29udGV4dCBzdHJ1Y3R1cmVzLgoKU29t ZSB1c2FnZXMgYXJlIGFsc28gcmVtb3ZlZCB3aGVyZSB0aGV5IGFyZSBub3QgbmVlZGVkIGxpa2Ug YQpmZXcgYXNzZXJ0cyB3aGljaCBhcmUgZWl0aGVyIGltcG9zc2libGUgb3IgaGF2ZSBiZWVuIGNo ZWNrZWQKYWxyZWFkeSBkdXJpbmcgZW5naW5lIGluaXRpYWxpemF0aW9uLgoKU2lkZSBiZW5lZml0 IGlzIGFsc28gdGhhdCBpbnRlcnJ1cHQgaGFuZGxlcnMgYW5kIGNvbW1hbmQKc3VibWlzc2lvbiBz dG9wIGV2YWx1YXRpbmcgaW52YXJpYW50IGNvbmRpdGlvbmFscywgbGlrZSB3aGF0CkdlbiB3ZSBh cmUgcnVubmluZyBvbiwgb24gZXZlcnkgaW50ZXJydXB0IGFuZCBldmVyeSBjb21tYW5kCnN1Ym1p dHRlZC4KClRoaXMgcGF0Y2ggZGVhbHMgd2l0aCBsb2dpY2FsIHJpbmcgY29udGV4dCBpZCBhbmQg ZGVzY3JpcHRvcnMKd2hpbGUgc3Vic2VxdWVudCBwYXRjaGVzIHdpbGwgZGVhbCB3aXRoIHRoZSBy ZW1haW5pbmcgaXNzdWVzLgoKdjI6CiAqIENhY2hlIHRoZSBWTUEgaW5zdGVhZCBvZiB0aGUgYWRk cmVzcy4gKENocmlzIFdpbHNvbikKICogSW5jb3Jwb3JhdGUgRGF2ZSBHb3Jkb24ncyBnb29kIGNv bW1lbnRzIGFuZCBmdW5jdGlvbiBuYW1lLgoKdjM6CiAqIEV4dHJhY3QgY3R4IGRlc2NyaXB0b3Ig dGVtcGxhdGUgdG8gYSBmdW5jdGlvbiBhbmQgZ3JvdXAKICAgZnVuY3Rpb25zIGRlYWxpbmcgd2l0 aCBjdHggZGVzY3JpcHRvciAmIGNvIHRvZ2V0aGVyIG5lYXIKICAgdG9wIG9mIHRoZSBmaWxlLiAo RGF2ZSBHb3Jkb24pCgpTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3Vs aW5AaW50ZWwuY29tPgpDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4K Q2M6IERhdmUgR29yZG9uIDxkYXZpZC5zLmdvcmRvbkBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgIHwgIDE1ICsrLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICB8ICAgMiArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9ndHQuaCAgICAgfCAgIDEgLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmMgICAgICAgIHwgMTUxICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaCAgICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCB8ICAgMiArCiA2IGZpbGVzIGNoYW5nZWQsIDEwMyBp bnNlcnRpb25zKCspLCA3MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdm cy5jCmluZGV4IGUzMzc3YWJjMGQ0ZC4uMGIzNTUwZjA1MDI2IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RlYnVnZnMuYwpAQCAtMTk5NCwxMiArMTk5NCwxMyBAQCBzdGF0aWMgaW50IGk5MTVfY29u dGV4dF9zdGF0dXMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiB9CiAKIHN0YXRp YyB2b2lkIGk5MTVfZHVtcF9scmNfb2JqKHN0cnVjdCBzZXFfZmlsZSAqbSwKLQkJCSAgICAgIHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCi0JCQkgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqY3R4X29iaikKKwkJCSAgICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCisJ CQkgICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQogewogCXN0cnVjdCBwYWdlICpw YWdlOwogCXVpbnQzMl90ICpyZWdfc3RhdGU7CiAJaW50IGo7CisJc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKmN0eF9vYmogPSBjdHgtPmVuZ2luZVtyaW5nLT5pZF0uc3RhdGU7CiAJdW5zaWdu ZWQgbG9uZyBnZ3R0X29mZnNldCA9IDA7CiAKIAlpZiAoY3R4X29iaiA9PSBOVUxMKSB7CkBAIC0y MDA5LDcgKzIwMTAsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2R1bXBfbHJjX29iaihzdHJ1Y3Qgc2Vx X2ZpbGUgKm0sCiAJfQogCiAJc2VxX3ByaW50ZihtLCAiQ09OVEVYVDogJXMgJXVcbiIsIHJpbmct Pm5hbWUsCi0JCSAgIGludGVsX2V4ZWNsaXN0c19jdHhfaWQoY3R4X29iaikpOworCQkgICBpbnRl bF9leGVjbGlzdHNfY3R4X2lkKGN0eCwgcmluZykpOwogCiAJaWYgKCFpOTE1X2dlbV9vYmpfZ2d0 dF9ib3VuZChjdHhfb2JqKSkKIAkJc2VxX3B1dHMobSwgIlx0Tm90IGJvdW5kIGluIEdHVFRcbiIp OwpAQCAtMjA1OCw4ICsyMDU5LDcgQEAgc3RhdGljIGludCBpOTE1X2R1bXBfbHJjKHN0cnVjdCBz ZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCWxpc3RfZm9yX2VhY2hfZW50cnkoY3R4LCAmZGV2 X3ByaXYtPmNvbnRleHRfbGlzdCwgbGluaykgewogCQlmb3JfZWFjaF9yaW5nKHJpbmcsIGRldl9w cml2LCBpKSB7CiAJCQlpZiAocmluZy0+ZGVmYXVsdF9jb250ZXh0ICE9IGN0eCkKLQkJCQlpOTE1 X2R1bXBfbHJjX29iaihtLCByaW5nLAotCQkJCQkJICBjdHgtPmVuZ2luZVtpXS5zdGF0ZSk7CisJ CQkJaTkxNV9kdW1wX2xyY19vYmoobSwgY3R4LCByaW5nKTsKIAkJfQogCX0KIApAQCAtMjEzMywx MSArMjEzMyw4IEBAIHN0YXRpYyBpbnQgaTkxNV9leGVjbGlzdHMoc3RydWN0IHNlcV9maWxlICpt LCB2b2lkICpkYXRhKQogCiAJCXNlcV9wcmludGYobSwgIlx0JWQgcmVxdWVzdHMgaW4gcXVldWVc biIsIGNvdW50KTsKIAkJaWYgKGhlYWRfcmVxKSB7Ci0JCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqY3R4X29iajsKLQotCQkJY3R4X29iaiA9IGhlYWRfcmVxLT5jdHgtPmVuZ2luZVtyaW5n X2lkXS5zdGF0ZTsKIAkJCXNlcV9wcmludGYobSwgIlx0SGVhZCByZXF1ZXN0IGlkOiAldVxuIiwK LQkJCQkgICBpbnRlbF9leGVjbGlzdHNfY3R4X2lkKGN0eF9vYmopKTsKKwkJCQkgICBpbnRlbF9l eGVjbGlzdHNfY3R4X2lkKGhlYWRfcmVxLT5jdHgsIHJpbmcpKTsKIAkJCXNlcV9wcmludGYobSwg Ilx0SGVhZCByZXF1ZXN0IHRhaWw6ICV1XG4iLAogCQkJCSAgIGhlYWRfcmVxLT50YWlsKTsKIAkJ fQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggMTA0YmQxODA5OTM2Li5jOTAwZGIyNzJiOTYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtODgzLDYgKzg4Myw4IEBAIHN0cnVjdCBpbnRl bF9jb250ZXh0IHsKIAkJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKnN0YXRlOwogCQlzdHJ1 Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZjsKIAkJaW50IHBpbl9jb3VudDsKKwkJc3RydWN0 IGk5MTVfdm1hICpscmNfdm1hOworCQl1NjQgbHJjX2Rlc2M7CiAJfSBlbmdpbmVbSTkxNV9OVU1f UklOR1NdOwogCiAJc3RydWN0IGxpc3RfaGVhZCBsaW5rOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9ndHQuaAppbmRleCBiNDQ4YWQ4MzJkY2YuLmU1NzM3OTYzYWI3OSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZ3R0LmgKQEAgLTQ0LDcgKzQ0LDYgQEAgdHlwZWRlZiB1aW50NjRfdCBnZW44 X3BwZ3R0X3BtbDRlX3Q7CiAKICNkZWZpbmUgZ3R0X3RvdGFsX2VudHJpZXMoZ3R0KSAoKGd0dCku YmFzZS50b3RhbCA+PiBQQUdFX1NISUZUKQogCi0KIC8qIGdlbjYtaHN3IGhhcyBiaXQgMTEtNCBm b3IgcGh5c2ljYWwgYWRkciBiaXQgMzktMzIgKi8KICNkZWZpbmUgR0VONl9HVFRfQUREUl9FTkNP REUoYWRkcikJKChhZGRyKSB8ICgoKGFkZHIpID4+IDI4KSAmIDB4ZmYwKSkKICNkZWZpbmUgR0VO Nl9QVEVfQUREUl9FTkNPREUoYWRkcikJR0VONl9HVFRfQUREUl9FTkNPREUoYWRkcikKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfbHJjLmMKaW5kZXggNTAyNzY5OWM1MjkxLi4xYTBkODUzMjUwNzIgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5jCkBAIC0yNjMsNjUgKzI2Myw5MiBAQCBpbnQgaW50ZWxfc2Fu aXRpemVfZW5hYmxlX2V4ZWNsaXN0cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgZW5hYmxl X2V4ZWNsaXN0cwogCXJldHVybiAwOwogfQogCitzdGF0aWMgdm9pZAorbG9naWNhbF9yaW5nX2lu aXRfcGxhdGZvcm1faW52YXJpYW50cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQorewor CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSByaW5nLT5kZXY7CisKKwlyaW5nLT5kaXNhYmxlX2xp dGVfcmVzdG9yZV93YSA9IChJU19TS0xfUkVWSUQoZGV2LCAwLCBTS0xfUkVWSURfQjApIHx8CisJ CQkJCUlTX0JYVF9SRVZJRChkZXYsIDAsIEJYVF9SRVZJRF9BMSkpICYmCisJCQkJCShyaW5nLT5p ZCA9PSBWQ1MgfHwgcmluZy0+aWQgPT0gVkNTMik7CisKKwlyaW5nLT5jdHhfZGVzY190ZW1wbGF0 ZSA9IEdFTjhfQ1RYX1ZBTElEOworCXJpbmctPmN0eF9kZXNjX3RlbXBsYXRlIHw9IEdFTjhfQ1RY X0FERFJFU1NJTkdfTU9ERShkZXYpIDw8CisJCQkJICAgR0VOOF9DVFhfQUREUkVTU0lOR19NT0RF X1NISUZUOworCWlmIChJU19HRU44KGRldikpCisJCXJpbmctPmN0eF9kZXNjX3RlbXBsYXRlIHw9 IEdFTjhfQ1RYX0wzTExDX0NPSEVSRU5UOworCXJpbmctPmN0eF9kZXNjX3RlbXBsYXRlIHw9IEdF TjhfQ1RYX1BSSVZJTEVHRTsKKworCS8qIFRPRE86IFdhRGlzYWJsZUxpdGVSZXN0b3JlIHdoZW4g d2Ugc3RhcnQgdXNpbmcgc2VtYXBob3JlCisJICogc2lnbmFsbGluZyBiZXR3ZWVuIENvbW1hbmQg U3RyZWFtZXJzICovCisJLyogcmluZy0+Y3R4X2Rlc2NfdGVtcGxhdGUgfD0gR0VOOF9DVFhfRk9S Q0VfUkVTVE9SRTsgKi8KKworCS8qIFdhRW5hYmxlRm9yY2VSZXN0b3JlSW5DdHh0RGVzY0ZvclZD Uzpza2wgKi8KKwkvKiBXYUVuYWJsZUZvcmNlUmVzdG9yZUluQ3R4dERlc2NGb3JWQ1M6Ynh0ICov CisJaWYgKHJpbmctPmRpc2FibGVfbGl0ZV9yZXN0b3JlX3dhKQorCQlyaW5nLT5jdHhfZGVzY190 ZW1wbGF0ZSB8PSBHRU44X0NUWF9GT1JDRV9SRVNUT1JFOworfQorCiAvKioKLSAqIGludGVsX2V4 ZWNsaXN0c19jdHhfaWQoKSAtIGdldCB0aGUgRXhlY2xpc3RzIENvbnRleHQgSUQKLSAqIEBjdHhf b2JqOiBMb2dpY2FsIFJpbmcgQ29udGV4dCBiYWNraW5nIG9iamVjdC4KKyAqIGludGVsX2xyX2Nv bnRleHRfZGVzY3JpcHRvcl91cGRhdGUoKSAtIGNhbGN1bGF0ZSAmIGNhY2hlIHRoZSBkZXNjcmlw dG9yCisgKiAJCQkJCSAgZGVzY3JpcHRvciBmb3IgYSBwaW5uZWQgY29udGV4dAogICoKLSAqIERv IG5vdCBjb25mdXNlIHdpdGggY3R4LT5pZCEgVW5mb3J0dW5hdGVseSB3ZSBoYXZlIGEgbmFtZSBv dmVybG9hZAotICogaGVyZTogdGhlIG9sZCBjb250ZXh0IElEIHdlIHBhc3MgdG8gdXNlcnNwYWNl IGFzIGEgaGFuZGxlciBzbyB0aGF0Ci0gKiB0aGV5IGNhbiByZWZlciB0byBhIGNvbnRleHQsIGFu ZCB0aGUgbmV3IGNvbnRleHQgSUQgd2UgcGFzcyB0byB0aGUKLSAqIEVMU1Agc28gdGhhdCB0aGUg R1BVIGNhbiBpbmZvcm0gdXMgb2YgdGhlIGNvbnRleHQgc3RhdHVzIHZpYQotICogaW50ZXJydXB0 cy4KKyAqIEBjdHg6IENvbnRleHQgdG8gd29yayBvbgorICogQHJpbmc6IEVuZ2luZSB0aGUgZGVz Y3JpcHRvciB3aWxsIGJlIHVzZWQgd2l0aAogICoKLSAqIFJldHVybjogMjAtYml0cyBnbG9iYWxs eSB1bmlxdWUgY29udGV4dCBJRC4KKyAqIFRoZSBjb250ZXh0IGRlc2NyaXB0b3IgZW5jb2RlcyB2 YXJpb3VzIGF0dHJpYnV0ZXMgb2YgYSBjb250ZXh0LAorICogaW5jbHVkaW5nIGl0cyBHVFQgYWRk cmVzcyBhbmQgc29tZSBmbGFncy4gQmVjYXVzZSBpdCdzIGZhaXJseQorICogZXhwZW5zaXZlIHRv IGNhbGN1bGF0ZSwgd2UnbGwganVzdCBkbyBpdCBvbmNlIGFuZCBjYWNoZSB0aGUgcmVzdWx0LAor ICogd2hpY2ggcmVtYWlucyB2YWxpZCB1bnRpbCB0aGUgY29udGV4dCBpcyB1bnBpbm5lZC4KKyAq CisgKiBUaGlzIGlzIHdoYXQgYSBkZXNjcmlwdG9yIGxvb2tzIGxpa2UsIGZyb20gTFNCIHRvIE1T QjoKKyAqICAgIGJpdHMgMC0xMTogICAgZmxhZ3MsIEdFTjhfQ1RYXyogKGNhY2hlZCBpbiBjdHhf ZGVzY190ZW1wbGF0ZSkKKyAqICAgIGJpdHMgMTItMzE6ICAgIExSQ0EsIEdUVCBhZGRyZXNzIG9m ICh0aGUgSFdTUCBvZikgdGhpcyBjb250ZXh0CisgKiAgICBiaXRzIDMyLTUxOiAgICBjdHggSUQs IGEgZ2xvYmFsbHkgdW5pcXVlIHRhZyAodGhlIExSQ0EgYWdhaW4hKQorICogICAgYml0cyA1Mi02 MzogICAgcmVzZXJ2ZWQsIG1heSBlbmNvZGUgdGhlIGVuZ2luZSBJRCAoZm9yIEd1QykKICAqLwot dTMyIGludGVsX2V4ZWNsaXN0c19jdHhfaWQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0 eF9vYmopCitzdGF0aWMgdm9pZAoraW50ZWxfbHJfY29udGV4dF9kZXNjcmlwdG9yX3VwZGF0ZShz dHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAorCQkJCSAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KnJpbmcpCiB7Ci0JdTMyIGxyY2EgPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQoY3R4X29iaikg KwotCQkJTFJDX1BQSFdTUF9QTiAqIFBBR0VfU0laRTsKKwl1aW50NjRfdCBscmNhLCBkZXNjOwog Ci0JLyogTFJDQSBpcyByZXF1aXJlZCB0byBiZSA0SyBhbGlnbmVkIHNvIHRoZSBtb3JlIHNpZ25p ZmljYW50IDIwIGJpdHMKLQkgKiBhcmUgZ2xvYmFsbHkgdW5pcXVlICovCi0JcmV0dXJuIGxyY2Eg Pj4gMTI7Ci19CisJbHJjYSA9IGN0eC0+ZW5naW5lW3JpbmctPmlkXS5scmNfdm1hLT5ub2RlLnN0 YXJ0ICsKKwkgICAgICAgTFJDX1BQSFdTUF9QTiAqIFBBR0VfU0laRTsKIAotc3RhdGljIGJvb2wg ZGlzYWJsZV9saXRlX3Jlc3RvcmVfd2Eoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKLXsK LQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcmluZy0+ZGV2OworCWRlc2MgPSByaW5nLT5jdHhf ZGVzY190ZW1wbGF0ZTsJCQkgICAvKiBiaXRzICAwLTExICovCisJZGVzYyB8PSBscmNhOwkJCQkJ ICAgLyogYml0cyAxMi0zMSAqLworCWRlc2MgfD0gKGxyY2EgPj4gUEFHRV9TSElGVCkgPDwgR0VO OF9DVFhfSURfU0hJRlQ7IC8qIGJpdHMgMzItNTEgKi8KIAotCXJldHVybiAoSVNfU0tMX1JFVklE KGRldiwgMCwgU0tMX1JFVklEX0IwKSB8fAotCQlJU19CWFRfUkVWSUQoZGV2LCAwLCBCWFRfUkVW SURfQTEpKSAmJgotCSAgICAgICAocmluZy0+aWQgPT0gVkNTIHx8IHJpbmctPmlkID09IFZDUzIp OworCWN0eC0+ZW5naW5lW3JpbmctPmlkXS5scmNfZGVzYyA9IGRlc2M7CiB9CiAKIHVpbnQ2NF90 IGludGVsX2xyX2NvbnRleHRfZGVzY3JpcHRvcihzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAog CQkJCSAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKIHsKLQlzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqY3R4X29iaiA9IGN0eC0+ZW5naW5lW3JpbmctPmlkXS5zdGF0ZTsKLQl1 aW50NjRfdCBkZXNjOwotCXVpbnQ2NF90IGxyY2EgPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQo Y3R4X29iaikgKwotCQkJTFJDX1BQSFdTUF9QTiAqIFBBR0VfU0laRTsKLQotCVdBUk5fT04obHJj YSAmIDB4RkZGRkZGRkYwMDAwMEZGRlVMTCk7Ci0KLQlkZXNjID0gR0VOOF9DVFhfVkFMSUQ7Ci0J ZGVzYyB8PSBHRU44X0NUWF9BRERSRVNTSU5HX01PREUoZGV2KSA8PCBHRU44X0NUWF9BRERSRVNT SU5HX01PREVfU0hJRlQ7Ci0JaWYgKElTX0dFTjgoY3R4X29iai0+YmFzZS5kZXYpKQotCQlkZXNj IHw9IEdFTjhfQ1RYX0wzTExDX0NPSEVSRU5UOwotCWRlc2MgfD0gR0VOOF9DVFhfUFJJVklMRUdF OwotCWRlc2MgfD0gbHJjYTsKLQlkZXNjIHw9ICh1NjQpaW50ZWxfZXhlY2xpc3RzX2N0eF9pZChj dHhfb2JqKSA8PCBHRU44X0NUWF9JRF9TSElGVDsKLQotCS8qIFRPRE86IFdhRGlzYWJsZUxpdGVS ZXN0b3JlIHdoZW4gd2Ugc3RhcnQgdXNpbmcgc2VtYXBob3JlCi0JICogc2lnbmFsbGluZyBiZXR3 ZWVuIENvbW1hbmQgU3RyZWFtZXJzICovCi0JLyogZGVzYyB8PSBHRU44X0NUWF9GT1JDRV9SRVNU T1JFOyAqLwotCi0JLyogV2FFbmFibGVGb3JjZVJlc3RvcmVJbkN0eHREZXNjRm9yVkNTOnNrbCAq LwotCS8qIFdhRW5hYmxlRm9yY2VSZXN0b3JlSW5DdHh0RGVzY0ZvclZDUzpieHQgKi8KLQlpZiAo ZGlzYWJsZV9saXRlX3Jlc3RvcmVfd2EocmluZykpCi0JCWRlc2MgfD0gR0VOOF9DVFhfRk9SQ0Vf UkVTVE9SRTsKKwlyZXR1cm4gY3R4LT5lbmdpbmVbcmluZy0+aWRdLmxyY19kZXNjOworfQogCi0J cmV0dXJuIGRlc2M7CisvKioKKyAqIGludGVsX2V4ZWNsaXN0c19jdHhfaWQoKSAtIGdldCB0aGUg RXhlY2xpc3RzIENvbnRleHQgSUQKKyAqIEBjdHg6IENvbnRleHQgdG8gZ2V0IHRoZSBJRCBmb3IK KyAqIEByaW5nOiBFbmdpbmUgdG8gZ2V0IHRoZSBJRCBmb3IKKyAqCisgKiBEbyBub3QgY29uZnVz ZSB3aXRoIGN0eC0+aWQhIFVuZm9ydHVuYXRlbHkgd2UgaGF2ZSBhIG5hbWUgb3ZlcmxvYWQKKyAq IGhlcmU6IHRoZSBvbGQgY29udGV4dCBJRCB3ZSBwYXNzIHRvIHVzZXJzcGFjZSBhcyBhIGhhbmRs ZXIgc28gdGhhdAorICogdGhleSBjYW4gcmVmZXIgdG8gYSBjb250ZXh0LCBhbmQgdGhlIG5ldyBj b250ZXh0IElEIHdlIHBhc3MgdG8gdGhlCisgKiBFTFNQIHNvIHRoYXQgdGhlIEdQVSBjYW4gaW5m b3JtIHVzIG9mIHRoZSBjb250ZXh0IHN0YXR1cyB2aWEKKyAqIGludGVycnVwdHMuCisgKgorICog VGhlIGNvbnRleHQgSUQgaXMgYSBwb3J0aW9uIG9mIHRoZSBjb250ZXh0IGRlc2NyaXB0b3IsIHNv IHdlIGNhbgorICoganVzdCBleHRyYWN0IHRoZSByZXF1aXJlZCBwYXJ0IGZyb20gdGhlIGNhY2hl ZCBkZXNjcmlwdG9yLgorICoKKyAqIFJldHVybjogMjAtYml0cyBnbG9iYWxseSB1bmlxdWUgY29u dGV4dCBJRC4KKyAqLwordTMyIGludGVsX2V4ZWNsaXN0c19jdHhfaWQoc3RydWN0IGludGVsX2Nv bnRleHQgKmN0eCwKKwkJCSAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCit7CisJcmV0 dXJuIGludGVsX2xyX2NvbnRleHRfZGVzY3JpcHRvcihjdHgsIHJpbmcpID4+IEdFTjhfQ1RYX0lE X1NISUZUOwogfQogCiBzdGF0aWMgdm9pZCBleGVjbGlzdHNfZWxzcF93cml0ZShzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJxMCwKQEAgLTM2OSw4ICszOTYsNiBAQCBzdGF0aWMgaW50IGV4 ZWNsaXN0c191cGRhdGVfY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJxKQog CXVpbnQzMl90ICpyZWdfc3RhdGU7CiAKIAlCVUdfT04oIWN0eF9vYmopOwotCVdBUk5fT04oIWk5 MTVfZ2VtX29ial9pc19waW5uZWQoY3R4X29iaikpOwotCVdBUk5fT04oIWk5MTVfZ2VtX29ial9p c19waW5uZWQocmJfb2JqKSk7CiAKIAlwYWdlID0gaTkxNV9nZW1fb2JqZWN0X2dldF9kaXJ0eV9w YWdlKGN0eF9vYmosIExSQ19TVEFURV9QTik7CiAJcmVnX3N0YXRlID0ga21hcF9hdG9taWMocGFn ZSk7CkBAIC00NzcsOSArNTAyLDcgQEAgc3RhdGljIGJvb2wgZXhlY2xpc3RzX2NoZWNrX3JlbW92 ZV9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAJCQkJCSAgICBleGVjbGlz dF9saW5rKTsKIAogCWlmIChoZWFkX3JlcSAhPSBOVUxMKSB7Ci0JCXN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpjdHhfb2JqID0KLQkJCQloZWFkX3JlcS0+Y3R4LT5lbmdpbmVbcmluZy0+aWRd LnN0YXRlOwotCQlpZiAoaW50ZWxfZXhlY2xpc3RzX2N0eF9pZChjdHhfb2JqKSA9PSByZXF1ZXN0 X2lkKSB7CisJCWlmIChpbnRlbF9leGVjbGlzdHNfY3R4X2lkKGhlYWRfcmVxLT5jdHgsIHJpbmcp ID09IHJlcXVlc3RfaWQpIHsKIAkJCVdBUk4oaGVhZF9yZXEtPmVsc3Bfc3VibWl0dGVkID09IDAs CiAJCQkgICAgICJOZXZlciBzdWJtaXR0ZWQgaGVhZCByZXF1ZXN0XG4iKTsKIApAQCAtNTU2LDcg KzU3OSw3IEBAIHZvaWQgaW50ZWxfbHJjX2lycV9oYW5kbGVyKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmcpCiAJCX0KIAl9CiAKLQlpZiAoZGlzYWJsZV9saXRlX3Jlc3RvcmVfd2EocmluZykp IHsKKwlpZiAocmluZy0+ZGlzYWJsZV9saXRlX3Jlc3RvcmVfd2EpIHsKIAkJLyogUHJldmVudCBh IGN0eCB0byBwcmVlbXB0IGl0c2VsZiAqLwogCQlpZiAoKHN0YXR1cyAmIEdFTjhfQ1RYX1NUQVRV U19BQ1RJVkVfSURMRSkgJiYKIAkJICAgIChzdWJtaXRfY29udGV4dHMgIT0gMCkpCkBAIC0xMDM5 LDE0ICsxMDYyLDE2IEBAIGludCBsb2dpY2FsX3JpbmdfZmx1c2hfYWxsX2NhY2hlcyhzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIH0KIAogc3RhdGljIGludCBpbnRlbF9scl9jb250 ZXh0X2RvX3BpbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAotCQlzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqY3R4X29iaiwKLQkJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdi dWYpCisJCQkJICAgc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCkKIHsKIAlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gcmluZy0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JaW50IHJldCA9IDA7CisJc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKmN0eF9vYmogPSBjdHgtPmVuZ2luZVtyaW5nLT5pZF0uc3RhdGU7CisJc3RydWN0 IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSBjdHgtPmVuZ2luZVtyaW5nLT5pZF0ucmluZ2J1 ZjsKKwlpbnQgcmV0OwogCiAJV0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZyaW5nLT5kZXYtPnN0 cnVjdF9tdXRleCkpOworCiAJcmV0ID0gaTkxNV9nZW1fb2JqX2dndHRfcGluKGN0eF9vYmosIEdF TjhfTFJfQ09OVEVYVF9BTElHTiwKIAkJCVBJTl9PRkZTRVRfQklBUyB8IEdVQ19XT1BDTV9UT1Ap OwogCWlmIChyZXQpCkBAIC0xMDU2LDYgKzEwODEsOCBAQCBzdGF0aWMgaW50IGludGVsX2xyX2Nv bnRleHRfZG9fcGluKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAJaWYgKHJldCkKIAkJ Z290byB1bnBpbl9jdHhfb2JqOwogCisJY3R4LT5lbmdpbmVbcmluZy0+aWRdLmxyY192bWEgPSBp OTE1X2dlbV9vYmpfdG9fZ2d0dChjdHhfb2JqKTsKKwlpbnRlbF9scl9jb250ZXh0X2Rlc2NyaXB0 b3JfdXBkYXRlKGN0eCwgcmluZyk7CiAJY3R4X29iai0+ZGlydHkgPSB0cnVlOwogCiAJLyogSW52 YWxpZGF0ZSBHdUMgVExCLiAqLwpAQCAtMTA3NCwxMSArMTEwMSw5IEBAIHN0YXRpYyBpbnQgaW50 ZWxfbHJfY29udGV4dF9waW4oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpycSkKIHsKIAlp bnQgcmV0ID0gMDsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gcnEtPnJpbmc7Ci0J c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmogPSBycS0+Y3R4LT5lbmdpbmVbcmlu Zy0+aWRdLnN0YXRlOwotCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0gcnEtPnJp bmdidWY7CiAKIAlpZiAocnEtPmN0eC0+ZW5naW5lW3JpbmctPmlkXS5waW5fY291bnQrKyA9PSAw KSB7Ci0JCXJldCA9IGludGVsX2xyX2NvbnRleHRfZG9fcGluKHJpbmcsIGN0eF9vYmosIHJpbmdi dWYpOworCQlyZXQgPSBpbnRlbF9scl9jb250ZXh0X2RvX3BpbihyaW5nLCBycS0+Y3R4KTsKIAkJ aWYgKHJldCkKIAkJCWdvdG8gcmVzZXRfcGluX2NvdW50OwogCX0KQEAgLTExMDAsNiArMTEyNSw4 IEBAIHZvaWQgaW50ZWxfbHJfY29udGV4dF91bnBpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJxKQogCQlpZiAoLS1ycS0+Y3R4LT5lbmdpbmVbcmluZy0+aWRdLnBpbl9jb3VudCA9PSAw KSB7CiAJCQlpbnRlbF91bnBpbl9yaW5nYnVmZmVyX29iaihyaW5nYnVmKTsKIAkJCWk5MTVfZ2Vt X29iamVjdF9nZ3R0X3VucGluKGN0eF9vYmopOworCQkJcnEtPmN0eC0+ZW5naW5lW3JpbmctPmlk XS5scmNfdm1hID0gTlVMTDsKKwkJCXJxLT5jdHgtPmVuZ2luZVtyaW5nLT5pZF0ubHJjX2Rlc2Mg PSAwOwogCQl9CiAJfQogfQpAQCAtMTkzOCw2ICsxOTY1LDkgQEAgdm9pZCBpbnRlbF9sb2dpY2Fs X3JpbmdfY2xlYW51cChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQogCQlyaW5nLT5zdGF0 dXNfcGFnZS5vYmogPSBOVUxMOwogCX0KIAorCXJpbmctPmRpc2FibGVfbGl0ZV9yZXN0b3JlX3dh ID0gZmFsc2U7CisJcmluZy0+Y3R4X2Rlc2NfdGVtcGxhdGUgPSAwOworCiAJbHJjX2Rlc3Ryb3lf d2FfY3R4X29iaihyaW5nKTsKIAlyaW5nLT5kZXYgPSBOVUxMOwogfQpAQCAtMTk4OCw2ICsyMDE4 LDggQEAgbG9naWNhbF9yaW5nX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZykKIAlJTklUX0xJU1RfSEVBRCgmcmluZy0+ZXhlY2xpc3RfcmV0 aXJlZF9yZXFfbGlzdCk7CiAJc3Bpbl9sb2NrX2luaXQoJnJpbmctPmV4ZWNsaXN0X2xvY2spOwog CisJbG9naWNhbF9yaW5nX2luaXRfcGxhdGZvcm1faW52YXJpYW50cyhyaW5nKTsKKwogCXJldCA9 IGk5MTVfY21kX3BhcnNlcl9pbml0X3JpbmcocmluZyk7CiAJaWYgKHJldCkKIAkJZ290byBlcnJv cjsKQEAgLTE5OTcsMTAgKzIwMjksNyBAQCBsb2dpY2FsX3JpbmdfaW5pdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQogCQlnb3RvIGVycm9yOwog CiAJLyogQXMgdGhpcyBpcyB0aGUgZGVmYXVsdCBjb250ZXh0LCBhbHdheXMgcGluIGl0ICovCi0J cmV0ID0gaW50ZWxfbHJfY29udGV4dF9kb19waW4oCi0JCQlyaW5nLAotCQkJcmluZy0+ZGVmYXVs dF9jb250ZXh0LT5lbmdpbmVbcmluZy0+aWRdLnN0YXRlLAotCQkJcmluZy0+ZGVmYXVsdF9jb250 ZXh0LT5lbmdpbmVbcmluZy0+aWRdLnJpbmdidWYpOworCXJldCA9IGludGVsX2xyX2NvbnRleHRf ZG9fcGluKHJpbmcsIHJpbmctPmRlZmF1bHRfY29udGV4dCk7CiAJaWYgKHJldCkgewogCQlEUk1f RVJST1IoCiAJCQkiRmFpbGVkIHRvIHBpbiBhbmQgbWFwIHJpbmdidWZmZXIgJXM6ICVkXG4iLApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9scmMuaAppbmRleCBkZTQxYWQ2Y2Q2M2QuLjQ5YWY2MzhmNjIxMyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKQEAgLTEwNywxMyArMTA3LDE1IEBAIHZvaWQgaW50 ZWxfbHJfY29udGV4dF9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogdWludDY0X3QgaW50 ZWxfbHJfY29udGV4dF9kZXNjcmlwdG9yKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCiAJCQkJ ICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKIAordTMyIGludGVsX2V4ZWNsaXN0 c19jdHhfaWQoc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKKwkJCSAgIHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKnJpbmcpOworCiAvKiBFeGVjbGlzdHMgKi8KIGludCBpbnRlbF9zYW5pdGl6ZV9l bmFibGVfZXhlY2xpc3RzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBlbmFibGVfZXhlY2xp c3RzKTsKIHN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zOwogaW50IGludGVsX2V4ZWNsaXN0 c19zdWJtaXNzaW9uKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zICpwYXJhbXMsCiAJCQkg ICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiAqYXJncywKIAkJCSAgICAgICBz dHJ1Y3QgbGlzdF9oZWFkICp2bWFzKTsKLXUzMiBpbnRlbF9leGVjbGlzdHNfY3R4X2lkKHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqKTsKIAogdm9pZCBpbnRlbF9scmNfaXJxX2hh bmRsZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7CiB2b2lkIGludGVsX2V4ZWNsaXN0 c19yZXRpcmVfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKaW5kZXggNzM0OWQ5MjU4MTkxLi44NWNlMjI3 MmY5MmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIu aAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKQEAgLTI2OSw2 ICsyNjksOCBAQCBzdHJ1Y3QgIGludGVsX2VuZ2luZV9jcyB7CiAJc3RydWN0IGxpc3RfaGVhZCBl eGVjbGlzdF9xdWV1ZTsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGV4ZWNsaXN0X3JldGlyZWRfcmVxX2xp c3Q7CiAJdTggbmV4dF9jb250ZXh0X3N0YXR1c19idWZmZXI7CisJYm9vbCBkaXNhYmxlX2xpdGVf cmVzdG9yZV93YTsKKwl1MzIgY3R4X2Rlc2NfdGVtcGxhdGU7CiAJdTMyICAgICAgICAgICAgIGly cV9rZWVwX21hc2s7IC8qIGJpdG1hc2sgZm9yIGludGVycnVwdHMgdGhhdCBzaG91bGQgbm90IGJl IG1hc2tlZCAqLwogCWludAkJKCplbWl0X3JlcXVlc3QpKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxdWVzdCk7CiAJaW50CQkoKmVtaXRfZmx1c2gpKHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcmVxdWVzdCwKLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=