From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 10/22] drm/i915: Record allocated vma size Date: Wed, 27 Jul 2016 12:14:48 +0100 Message-ID: <1469618100-15298-11-git-send-email-chris@chris-wilson.co.uk> References: <1469618100-15298-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 85DF16E678 for ; Wed, 27 Jul 2016 11:15:27 +0000 (UTC) Received: by mail-wm0-x243.google.com with SMTP id x83so5923921wma.3 for ; Wed, 27 Jul 2016 04:15:27 -0700 (PDT) In-Reply-To: <1469618100-15298-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 VHJhY2tpbmcgdGhlIHNpemUgb2YgdGhlIFZNQSBhcyBhbGxvY2F0ZWQgYWxsb3dzIHVzIHRvIGRy YW1hdGljYWxseQpyZWR1Y2UgdGhlIGNvbXBsZXhpdHkgb2YgbGF0ZXIgZnVuY3Rpb25zIChsaWtl IGluc2VydGluZyB0aGUgVk1BIGluIHRvCnRoZSBkcm1fbW0gcmFuZ2UgbWFuYWdlcikuCgpTaWdu ZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICB8ICAxMCArKy0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICB8IDExNSArKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIHwgIDY2ICsr KysrKystLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0Lmgg fCAgIDUgKy0KIDQgZmlsZXMgY2hhbmdlZCwgNzcgaW5zZXJ0aW9ucygrKSwgMTE5IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDFlMTM2OTMxOTMyNi4uNzE3ODM0YmMx YWU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTMyNDEsMTEgKzMyNDEsMTEgQEAgaW50 IGk5MTVfZ2VtX29iamVjdF9hdHRhY2hfcGh5cyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqLAogaW50IGk5MTVfZ2VtX29wZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRy bV9maWxlICpmaWxlKTsKIHZvaWQgaTkxNV9nZW1fcmVsZWFzZShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpOwogCi11aW50MzJfdAotaTkxNV9nZW1fZ2V0X2d0 dF9zaXplKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVpbnQzMl90IHNpemUsIGludCB0aWxpbmdf bW9kZSk7Ci11aW50MzJfdAotaTkxNV9nZW1fZ2V0X2d0dF9hbGlnbm1lbnQoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdWludDMyX3Qgc2l6ZSwKLQkJCSAgICBpbnQgdGlsaW5nX21vZGUsIGJvb2wg ZmVuY2VkKTsKK3VpbnQ2NF90CitpOTE1X2dlbV9nZXRfZ3R0X3NpemUoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdWludDY0X3Qgc2l6ZSwgaW50IHRpbGluZ19tb2RlKTsKK3VpbnQ2NF90CitpOTE1 X2dlbV9nZXRfZ3R0X2FsaWdubWVudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1aW50NjRfdCBz aXplLAorCQkJICAgaW50IHRpbGluZ19tb2RlLCBib29sIGZlbmNlZCk7CiAKIGludCBpOTE1X2dl bV9vYmplY3Rfc2V0X2NhY2hlX2xldmVsKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmos CiAJCQkJICAgIGVudW0gaTkxNV9jYWNoZV9sZXZlbCBjYWNoZV9sZXZlbCk7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW0uYwppbmRleCAxNzczYjM1NzAzYmMuLjM1OGMwY2E2MDUzMCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jCkBAIC0xODQ0LDExICsxODQ0LDEzIEBAIGk5MTVfZ2VtX3JlbGVhc2VfYWxs X21tYXBzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJaTkxNV9nZW1fcmVs ZWFzZV9tbWFwKG9iaik7CiB9CiAKLXVpbnQzMl90Ci1pOTE1X2dlbV9nZXRfZ3R0X3NpemUoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdWludDMyX3Qgc2l6ZSwgaW50IHRpbGluZ19tb2RlKQordWlu dDY0X3QKK2k5MTVfZ2VtX2dldF9ndHRfc2l6ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1aW50 NjRfdCBzaXplLCBpbnQgdGlsaW5nX21vZGUpCiB7CiAJdWludDMyX3QgZ3R0X3NpemU7CiAKKwlH RU1fQlVHX09OKHNpemUgPT0gMCk7CisKIAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gNCB8 fAogCSAgICB0aWxpbmdfbW9kZSA9PSBJOTE1X1RJTElOR19OT05FKQogCQlyZXR1cm4gc2l6ZTsK QEAgLTE4NzUsMTAgKzE4NzcsMTIgQEAgaTkxNV9nZW1fZ2V0X2d0dF9zaXplKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHVpbnQzMl90IHNpemUsIGludCB0aWxpbmdfbW9kZSkKICAqIFJldHVybiB0 aGUgcmVxdWlyZWQgR1RUIGFsaWdubWVudCBmb3IgYW4gb2JqZWN0LCB0YWtpbmcgaW50byBhY2Nv dW50CiAgKiBwb3RlbnRpYWwgZmVuY2UgcmVnaXN0ZXIgbWFwcGluZy4KICAqLwotdWludDMyX3QK LWk5MTVfZ2VtX2dldF9ndHRfYWxpZ25tZW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVpbnQz Ml90IHNpemUsCit1aW50NjRfdAoraTkxNV9nZW1fZ2V0X2d0dF9hbGlnbm1lbnQoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdWludDY0X3Qgc2l6ZSwKIAkJCSAgIGludCB0aWxpbmdfbW9kZSwgYm9v bCBmZW5jZWQpCiB7CisJR0VNX0JVR19PTihzaXplID09IDApOworCiAJLyoKIAkgKiBNaW5pbXVt IGFsaWdubWVudCBpcyA0ayAoR1RUIHBhZ2Ugc2l6ZSksIGJ1dCBtaWdodCBiZSBncmVhdGVyCiAJ ICogaWYgYSBmZW5jZSByZWdpc3RlciBpcyBuZWVkZWQgZm9yIHRoZSBvYmplY3QuCkBAIC0yOTc1 LDUxICsyOTc5LDM1IEBAIGk5MTVfZ2VtX29iamVjdF9pbnNlcnRfaW50b192bShzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqLAogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBvYmot PmJhc2UuZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZGV2KTsKLQl1NjQgc3RhcnQsIGVuZDsKLQl1MzIgc2VhcmNoX2ZsYWcsIGFsbG9jX2ZsYWc7CiAJ c3RydWN0IGk5MTVfdm1hICp2bWE7CisJdTY0IHN0YXJ0LCBlbmQ7CisJdTY0IG1pbl9hbGlnbm1l bnQ7CiAJaW50IHJldDsKIAotCWlmIChpOTE1X2lzX2dndHQodm0pKSB7Ci0JCXUzMiBmZW5jZV9z aXplLCBmZW5jZV9hbGlnbm1lbnQsIHVuZmVuY2VkX2FsaWdubWVudDsKLQkJdTY0IHZpZXdfc2l6 ZTsKLQotCQlpZiAoV0FSTl9PTighZ2d0dF92aWV3KSkKLQkJCXJldHVybiBFUlJfUFRSKC1FSU5W QUwpOwotCi0JCXZpZXdfc2l6ZSA9IGk5MTVfZ2d0dF92aWV3X3NpemUob2JqLCBnZ3R0X3ZpZXcp OwotCi0JCWZlbmNlX3NpemUgPSBpOTE1X2dlbV9nZXRfZ3R0X3NpemUoZGV2LAotCQkJCQkJICAg dmlld19zaXplLAotCQkJCQkJICAgb2JqLT50aWxpbmdfbW9kZSk7Ci0JCWZlbmNlX2FsaWdubWVu dCA9IGk5MTVfZ2VtX2dldF9ndHRfYWxpZ25tZW50KGRldiwKLQkJCQkJCQkgICAgIHZpZXdfc2l6 ZSwKLQkJCQkJCQkgICAgIG9iai0+dGlsaW5nX21vZGUsCi0JCQkJCQkJICAgICB0cnVlKTsKLQkJ dW5mZW5jZWRfYWxpZ25tZW50ID0gaTkxNV9nZW1fZ2V0X2d0dF9hbGlnbm1lbnQoZGV2LAotCQkJ CQkJCQl2aWV3X3NpemUsCi0JCQkJCQkJCW9iai0+dGlsaW5nX21vZGUsCi0JCQkJCQkJCWZhbHNl KTsKLQkJc2l6ZSA9IG1heChzaXplLCB2aWV3X3NpemUpOwotCQlpZiAoZmxhZ3MgJiBQSU5fTUFQ UEFCTEUpCi0JCQlzaXplID0gbWF4X3QodTY0LCBzaXplLCBmZW5jZV9zaXplKTsKLQotCQlpZiAo YWxpZ25tZW50ID09IDApCi0JCQlhbGlnbm1lbnQgPSBmbGFncyAmIFBJTl9NQVBQQUJMRSA/IGZl bmNlX2FsaWdubWVudCA6Ci0JCQkJdW5mZW5jZWRfYWxpZ25tZW50OwotCQlpZiAoZmxhZ3MgJiBQ SU5fTUFQUEFCTEUgJiYgYWxpZ25tZW50ICYgKGZlbmNlX2FsaWdubWVudCAtIDEpKSB7Ci0JCQlE Uk1fREVCVUcoIkludmFsaWQgb2JqZWN0ICh2aWV3IHR5cGU9JXUpIGFsaWdubWVudCByZXF1ZXN0 ZWQgJWxseFxuIiwKLQkJCQkgIGdndHRfdmlldyA/IGdndHRfdmlldy0+dHlwZSA6IDAsCi0JCQkJ ICAobG9uZyBsb25nKWFsaWdubWVudCk7Ci0JCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKLQkJ fQotCX0gZWxzZSB7Ci0JCXNpemUgPSBtYXhfdCh1NjQsIHNpemUsIG9iai0+YmFzZS5zaXplKTsK LQkJYWxpZ25tZW50ID0gNDA5NjsKKwl2bWEgPSBnZ3R0X3ZpZXcgPworCQlpOTE1X2dlbV9vYmpf bG9va3VwX29yX2NyZWF0ZV9nZ3R0X3ZtYShvYmosIGdndHRfdmlldykgOgorCQlpOTE1X2dlbV9v YmpfbG9va3VwX29yX2NyZWF0ZV92bWEob2JqLCB2bSk7CisJaWYgKElTX0VSUih2bWEpKQorCQly ZXR1cm4gdm1hOworCisJc2l6ZSA9IG1heChzaXplLCB2bWEtPnNpemUpOworCWlmIChmbGFncyAm IFBJTl9NQVBQQUJMRSkKKwkJc2l6ZSA9IGk5MTVfZ2VtX2dldF9ndHRfc2l6ZShkZXYsIHNpemUs IG9iai0+dGlsaW5nX21vZGUpOworCisJbWluX2FsaWdubWVudCA9CisJCWk5MTVfZ2VtX2dldF9n dHRfYWxpZ25tZW50KGRldiwgc2l6ZSwgb2JqLT50aWxpbmdfbW9kZSwKKwkJCQkJICAgZmxhZ3Mg JiBQSU5fTUFQUEFCTEUpOworCWlmIChhbGlnbm1lbnQgPT0gMCkKKwkJYWxpZ25tZW50ID0gbWlu X2FsaWdubWVudDsKKwlpZiAoYWxpZ25tZW50ICYgKG1pbl9hbGlnbm1lbnQgLSAxKSkgeworCQlE Uk1fREVCVUcoIkludmFsaWQgb2JqZWN0IGFsaWdubWVudCByZXF1ZXN0ZWQgJWxsdSwgbWluaW11 bSAlbGx1XG4iLAorCQkJICBhbGlnbm1lbnQsIG1pbl9hbGlnbm1lbnQpOworCQlyZXR1cm4gRVJS X1BUUigtRUlOVkFMKTsKIAl9CiAKIAlzdGFydCA9IGZsYWdzICYgUElOX09GRlNFVF9CSUFTID8g ZmxhZ3MgJiBQSU5fT0ZGU0VUX01BU0sgOiAwOwotCWVuZCA9IHZtLT50b3RhbDsKKworCWVuZCA9 IHZtYS0+dm0tPnRvdGFsOwogCWlmIChmbGFncyAmIFBJTl9NQVBQQUJMRSkKIAkJZW5kID0gbWlu X3QodTY0LCBlbmQsIGRldl9wcml2LT5nZ3R0Lm1hcHBhYmxlX2VuZCk7CiAJaWYgKGZsYWdzICYg UElOX1pPTkVfNEcpCkBAIC0zMDMwLDggKzMwMTgsNyBAQCBpOTE1X2dlbV9vYmplY3RfaW5zZXJ0 X2ludG9fdm0oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkgKiBhdHRlbXB0IHRv IGZpbmQgc3BhY2UuCiAJICovCiAJaWYgKHNpemUgPiBlbmQpIHsKLQkJRFJNX0RFQlVHKCJBdHRl bXB0aW5nIHRvIGJpbmQgYW4gb2JqZWN0ICh2aWV3IHR5cGU9JXUpIGxhcmdlciB0aGFuIHRoZSBh cGVydHVyZTogcmVxdWVzdD0lbGx1IFtvYmplY3Q9JXpkXSA+ICVzIGFwZXJ0dXJlPSVsbHVcbiIs Ci0JCQkgIGdndHRfdmlldyA/IGdndHRfdmlldy0+dHlwZSA6IDAsCisJCURSTV9ERUJVRygiQXR0 ZW1wdGluZyB0byBiaW5kIGFuIG9iamVjdCBsYXJnZXIgdGhhbiB0aGUgYXBlcnR1cmU6IHJlcXVl c3Q9JWxsdSBbb2JqZWN0PSV6ZF0gPiAlcyBhcGVydHVyZT0lbGx1XG4iLAogCQkJICBzaXplLCBv YmotPmJhc2Uuc2l6ZSwKIAkJCSAgZmxhZ3MgJiBQSU5fTUFQUEFCTEUgPyAibWFwcGFibGUiIDog InRvdGFsIiwKIAkJCSAgZW5kKTsKQEAgLTMwNDQsMzEgKzMwMzEsMjcgQEAgaTkxNV9nZW1fb2Jq ZWN0X2luc2VydF9pbnRvX3ZtKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAKIAlp OTE1X2dlbV9vYmplY3RfcGluX3BhZ2VzKG9iaik7CiAKLQl2bWEgPSBnZ3R0X3ZpZXcgPyBpOTE1 X2dlbV9vYmpfbG9va3VwX29yX2NyZWF0ZV9nZ3R0X3ZtYShvYmosIGdndHRfdmlldykgOgotCQkJ ICBpOTE1X2dlbV9vYmpfbG9va3VwX29yX2NyZWF0ZV92bWEob2JqLCB2bSk7Ci0KLQlpZiAoSVNf RVJSKHZtYSkpCi0JCWdvdG8gZXJyX3VucGluOwotCiAJaWYgKGZsYWdzICYgUElOX09GRlNFVF9G SVhFRCkgewogCQl1aW50NjRfdCBvZmZzZXQgPSBmbGFncyAmIFBJTl9PRkZTRVRfTUFTSzsKLQot CQlpZiAob2Zmc2V0ICYgKGFsaWdubWVudCAtIDEpIHx8IG9mZnNldCArIHNpemUgPiBlbmQpIHsK KwkJaWYgKG9mZnNldCAmIChhbGlnbm1lbnQgLSAxKSB8fCBvZmZzZXQgPiBlbmQgLSBzaXplKSB7 CiAJCQlyZXQgPSAtRUlOVkFMOwotCQkJZ290byBlcnJfdm1hOworCQkJZ290byBlcnJfdW5waW47 CiAJCX0KKwogCQl2bWEtPm5vZGUuc3RhcnQgPSBvZmZzZXQ7CiAJCXZtYS0+bm9kZS5zaXplID0g c2l6ZTsKIAkJdm1hLT5ub2RlLmNvbG9yID0gb2JqLT5jYWNoZV9sZXZlbDsKLQkJcmV0ID0gZHJt X21tX3Jlc2VydmVfbm9kZSgmdm0tPm1tLCAmdm1hLT5ub2RlKTsKKwkJcmV0ID0gZHJtX21tX3Jl c2VydmVfbm9kZSgmdm1hLT52bS0+bW0sICZ2bWEtPm5vZGUpOwogCQlpZiAocmV0KSB7CiAJCQly ZXQgPSBpOTE1X2dlbV9ldmljdF9mb3Jfdm1hKHZtYSk7CiAJCQlpZiAocmV0ID09IDApCi0JCQkJ cmV0ID0gZHJtX21tX3Jlc2VydmVfbm9kZSgmdm0tPm1tLCAmdm1hLT5ub2RlKTsKKwkJCQlyZXQg PSBkcm1fbW1fcmVzZXJ2ZV9ub2RlKCZ2bWEtPnZtLT5tbSwgJnZtYS0+bm9kZSk7CisJCQlpZiAo cmV0KQorCQkJCWdvdG8gZXJyX3VucGluOwogCQl9Ci0JCWlmIChyZXQpCi0JCQlnb3RvIGVycl92 bWE7CiAJfSBlbHNlIHsKKwkJdTMyIHNlYXJjaF9mbGFnLCBhbGxvY19mbGFnOworCiAJCWlmIChm bGFncyAmIFBJTl9ISUdIKSB7CiAJCQlzZWFyY2hfZmxhZyA9IERSTV9NTV9TRUFSQ0hfQkVMT1c7 CiAJCQlhbGxvY19mbGFnID0gRFJNX01NX0NSRUFURV9UT1A7CkBAIC0zMDc3LDM3ICszMDYwLDM5 IEBAIGk5MTVfZ2VtX29iamVjdF9pbnNlcnRfaW50b192bShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqLAogCQkJYWxsb2NfZmxhZyA9IERSTV9NTV9DUkVBVEVfREVGQVVMVDsKIAkJfQog CisJCWlmIChhbGlnbm1lbnQgPD0gNDA5NikKKwkJCWFsaWdubWVudCA9IDA7IC8qIGZvciBlZmZp Y2llbnQgZHJtX21tIHNlYXJjaGluZyAqLworCiBzZWFyY2hfZnJlZToKLQkJcmV0ID0gZHJtX21t X2luc2VydF9ub2RlX2luX3JhbmdlX2dlbmVyaWMoJnZtLT5tbSwgJnZtYS0+bm9kZSwKKwkJcmV0 ID0gZHJtX21tX2luc2VydF9ub2RlX2luX3JhbmdlX2dlbmVyaWMoJnZtYS0+dm0tPm1tLAorCQkJ CQkJCSAgJnZtYS0+bm9kZSwKIAkJCQkJCQkgIHNpemUsIGFsaWdubWVudCwKIAkJCQkJCQkgIG9i ai0+Y2FjaGVfbGV2ZWwsCiAJCQkJCQkJICBzdGFydCwgZW5kLAogCQkJCQkJCSAgc2VhcmNoX2Zs YWcsCiAJCQkJCQkJICBhbGxvY19mbGFnKTsKIAkJaWYgKHJldCkgewotCQkJcmV0ID0gaTkxNV9n ZW1fZXZpY3Rfc29tZXRoaW5nKHZtLCBzaXplLCBhbGlnbm1lbnQsCisJCQlyZXQgPSBpOTE1X2dl bV9ldmljdF9zb21ldGhpbmcodm1hLT52bSwgc2l6ZSwgYWxpZ25tZW50LAogCQkJCQkJICAgICAg IG9iai0+Y2FjaGVfbGV2ZWwsCiAJCQkJCQkgICAgICAgc3RhcnQsIGVuZCwKIAkJCQkJCSAgICAg ICBmbGFncyk7CiAJCQlpZiAocmV0ID09IDApCiAJCQkJZ290byBzZWFyY2hfZnJlZTsKIAotCQkJ Z290byBlcnJfdm1hOworCQkJZ290byBlcnJfdW5waW47CiAJCX0KIAl9CiAJR0VNX0JVR19PTigh aTkxNV9nZW1fdmFsaWRfZ3R0X3NwYWNlKHZtYSwgb2JqLT5jYWNoZV9sZXZlbCkpOwogCiAJbGlz dF9tb3ZlX3RhaWwoJm9iai0+Z2xvYmFsX2xpc3QsICZkZXZfcHJpdi0+bW0uYm91bmRfbGlzdCk7 Ci0JbGlzdF9tb3ZlX3RhaWwoJnZtYS0+dm1fbGluaywgJnZtLT5pbmFjdGl2ZV9saXN0KTsKKwls aXN0X21vdmVfdGFpbCgmdm1hLT52bV9saW5rLCAmdm1hLT52bS0+aW5hY3RpdmVfbGlzdCk7CiAJ b2JqLT5iaW5kX2NvdW50Kys7CiAKIAlyZXR1cm4gdm1hOwogCi1lcnJfdm1hOgotCXZtYSA9IEVS Ul9QVFIocmV0KTsKIGVycl91bnBpbjoKIAlpOTE1X2dlbV9vYmplY3RfdW5waW5fcGFnZXMob2Jq KTsKLQlyZXR1cm4gdm1hOworCXJldHVybiBFUlJfUFRSKHJldCk7CiB9CiAKIGJvb2wKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKaW5kZXggNTg2OWZhMDc0MDA5Li5lYmYyOGJmOGRiMDAg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCkBAIC0xODQsNyArMTg0LDcgQEAgc3Rh dGljIHZvaWQgcHBndHRfdW5iaW5kX3ZtYShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKIHsKIAl2bWEt PnZtLT5jbGVhcl9yYW5nZSh2bWEtPnZtLAogCQkJICAgICB2bWEtPm5vZGUuc3RhcnQsCi0JCQkg ICAgIHZtYS0+b2JqLT5iYXNlLnNpemUsCisJCQkgICAgIHZtYS0+c2l6ZSwKIAkJCSAgICAgdHJ1 ZSk7CiB9CiAKQEAgLTI2OTcsMjggKzI2OTcsMTggQEAgc3RhdGljIGludCBhbGlhc2luZ19ndHRf YmluZF92bWEoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAKIHN0YXRpYyB2b2lkIGdndHRfdW5iaW5k X3ZtYShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g dm1hLT52bS0+ZGV2OwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZGV2KTsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gdm1hLT5vYmo7Ci0J Y29uc3QgdWludDY0X3Qgc2l6ZSA9IG1pbl90KHVpbnQ2NF90LAotCQkJCSAgICBvYmotPmJhc2Uu c2l6ZSwKLQkJCQkgICAgdm1hLT5ub2RlLnNpemUpOworCXN0cnVjdCBpOTE1X2h3X3BwZ3R0ICph cHBndHQgPSB0b19pOTE1KHZtYS0+dm0tPmRldiktPm1tLmFsaWFzaW5nX3BwZ3R0OworCWNvbnN0 IHU2NCBzaXplID0gbWluKHZtYS0+c2l6ZSwgdm1hLT5ub2RlLnNpemUpOwogCi0JaWYgKHZtYS0+ Ym91bmQgJiBHTE9CQUxfQklORCkgeworCWlmICh2bWEtPmJvdW5kICYgR0xPQkFMX0JJTkQpCiAJ CXZtYS0+dm0tPmNsZWFyX3JhbmdlKHZtYS0+dm0sCi0JCQkJICAgICB2bWEtPm5vZGUuc3RhcnQs Ci0JCQkJICAgICBzaXplLAorCQkJCSAgICAgdm1hLT5ub2RlLnN0YXJ0LCBzaXplLAogCQkJCSAg ICAgdHJ1ZSk7Ci0JfQotCi0JaWYgKGRldl9wcml2LT5tbS5hbGlhc2luZ19wcGd0dCAmJiB2bWEt PmJvdW5kICYgTE9DQUxfQklORCkgewotCQlzdHJ1Y3QgaTkxNV9od19wcGd0dCAqYXBwZ3R0ID0g ZGV2X3ByaXYtPm1tLmFsaWFzaW5nX3BwZ3R0OwogCisJaWYgKHZtYS0+Ym91bmQgJiBMT0NBTF9C SU5EICYmIGFwcGd0dCkKIAkJYXBwZ3R0LT5iYXNlLmNsZWFyX3JhbmdlKCZhcHBndHQtPmJhc2Us Ci0JCQkJCSB2bWEtPm5vZGUuc3RhcnQsCi0JCQkJCSBzaXplLAorCQkJCQkgdm1hLT5ub2RlLnN0 YXJ0LCBzaXplLAogCQkJCQkgdHJ1ZSk7Ci0JfQogfQogCiB2b2lkIGk5MTVfZ2VtX2d0dF9maW5p c2hfb2JqZWN0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCkBAIC0zMzY3LDE0ICsz MzU3LDE0IEBAIHZvaWQgaTkxNV92bWFfY2xvc2Uoc3RydWN0IGk5MTVfdm1hICp2bWEpCiBzdGF0 aWMgc3RydWN0IGk5MTVfdm1hICoKIF9faTkxNV9nZW1fdm1hX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqLAogCQkgICAgICBzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2 bSwKLQkJICAgICAgY29uc3Qgc3RydWN0IGk5MTVfZ2d0dF92aWV3ICpnZ3R0X3ZpZXcpCisJCSAg ICAgIGNvbnN0IHN0cnVjdCBpOTE1X2dndHRfdmlldyAqdmlldykKIHsKIAlzdHJ1Y3QgaTkxNV92 bWEgKnZtYTsKIAlpbnQgaTsKIAogCUdFTV9CVUdfT04odm0tPmNsb3NlZCk7CiAKLQlpZiAoV0FS Tl9PTihpOTE1X2lzX2dndHQodm0pICE9ICEhZ2d0dF92aWV3KSkKKwlpZiAoV0FSTl9PTihpOTE1 X2lzX2dndHQodm0pICE9ICEhdmlldykpCiAJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwogCiAJ dm1hID0ga21lbV9jYWNoZV96YWxsb2ModG9faTkxNShvYmotPmJhc2UuZGV2KS0+dm1hcywgR0ZQ X0tFUk5FTCk7CkBAIC0zMzg4LDExICszMzc4LDIwIEBAIF9faTkxNV9nZW1fdm1hX2NyZWF0ZShz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCWxpc3RfYWRkKCZ2bWEtPnZtX2xpbmss ICZ2bS0+dW5ib3VuZF9saXN0KTsKIAl2bWEtPnZtID0gdm07CiAJdm1hLT5vYmogPSBvYmo7CisJ dm1hLT5zaXplID0gb2JqLT5iYXNlLnNpemU7CiAJdm1hLT5pc19nZ3R0ID0gaTkxNV9pc19nZ3R0 KHZtKTsKIAotCWlmIChpOTE1X2lzX2dndHQodm0pKQotCQl2bWEtPmdndHRfdmlldyA9ICpnZ3R0 X3ZpZXc7Ci0JZWxzZQorCWlmIChpOTE1X2lzX2dndHQodm0pKSB7CisJCXZtYS0+Z2d0dF92aWV3 ID0gKnZpZXc7CisJCWlmICh2aWV3LT50eXBlID09IEk5MTVfR0dUVF9WSUVXX1BBUlRJQUwpIHsK KwkJCXZtYS0+c2l6ZSA9IHZpZXctPnBhcmFtcy5wYXJ0aWFsLnNpemU7CisJCQl2bWEtPnNpemUg PDw9IFBBR0VfU0hJRlQ7CisJCX0gZWxzZSBpZiAodmlldy0+dHlwZSA9PSBJOTE1X0dHVFRfVklF V19ST1RBVEVEKSB7CisJCQl2bWEtPnNpemUgPQorCQkJCWludGVsX3JvdGF0aW9uX2luZm9fc2l6 ZSgmdmlldy0+cGFyYW1zLnJvdGF0ZWQpOworCQkJdm1hLT5zaXplIDw8PSBQQUdFX1NISUZUOwor CQl9CisJfSBlbHNlCiAJCWk5MTVfcHBndHRfZ2V0KGk5MTVfdm1fdG9fcHBndHQodm0pKTsKIAog CWxpc3RfYWRkX3RhaWwoJnZtYS0+b2JqX2xpbmssICZvYmotPnZtYV9saXN0KTsKQEAgLTM2Nzgs MjkgKzM2NzcsNiBAQCBpbnQgaTkxNV92bWFfYmluZChzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgZW51 bSBpOTE1X2NhY2hlX2xldmVsIGNhY2hlX2xldmVsLAogCXJldHVybiAwOwogfQogCi0vKioKLSAq IGk5MTVfZ2d0dF92aWV3X3NpemUgLSBHZXQgdGhlIHNpemUgb2YgYSBHR1RUIHZpZXcuCi0gKiBA b2JqOiBPYmplY3QgdGhlIHZpZXcgaXMgb2YuCi0gKiBAdmlldzogVGhlIHZpZXcgaW4gcXVlc3Rp b24uCi0gKgotICogQHJldHVybiBUaGUgc2l6ZSBvZiB0aGUgR0dUVCB2aWV3IGluIGJ5dGVzLgot ICovCi1zaXplX3QKLWk5MTVfZ2d0dF92aWV3X3NpemUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaiwKLQkJICAgIGNvbnN0IHN0cnVjdCBpOTE1X2dndHRfdmlldyAqdmlldykKLXsKLQlp ZiAodmlldy0+dHlwZSA9PSBJOTE1X0dHVFRfVklFV19OT1JNQUwpIHsKLQkJcmV0dXJuIG9iai0+ YmFzZS5zaXplOwotCX0gZWxzZSBpZiAodmlldy0+dHlwZSA9PSBJOTE1X0dHVFRfVklFV19ST1RB VEVEKSB7Ci0JCXJldHVybiBpbnRlbF9yb3RhdGlvbl9pbmZvX3NpemUoJnZpZXctPnBhcmFtcy5y b3RhdGVkKSA8PCBQQUdFX1NISUZUOwotCX0gZWxzZSBpZiAodmlldy0+dHlwZSA9PSBJOTE1X0dH VFRfVklFV19QQVJUSUFMKSB7Ci0JCXJldHVybiB2aWV3LT5wYXJhbXMucGFydGlhbC5zaXplIDw8 IFBBR0VfU0hJRlQ7Ci0JfSBlbHNlIHsKLQkJV0FSTl9PTkNFKDEsICJHR1RUIHZpZXcgJXUgbm90 IGltcGxlbWVudGVkIVxuIiwgdmlldy0+dHlwZSk7Ci0JCXJldHVybiBvYmotPmJhc2Uuc2l6ZTsK LQl9Ci19Ci0KIHZvaWQgX19pb21lbSAqaTkxNV92bWFfcGluX2lvbWFwKHN0cnVjdCBpOTE1X3Zt YSAqdm1hKQogewogCXZvaWQgX19pb21lbSAqcHRyOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9n dHQuaAppbmRleCBhNzkwMTViZjcyNjEuLjVjM2EwOTNiODNjMSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZ3R0LmgKQEAgLTE4MCw2ICsxODAsNyBAQCBzdHJ1Y3QgaTkxNV92bWEgewogCXN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CiAJc3RydWN0IGk5MTVfYWRkcmVzc19zcGFj ZSAqdm07CiAJdm9pZCBfX2lvbWVtICppb21hcDsKKwl1NjQgc2l6ZTsKIAogCXVuc2lnbmVkIGlu dCBhY3RpdmU7CiAJc3RydWN0IGk5MTVfZ2VtX2FjdGl2ZSBsYXN0X3JlYWRbSTkxNV9OVU1fRU5H SU5FU107CkBAIC02MDUsMTAgKzYwNiw2IEBAIGk5MTVfZ2d0dF92aWV3X2VxdWFsKGNvbnN0IHN0 cnVjdCBpOTE1X2dndHRfdmlldyAqYSwKIAlyZXR1cm4gdHJ1ZTsKIH0KIAotc2l6ZV90Ci1pOTE1 X2dndHRfdmlld19zaXplKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCi0JCSAgICBj b25zdCBzdHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcgKnZpZXcpOwotCiAvKioKICAqIGk5MTVfdm1hX3Bp bl9pb21hcCAtIGNhbGxzIGlvcmVtYXBfd2MgdG8gbWFwIHRoZSBHR1RUIFZNQSB2aWEgdGhlIGFw ZXJ0dXJlCiAgKiBAdm1hOiBWTUEgdG8gaW9tYXAKLS0gCjIuOC4xCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK