From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH 07/13] drm/i915: Introduce dedicated object VMA iterator Date: Fri, 8 Jan 2016 11:29:46 +0000 Message-ID: <1452252592-24803-8-git-send-email-tvrtko.ursulin@linux.intel.com> References: <1452252592-24803-1-git-send-email-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 0244C6E768 for ; Fri, 8 Jan 2016 03:30:03 -0800 (PST) In-Reply-To: <1452252592-24803-1-git-send-email-tvrtko.ursulin@linux.intel.com> 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 Cc: Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClB1cnBvc2Ug aXMgdG8gY2F0Y2ggcGxhY2VzIHdoaWNoIGl0ZXJhdGUgdGhlIG9iamVjdCBWTUEgbGlzdAp3aXRo b3V0IGhvbGRpbmcgdGhlIGJpZyBsb2NrLgoKSW1wbGVtZW50ZWQgYnkgb3BlbiBjb2RpbmcgbGlz dF9mb3JfZWFjaF9lbnRyeSB0byBtYWtlIHRoZQptYWNybyBjb21wYXRpYmxlIHdpdGggZXhpc3Rp bmcgY2FsbCBzaXRlcy4KClNpZ25lZC1vZmYtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJz dWxpbkBpbnRlbC5jb20+CkNjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNo PgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAgICAgfCAgOCArKysr LS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICB8ICA2ICsrKysr KwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICB8IDI0ICsrKysrKysr KysrKy0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgICAg ICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zaHJpbmtlci5jIHwgIDIg Ky0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgICAgfCAgNCArKy0tCiA2 IGZpbGVzIGNoYW5nZWQsIDI2IGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXggNzE0YTQ1Y2Y4YTUxLi5kN2MyYTMyMDExNjEg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCkBAIC0xMTcsNyArMTE3LDcgQEAgc3Rh dGljIHU2NCBpOTE1X2dlbV9vYmpfdG90YWxfZ2d0dF9zaXplKHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpvYmopCiAJdTY0IHNpemUgPSAwOwogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwogCi0J bGlzdF9mb3JfZWFjaF9lbnRyeSh2bWEsICZvYmotPnZtYV9saXN0LCB2bWFfbGluaykgeworCWk5 MTVfZ2VtX29ial9mb3JfZWFjaF92bWEodm1hLCBvYmopIHsKIAkJaWYgKGk5MTVfaXNfZ2d0dCh2 bWEtPnZtKSAmJgogCQkgICAgZHJtX21tX25vZGVfYWxsb2NhdGVkKCZ2bWEtPm5vZGUpKQogCQkJ c2l6ZSArPSB2bWEtPm5vZGUuc2l6ZTsKQEAgLTE1NSw3ICsxNTUsNyBAQCBkZXNjcmliZV9vYmoo c3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCQkg ICBvYmotPm1hZHYgPT0gSTkxNV9NQURWX0RPTlRORUVEID8gIiBwdXJnZWFibGUiIDogIiIpOwog CWlmIChvYmotPmJhc2UubmFtZSkKIAkJc2VxX3ByaW50ZihtLCAiIChuYW1lOiAlZCkiLCBvYmot PmJhc2UubmFtZSk7Ci0JbGlzdF9mb3JfZWFjaF9lbnRyeSh2bWEsICZvYmotPnZtYV9saXN0LCB2 bWFfbGluaykgeworCWk5MTVfZ2VtX29ial9mb3JfZWFjaF92bWEodm1hLCBvYmopIHsKIAkJaWYg KHZtYS0+cGluX2NvdW50ID4gMCkKIAkJCXBpbl9jb3VudCsrOwogCX0KQEAgLTE2NCw3ICsxNjQs NyBAQCBkZXNjcmliZV9vYmooc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqKQogCQlzZXFfcHJpbnRmKG0sICIgKGRpc3BsYXkpIik7CiAJaWYgKG9iai0+ ZmVuY2VfcmVnICE9IEk5MTVfRkVOQ0VfUkVHX05PTkUpCiAJCXNlcV9wcmludGYobSwgIiAoZmVu Y2U6ICVkKSIsIG9iai0+ZmVuY2VfcmVnKTsKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHZtYSwgJm9i ai0+dm1hX2xpc3QsIHZtYV9saW5rKSB7CisJaTkxNV9nZW1fb2JqX2Zvcl9lYWNoX3ZtYSh2bWEs IG9iaikgewogCQlzZXFfcHJpbnRmKG0sICIgKCVzZ3R0IG9mZnNldDogJTA4bGx4LCBzaXplOiAl MDhsbHgiLAogCQkJICAgaTkxNV9pc19nZ3R0KHZtYS0+dm0pID8gImciIDogInBwIiwKIAkJCSAg IHZtYS0+bm9kZS5zdGFydCwgdm1hLT5ub2RlLnNpemUpOwpAQCAtMzQyLDcgKzM0Miw3IEBAIHN0 YXRpYyBpbnQgcGVyX2ZpbGVfc3RhdHMoaW50IGlkLCB2b2lkICpwdHIsIHZvaWQgKmRhdGEpCiAJ CXN0YXRzLT5zaGFyZWQgKz0gb2JqLT5iYXNlLnNpemU7CiAKIAlpZiAoVVNFU19GVUxMX1BQR1RU KG9iai0+YmFzZS5kZXYpKSB7Ci0JCWxpc3RfZm9yX2VhY2hfZW50cnkodm1hLCAmb2JqLT52bWFf bGlzdCwgdm1hX2xpbmspIHsKKwkJaTkxNV9nZW1fb2JqX2Zvcl9lYWNoX3ZtYSh2bWEsIG9iaikg ewogCQkJc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0OwogCiAJCQlpZiAoIWRybV9tbV9ub2Rl X2FsbG9jYXRlZCgmdm1hLT5ub2RlKSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IGI3N2E1 ZDg0ZWFjMi4uMDQwNmEwMjBkZmNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTI4NTIs NiArMjg1MiwxMiBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqaTkxNV9nZW1fb2JqZWN0 X2NyZWF0ZV9mcm9tX2RhdGEoCiB2b2lkIGk5MTVfZ2VtX2ZyZWVfb2JqZWN0KHN0cnVjdCBkcm1f Z2VtX29iamVjdCAqb2JqKTsKIHZvaWQgaTkxNV9nZW1fdm1hX2Rlc3Ryb3koc3RydWN0IGk5MTVf dm1hICp2bWEpOwogCisjZGVmaW5lIGk5MTVfZ2VtX29ial9mb3JfZWFjaF92bWEodm1hLCBvYmop IFwKKwlmb3IgKFdBUk5fT05fT05DRSghbXV0ZXhfaXNfbG9ja2VkKCYob2JqKS0+YmFzZS5kZXYt PnN0cnVjdF9tdXRleCkpLCBcCisJICAgICB2bWEgPSBsaXN0X2ZpcnN0X2VudHJ5KCYob2JqKS0+ dm1hX2xpc3QsIHR5cGVvZigqdm1hKSwgdm1hX2xpbmspO1wKKwkgICAgICZ2bWEtPnZtYV9saW5r ICE9ICgmKG9iaiktPnZtYV9saXN0KTsgXAorCSAgICAgdm1hID0gbGlzdF9uZXh0X2VudHJ5KHZt YSwgdm1hX2xpbmspKQorCiAvKiBGbGFncyB1c2VkIGJ5IHBpbi9iaW5kJmZyaWVuZHMuICovCiAj ZGVmaW5lIFBJTl9NQVBQQUJMRQkoMTw8MCkKICNkZWZpbmUgUElOX05PTkJMT0NLCSgxPDwxKQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggYzRmNjk1NzllYjdhLi40MTViYjVlZjhiM2EgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAtMjQ0Miw3ICsyNDQyLDcgQEAgaTkxNV9nZW1fb2Jq ZWN0X3JldGlyZV9fcmVhZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLCBpbnQgcmlu ZykKIAlsaXN0X21vdmVfdGFpbCgmb2JqLT5nbG9iYWxfbGlzdCwKIAkJICAgICAgICZ0b19pOTE1 KG9iai0+YmFzZS5kZXYpLT5tbS5ib3VuZF9saXN0KTsKIAotCWxpc3RfZm9yX2VhY2hfZW50cnko dm1hLCAmb2JqLT52bWFfbGlzdCwgdm1hX2xpbmspIHsKKwlpOTE1X2dlbV9vYmpfZm9yX2VhY2hf dm1hKHZtYSwgb2JqKSB7CiAJCWlmICghbGlzdF9lbXB0eSgmdm1hLT5tbV9saXN0KSkKIAkJCWxp c3RfbW92ZV90YWlsKCZ2bWEtPm1tX2xpc3QsICZ2bWEtPnZtLT5pbmFjdGl2ZV9saXN0KTsKIAl9 CkBAIC0zODM0LDcgKzM4MzQsNyBAQCBpbnQgaTkxNV9nZW1fb2JqZWN0X3NldF9jYWNoZV9sZXZl bChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkJICovCiAJCX0KIAotCQlsaXN0 X2Zvcl9lYWNoX2VudHJ5KHZtYSwgJm9iai0+dm1hX2xpc3QsIHZtYV9saW5rKSB7CisJCWk5MTVf Z2VtX29ial9mb3JfZWFjaF92bWEodm1hLCBvYmopIHsKIAkJCWlmICghZHJtX21tX25vZGVfYWxs b2NhdGVkKCZ2bWEtPm5vZGUpKQogCQkJCWNvbnRpbnVlOwogCkBAIC0zODQ0LDcgKzM4NDQsNyBA QCBpbnQgaTkxNV9nZW1fb2JqZWN0X3NldF9jYWNoZV9sZXZlbChzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqLAogCQl9CiAJfQogCi0JbGlzdF9mb3JfZWFjaF9lbnRyeSh2bWEsICZvYmot PnZtYV9saXN0LCB2bWFfbGluaykKKwlpOTE1X2dlbV9vYmpfZm9yX2VhY2hfdm1hKHZtYSwgb2Jq KQogCQl2bWEtPm5vZGUuY29sb3IgPSBjYWNoZV9sZXZlbDsKIAlvYmotPmNhY2hlX2xldmVsID0g Y2FjaGVfbGV2ZWw7CiAKQEAgLTQ1NjQsNyArNDU2NCw3IEBAIHN0cnVjdCBpOTE1X3ZtYSAqaTkx NV9nZW1fb2JqX3RvX3ZtYShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkJCSAg ICAgc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0pCiB7CiAJc3RydWN0IGk5MTVfdm1hICp2 bWE7Ci0JbGlzdF9mb3JfZWFjaF9lbnRyeSh2bWEsICZvYmotPnZtYV9saXN0LCB2bWFfbGluaykg eworCWk5MTVfZ2VtX29ial9mb3JfZWFjaF92bWEodm1hLCBvYmopIHsKIAkJaWYgKHZtYS0+Z2d0 dF92aWV3LnR5cGUgPT0gSTkxNV9HR1RUX1ZJRVdfTk9STUFMICYmCiAJCSAgICB2bWEtPnZtID09 IHZtKQogCQkJcmV0dXJuIHZtYTsKQEAgLTQ1ODEsNyArNDU4MSw3IEBAIHN0cnVjdCBpOTE1X3Zt YSAqaTkxNV9nZW1fb2JqX3RvX2dndHRfdmlldyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqLAogCWlmIChXQVJOX09OQ0UoIXZpZXcsICJubyB2aWV3IHNwZWNpZmllZCIpKQogCQlyZXR1 cm4gRVJSX1BUUigtRUlOVkFMKTsKIAotCWxpc3RfZm9yX2VhY2hfZW50cnkodm1hLCAmb2JqLT52 bWFfbGlzdCwgdm1hX2xpbmspCisJaTkxNV9nZW1fb2JqX2Zvcl9lYWNoX3ZtYSh2bWEsIG9iaikK IAkJaWYgKHZtYS0+dm0gPT0gZ2d0dCAmJgogCQkgICAgaTkxNV9nZ3R0X3ZpZXdfZXF1YWwoJnZt YS0+Z2d0dF92aWV3LCB2aWV3KSkKIAkJCXJldHVybiB2bWE7CkBAIC01MTQ0LDcgKzUxNDQsNyBA QCB1NjQgaTkxNV9nZW1fb2JqX29mZnNldChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqbywK IAogCVdBUk5fT04odm0gPT0gJmRldl9wcml2LT5tbS5hbGlhc2luZ19wcGd0dC0+YmFzZSk7CiAK LQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHZtYSwgJm8tPnZtYV9saXN0LCB2bWFfbGluaykgeworCWk5 MTVfZ2VtX29ial9mb3JfZWFjaF92bWEodm1hLCBvKSB7CiAJCWlmIChpOTE1X2lzX2dndHQodm1h LT52bSkgJiYKIAkJICAgIHZtYS0+Z2d0dF92aWV3LnR5cGUgIT0gSTkxNV9HR1RUX1ZJRVdfTk9S TUFMKQogCQkJY29udGludWU7CkBAIC01MTYzLDcgKzUxNjMsNyBAQCB1NjQgaTkxNV9nZW1fb2Jq X2dndHRfb2Zmc2V0X3ZpZXcoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm8sCiAJc3RydWN0 IGk5MTVfYWRkcmVzc19zcGFjZSAqZ2d0dCA9IGk5MTVfb2JqX3RvX2dndHQobyk7CiAJc3RydWN0 IGk5MTVfdm1hICp2bWE7CiAKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHZtYSwgJm8tPnZtYV9saXN0 LCB2bWFfbGluaykKKwlpOTE1X2dlbV9vYmpfZm9yX2VhY2hfdm1hKHZtYSwgbykKIAkJaWYgKHZt YS0+dm0gPT0gZ2d0dCAmJgogCQkgICAgaTkxNV9nZ3R0X3ZpZXdfZXF1YWwoJnZtYS0+Z2d0dF92 aWV3LCB2aWV3KSkKIAkJCXJldHVybiB2bWEtPm5vZGUuc3RhcnQ7CkBAIC01MTc3LDcgKzUxNzcs NyBAQCBib29sIGk5MTVfZ2VtX29ial9ib3VuZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq bywKIHsKIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKIAotCWxpc3RfZm9yX2VhY2hfZW50cnkodm1h LCAmby0+dm1hX2xpc3QsIHZtYV9saW5rKSB7CisJaTkxNV9nZW1fb2JqX2Zvcl9lYWNoX3ZtYSh2 bWEsIG8pIHsKIAkJaWYgKGk5MTVfaXNfZ2d0dCh2bWEtPnZtKSAmJgogCQkgICAgdm1hLT5nZ3R0 X3ZpZXcudHlwZSAhPSBJOTE1X0dHVFRfVklFV19OT1JNQUwpCiAJCQljb250aW51ZTsKQEAgLTUx OTQsNyArNTE5NCw3IEBAIGJvb2wgaTkxNV9nZW1fb2JqX2dndHRfYm91bmRfdmlldyhzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqbywKIAlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICpnZ3R0 ID0gaTkxNV9vYmpfdG9fZ2d0dChvKTsKIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKIAotCWxpc3Rf Zm9yX2VhY2hfZW50cnkodm1hLCAmby0+dm1hX2xpc3QsIHZtYV9saW5rKQorCWk5MTVfZ2VtX29i al9mb3JfZWFjaF92bWEodm1hLCBvKQogCQlpZiAodm1hLT52bSA9PSBnZ3R0ICYmCiAJCSAgICBp OTE1X2dndHRfdmlld19lcXVhbCgmdm1hLT5nZ3R0X3ZpZXcsIHZpZXcpICYmCiAJCSAgICBkcm1f bW1fbm9kZV9hbGxvY2F0ZWQoJnZtYS0+bm9kZSkpCkBAIC01MjA3LDcgKzUyMDcsNyBAQCBib29s IGk5MTVfZ2VtX29ial9ib3VuZF9hbnkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm8pCiB7 CiAJc3RydWN0IGk5MTVfdm1hICp2bWE7CiAKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHZtYSwgJm8t PnZtYV9saXN0LCB2bWFfbGluaykKKwlpOTE1X2dlbV9vYmpfZm9yX2VhY2hfdm1hKHZtYSwgbykK IAkJaWYgKGRybV9tbV9ub2RlX2FsbG9jYXRlZCgmdm1hLT5ub2RlKSkKIAkJCXJldHVybiB0cnVl OwogCkBAIC01MjI0LDcgKzUyMjQsNyBAQCB1bnNpZ25lZCBsb25nIGk5MTVfZ2VtX29ial9zaXpl KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvLAogCiAJQlVHX09OKGxpc3RfZW1wdHkoJm8t PnZtYV9saXN0KSk7CiAKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHZtYSwgJm8tPnZtYV9saXN0LCB2 bWFfbGluaykgeworCWk5MTVfZ2VtX29ial9mb3JfZWFjaF92bWEodm1hLCBvKSB7CiAJCWlmIChp OTE1X2lzX2dndHQodm1hLT52bSkgJiYKIAkJICAgIHZtYS0+Z2d0dF92aWV3LnR5cGUgIT0gSTkx NV9HR1RUX1ZJRVdfTk9STUFMKQogCQkJY29udGludWU7CkBAIC01MjM3LDcgKzUyMzcsNyBAQCB1 bnNpZ25lZCBsb25nIGk5MTVfZ2VtX29ial9zaXplKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvLAogYm9vbCBpOTE1X2dlbV9vYmpfaXNfcGlubmVkKHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmopCiB7CiAJc3RydWN0IGk5MTVfdm1hICp2bWE7Ci0JbGlzdF9mb3JfZWFjaF9lbnRy eSh2bWEsICZvYmotPnZtYV9saXN0LCB2bWFfbGluaykKKwlpOTE1X2dlbV9vYmpfZm9yX2VhY2hf dm1hKHZtYSwgb2JqKQogCQlpZiAodm1hLT5waW5fY291bnQgPiAwKQogCQkJcmV0dXJuIHRydWU7 CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKaW5kZXggNTZmNGYyZTU4ZDUzLi40MGZl MmJmNmJkOTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCkBAIC0zMjIwLDcgKzMy MjAsNyBAQCB2b2lkIGk5MTVfZ2VtX3Jlc3RvcmVfZ3R0X21hcHBpbmdzKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCiAJdm0gPSAmZGV2X3ByaXYtPmd0dC5iYXNlOwogCWxpc3RfZm9yX2VhY2hfZW50 cnkob2JqLCAmZGV2X3ByaXYtPm1tLmJvdW5kX2xpc3QsIGdsb2JhbF9saXN0KSB7CiAJCWZsdXNo ID0gZmFsc2U7Ci0JCWxpc3RfZm9yX2VhY2hfZW50cnkodm1hLCAmb2JqLT52bWFfbGlzdCwgdm1h X2xpbmspIHsKKwkJaTkxNV9nZW1fb2JqX2Zvcl9lYWNoX3ZtYSh2bWEsIG9iaikgewogCQkJaWYg KHZtYS0+dm0gIT0gdm0pCiAJCQkJY29udGludWU7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX3Nocmlua2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9zaHJpbmtlci5jCmluZGV4IDE2ZGE5YzE0MjJjYy4uNDEwNjY2NmE0MzAzIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zaHJpbmtlci5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3Nocmlua2VyLmMKQEAgLTUyLDcgKzUyLDcgQEAgc3Rh dGljIGludCBudW1fdm1hX2JvdW5kKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJ c3RydWN0IGk5MTVfdm1hICp2bWE7CiAJaW50IGNvdW50ID0gMDsKIAotCWxpc3RfZm9yX2VhY2hf ZW50cnkodm1hLCAmb2JqLT52bWFfbGlzdCwgdm1hX2xpbmspIHsKKwlpOTE1X2dlbV9vYmpfZm9y X2VhY2hfdm1hKHZtYSwgb2JqKSB7CiAJCWlmIChkcm1fbW1fbm9kZV9hbGxvY2F0ZWQoJnZtYS0+ bm9kZSkpCiAJCQljb3VudCsrOwogCQlpZiAodm1hLT5waW5fY291bnQpCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9ncHVfZXJyb3IuYwppbmRleCAwNmNhNDA4MjczNWIuLjhiN2E4YzRiOWIzNyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCkBAIC03NTUsNyArNzU1LDcgQEAgc3Rh dGljIHUzMiBjYXB0dXJlX3Bpbm5lZF9ibyhzdHJ1Y3QgZHJtX2k5MTVfZXJyb3JfYnVmZmVyICpl cnIsCiAJCWlmIChlcnIgPT0gbGFzdCkKIAkJCWJyZWFrOwogCi0JCWxpc3RfZm9yX2VhY2hfZW50 cnkodm1hLCAmb2JqLT52bWFfbGlzdCwgdm1hX2xpbmspCisJCWk5MTVfZ2VtX29ial9mb3JfZWFj aF92bWEodm1hLCBvYmopCiAJCQlpZiAodm1hLT52bSA9PSB2bSAmJiB2bWEtPnBpbl9jb3VudCA+ IDApCiAJCQkJY2FwdHVyZV9ibyhlcnIrKywgdm1hKTsKIAl9CkBAIC0xMTI4LDcgKzExMjgsNyBA QCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9jYXB0dXJlX3ZtKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKIAllcnJvci0+YWN0aXZlX2JvX2NvdW50W25keF0gPSBpOwogCiAJbGlzdF9m b3JfZWFjaF9lbnRyeShvYmosICZkZXZfcHJpdi0+bW0uYm91bmRfbGlzdCwgZ2xvYmFsX2xpc3Qp IHsKLQkJbGlzdF9mb3JfZWFjaF9lbnRyeSh2bWEsICZvYmotPnZtYV9saXN0LCB2bWFfbGluaykK KwkJaTkxNV9nZW1fb2JqX2Zvcl9lYWNoX3ZtYSh2bWEsIG9iaikKIAkJCWlmICh2bWEtPnZtID09 IHZtICYmIHZtYS0+cGluX2NvdW50ID4gMCkKIAkJCQlpKys7CiAJfQotLSAKMS45LjEKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==