From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH v2 4/4] drm/i915: Fix i915_gem_evict_for_vma (soft-pinning) Date: Thu, 17 Nov 2016 12:08:44 +0000 Message-ID: <20161117120844.27340-4-chris@chris-wilson.co.uk> References: <20161117120844.27340-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 441E46E7CE for ; Thu, 17 Nov 2016 12:08:52 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id g23so20712832wme.1 for ; Thu, 17 Nov 2016 04:08:52 -0800 (PST) In-Reply-To: <20161117120844.27340-1-chris@chris-wilson.co.uk> 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 U29mdC1waW5uaW5nIGRlcGVuZHMgdXBvbiBiZWluZyBhYmxlIHRvIGNoZWNrIGZvciBhdmFpbGFi aWx0eSBvZiBhbgppbnRlcnZhbCBhbmQgZXZpY3Qgb3ZlcmxhcHBpbmcgb2JqZWN0IGZyb20gYSBk cm1fbW0gcmFuZ2UgbWFuYWdlciB2ZXJ5CnF1aWNrbHkuIEN1cnJlbnRseSBpdCB1c2VzIGEgbGlu ZWFyIGxpc3QsIGFuZCBzbyBwZXJmb3JtYW5jZSBpcyBkaXJlIGFuZApub3Qgc3VpdGFibGUgYXMg YSBnZW5lcmFsIHJlcGxhY2VtZW50LiBXb3JzZSwgdGhlIGN1cnJlbnQgY29kZSB3aWxsIG9vcHMK aWYgaXQgdHJpZXMgdG8gZXZpY3QgYW4gYWN0aXZlIGJ1ZmZlci4KCkl0IGFsc28gaGVscHMgaWYg dGhlIHJvdXRpbmUgcmVwb3J0cyB0aGUgY29ycmVjdCBlcnJvciBjb2RlcyBhcyBleHBlY3RlZApi eSBpdHMgY2FsbGVycyBhbmQgZW1pdHMgYSB0cmFjZXBvaW50IHVwb24gdXNlLgoKRm9yIHBvc3Rl cml0eSBzaW5jZSB0aGUgd3JvbmcgcGF0Y2ggd2FzIHB1c2hlZCAoaS5lLiB0aGF0IG1pc3NlZCB0 aGVzZQprZXkgcG9pbnRzIGFuZCBoYWQga25vd24gYnVncyksIHRoaXMgaXMgdGhlIGNoYW5nZWxv ZyB0aGF0IHNob3VsZCBoYXZlCmJlZW4gb24gY29tbWl0IDUwNmE4ZTg3ZDhkMiAoImRybS9pOTE1 OiBBZGQgc29mdC1waW5uaW5nIEFQSSBmb3IKZXhlY2J1ZmZlciIpOgoKVXNlcnNwYWNlIGNhbiBw YXNzIGluIGFuIG9mZnNldCB0aGF0IGl0IHByZXN1bWVzIHRoZSBvYmplY3QgaXMgbG9jYXRlZAph dC4gVGhlIGtlcm5lbCB3aWxsIHRoZW4gZG8gaXRzIHV0bW9zdCB0byBmaXQgdGhlIG9iamVjdCBp bnRvIHRoYXQKbG9jYXRpb24uIFRoZSBhc3N1bXB0aW9uIGlzIHRoYXQgdXNlcnNwYWNlIGlzIGhh bmRsaW5nIGl0cyBvd24gb2JqZWN0CmxvY2F0aW9ucyAoZm9yIGV4YW1wbGUgYWxvbmcgd2l0aCBm dWxsLXBwZ3R0KSBhbmQgdGhhdCB0aGUga2VybmVsIHdpbGwKcmFyZWx5IGhhdmUgdG8gbWFrZSBz cGFjZSBmb3IgdGhlIHVzZXIncyByZXF1ZXN0cy4KClRoaXMgZXh0ZW5kcyB0aGUgRFJNX0lPQ1RM X0k5MTVfR0VNX0VYRUNCVUZGRVIyIHRvIGRvIHRoZSBmb2xsb3dpbmc6CiogaWYgdGhlIHVzZXIg c3VwcGxpZXMgYSB2aXJ0dWFsIGFkZHJlc3MgdmlhIHRoZSBleGVjb2JqZWN0LT5vZmZzZXQKICAq YW5kKiBzZXRzIHRoZSBFWEVDX09CSkVDVF9QSU5ORUQgZmxhZyBpbiBleGVjb2JqZWN0LT5mbGFn cywgdGhlbgogIHRoYXQgb2JqZWN0IGlzIHBsYWNlZCBhdCB0aGF0IG9mZnNldCBpbiB0aGUgYWRk cmVzcyBzcGFjZSBzZWxlY3RlZAogIGJ5IHRoZSBjb250ZXh0IHNwZWNpZmllciBpbiBleGVjYnVm ZmVyLgoqIHRoZSBsb2NhdGlvbiBtdXN0IGJlIGFsaWduZWQgdG8gdGhlIEdUVCBwYWdlIHNpemUs IDQwOTYgYnl0ZXMKKiBhcyB0aGUgb2JqZWN0IGlzIHBsYWNlZCBleGFjdGx5IGFzIHNwZWNpZmll ZCwgaXQgbWF5IGJlIHVzZWQgYnkgdGhpcwogIGV4ZWNidWZmZXIgY2FsbCB3aXRob3V0IHJlbG9j YXRpb25zIHBvaW50aW5nIHRvIGl0CgpJdCBtYXkgZmFpbCB0byBkbyBzbyBpZjoKKiBFSU5WQUwg aXMgcmV0dXJuZWQgaWYgdGhlIG9iamVjdCBkb2VzIG5vdCBoYXZlIGEgNDA5NiBieXRlIGFsaWdu ZWQKICBhZGRyZXNzCiogdGhlIG9iamVjdCBjb25mbGljdHMgd2l0aCBhbm90aGVyIHBpbm5lZCBv YmplY3QgKGVpdGhlciBwaW5uZWQgYnkKICBoYXJkd2FyZSBpbiB0aGF0IGFkZHJlc3Mgc3BhY2Us IGUuZy4gc2Nhbm91dHMgaW4gdGhlIGFsaWFzaW5nIHBwZ3R0KQogIG9yIHdpdGhpbiB0aGUgc2Ft ZSBiYXRjaC4KICBFQlVTWSBpcyByZXR1cm5lZCBpZiB0aGUgbG9jYXRpb24gaXMgcGlubmVkIGJ5 IGhhcmR3YXJlCiAgRUlOVkFMIGlzIHJldHVybmVkIGlmIHRoZSBsb2NhdGlvbiBpcyBhbHJlYWR5 IGluIHVzZSBieSB0aGUgYmF0Y2gKKiBFSU5WQUwgaXMgcmV0dXJuZWQgaWYgdGhlIG9iamVjdCBj b25mbGljdHMgd2l0aCBpdHMgb3duIGFsaWdubWVudCAoYXMgbWVldHMKICB0aGUgaGFyZHdhcmUg cmVxdWlyZW1lbnRzKSBvciBpZiB0aGUgcGxhY2VtZW50IG9mIHRoZSBvYmplY3QgZG9lcyBub3Qg Zml0CiAgd2l0aGluIHRoZSBhZGRyZXNzIHNwYWNlCgpBbGwgb3RoZXIgZXhlY2J1ZmZlciBlcnJv cnMgYXBwbHkuCgpQcmVzZW5jZSBvZiB0aGlzIGV4ZWNidWYgZXh0ZW5zaW9uIG1heSBiZSBxdWVy aWVkIGJ5IHBhc3NpbmcKSTkxNV9QQVJBTV9IQVNfRVhFQ19TT0ZUUElOIHRvIERSTV9JT0NUTF9J OTE1X0dFVFBBUkFNIGFuZCBjaGVja2luZyBmb3IKYSByZXBvcnRlZCB2YWx1ZSBvZiAxIChvciBn cmVhdGVyKS4KCnYyOiBDb21iaW5lIHRoZSBob2xlL2FkanVzdGVkLWhvbGUgRU5PU1BDIGNoZWNr cwoKRml4ZXM6IDUwNmE4ZTg3ZDhkMiAoImRybS9pOTE1OiBBZGQgc29mdC1waW5uaW5nIEFQSSBm b3IgZXhlY2J1ZmZlciIpClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMt d2lsc29uLmNvLnVrPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAg ICAgICB8ICAzICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ldmljdC5jICAgICAg fCA4NSArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyB8ICAxICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf dHJhY2UuaCAgICAgICAgICB8IDIzICsrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3ZtYS5jICAgICAgICAgICAgfCAgOCArLS0KIDUgZmlsZXMgY2hhbmdlZCwgODcgaW5zZXJ0aW9u cygrKSwgMzMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggMzJhNzdl ZTQ4OWM4Li43MTQ5OTBiZTJlMTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMzI1OSw3 ICszMjU5LDggQEAgaW50IF9fbXVzdF9jaGVjayBpOTE1X2dlbV9ldmljdF9zb21ldGhpbmcoc3Ry dWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAJCQkJCSAgdW5zaWduZWQgY2FjaGVfbGV2ZWws CiAJCQkJCSAgdTY0IHN0YXJ0LCB1NjQgZW5kLAogCQkJCQkgIHVuc2lnbmVkIGZsYWdzKTsKLWlu dCBfX211c3RfY2hlY2sgaTkxNV9nZW1fZXZpY3RfZm9yX3ZtYShzdHJ1Y3QgaTkxNV92bWEgKnRh cmdldCk7CitpbnQgX19tdXN0X2NoZWNrIGk5MTVfZ2VtX2V2aWN0X2Zvcl92bWEoc3RydWN0IGk5 MTVfdm1hICp2bWEsCisJCQkJCXVuc2lnbmVkIGludCBmbGFncyk7CiBpbnQgaTkxNV9nZW1fZXZp Y3Rfdm0oc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sIGJvb2wgZG9faWRsZSk7CiAKIC8q IGJlbG9uZ3MgaW4gaTkxNV9nZW1fZ3R0LmggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2V2aWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9l dmljdC5jCmluZGV4IGJkMDg4MTRiMDE1Yy4uYzA2NjQ0OTBhNDI0IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ldmljdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2V2aWN0LmMKQEAgLTIxMiw0NSArMjEyLDgwIEBAIGk5MTVfZ2VtX2V2aWN0 X3NvbWV0aGluZyhzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAlyZXR1cm4gcmV0Owog fQogCi1pbnQKLWk5MTVfZ2VtX2V2aWN0X2Zvcl92bWEoc3RydWN0IGk5MTVfdm1hICp0YXJnZXQp CitpbnQgaTkxNV9nZW1fZXZpY3RfZm9yX3ZtYShzdHJ1Y3QgaTkxNV92bWEgKnRhcmdldCwgdW5z aWduZWQgaW50IGZsYWdzKQogewotCXN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSwgKm5leHQ7CisJ TElTVF9IRUFEKGV2aWN0aW9uX2xpc3QpOworCXN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZTsKKwl1 NjQgc3RhcnQgPSB0YXJnZXQtPm5vZGUuc3RhcnQ7CisJdTY0IGVuZCA9IHN0YXJ0ICsgdGFyZ2V0 LT5ub2RlLnNpemU7CisJc3RydWN0IGk5MTVfdm1hICp2bWEsICpuZXh0OworCWJvb2wgY2hlY2tf Y29sb3I7CisJaW50IHJldCA9IDA7CiAKIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZ0YXJnZXQtPnZt LT5kZXYtPnN0cnVjdF9tdXRleCk7CisJdHJhY2VfaTkxNV9nZW1fZXZpY3Rfdm1hKHRhcmdldCwg ZmxhZ3MpOworCisJY2hlY2tfY29sb3IgPSB0YXJnZXQtPnZtLT5tbS5jb2xvcl9hZGp1c3Q7CisJ aWYgKGNoZWNrX2NvbG9yKSB7CisJCWlmIChzdGFydCA+IHRhcmdldC0+dm0tPnN0YXJ0KQorCQkJ c3RhcnQgLT0gNDA5NjsKKwkJaWYgKGVuZCA8IHRhcmdldC0+dm0tPnN0YXJ0ICsgdGFyZ2V0LT52 bS0+dG90YWwpCisJCQllbmQgKz0gNDA5NjsKKwl9CiAKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3Nh ZmUobm9kZSwgbmV4dCwKLQkJCSZ0YXJnZXQtPnZtLT5tbS5oZWFkX25vZGUubm9kZV9saXN0LAot CQkJbm9kZV9saXN0KSB7Ci0JCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwotCQlpbnQgcmV0OwotCi0J CWlmIChub2RlLT5zdGFydCArIG5vZGUtPnNpemUgPD0gdGFyZ2V0LT5ub2RlLnN0YXJ0KQotCQkJ Y29udGludWU7Ci0JCWlmIChub2RlLT5zdGFydCA+PSB0YXJnZXQtPm5vZGUuc3RhcnQgKyB0YXJn ZXQtPm5vZGUuc2l6ZSkKKwlkcm1fbW1fZm9yX2VhY2hfbm9kZV9pbl9yYW5nZShub2RlLCAmdGFy Z2V0LT52bS0+bW0sIHN0YXJ0LCBlbmQpIHsKKwkJLyogSWYgd2UgZmluZCBhbnkgbm9uLW9iamVj dHMgKCF2bWEpLCB3ZSBjYW5ub3QgZXZpY3QgdGhlbSAqLworCQlpZiAobm9kZS0+Y29sb3IgPT0g VU5DT0xPUkVEKSB7CisJCQlyZXQgPSAtRU5PU1BDOwogCQkJYnJlYWs7CisJCX0KIAogCQl2bWEg PSBjb250YWluZXJfb2Yobm9kZSwgdHlwZW9mKCp2bWEpLCBub2RlKTsKIAotCQlpZiAoaTkxNV92 bWFfaXNfcGlubmVkKHZtYSkpIHsKLQkJCWlmICghdm1hLT5leGVjX2VudHJ5IHx8IGk5MTVfdm1h X3Bpbl9jb3VudCh2bWEpID4gMSkKLQkJCQkvKiBPYmplY3QgaXMgcGlubmVkIGZvciBzb21lIG90 aGVyIHVzZSAqLwotCQkJCXJldHVybiAtRUJVU1k7CisJCS8qIElmIHdlIGFyZSB1c2luZyBjb2xv cmluZyB0byBpbnNlcnQgZ3VhcmQgcGFnZXMgYmV0d2VlbgorCQkgKiBkaWZmZXJlbnQgY2FjaGUg ZG9tYWlucyB3aXRoaW4gdGhlIGFkZHJlc3Mgc3BhY2UsIHdlIGhhdmUKKwkJICogdG8gY2hlY2sg d2hldGhlciB0aGUgb2JqZWN0cyBvbiBlaXRoZXIgc2lkZSBvZiBvdXIgcmFuZ2UKKwkJICogYWJ1 dHQgYW5kIGNvbmZsaWN0LiBJZiB0aGV5IGFyZSBpbiBjb25mbGljdCwgdGhlbiB3ZSBldmljdAor CQkgKiB0aG9zZSBhcyB3ZWxsIHRvIG1ha2Ugcm9vbSBmb3Igb3VyIGd1YXJkIHBhZ2VzLgorCQkg Ki8KKwkJaWYgKGNoZWNrX2NvbG9yKSB7CisJCQlpZiAodm1hLT5ub2RlLnN0YXJ0ICsgdm1hLT5u b2RlLnNpemUgPT0gdGFyZ2V0LT5ub2RlLnN0YXJ0KSB7CisJCQkJaWYgKHZtYS0+bm9kZS5jb2xv ciA9PSB0YXJnZXQtPm5vZGUuY29sb3IpCisJCQkJCWNvbnRpbnVlOworCQkJfQorCQkJaWYgKHZt YS0+bm9kZS5zdGFydCA9PSB0YXJnZXQtPm5vZGUuc3RhcnQgKyB0YXJnZXQtPm5vZGUuc2l6ZSkg eworCQkJCWlmICh2bWEtPm5vZGUuY29sb3IgPT0gdGFyZ2V0LT5ub2RlLmNvbG9yKQorCQkJCQlj b250aW51ZTsKKwkJCX0KKwkJfQogCi0JCQkvKiBXZSBuZWVkIHRvIGV2aWN0IGEgYnVmZmVyIGlu IHRoZSBzYW1lIGJhdGNoICovCi0JCQlpZiAodm1hLT5leGVjX2VudHJ5LT5mbGFncyAmIEVYRUNf T0JKRUNUX1BJTk5FRCkKLQkJCQkvKiBPdmVybGFwcGluZyBmaXhlZCBvYmplY3RzIGluIHRoZSBz YW1lIGJhdGNoICovCi0JCQkJcmV0dXJuIC1FSU5WQUw7CisJCWlmIChmbGFncyAmIFBJTl9OT05C TE9DSyAmJgorCQkgICAgKGk5MTVfdm1hX2lzX3Bpbm5lZCh2bWEpIHx8IGk5MTVfdm1hX2lzX2Fj dGl2ZSh2bWEpKSkgeworCQkJcmV0ID0gLUVOT1NQQzsKKwkJCWJyZWFrOworCQl9CiAKLQkJCXJl dHVybiAtRU5PU1BDOworCQkvKiBPdmVybGFwIG9mIG9iamVjdHMgaW4gdGhlIHNhbWUgYmF0Y2g/ ICovCisJCWlmIChpOTE1X3ZtYV9pc19waW5uZWQodm1hKSkgeworCQkJcmV0ID0gLUVOT1NQQzsK KwkJCWlmICh2bWEtPmV4ZWNfZW50cnkgJiYKKwkJCSAgICB2bWEtPmV4ZWNfZW50cnktPmZsYWdz ICYgRVhFQ19PQkpFQ1RfUElOTkVEKQorCQkJCXJldCA9IC1FSU5WQUw7CisJCQlicmVhazsKIAkJ fQogCi0JCXJldCA9IGk5MTVfdm1hX3VuYmluZCh2bWEpOwotCQlpZiAocmV0KQotCQkJcmV0dXJu IHJldDsKKwkJX19pOTE1X3ZtYV9waW4odm1hKTsKKwkJbGlzdF9hZGQoJnZtYS0+ZXhlY19saXN0 LCAmZXZpY3Rpb25fbGlzdCk7CiAJfQogCi0JcmV0dXJuIDA7CisJbGlzdF9mb3JfZWFjaF9lbnRy eV9zYWZlKHZtYSwgbmV4dCwgJmV2aWN0aW9uX2xpc3QsIGV4ZWNfbGlzdCkgeworCQlsaXN0X2Rl bF9pbml0KCZ2bWEtPmV4ZWNfbGlzdCk7CisJCV9faTkxNV92bWFfdW5waW4odm1hKTsKKwkJaWYg KHJldCA9PSAwKQorCQkJcmV0ID0gaTkxNV92bWFfdW5iaW5kKHZtYSk7CisJfQorCisJcmV0dXJu IHJldDsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9leGVjYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVy LmMKaW5kZXggMTA5Zjk5ZjIyZTdjLi5mMjE5ZjI4OTRhMzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKQEAgLTI3NCw2ICsyNzQsNyBAQCBzdGF0aWMgdm9p ZCBlYl9kZXN0cm95KHN0cnVjdCBlYl92bWFzICplYikKIAkJCQkgICAgICAgZXhlY19saXN0KTsK IAkJbGlzdF9kZWxfaW5pdCgmdm1hLT5leGVjX2xpc3QpOwogCQlpOTE1X2dlbV9leGVjYnVmZmVy X3VucmVzZXJ2ZV92bWEodm1hKTsKKwkJdm1hLT5leGVjX2VudHJ5ID0gTlVMTDsKIAkJaTkxNV92 bWFfcHV0KHZtYSk7CiAJfQogCWtmcmVlKGViKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfdHJhY2UuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdHJhY2UuaApp bmRleCBjNWQyMTBlYmFhOWEuLjJlZDYwZWQ3MGZlMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV90cmFjZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdHJh Y2UuaApAQCAtNDUwLDYgKzQ1MCwyOSBAQCBUUkFDRV9FVkVOVChpOTE1X2dlbV9ldmljdF92bSwK IAkgICAgVFBfcHJpbnRrKCJkZXY9JWQsIHZtPSVwIiwgX19lbnRyeS0+ZGV2LCBfX2VudHJ5LT52 bSkKICk7CiAKK1RSQUNFX0VWRU5UKGk5MTVfZ2VtX2V2aWN0X3ZtYSwKKwkgICAgVFBfUFJPVE8o c3RydWN0IGk5MTVfdm1hICp2bWEsIHVuc2lnbmVkIGludCBmbGFncyksCisJICAgIFRQX0FSR1Mo dm1hLCBmbGFncyksCisKKwkgICAgVFBfU1RSVUNUX19lbnRyeSgKKwkJCSAgICAgX19maWVsZCh1 MzIsIGRldikKKwkJCSAgICAgX19maWVsZChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICosIHZt KQorCQkJICAgICBfX2ZpZWxkKHU2NCwgc3RhcnQpCisJCQkgICAgIF9fZmllbGQodTY0LCBzaXpl KQorCQkJICAgICBfX2ZpZWxkKHVuc2lnbmVkIGludCwgZmxhZ3MpCisJCQkgICAgKSwKKworCSAg ICBUUF9mYXN0X2Fzc2lnbigKKwkJCSAgIF9fZW50cnktPmRldiA9IHZtYS0+dm0tPmRldi0+cHJp bWFyeS0+aW5kZXg7CisJCQkgICBfX2VudHJ5LT52bSA9IHZtYS0+dm07CisJCQkgICBfX2VudHJ5 LT5zdGFydCA9IHZtYS0+bm9kZS5zdGFydDsKKwkJCSAgIF9fZW50cnktPnNpemUgPSB2bWEtPm5v ZGUuc2l6ZTsKKwkJCSAgIF9fZW50cnktPmZsYWdzID0gZmxhZ3M7CisJCQkgICksCisKKwkgICAg VFBfcHJpbnRrKCJkZXY9JWQsIHZtPSVwLCBzdGFydD0lbGx4IHNpemU9JWxseCwgZmxhZ3M9JXgi LCBfX2VudHJ5LT5kZXYsIF9fZW50cnktPnZtLCAobG9uZyBsb25nKV9fZW50cnktPnN0YXJ0LCAo bG9uZyBsb25nKV9fZW50cnktPnNpemUsIF9fZW50cnktPmZsYWdzKQorKTsKKwogVFJBQ0VfRVZF TlQoaTkxNV9nZW1fcmluZ19zeW5jX3RvLAogCSAgICBUUF9QUk9UTyhzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnRvLAogCQkgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqZnJv bSksCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYwppbmRleCA3MzhmZjNhNWNkNmUuLjgyN2VhZWI3NTUy NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jCkBAIC0zMjUsMTIgKzMyNSw2IEBAIGJvb2wgaTkx NV9nZW1fdmFsaWRfZ3R0X3NwYWNlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAogCWlmICh2bWEtPnZt LT5tbS5jb2xvcl9hZGp1c3QgPT0gTlVMTCkKIAkJcmV0dXJuIHRydWU7CiAKLQlpZiAoIWRybV9t bV9ub2RlX2FsbG9jYXRlZChndHRfc3BhY2UpKQotCQlyZXR1cm4gdHJ1ZTsKLQotCWlmIChsaXN0 X2VtcHR5KCZndHRfc3BhY2UtPm5vZGVfbGlzdCkpCi0JCXJldHVybiB0cnVlOwotCiAJb3RoZXIg PSBsaXN0X2VudHJ5KGd0dF9zcGFjZS0+bm9kZV9saXN0LnByZXYsIHN0cnVjdCBkcm1fbW1fbm9k ZSwgbm9kZV9saXN0KTsKIAlpZiAob3RoZXItPmFsbG9jYXRlZCAmJiAhb3RoZXItPmhvbGVfZm9s bG93cyAmJiBvdGhlci0+Y29sb3IgIT0gY2FjaGVfbGV2ZWwpCiAJCXJldHVybiBmYWxzZTsKQEAg LTQxMyw3ICs0MDcsNyBAQCBpOTE1X3ZtYV9pbnNlcnQoc3RydWN0IGk5MTVfdm1hICp2bWEsIHU2 NCBzaXplLCB1NjQgYWxpZ25tZW50LCB1NjQgZmxhZ3MpCiAJCXZtYS0+bm9kZS5jb2xvciA9IG9i ai0+Y2FjaGVfbGV2ZWw7CiAJCXJldCA9IGRybV9tbV9yZXNlcnZlX25vZGUoJnZtYS0+dm0tPm1t LCAmdm1hLT5ub2RlKTsKIAkJaWYgKHJldCkgewotCQkJcmV0ID0gaTkxNV9nZW1fZXZpY3RfZm9y X3ZtYSh2bWEpOworCQkJcmV0ID0gaTkxNV9nZW1fZXZpY3RfZm9yX3ZtYSh2bWEsIGZsYWdzKTsK IAkJCWlmIChyZXQgPT0gMCkKIAkJCQlyZXQgPSBkcm1fbW1fcmVzZXJ2ZV9ub2RlKCZ2bWEtPnZt LT5tbSwgJnZtYS0+bm9kZSk7CiAJCQlpZiAocmV0KQotLSAKMi4xMC4yCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK