From mboxrd@z Thu Jan 1 00:00:00 1970 From: ankitprasad.r.sharma@intel.com Subject: [PATCH 5/8] drm/i915: Propagating correct error codes to the userspace Date: Tue, 15 Dec 2015 16:26:05 +0530 Message-ID: <1450176968-22110-6-git-send-email-ankitprasad.r.sharma@intel.com> References: <1450176968-22110-1-git-send-email-ankitprasad.r.sharma@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id ED6096E6B0 for ; Tue, 15 Dec 2015 03:15:23 -0800 (PST) In-Reply-To: <1450176968-22110-1-git-send-email-ankitprasad.r.sharma@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: Ankitprasad Sharma , akash.goel@intel.com, shashidhar.hiremath@intel.com List-Id: intel-gfx@lists.freedesktop.org RnJvbTogQW5raXRwcmFzYWQgU2hhcm1hIDxhbmtpdHByYXNhZC5yLnNoYXJtYUBpbnRlbC5jb20+ CgpQcm9wYWdhdGluZyBjb3JyZWN0IGVycm9yIGNvZGVzIHRvIHVzZXJzcGFjZSBieSB1c2luZyBF UlJfUFRSIGFuZApQVFJfRVJSIG1hY3JvcyBmb3Igc3RvbGVuIG1lbW9yeSBiYXNlZCBvYmplY3Qg YWxsb2NhdGlvbi4gV2UgZ2VuZXJhbGx5CnJldHVybiAtRU5PTUVNIHRvIHRoZSB1c2VyIHdoZW5l dmVyIHRoZXJlIGlzIGEgZmFpbHVyZSBpbiBvYmplY3QKYWxsb2NhdGlvbi4gVGhpcyBwYXRjaCBo ZWxwcyB1c2VyIHRvIGlkZW50aWZ5IHRoZSBjb3JyZWN0IHJlYXNvbiBmb3IgdGhlCmZhaWx1cmUg YW5kIG5vdCBqdXN0IC1FTk9NRU0gZWFjaCB0aW1lLgoKdjI6IE1vdmVkIHRoZSBwYXRjaCB1cCBp biB0aGUgc2VyaWVzLCBhZGRlZCBlcnJvciBwcm9wYWdhdGlvbiBmb3IKaTkxNV9nZW1fYWxsb2Nf b2JqZWN0IHRvbyAoQ2hyaXMpCgp2MzogUmVtb3ZlZCBzdG9yaW5nIG9mIGVycm9yIHBvaW50ZXIg aW5zaWRlIHN0cnVjdHMsIENvcnJlY3RlZCBlcnJvcgpwcm9wYWdhdGlvbiBpbiBjYWxsZXIgZnVu Y3Rpb25zIChDaHJpcykKCnY0OiBSZW1vdmUgYXNzaWdubWVudHMgaW5zaWRlIHRoZSBwcmVkaWNh dGUgKENocmlzKQoKdjU6IFJlbW92ZWQgdW5uZWNlc3NhcnkgaW5pdGlhbGl6YXRpb25zLCB1cGRh dGVkIGtlcm5lbGRvYyBmb3IKaTkxNV9ndWNfY2xpZW50LCBjb3JyZWN0ZWQgbWlzc2VkIGVycm9y IHBvaW50ZXIgaGFuZGxpbmcgKFR2cnRrbykKCnY2OiBVc2UgRVJSX0NBU1QvdGVtcG9yYXJ5IHZh cmlhYmxlIHRvIGF2b2lkIHN0b3JpbmcgaW52YWxpZCBwb2ludGVyCmluIGEgY29tbW9uIGZpZWxk IChDaHJpcykKClNpZ25lZC1vZmYtYnk6IEFua2l0cHJhc2FkIFNoYXJtYSA8YW5raXRwcmFzYWQu ci5zaGFybWFAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMg ICAgICAgICAgICAgIHwgMTYgKysrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9iYXRjaF9wb29sLmMgICB8ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f Y29udGV4dC5jICAgICAgfCAgNCArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3Jl bmRlcl9zdGF0ZS5jIHwgIDcgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3Rv bGVuLmMgICAgICAgfCA1MyArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMgICB8IDUyICsrKysrKysrKysrKysrKysr LS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICAgICAgICAg fCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYyAgICAgICAgICAgfCAg NiArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgICAgICB8IDEw ICsrKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheS5jICAgICAgICAgfCAg NCArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgICAgICAgICAgICAgIHwgIDcg KystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jICAgICAgfCAyMSAr KysrKy0tLS0tLQogMTIgZmlsZXMgY2hhbmdlZCwgMTA2IGluc2VydGlvbnMoKyksIDgwIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IDAyMGJiMjkuLjc0MGE1YTEgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAtNDA0LDkgKzQwNCw5IEBAIGk5MTVfZ2VtX2NyZWF0 ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCiAJaWYgKGZsYWdzICYgSTkxNV9DUkVBVEVfUExBQ0VN RU5UX1NUT0xFTikgewogCQltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CiAJCW9iaiA9 IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuKGRldiwgc2l6ZSk7Ci0JCWlmICghb2JqKSB7 CisJCWlmIChJU19FUlIob2JqKSkgewogCQkJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRl eCk7Ci0JCQlyZXR1cm4gLUVOT01FTTsKKwkJCXJldHVybiBQVFJfRVJSKG9iaik7CiAJCX0KIAog CQkvKiBBbHdheXMgY2xlYXIgZnJlc2ggYnVmZmVycyBiZWZvcmUgaGFuZGluZyB0byB1c2Vyc3Bh Y2UgKi8KQEAgLTQyMiw4ICs0MjIsOCBAQCBpOTE1X2dlbV9jcmVhdGUoc3RydWN0IGRybV9maWxl ICpmaWxlLAogCQlvYmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCBzaXplKTsKIAl9CiAK LQlpZiAob2JqID09IE5VTEwpCi0JCXJldHVybiAtRU5PTUVNOworCWlmIChJU19FUlIob2JqKSkK KwkJcmV0dXJuIFBUUl9FUlIob2JqKTsKIAogCXJldCA9IGRybV9nZW1faGFuZGxlX2NyZWF0ZShm aWxlLCAmb2JqLT5iYXNlLCAmaGFuZGxlKTsKIAkvKiBkcm9wIHJlZmVyZW5jZSBmcm9tIGFsbG9j YXRlIC0gaGFuZGxlIGhvbGRzIGl0IG5vdyAqLwpAQCAtNDQ0NiwxNCArNDQ0NiwxNiBAQCBzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKIAlzdHJ1Y3Qg YWRkcmVzc19zcGFjZSAqbWFwcGluZzsKIAlnZnBfdCBtYXNrOworCWludCByZXQ7CiAKIAlvYmog PSBpOTE1X2dlbV9vYmplY3RfYWxsb2MoZGV2KTsKIAlpZiAob2JqID09IE5VTEwpCi0JCXJldHVy biBOVUxMOworCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAotCWlmIChkcm1fZ2VtX29iamVj dF9pbml0KGRldiwgJm9iai0+YmFzZSwgc2l6ZSkgIT0gMCkgeworCXJldCA9IGRybV9nZW1fb2Jq ZWN0X2luaXQoZGV2LCAmb2JqLT5iYXNlLCBzaXplKTsKKwlpZiAocmV0KSB7CiAJCWk5MTVfZ2Vt X29iamVjdF9mcmVlKG9iaik7Ci0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BUUihyZXQp OwogCX0KIAogCW1hc2sgPSBHRlBfSElHSFVTRVIgfCBfX0dGUF9SRUNMQUlNQUJMRTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2JhdGNoX3Bvb2wuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2JhdGNoX3Bvb2wuYwppbmRleCA3YmYyZjNmLi5kNzlj YWEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9iYXRjaF9wb29s LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fYmF0Y2hfcG9vbC5jCkBAIC0x MzUsOCArMTM1LDggQEAgaTkxNV9nZW1fYmF0Y2hfcG9vbF9nZXQoc3RydWN0IGk5MTVfZ2VtX2Jh dGNoX3Bvb2wgKnBvb2wsCiAJCWludCByZXQ7CiAKIAkJb2JqID0gaTkxNV9nZW1fYWxsb2Nfb2Jq ZWN0KHBvb2wtPmRldiwgc2l6ZSk7Ci0JCWlmIChvYmogPT0gTlVMTCkKLQkJCXJldHVybiBFUlJf UFRSKC1FTk9NRU0pOworCQlpZiAoSVNfRVJSKG9iaikpCisJCQlyZXR1cm4gb2JqOwogCiAJCXJl dCA9IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXMob2JqKTsKIAkJaWYgKHJldCkKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwppbmRleCA0Mzc2MWM1Li45NzU0ODk0IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCkBAIC0xNzksOCArMTc5LDggQEAg aTkxNV9nZW1fYWxsb2NfY29udGV4dF9vYmooc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc2l6ZV90 IHNpemUpCiAJaW50IHJldDsKIAogCW9iaiA9IGk5MTVfZ2VtX2FsbG9jX29iamVjdChkZXYsIHNp emUpOwotCWlmIChvYmogPT0gTlVMTCkKLQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisJaWYg KElTX0VSUihvYmopKQorCQlyZXR1cm4gb2JqOwogCiAJLyoKIAkgKiBUcnkgdG8gbWFrZSB0aGUg Y29udGV4dCB1dGlsaXplIEwzIGFzIHdlbGwgYXMgTExDLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVyX3N0YXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9yZW5kZXJfc3RhdGUuYwppbmRleCA1MDI2YTYyLi4yYmZkZDQ5IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZW5kZXJfc3RhdGUuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZW5kZXJfc3RhdGUuYwpAQCAtNTgsOCArNTgs MTEgQEAgc3RhdGljIGludCByZW5kZXJfc3RhdGVfaW5pdChzdHJ1Y3QgcmVuZGVyX3N0YXRlICpz bywgc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlzby0+b2Jq ID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KGRldiwgNDA5Nik7Ci0JaWYgKHNvLT5vYmogPT0gTlVM TCkKLQkJcmV0dXJuIC1FTk9NRU07CisJaWYgKElTX0VSUihzby0+b2JqKSkgeworCQlyZXQgPSBQ VFJfRVJSKHNvLT5vYmopOworCQlzby0+b2JqID0gTlVMTDsKKwkJcmV0dXJuIHJldDsKKwl9CiAK IAlyZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9waW4oc28tPm9iaiwgNDA5NiwgMCk7CiAJaWYgKHJl dCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMKaW5kZXggMTdkNjc5ZS4uODY5 YmEyNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMKQEAgLTQ5Miw2ICs0 OTIsNyBAQCBpOTE1X3BhZ2VzX2NyZWF0ZV9mb3Jfc3RvbGVuKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0 ZTsKIAlzdHJ1Y3Qgc2dfdGFibGUgKnN0OwogCXN0cnVjdCBzY2F0dGVybGlzdCAqc2c7CisJaW50 IHJldDsKIAogCURSTV9ERUJVR19EUklWRVIoIm9mZnNldD0weCV4LCBzaXplPSVkXG4iLCBvZmZz ZXQsIHNpemUpOwogCUJVR19PTihvZmZzZXQgPiBkZXZfcHJpdi0+Z3R0LnN0b2xlbl9zaXplIC0g c2l6ZSk7CkBAIC01MDMsMTEgKzUwNCwxMiBAQCBpOTE1X3BhZ2VzX2NyZWF0ZV9mb3Jfc3RvbGVu KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIAlzdCA9IGttYWxsb2Moc2l6ZW9mKCpzdCksIEdG UF9LRVJORUwpOwogCWlmIChzdCA9PSBOVUxMKQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVS Ul9QVFIoLUVOT01FTSk7CiAKLQlpZiAoc2dfYWxsb2NfdGFibGUoc3QsIDEsIEdGUF9LRVJORUwp KSB7CisJcmV0ID0gc2dfYWxsb2NfdGFibGUoc3QsIDEsIEdGUF9LRVJORUwpOworCWlmIChyZXQp IHsKIAkJa2ZyZWUoc3QpOwotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIocmV0KTsK IAl9CiAKIAlzZyA9IHN0LT5zZ2w7CkBAIC01NTYsMTggKzU1OCwyMyBAQCBfaTkxNV9nZW1fb2Jq ZWN0X2NyZWF0ZV9zdG9sZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCSAgICAgICBzdHJ1 Y3QgZHJtX21tX25vZGUgKnN0b2xlbikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqOworCXN0cnVjdCBzZ190YWJsZSAqcGFnZXM7CiAKIAlvYmogPSBpOTE1X2dlbV9vYmplY3Rf YWxsb2MoZGV2KTsKIAlpZiAob2JqID09IE5VTEwpCi0JCXJldHVybiBOVUxMOworCQlyZXR1cm4g RVJSX1BUUigtRU5PTUVNKTsKIAogCWRybV9nZW1fcHJpdmF0ZV9vYmplY3RfaW5pdChkZXYsICZv YmotPmJhc2UsIHN0b2xlbi0+c2l6ZSk7CiAJaTkxNV9nZW1fb2JqZWN0X2luaXQob2JqLCAmaTkx NV9nZW1fb2JqZWN0X3N0b2xlbl9vcHMpOwogCi0Jb2JqLT5wYWdlcyA9IGk5MTVfcGFnZXNfY3Jl YXRlX2Zvcl9zdG9sZW4oZGV2LAotCQkJCQkJICBzdG9sZW4tPnN0YXJ0LCBzdG9sZW4tPnNpemUp OwotCWlmIChvYmotPnBhZ2VzID09IE5VTEwpCi0JCWdvdG8gY2xlYW51cDsKKwlwYWdlcyA9IGk5 MTVfcGFnZXNfY3JlYXRlX2Zvcl9zdG9sZW4oZGV2LAorCQkJCQkgICAgIHN0b2xlbi0+c3RhcnQs IHN0b2xlbi0+c2l6ZSk7CisJaWYgKElTX0VSUihwYWdlcykpIHsKKwkJaTkxNV9nZW1fb2JqZWN0 X2ZyZWUob2JqKTsKKwkJcmV0dXJuIEVSUl9DQVNUKHBhZ2VzKTsKKwl9CisKKwlvYmotPnBhZ2Vz ID0gcGFnZXM7CiAKIAlvYmotPmdldF9wYWdlLnNnID0gb2JqLT5wYWdlcy0+c2dsOwogCW9iai0+ Z2V0X3BhZ2UubGFzdCA9IDA7CkBAIC01NzksMTAgKzU4Niw2IEBAIF9pOTE1X2dlbV9vYmplY3Rf Y3JlYXRlX3N0b2xlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCW9iai0+Y2FjaGVfbGV2ZWwg PSBIQVNfTExDKGRldikgPyBJOTE1X0NBQ0hFX0xMQyA6IEk5MTVfQ0FDSEVfTk9ORTsKIAogCXJl dHVybiBvYmo7Ci0KLWNsZWFudXA6Ci0JaTkxNV9nZW1fb2JqZWN0X2ZyZWUob2JqKTsKLQlyZXR1 cm4gTlVMTDsKIH0KIAogc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKgpAQCAtNTk0LDI5ICs1 OTcsMjkgQEAgaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdTY0IHNpemUpCiAJaW50IHJldDsKIAogCWlmICghZHJtX21tX2luaXRpYWxpemVkKCZk ZXZfcHJpdi0+bW0uc3RvbGVuKSkKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBFUlJfUFRSKC1F Tk9ERVYpOwogCiAJRFJNX0RFQlVHX0tNUygiY3JlYXRpbmcgc3RvbGVuIG9iamVjdDogc2l6ZT0l bGx4XG4iLCBzaXplKTsKIAlpZiAoc2l6ZSA9PSAwKQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJu IEVSUl9QVFIoLUVJTlZBTCk7CiAKIAlzdG9sZW4gPSBremFsbG9jKHNpemVvZigqc3RvbGVuKSwg R0ZQX0tFUk5FTCk7CiAJaWYgKCFzdG9sZW4pCi0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJS X1BUUigtRU5PTUVNKTsKIAogCXJldCA9IGk5MTVfZ2VtX3N0b2xlbl9pbnNlcnRfbm9kZShkZXZf cHJpdiwgc3RvbGVuLCBzaXplLCA0MDk2KTsKIAlpZiAocmV0KSB7CiAJCWtmcmVlKHN0b2xlbik7 Ci0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BUUihyZXQpOwogCX0KIAogCW9iaiA9IF9p OTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihkZXYsIHN0b2xlbik7Ci0JaWYgKG9iaikKKwlp ZiAoIUlTX0VSUihvYmopKQogCQlyZXR1cm4gb2JqOwogCiAJaTkxNV9nZW1fc3RvbGVuX3JlbW92 ZV9ub2RlKGRldl9wcml2LCBzdG9sZW4pOwogCWtmcmVlKHN0b2xlbik7Ci0JcmV0dXJuIE5VTEw7 CisJcmV0dXJuIG9iajsKIH0KIAogc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKgpAQCAtNjMz LDcgKzYzNiw3IEBAIGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuX2Zvcl9wcmVhbGxvY2F0 ZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpbnQgcmV0OwogCiAJaWYgKCFkcm1fbW1faW5p dGlhbGl6ZWQoJmRldl9wcml2LT5tbS5zdG9sZW4pKQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJu IEVSUl9QVFIoLUVOT0RFVik7CiAKIAlEUk1fREVCVUdfS01TKCJjcmVhdGluZyBwcmVhbGxvY2F0 ZWQgc3RvbGVuIG9iamVjdDogc3RvbGVuX29mZnNldD0leCwgZ3R0X29mZnNldD0leCwgc2l6ZT0l eFxuIiwKIAkJCXN0b2xlbl9vZmZzZXQsIGd0dF9vZmZzZXQsIHNpemUpOwpAQCAtNjQxLDExICs2 NDQsMTEgQEAgaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW5fZm9yX3ByZWFsbG9jYXRlZChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCS8qIEtJU1MgYW5kIGV4cGVjdCBldmVyeXRoaW5nIHRv IGJlIHBhZ2UtYWxpZ25lZCAqLwogCWlmIChXQVJOX09OKHNpemUgPT0gMCkgfHwgV0FSTl9PTihz aXplICYgNDA5NSkgfHwKIAkgICAgV0FSTl9PTihzdG9sZW5fb2Zmc2V0ICYgNDA5NSkpCi0JCXJl dHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKIAogCXN0b2xlbiA9IGt6YWxs b2Moc2l6ZW9mKCpzdG9sZW4pLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXN0b2xlbikKLQkJcmV0dXJu IE5VTEw7CisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwogCiAJc3RvbGVuLT5zdGFydCA9IHN0 b2xlbl9vZmZzZXQ7CiAJc3RvbGVuLT5zaXplID0gc2l6ZTsKQEAgLTY1NSwxNSArNjU4LDE1IEBA IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuX2Zvcl9wcmVhbGxvY2F0ZWQoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKIAlpZiAocmV0KSB7CiAJCURSTV9ERUJVR19LTVMoImZhaWxlZCB0byBh bGxvY2F0ZSBzdG9sZW4gc3BhY2VcbiIpOwogCQlrZnJlZShzdG9sZW4pOwotCQlyZXR1cm4gTlVM TDsKKwkJcmV0dXJuIEVSUl9QVFIocmV0KTsKIAl9CiAKIAlvYmogPSBfaTkxNV9nZW1fb2JqZWN0 X2NyZWF0ZV9zdG9sZW4oZGV2LCBzdG9sZW4pOwotCWlmIChvYmogPT0gTlVMTCkgeworCWlmIChJ U19FUlIob2JqKSkgewogCQlEUk1fREVCVUdfS01TKCJmYWlsZWQgdG8gYWxsb2NhdGUgc3RvbGVu IG9iamVjdFxuIik7CiAJCWk5MTVfZ2VtX3N0b2xlbl9yZW1vdmVfbm9kZShkZXZfcHJpdiwgc3Rv bGVuKTsKIAkJa2ZyZWUoc3RvbGVuKTsKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBvYmo7CiAJ fQogCiAJLyogU29tZSBvYmplY3RzIGp1c3QgbmVlZCBwaHlzaWNhbCBtZW0gZnJvbSBzdG9sZW4g c3BhY2UgKi8KQEAgLTcwMSw1ICs3MDQsNSBAQCBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xl bl9mb3JfcHJlYWxsb2NhdGVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIGVycjoKIAlkcm1f Z2VtX29iamVjdF91bnJlZmVyZW5jZSgmb2JqLT5iYXNlKTsKLQlyZXR1cm4gTlVMTDsKKwlyZXR1 cm4gRVJSX1BUUihyZXQpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9ndWNfc3VibWlzc2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlz c2lvbi5jCmluZGV4IDBkMjM3ODViLi5hYzA0MmM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9ndWNfc3VibWlzc2lvbi5jCkBAIC02MjksMjcgKzYyOSwzMCBAQCBpbnQgaTkxNV9ndWNf c3VibWl0KHN0cnVjdCBpOTE1X2d1Y19jbGllbnQgKmNsaWVudCwKICAqIG9iamVjdCBuZWVkcyB0 byBiZSBwaW5uZWQgbGlmZXRpbWUuIEFsc28gd2UgbXVzdCBwaW4gaXQgdG8gZ3R0IHNwYWNlIG90 aGVyCiAgKiB0aGFuIFswLCBHVUNfV09QQ01fVE9QKSBiZWNhdXNlIHRoaXMgcmFuZ2UgaXMgcmVz ZXJ2ZWQgaW5zaWRlIEd1Qy4KICAqCi0gKiBSZXR1cm46CUEgZHJtX2k5MTVfZ2VtX29iamVjdCBp ZiBzdWNjZXNzZnVsLCBvdGhlcndpc2UgTlVMTC4KKyAqIFJldHVybjoJQSBkcm1faTkxNV9nZW1f b2JqZWN0IGlmIHN1Y2Nlc3NmdWwsIG90aGVyd2lzZSBlcnJvciBwb2ludGVyLgogICovCiBzdGF0 aWMgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmdlbV9hbGxvY2F0ZV9ndWNfb2JqKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJCQkJdTMyIHNpemUpCiB7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqOworCWludCByZXQ7CiAKIAlvYmogPSBpOTE1X2dlbV9hbGxvY19vYmpl Y3QoZGV2LCBzaXplKTsKLQlpZiAoIW9iaikKLQkJcmV0dXJuIE5VTEw7CisJaWYgKElTX0VSUihv YmopKQorCQlyZXR1cm4gb2JqOwogCi0JaWYgKGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXMob2Jq KSkgeworCXJldCA9IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXMob2JqKTsKKwlpZiAocmV0KSB7 CiAJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZvYmotPmJhc2UpOwotCQlyZXR1cm4gTlVM TDsKKwkJcmV0dXJuIEVSUl9QVFIocmV0KTsKIAl9CiAKLQlpZiAoaTkxNV9nZW1fb2JqX2dndHRf cGluKG9iaiwgUEFHRV9TSVpFLAotCQkJUElOX09GRlNFVF9CSUFTIHwgR1VDX1dPUENNX1RPUCkp IHsKKwlyZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9waW4ob2JqLCBQQUdFX1NJWkUsCisJCQkJICAg IFBJTl9PRkZTRVRfQklBUyB8IEdVQ19XT1BDTV9UT1ApOworCWlmIChyZXQpIHsKIAkJZHJtX2dl bV9vYmplY3RfdW5yZWZlcmVuY2UoJm9iai0+YmFzZSk7Ci0JCXJldHVybiBOVUxMOworCQlyZXR1 cm4gRVJSX1BUUihyZXQpOwogCX0KIAogCS8qIEludmFsaWRhdGUgR3VDIFRMQiB0byBsZXQgR3VD IHRha2UgdGhlIGxhdGVzdCB1cGRhdGVzIHRvIEdUVC4gKi8KQEAgLTcxNyw3ICs3MjAsNyBAQCBz dGF0aWMgdm9pZCBndWNfY2xpZW50X2ZyZWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKICAqIEBj dHg6CXRoZSBjb250ZXh0IHRoYXQgb3ducyB0aGUgY2xpZW50ICh3ZSB1c2UgdGhlIGRlZmF1bHQg cmVuZGVyCiAgKiAJCWNvbnRleHQpCiAgKgotICogUmV0dXJuOglBbiBpOTE1X2d1Y19jbGllbnQg b2JqZWN0IGlmIHN1Y2Nlc3MuCisgKiBSZXR1cm46CUFuIGk5MTVfZ3VjX2NsaWVudCBvYmplY3Qg aWYgc3VjY2VzcywgZXJyb3IgcG9pbnRlciBvbiBmYWlsdXJlLgogICovCiBzdGF0aWMgc3RydWN0 IGk5MTVfZ3VjX2NsaWVudCAqZ3VjX2NsaWVudF9hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAogCQkJCQkJdWludDMyX3QgcHJpb3JpdHksCkBAIC03MjcsMTAgKzczMCwxMSBAQCBzdGF0aWMg c3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqZ3VjX2NsaWVudF9hbGxvYyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3By aXZhdGU7CiAJc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmRldl9wcml2LT5ndWM7CiAJc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKKwlpbnQgcmV0OwogCiAJY2xpZW50ID0ga3phbGxv YyhzaXplb2YoKmNsaWVudCksIEdGUF9LRVJORUwpOwogCWlmICghY2xpZW50KQotCQlyZXR1cm4g TlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKIAljbGllbnQtPmRvb3JiZWxsX2lk ID0gR1VDX0lOVkFMSURfRE9PUkJFTExfSUQ7CiAJY2xpZW50LT5wcmlvcml0eSA9IHByaW9yaXR5 OwpAQCAtNzQxLDEzICs3NDUsMTYgQEAgc3RhdGljIHN0cnVjdCBpOTE1X2d1Y19jbGllbnQgKmd1 Y19jbGllbnRfYWxsb2Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCUdVQ19NQVhfR1BVX0NP TlRFWFRTLCBHRlBfS0VSTkVMKTsKIAlpZiAoY2xpZW50LT5jdHhfaW5kZXggPj0gR1VDX01BWF9H UFVfQ09OVEVYVFMpIHsKIAkJY2xpZW50LT5jdHhfaW5kZXggPSBHVUNfSU5WQUxJRF9DVFhfSUQ7 CisJCXJldCA9IC1FSU5WQUw7CiAJCWdvdG8gZXJyOwogCX0KIAogCS8qIFRoZSBmaXJzdCBwYWdl IGlzIGRvb3JiZWxsL3Byb2NfZGVzYy4gVHdvIGZvbGxvd2VkIHBhZ2VzIGFyZSB3cS4gKi8KIAlv YmogPSBnZW1fYWxsb2NhdGVfZ3VjX29iaihkZXYsIEdVQ19EQl9TSVpFICsgR1VDX1dRX1NJWkUp OwotCWlmICghb2JqKQorCWlmIChJU19FUlIob2JqKSkgeworCQlyZXQgPSBQVFJfRVJSKG9iaik7 CiAJCWdvdG8gZXJyOworCX0KIAogCWNsaWVudC0+Y2xpZW50X29iaiA9IG9iajsKIAljbGllbnQt PndxX29mZnNldCA9IEdVQ19EQl9TSVpFOwpAQCAtNzY2LDkgKzc3MywxMSBAQCBzdGF0aWMgc3Ry dWN0IGk5MTVfZ3VjX2NsaWVudCAqZ3VjX2NsaWVudF9hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAogCQljbGllbnQtPnByb2NfZGVzY19vZmZzZXQgPSAoR1VDX0RCX1NJWkUgLyAyKTsKIAog CWNsaWVudC0+ZG9vcmJlbGxfaWQgPSBhc3NpZ25fZG9vcmJlbGwoZ3VjLCBjbGllbnQtPnByaW9y aXR5KTsKLQlpZiAoY2xpZW50LT5kb29yYmVsbF9pZCA9PSBHVUNfSU5WQUxJRF9ET09SQkVMTF9J RCkKKwlpZiAoY2xpZW50LT5kb29yYmVsbF9pZCA9PSBHVUNfSU5WQUxJRF9ET09SQkVMTF9JRCkg ewogCQkvKiBYWFg6IGV2aWN0IGEgZG9vcmJlbGwgaW5zdGVhZCAqLworCQlyZXQgPSAtRUlOVkFM OwogCQlnb3RvIGVycjsKKwl9CiAKIAlndWNfaW5pdF9wcm9jX2Rlc2MoZ3VjLCBjbGllbnQpOwog CWd1Y19pbml0X2N0eF9kZXNjKGd1YywgY2xpZW50KTsKQEAgLTc3Niw3ICs3ODUsOCBAQCBzdGF0 aWMgc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqZ3VjX2NsaWVudF9hbGxvYyhzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAogCiAJLyogWFhYOiBBbnkgY2FjaGUgZmx1c2hlcyBuZWVkZWQ/IEdlbmVyYWwg ZG9tYWluIG1nbXQgY2FsbHM/ICovCiAKLQlpZiAoaG9zdDJndWNfYWxsb2NhdGVfZG9vcmJlbGwo Z3VjLCBjbGllbnQpKQorCXJldCA9IGhvc3QyZ3VjX2FsbG9jYXRlX2Rvb3JiZWxsKGd1YywgY2xp ZW50KTsKKwlpZiAocmV0KQogCQlnb3RvIGVycjsKIAogCURSTV9ERUJVR19EUklWRVIoIm5ldyBw cmlvcml0eSAldSBjbGllbnQgJXA6IGN0eF9pbmRleCAldSBkYl9pZCAldVxuIiwKQEAgLTc4OCw3 ICs3OTgsNyBAQCBlcnI6CiAJRFJNX0VSUk9SKCJGQUlMRUQgdG8gY3JlYXRlIHByaW9yaXR5ICV1 IEd1QyBjbGllbnQhXG4iLCBwcmlvcml0eSk7CiAKIAlndWNfY2xpZW50X2ZyZWUoZGV2LCBjbGll bnQpOwotCXJldHVybiBOVUxMOworCXJldHVybiBFUlJfUFRSKHJldCk7CiB9CiAKIHN0YXRpYyB2 b2lkIGd1Y19jcmVhdGVfbG9nKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKQEAgLTgxMyw3ICs4MjMs NyBAQCBzdGF0aWMgdm9pZCBndWNfY3JlYXRlX2xvZyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCiAJ b2JqID0gZ3VjLT5sb2dfb2JqOwogCWlmICghb2JqKSB7CiAJCW9iaiA9IGdlbV9hbGxvY2F0ZV9n dWNfb2JqKGRldl9wcml2LT5kZXYsIHNpemUpOwotCQlpZiAoIW9iaikgeworCQlpZiAoSVNfRVJS KG9iaikpIHsKIAkJCS8qIGxvZ2dpbmcgd2lsbCBiZSBvZmYgKi8KIAkJCWk5MTUuZ3VjX2xvZ19s ZXZlbCA9IC0xOwogCQkJcmV0dXJuOwpAQCAtODQzLDYgKzg1Myw3IEBAIGludCBpOTE1X2d1Y19z dWJtaXNzaW9uX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAljb25zdCBzaXplX3QgcG9v bHNpemUgPSBHVUNfTUFYX0dQVV9DT05URVhUUyAqIGN0eHNpemU7CiAJY29uc3Qgc2l6ZV90IGdl bXNpemUgPSByb3VuZF91cChwb29sc2l6ZSwgUEFHRV9TSVpFKTsKIAlzdHJ1Y3QgaW50ZWxfZ3Vj ICpndWMgPSAmZGV2X3ByaXYtPmd1YzsKKwlpbnQgcmV0OwogCiAJaWYgKCFpOTE1LmVuYWJsZV9n dWNfc3VibWlzc2lvbikKIAkJcmV0dXJuIDA7IC8qIG5vdCBlbmFibGVkICAqLwpAQCAtODUxLDgg Kzg2MiwxMSBAQCBpbnQgaTkxNV9ndWNfc3VibWlzc2lvbl9pbml0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCiAJCXJldHVybiAwOyAvKiBhbHJlYWR5IGFsbG9jYXRlZCAqLwogCiAJZ3VjLT5jdHhf cG9vbF9vYmogPSBnZW1fYWxsb2NhdGVfZ3VjX29iaihkZXZfcHJpdi0+ZGV2LCBnZW1zaXplKTsK LQlpZiAoIWd1Yy0+Y3R4X3Bvb2xfb2JqKQotCQlyZXR1cm4gLUVOT01FTTsKKwlpZiAoSVNfRVJS KGd1Yy0+Y3R4X3Bvb2xfb2JqKSkgeworCQlyZXQgPSBQVFJfRVJSKGd1Yy0+Y3R4X3Bvb2xfb2Jq KTsKKwkJZ3VjLT5jdHhfcG9vbF9vYmogPSBOVUxMOworCQlyZXR1cm4gcmV0OworCX0KIAogCWlk YV9pbml0KCZndWMtPmN0eF9pZHMpOwogCkBAIC04NzAsOSArODg0LDkgQEAgaW50IGk5MTVfZ3Vj X3N1Ym1pc3Npb25fZW5hYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAkvKiBjbGllbnQg Zm9yIGV4ZWNidWYgc3VibWlzc2lvbiAqLwogCWNsaWVudCA9IGd1Y19jbGllbnRfYWxsb2MoZGV2 LCBHVUNfQ1RYX1BSSU9SSVRZX0tNRF9OT1JNQUwsIGN0eCk7Ci0JaWYgKCFjbGllbnQpIHsKKwlp ZiAoSVNfRVJSKGNsaWVudCkpIHsKIAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIGV4ZWNi dWYgZ3VjX2NsaWVudFxuIik7Ci0JCXJldHVybiAtRU5PTUVNOworCQlyZXR1cm4gUFRSX0VSUihj bGllbnQpOwogCX0KIAogCWd1Yy0+ZXhlY2J1Zl9jbGllbnQgPSBjbGllbnQ7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggZGQwZTk2Ni4uMDA2ZDQzYSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtMjU0Myw3ICsyNTQzLDcgQEAgaW50ZWxfYWxsb2Nf aW5pdGlhbF9wbGFuZV9vYmooc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJCQkJCQkJICAgICBi YXNlX2FsaWduZWQsCiAJCQkJCQkJICAgICBiYXNlX2FsaWduZWQsCiAJCQkJCQkJICAgICBzaXpl X2FsaWduZWQpOwotCWlmICghb2JqKQorCWlmIChJU19FUlIob2JqKSkKIAkJcmV0dXJuIGZhbHNl OwogCiAJb2JqLT50aWxpbmdfbW9kZSA9IHBsYW5lX2NvbmZpZy0+dGlsaW5nOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2ZiZGV2LmMKaW5kZXggN2NjZGU1OC4uYjJmMTM0YSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9mYmRldi5jCkBAIC0xNDgsMTEgKzE0OCwxMSBAQCBzdGF0aWMgaW50IGludGVsZmJf YWxsb2Moc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKIAkgKiBmZWF0dXJlcy4gKi8KIAlp ZiAoc2l6ZSAqIDIgPCBkZXZfcHJpdi0+Z3R0LnN0b2xlbl91c2FibGVfc2l6ZSkKIAkJb2JqID0g aTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oZGV2LCBzaXplKTsKLQlpZiAob2JqID09IE5V TEwpCisJaWYgKElTX0VSUl9PUl9OVUxMKG9iaikpCiAJCW9iaiA9IGk5MTVfZ2VtX2FsbG9jX29i amVjdChkZXYsIHNpemUpOwotCWlmICghb2JqKSB7CisJaWYgKElTX0VSUihvYmopKSB7CiAJCURS TV9FUlJPUigiZmFpbGVkIHRvIGFsbG9jYXRlIGZyYW1lYnVmZmVyXG4iKTsKLQkJcmV0ID0gLUVO T01FTTsKKwkJcmV0ID0gUFRSX0VSUihvYmopOwogCQlnb3RvIG91dDsKIAl9CiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbHJjLmMKaW5kZXggNGViYWZhYi4uNWNhNGMwNiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMKQEAgLTEzNzEsOSArMTM3MSwxMSBAQCBzdGF0aWMgaW50IGxyY19zZXR1cF93YV9j dHhfb2JqKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIHUzMiBzaXplKQogCWludCByZXQ7 CiAKIAlyaW5nLT53YV9jdHgub2JqID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KHJpbmctPmRldiwg UEFHRV9BTElHTihzaXplKSk7Ci0JaWYgKCFyaW5nLT53YV9jdHgub2JqKSB7CisJaWYgKElTX0VS UihyaW5nLT53YV9jdHgub2JqKSkgewogCQlEUk1fREVCVUdfRFJJVkVSKCJhbGxvYyBMUkMgV0Eg Y3R4IGJhY2tpbmcgb2JqIGZhaWxlZC5cbiIpOwotCQlyZXR1cm4gLUVOT01FTTsKKwkJcmV0ID0g UFRSX0VSUihyaW5nLT53YV9jdHgub2JqKTsKKwkJcmluZy0+d2FfY3R4Lm9iaiA9IE5VTEw7CisJ CXJldHVybiByZXQ7CiAJfQogCiAJcmV0ID0gaTkxNV9nZW1fb2JqX2dndHRfcGluKHJpbmctPndh X2N0eC5vYmosIFBBR0VfU0laRSwgMCk7CkBAIC0yNDU2LDkgKzI0NTgsOSBAQCBpbnQgaW50ZWxf bHJfY29udGV4dF9kZWZlcnJlZF9hbGxvYyhzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAogCWNv bnRleHRfc2l6ZSArPSBQQUdFX1NJWkUgKiBMUkNfUFBIV1NQX1BOOwogCiAJY3R4X29iaiA9IGk5 MTVfZ2VtX2FsbG9jX29iamVjdChkZXYsIGNvbnRleHRfc2l6ZSk7Ci0JaWYgKCFjdHhfb2JqKSB7 CisJaWYgKElTX0VSUihjdHhfb2JqKSkgewogCQlEUk1fREVCVUdfRFJJVkVSKCJBbGxvYyBMUkMg YmFja2luZyBvYmogZmFpbGVkLlxuIik7Ci0JCXJldHVybiAtRU5PTUVNOworCQlyZXR1cm4gUFRS X0VSUihjdHhfb2JqKTsKIAl9CiAKIAlyaW5nYnVmID0gaW50ZWxfZW5naW5lX2NyZWF0ZV9yaW5n YnVmZmVyKHJpbmcsIDQgKiBQQUdFX1NJWkUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfb3ZlcmxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3Zlcmxh eS5jCmluZGV4IDc2ZjE5ODAuLjNhNjU4NTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX292ZXJsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vdmVy bGF5LmMKQEAgLTEzOTIsOSArMTM5Miw5IEBAIHZvaWQgaW50ZWxfc2V0dXBfb3ZlcmxheShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQogCXJlZ19ibyA9IE5VTEw7CiAJaWYgKCFPVkVSTEFZX05FRURT X1BIWVNJQ0FMKGRldikpCiAJCXJlZ19ibyA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVu KGRldiwgUEFHRV9TSVpFKTsKLQlpZiAocmVnX2JvID09IE5VTEwpCisJaWYgKElTX0VSUl9PUl9O VUxMKHJlZ19ibykpCiAJCXJlZ19ibyA9IGk5MTVfZ2VtX2FsbG9jX29iamVjdChkZXYsIFBBR0Vf U0laRSk7Ci0JaWYgKHJlZ19ibyA9PSBOVUxMKQorCWlmIChJU19FUlIocmVnX2JvKSkKIAkJZ290 byBvdXRfZnJlZTsKIAlvdmVybGF5LT5yZWdfYm8gPSByZWdfYm87CiAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wbS5jCmluZGV4IDk5NjhjNjYuLjBhZmI4MTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpA QCAtNTE3NCwxMCArNTE3NCwxMSBAQCBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X3NldHVwX3BjdHgo c3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJCQkJCQkJICAgICAgcGNicl9vZmZzZXQsCiAJCQkJ CQkJCSAgICAgIEk5MTVfR1RUX09GRlNFVF9OT05FLAogCQkJCQkJCQkgICAgICBwY3R4X3NpemUp OwotCQlnb3RvIG91dDsKKwkJaWYgKCFJU19FUlIocGN0eCkpCisJCQlnb3RvIG91dDsKIAl9CiAK LQlEUk1fREVCVUdfRFJJVkVSKCJCSU9TIGRpZG4ndCBzZXQgdXAgUENCUiwgZml4aW5nIHVwXG4i KTsKKwlEUk1fREVCVUdfRFJJVkVSKCJCSU9TIGRpZG4ndCBzZXQgdXAgUENCUiBvciBwcmVhbGxv YyBmYWlsZWQsIGZpeGluZyB1cFxuIik7CiAKIAkvKgogCSAqIEZyb20gdGhlIEd1bml0IHJlZ2lz dGVyIEhBUzoKQEAgLTUxODgsNyArNTE4OSw3IEBAIHN0YXRpYyB2b2lkIHZhbGxleXZpZXdfc2V0 dXBfcGN0eChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCSAqIG1lbW9yeSwgb3IgYW55IG90aGVy IHJlbGV2YW50IHJhbmdlcy4KIAkgKi8KIAlwY3R4ID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9z dG9sZW4oZGV2LCBwY3R4X3NpemUpOwotCWlmICghcGN0eCkgeworCWlmIChJU19FUlIocGN0eCkp IHsKIAkJRFJNX0RFQlVHKCJub3QgZW5vdWdoIHN0b2xlbiBzcGFjZSBmb3IgUENUWCwgZGlzYWJs aW5nXG4iKTsKIAkJcmV0dXJuOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuYwppbmRleCBlNTM1OWViLi41NmQ4Mzc1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5jCkBAIC02NzksOSArNjc5LDEwIEBAIGludGVsX2luaXRfcGlwZV9jb250cm9s KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCiAJV0FSTl9PTihyaW5nLT5zY3JhdGNoLm9i aik7CiAKIAlyaW5nLT5zY3JhdGNoLm9iaiA9IGk5MTVfZ2VtX2FsbG9jX29iamVjdChyaW5nLT5k ZXYsIDQwOTYpOwotCWlmIChyaW5nLT5zY3JhdGNoLm9iaiA9PSBOVUxMKSB7CisJaWYgKElTX0VS UihyaW5nLT5zY3JhdGNoLm9iaikpIHsKIAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYWxsb2NhdGUg c2Vxbm8gcGFnZVxuIik7Ci0JCXJldCA9IC1FTk9NRU07CisJCXJldCA9IFBUUl9FUlIocmluZy0+ c2NyYXRjaC5vYmopOworCQlyaW5nLT5zY3JhdGNoLm9iaiA9IE5VTEw7CiAJCWdvdG8gZXJyOwog CX0KIApAQCAtMTkzOSw5ICsxOTQwLDkgQEAgc3RhdGljIGludCBpbml0X3N0YXR1c19wYWdlKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCiAJCWludCByZXQ7CiAKIAkJb2JqID0gaTkxNV9n ZW1fYWxsb2Nfb2JqZWN0KHJpbmctPmRldiwgNDA5Nik7Ci0JCWlmIChvYmogPT0gTlVMTCkgewor CQlpZiAoSVNfRVJSKG9iaikpIHsKIAkJCURSTV9FUlJPUigiRmFpbGVkIHRvIGFsbG9jYXRlIHN0 YXR1cyBwYWdlXG4iKTsKLQkJCXJldHVybiAtRU5PTUVNOworCQkJcmV0dXJuIFBUUl9FUlIob2Jq KTsKIAkJfQogCiAJCXJldCA9IGk5MTVfZ2VtX29iamVjdF9zZXRfY2FjaGVfbGV2ZWwob2JqLCBJ OTE1X0NBQ0hFX0xMQyk7CkBAIC0yMDg4LDEwICsyMDg5LDEwIEBAIHN0YXRpYyBpbnQgaW50ZWxf YWxsb2NfcmluZ2J1ZmZlcl9vYmooc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlvYmogPSBOVUxM OwogCWlmICghSEFTX0xMQyhkZXYpKQogCQlvYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0 b2xlbihkZXYsIHJpbmdidWYtPnNpemUpOwotCWlmIChvYmogPT0gTlVMTCkKKwlpZiAoSVNfRVJS X09SX05VTEwob2JqKSkKIAkJb2JqID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KGRldiwgcmluZ2J1 Zi0+c2l6ZSk7Ci0JaWYgKG9iaiA9PSBOVUxMKQotCQlyZXR1cm4gLUVOT01FTTsKKwlpZiAoSVNf RVJSKG9iaikpCisJCXJldHVybiBQVFJfRVJSKG9iaik7CiAKIAkvKiBtYXJrIHJpbmcgYnVmZmVy cyBhcyByZWFkLW9ubHkgZnJvbSBHUFUgc2lkZSBieSBkZWZhdWx0ICovCiAJb2JqLT5ndF9ybyA9 IDE7CkBAIC0yNjgyLDcgKzI2ODMsNyBAQCBpbnQgaW50ZWxfaW5pdF9yZW5kZXJfcmluZ19idWZm ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0g OCkgewogCQlpZiAoaTkxNV9zZW1hcGhvcmVfaXNfZW5hYmxlZChkZXYpKSB7CiAJCQlvYmogPSBp OTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCA0MDk2KTsKLQkJCWlmIChvYmogPT0gTlVMTCkgewor CQkJaWYgKElTX0VSUihvYmopKSB7CiAJCQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYWxsb2NhdGUg c2VtYXBob3JlIGJvLiBEaXNhYmxpbmcgc2VtYXBob3Jlc1xuIik7CiAJCQkJaTkxNS5zZW1hcGhv cmVzID0gMDsKIAkJCX0gZWxzZSB7CkBAIC0yNzg5LDkgKzI3OTAsOSBAQCBpbnQgaW50ZWxfaW5p dF9yZW5kZXJfcmluZ19idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkvKiBXb3JrYXJv dW5kIGJhdGNoYnVmZmVyIHRvIGNvbWJhdCBDUyB0bGIgYnVnLiAqLwogCWlmIChIQVNfQlJPS0VO X0NTX1RMQihkZXYpKSB7CiAJCW9iaiA9IGk5MTVfZ2VtX2FsbG9jX29iamVjdChkZXYsIEk4MzBf V0FfU0laRSk7Ci0JCWlmIChvYmogPT0gTlVMTCkgeworCQlpZiAoSVNfRVJSKG9iaikpIHsKIAkJ CURSTV9FUlJPUigiRmFpbGVkIHRvIGFsbG9jYXRlIGJhdGNoIGJvXG4iKTsKLQkJCXJldHVybiAt RU5PTUVNOworCQkJcmV0dXJuIFBUUl9FUlIob2JqKTsKIAkJfQogCiAJCXJldCA9IGk5MTVfZ2Vt X29ial9nZ3R0X3BpbihvYmosIDAsIDApOwotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==