From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH 1/2] drm/i915: Reduce recursive mutex locking from the shrinker Date: Wed, 9 Jan 2019 14:12:46 +0000 Message-ID: <20190109141247.32166-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 mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id C7F7989503 for ; Wed, 9 Jan 2019 14:12:53 +0000 (UTC) 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 V2hpdGVzcGFjZSBhbmQgY2hlY2twYXRjaCByZXBvcnRlZCBlcnJvcnMuCgp2NDoKICogUmViYXNl LgoKU2lnbmVkLW9mZi1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNv bT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgIHwgICAyICst CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zaHJpbmtlci5jIHwgMTUyICsrKysrKysr KysrKystLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDg0IGluc2VydGlvbnMoKyksIDcwIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IGQ1NzQzOGQ4N2JjMC4uNjc3 YTlhZjM3NzFiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTMxNzgsNyArMzE3OCw3IEBA IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfaW50ZXJuYWwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAogdW5zaWduZWQgbG9uZyBpOTE1X2dlbV9zaHJpbmsoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUsCiAJCQkgICAgICB1bnNpZ25lZCBsb25nIHRhcmdldCwKIAkJCSAgICAg IHVuc2lnbmVkIGxvbmcgKm5yX3NjYW5uZWQsCi0JCQkgICAgICB1bnNpZ25lZCBmbGFncyk7CisJ CQkgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpOwogI2RlZmluZSBJOTE1X1NIUklOS19QVVJHRUFC TEUgMHgxCiAjZGVmaW5lIEk5MTVfU0hSSU5LX1VOQk9VTkQgMHgyCiAjZGVmaW5lIEk5MTVfU0hS SU5LX0JPVU5EIDB4NApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f c2hyaW5rZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3Nocmlua2VyLmMKaW5k ZXggNzJkNmVhMGNhYzdlLi5jZTUzOWQzODQ2MWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX3Nocmlua2VyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fc2hyaW5rZXIuYwpAQCAtMTE1LDM2ICsxMTUsMTEgQEAgc3RhdGljIGJvb2wgdW5zYWZl X2Ryb3BfcGFnZXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAlyZXR1cm4gIWk5 MTVfZ2VtX29iamVjdF9oYXNfcGFnZXMob2JqKTsKIH0KIAotLyoqCi0gKiBpOTE1X2dlbV9zaHJp bmsgLSBTaHJpbmsgYnVmZmVyIG9iamVjdCBjYWNoZXMKLSAqIEBpOTE1OiBpOTE1IGRldmljZQot ICogQHRhcmdldDogYW1vdW50IG9mIG1lbW9yeSB0byBtYWtlIGF2YWlsYWJsZSwgaW4gcGFnZXMK LSAqIEBucl9zY2FubmVkOiBvcHRpb25hbCBvdXRwdXQgZm9yIG51bWJlciBvZiBwYWdlcyBzY2Fu bmVkIChpbmNyZW1lbnRhbCkKLSAqIEBmbGFnczogY29udHJvbCBmbGFncyBmb3Igc2VsZWN0aW5n IGNhY2hlIHR5cGVzCi0gKgotICogVGhpcyBmdW5jdGlvbiBpcyB0aGUgbWFpbiBpbnRlcmZhY2Ug dG8gdGhlIHNocmlua2VyLiBJdCB3aWxsIHRyeSB0byByZWxlYXNlCi0gKiB1cCB0byBAdGFyZ2V0 IHBhZ2VzIG9mIG1haW4gbWVtb3J5IGJhY2tpbmcgc3RvcmFnZSBmcm9tIGJ1ZmZlciBvYmplY3Rz LgotICogU2VsZWN0aW9uIG9mIHRoZSBzcGVjaWZpYyBjYWNoZXMgY2FuIGJlIGRvbmUgd2l0aCBA ZmxhZ3MuIFRoaXMgaXMgZS5nLiB1c2VmdWwKLSAqIHdoZW4gcHVyZ2VhYmxlIG9iamVjdHMgc2hv dWxkIGJlIHJlbW92ZWQgZnJvbSBjYWNoZXMgcHJlZmVyZW50aWFsbHkuCi0gKgotICogTm90ZSB0 aGF0IGl0J3Mgbm90IGd1YXJhbnRlZWQgdGhhdCByZWxlYXNlZCBhbW91bnQgaXMgYWN0dWFsbHkg YXZhaWxhYmxlIGFzCi0gKiBmcmVlIHN5c3RlbSBtZW1vcnkgLSB0aGUgcGFnZXMgbWlnaHQgc3Rp bGwgYmUgaW4tdXNlZCB0byBkdWUgdG8gb3RoZXIgcmVhc29ucwotICogKGxpa2UgY3B1IG1tYXBz KSBvciB0aGUgbW0gY29yZSBoYXMgcmV1c2VkIHRoZW0gYmVmb3JlIHdlIGNvdWxkIGdyYWIgdGhl bS4KLSAqIFRoZXJlZm9yZSBjb2RlIHRoYXQgbmVlZHMgdG8gZXhwbGljaXRseSBzaHJpbmsgYnVm ZmVyIG9iamVjdHMgY2FjaGVzIChlLmcuIHRvCi0gKiBhdm9pZCBkZWFkbG9ja3MgaW4gbWVtb3J5 IHJlY2xhaW0pIG11c3QgZmFsbCBiYWNrIHRvIGk5MTVfZ2VtX3Nocmlua19hbGwoKS4KLSAqCi0g KiBBbHNvIG5vdGUgdGhhdCBhbnkga2luZCBvZiBwaW5uaW5nIChib3RoIHBlci12bWEgYWRkcmVz cyBzcGFjZSBwaW5zIGFuZAotICogYmFja2luZyBzdG9yYWdlIHBpbnMgYXQgdGhlIGJ1ZmZlciBv YmplY3QgbGV2ZWwpIHJlc3VsdCBpbiB0aGUgc2hyaW5rZXIgY29kZQotICogaGF2aW5nIHRvIHNr aXAgdGhlIG9iamVjdC4KLSAqCi0gKiBSZXR1cm5zOgotICogVGhlIG51bWJlciBvZiBwYWdlcyBv ZiBiYWNraW5nIHN0b3JhZ2UgYWN0dWFsbHkgcmVsZWFzZWQuCi0gKi8KLXVuc2lnbmVkIGxvbmcK LWk5MTVfZ2VtX3NocmluayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKLQkJdW5zaWdu ZWQgbG9uZyB0YXJnZXQsCi0JCXVuc2lnbmVkIGxvbmcgKm5yX3NjYW5uZWQsCi0JCXVuc2lnbmVk IGZsYWdzKQorc3RhdGljIHVuc2lnbmVkIGxvbmcKK19faTkxNV9nZW1fc2hyaW5rKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICppOTE1LAorCQkgIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LAorCQkgIHVu c2lnbmVkIGxvbmcgKm5yX3NjYW5uZWQsCisJCSAgdW5zaWduZWQgaW50IGZsYWdzKQogewogCWNv bnN0IHN0cnVjdCB7CiAJCXN0cnVjdCBsaXN0X2hlYWQgKmxpc3Q7CkBAIC0xNTYsMTAgKzEzMSw4 IEBAIGk5MTVfZ2VtX3NocmluayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAl9LCAq cGhhc2U7CiAJdW5zaWduZWQgbG9uZyBjb3VudCA9IDA7CiAJdW5zaWduZWQgbG9uZyBzY2FubmVk ID0gMDsKLQlib29sIHVubG9jazsKIAotCWlmICghc2hyaW5rZXJfbG9jayhpOTE1LCBmbGFncywg JnVubG9jaykpCi0JCXJldHVybiAwOworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmk5MTUtPmRybS5z dHJ1Y3RfbXV0ZXgpOwogCiAJLyoKIAkgKiBXaGVuIHNocmlua2luZyB0aGUgYWN0aXZlIGxpc3Qs IGFsc28gY29uc2lkZXIgYWN0aXZlIGNvbnRleHRzLgpAQCAtMTc1LDE4ICsxNDgsOCBAQCBpOTE1 X2dlbV9zaHJpbmsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCQkJICAgICAgIEk5 MTVfV0FJVF9MT0NLRUQsCiAJCQkJICAgICAgIE1BWF9TQ0hFRFVMRV9USU1FT1VUKTsKIAotCXRy YWNlX2k5MTVfZ2VtX3NocmluayhpOTE1LCB0YXJnZXQsIGZsYWdzKTsKIAlpOTE1X3JldGlyZV9y ZXF1ZXN0cyhpOTE1KTsKIAotCS8qCi0JICogVW5iaW5kaW5nIG9mIG9iamVjdHMgd2lsbCByZXF1 aXJlIEhXIGFjY2VzczsgTGV0IHVzIG5vdCB3YWtlIHRoZQotCSAqIGRldmljZSBqdXN0IHRvIHJl Y292ZXIgYSBsaXR0bGUgbWVtb3J5LiBJZiBhYnNvbHV0ZWx5IG5lY2Vzc2FyeSwKLQkgKiB3ZSB3 aWxsIGZvcmNlIHRoZSB3YWtlIGR1cmluZyBvb20tbm90aWZpZXIuCi0JICovCi0JaWYgKChmbGFn cyAmIEk5MTVfU0hSSU5LX0JPVU5EKSAmJgotCSAgICAhaW50ZWxfcnVudGltZV9wbV9nZXRfaWZf aW5fdXNlKGk5MTUpKQotCQlmbGFncyAmPSB+STkxNV9TSFJJTktfQk9VTkQ7Ci0KIAkvKgogCSAq IEFzIHdlIG1heSBjb21wbGV0ZWx5IHJld3JpdGUgdGhlICh1bilib3VuZCBsaXN0IHdoaWxzdCB1 bmJpbmRpbmcKIAkgKiAoZHVlIHRvIHJldGlyaW5nIHJlcXVlc3RzKSB3ZSBoYXZlIHRvIHN0cmlj dGx5IHByb2Nlc3Mgb25seQpAQCAtMjY1LDE1ICsyMjgsNzAgQEAgaTkxNV9nZW1fc2hyaW5rKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCQlzcGluX3VubG9jaygmaTkxNS0+bW0ub2Jq X2xvY2spOwogCX0KIAotCWlmIChmbGFncyAmIEk5MTVfU0hSSU5LX0JPVU5EKQotCQlpbnRlbF9y dW50aW1lX3BtX3B1dChpOTE1KTsKLQogCWk5MTVfcmV0aXJlX3JlcXVlc3RzKGk5MTUpOwogCi0J c2hyaW5rZXJfdW5sb2NrKGk5MTUsIHVubG9jayk7Ci0KIAlpZiAobnJfc2Nhbm5lZCkKIAkJKm5y X3NjYW5uZWQgKz0gc2Nhbm5lZDsKKworCXJldHVybiBjb3VudDsKK30KKworLyoqCisgKiBpOTE1 X2dlbV9zaHJpbmsgLSBTaHJpbmsgYnVmZmVyIG9iamVjdCBjYWNoZXMKKyAqIEBpOTE1OiBpOTE1 IGRldmljZQorICogQHRhcmdldDogYW1vdW50IG9mIG1lbW9yeSB0byBtYWtlIGF2YWlsYWJsZSwg aW4gcGFnZXMKKyAqIEBucl9zY2FubmVkOiBvcHRpb25hbCBvdXRwdXQgZm9yIG51bWJlciBvZiBw YWdlcyBzY2FubmVkIChpbmNyZW1lbnRhbCkKKyAqIEBmbGFnczogY29udHJvbCBmbGFncyBmb3Ig c2VsZWN0aW5nIGNhY2hlIHR5cGVzCisgKgorICogVGhpcyBmdW5jdGlvbiBpcyB0aGUgbWFpbiBp bnRlcmZhY2UgdG8gdGhlIHNocmlua2VyLiBJdCB3aWxsIHRyeSB0byByZWxlYXNlCisgKiB1cCB0 byBAdGFyZ2V0IHBhZ2VzIG9mIG1haW4gbWVtb3J5IGJhY2tpbmcgc3RvcmFnZSBmcm9tIGJ1ZmZl ciBvYmplY3RzLgorICogU2VsZWN0aW9uIG9mIHRoZSBzcGVjaWZpYyBjYWNoZXMgY2FuIGJlIGRv bmUgd2l0aCBAZmxhZ3MuIFRoaXMgaXMgZS5nLiB1c2VmdWwKKyAqIHdoZW4gcHVyZ2VhYmxlIG9i amVjdHMgc2hvdWxkIGJlIHJlbW92ZWQgZnJvbSBjYWNoZXMgcHJlZmVyZW50aWFsbHkuCisgKgor ICogTm90ZSB0aGF0IGl0J3Mgbm90IGd1YXJhbnRlZWQgdGhhdCByZWxlYXNlZCBhbW91bnQgaXMg YWN0dWFsbHkgYXZhaWxhYmxlIGFzCisgKiBmcmVlIHN5c3RlbSBtZW1vcnkgLSB0aGUgcGFnZXMg bWlnaHQgc3RpbGwgYmUgaW4tdXNlZCB0byBkdWUgdG8gb3RoZXIgcmVhc29ucworICogKGxpa2Ug Y3B1IG1tYXBzKSBvciB0aGUgbW0gY29yZSBoYXMgcmV1c2VkIHRoZW0gYmVmb3JlIHdlIGNvdWxk IGdyYWIgdGhlbS4KKyAqIFRoZXJlZm9yZSBjb2RlIHRoYXQgbmVlZHMgdG8gZXhwbGljaXRseSBz aHJpbmsgYnVmZmVyIG9iamVjdHMgY2FjaGVzIChlLmcuIHRvCisgKiBhdm9pZCBkZWFkbG9ja3Mg aW4gbWVtb3J5IHJlY2xhaW0pIG11c3QgZmFsbCBiYWNrIHRvIGk5MTVfZ2VtX3Nocmlua19hbGwo KS4KKyAqCisgKiBBbHNvIG5vdGUgdGhhdCBhbnkga2luZCBvZiBwaW5uaW5nIChib3RoIHBlci12 bWEgYWRkcmVzcyBzcGFjZSBwaW5zIGFuZAorICogYmFja2luZyBzdG9yYWdlIHBpbnMgYXQgdGhl IGJ1ZmZlciBvYmplY3QgbGV2ZWwpIHJlc3VsdCBpbiB0aGUgc2hyaW5rZXIgY29kZQorICogaGF2 aW5nIHRvIHNraXAgdGhlIG9iamVjdC4KKyAqCisgKiBSZXR1cm5zOgorICogVGhlIG51bWJlciBv ZiBwYWdlcyBvZiBiYWNraW5nIHN0b3JhZ2UgYWN0dWFsbHkgcmVsZWFzZWQuCisgKi8KK3Vuc2ln bmVkIGxvbmcKK2k5MTVfZ2VtX3NocmluayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwK KwkJdW5zaWduZWQgbG9uZyB0YXJnZXQsCisJCXVuc2lnbmVkIGxvbmcgKm5yX3NjYW5uZWQsCisJ CXVuc2lnbmVkIGludCBmbGFncykKK3sKKwl1bnNpZ25lZCBsb25nIGNvdW50ID0gMDsKKwlib29s IHVubG9jazsKKworCXRyYWNlX2k5MTVfZ2VtX3NocmluayhpOTE1LCB0YXJnZXQsIGZsYWdzKTsK KworCS8qCisJICogVW5iaW5kaW5nIG9mIG9iamVjdHMgd2lsbCByZXF1aXJlIEhXIGFjY2Vzczsg TGV0IHVzIG5vdCB3YWtlIHRoZQorCSAqIGRldmljZSBqdXN0IHRvIHJlY292ZXIgYSBsaXR0bGUg bWVtb3J5LiBJZiBhYnNvbHV0ZWx5IG5lY2Vzc2FyeSwKKwkgKiB3ZSB3aWxsIGZvcmNlIHRoZSB3 YWtlIGR1cmluZyBvb20tbm90aWZpZXIuCisJICovCisJaWYgKChmbGFncyAmIEk5MTVfU0hSSU5L X0JPVU5EKSAmJgorCSAgICAhaW50ZWxfcnVudGltZV9wbV9nZXRfaWZfaW5fdXNlKGk5MTUpKQor CQlmbGFncyAmPSB+STkxNV9TSFJJTktfQk9VTkQ7CisKKwlpZiAoIXNocmlua2VyX2xvY2soaTkx NSwgZmxhZ3MsICZ1bmxvY2spKQorCQlnb3RvIG91dDsKKworCWNvdW50ID0gX19pOTE1X2dlbV9z aHJpbmsoaTkxNSwgdGFyZ2V0LCBucl9zY2FubmVkLCBmbGFncyk7CisKKwlzaHJpbmtlcl91bmxv Y2soaTkxNSwgdW5sb2NrKTsKKworb3V0OgorCWlmIChmbGFncyAmIEk5MTVfU0hSSU5LX0JPVU5E KQorCQlpbnRlbF9ydW50aW1lX3BtX3B1dChpOTE1KTsKKwogCXJldHVybiBjb3VudDsKIH0KIApA QCAtMzUwLDYgKzM2OCw3IEBAIGk5MTVfZ2VtX3Nocmlua2VyX3NjYW4oc3RydWN0IHNocmlua2Vy ICpzaHJpbmtlciwgc3RydWN0IHNocmlua19jb250cm9sICpzYykKIHsKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSA9CiAJCWNvbnRhaW5lcl9vZihzaHJpbmtlciwgc3RydWN0IGRybV9p OTE1X3ByaXZhdGUsIG1tLnNocmlua2VyKTsKKwljb25zdCB1bnNpZ25lZCBpbnQgZmxhZ3MgPSBJ OTE1X1NIUklOS19CT1VORCB8IEk5MTVfU0hSSU5LX1VOQk9VTkQ7CiAJdW5zaWduZWQgbG9uZyBm cmVlZDsKIAlib29sIHVubG9jazsKIApAQCAtMzU4LDI2ICszNzcsMjEgQEAgaTkxNV9nZW1fc2hy aW5rZXJfc2NhbihzdHJ1Y3Qgc2hyaW5rZXIgKnNocmlua2VyLCBzdHJ1Y3Qgc2hyaW5rX2NvbnRy b2wgKnNjKQogCWlmICghc2hyaW5rZXJfbG9jayhpOTE1LCAwLCAmdW5sb2NrKSkKIAkJcmV0dXJu IFNIUklOS19TVE9QOwogCi0JZnJlZWQgPSBpOTE1X2dlbV9zaHJpbmsoaTkxNSwKLQkJCQlzYy0+ bnJfdG9fc2NhbiwKLQkJCQkmc2MtPm5yX3NjYW5uZWQsCi0JCQkJSTkxNV9TSFJJTktfQk9VTkQg fAotCQkJCUk5MTVfU0hSSU5LX1VOQk9VTkQgfAotCQkJCUk5MTVfU0hSSU5LX1BVUkdFQUJMRSk7 CisJZnJlZWQgPSBfX2k5MTVfZ2VtX3NocmluayhpOTE1LAorCQkJCSAgc2MtPm5yX3RvX3NjYW4s CisJCQkJICAmc2MtPm5yX3NjYW5uZWQsCisJCQkJICBmbGFncyB8IEk5MTVfU0hSSU5LX1BVUkdF QUJMRSk7CiAJaWYgKHNjLT5ucl9zY2FubmVkIDwgc2MtPm5yX3RvX3NjYW4pCi0JCWZyZWVkICs9 IGk5MTVfZ2VtX3NocmluayhpOTE1LAotCQkJCQkgc2MtPm5yX3RvX3NjYW4gLSBzYy0+bnJfc2Nh bm5lZCwKLQkJCQkJICZzYy0+bnJfc2Nhbm5lZCwKLQkJCQkJIEk5MTVfU0hSSU5LX0JPVU5EIHwK LQkJCQkJIEk5MTVfU0hSSU5LX1VOQk9VTkQpOworCQlmcmVlZCArPSBfX2k5MTVfZ2VtX3Nocmlu ayhpOTE1LAorCQkJCQkgICBzYy0+bnJfdG9fc2NhbiAtIHNjLT5ucl9zY2FubmVkLAorCQkJCQkg ICAmc2MtPm5yX3NjYW5uZWQsCisJCQkJCSAgIGZsYWdzKTsKIAlpZiAoc2MtPm5yX3NjYW5uZWQg PCBzYy0+bnJfdG9fc2NhbiAmJiBjdXJyZW50X2lzX2tzd2FwZCgpKSB7CiAJCWludGVsX3J1bnRp bWVfcG1fZ2V0KGk5MTUpOwotCQlmcmVlZCArPSBpOTE1X2dlbV9zaHJpbmsoaTkxNSwKLQkJCQkJ IHNjLT5ucl90b19zY2FuIC0gc2MtPm5yX3NjYW5uZWQsCi0JCQkJCSAmc2MtPm5yX3NjYW5uZWQs Ci0JCQkJCSBJOTE1X1NIUklOS19BQ1RJVkUgfAotCQkJCQkgSTkxNV9TSFJJTktfQk9VTkQgfAot CQkJCQkgSTkxNV9TSFJJTktfVU5CT1VORCk7CisJCWZyZWVkICs9IF9faTkxNV9nZW1fc2hyaW5r KGk5MTUsCisJCQkJCSAgIHNjLT5ucl90b19zY2FuIC0gc2MtPm5yX3NjYW5uZWQsCisJCQkJCSAg ICZzYy0+bnJfc2Nhbm5lZCwKKwkJCQkJICAgZmxhZ3MgfCBJOTE1X1NIUklOS19BQ1RJVkUpOwog CQlpbnRlbF9ydW50aW1lX3BtX3B1dChpOTE1KTsKIAl9CiAKQEAgLTQ3NSwxMCArNDg5LDEwIEBA IGk5MTVfZ2VtX3Nocmlua2VyX3ZtYXAoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwgdW5zaWdu ZWQgbG9uZyBldmVudCwgdm9pZCAqcHRyCiAJCWdvdG8gb3V0OwogCiAJaW50ZWxfcnVudGltZV9w bV9nZXQoaTkxNSk7Ci0JZnJlZWRfcGFnZXMgKz0gaTkxNV9nZW1fc2hyaW5rKGk5MTUsIC0xVUws IE5VTEwsCi0JCQkJICAgICAgIEk5MTVfU0hSSU5LX0JPVU5EIHwKLQkJCQkgICAgICAgSTkxNV9T SFJJTktfVU5CT1VORCB8Ci0JCQkJICAgICAgIEk5MTVfU0hSSU5LX1ZNQVBTKTsKKwlmcmVlZF9w YWdlcyArPSBfX2k5MTVfZ2VtX3NocmluayhpOTE1LCAtMVVMLCBOVUxMLAorCQkJCQkgSTkxNV9T SFJJTktfQk9VTkQgfAorCQkJCQkgSTkxNV9TSFJJTktfVU5CT1VORCB8CisJCQkJCSBJOTE1X1NI UklOS19WTUFQUyk7CiAJaW50ZWxfcnVudGltZV9wbV9wdXQoaTkxNSk7CiAKIAkvKiBXZSBhbHNv IHdhbnQgdG8gY2xlYXIgYW55IGNhY2hlZCBpb21hcHMgYXMgdGhleSB3cmFwIHZtYXAgKi8KLS0g CjIuMTkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==