From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 10/38] drm/i915: Remove highly confusing i915_gem_obj_ggtt_pin() Date: Fri, 3 Jun 2016 17:55:25 +0100 Message-ID: <1464972953-2726-11-git-send-email-chris@chris-wilson.co.uk> References: <1464972953-2726-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 250E86E06A for ; Fri, 3 Jun 2016 16:56:11 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id e3so714178wme.2 for ; Fri, 03 Jun 2016 09:56:11 -0700 (PDT) In-Reply-To: <1464972953-2726-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 U2luY2UgaTkxNV9nZW1fb2JqX2dndHRfcGluKCkgaXMgYW4gaWRpb20gYnJlYWtpbmcgY3Vycnkg ZnVuY3Rpb24gZm9yCmk5MTVfZ2VtX29iamVjdF9nZ3R0X3BpbigpLCBzcGFyZSB1cyB0aGUgY29u ZnVzdGlvbiBhbmQgcmVtb3ZlIGl0LgpSZW1vdmluZyBpdCBub3cgc2ltcGxpZmllcyBsYXRlciBw YXRjaGVzIHRvIGNoYW5nZSB0aGUgaTkxNV92bWFfcGluKCkKKGFuZCBmcmllbmRzKSBpbnRlcmZh Y2UuCgpTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51 az4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAgICB8IDM1 ICsrKysrKysrLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAg ICAgICAgICAgICAgfCA0NiArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyAgICAgIHwgIDUgKystCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgICB8IDEwICsrKy0tLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmggICAgICAgICAgfCA0NyArKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZW5kZXJfc3RhdGUuYyB8 ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMgICB8ICA0 ICstLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jICAgICAgfCAgMiAr LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgICAgICAgfCAgOCArKyst LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheS5jICAgICAgICAgfCAgMyArLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jICAgICAgfCAxNiArKysrKy0t LS0tCiAxMSBmaWxlcyBjaGFuZ2VkLCA4OSBpbnNlcnRpb25zKCspLCA4OSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCBmNTM3ZDhmYzVlMGYuLjg2MWQxMzJiMmZlNCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0yOTM0LDMyICsyOTM0LDMyIEBAIHZvaWQgaTkx NV9nZW1fZnJlZV9vYmplY3Qoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwogaW50IF9fbXVz dF9jaGVjawogaTkxNV92bWFfcGluKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLCB1NjQgc2l6ZSwgdTY0 IGFsaWdubWVudCwgdTY0IGZsYWdzKTsKIC8qIEZsYWdzIHVzZWQgYnkgcGluL2JpbmQmZnJpZW5k cy4gKi8KLSNkZWZpbmUgUElOX01BUFBBQkxFCSgxPDwwKQotI2RlZmluZSBQSU5fTk9OQkxPQ0sJ KDE8PDEpCi0jZGVmaW5lIFBJTl9HTE9CQUwJKDE8PDIpCi0jZGVmaW5lIFBJTl9PRkZTRVRfQklB UwkoMTw8MykKLSNkZWZpbmUgUElOX1VTRVIJKDE8PDQpCi0jZGVmaW5lIFBJTl9VUERBVEUJKDE8 PDUpCi0jZGVmaW5lIFBJTl9aT05FXzRHCSgxPDw2KQotI2RlZmluZSBQSU5fSElHSAkoMTw8NykK LSNkZWZpbmUgUElOX09GRlNFVF9GSVhFRAkoMTw8OCkKKyNkZWZpbmUgUElOX0dMT0JBTAkoMTw8 MCkKKyNkZWZpbmUgUElOX1VTRVIJKDE8PDEpCisjZGVmaW5lIFBJTl9VUERBVEUJKDE8PDIpCisj ZGVmaW5lIFBJTl9NQVBQQUJMRQkoMTw8MykKKyNkZWZpbmUgUElOX1pPTkVfNEcJKDE8PDQpCisj ZGVmaW5lIFBJTl9OT05CTE9DSwkoMTw8NSkKKyNkZWZpbmUgUElOX0hJR0gJKDE8PDYpCisjZGVm aW5lIFBJTl9PRkZTRVRfQklBUwkoMTw8NykKKyNkZWZpbmUgUElOX09GRlNFVF9GSVhFRCAoMTw8 OCkKICNkZWZpbmUgUElOX09GRlNFVF9NQVNLICh+NDA5NSkKIAogc3RhdGljIGlubGluZSB2b2lk IF9faTkxNV92bWFfcGluKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogewogCUdFTV9CVUdfT04odm1h LT5waW5fY291bnQgPT0gRFJNX0k5MTVfR0VNX09CSkVDVF9NQVhfUElOX0NPVU5UKTsKLQl2bWEt PnBpbl9jb3VudCsrOworCXZtYS0+ZmxhZ3MrKzsKIH0KIAogc3RhdGljIGlubGluZSBib29sIGk5 MTVfdm1hX2lzX3Bpbm5lZChzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKIHsKLQlyZXR1cm4gdm1hLT5w aW5fY291bnQ7CisJcmV0dXJuIHZtYS0+ZmxhZ3MgJiBEUk1fSTkxNV9HRU1fT0JKRUNUX01BWF9Q SU5fQ09VTlQ7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBfX2k5MTVfdm1hX3VucGluKHN0cnVj dCBpOTE1X3ZtYSAqdm1hKQogewogCUdFTV9CVUdfT04oIWk5MTVfdm1hX2lzX3Bpbm5lZCh2bWEp KTsKLQl2bWEtPnBpbl9jb3VudC0tOworCXZtYS0+ZmxhZ3MtLTsKIH0KIAogc3RhdGljIGlubGlu ZSB2b2lkIGk5MTVfdm1hX3VucGluKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQpAQCAtMjk3Miw3ICsy OTcyLDcgQEAgaW50IF9fbXVzdF9jaGVjawogaTkxNV9nZW1fb2JqZWN0X2dndHRfcGluKHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCQkgY29uc3Qgc3RydWN0IGk5MTVfZ2d0dF92 aWV3ICp2aWV3LAogCQkJIHVpbnQ2NF90IHNpemUsCi0JCQkgdWludDMyX3QgYWxpZ25tZW50LAor CQkJIHVpbnQ2NF90IGFsaWdubWVudCwKIAkJCSB1aW50NjRfdCBmbGFncyk7CiAKIGludCBpOTE1 X3ZtYV9iaW5kKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLCBlbnVtIGk5MTVfY2FjaGVfbGV2ZWwgY2Fj aGVfbGV2ZWwsCkBAIC0zMjIzLDE1ICszMjIzLDYgQEAgc3RhdGljIGlubGluZSBib29sIGk5MTVf Z2VtX29ial9nZ3R0X2JvdW5kKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB1bnNp Z25lZCBsb25nCiBpOTE1X2dlbV9vYmpfZ2d0dF9zaXplKHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmopOwogCi1zdGF0aWMgaW5saW5lIGludCBfX211c3RfY2hlY2sKLWk5MTVfZ2VtX29i al9nZ3R0X3BpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAotCQkgICAgICB1aW50 MzJfdCBhbGlnbm1lbnQsCi0JCSAgICAgIHVuc2lnbmVkIGZsYWdzKQotewotCXJldHVybiBpOTE1 X2dlbV9vYmplY3RfZ2d0dF9waW4ob2JqLCAmaTkxNV9nZ3R0X3ZpZXdfbm9ybWFsLAotCQkJCQkw LCBhbGlnbm1lbnQsIGZsYWdzKTsKLX0KLQogdm9pZCBpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBp bl92aWV3KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCQkJICAgICBjb25zdCBz dHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcgKnZpZXcpOwogc3RhdGljIGlubGluZSB2b2lkCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYwppbmRleCA3MWEzMmE5Zjk4NTguLjUzNzc2YTA3MWNlNyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbS5jCkBAIC03NzIsNyArNzcyLDkgQEAgaTkxNV9nZW1fZ3R0X3B3cml0ZV9m YXN0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJY2hhciBfX3VzZXIgKnVzZXJfZGF0YTsKIAlp bnQgcGFnZV9vZmZzZXQsIHBhZ2VfbGVuZ3RoLCByZXQ7CiAKLQlyZXQgPSBpOTE1X2dlbV9vYmpf Z2d0dF9waW4ob2JqLCAwLCBQSU5fTUFQUEFCTEUgfCBQSU5fTk9OQkxPQ0spOworCXJldCA9IGk5 MTVfZ2VtX29iamVjdF9nZ3R0X3BpbihvYmosIE5VTEwsCisJCQkJICAgICAgIDAsIDAsCisJCQkJ ICAgICAgIFBJTl9NQVBQQUJMRSB8IFBJTl9OT05CTE9DSyk7CiAJaWYgKHJldCkKIAkJZ290byBv dXQ7CiAKQEAgLTM0MDgsMzIgKzM0MTAsMzUgQEAgdm9pZCBfX2k5MTVfdm1hX3NldF9tYXBfYW5k X2ZlbmNlYWJsZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKIGludAogaTkxNV92bWFfcGluKHN0cnVj dCBpOTE1X3ZtYSAqdm1hLCB1NjQgc2l6ZSwgdTY0IGFsaWdubWVudCwgdTY0IGZsYWdzKQogewot CXVuc2lnbmVkIGJvdW5kID0gdm1hLT5ib3VuZDsKKwl1bnNpZ25lZCBib3VuZDsKIAlpbnQgcmV0 OwogCiAJR0VNX0JVR19PTigoZmxhZ3MgJiAoUElOX0dMT0JBTCB8IFBJTl9VU0VSKSkgPT0gMCk7 CiAJR0VNX0JVR19PTigoZmxhZ3MgJiBQSU5fR0xPQkFMKSAmJiAhdm1hLT5pc19nZ3R0KTsKIAot CWlmIChXQVJOX09OKHZtYS0+cGluX2NvdW50ID09IERSTV9JOTE1X0dFTV9PQkpFQ1RfTUFYX1BJ Tl9DT1VOVCkpCi0JCXJldHVybiAtRUJVU1k7Ci0KIAkvKiBQaW4gZWFybHkgdG8gcHJldmVudCB0 aGUgc2hyaW5rZXIvZXZpY3Rpb24gbG9naWMgZnJvbSBkZXN0cm95aW5nCiAJICogb3VyIHZtYSBh cyB3ZSBpbnNlcnQgYW5kIGJpbmQuCiAJICovCi0JX19pOTE1X3ZtYV9waW4odm1hKTsKKwlib3Vu ZCA9IHZtYS0+ZmxhZ3MrKzsKKwlpZiAoV0FSTl9PTigoYm91bmQgJiAweGYpID09IChEUk1fSTkx NV9HRU1fT0JKRUNUX01BWF9QSU5fQ09VTlQtMSkpKSB7CisJCXJldCA9IC1FQlVTWTsKKwkJZ290 byBlcnI7CisJfQogCi0JaWYgKCFib3VuZCkgeworCWlmICgoYm91bmQgJiAweGZmKSA9PSAwKSB7 CiAJCXJldCA9IGk5MTVfdm1hX2luc2VydCh2bWEsIHNpemUsIGFsaWdubWVudCwgZmxhZ3MpOwog CQlpZiAocmV0KQogCQkJZ290byBlcnI7CiAJfQogCi0JcmV0ID0gaTkxNV92bWFfYmluZCh2bWEs IHZtYS0+b2JqLT5jYWNoZV9sZXZlbCwgZmxhZ3MpOwotCWlmIChyZXQpCi0JCWdvdG8gZXJyOwor CWlmICh+KGJvdW5kID4+IDQpICYgKGZsYWdzICYgKEdMT0JBTF9CSU5EIHwgTE9DQUxfQklORCkp KSB7CisJCXJldCA9IGk5MTVfdm1hX2JpbmQodm1hLCB2bWEtPm9iai0+Y2FjaGVfbGV2ZWwsIGZs YWdzKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyOwogCi0JaWYgKChib3VuZCBeIHZtYS0+Ym91 bmQpICYgR0xPQkFMX0JJTkQpCi0JCV9faTkxNV92bWFfc2V0X21hcF9hbmRfZmVuY2VhYmxlKHZt YSk7CisJCWlmICgoYm91bmQgXiB2bWEtPmZsYWdzKSAmIChHTE9CQUxfQklORCA8PCA0KSkKKwkJ CV9faTkxNV92bWFfc2V0X21hcF9hbmRfZmVuY2VhYmxlKHZtYSk7CisJfQogCiAJR0VNX0JVR19P TihpOTE1X3ZtYV9taXNwbGFjZWQodm1hLCBzaXplLCBhbGlnbm1lbnQsIGZsYWdzKSk7CiAJcmV0 dXJuIDA7CkBAIC0zNDQ3LDEzICszNDUyLDE0IEBAIGludAogaTkxNV9nZW1fb2JqZWN0X2dndHRf cGluKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCQkgY29uc3Qgc3RydWN0IGk5 MTVfZ2d0dF92aWV3ICp2aWV3LAogCQkJIHVpbnQ2NF90IHNpemUsCi0JCQkgdWludDMyX3QgYWxp Z25tZW50LAorCQkJIHVpbnQ2NF90IGFsaWdubWVudCwKIAkJCSB1aW50NjRfdCBmbGFncykKIHsK IAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKIAlpbnQgcmV0OwogCi0JQlVHX09OKCF2aWV3KTsKKwlp ZiAodmlldyA9PSBOVUxMKQorCQl2aWV3ID0gJmk5MTVfZ2d0dF92aWV3X25vcm1hbDsKIAogCXZt YSA9IGk5MTVfZ2VtX29ial9sb29rdXBfb3JfY3JlYXRlX2dndHRfdm1hKG9iaiwgdmlldyk7CiAJ aWYgKElTX0VSUih2bWEpKQpAQCAtMzQ2NSwxMSArMzQ3MSwxMSBAQCBpOTE1X2dlbV9vYmplY3Rf Z2d0dF9waW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAogCQlXQVJOKHZtYS0+ cGluX2NvdW50LAogCQkgICAgICJibyBpcyBhbHJlYWR5IHBpbm5lZCBpbiBnZ3R0IHdpdGggaW5j b3JyZWN0IGFsaWdubWVudDoiCi0JCSAgICAgIiBvZmZzZXQ9JTA4eCAlMDh4LCByZXEuYWxpZ25t ZW50PSV4LCByZXEubWFwX2FuZF9mZW5jZWFibGU9JWQsIgorCQkgICAgICIgb2Zmc2V0PSUwOHgg JTA4eCwgcmVxLmFsaWdubWVudD0lbGx4LCByZXEubWFwX2FuZF9mZW5jZWFibGU9JWQsIgogCQkg ICAgICIgb2JqLT5tYXBfYW5kX2ZlbmNlYWJsZT0lZFxuIiwKIAkJICAgICB1cHBlcl8zMl9iaXRz KHZtYS0+bm9kZS5zdGFydCksCiAJCSAgICAgbG93ZXJfMzJfYml0cyh2bWEtPm5vZGUuc3RhcnQp LAotCQkgICAgIGFsaWdubWVudCwKKwkJICAgICAobG9uZyBsb25nKWFsaWdubWVudCwKIAkJICAg ICAhIShmbGFncyAmIFBJTl9NQVBQQUJMRSksCiAJCSAgICAgb2JqLT5tYXBfYW5kX2ZlbmNlYWJs ZSk7CiAJCXJldCA9IGk5MTVfdm1hX3VuYmluZCh2bWEpOwpAQCAtMzQ4NCwxMyArMzQ5MCw3IEBA IHZvaWQKIGk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluX3ZpZXcoc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iaiwKIAkJCQljb25zdCBzdHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcgKnZpZXcpCiB7 Ci0Jc3RydWN0IGk5MTVfdm1hICp2bWEgPSBpOTE1X2dlbV9vYmpfdG9fZ2d0dF92aWV3KG9iaiwg dmlldyk7Ci0KLQlHRU1fQlVHX09OKCF2bWEpOwotCVdBUk5fT04oaTkxNV92bWFfaXNfcGlubmVk KHZtYSkpOwotCVdBUk5fT04oIWk5MTVfZ2VtX29ial9nZ3R0X2JvdW5kX3ZpZXcob2JqLCB2aWV3 KSk7Ci0KLQlfX2k5MTVfdm1hX3VucGluKHZtYSk7CisJaTkxNV92bWFfdW5waW4oaTkxNV9nZW1f b2JqX3RvX2dndHRfdmlldyhvYmosIHZpZXcpKTsKIH0KIAogaW50CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9jb250ZXh0LmMKaW5kZXggNWVkOTE0MDZkNGU5Li5jOWI4YzJjNjI4MjggMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKQEAgLTcyMiw5ICs3MjIsOCBA QCBzdGF0aWMgaW50IGRvX3Jjc19zd2l0Y2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXEpCiAJCXJldHVybiAwOwogCiAJLyogVHJ5aW5nIHRvIHBpbiBmaXJzdCBtYWtlcyBlcnJvciBo YW5kbGluZyBlYXNpZXIuICovCi0JcmV0ID0gaTkxNV9nZW1fb2JqX2dndHRfcGluKHRvLT5lbmdp bmVbUkNTXS5zdGF0ZSwKLQkJCQkgICAgdG8tPmdndHRfYWxpZ25tZW50LAotCQkJCSAgICAwKTsK KwlyZXQgPSBpOTE1X2dlbV9vYmplY3RfZ2d0dF9waW4odG8tPmVuZ2luZVtSQ1NdLnN0YXRlLCBO VUxMLCAwLAorCQkJCSAgICAgICB0by0+Z2d0dF9hbGlnbm1lbnQsIDApOwogCWlmIChyZXQpCiAJ CXJldHVybiByZXQ7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2V4ZWNidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIu YwppbmRleCBjYzljMGU0MDczZmYuLjY5YmY3M2I1MWRmOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwpAQCAtMzQsMTAgKzM0LDEwIEBACiAjaW5jbHVkZSA8 bGludXgvZG1hX3JlbWFwcGluZy5oPgogI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KIAotI2Rl ZmluZSAgX19FWEVDX09CSkVDVF9IQVNfUElOICgxPDwzMSkKLSNkZWZpbmUgIF9fRVhFQ19PQkpF Q1RfSEFTX0ZFTkNFICgxPDwzMCkKLSNkZWZpbmUgIF9fRVhFQ19PQkpFQ1RfTkVFRFNfTUFQICgx PDwyOSkKLSNkZWZpbmUgIF9fRVhFQ19PQkpFQ1RfTkVFRFNfQklBUyAoMTw8MjgpCisjZGVmaW5l ICBfX0VYRUNfT0JKRUNUX0hBU19QSU4gKDFVPDwzMSkKKyNkZWZpbmUgIF9fRVhFQ19PQkpFQ1Rf SEFTX0ZFTkNFICgxVTw8MzApCisjZGVmaW5lICBfX0VYRUNfT0JKRUNUX05FRURTX01BUCAoMVU8 PDI5KQorI2RlZmluZSAgX19FWEVDX09CSkVDVF9ORUVEU19CSUFTICgxVTw8MjgpCiAKICNkZWZp bmUgQkFUQ0hfT0ZGU0VUX0JJQVMgKDI1NioxMDI0KQogCkBAIC0xMjYzLDcgKzEyNjMsNyBAQCBp OTE1X2dlbV9leGVjYnVmZmVyX3BhcnNlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwK IAlpZiAocmV0KQogCQlnb3RvIGVycjsKIAotCXJldCA9IGk5MTVfZ2VtX29ial9nZ3R0X3Bpbihz aGFkb3dfYmF0Y2hfb2JqLCAwLCAwKTsKKwlyZXQgPSBpOTE1X2dlbV9vYmplY3RfZ2d0dF9waW4o c2hhZG93X2JhdGNoX29iaiwgTlVMTCwgMCwgMCwgMCk7CiAJaWYgKHJldCkKIAkJZ290byBlcnI7 CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKaW5kZXggMmJkOGVjN2UxOTQ4Li41NjU1 MzU4YTYwZTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCkBAIC0xODQsMTMgKzE4 NCwzMCBAQCBzdHJ1Y3QgaTkxNV92bWEgewogCiAJc3RydWN0IGk5MTVfZ2VtX2FjdGl2ZSBsYXN0 X3JlYWRbSTkxNV9OVU1fRU5HSU5FU107CiAKLQkvKiogRmxhZ3MgYW5kIGFkZHJlc3Mgc3BhY2Ug dGhpcyBWTUEgaXMgYm91bmQgdG8gKi8KKwl1bmlvbiB7CisJCXN0cnVjdCB7CisJCQkvKioKKwkJ CSAqIEhvdyBtYW55IHVzZXJzIGhhdmUgcGlubmVkIHRoaXMgb2JqZWN0IGluIEdUVCBzcGFjZS4g VGhlIGZvbGxvd2luZworCQkJICogdXNlcnMgY2FuIGVhY2ggaG9sZCBhdCBtb3N0IG9uZSByZWZl cmVuY2U6IHB3cml0ZS9wcmVhZCwgZXhlY2J1ZmZlcgorCQkJICogKG9iamVjdHMgYXJlIG5vdCBh bGxvd2VkIG11bHRpcGxlIHRpbWVzIGZvciB0aGUgc2FtZSBiYXRjaGJ1ZmZlciksCisJCQkgKiBh bmQgdGhlIGZyYW1lYnVmZmVyIGNvZGUuIFdoZW4gc3dpdGNoaW5nL3BhZ2VmbGlwcGluZywgdGhl CisJCQkgKiBmcmFtZWJ1ZmZlciBjb2RlIGhhcyBhdCBtb3N0IHR3byBidWZmZXJzIHBpbm5lZCBw ZXIgY3J0Yy4KKwkJCSAqCisJCQkgKiBJbiB0aGUgd29yc3QgY2FzZSB0aGlzIGlzIDEgKyAxICsg MSArIDIqMiA9IDcuIFRoYXQgd291bGQgZml0IGludG8gMworCQkJICogYml0cyB3aXRoIGFic29s dXRlbHkgbm8gaGVhZHJvb20uIFNvIHVzZSA0IGJpdHMuICovCisJCQl1bnNpZ25lZCBpbnQgcGlu X2NvdW50IDogNDsKKyNkZWZpbmUgRFJNX0k5MTVfR0VNX09CSkVDVF9NQVhfUElOX0NPVU5UIDB4 ZgorCisJCQkvKiogRmxhZ3MgYW5kIGFkZHJlc3Mgc3BhY2UgdGhpcyBWTUEgaXMgYm91bmQgdG8g Ki8KICNkZWZpbmUgR0xPQkFMX0JJTkQJKDE8PDApCiAjZGVmaW5lIExPQ0FMX0JJTkQJKDE8PDEp Ci0JdW5zaWduZWQgaW50IGJvdW5kIDogNDsKLQl1bnNpZ25lZCBpbnQgYWN0aXZlIDogSTkxNV9O VU1fRU5HSU5FUzsKLQlib29sIGlzX2dndHQgOiAxOwotCWJvb2wgY2xvc2VkIDogMTsKKwkJCXVu c2lnbmVkIGludCBib3VuZCA6IDQ7CisJCQl1bnNpZ25lZCBpbnQgYWN0aXZlIDogSTkxNV9OVU1f RU5HSU5FUzsKKwkJCWJvb2wgaXNfZ2d0dCA6IDE7CisJCQlib29sIGNsb3NlZCA6IDE7CisJCX07 CisJCXVuc2lnbmVkIGludCBmbGFnczsKKwl9OwogCiAJLyoqCiAJICogU3VwcG9ydCBkaWZmZXJl bnQgR0dUVCB2aWV3cyBpbnRvIHRoZSBzYW1lIG9iamVjdC4KQEAgLTIxNSwzOSArMjMyLDI3IEBA IHN0cnVjdCBpOTE1X3ZtYSB7CiAJc3RydWN0IGhsaXN0X25vZGUgZXhlY19ub2RlOwogCXVuc2ln bmVkIGxvbmcgZXhlY19oYW5kbGU7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIg KmV4ZWNfZW50cnk7Ci0KLQkvKioKLQkgKiBIb3cgbWFueSB1c2VycyBoYXZlIHBpbm5lZCB0aGlz IG9iamVjdCBpbiBHVFQgc3BhY2UuIFRoZSBmb2xsb3dpbmcKLQkgKiB1c2VycyBjYW4gZWFjaCBo b2xkIGF0IG1vc3Qgb25lIHJlZmVyZW5jZTogcHdyaXRlL3ByZWFkLCBleGVjYnVmZmVyCi0JICog KG9iamVjdHMgYXJlIG5vdCBhbGxvd2VkIG11bHRpcGxlIHRpbWVzIGZvciB0aGUgc2FtZSBiYXRj aGJ1ZmZlciksCi0JICogYW5kIHRoZSBmcmFtZWJ1ZmZlciBjb2RlLiBXaGVuIHN3aXRjaGluZy9w YWdlZmxpcHBpbmcsIHRoZQotCSAqIGZyYW1lYnVmZmVyIGNvZGUgaGFzIGF0IG1vc3QgdHdvIGJ1 ZmZlcnMgcGlubmVkIHBlciBjcnRjLgotCSAqCi0JICogSW4gdGhlIHdvcnN0IGNhc2UgdGhpcyBp cyAxICsgMSArIDEgKyAyKjIgPSA3LiBUaGF0IHdvdWxkIGZpdCBpbnRvIDMKLQkgKiBiaXRzIHdp dGggYWJzb2x1dGVseSBubyBoZWFkcm9vbS4gU28gdXNlIDQgYml0cy4gKi8KLQl1bnNpZ25lZCBp bnQgcGluX2NvdW50OjQ7Ci0jZGVmaW5lIERSTV9JOTE1X0dFTV9PQkpFQ1RfTUFYX1BJTl9DT1VO VCAweGYKIH07CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X3ZtYV9pc19hY3RpdmUoY29uc3Qg c3RydWN0IGk5MTVfdm1hICp2bWEpCiB7Ci0JcmV0dXJuIHZtYS0+YWN0aXZlOworCXJldHVybiB2 bWEtPmZsYWdzICYgKCgoMSA8PCBJOTE1X05VTV9FTkdJTkVTKSAtIDEpIDw8IDgpOwogfQogCiBz dGF0aWMgaW5saW5lIHZvaWQgaTkxNV92bWFfc2V0X2FjdGl2ZShzdHJ1Y3QgaTkxNV92bWEgKnZt YSwgdW5zaWduZWQgZW5naW5lKQogewotCXZtYS0+YWN0aXZlIHw9IDEgPDwgZW5naW5lOworCXZt YS0+ZmxhZ3MgfD0gMHgxMDAgPDwgZW5naW5lOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgaTkx NV92bWFfdW5zZXRfYWN0aXZlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLCB1bnNpZ25lZCBlbmdpbmUp CiB7Ci0Jdm1hLT5hY3RpdmUgJj0gfigxIDw8IGVuZ2luZSk7CisJdm1hLT5mbGFncyAmPSB+KDB4 MTAwIDw8IGVuZ2luZSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X3ZtYV9oYXNfYWN0 aXZlX2VuZ2luZShjb25zdCBzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKIAkJCQkJICAgICAgdW5zaWdu ZWQgZW5naW5lKQogewotCXJldHVybiB2bWEtPmFjdGl2ZSAmICgxIDw8IGVuZ2luZSk7CisJcmV0 dXJuIHZtYS0+ZmxhZ3MgJiAoMHgxMDAgPDwgZW5naW5lKTsKIH0KIAogc3RydWN0IGk5MTVfcGFn ZV9kbWEgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVy X3N0YXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZW5kZXJfc3RhdGUuYwpp bmRleCBjMGFiZTlhMjIxMGYuLjRjZjgyNjk3YjNkYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVyX3N0YXRlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fcmVuZGVyX3N0YXRlLmMKQEAgLTcyLDcgKzcyLDcgQEAgc3RhdGljIGludCBy ZW5kZXJfc3RhdGVfaW5pdChzdHJ1Y3QgcmVuZGVyX3N0YXRlICpzbywKIAlpZiAoSVNfRVJSKHNv LT5vYmopKQogCQlyZXR1cm4gUFRSX0VSUihzby0+b2JqKTsKIAotCXJldCA9IGk5MTVfZ2VtX29i al9nZ3R0X3Bpbihzby0+b2JqLCA0MDk2LCAwKTsKKwlyZXQgPSBpOTE1X2dlbV9vYmplY3RfZ2d0 dF9waW4oc28tPm9iaiwgTlVMTCwgMCwgMCwgMCk7CiAJaWYgKHJldCkKIAkJZ290byBmcmVlX2dl bTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lv bi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCmluZGV4IGNj NDc5MmRmMjQ5ZC4uNjNlZjM0Yzc4NDk0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n dWNfc3VibWlzc2lvbi5jCkBAIC02MTMsOCArNjEzLDggQEAgc3RhdGljIHN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpnZW1fYWxsb2NhdGVfZ3VjX29iaihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAogCQlyZXR1cm4gTlVMTDsKIAl9CiAKLQlpZiAoaTkxNV9nZW1fb2JqX2dndHRfcGluKG9iaiwg UEFHRV9TSVpFLAotCQkJUElOX09GRlNFVF9CSUFTIHwgR1VDX1dPUENNX1RPUCkpIHsKKwlpZiAo aTkxNV9nZW1fb2JqZWN0X2dndHRfcGluKG9iaiwgTlVMTCwgMCwgUEFHRV9TSVpFLAorCQkJCSAg ICAgUElOX09GRlNFVF9CSUFTIHwgR1VDX1dPUENNX1RPUCkpIHsKIAkJaTkxNV9nZW1fb2JqZWN0 X3B1dChvYmopOwogCQlyZXR1cm4gTlVMTDsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9n dWNfbG9hZGVyLmMKaW5kZXggNzRhNWYxMWE1Njg5Li5iZTkzYjQ1ODk2OGEgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMKQEAgLTMyMSw3ICszMjEsNyBAQCBzdGF0aWMg aW50IGd1Y191Y29kZV94ZmVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJ cmV0dXJuIHJldDsKIAl9CiAKLQlyZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9waW4oZ3VjX2Z3LT5n dWNfZndfb2JqLCAwLCAwKTsKKwlyZXQgPSBpOTE1X2dlbV9vYmplY3RfZ2d0dF9waW4oZ3VjX2Z3 LT5ndWNfZndfb2JqLCBOVUxMLCAwLCAwLCAwKTsKIAlpZiAocmV0KSB7CiAJCURSTV9ERUJVR19E UklWRVIoInBpbiBmYWlsZWQgJWRcbiIsIHJldCk7CiAJCXJldHVybiByZXQ7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5jCmluZGV4IDk2NDEwOGNiYjljMC4uNmNkYzQyMWZkYzM3IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9scmMuYwpAQCAtNzc0LDggKzc3NCw5IEBAIHN0YXRpYyBpbnQgaW50ZWxfbHJf Y29udGV4dF9waW4oc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAlpZiAoY2UtPnBpbl9j b3VudCsrKQogCQlyZXR1cm4gMDsKIAotCXJldCA9IGk5MTVfZ2VtX29ial9nZ3R0X3BpbihjZS0+ c3RhdGUsIEdFTjhfTFJfQ09OVEVYVF9BTElHTiwKLQkJCQkgICAgUElOX09GRlNFVF9CSUFTIHwg R1VDX1dPUENNX1RPUCk7CisJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X2dndHRfcGluKGNlLT5zdGF0 ZSwgTlVMTCwKKwkJCQkgICAgICAgMCwgR0VOOF9MUl9DT05URVhUX0FMSUdOLAorCQkJCSAgICAg ICBQSU5fT0ZGU0VUX0JJQVMgfCBHVUNfV09QQ01fVE9QKTsKIAlpZiAocmV0KQogCQlnb3RvIGVy cjsKIApAQCAtMTE1NCw3ICsxMTU1LDggQEAgc3RhdGljIGludCBscmNfc2V0dXBfd2FfY3R4X29i aihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHUzMiBzaXplKQogCQlyZXR1cm4gcmV0 OwogCX0KIAotCXJldCA9IGk5MTVfZ2VtX29ial9nZ3R0X3BpbihlbmdpbmUtPndhX2N0eC5vYmos IFBBR0VfU0laRSwgMCk7CisJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X2dndHRfcGluKGVuZ2luZS0+ d2FfY3R4Lm9iaiwgTlVMTCwKKwkJCQkgICAgICAgMCwgUEFHRV9TSVpFLCAwKTsKIAlpZiAocmV0 KSB7CiAJCURSTV9ERUJVR19EUklWRVIoInBpbiBMUkMgV0EgY3R4IGJhY2tpbmcgb2JqIGZhaWxl ZDogJWRcbiIsCiAJCQkJIHJldCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9vdmVybGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vdmVybGF5LmMKaW5k ZXggNWY2NDVhZDJiYWJkLi45YjBmYjdlMjNjYmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX292ZXJsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9v dmVybGF5LmMKQEAgLTE0MTIsNyArMTQxMiw4IEBAIHZvaWQgaW50ZWxfc2V0dXBfb3ZlcmxheShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCX0KIAkJb3ZlcmxheS0+ZmxpcF9h ZGRyID0gcmVnX2JvLT5waHlzX2hhbmRsZS0+YnVzYWRkcjsKIAl9IGVsc2UgewotCQlyZXQgPSBp OTE1X2dlbV9vYmpfZ2d0dF9waW4ocmVnX2JvLCBQQUdFX1NJWkUsIFBJTl9NQVBQQUJMRSk7CisJ CXJldCA9IGk5MTVfZ2VtX29iamVjdF9nZ3R0X3BpbihyZWdfYm8sIE5VTEwsCisJCQkJCSAgICAg ICAwLCBQQUdFX1NJWkUsIFBJTl9NQVBQQUJMRSk7CiAJCWlmIChyZXQpIHsKIAkJCURSTV9FUlJP UigiZmFpbGVkIHRvIHBpbiBvdmVybGF5IHJlZ2lzdGVyIGJvXG4iKTsKIAkJCWdvdG8gb3V0X2Zy ZWVfYm87CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVy LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKaW5kZXggZDYzZTRm ZGM2MGRlLi5mODYwMzk0NTVjNWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3JpbmdidWZmZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmMKQEAgLTY0OCw3ICs2NDgsNyBAQCBpbnQgaW50ZWxfaW5pdF9waXBlX2NvbnRyb2woc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBpbnQgc2l6ZSkKIAkJZ290byBlcnI7CiAJfQog Ci0JcmV0ID0gaTkxNV9nZW1fb2JqX2dndHRfcGluKG9iaiwgNDA5NiwgUElOX0hJR0gpOworCXJl dCA9IGk5MTVfZ2VtX29iamVjdF9nZ3R0X3BpbihvYmosIE5VTEwsIDAsIDQwOTYsIFBJTl9ISUdI KTsKIAlpZiAocmV0KQogCQlnb3RvIGVycl91bnJlZjsKIApAQCAtMTgxNiw3ICsxODE2LDcgQEAg c3RhdGljIGludCBpbml0X3N0YXR1c19wYWdlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSkKIAkJCSAqIGFjdHVhbHkgbWFwIGl0KS4KIAkJCSAqLwogCQkJZmxhZ3MgfD0gUElOX01BUFBB QkxFOwotCQlyZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9waW4ob2JqLCA0MDk2LCBmbGFncyk7CisJ CXJldCA9IGk5MTVfZ2VtX29iamVjdF9nZ3R0X3BpbihvYmosIE5VTEwsIDAsIDQwOTYsIGZsYWdz KTsKIAkJaWYgKHJldCkgewogZXJyX3VucmVmOgogCQkJaTkxNV9nZW1fb2JqZWN0X3B1dChvYmop OwpAQCAtMTg2Myw3ICsxODYzLDcgQEAgaW50IGludGVsX3JpbmdfcGluKHN0cnVjdCBpbnRlbF9y aW5nICpyaW5nKQogCWludCByZXQ7CiAKIAlpZiAoSEFTX0xMQyhkZXZfcHJpdikgJiYgIW9iai0+ c3RvbGVuKSB7Ci0JCXJldCA9IGk5MTVfZ2VtX29ial9nZ3R0X3BpbihvYmosIFBBR0VfU0laRSwg ZmxhZ3MpOworCQlyZXQgPSBpOTE1X2dlbV9vYmplY3RfZ2d0dF9waW4ob2JqLCBOVUxMLCAwLCBQ QUdFX1NJWkUsIGZsYWdzKTsKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7CiAKQEAgLTE4Nzcs OCArMTg3Nyw4IEBAIGludCBpbnRlbF9yaW5nX3BpbihzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZykK IAkJCWdvdG8gZXJyX3VucGluOwogCQl9CiAJfSBlbHNlIHsKLQkJcmV0ID0gaTkxNV9nZW1fb2Jq X2dndHRfcGluKG9iaiwgUEFHRV9TSVpFLAotCQkJCQkgICAgZmxhZ3MgfCBQSU5fTUFQUEFCTEUp OworCQlyZXQgPSBpOTE1X2dlbV9vYmplY3RfZ2d0dF9waW4ob2JqLCBOVUxMLCAwLCBQQUdFX1NJ WkUsCisJCQkJCSAgICAgICBmbGFncyB8IFBJTl9NQVBQQUJMRSk7CiAJCWlmIChyZXQpCiAJCQly ZXR1cm4gcmV0OwogCkBAIC0yMDA3LDcgKzIwMDcsOCBAQCBzdGF0aWMgaW50IGludGVsX3Jpbmdf Y29udGV4dF9waW4oc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAkJcmV0dXJuIDA7CiAK IAlpZiAoY2UtPnN0YXRlKSB7Ci0JCXJldCA9IGk5MTVfZ2VtX29ial9nZ3R0X3BpbihjZS0+c3Rh dGUsIGN0eC0+Z2d0dF9hbGlnbm1lbnQsIDApOworCQlyZXQgPSBpOTE1X2dlbV9vYmplY3RfZ2d0 dF9waW4oY2UtPnN0YXRlLCBOVUxMLCAwLAorCQkJCQkgICAgICAgY3R4LT5nZ3R0X2FsaWdubWVu dCwgMCk7CiAJCWlmIChyZXQpCiAJCQlnb3RvIGVycm9yOwogCX0KQEAgLTI1NzQsNyArMjU3NSw4 IEBAIGludCBpbnRlbF9pbml0X3JlbmRlcl9yaW5nX2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQogCQkJCWk5MTUuc2VtYXBob3JlcyA9IDA7CiAJCQl9IGVsc2UgewogCQkJCWk5MTVfZ2Vt X29iamVjdF9zZXRfY2FjaGVfbGV2ZWwob2JqLCBJOTE1X0NBQ0hFX0xMQyk7Ci0JCQkJcmV0ID0g aTkxNV9nZW1fb2JqX2dndHRfcGluKG9iaiwgMCwgUElOX05PTkJMT0NLKTsKKwkJCQlyZXQgPSBp OTE1X2dlbV9vYmplY3RfZ2d0dF9waW4ob2JqLCBOVUxMLAorCQkJCQkJCSAgICAgICAwLCAwLCAw KTsKIAkJCQlpZiAocmV0ICE9IDApIHsKIAkJCQkJaTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOwog CQkJCQlEUk1fRVJST1IoIkZhaWxlZCB0byBwaW4gc2VtYXBob3JlIGJvLiBEaXNhYmxpbmcgc2Vt YXBob3Jlc1xuIik7Ci0tIAoyLjguMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cg==