From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 06/20] drm/i915: Prepare for non-object vma Date: Thu, 7 Jun 2018 10:58:01 +0100 Message-ID: <20180607095815.10938-7-chris@chris-wilson.co.uk> References: <20180607095815.10938-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 040366F1EC for ; Thu, 7 Jun 2018 10:02:54 +0000 (UTC) In-Reply-To: <20180607095815.10938-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 aWwuY29tPgpSZXZpZXdlZC1ieTogTWF0dGhldyBBdWxkIDxtYXR0aGV3LndpbGxpYW0uYXVsZEBn bWFpbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgICB8ICA3 ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jIHwgIDMgKwogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYyAgICAgICB8IDk2ICsrKysrKysrKysrKysrKystLS0t LS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuaCAgICAgICB8ICAyICstCiA0 IGZpbGVzIGNoYW5nZWQsIDY1IGluc2VydGlvbnMoKyksIDQzIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKaW5kZXggNjBhMTI3YWY5ODcxLi4xYTE1OGJkZjg1OGIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCkBAIC0zNTg4LDggKzM1ODgsMTEgQEAg dm9pZCBpOTE1X2dlbV9yZXN0b3JlX2d0dF9tYXBwaW5ncyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCiAJCWlmICghaTkxNV92bWFfdW5iaW5kKHZtYSkpCiAJCQljb250aW51ZTsK IAotCQlXQVJOX09OKGk5MTVfdm1hX2JpbmQodm1hLCBvYmotPmNhY2hlX2xldmVsLCBQSU5fVVBE QVRFKSk7Ci0JCVdBUk5fT04oaTkxNV9nZW1fb2JqZWN0X3NldF90b19ndHRfZG9tYWluKG9iaiwg ZmFsc2UpKTsKKwkJV0FSTl9PTihpOTE1X3ZtYV9iaW5kKHZtYSwKKwkJCQkgICAgICBvYmogPyBv YmotPmNhY2hlX2xldmVsIDogMCwKKwkJCQkgICAgICBQSU5fVVBEQVRFKSk7CisJCWlmIChvYmop CisJCQlXQVJOX09OKGk5MTVfZ2VtX29iamVjdF9zZXRfdG9fZ3R0X2RvbWFpbihvYmosIGZhbHNl KSk7CiAJfQogCiAJZ2d0dC0+dm0uY2xvc2VkID0gZmFsc2U7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9ncHVfZXJyb3IuYwppbmRleCA3NTgyMzRkMjBmNGUuLmRmNTI0YzljYWQ0MCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCkBAIC0xMDUwLDYgKzEwNTAsOSBAQCBzdGF0aWMg dTMyIGNhcHR1cmVfZXJyb3JfYm8oc3RydWN0IGRybV9pOTE1X2Vycm9yX2J1ZmZlciAqZXJyLAog CWludCBpID0gMDsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkodm1hLCBoZWFkLCB2bV9saW5rKSB7 CisJCWlmICghdm1hLT5vYmopCisJCQljb250aW51ZTsKKwogCQlpZiAocGlubmVkX29ubHkgJiYg IWk5MTVfdm1hX2lzX3Bpbm5lZCh2bWEpKQogCQkJY29udGludWU7CiAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3ZtYS5jCmluZGV4IDkxMmYxNmZmZTdlZS4uYjcxMjY1MDY2Y2QxIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfdm1hLmMKQEAgLTM0NSw3ICszNDUsNyBAQCB2b2lkIGk5MTVfdm1hX2ZsdXNoX3dyaXRlcyhz dHJ1Y3QgaTkxNV92bWEgKnZtYSkKIAogdm9pZCBpOTE1X3ZtYV91bnBpbl9pb21hcChzdHJ1Y3Qg aTkxNV92bWEgKnZtYSkKIHsKLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZ2bWEtPm9iai0+YmFzZS5k ZXYtPnN0cnVjdF9tdXRleCk7CisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmdm1hLT52bS0+aTkxNS0+ ZHJtLnN0cnVjdF9tdXRleCk7CiAKIAlHRU1fQlVHX09OKHZtYS0+aW9tYXAgPT0gTlVMTCk7CiAK QEAgLTM2NSw2ICszNjUsNyBAQCB2b2lkIGk5MTVfdm1hX3VucGluX2FuZF9yZWxlYXNlKHN0cnVj dCBpOTE1X3ZtYSAqKnBfdm1hKQogCQlyZXR1cm47CiAKIAlvYmogPSB2bWEtPm9iajsKKwlHRU1f QlVHX09OKCFvYmopOwogCiAJaTkxNV92bWFfdW5waW4odm1hKTsKIAlpOTE1X3ZtYV9jbG9zZSh2 bWEpOwpAQCAtNDg5LDcgKzQ5MCw3IEBAIHN0YXRpYyBpbnQKIGk5MTVfdm1hX2luc2VydChzdHJ1 Y3QgaTkxNV92bWEgKnZtYSwgdTY0IHNpemUsIHU2NCBhbGlnbm1lbnQsIHU2NCBmbGFncykKIHsK IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB2bWEtPnZtLT5pOTE1OwotCXN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSB2bWEtPm9iajsKKwl1bnNpZ25lZCBpbnQg Y2FjaGVfbGV2ZWw7CiAJdTY0IHN0YXJ0LCBlbmQ7CiAJaW50IHJldDsKIApAQCAtNTI0LDE2ICs1 MjUsMjEgQEAgaTkxNV92bWFfaW5zZXJ0KHN0cnVjdCBpOTE1X3ZtYSAqdm1hLCB1NjQgc2l6ZSwg dTY0IGFsaWdubWVudCwgdTY0IGZsYWdzKQogCSAqIGF0dGVtcHQgdG8gZmluZCBzcGFjZS4KIAkg Ki8KIAlpZiAoc2l6ZSA+IGVuZCkgewotCQlEUk1fREVCVUcoIkF0dGVtcHRpbmcgdG8gYmluZCBh biBvYmplY3QgbGFyZ2VyIHRoYW4gdGhlIGFwZXJ0dXJlOiByZXF1ZXN0PSVsbHUgW29iamVjdD0l emRdID4gJXMgYXBlcnR1cmU9JWxsdVxuIiwKLQkJCSAgc2l6ZSwgb2JqLT5iYXNlLnNpemUsCi0J CQkgIGZsYWdzICYgUElOX01BUFBBQkxFID8gIm1hcHBhYmxlIiA6ICJ0b3RhbCIsCisJCURSTV9E RUJVRygiQXR0ZW1wdGluZyB0byBiaW5kIGFuIG9iamVjdCBsYXJnZXIgdGhhbiB0aGUgYXBlcnR1 cmU6IHJlcXVlc3Q9JWxsdSA+ICVzIGFwZXJ0dXJlPSVsbHVcbiIsCisJCQkgIHNpemUsIGZsYWdz ICYgUElOX01BUFBBQkxFID8gIm1hcHBhYmxlIiA6ICJ0b3RhbCIsCiAJCQkgIGVuZCk7CiAJCXJl dHVybiAtRU5PU1BDOwogCX0KIAotCXJldCA9IGk5MTVfZ2VtX29iamVjdF9waW5fcGFnZXMob2Jq KTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OworCWlmICh2bWEtPm9iaikgeworCQlyZXQgPSBp OTE1X2dlbV9vYmplY3RfcGluX3BhZ2VzKHZtYS0+b2JqKTsKKwkJaWYgKHJldCkKKwkJCXJldHVy biByZXQ7CisKKwkJY2FjaGVfbGV2ZWwgPSB2bWEtPm9iai0+Y2FjaGVfbGV2ZWw7CisJfSBlbHNl IHsKKwkJY2FjaGVfbGV2ZWwgPSAwOworCX0KIAogCUdFTV9CVUdfT04odm1hLT5wYWdlcyk7CiAK QEAgLTU1MCw3ICs1NTYsNyBAQCBpOTE1X3ZtYV9pbnNlcnQoc3RydWN0IGk5MTVfdm1hICp2bWEs IHU2NCBzaXplLCB1NjQgYWxpZ25tZW50LCB1NjQgZmxhZ3MpCiAJCX0KIAogCQlyZXQgPSBpOTE1 X2dlbV9ndHRfcmVzZXJ2ZSh2bWEtPnZtLCAmdm1hLT5ub2RlLAotCQkJCQkgICBzaXplLCBvZmZz ZXQsIG9iai0+Y2FjaGVfbGV2ZWwsCisJCQkJCSAgIHNpemUsIG9mZnNldCwgY2FjaGVfbGV2ZWws CiAJCQkJCSAgIGZsYWdzKTsKIAkJaWYgKHJldCkKIAkJCWdvdG8gZXJyX2NsZWFyOwpAQCAtNTg5 LDcgKzU5NSw3IEBAIGk5MTVfdm1hX2luc2VydChzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgdTY0IHNp emUsIHU2NCBhbGlnbm1lbnQsIHU2NCBmbGFncykKIAkJfQogCiAJCXJldCA9IGk5MTVfZ2VtX2d0 dF9pbnNlcnQodm1hLT52bSwgJnZtYS0+bm9kZSwKLQkJCQkJICBzaXplLCBhbGlnbm1lbnQsIG9i ai0+Y2FjaGVfbGV2ZWwsCisJCQkJCSAgc2l6ZSwgYWxpZ25tZW50LCBjYWNoZV9sZXZlbCwKIAkJ CQkJICBzdGFydCwgZW5kLCBmbGFncyk7CiAJCWlmIChyZXQpCiAJCQlnb3RvIGVycl9jbGVhcjsK QEAgLTU5OCwyMyArNjA0LDI4IEBAIGk5MTVfdm1hX2luc2VydChzdHJ1Y3QgaTkxNV92bWEgKnZt YSwgdTY0IHNpemUsIHU2NCBhbGlnbm1lbnQsIHU2NCBmbGFncykKIAkJR0VNX0JVR19PTih2bWEt Pm5vZGUuc3RhcnQgKyB2bWEtPm5vZGUuc2l6ZSA+IGVuZCk7CiAJfQogCUdFTV9CVUdfT04oIWRy bV9tbV9ub2RlX2FsbG9jYXRlZCgmdm1hLT5ub2RlKSk7Ci0JR0VNX0JVR19PTighaTkxNV9nZW1f dmFsaWRfZ3R0X3NwYWNlKHZtYSwgb2JqLT5jYWNoZV9sZXZlbCkpOworCUdFTV9CVUdfT04oIWk5 MTVfZ2VtX3ZhbGlkX2d0dF9zcGFjZSh2bWEsIGNhY2hlX2xldmVsKSk7CiAKIAlsaXN0X21vdmVf dGFpbCgmdm1hLT52bV9saW5rLCAmdm1hLT52bS0+aW5hY3RpdmVfbGlzdCk7CiAKLQlzcGluX2xv Y2soJmRldl9wcml2LT5tbS5vYmpfbG9jayk7Ci0JbGlzdF9tb3ZlX3RhaWwoJm9iai0+bW0ubGlu aywgJmRldl9wcml2LT5tbS5ib3VuZF9saXN0KTsKLQlvYmotPmJpbmRfY291bnQrKzsKLQlzcGlu X3VubG9jaygmZGV2X3ByaXYtPm1tLm9ial9sb2NrKTsKKwlpZiAodm1hLT5vYmopIHsKKwkJc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IHZtYS0+b2JqOworCisJCXNwaW5fbG9jaygm ZGV2X3ByaXYtPm1tLm9ial9sb2NrKTsKKwkJbGlzdF9tb3ZlX3RhaWwoJm9iai0+bW0ubGluaywg JmRldl9wcml2LT5tbS5ib3VuZF9saXN0KTsKKwkJb2JqLT5iaW5kX2NvdW50Kys7CisJCXNwaW5f dW5sb2NrKCZkZXZfcHJpdi0+bW0ub2JqX2xvY2spOwogCi0JYXNzZXJ0X2JpbmRfY291bnQob2Jq KTsKKwkJYXNzZXJ0X2JpbmRfY291bnQob2JqKTsKKwl9CiAKIAlyZXR1cm4gMDsKIAogZXJyX2Ns ZWFyOgogCXZtYS0+dm0tPmNsZWFyX3BhZ2VzKHZtYSk7CiBlcnJfdW5waW46Ci0JaTkxNV9nZW1f b2JqZWN0X3VucGluX3BhZ2VzKG9iaik7CisJaWYgKHZtYS0+b2JqKQorCQlpOTE1X2dlbV9vYmpl Y3RfdW5waW5fcGFnZXModm1hLT5vYmopOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTYyMiw3ICs2 MzMsNiBAQCBzdGF0aWMgdm9pZAogaTkxNV92bWFfcmVtb3ZlKHN0cnVjdCBpOTE1X3ZtYSAqdm1h KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdm1hLT52bS0+aTkxNTsKLQlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gdm1hLT5vYmo7CiAKIAlHRU1fQlVHX09O KCFkcm1fbW1fbm9kZV9hbGxvY2F0ZWQoJnZtYS0+bm9kZSkpOwogCUdFTV9CVUdfT04odm1hLT5m bGFncyAmIChJOTE1X1ZNQV9HTE9CQUxfQklORCB8IEk5MTVfVk1BX0xPQ0FMX0JJTkQpKTsKQEAg LTYzMiwyMCArNjQyLDI2IEBAIGk5MTVfdm1hX3JlbW92ZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkK IAlkcm1fbW1fcmVtb3ZlX25vZGUoJnZtYS0+bm9kZSk7CiAJbGlzdF9tb3ZlX3RhaWwoJnZtYS0+ dm1fbGluaywgJnZtYS0+dm0tPnVuYm91bmRfbGlzdCk7CiAKLQkvKiBTaW5jZSB0aGUgdW5ib3Vu ZCBsaXN0IGlzIGdsb2JhbCwgb25seSBtb3ZlIHRvIHRoYXQgbGlzdCBpZgorCS8qCisJICogU2lu Y2UgdGhlIHVuYm91bmQgbGlzdCBpcyBnbG9iYWwsIG9ubHkgbW92ZSB0byB0aGF0IGxpc3QgaWYK IAkgKiBubyBtb3JlIFZNQXMgZXhpc3QuCiAJICovCi0Jc3Bpbl9sb2NrKCZpOTE1LT5tbS5vYmpf bG9jayk7Ci0JaWYgKC0tb2JqLT5iaW5kX2NvdW50ID09IDApCi0JCWxpc3RfbW92ZV90YWlsKCZv YmotPm1tLmxpbmssICZpOTE1LT5tbS51bmJvdW5kX2xpc3QpOwotCXNwaW5fdW5sb2NrKCZpOTE1 LT5tbS5vYmpfbG9jayk7Ci0KLQkvKiBBbmQgZmluYWxseSBub3cgdGhlIG9iamVjdCBpcyBjb21w bGV0ZWx5IGRlY291cGxlZCBmcm9tIHRoaXMgdm1hLAotCSAqIHdlIGNhbiBkcm9wIGl0cyBob2xk IG9uIHRoZSBiYWNraW5nIHN0b3JhZ2UgYW5kIGFsbG93IGl0IHRvIGJlCi0JICogcmVhcGVkIGJ5 IHRoZSBzaHJpbmtlci4KLQkgKi8KLQlpOTE1X2dlbV9vYmplY3RfdW5waW5fcGFnZXMob2JqKTsK LQlhc3NlcnRfYmluZF9jb3VudChvYmopOworCWlmICh2bWEtPm9iaikgeworCQlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqID0gdm1hLT5vYmo7CisKKwkJc3Bpbl9sb2NrKCZpOTE1LT5t bS5vYmpfbG9jayk7CisJCWlmICgtLW9iai0+YmluZF9jb3VudCA9PSAwKQorCQkJbGlzdF9tb3Zl X3RhaWwoJm9iai0+bW0ubGluaywgJmk5MTUtPm1tLnVuYm91bmRfbGlzdCk7CisJCXNwaW5fdW5s b2NrKCZpOTE1LT5tbS5vYmpfbG9jayk7CisKKwkJLyoKKwkJICogQW5kIGZpbmFsbHkgbm93IHRo ZSBvYmplY3QgaXMgY29tcGxldGVseSBkZWNvdXBsZWQgZnJvbSB0aGlzCisJCSAqIHZtYSwgd2Ug Y2FuIGRyb3AgaXRzIGhvbGQgb24gdGhlIGJhY2tpbmcgc3RvcmFnZSBhbmQgYWxsb3cKKwkJICog aXQgdG8gYmUgcmVhcGVkIGJ5IHRoZSBzaHJpbmtlci4KKwkJICovCisJCWk5MTVfZ2VtX29iamVj dF91bnBpbl9wYWdlcyhvYmopOworCQlhc3NlcnRfYmluZF9jb3VudChvYmopOworCX0KIH0KIAog aW50IF9faTkxNV92bWFfZG9fcGluKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLApAQCAtNjcwLDcgKzY4 Niw3IEBAIGludCBfX2k5MTVfdm1hX2RvX3BpbihzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKIAl9CiAJ R0VNX0JVR19PTighZHJtX21tX25vZGVfYWxsb2NhdGVkKCZ2bWEtPm5vZGUpKTsKIAotCXJldCA9 IGk5MTVfdm1hX2JpbmQodm1hLCB2bWEtPm9iai0+Y2FjaGVfbGV2ZWwsIGZsYWdzKTsKKwlyZXQg PSBpOTE1X3ZtYV9iaW5kKHZtYSwgdm1hLT5vYmogPyB2bWEtPm9iai0+Y2FjaGVfbGV2ZWwgOiAw LCBmbGFncyk7CiAJaWYgKHJldCkKIAkJZ290byBlcnJfcmVtb3ZlOwogCkBAIC03MjcsNiArNzQz LDcgQEAgdm9pZCBpOTE1X3ZtYV9yZW9wZW4oc3RydWN0IGk5MTVfdm1hICp2bWEpCiAKIHN0YXRp YyB2b2lkIF9faTkxNV92bWFfZGVzdHJveShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKIHsKKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHZtYS0+dm0tPmk5MTU7CiAJaW50IGk7CiAKIAlH RU1fQlVHX09OKHZtYS0+bm9kZS5hbGxvY2F0ZWQpOwpAQCAtNzM4LDEyICs3NTUsMTMgQEAgc3Rh dGljIHZvaWQgX19pOTE1X3ZtYV9kZXN0cm95KHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogCiAJbGlz dF9kZWwoJnZtYS0+b2JqX2xpbmspOwogCWxpc3RfZGVsKCZ2bWEtPnZtX2xpbmspOwotCXJiX2Vy YXNlKCZ2bWEtPm9ial9ub2RlLCAmdm1hLT5vYmotPnZtYV90cmVlKTsKKwlpZiAodm1hLT5vYmop CisJCXJiX2VyYXNlKCZ2bWEtPm9ial9ub2RlLCAmdm1hLT5vYmotPnZtYV90cmVlKTsKIAogCWlm ICghaTkxNV92bWFfaXNfZ2d0dCh2bWEpKQogCQlpOTE1X3BwZ3R0X3B1dChpOTE1X3ZtX3RvX3Bw Z3R0KHZtYS0+dm0pKTsKIAotCWttZW1fY2FjaGVfZnJlZSh0b19pOTE1KHZtYS0+b2JqLT5iYXNl LmRldiktPnZtYXMsIHZtYSk7CisJa21lbV9jYWNoZV9mcmVlKGk5MTUtPnZtYXMsIHZtYSk7CiB9 CiAKIHZvaWQgaTkxNV92bWFfZGVzdHJveShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKQEAgLTgwOSwx MyArODI3LDEzIEBAIHZvaWQgaTkxNV92bWFfcmV2b2tlX21tYXAoc3RydWN0IGk5MTVfdm1hICp2 bWEpCiAKIGludCBpOTE1X3ZtYV91bmJpbmQoc3RydWN0IGk5MTVfdm1hICp2bWEpCiB7Ci0Jc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IHZtYS0+b2JqOwogCXVuc2lnbmVkIGxvbmcg YWN0aXZlOwogCWludCByZXQ7CiAKLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZvYmotPmJhc2UuZGV2 LT5zdHJ1Y3RfbXV0ZXgpOworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJnZtYS0+dm0tPmk5MTUtPmRy bS5zdHJ1Y3RfbXV0ZXgpOwogCi0JLyogRmlyc3Qgd2FpdCB1cG9uIGFueSBhY3Rpdml0eSBhcyBy ZXRpcmluZyB0aGUgcmVxdWVzdCBtYXkKKwkvKgorCSAqIEZpcnN0IHdhaXQgdXBvbiBhbnkgYWN0 aXZpdHkgYXMgcmV0aXJpbmcgdGhlIHJlcXVlc3QgbWF5CiAJICogaGF2ZSBzaWRlLWVmZmVjdHMg c3VjaCBhcyB1bnBpbm5pbmcgb3IgZXZlbiB1bmJpbmRpbmcgdGhpcyB2bWEuCiAJICovCiAJbWln aHRfc2xlZXAoKTsKQEAgLTgyMyw3ICs4NDEsOCBAQCBpbnQgaTkxNV92bWFfdW5iaW5kKHN0cnVj dCBpOTE1X3ZtYSAqdm1hKQogCWlmIChhY3RpdmUpIHsKIAkJaW50IGlkeDsKIAotCQkvKiBXaGVu IGEgY2xvc2VkIFZNQSBpcyByZXRpcmVkLCBpdCBpcyB1bmJvdW5kIC0gZWVrLgorCQkvKgorCQkg KiBXaGVuIGEgY2xvc2VkIFZNQSBpcyByZXRpcmVkLCBpdCBpcyB1bmJvdW5kIC0gZWVrLgogCQkg KiBJbiBvcmRlciB0byBwcmV2ZW50IGl0IGZyb20gYmVpbmcgcmVjdXJzaXZlbHkgY2xvc2VkLAog CQkgKiB0YWtlIGEgcGluIG9uIHRoZSB2bWEgc28gdGhhdCB0aGUgc2Vjb25kIHVuYmluZCBpcwog CQkgKiBhYm9ydGVkLgpAQCAtODYxLDkgKzg4MCw2IEBAIGludCBpOTE1X3ZtYV91bmJpbmQoc3Ry dWN0IGk5MTVfdm1hICp2bWEpCiAJaWYgKCFkcm1fbW1fbm9kZV9hbGxvY2F0ZWQoJnZtYS0+bm9k ZSkpCiAJCXJldHVybiAwOwogCi0JR0VNX0JVR19PTihvYmotPmJpbmRfY291bnQgPT0gMCk7Ci0J R0VNX0JVR19PTighaTkxNV9nZW1fb2JqZWN0X2hhc19waW5uZWRfcGFnZXMob2JqKSk7Ci0KIAlp ZiAoaTkxNV92bWFfaXNfbWFwX2FuZF9mZW5jZWFibGUodm1hKSkgewogCQkvKgogCQkgKiBDaGVj ayB0aGF0IHdlIGhhdmUgZmx1c2hlZCBhbGwgd3JpdGVzIHRocm91Z2ggdGhlIEdHVFQKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3ZtYS5oCmluZGV4IGZjNDI5NGNmYWE5MS4uZjA1MzJmMWE0OTUzIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5oCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfdm1hLmgKQEAgLTQwNyw3ICs0MDcsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQg X19pOTE1X3ZtYV91bnBpbl9mZW5jZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKIHN0YXRpYyBpbmxp bmUgdm9pZAogaTkxNV92bWFfdW5waW5fZmVuY2Uoc3RydWN0IGk5MTVfdm1hICp2bWEpCiB7Ci0J bG9ja2RlcF9hc3NlcnRfaGVsZCgmdm1hLT5vYmotPmJhc2UuZGV2LT5zdHJ1Y3RfbXV0ZXgpOwor CS8qIGxvY2tkZXBfYXNzZXJ0X2hlbGQoJnZtYS0+dm0tPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgp OyAqLwogCWlmICh2bWEtPmZlbmNlKQogCQlfX2k5MTVfdm1hX3VucGluX2ZlbmNlKHZtYSk7CiB9 Ci0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo=