From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 25/37] drm/i915: Use VMA as the primary tracker for semaphore page Date: Fri, 12 Aug 2016 07:54:15 +0100 Message-ID: <1470984867-7132-25-git-send-email-chris@chris-wilson.co.uk> References: <1470984867-7132-1-git-send-email-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-x243.google.com (mail-wm0-x243.google.com [IPv6:2a00:1450:400c:c09::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id F0AF56EA81 for ; Fri, 12 Aug 2016 06:55:03 +0000 (UTC) Received: by mail-wm0-x243.google.com with SMTP id q128so1175082wma.1 for ; Thu, 11 Aug 2016 23:55:03 -0700 (PDT) In-Reply-To: <1470984867-7132-1-git-send-email-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 U2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+ClJl dmlld2VkLWJ5OiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5j b20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgIHwgIDIgKy0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICB8ICA1ICsrLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyAgIHwgMTYgKysrKy0tLS0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyAgfCAxMiArKysrLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgfCA2MCArKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCB8ICA0 ICstLQogNiBmaWxlcyBjaGFuZ2VkLCA1NSBpbnNlcnRpb25zKCspLCA0NCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCmluZGV4IDJkYTM3YzE5NmVmMC4uZmI0ODNk ZjFhZmQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwpAQCAtMzE0NSw3ICszMTQ1 LDcgQEAgc3RhdGljIGludCBpOTE1X3NlbWFwaG9yZV9zdGF0dXMoc3RydWN0IHNlcV9maWxlICpt LCB2b2lkICp1bnVzZWQpCiAJCXN0cnVjdCBwYWdlICpwYWdlOwogCQl1aW50NjRfdCAqc2Vxbm87 CiAKLQkJcGFnZSA9IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZShkZXZfcHJpdi0+c2VtYXBob3Jl X29iaiwgMCk7CisJCXBhZ2UgPSBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2UoZGV2X3ByaXYtPnNl bWFwaG9yZS0+b2JqLCAwKTsKIAogCQlzZXFubyA9ICh1aW50NjRfdCAqKWttYXBfYXRvbWljKHBh Z2UpOwogCQlmb3JfZWFjaF9lbmdpbmVfaWQoZW5naW5lLCBkZXZfcHJpdiwgaWQpIHsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCmluZGV4IDMxMGVhYWIyMWMxNS4uZGNhZDcwMzA3MGM2IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTczNSw3ICs3MzUsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfZXJy b3Jfc3RhdGUgewogCXU2NCBmZW5jZVtJOTE1X01BWF9OVU1fRkVOQ0VTXTsKIAlzdHJ1Y3QgaW50 ZWxfb3ZlcmxheV9lcnJvcl9zdGF0ZSAqb3ZlcmxheTsKIAlzdHJ1Y3QgaW50ZWxfZGlzcGxheV9l cnJvcl9zdGF0ZSAqZGlzcGxheTsKLQlzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfb2JqZWN0ICpzZW1h cGhvcmVfb2JqOworCXN0cnVjdCBkcm1faTkxNV9lcnJvcl9vYmplY3QgKnNlbWFwaG9yZTsKIAog CXN0cnVjdCBkcm1faTkxNV9lcnJvcl9lbmdpbmUgewogCQlpbnQgZW5naW5lX2lkOwpAQCAtODI2 LDcgKzgyNiw2IEBAIHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZSB7CiAJc3RydWN0IGk5MTVf YWRkcmVzc19zcGFjZSAqYWN0aXZlX3ZtW0k5MTVfTlVNX0VOR0lORVNdOwogfTsKIAotCiBlbnVt IGk5MTVfY2FjaGVfbGV2ZWwgewogCUk5MTVfQ0FDSEVfTk9ORSA9IDAsCiAJSTkxNV9DQUNIRV9M TEMsIC8qIGFsc28gdXNlZCBmb3Igc25vb3BhYmxlIG1lbW9yeSBvbiBub24tTExDICovCkBAIC0x NzUzLDcgKzE3NTIsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAJc3RydWN0IHBjaV9k ZXYgKmJyaWRnZV9kZXY7CiAJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmtlcm5lbF9jb250ZXh0 OwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgZW5naW5lW0k5MTVfTlVNX0VOR0lORVNdOwotCXN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpzZW1hcGhvcmVfb2JqOworCXN0cnVjdCBpOTE1X3Zt YSAqc2VtYXBob3JlOwogCXUzMiBuZXh0X3NlcW5vOwogCiAJc3RydWN0IGRybV9kbWFfaGFuZGxl ICpzdGF0dXNfcGFnZV9kbWFoOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9ncHVfZXJyb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKaW5k ZXggZGQ2MGE0MTdhNmJjLi5kNDViMjFhMDFlZmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n cHVfZXJyb3IuYwpAQCAtNTUwLDcgKzU1MCw3IEBAIGludCBpOTE1X2Vycm9yX3N0YXRlX3RvX3N0 cihzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfc3RhdGVfYnVmICptLAogCQl9CiAJfQogCi0JaWYgKChv YmogPSBlcnJvci0+c2VtYXBob3JlX29iaikpIHsKKwlpZiAoKG9iaiA9IGVycm9yLT5zZW1hcGhv cmUpKSB7CiAJCWVycl9wcmludGYobSwgIlNlbWFwaG9yZSBwYWdlID0gMHglMDh4XG4iLAogCQkJ ICAgbG93ZXJfMzJfYml0cyhvYmotPmd0dF9vZmZzZXQpKTsKIAkJZm9yIChlbHQgPSAwOyBlbHQg PCBQQUdFX1NJWkUvMTY7IGVsdCArPSA0KSB7CkBAIC02NDEsNyArNjQxLDcgQEAgc3RhdGljIHZv aWQgaTkxNV9lcnJvcl9zdGF0ZV9mcmVlKHN0cnVjdCBrcmVmICplcnJvcl9yZWYpCiAJCWtmcmVl KGVlLT53YWl0ZXJzKTsKIAl9CiAKLQlpOTE1X2Vycm9yX29iamVjdF9mcmVlKGVycm9yLT5zZW1h cGhvcmVfb2JqKTsKKwlpOTE1X2Vycm9yX29iamVjdF9mcmVlKGVycm9yLT5zZW1hcGhvcmUpOwog CiAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZXJyb3ItPmFjdGl2ZV9ibyk7IGkrKykKIAkJ a2ZyZWUoZXJyb3ItPmFjdGl2ZV9ib1tpXSk7CkBAIC04NzAsNyArODcwLDcgQEAgc3RhdGljIHZv aWQgZ2VuOF9yZWNvcmRfc2VtYXBob3JlX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0 ZSAqZXJyb3IsCiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqdG87CiAJZW51bSBpbnRlbF9lbmdp bmVfaWQgaWQ7CiAKLQlpZiAoIWVycm9yLT5zZW1hcGhvcmVfb2JqKQorCWlmICghZXJyb3ItPnNl bWFwaG9yZSkKIAkJcmV0dXJuOwogCiAJZm9yX2VhY2hfZW5naW5lX2lkKHRvLCBkZXZfcHJpdiwg aWQpIHsKQEAgLTg4Myw3ICs4ODMsNyBAQCBzdGF0aWMgdm9pZCBnZW44X3JlY29yZF9zZW1hcGhv cmVfc3RhdGUoc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlICplcnJvciwKIAogCQlzaWduYWxf b2Zmc2V0ID0KIAkJCShHRU44X1NJR05BTF9PRkZTRVQoZW5naW5lLCBpZCkgJiAoUEFHRV9TSVpF IC0gMSkpIC8gNDsKLQkJdG1wID0gZXJyb3ItPnNlbWFwaG9yZV9vYmotPnBhZ2VzWzBdOworCQl0 bXAgPSBlcnJvci0+c2VtYXBob3JlLT5wYWdlc1swXTsKIAkJaWR4ID0gaW50ZWxfZW5naW5lX3N5 bmNfaW5kZXgoZW5naW5lLCB0byk7CiAKIAkJZWUtPnNlbWFwaG9yZV9tYm94ZXNbaWR4XSA9IHRt cFtzaWduYWxfb2Zmc2V0XTsKQEAgLTEwNTUsMTEgKzEwNTUsOSBAQCBzdGF0aWMgdm9pZCBpOTE1 X2dlbV9yZWNvcmRfcmluZ3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCXN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdDsKIAlpbnQgaSwgY291bnQ7CiAKLQlp ZiAoZGV2X3ByaXYtPnNlbWFwaG9yZV9vYmopIHsKLQkJZXJyb3ItPnNlbWFwaG9yZV9vYmogPQot CQkJaTkxNV9lcnJvcl9nZ3R0X29iamVjdF9jcmVhdGUoZGV2X3ByaXYsCi0JCQkJCQkgICAgICBk ZXZfcHJpdi0+c2VtYXBob3JlX29iaik7Ci0JfQorCWVycm9yLT5zZW1hcGhvcmUgPQorCQlpOTE1 X2Vycm9yX2dndHRfb2JqZWN0X2NyZWF0ZShkZXZfcHJpdiwKKwkJCQkJICAgICAgZGV2X3ByaXYt PnNlbWFwaG9yZS0+b2JqKTsKIAogCWZvciAoaSA9IDA7IGkgPCBJOTE1X05VTV9FTkdJTkVTOyBp KyspIHsKIAkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gJmRldl9wcml2LT5lbmdp bmVbaV07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3Mu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCmluZGV4IDgyOTYyNDU3 MWNhNC4uNTczZjY0MmE3NGY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9lbmdpbmVfY3MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3Mu YwpAQCAtMTc5LDEyICsxNzksMTYgQEAgdm9pZCBpbnRlbF9lbmdpbmVfaW5pdF9zZXFubyhzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHUzMiBzZXFubykKIAkJaWYgKEhBU19WRUJPWChk ZXZfcHJpdikpCiAJCQlJOTE1X1dSSVRFKFJJTkdfU1lOQ18yKGVuZ2luZS0+bW1pb19iYXNlKSwg MCk7CiAJfQotCWlmIChkZXZfcHJpdi0+c2VtYXBob3JlX29iaikgewotCQlzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqID0gZGV2X3ByaXYtPnNlbWFwaG9yZV9vYmo7Ci0JCXN0cnVjdCBw YWdlICpwYWdlID0gaTkxNV9nZW1fb2JqZWN0X2dldF9kaXJ0eV9wYWdlKG9iaiwgMCk7Ci0JCXZv aWQgKnNlbWFwaG9yZXMgPSBrbWFwKHBhZ2UpOworCWlmIChkZXZfcHJpdi0+c2VtYXBob3JlKSB7 CisJCXN0cnVjdCBwYWdlICpwYWdlID0gaTkxNV92bWFfZmlyc3RfcGFnZShkZXZfcHJpdi0+c2Vt YXBob3JlKTsKKwkJdm9pZCAqc2VtYXBob3JlczsKKworCQkvKiBTZW1hcGhvcmVzIGFyZSBpbiBu b25jb2hlcmVudCBtZW1vcnksIGZsdXNoIHRvIGJlIHNhZmUgKi8KKwkJc2VtYXBob3JlcyA9IGtt YXAocGFnZSk7CiAJCW1lbXNldChzZW1hcGhvcmVzICsgR0VOOF9TRU1BUEhPUkVfT0ZGU0VUKGVu Z2luZS0+aWQsIDApLAogCQkgICAgICAgMCwgSTkxNV9OVU1fRU5HSU5FUyAqIGdlbjhfc2VtYXBo b3JlX3NlcW5vX3NpemUpOworCQlkcm1fY2xmbHVzaF92aXJ0X3JhbmdlKHNlbWFwaG9yZXMgKyBH RU44X1NFTUFQSE9SRV9PRkZTRVQoZW5naW5lLT5pZCwgMCksCisJCQkJICAgICAgIEk5MTVfTlVN X0VOR0lORVMgKiBnZW44X3NlbWFwaG9yZV9zZXFub19zaXplKTsKIAkJa3VubWFwKHBhZ2UpOwog CX0KIAltZW1zZXQoZW5naW5lLT5zZW1hcGhvcmUuc3luY19zZXFubywgMCwKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwppbmRleCA0NjkwNTlmYzlmMTUuLmE1NjE5YTgxZDI4 NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwpAQCAtMTI1NywxMiAr MTI1NywxNCBAQCBzdGF0aWMgaW50IGluaXRfcmVuZGVyX3Jpbmcoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKQogc3RhdGljIHZvaWQgcmVuZGVyX3JpbmdfY2xlYW51cChzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gZW5naW5lLT5pOTE1OworCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwogCi0JaWYgKGRldl9w cml2LT5zZW1hcGhvcmVfb2JqKSB7Ci0JCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKGRldl9w cml2LT5zZW1hcGhvcmVfb2JqKTsKLQkJaTkxNV9nZW1fb2JqZWN0X3B1dChkZXZfcHJpdi0+c2Vt YXBob3JlX29iaik7Ci0JCWRldl9wcml2LT5zZW1hcGhvcmVfb2JqID0gTlVMTDsKLQl9CisJdm1h ID0gZmV0Y2hfYW5kX3plcm8oJmRldl9wcml2LT5zZW1hcGhvcmUpOworCWlmICghdm1hKQorCQly ZXR1cm47CisKKwlpOTE1X3ZtYV91bnBpbih2bWEpOworCWk5MTVfdm1hX3B1dCh2bWEpOwogfQog CiBzdGF0aWMgaW50IGdlbjhfcmNzX3NpZ25hbChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcSkKQEAgLTI1MjIsMzAgKzI1MjQsMzAgQEAgc3RhdGljIHZvaWQgaW50ZWxfcmluZ19pbml0 X3NlbWFwaG9yZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWlmICghaTkx NS5zZW1hcGhvcmVzKQogCQlyZXR1cm47CiAKLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA4 ICYmICFkZXZfcHJpdi0+c2VtYXBob3JlX29iaikgeworCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYp ID49IDggJiYgIWRldl9wcml2LT5zZW1hcGhvcmUpIHsKKwkJc3RydWN0IGk5MTVfdm1hICp2bWE7 CisKIAkJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZSgmZGV2X3ByaXYtPmRybSwgNDA5Nik7 Ci0JCWlmIChJU19FUlIob2JqKSkgewotCQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYWxsb2NhdGUg c2VtYXBob3JlIGJvLiBEaXNhYmxpbmcgc2VtYXBob3Jlc1xuIik7Ci0JCQlpOTE1LnNlbWFwaG9y ZXMgPSAwOwotCQl9IGVsc2UgewotCQkJaTkxNV9nZW1fb2JqZWN0X3NldF9jYWNoZV9sZXZlbChv YmosIEk5MTVfQ0FDSEVfTExDKTsKLQkJCXJldCA9IGk5MTVfZ2VtX29iamVjdF9nZ3R0X3Bpbihv YmosIE5VTEwsCi0JCQkJCQkgICAgICAgMCwgMCwgUElOX0hJR0gpOwotCQkJaWYgKHJldCAhPSAw KSB7Ci0JCQkJaTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOwotCQkJCURSTV9FUlJPUigiRmFpbGVk IHRvIHBpbiBzZW1hcGhvcmUgYm8uIERpc2FibGluZyBzZW1hcGhvcmVzXG4iKTsKLQkJCQlpOTE1 LnNlbWFwaG9yZXMgPSAwOwotCQkJfSBlbHNlIHsKLQkJCQlkZXZfcHJpdi0+c2VtYXBob3JlX29i aiA9IG9iajsKLQkJCX0KLQkJfQotCX0KKwkJaWYgKElTX0VSUihvYmopKQorCQkJZ290byBlcnI7 CiAKLQlpZiAoIWk5MTUuc2VtYXBob3JlcykKLQkJcmV0dXJuOworCQl2bWEgPSBpOTE1X3ZtYV9j cmVhdGUob2JqLCAmZGV2X3ByaXYtPmdndHQuYmFzZSwgTlVMTCk7CisJCWlmIChJU19FUlIodm1h KSkKKwkJCWdvdG8gZXJyX29iajsKKworCQlyZXQgPSBpOTE1X2dlbV9vYmplY3Rfc2V0X3RvX2d0 dF9kb21haW4ob2JqLCBmYWxzZSk7CisJCWlmIChyZXQpCisJCQlnb3RvIGVycl9vYmo7CisKKwkJ cmV0ID0gaTkxNV92bWFfcGluKHZtYSwgMCwgMCwgUElOX0dMT0JBTCB8IFBJTl9ISUdIKTsKKwkJ aWYgKHJldCkKKwkJCWdvdG8gZXJyX29iajsKKworCQlkZXZfcHJpdi0+c2VtYXBob3JlID0gdm1h OworCX0KIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDgpIHsKLQkJdTY0IG9mZnNldCA9 IGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChkZXZfcHJpdi0+c2VtYXBob3JlX29iaik7CisJCXU2 NCBvZmZzZXQgPSBkZXZfcHJpdi0+c2VtYXBob3JlLT5ub2RlLnN0YXJ0OwogCiAJCWVuZ2luZS0+ c2VtYXBob3JlLnN5bmNfdG8gPSBnZW44X3Jpbmdfc3luY190bzsKIAkJZW5naW5lLT5zZW1hcGhv cmUuc2lnbmFsID0gZ2VuOF94Y3Nfc2lnbmFsOwpAQCAtMjYxMiw2ICsyNjE0LDE0IEBAIHN0YXRp YyB2b2lkIGludGVsX3JpbmdfaW5pdF9zZW1hcGhvcmVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKIAkJCWVuZ2luZS0+c2VtYXBob3JlLm1ib3guc2lnbmFsW2ldID0gbWJveF9y ZWc7CiAJCX0KIAl9CisKKwlyZXR1cm47CisKK2Vycl9vYmo6CisJaTkxNV9nZW1fb2JqZWN0X3B1 dChvYmopOworZXJyOgorCURSTV9ERUJVR19EUklWRVIoIkZhaWxlZCB0byBhbGxvY2F0ZSBzcGFj ZSBmb3Igc2VtYXBob3JlcywgZGlzYWJsaW5nXG4iKTsKKwlpOTE1LnNlbWFwaG9yZXMgPSAwOwog fQogCiBzdGF0aWMgdm9pZCBpbnRlbF9yaW5nX2luaXRfaXJxKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAppbmRl eCBkY2E4NDI1OGJlMTYuLmNiNDA3ODVlNzY3NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuaApAQCAtNTcsMTAgKzU3LDEwIEBAIHN0cnVjdCBpbnRlbF9od19zdGF0dXNf cGFnZSB7CiAjZGVmaW5lIEdFTjhfU0VNQVBIT1JFX09GRlNFVChfX2Zyb20sIF9fdG8pCQkJICAg ICBcCiAJKCgoX19mcm9tKSAqIEk5MTVfTlVNX0VOR0lORVMgICsgKF9fdG8pKSAqIGdlbjhfc2Vt YXBob3JlX3NlcW5vX3NpemUpCiAjZGVmaW5lIEdFTjhfU0lHTkFMX09GRlNFVChfX3JpbmcsIHRv KQkJCSAgICAgXAotCShpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQoZGV2X3ByaXYtPnNlbWFwaG9y ZV9vYmopICsgXAorCShkZXZfcHJpdi0+c2VtYXBob3JlLT5ub2RlLnN0YXJ0ICsgXAogCSBHRU44 X1NFTUFQSE9SRV9PRkZTRVQoKF9fcmluZyktPmlkLCAodG8pKSkKICNkZWZpbmUgR0VOOF9XQUlU X09GRlNFVChfX3JpbmcsIGZyb20pCQkJICAgICBcCi0JKGk5MTVfZ2VtX29ial9nZ3R0X29mZnNl dChkZXZfcHJpdi0+c2VtYXBob3JlX29iaikgKyBcCisJKGRldl9wcml2LT5zZW1hcGhvcmUtPm5v ZGUuc3RhcnQgKyBcCiAJIEdFTjhfU0VNQVBIT1JFX09GRlNFVChmcm9tLCAoX19yaW5nKS0+aWQp KQogCiBlbnVtIGludGVsX2VuZ2luZV9oYW5nY2hlY2tfYWN0aW9uIHsKLS0gCjIuOC4xCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK