From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 56/62] drm/i915: Count how many VMA are bound for an object Date: Fri, 3 Jun 2016 17:37:21 +0100 Message-ID: <1464971847-15809-57-git-send-email-chris@chris-wilson.co.uk> References: <1464971847-15809-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-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 59C9E6EE39 for ; Fri, 3 Jun 2016 16:38:28 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id a20so602756wma.3 for ; Fri, 03 Jun 2016 09:38:28 -0700 (PDT) In-Reply-To: <1464971847-15809-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 U2luY2Ugd2UgbWF5IGhhdmUgVk1BIGFsbG9jYXRlZCBmb3IgYW4gb2JqZWN0LCBidXQgd2UgaW50 ZXJydXB0ZWQgdGhlaXIKYmluZGluZywgdGhlcmUgaXMgYSBkaXNwYXJpdHkgYmV0d2VlbiBoYXZl IGVsZW1lbnRzIG9uIHRoZSBvYmotPnZtYV9saXN0CmFuZCBiZWluZyBib3VuZC4gaTkxNV9nZW1f b2JqX2JvdW5kX2FueSgpIGRvZXMgdGhpcyBjaGVjaywgYnV0IHRoaXMgaXMKbm90IHJpZ29yb3Vz bHkgb2JzZXJ2ZWQgLSBhZGQgYW4gZXhwbGljaXQgY291bnQgdG8gbWFrZSBpdCBlYXNpZXIuCgpT aWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgIHwgMTIgKysrKystLS0t LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgfCAgMyArKy0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAgfCAzNCArKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc2hyaW5r ZXIuYyB8IDE3ICstLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X3N0b2xlbi5jICAgfCAgMSArCiA1IGZpbGVzIGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKyksIDQ0 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVi dWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXggMmUwZWI4 ZjVjZjM1Li41MWY4NGRkMzc2NzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCkBA IC0xNzcsNiArMTc3LDkgQEAgZGVzY3JpYmVfb2JqKHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAlpZiAob2JqLT5mZW5jZV9yZWcgIT0gSTkxNV9G RU5DRV9SRUdfTk9ORSkKIAkJc2VxX3ByaW50ZihtLCAiIChmZW5jZTogJWQpIiwgb2JqLT5mZW5j ZV9yZWcpOwogCWxpc3RfZm9yX2VhY2hfZW50cnkodm1hLCAmb2JqLT52bWFfbGlzdCwgb2JqX2xp bmspIHsKKwkJaWYgKCFkcm1fbW1fbm9kZV9hbGxvY2F0ZWQoJnZtYS0+bm9kZSkpCisJCQljb250 aW51ZTsKKwogCQlzZXFfcHJpbnRmKG0sICIgKCVzZ3R0IG9mZnNldDogJTA4bGx4LCBzaXplOiAl MDhsbHgiLAogCQkJICAgdm1hLT5pc19nZ3R0ID8gImciIDogInBwIiwKIAkJCSAgIHZtYS0+bm9k ZS5zdGFydCwgdm1hLT5ub2RlLnNpemUpOwpAQCAtMzQxLDExICszNDQsMTEgQEAgc3RhdGljIGlu dCBwZXJfZmlsZV9zdGF0cyhpbnQgaWQsIHZvaWQgKnB0ciwgdm9pZCAqZGF0YSkKIAlzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gcHRyOwogCXN0cnVjdCBmaWxlX3N0YXRzICpzdGF0 cyA9IGRhdGE7CiAJc3RydWN0IGk5MTVfdm1hICp2bWE7Ci0JaW50IGJvdW5kID0gMDsKIAogCXN0 YXRzLT5jb3VudCsrOwogCXN0YXRzLT50b3RhbCArPSBvYmotPmJhc2Uuc2l6ZTsKLQorCWlmICgh b2JqLT5iaW5kX2NvdW50KQorCQlzdGF0cy0+dW5ib3VuZCArPSBvYmotPmJhc2Uuc2l6ZTsKIAlp ZiAob2JqLT5iYXNlLm5hbWUgfHwgb2JqLT5iYXNlLmRtYV9idWYpCiAJCXN0YXRzLT5zaGFyZWQg Kz0gb2JqLT5iYXNlLnNpemU7CiAKQEAgLTM1Myw4ICszNTYsNiBAQCBzdGF0aWMgaW50IHBlcl9m aWxlX3N0YXRzKGludCBpZCwgdm9pZCAqcHRyLCB2b2lkICpkYXRhKQogCQlpZiAoIWRybV9tbV9u b2RlX2FsbG9jYXRlZCgmdm1hLT5ub2RlKSkKIAkJCWNvbnRpbnVlOwogCi0JCWJvdW5kKys7Ci0K IAkJaWYgKHZtYS0+aXNfZ2d0dCkgewogCQkJc3RhdHMtPmdsb2JhbCArPSB2bWEtPm5vZGUuc2l6 ZTsKIAkJfSBlbHNlIHsKQEAgLTM3Miw5ICszNzMsNiBAQCBzdGF0aWMgaW50IHBlcl9maWxlX3N0 YXRzKGludCBpZCwgdm9pZCAqcHRyLCB2b2lkICpkYXRhKQogCQkJc3RhdHMtPmluYWN0aXZlICs9 IHZtYS0+bm9kZS5zaXplOwogCX0KIAotCWlmICghYm91bmQpCi0JCXN0YXRzLT51bmJvdW5kICs9 IG9iai0+YmFzZS5zaXplOwotCiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o CmluZGV4IDkxMmQ1NGI2OTk4YS4uZGQzZjdhZmRmNDIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKQEAgLTIxOTgsNiArMjE5OCw4IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0IHsKIAog CXVuc2lnbmVkIGludCBmcm9udGJ1ZmZlcl9iaXRzOklOVEVMX0ZST05UQlVGRkVSX0JJVFM7CiAK KwkvKiogQ291bnQgb2YgVk1BIGFjdHVhbGx5IGJvdW5kIGJ5IHRoaXMgb2JqZWN0ICovCisJdW5z aWduZWQgaW50IGJpbmRfY291bnQ7CiAJdW5zaWduZWQgaW50IHBpbl9kaXNwbGF5OwogCiAJc3Ry dWN0IHNnX3RhYmxlICpwYWdlczsKQEAgLTMxNTksNyArMzE2MSw2IEBAIGk5MTVfZ2VtX29ial9n Z3R0X29mZnNldChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqbykKIAlyZXR1cm4gaTkxNV9n ZW1fb2JqX2dndHRfb2Zmc2V0X3ZpZXcobywgJmk5MTVfZ2d0dF92aWV3X25vcm1hbCk7CiB9CiAK LWJvb2wgaTkxNV9nZW1fb2JqX2JvdW5kX2FueShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq byk7CiBib29sIGk5MTVfZ2VtX29ial9nZ3R0X2JvdW5kX3ZpZXcoc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm8sCiAJCQkJICBjb25zdCBzdHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcgKnZpZXcpOwog Ym9vbCBpOTE1X2dlbV9vYmpfYm91bmQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm8sCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCBjYTZiNTVmNTJmOGIuLjJiYTQ2N2MwYjBiNyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC0xODIyLDcgKzE4MjIsNyBAQCBpOTE1X2dlbV9vYmpl Y3RfcHV0X3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJaWYgKG9iai0+ cGFnZXNfcGluX2NvdW50KQogCQlyZXR1cm4gLUVCVVNZOwogCi0JQlVHX09OKGk5MTVfZ2VtX29i al9ib3VuZF9hbnkob2JqKSk7CisJQlVHX09OKG9iai0+YmluZF9jb3VudCk7CiAKIAkvKiAtPnB1 dF9wYWdlcyBtaWdodCBuZWVkIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgdGhlIGJpdDE3IHN3aXp6 bGUKIAkgKiBhcnJheSwgaGVuY2UgcHJvdGVjdCB0aGVtIGZyb20gYmVpbmcgcmVhcGVkIGJ5IHJl bW92aW5nIHRoZW0gZnJvbSBndHQKQEAgLTI1MDgsNyArMjUwOCw2IEBAIHN0YXRpYyB2b2lkIF9f aTkxNV92bWFfaW91bm1hcChzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKIHN0YXRpYyBpbnQgX19pOTE1 X3ZtYV91bmJpbmQoc3RydWN0IGk5MTVfdm1hICp2bWEsIGJvb2wgd2FpdCkKIHsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gdm1hLT5vYmo7Ci0Jc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gb2JqLT5iYXNlLmRldi0+ZGV2X3ByaXZhdGU7CiAJaW50IHJldDsK IAogCWlmIChsaXN0X2VtcHR5KCZ2bWEtPm9ial9saW5rKSkKQEAgLTI1MjIsNyArMjUyMSw4IEBA IHN0YXRpYyBpbnQgX19pOTE1X3ZtYV91bmJpbmQoc3RydWN0IGk5MTVfdm1hICp2bWEsIGJvb2wg d2FpdCkKIAlpZiAodm1hLT5waW5fY291bnQpCiAJCXJldHVybiAtRUJVU1k7CiAKLQlCVUdfT04o b2JqLT5wYWdlcyA9PSBOVUxMKTsKKwlHRU1fQlVHX09OKG9iai0+YmluZF9jb3VudCA9PSAwKTsK KwlHRU1fQlVHX09OKG9iai0+cGFnZXMgPT0gTlVMTCk7CiAKIAlpZiAod2FpdCkgewogCQlyZXQg PSBpOTE1X2dlbV9vYmplY3Rfd2FpdF9yZW5kZXJpbmcob2JqLCBmYWxzZSk7CkBAIC0yNTYyLDgg KzI1NjIsOSBAQCBzdGF0aWMgaW50IF9faTkxNV92bWFfdW5iaW5kKHN0cnVjdCBpOTE1X3ZtYSAq dm1hLCBib29sIHdhaXQpCiAKIAkvKiBTaW5jZSB0aGUgdW5ib3VuZCBsaXN0IGlzIGdsb2JhbCwg b25seSBtb3ZlIHRvIHRoYXQgbGlzdCBpZgogCSAqIG5vIG1vcmUgVk1BcyBleGlzdC4gKi8KLQlp ZiAobGlzdF9lbXB0eSgmb2JqLT52bWFfbGlzdCkpCi0JCWxpc3RfbW92ZV90YWlsKCZvYmotPmds b2JhbF9saXN0LCAmZGV2X3ByaXYtPm1tLnVuYm91bmRfbGlzdCk7CisJaWYgKC0tb2JqLT5iaW5k X2NvdW50ID09IDApCisJCWxpc3RfbW92ZV90YWlsKCZvYmotPmdsb2JhbF9saXN0LAorCQkJICAg ICAgICZ0b19pOTE1KG9iai0+YmFzZS5kZXYpLT5tbS51bmJvdW5kX2xpc3QpOwogCiAJLyogQW5k IGZpbmFsbHkgbm93IHRoZSBvYmplY3QgaXMgY29tcGxldGVseSBkZWNvdXBsZWQgZnJvbSB0aGlz IHZtYSwKIAkgKiB3ZSBjYW4gZHJvcCBpdHMgaG9sZCBvbiB0aGUgYmFja2luZyBzdG9yYWdlIGFu ZCBhbGxvdyBpdCB0byBiZQpAQCAtMjc5Miw2ICsyNzkzLDcgQEAgc2VhcmNoX2ZyZWU6CiAKIAls aXN0X21vdmVfdGFpbCgmb2JqLT5nbG9iYWxfbGlzdCwgJmRldl9wcml2LT5tbS5ib3VuZF9saXN0 KTsKIAlsaXN0X2FkZF90YWlsKCZ2bWEtPnZtX2xpbmssICZ2bS0+aW5hY3RpdmVfbGlzdCk7CisJ b2JqLT5iaW5kX2NvdW50Kys7CiAKIAlyZXR1cm4gdm1hOwogCkBAIC0yOTgzLDcgKzI5ODUsNiBA QCBpbnQgaTkxNV9nZW1fb2JqZWN0X3NldF9jYWNoZV9sZXZlbChzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqLAogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBvYmotPmJhc2UuZGV2 OwogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hLCAqbmV4dDsKLQlib29sIGJvdW5kID0gZmFsc2U7CiAJ aW50IHJldCA9IDA7CiAKIAlpZiAob2JqLT5jYWNoZV9sZXZlbCA9PSBjYWNoZV9sZXZlbCkKQEAg LTMwMDcsOCArMzAwOCw3IEBAIGludCBpOTE1X2dlbV9vYmplY3Rfc2V0X2NhY2hlX2xldmVsKHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCQlyZXQgPSBpOTE1X3ZtYV91bmJpbmQo dm1hKTsKIAkJCWlmIChyZXQpCiAJCQkJcmV0dXJuIHJldDsKLQkJfSBlbHNlCi0JCQlib3VuZCA9 IHRydWU7CisJCX0KIAl9CiAKIAkvKiBXZSBjYW4gcmV1c2UgdGhlIGV4aXN0aW5nIGRybV9tbSBu b2RlcyBidXQgbmVlZCB0byBjaGFuZ2UgdGhlCkBAIC0zMDE4LDcgKzMwMTgsNyBAQCBpbnQgaTkx NV9nZW1fb2JqZWN0X3NldF9jYWNoZV9sZXZlbChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqLAogCSAqIHJld3JpdGUgdGhlIFBURSBpbiB0aGUgYmVsaWVmIHRoYXQgZG9pbmcgc28gdHJh bXBsZXMgdXBvbiBsZXNzCiAJICogc3RhdGUgYW5kIHNvIGludm9sdmVzIGxlc3Mgd29yay4KIAkg Ki8KLQlpZiAoYm91bmQpIHsKKwlpZiAob2JqLT5iaW5kX2NvdW50KSB7CiAJCS8qIEJlZm9yZSB3 ZSBjaGFuZ2UgdGhlIFBURSwgdGhlIEdQVSBtdXN0IG5vdCBiZSBhY2Nlc3NpbmcgaXQuCiAJCSAq IElmIHdlIHdhaXQgdXBvbiB0aGUgb2JqZWN0LCB3ZSBrbm93IHRoYXQgYWxsIHRoZSBib3VuZAog CQkgKiBWTUEgYXJlIG5vIGxvbmdlciBhY3RpdmUuCkBAIC0zMjI3LDYgKzMyMjcsOSBAQCBpOTE1 X2dlbV9vYmplY3RfcGluX3RvX2Rpc3BsYXlfcGxhbmUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaiwKIAkJCQkJICAgIG9sZF9yZWFkX2RvbWFpbnMsCiAJCQkJCSAgICBvbGRfd3JpdGVf ZG9tYWluKTsKIAorCS8qIEluY3JlbWVudCB0aGUgcGFnZXNfcGluX2NvdW50IHRvIGd1YXJkIGFn YWluc3QgdGhlIHNocmlua2VyICovCisJb2JqLT5wYWdlc19waW5fY291bnQrKzsKKwogCXJldHVy biAwOwogCiBlcnJfdW5waW5fZGlzcGxheToKQEAgLTMyNDMsNiArMzI0Niw3IEBAIGk5MTVfZ2Vt X29iamVjdF91bnBpbl9mcm9tX2Rpc3BsYXlfcGxhbmUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaiwKIAogCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluX3ZpZXcob2JqLCB2aWV3KTsK IAorCW9iai0+cGFnZXNfcGluX2NvdW50LS07CiAJb2JqLT5waW5fZGlzcGxheS0tOwogfQogCkBA IC0zNzU3LDYgKzM3NjEsNyBAQCB2b2lkIGk5MTVfZ2VtX2ZyZWVfb2JqZWN0KHN0cnVjdCBkcm1f Z2VtX29iamVjdCAqZ2VtX29iaikKIAkJCWRldl9wcml2LT5tbS5pbnRlcnJ1cHRpYmxlID0gd2Fz X2ludGVycnVwdGlibGU7CiAJCX0KIAl9CisJR0VNX0JVR19PTihvYmotPmJpbmRfY291bnQpOwog CiAJLyogU3RvbGVuIG9iamVjdHMgZG9uJ3QgaG9sZCBhIHJlZiwgYnV0IGRvIGhvbGQgcGluIGNv dW50LiBGaXggdGhhdCB1cAogCSAqIGJlZm9yZSBwcm9ncmVzc2luZy4gKi8KQEAgLTQzOTgsMTcg KzQ0MDMsNiBAQCBib29sIGk5MTVfZ2VtX29ial9nZ3R0X2JvdW5kX3ZpZXcoc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm8sCiAJcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIGk5MTVfZ2VtX29i al9ib3VuZF9hbnkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm8pCi17Ci0Jc3RydWN0IGk5 MTVfdm1hICp2bWE7Ci0KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHZtYSwgJm8tPnZtYV9saXN0LCBv YmpfbGluaykKLQkJaWYgKGRybV9tbV9ub2RlX2FsbG9jYXRlZCgmdm1hLT5ub2RlKSkKLQkJCXJl dHVybiB0cnVlOwotCi0JcmV0dXJuIGZhbHNlOwotfQotCiB1bnNpZ25lZCBsb25nIGk5MTVfZ2Vt X29ial9nZ3R0X3NpemUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm8pCiB7CiAJc3RydWN0 IGk5MTVfdm1hICp2bWE7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9zaHJpbmtlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc2hyaW5rZXIuYwpp bmRleCBjNDg1OGMxMmY2OWUuLmEwMjkwMzAwN2Y5YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fc2hyaW5rZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9zaHJpbmtlci5jCkBAIC00OCwyMSArNDgsNiBAQCBzdGF0aWMgYm9vbCBtdXRleF9p c19sb2NrZWRfYnkoc3RydWN0IG11dGV4ICptdXRleCwgc3RydWN0IHRhc2tfc3RydWN0ICp0YXNr KQogI2VuZGlmCiB9CiAKLXN0YXRpYyBpbnQgbnVtX3ZtYV9ib3VuZChzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqKQotewotCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwotCWludCBjb3VudCA9 IDA7Ci0KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHZtYSwgJm9iai0+dm1hX2xpc3QsIG9ial9saW5r KSB7Ci0JCWlmIChkcm1fbW1fbm9kZV9hbGxvY2F0ZWQoJnZtYS0+bm9kZSkpCi0JCQljb3VudCsr OwotCQlpZiAodm1hLT5waW5fY291bnQpCi0JCQljb3VudCsrOwotCX0KLQotCXJldHVybiBjb3Vu dDsKLX0KLQogc3RhdGljIGJvb2wgc3dhcF9hdmFpbGFibGUodm9pZCkKIHsKIAlyZXR1cm4gZ2V0 X25yX3N3YXBfcGFnZXMoKSA+IDA7CkBAIC04Miw3ICs2Nyw3IEBAIHN0YXRpYyBib29sIGNhbl9y ZWxlYXNlX3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJICogdG8gdGhl IEdQVSwgc2ltcGx5IHVuYmluZGluZyBmcm9tIHRoZSBHUFUgaXMgbm90IGdvaW5nIHRvIHN1Y2Nl ZWQKIAkgKiBpbiByZWxlYXNpbmcgb3VyIHBpbiBjb3VudCBvbiB0aGUgcGFnZXMgdGhlbXNlbHZl cy4KIAkgKi8KLQlpZiAob2JqLT5wYWdlc19waW5fY291bnQgIT0gbnVtX3ZtYV9ib3VuZChvYmop KQorCWlmIChvYmotPnBhZ2VzX3Bpbl9jb3VudCAhPSBvYmotPmJpbmRfY291bnQpCiAJCXJldHVy biBmYWxzZTsKIAogCS8qIFdlIGNhbiBvbmx5IHJldHVybiBwaHlzaWNhbCBwYWdlcyB0byB0aGUg c3lzdGVtIGlmIHdlIGNhbiBlaXRoZXIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX3N0b2xlbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVu LmMKaW5kZXggNGJkNzFkNjk1NmUyLi4yMTU4NGU4NjkwOGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX3N0b2xlbi5jCkBAIC03MDYsNiArNzA2LDcgQEAgaTkxNV9nZW1fb2JqZWN0X2Ny ZWF0ZV9zdG9sZW5fZm9yX3ByZWFsbG9jYXRlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCXZt YS0+Ym91bmQgfD0gR0xPQkFMX0JJTkQ7CiAJX19pOTE1X3ZtYV9zZXRfbWFwX2FuZF9mZW5jZWFi bGUodm1hKTsKIAlsaXN0X2FkZF90YWlsKCZ2bWEtPnZtX2xpbmssICZnZ3R0LT5iYXNlLmluYWN0 aXZlX2xpc3QpOworCW9iai0+YmluZF9jb3VudCsrOwogCiAJbGlzdF9hZGRfdGFpbCgmb2JqLT5n bG9iYWxfbGlzdCwgJmRldl9wcml2LT5tbS5ib3VuZF9saXN0KTsKIAlpOTE1X2dlbV9vYmplY3Rf cGluX3BhZ2VzKG9iaik7Ci0tIAoyLjguMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==