From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH v4 01/38] drm/i915: Use the MRU stack search after evicting Date: Thu, 22 Dec 2016 08:36:04 +0000 Message-ID: <20161222083641.2691-2-chris@chris-wilson.co.uk> References: <20161222083641.2691-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20161222083641.2691-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: dri-devel@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org V2hlbiB3ZSBldmljdCBmcm9tIHRoZSBHVFQgdG8gbWFrZSByb29tIGZvciBhbiBvYmplY3QsIHRo ZSBob2xlIHdlCmNyZWF0ZSBpcyBwdXQgb250byB0aGUgTVJVIHN0YWNrIGluc2lkZSB0aGUgZHJt X21tIHJhbmdlIG1hbmFnZXIuIE9uIHRoZQpuZXh0IHNlYXJjaCBwYXNzLCB3ZSBjYW4gc3BlZWQg dXAgYSBQSU5fSElHSCBhbGxvY2F0aW9uIGJ5IHJlZmVyZW5jaW5nCnRoYXQgc3RhY2sgZm9yIHRo ZSBuZXcgaG9sZS4KCnYyOiBQdWxsIHRvZ2V0aGVyIHRoZSAzIGlkZW50aWNhbCBpbXBsZW1lbnRz IChhaGVtLCBhIGNvdXBsZSB3ZXJlCm91dGRhdGVkKSBpbnRvIGEgY29tbW9uIHJvdXRpbmUgZm9y IGFsbG9jYXRpbmcgYSBub2RlIGFuZCBldmljdGluZyBhcwpuZWNlc3NhcnkuCgpTaWduZWQtb2Zm LWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KUmV2aWV3ZWQtYnk6 IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvYXBlcnR1cmVfZ20uYyB8IDMzICsrKysrLS0tLS0tLS0t LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jICAgIHwgNzIgKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f Z3R0LmggICAgfCAgNSArKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMgICAgICAg IHwgNDAgKystLS0tLS0tLS0tLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCA3MCBpbnNlcnRpb25z KCspLCA4MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dnQvYXBlcnR1cmVfZ20uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9hcGVydHVyZV9nbS5j CmluZGV4IDdkMzNiNjA3YmM4OS4uMWJiN2E1YjgwZDQ3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndnQvYXBlcnR1cmVfZ20uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dnQvYXBlcnR1cmVfZ20uYwpAQCAtNDgsNDcgKzQ4LDM0IEBAIHN0YXRpYyBpbnQgYWxsb2NfZ20o c3RydWN0IGludGVsX3ZncHUgKnZncHUsIGJvb2wgaGlnaF9nbSkKIHsKIAlzdHJ1Y3QgaW50ZWxf Z3Z0ICpndnQgPSB2Z3B1LT5ndnQ7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZ3Z0LT5kZXZfcHJpdjsKLQl1MzIgYWxsb2NfZmxhZywgc2VhcmNoX2ZsYWc7CisJdW5zaWdu ZWQgaW50IGZsYWdzOwogCXU2NCBzdGFydCwgZW5kLCBzaXplOwogCXN0cnVjdCBkcm1fbW1fbm9k ZSAqbm9kZTsKLQlpbnQgcmV0cmllZCA9IDA7CiAJaW50IHJldDsKIAogCWlmIChoaWdoX2dtKSB7 Ci0JCXNlYXJjaF9mbGFnID0gRFJNX01NX1NFQVJDSF9CRUxPVzsKLQkJYWxsb2NfZmxhZyA9IERS TV9NTV9DUkVBVEVfVE9QOwogCQlub2RlID0gJnZncHUtPmdtLmhpZ2hfZ21fbm9kZTsKIAkJc2l6 ZSA9IHZncHVfaGlkZGVuX3N6KHZncHUpOwogCQlzdGFydCA9IGd2dF9oaWRkZW5fZ21hZHJfYmFz ZShndnQpOwogCQllbmQgPSBndnRfaGlkZGVuX2dtYWRyX2VuZChndnQpOworCQlmbGFncyA9IFBJ Tl9ISUdIOwogCX0gZWxzZSB7Ci0JCXNlYXJjaF9mbGFnID0gRFJNX01NX1NFQVJDSF9ERUZBVUxU OwotCQlhbGxvY19mbGFnID0gRFJNX01NX0NSRUFURV9ERUZBVUxUOwogCQlub2RlID0gJnZncHUt PmdtLmxvd19nbV9ub2RlOwogCQlzaXplID0gdmdwdV9hcGVydHVyZV9zeih2Z3B1KTsKIAkJc3Rh cnQgPSBndnRfYXBlcnR1cmVfZ21hZHJfYmFzZShndnQpOwogCQllbmQgPSBndnRfYXBlcnR1cmVf Z21hZHJfZW5kKGd2dCk7CisJCWZsYWdzID0gUElOX01BUFBBQkxFOwogCX0KIAogCW11dGV4X2xv Y2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKLXNlYXJjaF9hZ2FpbjoKLQlyZXQgPSBk cm1fbW1faW5zZXJ0X25vZGVfaW5fcmFuZ2VfZ2VuZXJpYygmZGV2X3ByaXYtPmdndHQuYmFzZS5t bSwKLQkJCQkJCSAgbm9kZSwgc2l6ZSwgNDA5NiwKLQkJCQkJCSAgSTkxNV9DT0xPUl9VTkVWSUNU QUJMRSwKLQkJCQkJCSAgc3RhcnQsIGVuZCwgc2VhcmNoX2ZsYWcsCi0JCQkJCQkgIGFsbG9jX2Zs YWcpOwotCWlmIChyZXQpIHsKLQkJcmV0ID0gaTkxNV9nZW1fZXZpY3Rfc29tZXRoaW5nKCZkZXZf cHJpdi0+Z2d0dC5iYXNlLAotCQkJCQkgICAgICAgc2l6ZSwgNDA5NiwKLQkJCQkJICAgICAgIEk5 MTVfQ09MT1JfVU5FVklDVEFCTEUsCi0JCQkJCSAgICAgICBzdGFydCwgZW5kLCAwKTsKLQkJaWYg KHJldCA9PSAwICYmICsrcmV0cmllZCA8IDMpCi0JCQlnb3RvIHNlYXJjaF9hZ2FpbjsKLQotCQln dnRfZXJyKCJmYWlsIHRvIGFsbG9jICVzIGdtIHNwYWNlIGZyb20gaG9zdCwgcmV0cmllZCAlZFxu IiwKLQkJCQloaWdoX2dtID8gImhpZ2giIDogImxvdyIsIHJldHJpZWQpOwotCX0KKwlyZXQgPSBp OTE1X2dlbV9ndHRfaW5zZXJ0KCZkZXZfcHJpdi0+Z2d0dC5iYXNlLCBub2RlLAorCQkJCSAgc2l6 ZSwgNDA5NiwgSTkxNV9DT0xPUl9VTkVWSUNUQUJMRSwKKwkJCQkgIHN0YXJ0LCBlbmQsIGZsYWdz KTsKIAltdXRleF91bmxvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKKwlpZiAocmV0 KQorCQlndnRfZXJyKCJmYWlsIHRvIGFsbG9jICVzIGdtIHNwYWNlIGZyb20gaG9zdFxuIiwKKwkJ CWhpZ2hfZ20gPyAiaGlnaCIgOiAibG93Iik7CisKIAlyZXR1cm4gcmV0OwogfQogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2d0dC5jCmluZGV4IDZhZjkzMTFmNzJmNS4uYzhmMTY3NTg1MmE3IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwpAQCAtMjA0NCw3ICsyMDQ0LDYgQEAgc3Rh dGljIGludCBnZW42X3BwZ3R0X2FsbG9jYXRlX3BhZ2VfZGlyZWN0b3JpZXMoc3RydWN0IGk5MTVf aHdfcHBndHQgKnBwZ3R0KQogCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtID0gJnBwZ3R0 LT5iYXNlOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHBwZ3R0LT5iYXNl Lmk5MTU7CiAJc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9ICZkZXZfcHJpdi0+Z2d0dDsKLQlib29s IHJldHJpZWQgPSBmYWxzZTsKIAlpbnQgcmV0OwogCiAJLyogUFBHVFQgUERFcyByZXNpZGUgaW4g dGhlIEdHVFQgYW5kIGNvbnNpc3RzIG9mIDUxMiBlbnRyaWVzLiBUaGUKQEAgLTIwNTcsMjkgKzIw NTYsMTQgQEAgc3RhdGljIGludCBnZW42X3BwZ3R0X2FsbG9jYXRlX3BhZ2VfZGlyZWN0b3JpZXMo c3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0KQogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAK LWFsbG9jOgotCXJldCA9IGRybV9tbV9pbnNlcnRfbm9kZV9pbl9yYW5nZV9nZW5lcmljKCZnZ3R0 LT5iYXNlLm1tLCAmcHBndHQtPm5vZGUsCi0JCQkJCQkgIEdFTjZfUERfU0laRSwgR0VONl9QRF9B TElHTiwKLQkJCQkJCSAgSTkxNV9DT0xPUl9VTkVWSUNUQUJMRSwKLQkJCQkJCSAgMCwgZ2d0dC0+ YmFzZS50b3RhbCwKLQkJCQkJCSAgRFJNX01NX1RPUERPV04pOwotCWlmIChyZXQgPT0gLUVOT1NQ QyAmJiAhcmV0cmllZCkgewotCQlyZXQgPSBpOTE1X2dlbV9ldmljdF9zb21ldGhpbmcoJmdndHQt PmJhc2UsCi0JCQkJCSAgICAgICBHRU42X1BEX1NJWkUsIEdFTjZfUERfQUxJR04sCi0JCQkJCSAg ICAgICBJOTE1X0NPTE9SX1VORVZJQ1RBQkxFLAotCQkJCQkgICAgICAgMCwgZ2d0dC0+YmFzZS50 b3RhbCwKLQkJCQkJICAgICAgIDApOwotCQlpZiAocmV0KQotCQkJZ290byBlcnJfb3V0OwotCi0J CXJldHJpZWQgPSB0cnVlOwotCQlnb3RvIGFsbG9jOwotCX0KLQorCXJldCA9IGk5MTVfZ2VtX2d0 dF9pbnNlcnQoJmdndHQtPmJhc2UsICZwcGd0dC0+bm9kZSwKKwkJCQkgIEdFTjZfUERfU0laRSwg R0VONl9QRF9BTElHTiwKKwkJCQkgIEk5MTVfQ09MT1JfVU5FVklDVEFCTEUsCisJCQkJICAwLCBn Z3R0LT5iYXNlLnRvdGFsLAorCQkJCSAgUElOX0hJR0gpOwogCWlmIChyZXQpCiAJCWdvdG8gZXJy X291dDsKIAotCiAJaWYgKHBwZ3R0LT5ub2RlLnN0YXJ0IDwgZ2d0dC0+bWFwcGFibGVfZW5kKQog CQlEUk1fREVCVUcoIkZvcmNlZCB0byB1c2UgYXBlcnR1cmUgZm9yIFBERXNcbiIpOwogCkBAIC0z NTUzLDMgKzM1MzcsNDkgQEAgaTkxNV9nZXRfZ2d0dF92bWFfcGFnZXMoc3RydWN0IGk5MTVfdm1h ICp2bWEpCiAJcmV0dXJuIHJldDsKIH0KIAoraW50IGk5MTVfZ2VtX2d0dF9pbnNlcnQoc3RydWN0 IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCisJCQlzdHJ1Y3QgZHJtX21tX25vZGUgKm5vZGUsCisJ CQl1NjQgc2l6ZSwgdTY0IGFsaWdubWVudCwgdW5zaWduZWQgbG9uZyBjb2xvciwKKwkJCXU2NCBz dGFydCwgdTY0IGVuZCwgdW5zaWduZWQgaW50IGZsYWdzKQoreworCXUzMiBzZWFyY2hfZmxhZywg YWxsb2NfZmxhZzsKKwlpbnQgZXJyOworCisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmdm0tPmk5MTUt PmRybS5zdHJ1Y3RfbXV0ZXgpOworCisJaWYgKGZsYWdzICYgUElOX0hJR0gpIHsKKwkJc2VhcmNo X2ZsYWcgPSBEUk1fTU1fU0VBUkNIX0JFTE9XOworCQlhbGxvY19mbGFnID0gRFJNX01NX0NSRUFU RV9UT1A7CisJfSBlbHNlIHsKKwkJc2VhcmNoX2ZsYWcgPSBEUk1fTU1fU0VBUkNIX0RFRkFVTFQ7 CisJCWFsbG9jX2ZsYWcgPSBEUk1fTU1fQ1JFQVRFX0RFRkFVTFQ7CisJfQorCisJLyogV2Ugb25s eSBhbGxvY2F0ZSBpbiBQQUdFX1NJWkUvR1RUX1BBR0VfU0laRSAoNDA5NikgY2h1bmtzLAorCSAq IHNvIHdlIGtub3cgdGhhdCB3ZSBhbHdheXMgaGF2ZSBhIG1pbmltdW0gYWxpZ25tZW50IG9mIDQw OTYuCisJICogVGhlIGRybV9tbSByYW5nZSBtYW5hZ2VyIGlzIG9wdGltaXNlZCB0byByZXR1cm4g cmVzdWx0cworCSAqIHdpdGggemVybyBhbGlnbm1lbnQsIHNvIHdoZXJlIHBvc3NpYmxlIHVzZSB0 aGUgb3B0aW1hbAorCSAqIHBhdGguCisJICovCisJR0VNX0JVR19PTihzaXplICYgNDA5NSk7CisJ aWYgKGFsaWdubWVudCA8PSA0MDk2KQorCQlhbGlnbm1lbnQgPSAwOworCisJZXJyID0gZHJtX21t X2luc2VydF9ub2RlX2luX3JhbmdlX2dlbmVyaWMoJnZtLT5tbSwgbm9kZSwKKwkJCQkJCSAgc2l6 ZSwgYWxpZ25tZW50LCBjb2xvciwKKwkJCQkJCSAgc3RhcnQsIGVuZCwKKwkJCQkJCSAgc2VhcmNo X2ZsYWcsIGFsbG9jX2ZsYWcpOworCWlmIChlcnIgIT0gLUVOT1NQQykKKwkJcmV0dXJuIGVycjsK KworCWVyciA9IGk5MTVfZ2VtX2V2aWN0X3NvbWV0aGluZyh2bSwgc2l6ZSwgYWxpZ25tZW50LCBj b2xvciwKKwkJCQkgICAgICAgc3RhcnQsIGVuZCwgZmxhZ3MpOworCWlmIChlcnIpCisJCXJldHVy biBlcnI7CisKKwlzZWFyY2hfZmxhZyA9IERSTV9NTV9TRUFSQ0hfREVGQVVMVDsKKwlyZXR1cm4g ZHJtX21tX2luc2VydF9ub2RlX2luX3JhbmdlX2dlbmVyaWMoJnZtLT5tbSwgbm9kZSwKKwkJCQkJ CSAgIHNpemUsIGFsaWdubWVudCwgY29sb3IsCisJCQkJCQkgICBzdGFydCwgZW5kLAorCQkJCQkJ ICAgc2VhcmNoX2ZsYWcsIGFsbG9jX2ZsYWcpOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9n dHQuaAppbmRleCAwMDU1Yjg1NjdhNDMuLjRjN2JlZjA3ZTM4YSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZ3R0LmgKQEAgLTUyOCw2ICs1MjgsMTEgQEAgaW50IF9fbXVzdF9jaGVjayBpOTE1 X2dlbV9ndHRfcHJlcGFyZV9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAog dm9pZCBpOTE1X2dlbV9ndHRfZmluaXNoX3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmosCiAJCQkgICAgICAgc3RydWN0IHNnX3RhYmxlICpwYWdlcyk7CiAKK2ludCBpOTE1X2dl bV9ndHRfaW5zZXJ0KHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAorCQkJc3RydWN0IGRy bV9tbV9ub2RlICpub2RlLAorCQkJdTY0IHNpemUsIHU2NCBhbGlnbm1lbnQsIHVuc2lnbmVkIGxv bmcgY29sb3IsCisJCQl1NjQgc3RhcnQsIHU2NCBlbmQsIHVuc2lnbmVkIGludCBmbGFncyk7CisK IC8qIEZsYWdzIHVzZWQgYnkgcGluL2JpbmQmZnJpZW5kcy4gKi8KICNkZWZpbmUgUElOX05PTkJM T0NLCQlCSVQoMCkKICNkZWZpbmUgUElOX01BUFBBQkxFCQlCSVQoMSkKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3ZtYS5jCmluZGV4IGZkNzVkNTcwNDI4Ny4uNjA4MDA4ZDJkOTk5IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfdm1hLmMKQEAgLTQxNSw0MyArNDE1LDExIEBAIGk5MTVfdm1hX2luc2VydChzdHJ1Y3QgaTkx NV92bWEgKnZtYSwgdTY0IHNpemUsIHU2NCBhbGlnbm1lbnQsIHU2NCBmbGFncykKIAkJCQlnb3Rv IGVycl91bnBpbjsKIAkJfQogCX0gZWxzZSB7Ci0JCXUzMiBzZWFyY2hfZmxhZywgYWxsb2NfZmxh ZzsKLQotCQlpZiAoZmxhZ3MgJiBQSU5fSElHSCkgewotCQkJc2VhcmNoX2ZsYWcgPSBEUk1fTU1f U0VBUkNIX0JFTE9XOwotCQkJYWxsb2NfZmxhZyA9IERSTV9NTV9DUkVBVEVfVE9QOwotCQl9IGVs c2UgewotCQkJc2VhcmNoX2ZsYWcgPSBEUk1fTU1fU0VBUkNIX0RFRkFVTFQ7Ci0JCQlhbGxvY19m bGFnID0gRFJNX01NX0NSRUFURV9ERUZBVUxUOwotCQl9Ci0KLQkJLyogV2Ugb25seSBhbGxvY2F0 ZSBpbiBQQUdFX1NJWkUvR1RUX1BBR0VfU0laRSAoNDA5NikgY2h1bmtzLAotCQkgKiBzbyB3ZSBr bm93IHRoYXQgd2UgYWx3YXlzIGhhdmUgYSBtaW5pbXVtIGFsaWdubWVudCBvZiA0MDk2LgotCQkg KiBUaGUgZHJtX21tIHJhbmdlIG1hbmFnZXIgaXMgb3B0aW1pc2VkIHRvIHJldHVybiByZXN1bHRz Ci0JCSAqIHdpdGggemVybyBhbGlnbm1lbnQsIHNvIHdoZXJlIHBvc3NpYmxlIHVzZSB0aGUgb3B0 aW1hbAotCQkgKiBwYXRoLgotCQkgKi8KLQkJaWYgKGFsaWdubWVudCA8PSA0MDk2KQotCQkJYWxp Z25tZW50ID0gMDsKLQotc2VhcmNoX2ZyZWU6Ci0JCXJldCA9IGRybV9tbV9pbnNlcnRfbm9kZV9p bl9yYW5nZV9nZW5lcmljKCZ2bWEtPnZtLT5tbSwKLQkJCQkJCQkgICZ2bWEtPm5vZGUsCi0JCQkJ CQkJICBzaXplLCBhbGlnbm1lbnQsCi0JCQkJCQkJICBvYmotPmNhY2hlX2xldmVsLAotCQkJCQkJ CSAgc3RhcnQsIGVuZCwKLQkJCQkJCQkgIHNlYXJjaF9mbGFnLAotCQkJCQkJCSAgYWxsb2NfZmxh Zyk7Ci0JCWlmIChyZXQpIHsKLQkJCXJldCA9IGk5MTVfZ2VtX2V2aWN0X3NvbWV0aGluZyh2bWEt PnZtLCBzaXplLCBhbGlnbm1lbnQsCi0JCQkJCQkgICAgICAgb2JqLT5jYWNoZV9sZXZlbCwKLQkJ CQkJCSAgICAgICBzdGFydCwgZW5kLAotCQkJCQkJICAgICAgIGZsYWdzKTsKLQkJCWlmIChyZXQg PT0gMCkKLQkJCQlnb3RvIHNlYXJjaF9mcmVlOwotCisJCXJldCA9IGk5MTVfZ2VtX2d0dF9pbnNl cnQodm1hLT52bSwgJnZtYS0+bm9kZSwKKwkJCQkJICBzaXplLCBhbGlnbm1lbnQsIG9iai0+Y2Fj aGVfbGV2ZWwsCisJCQkJCSAgc3RhcnQsIGVuZCwgZmxhZ3MpOworCQlpZiAocmV0KQogCQkJZ290 byBlcnJfdW5waW47Ci0JCX0KIAogCQlHRU1fQlVHX09OKHZtYS0+bm9kZS5zdGFydCA8IHN0YXJ0 KTsKIAkJR0VNX0JVR19PTih2bWEtPm5vZGUuc3RhcnQgKyB2bWEtPm5vZGUuc2l6ZSA+IGVuZCk7 Ci0tIAoyLjExLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo=