From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 029/262] drm/i915: Track the purgeable objects on a separate eviction list Date: Thu, 17 May 2018 07:03:45 +0100 Message-ID: <20180517060738.19193-29-chris@chris-wilson.co.uk> References: <20180517060738.19193-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 fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id EC7F76E631 for ; Thu, 17 May 2018 06:09:26 +0000 (UTC) In-Reply-To: <20180517060738.19193-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 Q3VycmVudGx5IHRoZSBwdXJnZWFibGUgb2JqZWN0cywgSTkxNV9NQURWX0RPTlRORUVELCBhcyBt aXhlZCBpbiB0aGUKbm9ybWFsIGJvdW5kL3VuYm91bmQgbGlzdHMuIEV2ZXJ5IHNocmlua2VyIHBh c3Mgc3RhcnRzIHdpdGggYW4gYXR0ZW1wdAp0byBwdXJnZSBmcm9tIHRoaXMgc2V0IG9mIHVubmVl ZGVkIG9iamVjdHMsIHdoaWNoIGVudGFpbHMgdXMgZG9pbmcgYQp3YWxrIG92ZXIgYm90aCBsaXN0 cyBsb29raW5nIGZvciBhbnkgY2FuZGlkYXRlcy4gSWYgdGhlcmUgYXJlIG5vbmUsIGFuZApzaW5j ZSB3ZSBhcmUgc2hyaW5raW5nIHdlIGNhbiByZWFzb25hYmx5IGFzc3VtZSB0aGF0IHRoZSBsaXN0 cyBhcmUKZnVsbCEsIHRoaXMgYmVjb21lcyBhIHZlcnkgc2xvdyBmdXRpbGUgd2Fsay4KCklmIHdl IHNlcGFyYXRlIG91dCB0aGUgcHVyZ2VhYmxlIG9iamVjdHMgaW50byBvd24gbGlzdCwgdGhpcyBz ZWFyY2ggdGhlbgpiZWNvbWVzIGl0cyBvd24gcGhhc2UgdGhhdCBpcyBwcmVmZXJlbnRpYWxseSBo YW5kbGVkIGR1cmluZyBzaHJpbmtpbmcuCkluc3RlYWQgdGhlIGNvc3QgYmVjb21lcyB0aGF0IHdl IHRoZW4gbmVlZCB0byBmaWx0ZXIgdGhlIHB1cmdlYWJsZSBsaXN0CmlmIHdlIHdhbnQgdG8gZGlz dGluZ3Vpc2ggYmV0d2VlbiBib3VuZCBhbmQgdW5ib3VuZCBvYmplY3RzLgoKU2lnbmVkLW9mZi1i eTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CkNjOiBKb29uYXMgTGFo dGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICB8IDEzICsrKystLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAgfCA0OSArKysrKysrKysrKysrKysrKystLS0tLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3Nocmlua2VyLmMgfCAyOCArKysrKysrLS0t LS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYyAgICAgICAgICB8ICAyICstCiA0 IGZpbGVzIGNoYW5nZWQsIDYwIGluc2VydGlvbnMoKyksIDMyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCmluZGV4IDU2ZmZkZDUyMzg5My4uMWVlZWUwNDNlMTY0IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTkyNiw2ICs5MjYsMTAgQEAgc3RydWN0IGk5MTVfZ2VtX21t IHsKIAkgKiBub3QgYWN0dWFsbHkgaGF2ZSBhbnkgcGFnZXMgYXR0YWNoZWQuCiAJICovCiAJc3Ry dWN0IGxpc3RfaGVhZCB1bmJvdW5kX2xpc3Q7CisJLyoqCisJICogTGlzdCBvZiBvYmplY3RzIHdo aWNoIGFyZSBwdXJnZWFibGUuIE1heSBiZSBhY3RpdmUuCisJICovCisJc3RydWN0IGxpc3RfaGVh ZCBwdXJnZV9saXN0OwogCiAJLyoqIExpc3Qgb2YgYWxsIG9iamVjdHMgaW4gZ3R0X3NwYWNlLCBj dXJyZW50bHkgbW1hcGVkIGJ5IHVzZXJzcGFjZS4KIAkgKiBBbGwgb2JqZWN0cyB3aXRoaW4gdGhp cyBsaXN0IG11c3QgYWxzbyBiZSBvbiBib3VuZF9saXN0LgpAQCAtMzMxMCwxMSArMzMxNCwxMCBA QCB1bnNpZ25lZCBsb25nIGk5MTVfZ2VtX3NocmluayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSwKIAkJCSAgICAgIHVuc2lnbmVkIGxvbmcgdGFyZ2V0LAogCQkJICAgICAgdW5zaWduZWQg bG9uZyAqbnJfc2Nhbm5lZCwKIAkJCSAgICAgIHVuc2lnbmVkIGZsYWdzKTsKLSNkZWZpbmUgSTkx NV9TSFJJTktfUFVSR0VBQkxFIDB4MQotI2RlZmluZSBJOTE1X1NIUklOS19VTkJPVU5EIDB4Mgot I2RlZmluZSBJOTE1X1NIUklOS19CT1VORCAweDQKLSNkZWZpbmUgSTkxNV9TSFJJTktfQUNUSVZF IDB4OAotI2RlZmluZSBJOTE1X1NIUklOS19WTUFQUyAweDEwCisjZGVmaW5lIEk5MTVfU0hSSU5L X1VOQk9VTkQgQklUKDApCisjZGVmaW5lIEk5MTVfU0hSSU5LX0JPVU5EIEJJVCgxKQorI2RlZmlu ZSBJOTE1X1NIUklOS19BQ1RJVkUgQklUKDIpCisjZGVmaW5lIEk5MTVfU0hSSU5LX1ZNQVBTIEJJ VCgzKQogdW5zaWduZWQgbG9uZyBpOTE1X2dlbV9zaHJpbmtfYWxsKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICppOTE1KTsKIHZvaWQgaTkxNV9nZW1fc2hyaW5rZXJfcmVnaXN0ZXIoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUpOwogdm9pZCBpOTE1X2dlbV9zaHJpbmtlcl91bnJlZ2lzdGVy KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCmlu ZGV4IDQyZDk1ZjY0OTBmOC4uYmUzMDkyYTAzNzIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMK QEAgLTE2NzIsOCArMTY3Miw2IEBAIGk5MTVfZ2VtX3B3cml0ZV9pb2N0bChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB2b2lkICpkYXRhLAogCiBzdGF0aWMgdm9pZCBpOTE1X2dlbV9vYmplY3RfYnVt cF9pbmFjdGl2ZV9nZ3R0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7Ci0Jc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTU7Ci0Jc3RydWN0IGxpc3RfaGVhZCAqbGlzdDsKIAlz dHJ1Y3QgaTkxNV92bWEgKnZtYTsKIAogCUdFTV9CVUdfT04oIWk5MTVfZ2VtX29iamVjdF9oYXNf cGlubmVkX3BhZ2VzKG9iaikpOwpAQCAtMTY4OCwxMSArMTY4NiwxNiBAQCBzdGF0aWMgdm9pZCBp OTE1X2dlbV9vYmplY3RfYnVtcF9pbmFjdGl2ZV9nZ3R0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmopCiAJCWxpc3RfbW92ZV90YWlsKCZ2bWEtPnZtX2xpbmssICZ2bWEtPnZtLT5pbmFj dGl2ZV9saXN0KTsKIAl9CiAKLQlpOTE1ID0gdG9faTkxNShvYmotPmJhc2UuZGV2KTsKLQlzcGlu X2xvY2soJmk5MTUtPm1tLm9ial9sb2NrKTsKLQlsaXN0ID0gb2JqLT5iaW5kX2NvdW50ID8gJmk5 MTUtPm1tLmJvdW5kX2xpc3QgOiAmaTkxNS0+bW0udW5ib3VuZF9saXN0OwotCWxpc3RfbW92ZV90 YWlsKCZvYmotPm1tLmxpbmssIGxpc3QpOwotCXNwaW5fdW5sb2NrKCZpOTE1LT5tbS5vYmpfbG9j ayk7CisJaWYgKG9iai0+bW0ubWFkdiA9PSBJOTE1X01BRFZfV0lMTE5FRUQpIHsKKwkJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KG9iai0+YmFzZS5kZXYpOworCQlzdHJ1 Y3QgbGlzdF9oZWFkICpsaXN0OworCisJCXNwaW5fbG9jaygmaTkxNS0+bW0ub2JqX2xvY2spOwor CQlsaXN0ID0gb2JqLT5iaW5kX2NvdW50ID8KKwkJCSZpOTE1LT5tbS5ib3VuZF9saXN0IDogJmk5 MTUtPm1tLnVuYm91bmRfbGlzdDsKKwkJbGlzdF9tb3ZlX3RhaWwoJm9iai0+bW0ubGluaywgbGlz dCk7CisJCXNwaW5fdW5sb2NrKCZpOTE1LT5tbS5vYmpfbG9jayk7CisJfQogfQogCiAvKioKQEAg LTI1MzEsNyArMjUzNCw3IEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlc19n dHQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAlzZ19wYWdlX3NpemVzID0gMDsK IAlmb3IgKGkgPSAwOyBpIDwgcGFnZV9jb3VudDsgaSsrKSB7CiAJCWNvbnN0IHVuc2lnbmVkIGlu dCBzaHJpbmtbXSA9IHsKLQkJCUk5MTVfU0hSSU5LX0JPVU5EIHwgSTkxNV9TSFJJTktfVU5CT1VO RCB8IEk5MTVfU0hSSU5LX1BVUkdFQUJMRSwKKwkJCUk5MTVfU0hSSU5LX0JPVU5EIHwgSTkxNV9T SFJJTktfVU5CT1VORCwKIAkJCTAsCiAJCX0sICpzID0gc2hyaW5rOwogCQlnZnBfdCBnZnAgPSBu b3JlY2xhaW07CkBAIC00NTE5LDcgKzQ1MjIsNyBAQCBpbnQKIGk5MTVfZ2VtX21hZHZpc2VfaW9j dGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJICAgICAgIHN0cnVjdCBk cm1fZmlsZSAqZmlsZV9wcml2KQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5 MTUoZGV2KTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX21hZHZpc2UgKmFyZ3MgPSBkYXRhOwogCXN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CiAJaW50IGVycjsKQEAgLTQ1NDIsNyArNDU0 NSw3IEBAIGk5MTVfZ2VtX21hZHZpc2VfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9p ZCAqZGF0YSwKIAogCWlmIChpOTE1X2dlbV9vYmplY3RfaGFzX3BhZ2VzKG9iaikgJiYKIAkgICAg aTkxNV9nZW1fb2JqZWN0X2lzX3RpbGVkKG9iaikgJiYKLQkgICAgZGV2X3ByaXYtPnF1aXJrcyAm IFFVSVJLX1BJTl9TV0laWkxFRF9QQUdFUykgeworCSAgICBpOTE1LT5xdWlya3MgJiBRVUlSS19Q SU5fU1dJWlpMRURfUEFHRVMpIHsKIAkJaWYgKG9iai0+bW0ubWFkdiA9PSBJOTE1X01BRFZfV0lM TE5FRUQpIHsKIAkJCUdFTV9CVUdfT04oIW9iai0+bW0ucXVpcmtlZCk7CiAJCQlfX2k5MTVfZ2Vt X29iamVjdF91bnBpbl9wYWdlcyhvYmopOwpAQCAtNDU1OCw2ICs0NTYxLDIwIEBAIGk5MTVfZ2Vt X21hZHZpc2VfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAlpZiAo b2JqLT5tbS5tYWR2ICE9IF9fSTkxNV9NQURWX1BVUkdFRCkKIAkJb2JqLT5tbS5tYWR2ID0gYXJn cy0+bWFkdjsKIAorCWlmIChpOTE1X2dlbV9vYmplY3RfaGFzX3BhZ2VzKG9iaikpIHsKKwkJc3Ry dWN0IGxpc3RfaGVhZCAqbGlzdDsKKworCQlzcGluX2xvY2soJmk5MTUtPm1tLm9ial9sb2NrKTsK KwkJaWYgKG9iai0+bW0ubWFkdiAhPSBJOTE1X01BRFZfV0lMTE5FRUQpCisJCQlsaXN0ID0gJmk5 MTUtPm1tLnB1cmdlX2xpc3Q7CisJCWVsc2UgaWYgKG9iai0+YmluZF9jb3VudCkKKwkJCWxpc3Qg PSAmaTkxNS0+bW0uYm91bmRfbGlzdDsKKwkJZWxzZQorCQkJbGlzdCA9ICZpOTE1LT5tbS51bmJv dW5kX2xpc3Q7CisJCWxpc3RfbW92ZV90YWlsKCZvYmotPm1tLmxpbmssIGxpc3QpOworCQlzcGlu X3VubG9jaygmaTkxNS0+bW0ub2JqX2xvY2spOworCX0KKwogCS8qIGlmIHRoZSBvYmplY3QgaXMg bm8gbG9uZ2VyIGF0dGFjaGVkLCBkaXNjYXJkIGl0cyBiYWNraW5nIHN0b3JhZ2UgKi8KIAlpZiAo b2JqLT5tbS5tYWR2ID09IEk5MTVfTUFEVl9ET05UTkVFRCAmJgogCSAgICAhaTkxNV9nZW1fb2Jq ZWN0X2hhc19wYWdlcyhvYmopKQpAQCAtNDg3Niw5ICs0ODkzLDE4IEBAIHZvaWQgaTkxNV9nZW1f ZnJlZV9vYmplY3Qoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnZW1fb2JqKQogCWlmIChvYmotPm1t LnF1aXJrZWQpCiAJCV9faTkxNV9nZW1fb2JqZWN0X3VucGluX3BhZ2VzKG9iaik7CiAKLQlpZiAo ZGlzY2FyZF9iYWNraW5nX3N0b3JhZ2Uob2JqKSkKKwlpZiAoZGlzY2FyZF9iYWNraW5nX3N0b3Jh Z2Uob2JqKSkgeworCQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUob2Jq LT5iYXNlLmRldik7CisKIAkJb2JqLT5tbS5tYWR2ID0gSTkxNV9NQURWX0RPTlRORUVEOwogCisJ CWlmIChpOTE1X2dlbV9vYmplY3RfaGFzX3BhZ2VzKG9iaikpIHsKKwkJCXNwaW5fbG9jaygmaTkx NS0+bW0ub2JqX2xvY2spOworCQkJbGlzdF9tb3ZlX3RhaWwoJm9iai0+bW0ubGluaywgJmk5MTUt Pm1tLnB1cmdlX2xpc3QpOworCQkJc3Bpbl91bmxvY2soJmk5MTUtPm1tLm9ial9sb2NrKTsKKwkJ fQorCX0KKwogCS8qCiAJICogQmVmb3JlIHdlIGZyZWUgdGhlIG9iamVjdCwgbWFrZSBzdXJlIGFu eSBwdXJlIFJDVS1vbmx5CiAJICogcmVhZC1zaWRlIGNyaXRpY2FsIHNlY3Rpb25zIGFyZSBjb21w bGV0ZSwgZS5nLgpAQCAtNTUyNyw2ICs1NTUzLDcgQEAgc3RhdGljIHZvaWQgaTkxNV9nZW1faW5p dF9fbW0oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAKIAlpbml0X2xsaXN0X2hlYWQo Jmk5MTUtPm1tLmZyZWVfbGlzdCk7CiAKKwlJTklUX0xJU1RfSEVBRCgmaTkxNS0+bW0ucHVyZ2Vf bGlzdCk7CiAJSU5JVF9MSVNUX0hFQUQoJmk5MTUtPm1tLnVuYm91bmRfbGlzdCk7CiAJSU5JVF9M SVNUX0hFQUQoJmk5MTUtPm1tLmJvdW5kX2xpc3QpOwogCUlOSVRfTElTVF9IRUFEKCZpOTE1LT5t bS5mZW5jZV9saXN0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X3Nocmlua2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zaHJpbmtlci5jCmlu ZGV4IDU3NTdmYjdjNGI1YS4uZWE1YTZlMmQ2MmQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9zaHJpbmtlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX3Nocmlua2VyLmMKQEAgLTE1MSw2ICsxNTEsNyBAQCBpOTE1X2dlbV9zaHJpbmsoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCXN0cnVjdCBsaXN0X2hlYWQgKmxpc3Q7CiAJ CXVuc2lnbmVkIGludCBiaXQ7CiAJfSBwaGFzZXNbXSA9IHsKKwkJeyAmaTkxNS0+bW0ucHVyZ2Vf bGlzdCwgMCB9LAogCQl7ICZpOTE1LT5tbS51bmJvdW5kX2xpc3QsIEk5MTVfU0hSSU5LX1VOQk9V TkQgfSwKIAkJeyAmaTkxNS0+bW0uYm91bmRfbGlzdCwgSTkxNV9TSFJJTktfQk9VTkQgfSwKIAkJ eyBOVUxMLCAwIH0sCkBAIC0xODIsOCArMTgzLDcgQEAgaTkxNV9nZW1fc2hyaW5rKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICppOTE1LAogCSAqIGRldmljZSBqdXN0IHRvIHJlY292ZXIgYSBsaXR0 bGUgbWVtb3J5LiBJZiBhYnNvbHV0ZWx5IG5lY2Vzc2FyeSwKIAkgKiB3ZSB3aWxsIGZvcmNlIHRo ZSB3YWtlIGR1cmluZyBvb20tbm90aWZpZXIuCiAJICovCi0JaWYgKChmbGFncyAmIEk5MTVfU0hS SU5LX0JPVU5EKSAmJgotCSAgICAhaW50ZWxfcnVudGltZV9wbV9nZXRfaWZfaW5fdXNlKGk5MTUp KQorCWlmIChmbGFncyAmIEk5MTVfU0hSSU5LX0JPVU5EICYmICFpbnRlbF9ydW50aW1lX3BtX2dl dF9pZl9pbl91c2UoaTkxNSkpCiAJCWZsYWdzICY9IH5JOTE1X1NIUklOS19CT1VORDsKIAogCS8q CkBAIC0yMDksNyArMjA5LDcgQEAgaTkxNV9nZW1fc2hyaW5rKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1LAogCQlzdHJ1Y3QgbGlzdF9oZWFkIHN0aWxsX2luX2xpc3Q7CiAJCXN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CiAKLQkJaWYgKChmbGFncyAmIHBoYXNlLT5iaXQpID09 IDApCisJCWlmIChwaGFzZS0+Yml0ICYmIChmbGFncyAmIHBoYXNlLT5iaXQpID09IDApCiAJCQlj b250aW51ZTsKIAogCQlJTklUX0xJU1RfSEVBRCgmc3RpbGxfaW5fbGlzdCk7CkBAIC0yMjgsMTAg KzIyOCw2IEBAIGk5MTVfZ2VtX3NocmluayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwK IAkJCQkJCSAgICAgICBtbS5saW5rKSkpIHsKIAkJCWxpc3RfbW92ZV90YWlsKCZvYmotPm1tLmxp bmssICZzdGlsbF9pbl9saXN0KTsKIAotCQkJaWYgKGZsYWdzICYgSTkxNV9TSFJJTktfUFVSR0VB QkxFICYmCi0JCQkgICAgb2JqLT5tbS5tYWR2ICE9IEk5MTVfTUFEVl9ET05UTkVFRCkKLQkJCQlj b250aW51ZTsKLQogCQkJaWYgKGZsYWdzICYgSTkxNV9TSFJJTktfVk1BUFMgJiYKIAkJCSAgICAh aXNfdm1hbGxvY19hZGRyKG9iai0+bW0ubWFwcGluZykpCiAJCQkJY29udGludWU7CkBAIC0yNDEs NiArMjM3LDEwIEBAIGk5MTVfZ2VtX3NocmluayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSwKIAkJCSAgICAgaTkxNV9nZW1fb2JqZWN0X2lzX2ZyYW1lYnVmZmVyKG9iaikpKQogCQkJCWNv bnRpbnVlOwogCisJCQlpZiAoIShmbGFncyAmIEk5MTVfU0hSSU5LX0JPVU5EKSAmJgorCQkJICAg IFJFQURfT05DRShvYmotPmJpbmRfY291bnQpKQorCQkJCWNvbnRpbnVlOworCiAJCQlpZiAoIWNh bl9yZWxlYXNlX3BhZ2VzKG9iaikpCiAJCQkJY29udGludWU7CiAKQEAgLTMyNSw2ICszMjUsMTEg QEAgaTkxNV9nZW1fc2hyaW5rZXJfY291bnQoc3RydWN0IHNocmlua2VyICpzaHJpbmtlciwgc3Ry dWN0IHNocmlua19jb250cm9sICpzYykKIAkJCWNvdW50ICs9IG9iai0+YmFzZS5zaXplID4+IFBB R0VfU0hJRlQ7CiAJCQludW1fb2JqZWN0cysrOwogCQl9CisJbGlzdF9mb3JfZWFjaF9lbnRyeShv YmosICZpOTE1LT5tbS5wdXJnZV9saXN0LCBtbS5saW5rKQorCQlpZiAoIWk5MTVfZ2VtX29iamVj dF9pc19hY3RpdmUob2JqKSAmJiBjYW5fcmVsZWFzZV9wYWdlcyhvYmopKSB7CisJCQljb3VudCAr PSBvYmotPmJhc2Uuc2l6ZSA+PiBQQUdFX1NISUZUOworCQkJbnVtX29iamVjdHMrKzsKKwkJfQog CXNwaW5fdW5sb2NrKCZpOTE1LT5tbS5vYmpfbG9jayk7CiAKIAkvKiBVcGRhdGUgb3VyIHByZWZl cnJlZCB2bXNjYW4gYmF0Y2ggc2l6ZSBmb3IgdGhlIG5leHQgcGFzcy4KQEAgLTM2MSwxNCArMzY2 LDcgQEAgaTkxNV9nZW1fc2hyaW5rZXJfc2NhbihzdHJ1Y3Qgc2hyaW5rZXIgKnNocmlua2VyLCBz dHJ1Y3Qgc2hyaW5rX2NvbnRyb2wgKnNjKQogCQkJCXNjLT5ucl90b19zY2FuLAogCQkJCSZzYy0+ bnJfc2Nhbm5lZCwKIAkJCQlJOTE1X1NIUklOS19CT1VORCB8Ci0JCQkJSTkxNV9TSFJJTktfVU5C T1VORCB8Ci0JCQkJSTkxNV9TSFJJTktfUFVSR0VBQkxFKTsKLQlpZiAoc2MtPm5yX3NjYW5uZWQg PCBzYy0+bnJfdG9fc2NhbikKLQkJZnJlZWQgKz0gaTkxNV9nZW1fc2hyaW5rKGk5MTUsCi0JCQkJ CSBzYy0+bnJfdG9fc2NhbiAtIHNjLT5ucl9zY2FubmVkLAotCQkJCQkgJnNjLT5ucl9zY2FubmVk LAotCQkJCQkgSTkxNV9TSFJJTktfQk9VTkQgfAotCQkJCQkgSTkxNV9TSFJJTktfVU5CT1VORCk7 CisJCQkJSTkxNV9TSFJJTktfVU5CT1VORCk7CiAJaWYgKHNjLT5ucl9zY2FubmVkIDwgc2MtPm5y X3RvX3NjYW4gJiYgY3VycmVudF9pc19rc3dhcGQoKSkgewogCQlpbnRlbF9ydW50aW1lX3BtX2dl dChpOTE1KTsKIAkJZnJlZWQgKz0gaTkxNV9nZW1fc2hyaW5rKGk5MTUsCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV92bWEuYwppbmRleCA5MzI0ZDQ3NmUwYTcuLjk2MDM5YzRlZjQzNCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3ZtYS5jCkBAIC02MjQsNyArNjI0LDcgQEAgaTkxNV92bWFfcmVtb3ZlKHN0cnVjdCBpOTE1 X3ZtYSAqdm1hKQogCSAqIG5vIG1vcmUgVk1BcyBleGlzdC4KIAkgKi8KIAlzcGluX2xvY2soJmk5 MTUtPm1tLm9ial9sb2NrKTsKLQlpZiAoLS1vYmotPmJpbmRfY291bnQgPT0gMCkKKwlpZiAoLS1v YmotPmJpbmRfY291bnQgPT0gMCAmJiBvYmotPm1tLm1hZHYgPT0gSTkxNV9NQURWX1dJTExORUVE KQogCQlsaXN0X21vdmVfdGFpbCgmb2JqLT5tbS5saW5rLCAmaTkxNS0+bW0udW5ib3VuZF9saXN0 KTsKIAlzcGluX3VubG9jaygmaTkxNS0+bW0ub2JqX2xvY2spOwogCi0tIAoyLjE3LjAKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=