From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 02/17] drm/i915: Prepare for non-object vma Date: Wed, 6 Jun 2018 07:26:55 +0100 Message-ID: <20180606062710.29984-3-chris@chris-wilson.co.uk> References: <20180606062710.29984-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 542046E515 for ; Wed, 6 Jun 2018 06:27:34 +0000 (UTC) In-Reply-To: <20180606062710.29984-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 SW4gb3JkZXIgdG8gYWxsb3cgb3Vyc2VsdmVzIHRvIHVzZSBWTUEgdG8gd3JhcCBvdGhlciBlbnRp dGllcyBvdGhlciB0aGFuCkdFTSBvYmplY3RzLCB3ZSBuZWVkIHRvIGFsbG93IGZvciB0aGUgdm1h LT5vYmogYmFja3BvaW50ZXIgdG8gYmUgTlVMTC4KSW4gbW9zdCBjYXNlcywgd2Uga25vdyB3ZSBh cmUgb3BlcmF0aW5nIG9uIGEgR0VNIG9iamVjdCBhbmQgaXRzIHZtYSwgYnV0CndlIG5lZWQgdGhl IGNvcmUgY29kZSAoc3VjaCBhcyBpOTE1X3ZtYV9waW4vaW5zZXJ0L2JpbmQvdW5iaW5kKSB0byB3 b3JrCnJlZ2FyZGxlc3Mgb2YgdGhlIGlubmFyZHMuCgpUaGUgcmVtYWluaW5nIGV5ZXNvcmUgaGVy ZSBpcyB2bWEtPm9iai0+Y2FjaGVfbGV2ZWwgYW5kIHJlbGF0ZWQgKGJ1dApsZXNzIG9mIGFuIGlz c3VlKSB2bWEtPm9iai0+Z3Rfcm8uIFdpdGggYSBiaXQgb2YgY2FyZSB3ZSBzaG91bGQgbWlycm9y CnRob3NlIG9uIHRoZSB2bWEgaXRzZWxmLgoKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxj aHJpc0BjaHJpcy13aWxzb24uY28udWs+CkNjOiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0 aW5lbkBsaW51eC5pbnRlbC5jb20+CkNjOiBNaWthIEt1b3BwYWxhIDxtaWthLmt1b3BwYWxhQGxp bnV4LmludGVsLmNvbT4KQ2M6IE1hdHRoZXcgQXVsZCA8bWF0dGhldy53aWxsaWFtLmF1bGRAZ21h aWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jICAgfCAgNyAr LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyB8ICAzICsKIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfdm1hLmMgICAgICAgfCA5NiArKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmggICAgICAgfCAgMiArLQogNCBm aWxlcyBjaGFuZ2VkLCA2NSBpbnNlcnRpb25zKCspLCA0MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2d0dC5jCmluZGV4IGIyMzI0NTJmZjViOS4uNjJiN2Y4OGE4MjBkIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwpAQCAtMzU4OCw4ICszNTg4LDExIEBAIHZv aWQgaTkxNV9nZW1fcmVzdG9yZV9ndHRfbWFwcGluZ3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQogCQlpZiAoIWk5MTVfdm1hX3VuYmluZCh2bWEpKQogCQkJY29udGludWU7CiAK LQkJV0FSTl9PTihpOTE1X3ZtYV9iaW5kKHZtYSwgb2JqLT5jYWNoZV9sZXZlbCwgUElOX1VQREFU RSkpOwotCQlXQVJOX09OKGk5MTVfZ2VtX29iamVjdF9zZXRfdG9fZ3R0X2RvbWFpbihvYmosIGZh bHNlKSk7CisJCVdBUk5fT04oaTkxNV92bWFfYmluZCh2bWEsCisJCQkJICAgICAgb2JqID8gb2Jq LT5jYWNoZV9sZXZlbCA6IDAsCisJCQkJICAgICAgUElOX1VQREFURSkpOworCQlpZiAob2JqKQor CQkJV0FSTl9PTihpOTE1X2dlbV9vYmplY3Rfc2V0X3RvX2d0dF9kb21haW4ob2JqLCBmYWxzZSkp OwogCX0KIAogCWdndHQtPnZtLmNsb3NlZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z3B1X2Vycm9yLmMKaW5kZXggNzU4MjM0ZDIwZjRlLi5kZjUyNGM5Y2FkNDAgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwpAQCAtMTA1MCw2ICsxMDUwLDkgQEAgc3RhdGljIHUz MiBjYXB0dXJlX2Vycm9yX2JvKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9idWZmZXIgKmVyciwKIAlp bnQgaSA9IDA7CiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHZtYSwgaGVhZCwgdm1fbGluaykgewor CQlpZiAoIXZtYS0+b2JqKQorCQkJY29udGludWU7CisKIAkJaWYgKHBpbm5lZF9vbmx5ICYmICFp OTE1X3ZtYV9pc19waW5uZWQodm1hKSkKIAkJCWNvbnRpbnVlOwogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92 bWEuYwppbmRleCA5MTJmMTZmZmU3ZWUuLmI3MTI2NTA2NmNkMSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3ZtYS5jCkBAIC0zNDUsNyArMzQ1LDcgQEAgdm9pZCBpOTE1X3ZtYV9mbHVzaF93cml0ZXMoc3Ry dWN0IGk5MTVfdm1hICp2bWEpCiAKIHZvaWQgaTkxNV92bWFfdW5waW5faW9tYXAoc3RydWN0IGk5 MTVfdm1hICp2bWEpCiB7Ci0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmdm1hLT5vYmotPmJhc2UuZGV2 LT5zdHJ1Y3RfbXV0ZXgpOworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJnZtYS0+dm0tPmk5MTUtPmRy bS5zdHJ1Y3RfbXV0ZXgpOwogCiAJR0VNX0JVR19PTih2bWEtPmlvbWFwID09IE5VTEwpOwogCkBA IC0zNjUsNiArMzY1LDcgQEAgdm9pZCBpOTE1X3ZtYV91bnBpbl9hbmRfcmVsZWFzZShzdHJ1Y3Qg aTkxNV92bWEgKipwX3ZtYSkKIAkJcmV0dXJuOwogCiAJb2JqID0gdm1hLT5vYmo7CisJR0VNX0JV R19PTighb2JqKTsKIAogCWk5MTVfdm1hX3VucGluKHZtYSk7CiAJaTkxNV92bWFfY2xvc2Uodm1h KTsKQEAgLTQ4OSw3ICs0OTAsNyBAQCBzdGF0aWMgaW50CiBpOTE1X3ZtYV9pbnNlcnQoc3RydWN0 IGk5MTVfdm1hICp2bWEsIHU2NCBzaXplLCB1NjQgYWxpZ25tZW50LCB1NjQgZmxhZ3MpCiB7CiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdm1hLT52bS0+aTkxNTsKLQlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gdm1hLT5vYmo7CisJdW5zaWduZWQgaW50IGNh Y2hlX2xldmVsOwogCXU2NCBzdGFydCwgZW5kOwogCWludCByZXQ7CiAKQEAgLTUyNCwxNiArNTI1 LDIxIEBAIGk5MTVfdm1hX2luc2VydChzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgdTY0IHNpemUsIHU2 NCBhbGlnbm1lbnQsIHU2NCBmbGFncykKIAkgKiBhdHRlbXB0IHRvIGZpbmQgc3BhY2UuCiAJICov CiAJaWYgKHNpemUgPiBlbmQpIHsKLQkJRFJNX0RFQlVHKCJBdHRlbXB0aW5nIHRvIGJpbmQgYW4g b2JqZWN0IGxhcmdlciB0aGFuIHRoZSBhcGVydHVyZTogcmVxdWVzdD0lbGx1IFtvYmplY3Q9JXpk XSA+ICVzIGFwZXJ0dXJlPSVsbHVcbiIsCi0JCQkgIHNpemUsIG9iai0+YmFzZS5zaXplLAotCQkJ ICBmbGFncyAmIFBJTl9NQVBQQUJMRSA/ICJtYXBwYWJsZSIgOiAidG90YWwiLAorCQlEUk1fREVC VUcoIkF0dGVtcHRpbmcgdG8gYmluZCBhbiBvYmplY3QgbGFyZ2VyIHRoYW4gdGhlIGFwZXJ0dXJl OiByZXF1ZXN0PSVsbHUgPiAlcyBhcGVydHVyZT0lbGx1XG4iLAorCQkJICBzaXplLCBmbGFncyAm IFBJTl9NQVBQQUJMRSA/ICJtYXBwYWJsZSIgOiAidG90YWwiLAogCQkJICBlbmQpOwogCQlyZXR1 cm4gLUVOT1NQQzsKIAl9CiAKLQlyZXQgPSBpOTE1X2dlbV9vYmplY3RfcGluX3BhZ2VzKG9iaik7 Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKKwlpZiAodm1hLT5vYmopIHsKKwkJcmV0ID0gaTkx NV9nZW1fb2JqZWN0X3Bpbl9wYWdlcyh2bWEtPm9iaik7CisJCWlmIChyZXQpCisJCQlyZXR1cm4g cmV0OworCisJCWNhY2hlX2xldmVsID0gdm1hLT5vYmotPmNhY2hlX2xldmVsOworCX0gZWxzZSB7 CisJCWNhY2hlX2xldmVsID0gMDsKKwl9CiAKIAlHRU1fQlVHX09OKHZtYS0+cGFnZXMpOwogCkBA IC01NTAsNyArNTU2LDcgQEAgaTkxNV92bWFfaW5zZXJ0KHN0cnVjdCBpOTE1X3ZtYSAqdm1hLCB1 NjQgc2l6ZSwgdTY0IGFsaWdubWVudCwgdTY0IGZsYWdzKQogCQl9CiAKIAkJcmV0ID0gaTkxNV9n ZW1fZ3R0X3Jlc2VydmUodm1hLT52bSwgJnZtYS0+bm9kZSwKLQkJCQkJICAgc2l6ZSwgb2Zmc2V0 LCBvYmotPmNhY2hlX2xldmVsLAorCQkJCQkgICBzaXplLCBvZmZzZXQsIGNhY2hlX2xldmVsLAog CQkJCQkgICBmbGFncyk7CiAJCWlmIChyZXQpCiAJCQlnb3RvIGVycl9jbGVhcjsKQEAgLTU4OSw3 ICs1OTUsNyBAQCBpOTE1X3ZtYV9pbnNlcnQoc3RydWN0IGk5MTVfdm1hICp2bWEsIHU2NCBzaXpl LCB1NjQgYWxpZ25tZW50LCB1NjQgZmxhZ3MpCiAJCX0KIAogCQlyZXQgPSBpOTE1X2dlbV9ndHRf aW5zZXJ0KHZtYS0+dm0sICZ2bWEtPm5vZGUsCi0JCQkJCSAgc2l6ZSwgYWxpZ25tZW50LCBvYmot PmNhY2hlX2xldmVsLAorCQkJCQkgIHNpemUsIGFsaWdubWVudCwgY2FjaGVfbGV2ZWwsCiAJCQkJ CSAgc3RhcnQsIGVuZCwgZmxhZ3MpOwogCQlpZiAocmV0KQogCQkJZ290byBlcnJfY2xlYXI7CkBA IC01OTgsMjMgKzYwNCwyOCBAQCBpOTE1X3ZtYV9pbnNlcnQoc3RydWN0IGk5MTVfdm1hICp2bWEs IHU2NCBzaXplLCB1NjQgYWxpZ25tZW50LCB1NjQgZmxhZ3MpCiAJCUdFTV9CVUdfT04odm1hLT5u b2RlLnN0YXJ0ICsgdm1hLT5ub2RlLnNpemUgPiBlbmQpOwogCX0KIAlHRU1fQlVHX09OKCFkcm1f bW1fbm9kZV9hbGxvY2F0ZWQoJnZtYS0+bm9kZSkpOwotCUdFTV9CVUdfT04oIWk5MTVfZ2VtX3Zh bGlkX2d0dF9zcGFjZSh2bWEsIG9iai0+Y2FjaGVfbGV2ZWwpKTsKKwlHRU1fQlVHX09OKCFpOTE1 X2dlbV92YWxpZF9ndHRfc3BhY2Uodm1hLCBjYWNoZV9sZXZlbCkpOwogCiAJbGlzdF9tb3ZlX3Rh aWwoJnZtYS0+dm1fbGluaywgJnZtYS0+dm0tPmluYWN0aXZlX2xpc3QpOwogCi0Jc3Bpbl9sb2Nr KCZkZXZfcHJpdi0+bW0ub2JqX2xvY2spOwotCWxpc3RfbW92ZV90YWlsKCZvYmotPm1tLmxpbmss ICZkZXZfcHJpdi0+bW0uYm91bmRfbGlzdCk7Ci0Jb2JqLT5iaW5kX2NvdW50Kys7Ci0Jc3Bpbl91 bmxvY2soJmRldl9wcml2LT5tbS5vYmpfbG9jayk7CisJaWYgKHZtYS0+b2JqKSB7CisJCXN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSB2bWEtPm9iajsKKworCQlzcGluX2xvY2soJmRl dl9wcml2LT5tbS5vYmpfbG9jayk7CisJCWxpc3RfbW92ZV90YWlsKCZvYmotPm1tLmxpbmssICZk ZXZfcHJpdi0+bW0uYm91bmRfbGlzdCk7CisJCW9iai0+YmluZF9jb3VudCsrOworCQlzcGluX3Vu bG9jaygmZGV2X3ByaXYtPm1tLm9ial9sb2NrKTsKIAotCWFzc2VydF9iaW5kX2NvdW50KG9iaik7 CisJCWFzc2VydF9iaW5kX2NvdW50KG9iaik7CisJfQogCiAJcmV0dXJuIDA7CiAKIGVycl9jbGVh cjoKIAl2bWEtPnZtLT5jbGVhcl9wYWdlcyh2bWEpOwogZXJyX3VucGluOgotCWk5MTVfZ2VtX29i amVjdF91bnBpbl9wYWdlcyhvYmopOworCWlmICh2bWEtPm9iaikKKwkJaTkxNV9nZW1fb2JqZWN0 X3VucGluX3BhZ2VzKHZtYS0+b2JqKTsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC02MjIsNyArNjMz LDYgQEAgc3RhdGljIHZvaWQKIGk5MTVfdm1hX3JlbW92ZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkK IHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHZtYS0+dm0tPmk5MTU7Ci0Jc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IHZtYS0+b2JqOwogCiAJR0VNX0JVR19PTigh ZHJtX21tX25vZGVfYWxsb2NhdGVkKCZ2bWEtPm5vZGUpKTsKIAlHRU1fQlVHX09OKHZtYS0+Zmxh Z3MgJiAoSTkxNV9WTUFfR0xPQkFMX0JJTkQgfCBJOTE1X1ZNQV9MT0NBTF9CSU5EKSk7CkBAIC02 MzIsMjAgKzY0MiwyNiBAQCBpOTE1X3ZtYV9yZW1vdmUoc3RydWN0IGk5MTVfdm1hICp2bWEpCiAJ ZHJtX21tX3JlbW92ZV9ub2RlKCZ2bWEtPm5vZGUpOwogCWxpc3RfbW92ZV90YWlsKCZ2bWEtPnZt X2xpbmssICZ2bWEtPnZtLT51bmJvdW5kX2xpc3QpOwogCi0JLyogU2luY2UgdGhlIHVuYm91bmQg bGlzdCBpcyBnbG9iYWwsIG9ubHkgbW92ZSB0byB0aGF0IGxpc3QgaWYKKwkvKgorCSAqIFNpbmNl IHRoZSB1bmJvdW5kIGxpc3QgaXMgZ2xvYmFsLCBvbmx5IG1vdmUgdG8gdGhhdCBsaXN0IGlmCiAJ ICogbm8gbW9yZSBWTUFzIGV4aXN0LgogCSAqLwotCXNwaW5fbG9jaygmaTkxNS0+bW0ub2JqX2xv Y2spOwotCWlmICgtLW9iai0+YmluZF9jb3VudCA9PSAwKQotCQlsaXN0X21vdmVfdGFpbCgmb2Jq LT5tbS5saW5rLCAmaTkxNS0+bW0udW5ib3VuZF9saXN0KTsKLQlzcGluX3VubG9jaygmaTkxNS0+ bW0ub2JqX2xvY2spOwotCi0JLyogQW5kIGZpbmFsbHkgbm93IHRoZSBvYmplY3QgaXMgY29tcGxl dGVseSBkZWNvdXBsZWQgZnJvbSB0aGlzIHZtYSwKLQkgKiB3ZSBjYW4gZHJvcCBpdHMgaG9sZCBv biB0aGUgYmFja2luZyBzdG9yYWdlIGFuZCBhbGxvdyBpdCB0byBiZQotCSAqIHJlYXBlZCBieSB0 aGUgc2hyaW5rZXIuCi0JICovCi0JaTkxNV9nZW1fb2JqZWN0X3VucGluX3BhZ2VzKG9iaik7Ci0J YXNzZXJ0X2JpbmRfY291bnQob2JqKTsKKwlpZiAodm1hLT5vYmopIHsKKwkJc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaiA9IHZtYS0+b2JqOworCisJCXNwaW5fbG9jaygmaTkxNS0+bW0u b2JqX2xvY2spOworCQlpZiAoLS1vYmotPmJpbmRfY291bnQgPT0gMCkKKwkJCWxpc3RfbW92ZV90 YWlsKCZvYmotPm1tLmxpbmssICZpOTE1LT5tbS51bmJvdW5kX2xpc3QpOworCQlzcGluX3VubG9j aygmaTkxNS0+bW0ub2JqX2xvY2spOworCisJCS8qCisJCSAqIEFuZCBmaW5hbGx5IG5vdyB0aGUg b2JqZWN0IGlzIGNvbXBsZXRlbHkgZGVjb3VwbGVkIGZyb20gdGhpcworCQkgKiB2bWEsIHdlIGNh biBkcm9wIGl0cyBob2xkIG9uIHRoZSBiYWNraW5nIHN0b3JhZ2UgYW5kIGFsbG93CisJCSAqIGl0 IHRvIGJlIHJlYXBlZCBieSB0aGUgc2hyaW5rZXIuCisJCSAqLworCQlpOTE1X2dlbV9vYmplY3Rf dW5waW5fcGFnZXMob2JqKTsKKwkJYXNzZXJ0X2JpbmRfY291bnQob2JqKTsKKwl9CiB9CiAKIGlu dCBfX2k5MTVfdm1hX2RvX3BpbihzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKQEAgLTY3MCw3ICs2ODYs NyBAQCBpbnQgX19pOTE1X3ZtYV9kb19waW4oc3RydWN0IGk5MTVfdm1hICp2bWEsCiAJfQogCUdF TV9CVUdfT04oIWRybV9tbV9ub2RlX2FsbG9jYXRlZCgmdm1hLT5ub2RlKSk7CiAKLQlyZXQgPSBp OTE1X3ZtYV9iaW5kKHZtYSwgdm1hLT5vYmotPmNhY2hlX2xldmVsLCBmbGFncyk7CisJcmV0ID0g aTkxNV92bWFfYmluZCh2bWEsIHZtYS0+b2JqID8gdm1hLT5vYmotPmNhY2hlX2xldmVsIDogMCwg ZmxhZ3MpOwogCWlmIChyZXQpCiAJCWdvdG8gZXJyX3JlbW92ZTsKIApAQCAtNzI3LDYgKzc0Myw3 IEBAIHZvaWQgaTkxNV92bWFfcmVvcGVuKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogCiBzdGF0aWMg dm9pZCBfX2k5MTVfdm1hX2Rlc3Ryb3koc3RydWN0IGk5MTVfdm1hICp2bWEpCiB7CisJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB2bWEtPnZtLT5pOTE1OwogCWludCBpOwogCiAJR0VN X0JVR19PTih2bWEtPm5vZGUuYWxsb2NhdGVkKTsKQEAgLTczOCwxMiArNzU1LDEzIEBAIHN0YXRp YyB2b2lkIF9faTkxNV92bWFfZGVzdHJveShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKIAogCWxpc3Rf ZGVsKCZ2bWEtPm9ial9saW5rKTsKIAlsaXN0X2RlbCgmdm1hLT52bV9saW5rKTsKLQlyYl9lcmFz ZSgmdm1hLT5vYmpfbm9kZSwgJnZtYS0+b2JqLT52bWFfdHJlZSk7CisJaWYgKHZtYS0+b2JqKQor CQlyYl9lcmFzZSgmdm1hLT5vYmpfbm9kZSwgJnZtYS0+b2JqLT52bWFfdHJlZSk7CiAKIAlpZiAo IWk5MTVfdm1hX2lzX2dndHQodm1hKSkKIAkJaTkxNV9wcGd0dF9wdXQoaTkxNV92bV90b19wcGd0 dCh2bWEtPnZtKSk7CiAKLQlrbWVtX2NhY2hlX2ZyZWUodG9faTkxNSh2bWEtPm9iai0+YmFzZS5k ZXYpLT52bWFzLCB2bWEpOworCWttZW1fY2FjaGVfZnJlZShpOTE1LT52bWFzLCB2bWEpOwogfQog CiB2b2lkIGk5MTVfdm1hX2Rlc3Ryb3koc3RydWN0IGk5MTVfdm1hICp2bWEpCkBAIC04MDksMTMg KzgyNywxMyBAQCB2b2lkIGk5MTVfdm1hX3Jldm9rZV9tbWFwKHN0cnVjdCBpOTE1X3ZtYSAqdm1h KQogCiBpbnQgaTkxNV92bWFfdW5iaW5kKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogewotCXN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSB2bWEtPm9iajsKIAl1bnNpZ25lZCBsb25nIGFj dGl2ZTsKIAlpbnQgcmV0OwogCi0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmb2JqLT5iYXNlLmRldi0+ c3RydWN0X211dGV4KTsKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZ2bWEtPnZtLT5pOTE1LT5kcm0u c3RydWN0X211dGV4KTsKIAotCS8qIEZpcnN0IHdhaXQgdXBvbiBhbnkgYWN0aXZpdHkgYXMgcmV0 aXJpbmcgdGhlIHJlcXVlc3QgbWF5CisJLyoKKwkgKiBGaXJzdCB3YWl0IHVwb24gYW55IGFjdGl2 aXR5IGFzIHJldGlyaW5nIHRoZSByZXF1ZXN0IG1heQogCSAqIGhhdmUgc2lkZS1lZmZlY3RzIHN1 Y2ggYXMgdW5waW5uaW5nIG9yIGV2ZW4gdW5iaW5kaW5nIHRoaXMgdm1hLgogCSAqLwogCW1pZ2h0 X3NsZWVwKCk7CkBAIC04MjMsNyArODQxLDggQEAgaW50IGk5MTVfdm1hX3VuYmluZChzdHJ1Y3Qg aTkxNV92bWEgKnZtYSkKIAlpZiAoYWN0aXZlKSB7CiAJCWludCBpZHg7CiAKLQkJLyogV2hlbiBh IGNsb3NlZCBWTUEgaXMgcmV0aXJlZCwgaXQgaXMgdW5ib3VuZCAtIGVlay4KKwkJLyoKKwkJICog V2hlbiBhIGNsb3NlZCBWTUEgaXMgcmV0aXJlZCwgaXQgaXMgdW5ib3VuZCAtIGVlay4KIAkJICog SW4gb3JkZXIgdG8gcHJldmVudCBpdCBmcm9tIGJlaW5nIHJlY3Vyc2l2ZWx5IGNsb3NlZCwKIAkJ ICogdGFrZSBhIHBpbiBvbiB0aGUgdm1hIHNvIHRoYXQgdGhlIHNlY29uZCB1bmJpbmQgaXMKIAkJ ICogYWJvcnRlZC4KQEAgLTg2MSw5ICs4ODAsNiBAQCBpbnQgaTkxNV92bWFfdW5iaW5kKHN0cnVj dCBpOTE1X3ZtYSAqdm1hKQogCWlmICghZHJtX21tX25vZGVfYWxsb2NhdGVkKCZ2bWEtPm5vZGUp KQogCQlyZXR1cm4gMDsKIAotCUdFTV9CVUdfT04ob2JqLT5iaW5kX2NvdW50ID09IDApOwotCUdF TV9CVUdfT04oIWk5MTVfZ2VtX29iamVjdF9oYXNfcGlubmVkX3BhZ2VzKG9iaikpOwotCiAJaWYg KGk5MTVfdm1hX2lzX21hcF9hbmRfZmVuY2VhYmxlKHZtYSkpIHsKIAkJLyoKIAkJICogQ2hlY2sg dGhhdCB3ZSBoYXZlIGZsdXNoZWQgYWxsIHdyaXRlcyB0aHJvdWdoIHRoZSBHR1RUCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV92bWEuaAppbmRleCBmYzQyOTRjZmFhOTEuLmYwNTMyZjFhNDk1MyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3ZtYS5oCkBAIC00MDcsNyArNDA3LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIF9f aTkxNV92bWFfdW5waW5fZmVuY2Uoc3RydWN0IGk5MTVfdm1hICp2bWEpCiBzdGF0aWMgaW5saW5l IHZvaWQKIGk5MTVfdm1hX3VucGluX2ZlbmNlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogewotCWxv Y2tkZXBfYXNzZXJ0X2hlbGQoJnZtYS0+b2JqLT5iYXNlLmRldi0+c3RydWN0X211dGV4KTsKKwkv KiBsb2NrZGVwX2Fzc2VydF9oZWxkKCZ2bWEtPnZtLT5pOTE1LT5kcm0uc3RydWN0X211dGV4KTsg Ki8KIAlpZiAodm1hLT5mZW5jZSkKIAkJX19pOTE1X3ZtYV91bnBpbl9mZW5jZSh2bWEpOwogfQot LSAKMi4xNy4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK