From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: [PATCH 3/7] drm/i915: add dev_priv->mm.stolen_lock Date: Wed, 1 Jul 2015 17:15:22 -0300 Message-ID: <1435781726-7282-4-git-send-email-przanoni@gmail.com> References: <1435781726-7282-1-git-send-email-przanoni@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qk0-f177.google.com (mail-qk0-f177.google.com [209.85.220.177]) by gabe.freedesktop.org (Postfix) with ESMTPS id 81E1E89852 for ; Wed, 1 Jul 2015 13:16:08 -0700 (PDT) Received: by qkei195 with SMTP id i195so37999377qke.3 for ; Wed, 01 Jul 2015 13:16:07 -0700 (PDT) In-Reply-To: <1435781726-7282-1-git-send-email-przanoni@gmail.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: Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org RnJvbTogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+CgpXaGljaCBzaG91 bGQgcHJvdGVjdCBkZXZfcHJpdi0+bW0uc3RvbGVuIHVzYWdlLiBUaGlzIHdpbGwgYWxsb3cgdXMg dG8Kc2ltcGxpZnkgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHN0b2xlbiBtZW1vcnksIEZCQyBh bmQgc3RydWN0X211dGV4LgoKQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNv LnVrPgpTaWduZWQtb2ZmLWJ5OiBQYXVsbyBaYW5vbmkgPHBhdWxvLnIuemFub25pQGludGVsLmNv bT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICB8ICA3ICsrKy0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jIHwgNjkgKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMg ICAgICAgfCAyOSArKysrKysrKysrKy0tLQogMyBmaWxlcyBjaGFuZ2VkLCA3NyBpbnNlcnRpb25z KCspLCAyOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCBjOTU1MDM3 Li4wYjkwOGIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTEyNDUsNiArMTI0NSwxMCBA QCBzdHJ1Y3QgaW50ZWxfbDNfcGFyaXR5IHsKIHN0cnVjdCBpOTE1X2dlbV9tbSB7CiAJLyoqIE1l bW9yeSBhbGxvY2F0b3IgZm9yIEdUVCBzdG9sZW4gbWVtb3J5ICovCiAJc3RydWN0IGRybV9tbSBz dG9sZW47CisJLyoqIFByb3RlY3RzIHRoZSB1c2FnZSBvZiB0aGUgR1RUIHN0b2xlbiBtZW1vcnkg YWxsb2NhdG9yLiBUaGlzIGlzCisJICogYWx3YXlzIHRoZSBpbm5lciBsb2NrIHdoZW4gb3Zlcmxh cHBpbmcgd2l0aCBzdHJ1Y3RfbXV0ZXguICovCisJc3RydWN0IG11dGV4IHN0b2xlbl9sb2NrOwor CiAJLyoqIExpc3Qgb2YgYWxsIG9iamVjdHMgaW4gZ3R0X3NwYWNlLiBVc2VkIHRvIHJlc3RvcmUg Z3R0CiAJICogbWFwcGluZ3Mgb24gcmVzdW1lICovCiAJc3RydWN0IGxpc3RfaGVhZCBib3VuZF9s aXN0OwpAQCAtMzExMiw3ICszMTE2LDggQEAgc3RhdGljIGlubGluZSB2b2lkIGk5MTVfZ2VtX2No aXBzZXRfZmx1c2goc3RydWN0IGRybV9kZXZpY2UgKmRldikKIGludCBpOTE1X2dlbV9zdG9sZW5f aW5zZXJ0X25vZGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCXN0cnVj dCBkcm1fbW1fbm9kZSAqbm9kZSwgdTY0IHNpemUsCiAJCQkJdW5zaWduZWQgYWxpZ25tZW50KTsK LXZvaWQgaTkxNV9nZW1fc3RvbGVuX3JlbW92ZV9ub2RlKHN0cnVjdCBkcm1fbW1fbm9kZSAqbm9k ZSk7Cit2b2lkIGk5MTVfZ2VtX3N0b2xlbl9yZW1vdmVfbm9kZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCisJCQkJIHN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSk7CiBpbnQgaTkx NV9nZW1faW5pdF9zdG9sZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiB2b2lkIGk5MTVfZ2Vt X2NsZWFudXBfc3RvbGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f c3RvbGVuLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYwppbmRleCAw NjE5Nzg2Li5iNDMyMDg1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9zdG9sZW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYwpA QCAtNDYsNiArNDYsOCBAQCBpbnQgaTkxNV9nZW1fc3RvbGVuX2luc2VydF9ub2RlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCQlzdHJ1Y3QgZHJtX21tX25vZGUgKm5vZGUs IHU2NCBzaXplLAogCQkJCXVuc2lnbmVkIGFsaWdubWVudCkKIHsKKwlXQVJOX09OKCFtdXRleF9p c19sb2NrZWQoJmRldl9wcml2LT5tbS5zdG9sZW5fbG9jaykpOworCiAJaWYgKCFkcm1fbW1faW5p dGlhbGl6ZWQoJmRldl9wcml2LT5tbS5zdG9sZW4pKQogCQlyZXR1cm4gLUVOT0RFVjsKIApAQCAt NTMsOCArNTUsMTEgQEAgaW50IGk5MTVfZ2VtX3N0b2xlbl9pbnNlcnRfbm9kZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICBEUk1fTU1fU0VBUkNIX0RFRkFVTFQpOwog fQogCi12b2lkIGk5MTVfZ2VtX3N0b2xlbl9yZW1vdmVfbm9kZShzdHJ1Y3QgZHJtX21tX25vZGUg Km5vZGUpCit2b2lkIGk5MTVfZ2VtX3N0b2xlbl9yZW1vdmVfbm9kZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkJIHN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSkKIHsKKwlX QVJOX09OKCFtdXRleF9pc19sb2NrZWQoJmRldl9wcml2LT5tbS5zdG9sZW5fbG9jaykpOworCiAJ ZHJtX21tX3JlbW92ZV9ub2RlKG5vZGUpOwogfQogCkBAIC0xNzEsMTAgKzE3NiwxNSBAQCB2b2lk IGk5MTVfZ2VtX2NsZWFudXBfc3RvbGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAorCW11 dGV4X2xvY2soJmRldl9wcml2LT5tbS5zdG9sZW5fbG9jayk7CisKIAlpZiAoIWRybV9tbV9pbml0 aWFsaXplZCgmZGV2X3ByaXYtPm1tLnN0b2xlbikpCi0JCXJldHVybjsKKwkJZ290byBvdXQ7CiAK IAlkcm1fbW1fdGFrZWRvd24oJmRldl9wcml2LT5tbS5zdG9sZW4pOworCitvdXQ6CisJbXV0ZXhf dW5sb2NrKCZkZXZfcHJpdi0+bW0uc3RvbGVuX2xvY2spOwogfQogCiBpbnQgaTkxNV9nZW1faW5p dF9zdG9sZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldikKQEAgLTE4Myw2ICsxOTMsOCBAQCBpbnQg aTkxNV9nZW1faW5pdF9zdG9sZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAl1MzIgdG1wOwog CWludCBiaW9zX3Jlc2VydmVkID0gMDsKIAorCW11dGV4X2luaXQoJmRldl9wcml2LT5tbS5zdG9s ZW5fbG9jayk7CisKICNpZmRlZiBDT05GSUdfSU5URUxfSU9NTVUKIAlpZiAoaW50ZWxfaW9tbXVf Z2Z4X21hcHBlZCAmJiBJTlRFTF9JTkZPKGRldiktPmdlbiA8IDgpIHsKIAkJRFJNX0lORk8oIkRN QVIgYWN0aXZlLCBkaXNhYmxpbmcgdXNlIG9mIHN0b2xlbiBtZW1vcnlcbiIpOwpAQCAtMjczLDgg KzI4NSwxMCBAQCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9vYmplY3RfcHV0X3BhZ2VzX3N0b2xlbihz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogc3RhdGljIHZvaWQKIGk5MTVfZ2VtX29i amVjdF9yZWxlYXNlX3N0b2xlbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogewor CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IG9iai0+YmFzZS5kZXYtPmRldl9w cml2YXRlOworCiAJaWYgKG9iai0+c3RvbGVuKSB7Ci0JCWk5MTVfZ2VtX3N0b2xlbl9yZW1vdmVf bm9kZShvYmotPnN0b2xlbik7CisJCWk5MTVfZ2VtX3N0b2xlbl9yZW1vdmVfbm9kZShkZXZfcHJp diwgb2JqLT5zdG9sZW4pOwogCQlrZnJlZShvYmotPnN0b2xlbik7CiAJCW9iai0+c3RvbGVuID0g TlVMTDsKIAl9CkBAIC0zMjUsMjkgKzMzOSwzNiBAQCBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0 b2xlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgc2l6ZSkKIAlzdHJ1Y3QgZHJtX21tX25v ZGUgKnN0b2xlbjsKIAlpbnQgcmV0OwogCisJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPm1tLnN0b2xl bl9sb2NrKTsKKwogCWlmICghZHJtX21tX2luaXRpYWxpemVkKCZkZXZfcHJpdi0+bW0uc3RvbGVu KSkKLQkJcmV0dXJuIE5VTEw7CisJCWdvdG8gb3V0X3VubG9jazsKIAogCURSTV9ERUJVR19LTVMo ImNyZWF0aW5nIHN0b2xlbiBvYmplY3Q6IHNpemU9JXhcbiIsIHNpemUpOwogCWlmIChzaXplID09 IDApCi0JCXJldHVybiBOVUxMOworCQlnb3RvIG91dF91bmxvY2s7CiAKIAlzdG9sZW4gPSBremFs bG9jKHNpemVvZigqc3RvbGVuKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFzdG9sZW4pCi0JCXJldHVy biBOVUxMOworCQlnb3RvIG91dF91bmxvY2s7CiAKIAlyZXQgPSBpOTE1X2dlbV9zdG9sZW5faW5z ZXJ0X25vZGUoZGV2X3ByaXYsIHN0b2xlbiwgc2l6ZSwgNDA5Nik7Ci0JaWYgKHJldCkgewotCQlr ZnJlZShzdG9sZW4pOwotCQlyZXR1cm4gTlVMTDsKLQl9CisJaWYgKHJldCkKKwkJZ290byBvdXRf ZnJlZTsKIAogCW9iaiA9IF9pOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihkZXYsIHN0b2xl bik7Ci0JaWYgKG9iaikKLQkJcmV0dXJuIG9iajsKKwlpZiAoIW9iaikKKwkJZ290byBvdXRfbm9k ZTsKIAotCWk5MTVfZ2VtX3N0b2xlbl9yZW1vdmVfbm9kZShzdG9sZW4pOworCW11dGV4X3VubG9j aygmZGV2X3ByaXYtPm1tLnN0b2xlbl9sb2NrKTsKKwlyZXR1cm4gb2JqOworCitvdXRfbm9kZToK KwlpOTE1X2dlbV9zdG9sZW5fcmVtb3ZlX25vZGUoZGV2X3ByaXYsIHN0b2xlbik7CitvdXRfZnJl ZToKIAlrZnJlZShzdG9sZW4pOworb3V0X3VubG9jazoKKwltdXRleF91bmxvY2soJmRldl9wcml2 LT5tbS5zdG9sZW5fbG9jayk7CiAJcmV0dXJuIE5VTEw7CiB9CiAKQEAgLTM2NCw4ICszODUsMTAg QEAgaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW5fZm9yX3ByZWFsbG9jYXRlZChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwogCWludCByZXQ7CiAKKwlt dXRleF9sb2NrKCZkZXZfcHJpdi0+bW0uc3RvbGVuX2xvY2spOworCiAJaWYgKCFkcm1fbW1faW5p dGlhbGl6ZWQoJmRldl9wcml2LT5tbS5zdG9sZW4pKQotCQlyZXR1cm4gTlVMTDsKKwkJZ290byBl cnJfdW5sb2NrOwogCiAJRFJNX0RFQlVHX0tNUygiY3JlYXRpbmcgcHJlYWxsb2NhdGVkIHN0b2xl biBvYmplY3Q6IHN0b2xlbl9vZmZzZXQ9JXgsIGd0dF9vZmZzZXQ9JXgsIHNpemU9JXhcbiIsCiAJ CQlzdG9sZW5fb2Zmc2V0LCBndHRfb2Zmc2V0LCBzaXplKTsKQEAgLTM3MywxMSArMzk2LDExIEBA IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuX2Zvcl9wcmVhbGxvY2F0ZWQoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKIAkvKiBLSVNTIGFuZCBleHBlY3QgZXZlcnl0aGluZyB0byBiZSBwYWdl LWFsaWduZWQgKi8KIAlpZiAoV0FSTl9PTihzaXplID09IDApIHx8IFdBUk5fT04oc2l6ZSAmIDQw OTUpIHx8CiAJICAgIFdBUk5fT04oc3RvbGVuX29mZnNldCAmIDQwOTUpKQotCQlyZXR1cm4gTlVM TDsKKwkJZ290byBlcnJfdW5sb2NrOwogCiAJc3RvbGVuID0ga3phbGxvYyhzaXplb2YoKnN0b2xl biksIEdGUF9LRVJORUwpOwogCWlmICghc3RvbGVuKQotCQlyZXR1cm4gTlVMTDsKKwkJZ290byBl cnJfdW5sb2NrOwogCiAJc3RvbGVuLT5zdGFydCA9IHN0b2xlbl9vZmZzZXQ7CiAJc3RvbGVuLT5z aXplID0gc2l6ZTsKQEAgLTM4NSwyMCArNDA4LDIwIEBAIGk5MTVfZ2VtX29iamVjdF9jcmVhdGVf c3RvbGVuX2Zvcl9wcmVhbGxvY2F0ZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpZiAocmV0 KSB7CiAJCURSTV9ERUJVR19LTVMoImZhaWxlZCB0byBhbGxvY2F0ZSBzdG9sZW4gc3BhY2VcbiIp OwogCQlrZnJlZShzdG9sZW4pOwotCQlyZXR1cm4gTlVMTDsKKwkJZ290byBlcnJfdW5sb2NrOwog CX0KIAogCW9iaiA9IF9pOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihkZXYsIHN0b2xlbik7 CiAJaWYgKG9iaiA9PSBOVUxMKSB7CiAJCURSTV9ERUJVR19LTVMoImZhaWxlZCB0byBhbGxvY2F0 ZSBzdG9sZW4gb2JqZWN0XG4iKTsKLQkJaTkxNV9nZW1fc3RvbGVuX3JlbW92ZV9ub2RlKHN0b2xl bik7CisJCWk5MTVfZ2VtX3N0b2xlbl9yZW1vdmVfbm9kZShkZXZfcHJpdiwgc3RvbGVuKTsKIAkJ a2ZyZWUoc3RvbGVuKTsKLQkJcmV0dXJuIE5VTEw7CisJCWdvdG8gZXJyX3VubG9jazsKIAl9CiAK IAkvKiBTb21lIG9iamVjdHMganVzdCBuZWVkIHBoeXNpY2FsIG1lbSBmcm9tIHN0b2xlbiBzcGFj ZSAqLwogCWlmIChndHRfb2Zmc2V0ID09IEk5MTVfR1RUX09GRlNFVF9OT05FKQotCQlyZXR1cm4g b2JqOworCQlnb3RvIHN1Y2Nlc3M7CiAKIAl2bWEgPSBpOTE1X2dlbV9vYmpfbG9va3VwX29yX2Ny ZWF0ZV92bWEob2JqLCBnZ3R0KTsKIAlpZiAoSVNfRVJSKHZtYSkpIHsKQEAgLTQyNywxMyArNDUw LDE3IEBAIGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuX2Zvcl9wcmVhbGxvY2F0ZWQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKIAlsaXN0X2FkZF90YWlsKCZ2bWEtPm1tX2xpc3QsICZnZ3R0 LT5pbmFjdGl2ZV9saXN0KTsKIAlpOTE1X2dlbV9vYmplY3RfcGluX3BhZ2VzKG9iaik7CiAKK3N1 Y2Nlc3M6CisJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+bW0uc3RvbGVuX2xvY2spOwogCXJldHVy biBvYmo7CiAKIGVycl92bWE6CiAJaTkxNV9nZW1fdm1hX2Rlc3Ryb3kodm1hKTsKIGVycl9vdXQ6 Ci0JaTkxNV9nZW1fc3RvbGVuX3JlbW92ZV9ub2RlKHN0b2xlbik7CisJaTkxNV9nZW1fc3RvbGVu X3JlbW92ZV9ub2RlKGRldl9wcml2LCBzdG9sZW4pOwogCWtmcmVlKHN0b2xlbik7CiAJZHJtX2dl bV9vYmplY3RfdW5yZWZlcmVuY2UoJm9iai0+YmFzZSk7CitlcnJfdW5sb2NrOgorCW11dGV4X3Vu bG9jaygmZGV2X3ByaXYtPm1tLnN0b2xlbl9sb2NrKTsKIAlyZXR1cm4gTlVMTDsKIH0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZmJjLmMKaW5kZXggYTkxYmY4Mi4uZGNkODNhYiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZmJjLmMKQEAgLTYwMSw0MCArNjAxLDU3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZmJjX2Fs bG9jX2NmYihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgc2l6ZSwgaW50IGZiX2NwcCkKIAog ZXJyX2ZiOgogCWtmcmVlKGNvbXByZXNzZWRfbGxiKTsKLQlpOTE1X2dlbV9zdG9sZW5fcmVtb3Zl X25vZGUoJmRldl9wcml2LT5mYmMuY29tcHJlc3NlZF9mYik7CisJaTkxNV9nZW1fc3RvbGVuX3Jl bW92ZV9ub2RlKGRldl9wcml2LCAmZGV2X3ByaXYtPmZiYy5jb21wcmVzc2VkX2ZiKTsKIGVycl9s bGI6CiAJcHJfaW5mb19vbmNlKCJkcm06IG5vdCBlbm91Z2ggc3RvbGVuIHNwYWNlIGZvciBjb21w cmVzc2VkIGJ1ZmZlciAobmVlZCAlZCBtb3JlIGJ5dGVzKSwgZGlzYWJsaW5nLiBIaW50OiB5b3Ug bWF5IGJlIGFibGUgdG8gaW5jcmVhc2Ugc3RvbGVuIG1lbW9yeSBzaXplIGluIHRoZSBCSU9TIHRv IGF2b2lkIHRoaXMuXG4iLCBzaXplKTsKIAlyZXR1cm4gLUVOT1NQQzsKIH0KIAotdm9pZCBpbnRl bF9mYmNfY2xlYW51cF9jZmIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3N0YXRpYyB2b2lkIF9f aW50ZWxfZmJjX2NsZWFudXBfY2ZiKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAogCWlmIChk ZXZfcHJpdi0+ZmJjLnVuY29tcHJlc3NlZF9zaXplID09IDApCiAJCXJldHVybjsKIAotCWk5MTVf Z2VtX3N0b2xlbl9yZW1vdmVfbm9kZSgmZGV2X3ByaXYtPmZiYy5jb21wcmVzc2VkX2ZiKTsKKwlp OTE1X2dlbV9zdG9sZW5fcmVtb3ZlX25vZGUoZGV2X3ByaXYsICZkZXZfcHJpdi0+ZmJjLmNvbXBy ZXNzZWRfZmIpOwogCiAJaWYgKGRldl9wcml2LT5mYmMuY29tcHJlc3NlZF9sbGIpIHsKLQkJaTkx NV9nZW1fc3RvbGVuX3JlbW92ZV9ub2RlKGRldl9wcml2LT5mYmMuY29tcHJlc3NlZF9sbGIpOwor CQlpOTE1X2dlbV9zdG9sZW5fcmVtb3ZlX25vZGUoZGV2X3ByaXYsCisJCQkJCSAgICBkZXZfcHJp di0+ZmJjLmNvbXByZXNzZWRfbGxiKTsKIAkJa2ZyZWUoZGV2X3ByaXYtPmZiYy5jb21wcmVzc2Vk X2xsYik7CiAJfQogCiAJZGV2X3ByaXYtPmZiYy51bmNvbXByZXNzZWRfc2l6ZSA9IDA7CiB9CiAK K3ZvaWQgaW50ZWxfZmJjX2NsZWFudXBfY2ZiKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwor CW11dGV4X2xvY2soJmRldl9wcml2LT5tbS5zdG9sZW5fbG9jayk7CisJX19pbnRlbF9mYmNfY2xl YW51cF9jZmIoZGV2KTsKKwltdXRleF91bmxvY2soJmRldl9wcml2LT5tbS5zdG9sZW5fbG9jayk7 Cit9CisKIHN0YXRpYyBpbnQgaW50ZWxfZmJjX3NldHVwX2NmYihzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBpbnQgc2l6ZSwgaW50IGZiX2NwcCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWludCByZXQ7CiAKIAlpZiAoc2l6ZSA8PSBk ZXZfcHJpdi0+ZmJjLnVuY29tcHJlc3NlZF9zaXplKQogCQlyZXR1cm4gMDsKIAorCW11dGV4X2xv Y2soJmRldl9wcml2LT5tbS5zdG9sZW5fbG9jayk7CisKIAkvKiBSZWxlYXNlIGFueSBjdXJyZW50 IGJsb2NrICovCi0JaW50ZWxfZmJjX2NsZWFudXBfY2ZiKGRldik7CisJX19pbnRlbF9mYmNfY2xl YW51cF9jZmIoZGV2KTsKKworCXJldCA9IGludGVsX2ZiY19hbGxvY19jZmIoZGV2LCBzaXplLCBm Yl9jcHApOworCisJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+bW0uc3RvbGVuX2xvY2spOwogCi0J cmV0dXJuIGludGVsX2ZiY19hbGxvY19jZmIoZGV2LCBzaXplLCBmYl9jcHApOworCXJldHVybiBy ZXQ7CiB9CiAKIC8qKgotLSAKMi4xLjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cg==