From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH v3 1/2] drm/i915: Reduce recursive mutex locking from the shrinker Date: Fri, 4 Jan 2019 14:54:46 +0000 Message-ID: <20190104145446.18678-1-tvrtko.ursulin@linux.intel.com> References: <20190104140217.17822-1-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id CD45F6E345 for ; Fri, 4 Jan 2019 14:54:51 +0000 (UTC) In-Reply-To: <20190104140217.17822-1-tvrtko.ursulin@linux.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 RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCkluIHR3byBj b2RlcGF0aHMgaW50ZXJuYWwgdG8gdGhlIHNocmlua2VyIHdlIGtub3cgd2Ugd2lsbCBlbmQgdXAg dGFraW5nCnRoZSByZXN1cnNpdmUgbXV0ZXggcGF0aC4KCkl0IGluc3RlYWQgZmVlbHMgbW9yZSBl bGVnYW50IHRvIGF2b2lkIHRoaXMgYWx0b2dldGhlciBhbmQgbm90IGNhbGwKbXV0ZXhfdHJ5bG9j a19yZWN1cnNpdmUgaW4gdGhvc2UgY2FzZXMuCgpXZSBhY2hpZXZlIHRoaXMgYnkgZXh0cmFjdGlu ZyB0aGUgc2hyaW5raW5nIHBhcnQgdG8gX19pOTE1X2dlbV9zaHJpbmssCndyYXBwZWQgYnkgc3Ry dWN0IG11dGV4IHRha2luZyBpOTE1X2dlbV9zaHJpbmsuCgpBdCB0aGUgc2FtZSB0aW1lIG1vdmUg dGhlIHJ1bnRpbWUgcG0gcmVmZXJlbmNlIHRha2luZyB0byBhbHdheXMgYmUgaW4gdGhlCnVzdWFs LCBiZWZvcmUgc3RydWN0IG11dGV4LCBvcmRlci4KCnYyOgogKiBEb24ndCB1c2UgZmxhZ3MgYnV0 IHNwbGl0IGk5MTVfZ2VtX3NocmluayBpbnRvIGxvY2tlZCBhbmQgdW5sb2NrZWQuCgp2MzoKICog V2hpdGVzcGFjZSBhbmQgY2hlY2twYXRjaCByZXBvcnRlZCBlcnJvcnMuCgpTaWduZWQtb2ZmLWJ5 OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX3Nocmlua2VyLmMgfCAxNTQgKysrKysrKysrKysrLS0tLS0tLS0tLS0K IDIgZmlsZXMgY2hhbmdlZCwgODUgaW5zZXJ0aW9ucygrKSwgNzEgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggN2ZhMmE0MDVjNWZlLi5lODUxNGM0YWZiYjIgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMzE3OCw3ICszMTc4LDcgQEAgaTkxNV9nZW1fb2JqZWN0 X2NyZWF0ZV9pbnRlcm5hbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiB1bnNp Z25lZCBsb25nIGk5MTVfZ2VtX3NocmluayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwK IAkJCSAgICAgIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LAogCQkJICAgICAgdW5zaWduZWQgbG9uZyAq bnJfc2Nhbm5lZCwKLQkJCSAgICAgIHVuc2lnbmVkIGZsYWdzKTsKKwkJCSAgICAgIHVuc2lnbmVk IGludCBmbGFncyk7CiAjZGVmaW5lIEk5MTVfU0hSSU5LX1BVUkdFQUJMRSAweDEKICNkZWZpbmUg STkxNV9TSFJJTktfVU5CT1VORCAweDIKICNkZWZpbmUgSTkxNV9TSFJJTktfQk9VTkQgMHg0CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zaHJpbmtlci5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc2hyaW5rZXIuYwppbmRleCBlYTkwZDNhMGQ1MTEu LmJhMGUwY2EzMWQzMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f c2hyaW5rZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zaHJpbmtlci5j CkBAIC0xMTcsMzYgKzExNywxMSBAQCBzdGF0aWMgYm9vbCB1bnNhZmVfZHJvcF9wYWdlcyhzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCXJldHVybiAhaTkxNV9nZW1fb2JqZWN0X2hh c19wYWdlcyhvYmopOwogfQogCi0vKioKLSAqIGk5MTVfZ2VtX3NocmluayAtIFNocmluayBidWZm ZXIgb2JqZWN0IGNhY2hlcwotICogQGk5MTU6IGk5MTUgZGV2aWNlCi0gKiBAdGFyZ2V0OiBhbW91 bnQgb2YgbWVtb3J5IHRvIG1ha2UgYXZhaWxhYmxlLCBpbiBwYWdlcwotICogQG5yX3NjYW5uZWQ6 IG9wdGlvbmFsIG91dHB1dCBmb3IgbnVtYmVyIG9mIHBhZ2VzIHNjYW5uZWQgKGluY3JlbWVudGFs KQotICogQGZsYWdzOiBjb250cm9sIGZsYWdzIGZvciBzZWxlY3RpbmcgY2FjaGUgdHlwZXMKLSAq Ci0gKiBUaGlzIGZ1bmN0aW9uIGlzIHRoZSBtYWluIGludGVyZmFjZSB0byB0aGUgc2hyaW5rZXIu IEl0IHdpbGwgdHJ5IHRvIHJlbGVhc2UKLSAqIHVwIHRvIEB0YXJnZXQgcGFnZXMgb2YgbWFpbiBt ZW1vcnkgYmFja2luZyBzdG9yYWdlIGZyb20gYnVmZmVyIG9iamVjdHMuCi0gKiBTZWxlY3Rpb24g b2YgdGhlIHNwZWNpZmljIGNhY2hlcyBjYW4gYmUgZG9uZSB3aXRoIEBmbGFncy4gVGhpcyBpcyBl LmcuIHVzZWZ1bAotICogd2hlbiBwdXJnZWFibGUgb2JqZWN0cyBzaG91bGQgYmUgcmVtb3ZlZCBm cm9tIGNhY2hlcyBwcmVmZXJlbnRpYWxseS4KLSAqCi0gKiBOb3RlIHRoYXQgaXQncyBub3QgZ3Vh cmFudGVlZCB0aGF0IHJlbGVhc2VkIGFtb3VudCBpcyBhY3R1YWxseSBhdmFpbGFibGUgYXMKLSAq IGZyZWUgc3lzdGVtIG1lbW9yeSAtIHRoZSBwYWdlcyBtaWdodCBzdGlsbCBiZSBpbi11c2VkIHRv IGR1ZSB0byBvdGhlciByZWFzb25zCi0gKiAobGlrZSBjcHUgbW1hcHMpIG9yIHRoZSBtbSBjb3Jl IGhhcyByZXVzZWQgdGhlbSBiZWZvcmUgd2UgY291bGQgZ3JhYiB0aGVtLgotICogVGhlcmVmb3Jl IGNvZGUgdGhhdCBuZWVkcyB0byBleHBsaWNpdGx5IHNocmluayBidWZmZXIgb2JqZWN0cyBjYWNo ZXMgKGUuZy4gdG8KLSAqIGF2b2lkIGRlYWRsb2NrcyBpbiBtZW1vcnkgcmVjbGFpbSkgbXVzdCBm YWxsIGJhY2sgdG8gaTkxNV9nZW1fc2hyaW5rX2FsbCgpLgotICoKLSAqIEFsc28gbm90ZSB0aGF0 IGFueSBraW5kIG9mIHBpbm5pbmcgKGJvdGggcGVyLXZtYSBhZGRyZXNzIHNwYWNlIHBpbnMgYW5k Ci0gKiBiYWNraW5nIHN0b3JhZ2UgcGlucyBhdCB0aGUgYnVmZmVyIG9iamVjdCBsZXZlbCkgcmVz dWx0IGluIHRoZSBzaHJpbmtlciBjb2RlCi0gKiBoYXZpbmcgdG8gc2tpcCB0aGUgb2JqZWN0Lgot ICoKLSAqIFJldHVybnM6Ci0gKiBUaGUgbnVtYmVyIG9mIHBhZ2VzIG9mIGJhY2tpbmcgc3RvcmFn ZSBhY3R1YWxseSByZWxlYXNlZC4KLSAqLwotdW5zaWduZWQgbG9uZwotaTkxNV9nZW1fc2hyaW5r KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAotCQl1bnNpZ25lZCBsb25nIHRhcmdldCwK LQkJdW5zaWduZWQgbG9uZyAqbnJfc2Nhbm5lZCwKLQkJdW5zaWduZWQgZmxhZ3MpCitzdGF0aWMg dW5zaWduZWQgbG9uZworX19pOTE1X2dlbV9zaHJpbmsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUsCisJCSAgdW5zaWduZWQgbG9uZyB0YXJnZXQsCisJCSAgdW5zaWduZWQgbG9uZyAqbnJf c2Nhbm5lZCwKKwkJICB1bnNpZ25lZCBpbnQgZmxhZ3MpCiB7CiAJY29uc3Qgc3RydWN0IHsKIAkJ c3RydWN0IGxpc3RfaGVhZCAqbGlzdDsKQEAgLTE1OCwxMCArMTMzLDggQEAgaTkxNV9nZW1fc2hy aW5rKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCX0sICpwaGFzZTsKIAl1bnNpZ25l ZCBsb25nIGNvdW50ID0gMDsKIAl1bnNpZ25lZCBsb25nIHNjYW5uZWQgPSAwOwotCWJvb2wgdW5s b2NrOwogCi0JaWYgKCFzaHJpbmtlcl9sb2NrKGk5MTUsICZ1bmxvY2spKQotCQlyZXR1cm4gMDsK Kwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAogCS8qCiAJ ICogV2hlbiBzaHJpbmtpbmcgdGhlIGFjdGl2ZSBsaXN0LCBhbHNvIGNvbnNpZGVyIGFjdGl2ZSBj b250ZXh0cy4KQEAgLTE3NywxOCArMTUwLDggQEAgaTkxNV9nZW1fc2hyaW5rKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1LAogCQkJCSAgICAgICBJOTE1X1dBSVRfTE9DS0VELAogCQkJCSAg ICAgICBNQVhfU0NIRURVTEVfVElNRU9VVCk7CiAKLQl0cmFjZV9pOTE1X2dlbV9zaHJpbmsoaTkx NSwgdGFyZ2V0LCBmbGFncyk7CiAJaTkxNV9yZXRpcmVfcmVxdWVzdHMoaTkxNSk7CiAKLQkvKgot CSAqIFVuYmluZGluZyBvZiBvYmplY3RzIHdpbGwgcmVxdWlyZSBIVyBhY2Nlc3M7IExldCB1cyBu b3Qgd2FrZSB0aGUKLQkgKiBkZXZpY2UganVzdCB0byByZWNvdmVyIGEgbGl0dGxlIG1lbW9yeS4g SWYgYWJzb2x1dGVseSBuZWNlc3NhcnksCi0JICogd2Ugd2lsbCBmb3JjZSB0aGUgd2FrZSBkdXJp bmcgb29tLW5vdGlmaWVyLgotCSAqLwotCWlmICgoZmxhZ3MgJiBJOTE1X1NIUklOS19CT1VORCkg JiYKLQkgICAgIWludGVsX3J1bnRpbWVfcG1fZ2V0X2lmX2luX3VzZShpOTE1KSkKLQkJZmxhZ3Mg Jj0gfkk5MTVfU0hSSU5LX0JPVU5EOwotCiAJLyoKIAkgKiBBcyB3ZSBtYXkgY29tcGxldGVseSBy ZXdyaXRlIHRoZSAodW4pYm91bmQgbGlzdCB3aGlsc3QgdW5iaW5kaW5nCiAJICogKGR1ZSB0byBy ZXRpcmluZyByZXF1ZXN0cykgd2UgaGF2ZSB0byBzdHJpY3RseSBwcm9jZXNzIG9ubHkKQEAgLTI2 NywxNSArMjMwLDcwIEBAIGk5MTVfZ2VtX3NocmluayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSwKIAkJc3Bpbl91bmxvY2soJmk5MTUtPm1tLm9ial9sb2NrKTsKIAl9CiAKLQlpZiAoZmxh Z3MgJiBJOTE1X1NIUklOS19CT1VORCkKLQkJaW50ZWxfcnVudGltZV9wbV9wdXQoaTkxNSk7Ci0K IAlpOTE1X3JldGlyZV9yZXF1ZXN0cyhpOTE1KTsKIAotCXNocmlua2VyX3VubG9jayhpOTE1LCB1 bmxvY2spOwotCiAJaWYgKG5yX3NjYW5uZWQpCiAJCSpucl9zY2FubmVkICs9IHNjYW5uZWQ7CisK KwlyZXR1cm4gY291bnQ7Cit9CisKKy8qKgorICogaTkxNV9nZW1fc2hyaW5rIC0gU2hyaW5rIGJ1 ZmZlciBvYmplY3QgY2FjaGVzCisgKiBAaTkxNTogaTkxNSBkZXZpY2UKKyAqIEB0YXJnZXQ6IGFt b3VudCBvZiBtZW1vcnkgdG8gbWFrZSBhdmFpbGFibGUsIGluIHBhZ2VzCisgKiBAbnJfc2Nhbm5l ZDogb3B0aW9uYWwgb3V0cHV0IGZvciBudW1iZXIgb2YgcGFnZXMgc2Nhbm5lZCAoaW5jcmVtZW50 YWwpCisgKiBAZmxhZ3M6IGNvbnRyb2wgZmxhZ3MgZm9yIHNlbGVjdGluZyBjYWNoZSB0eXBlcwor ICoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgdGhlIG1haW4gaW50ZXJmYWNlIHRvIHRoZSBzaHJpbmtl ci4gSXQgd2lsbCB0cnkgdG8gcmVsZWFzZQorICogdXAgdG8gQHRhcmdldCBwYWdlcyBvZiBtYWlu IG1lbW9yeSBiYWNraW5nIHN0b3JhZ2UgZnJvbSBidWZmZXIgb2JqZWN0cy4KKyAqIFNlbGVjdGlv biBvZiB0aGUgc3BlY2lmaWMgY2FjaGVzIGNhbiBiZSBkb25lIHdpdGggQGZsYWdzLiBUaGlzIGlz IGUuZy4gdXNlZnVsCisgKiB3aGVuIHB1cmdlYWJsZSBvYmplY3RzIHNob3VsZCBiZSByZW1vdmVk IGZyb20gY2FjaGVzIHByZWZlcmVudGlhbGx5LgorICoKKyAqIE5vdGUgdGhhdCBpdCdzIG5vdCBn dWFyYW50ZWVkIHRoYXQgcmVsZWFzZWQgYW1vdW50IGlzIGFjdHVhbGx5IGF2YWlsYWJsZSBhcwor ICogZnJlZSBzeXN0ZW0gbWVtb3J5IC0gdGhlIHBhZ2VzIG1pZ2h0IHN0aWxsIGJlIGluLXVzZWQg dG8gZHVlIHRvIG90aGVyIHJlYXNvbnMKKyAqIChsaWtlIGNwdSBtbWFwcykgb3IgdGhlIG1tIGNv cmUgaGFzIHJldXNlZCB0aGVtIGJlZm9yZSB3ZSBjb3VsZCBncmFiIHRoZW0uCisgKiBUaGVyZWZv cmUgY29kZSB0aGF0IG5lZWRzIHRvIGV4cGxpY2l0bHkgc2hyaW5rIGJ1ZmZlciBvYmplY3RzIGNh Y2hlcyAoZS5nLiB0bworICogYXZvaWQgZGVhZGxvY2tzIGluIG1lbW9yeSByZWNsYWltKSBtdXN0 IGZhbGwgYmFjayB0byBpOTE1X2dlbV9zaHJpbmtfYWxsKCkuCisgKgorICogQWxzbyBub3RlIHRo YXQgYW55IGtpbmQgb2YgcGlubmluZyAoYm90aCBwZXItdm1hIGFkZHJlc3Mgc3BhY2UgcGlucyBh bmQKKyAqIGJhY2tpbmcgc3RvcmFnZSBwaW5zIGF0IHRoZSBidWZmZXIgb2JqZWN0IGxldmVsKSBy ZXN1bHQgaW4gdGhlIHNocmlua2VyIGNvZGUKKyAqIGhhdmluZyB0byBza2lwIHRoZSBvYmplY3Qu CisgKgorICogUmV0dXJuczoKKyAqIFRoZSBudW1iZXIgb2YgcGFnZXMgb2YgYmFja2luZyBzdG9y YWdlIGFjdHVhbGx5IHJlbGVhc2VkLgorICovCit1bnNpZ25lZCBsb25nCitpOTE1X2dlbV9zaHJp bmsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJCXVuc2lnbmVkIGxvbmcgdGFyZ2V0 LAorCQl1bnNpZ25lZCBsb25nICpucl9zY2FubmVkLAorCQl1bnNpZ25lZCBpbnQgZmxhZ3MpCit7 CisJdW5zaWduZWQgbG9uZyBjb3VudCA9IDA7CisJYm9vbCB1bmxvY2s7CisKKwl0cmFjZV9pOTE1 X2dlbV9zaHJpbmsoaTkxNSwgdGFyZ2V0LCBmbGFncyk7CisKKwkvKgorCSAqIFVuYmluZGluZyBv ZiBvYmplY3RzIHdpbGwgcmVxdWlyZSBIVyBhY2Nlc3M7IExldCB1cyBub3Qgd2FrZSB0aGUKKwkg KiBkZXZpY2UganVzdCB0byByZWNvdmVyIGEgbGl0dGxlIG1lbW9yeS4gSWYgYWJzb2x1dGVseSBu ZWNlc3NhcnksCisJICogd2Ugd2lsbCBmb3JjZSB0aGUgd2FrZSBkdXJpbmcgb29tLW5vdGlmaWVy LgorCSAqLworCWlmICgoZmxhZ3MgJiBJOTE1X1NIUklOS19CT1VORCkgJiYKKwkgICAgIWludGVs X3J1bnRpbWVfcG1fZ2V0X2lmX2luX3VzZShpOTE1KSkKKwkJZmxhZ3MgJj0gfkk5MTVfU0hSSU5L X0JPVU5EOworCisJaWYgKCFzaHJpbmtlcl9sb2NrKGk5MTUsICZ1bmxvY2spKQorCQlnb3RvIG91 dDsKKworCWNvdW50ID0gX19pOTE1X2dlbV9zaHJpbmsoaTkxNSwgdGFyZ2V0LCBucl9zY2FubmVk LCBmbGFncyk7CisKKwlzaHJpbmtlcl91bmxvY2soaTkxNSwgdW5sb2NrKTsKKworb3V0OgorCWlm IChmbGFncyAmIEk5MTVfU0hSSU5LX0JPVU5EKQorCQlpbnRlbF9ydW50aW1lX3BtX3B1dChpOTE1 KTsKKwogCXJldHVybiBjb3VudDsKIH0KIApAQCAtMzUyLDYgKzM3MCw3IEBAIGk5MTVfZ2VtX3No cmlua2VyX3NjYW4oc3RydWN0IHNocmlua2VyICpzaHJpbmtlciwgc3RydWN0IHNocmlua19jb250 cm9sICpzYykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9CiAJCWNvbnRhaW5l cl9vZihzaHJpbmtlciwgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUsIG1tLnNocmlua2VyKTsKKwlj b25zdCB1bnNpZ25lZCBpbnQgZmxhZ3MgPSBJOTE1X1NIUklOS19CT1VORCB8IEk5MTVfU0hSSU5L X1VOQk9VTkQ7CiAJdW5zaWduZWQgbG9uZyBmcmVlZDsKIAlib29sIHVubG9jazsKIApAQCAtMzYw LDI2ICszNzksMjEgQEAgaTkxNV9nZW1fc2hyaW5rZXJfc2NhbihzdHJ1Y3Qgc2hyaW5rZXIgKnNo cmlua2VyLCBzdHJ1Y3Qgc2hyaW5rX2NvbnRyb2wgKnNjKQogCWlmICghc2hyaW5rZXJfbG9jayhp OTE1LCAmdW5sb2NrKSkKIAkJcmV0dXJuIFNIUklOS19TVE9QOwogCi0JZnJlZWQgPSBpOTE1X2dl bV9zaHJpbmsoaTkxNSwKLQkJCQlzYy0+bnJfdG9fc2NhbiwKLQkJCQkmc2MtPm5yX3NjYW5uZWQs Ci0JCQkJSTkxNV9TSFJJTktfQk9VTkQgfAotCQkJCUk5MTVfU0hSSU5LX1VOQk9VTkQgfAotCQkJ CUk5MTVfU0hSSU5LX1BVUkdFQUJMRSk7CisJZnJlZWQgPSBfX2k5MTVfZ2VtX3NocmluayhpOTE1 LAorCQkJCSAgc2MtPm5yX3RvX3NjYW4sCisJCQkJICAmc2MtPm5yX3NjYW5uZWQsCisJCQkJICBm bGFncyB8IEk5MTVfU0hSSU5LX1BVUkdFQUJMRSk7CiAJaWYgKHNjLT5ucl9zY2FubmVkIDwgc2Mt Pm5yX3RvX3NjYW4pCi0JCWZyZWVkICs9IGk5MTVfZ2VtX3NocmluayhpOTE1LAotCQkJCQkgc2Mt Pm5yX3RvX3NjYW4gLSBzYy0+bnJfc2Nhbm5lZCwKLQkJCQkJICZzYy0+bnJfc2Nhbm5lZCwKLQkJ CQkJIEk5MTVfU0hSSU5LX0JPVU5EIHwKLQkJCQkJIEk5MTVfU0hSSU5LX1VOQk9VTkQpOworCQlm cmVlZCArPSBfX2k5MTVfZ2VtX3NocmluayhpOTE1LAorCQkJCQkgICBzYy0+bnJfdG9fc2NhbiAt IHNjLT5ucl9zY2FubmVkLAorCQkJCQkgICAmc2MtPm5yX3NjYW5uZWQsCisJCQkJCSAgIGZsYWdz KTsKIAlpZiAoc2MtPm5yX3NjYW5uZWQgPCBzYy0+bnJfdG9fc2NhbiAmJiBjdXJyZW50X2lzX2tz d2FwZCgpKSB7CiAJCWludGVsX3J1bnRpbWVfcG1fZ2V0KGk5MTUpOwotCQlmcmVlZCArPSBpOTE1 X2dlbV9zaHJpbmsoaTkxNSwKLQkJCQkJIHNjLT5ucl90b19zY2FuIC0gc2MtPm5yX3NjYW5uZWQs Ci0JCQkJCSAmc2MtPm5yX3NjYW5uZWQsCi0JCQkJCSBJOTE1X1NIUklOS19BQ1RJVkUgfAotCQkJ CQkgSTkxNV9TSFJJTktfQk9VTkQgfAotCQkJCQkgSTkxNV9TSFJJTktfVU5CT1VORCk7CisJCWZy ZWVkICs9IF9faTkxNV9nZW1fc2hyaW5rKGk5MTUsCisJCQkJCSAgIHNjLT5ucl90b19zY2FuIC0g c2MtPm5yX3NjYW5uZWQsCisJCQkJCSAgICZzYy0+bnJfc2Nhbm5lZCwKKwkJCQkJICAgZmxhZ3Mg fCBJOTE1X1NIUklOS19BQ1RJVkUpOwogCQlpbnRlbF9ydW50aW1lX3BtX3B1dChpOTE1KTsKIAl9 CiAKQEAgLTQ3NywxMSArNDkxLDExIEBAIGk5MTVfZ2VtX3Nocmlua2VyX3ZtYXAoc3RydWN0IG5v dGlmaWVyX2Jsb2NrICpuYiwgdW5zaWduZWQgbG9uZyBldmVudCwgdm9pZCAqcHRyCiAJCWdvdG8g b3V0OwogCiAJaW50ZWxfcnVudGltZV9wbV9nZXQoaTkxNSk7Ci0JZnJlZWRfcGFnZXMgKz0gaTkx NV9nZW1fc2hyaW5rKGk5MTUsIC0xVUwsIE5VTEwsCi0JCQkJICAgICAgIEk5MTVfU0hSSU5LX0JP VU5EIHwKLQkJCQkgICAgICAgSTkxNV9TSFJJTktfVU5CT1VORCB8Ci0JCQkJICAgICAgIEk5MTVf U0hSSU5LX0FDVElWRSB8Ci0JCQkJICAgICAgIEk5MTVfU0hSSU5LX1ZNQVBTKTsKKwlmcmVlZF9w YWdlcyArPSBfX2k5MTVfZ2VtX3NocmluayhpOTE1LCAtMVVMLCBOVUxMLAorCQkJCQkgSTkxNV9T SFJJTktfQk9VTkQgfAorCQkJCQkgSTkxNV9TSFJJTktfVU5CT1VORCB8CisJCQkJCSBJOTE1X1NI UklOS19BQ1RJVkUgfAorCQkJCQkgSTkxNV9TSFJJTktfVk1BUFMpOwogCWludGVsX3J1bnRpbWVf cG1fcHV0KGk5MTUpOwogCiAJLyogV2UgYWxzbyB3YW50IHRvIGNsZWFyIGFueSBjYWNoZWQgaW9t YXBzIGFzIHRoZXkgd3JhcCB2bWFwICovCi0tIAoyLjE5LjEKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=