From mboxrd@z Thu Jan 1 00:00:00 1970 From: ankitprasad.r.sharma@intel.com Subject: [PATCH 06/10] drm/i915: Propagating correct error codes to the userspace Date: Tue, 26 Jan 2016 01:13:32 +0530 Message-ID: <1453751016-8713-7-git-send-email-ankitprasad.r.sharma@intel.com> References: <1453751016-8713-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 9DDAB6E546 for ; Mon, 25 Jan 2016 12:05:20 -0800 (PST) In-Reply-To: <1453751016-8713-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: akash.goel@intel.com, shashidhar.hiremath@intel.com, Ankitprasad Sharma List-Id: intel-gfx@lists.freedesktop.org RnJvbTogQW5raXRwcmFzYWQgU2hhcm1hIDxhbmtpdHByYXNhZC5yLnNoYXJtYUBpbnRlbC5jb20+ CgpQcm9wYWdhdGluZyBjb3JyZWN0IGVycm9yIGNvZGVzIHRvIHVzZXJzcGFjZSBieSB1c2luZyBF UlJfUFRSIGFuZApQVFJfRVJSIG1hY3JvcyBmb3Igc3RvbGVuIG1lbW9yeSBiYXNlZCBvYmplY3Qg YWxsb2NhdGlvbi4gV2UgZ2VuZXJhbGx5CnJldHVybiAtRU5PTUVNIHRvIHRoZSB1c2VyIHdoZW5l dmVyIHRoZXJlIGlzIGEgZmFpbHVyZSBpbiBvYmplY3QKYWxsb2NhdGlvbi4gVGhpcyBwYXRjaCBo ZWxwcyB1c2VyIHRvIGlkZW50aWZ5IHRoZSBjb3JyZWN0IHJlYXNvbiBmb3IgdGhlCmZhaWx1cmUg YW5kIG5vdCBqdXN0IC1FTk9NRU0gZWFjaCB0aW1lLgoKdjI6IE1vdmVkIHRoZSBwYXRjaCB1cCBp biB0aGUgc2VyaWVzLCBhZGRlZCBlcnJvciBwcm9wYWdhdGlvbiBmb3IKaTkxNV9nZW1fYWxsb2Nf b2JqZWN0IHRvbyAoQ2hyaXMpCgp2MzogUmVtb3ZlZCBzdG9yaW5nIG9mIGVycm9yIHBvaW50ZXIg aW5zaWRlIHN0cnVjdHMsIENvcnJlY3RlZCBlcnJvcgpwcm9wYWdhdGlvbiBpbiBjYWxsZXIgZnVu Y3Rpb25zIChDaHJpcykKCnY0OiBSZW1vdmUgYXNzaWdubWVudHMgaW5zaWRlIHRoZSBwcmVkaWNh dGUgKENocmlzKQoKdjU6IFJlbW92ZWQgdW5uZWNlc3NhcnkgaW5pdGlhbGl6YXRpb25zLCB1cGRh dGVkIGtlcm5lbGRvYyBmb3IKaTkxNV9ndWNfY2xpZW50LCBjb3JyZWN0ZWQgbWlzc2VkIGVycm9y IHBvaW50ZXIgaGFuZGxpbmcgKFR2cnRrbykKCnY2OiBVc2UgRVJSX0NBU1QvdGVtcG9yYXJ5IHZh cmlhYmxlIHRvIGF2b2lkIHN0b3JpbmcgaW52YWxpZCBwb2ludGVyCmluIGEgY29tbW9uIGZpZWxk IChDaHJpcykKCnY3OiBSZXNvbHZlZCByZWJhc2luZyBjb25mbGljdHMgKEFua2l0KQoKdjg6IFJl bW92ZWQgcmVkdW5kYW50IGNvZGUgKENocmlzKQoKU2lnbmVkLW9mZi1ieTogQW5raXRwcmFzYWQg U2hhcm1hIDxhbmtpdHByYXNhZC5yLnNoYXJtYUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICAgICAgfCAyMyArKysrKystLS0tLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2JhdGNoX3Bvb2wuYyAgIHwgIDQgKy0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgICAgICB8ICA0ICstLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVyX3N0YXRlLmMgfCAgNyArKy0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYyAgICAgICB8IDUzICsrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyAg IHwgNTIgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9mYmRldi5jICAgICAgICAgICB8ICA2ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5jICAgICAgICAgICAgIHwgMTAgKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9vdmVybGF5LmMgICAgICAgICB8ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cG0uYyAgICAgICAgICAgICAgfCAgNyArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y aW5nYnVmZmVyLmMgICAgICB8IDIxICsrKysrLS0tLS0tCiAxMiBmaWxlcyBjaGFuZ2VkLCAxMTAg aW5zZXJ0aW9ucygrKSwgODMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5k ZXggNTM1ZDg3MS4uYjNlNjJiNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC0zOTcsMTkg KzM5NywxOCBAQCBpOTE1X2dlbV9hbGxvY19vYmplY3Rfc3RvbGVuKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHNpemVfdCBzaXplKQogCiAJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwog CW9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuKGRldiwgc2l6ZSk7Ci0JaWYgKCFv YmopIHsKLQkJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Ci0JCXJldHVybiBOVUxM OwotCX0KKwlpZiAoSVNfRVJSKG9iaikpCisJCWdvdG8gb3V0OwogCiAJLyogQWx3YXlzIGNsZWFy IGZyZXNoIGJ1ZmZlcnMgYmVmb3JlIGhhbmRpbmcgdG8gdXNlcnNwYWNlICovCiAJcmV0ID0gaTkx NV9nZW1fb2JqZWN0X2NsZWFyKG9iaik7CiAJaWYgKHJldCkgewogCQlkcm1fZ2VtX29iamVjdF91 bnJlZmVyZW5jZSgmb2JqLT5iYXNlKTsKLQkJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRl eCk7Ci0JCXJldHVybiBOVUxMOworCQlvYmogPSBFUlJfUFRSKHJldCk7CisJCWdvdG8gb3V0Owog CX0KIAorb3V0OgogCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCXJldHVybiBv Ymo7CiB9CkBAIC00NDUsOCArNDQ0LDggQEAgaTkxNV9nZW1fY3JlYXRlKHN0cnVjdCBkcm1fZmls ZSAqZmlsZSwKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCi0JaWYgKG9iaiA9PSBOVUxMKQotCQly ZXR1cm4gLUVOT01FTTsKKwlpZiAoSVNfRVJSKG9iaikpCisJCXJldHVybiBQVFJfRVJSKG9iaik7 CiAKIAlyZXQgPSBkcm1fZ2VtX2hhbmRsZV9jcmVhdGUoZmlsZSwgJm9iai0+YmFzZSwgJmhhbmRs ZSk7CiAJLyogZHJvcCByZWZlcmVuY2UgZnJvbSBhbGxvY2F0ZSAtIGhhbmRsZSBob2xkcyBpdCBu b3cgKi8KQEAgLTQ1NjMsMTQgKzQ1NjIsMTYgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Kmk5MTVfZ2VtX2FsbG9jX29iamVjdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCXN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CiAJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmc7 CiAJZ2ZwX3QgbWFzazsKKwlpbnQgcmV0OwogCiAJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2FsbG9j KGRldik7CiAJaWYgKG9iaiA9PSBOVUxMKQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9Q VFIoLUVOT01FTSk7CiAKLQlpZiAoZHJtX2dlbV9vYmplY3RfaW5pdChkZXYsICZvYmotPmJhc2Us IHNpemUpICE9IDApIHsKKwlyZXQgPSBkcm1fZ2VtX29iamVjdF9pbml0KGRldiwgJm9iai0+YmFz ZSwgc2l6ZSk7CisJaWYgKHJldCkgewogCQlpOTE1X2dlbV9vYmplY3RfZnJlZShvYmopOwotCQly ZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIocmV0KTsKIAl9CiAKIAltYXNrID0gR0ZQX0hJ R0hVU0VSIHwgX19HRlBfUkVDTEFJTUFCTEU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9iYXRjaF9wb29sLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9iYXRjaF9wb29sLmMKaW5kZXggN2JmMmYzZi4uZDc5Y2FhMiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fYmF0Y2hfcG9vbC5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2JhdGNoX3Bvb2wuYwpAQCAtMTM1LDggKzEzNSw4IEBAIGk5MTVfZ2Vt X2JhdGNoX3Bvb2xfZ2V0KHN0cnVjdCBpOTE1X2dlbV9iYXRjaF9wb29sICpwb29sLAogCQlpbnQg cmV0OwogCiAJCW9iaiA9IGk5MTVfZ2VtX2FsbG9jX29iamVjdChwb29sLT5kZXYsIHNpemUpOwot CQlpZiAob2JqID09IE5VTEwpCi0JCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKwkJaWYgKElT X0VSUihvYmopKQorCQkJcmV0dXJuIG9iajsKIAogCQlyZXQgPSBpOTE1X2dlbV9vYmplY3RfZ2V0 X3BhZ2VzKG9iaik7CiAJCWlmIChyZXQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250 ZXh0LmMKaW5kZXggNmE0ZjY0Yi4uZTcxNmYyNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2NvbnRleHQuYwpAQCAtMTc5LDggKzE3OSw4IEBAIGk5MTVfZ2VtX2FsbG9jX2NvbnRleHRf b2JqKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHNpemVfdCBzaXplKQogCWludCByZXQ7CiAKIAlv YmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCBzaXplKTsKLQlpZiAob2JqID09IE5VTEwp Ci0JCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCWlmIChJU19FUlIob2JqKSkKKwkJcmV0dXJu IG9iajsKIAogCS8qCiAJICogVHJ5IHRvIG1ha2UgdGhlIGNvbnRleHQgdXRpbGl6ZSBMMyBhcyB3 ZWxsIGFzIExMQy4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3Jl bmRlcl9zdGF0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVyX3N0YXRl LmMKaW5kZXggZmM3ZTZkNS4uYTJjM2Y0NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fcmVuZGVyX3N0YXRlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fcmVuZGVyX3N0YXRlLmMKQEAgLTU4LDggKzU4LDExIEBAIHN0YXRpYyBpbnQgcmVuZGVy X3N0YXRlX2luaXQoc3RydWN0IHJlbmRlcl9zdGF0ZSAqc28sIHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJc28tPm9iaiA9IGk5MTVfZ2VtX2FsbG9jX29iamVj dChkZXYsIDQwOTYpOwotCWlmIChzby0+b2JqID09IE5VTEwpCi0JCXJldHVybiAtRU5PTUVNOwor CWlmIChJU19FUlIoc28tPm9iaikpIHsKKwkJcmV0ID0gUFRSX0VSUihzby0+b2JqKTsKKwkJc28t Pm9iaiA9IE5VTEw7CisJCXJldHVybiByZXQ7CisJfQogCiAJcmV0ID0gaTkxNV9nZW1fb2JqX2dn dHRfcGluKHNvLT5vYmosIDQwOTYsIDApOwogCWlmIChyZXQpCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX3N0b2xlbi5jCmluZGV4IDgyMDMxNTcuLjRkYWYyOGYgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX3N0b2xlbi5jCkBAIC00OTIsNiArNDkyLDcgQEAgaTkxNV9wYWdlc19jcmVh dGVfZm9yX3N0b2xlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IHNnX3RhYmxlICpz dDsKIAlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnOworCWludCByZXQ7CiAKIAlEUk1fREVCVUdfRFJJ VkVSKCJvZmZzZXQ9MHgleCwgc2l6ZT0lZFxuIiwgb2Zmc2V0LCBzaXplKTsKIAlCVUdfT04ob2Zm c2V0ID4gZGV2X3ByaXYtPmd0dC5zdG9sZW5fc2l6ZSAtIHNpemUpOwpAQCAtNTAzLDExICs1MDQs MTIgQEAgaTkxNV9wYWdlc19jcmVhdGVfZm9yX3N0b2xlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAogCiAJc3QgPSBrbWFsbG9jKHNpemVvZigqc3QpLCBHRlBfS0VSTkVMKTsKIAlpZiAoc3QgPT0g TlVMTCkKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwogCi0JaWYg KHNnX2FsbG9jX3RhYmxlKHN0LCAxLCBHRlBfS0VSTkVMKSkgeworCXJldCA9IHNnX2FsbG9jX3Rh YmxlKHN0LCAxLCBHRlBfS0VSTkVMKTsKKwlpZiAocmV0KSB7CiAJCWtmcmVlKHN0KTsKLQkJcmV0 dXJuIE5VTEw7CisJCXJldHVybiBFUlJfUFRSKHJldCk7CiAJfQogCiAJc2cgPSBzdC0+c2dsOwpA QCAtNTU2LDE4ICs1NTgsMjMgQEAgX2k5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCiAJCQkgICAgICAgc3RydWN0IGRybV9tbV9ub2RlICpzdG9sZW4p CiB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKKwlzdHJ1Y3Qgc2dfdGFibGUg KnBhZ2VzOwogCiAJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2FsbG9jKGRldik7CiAJaWYgKG9iaiA9 PSBOVUxMKQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKIAlk cm1fZ2VtX3ByaXZhdGVfb2JqZWN0X2luaXQoZGV2LCAmb2JqLT5iYXNlLCBzdG9sZW4tPnNpemUp OwogCWk5MTVfZ2VtX29iamVjdF9pbml0KG9iaiwgJmk5MTVfZ2VtX29iamVjdF9zdG9sZW5fb3Bz KTsKIAotCW9iai0+cGFnZXMgPSBpOTE1X3BhZ2VzX2NyZWF0ZV9mb3Jfc3RvbGVuKGRldiwKLQkJ CQkJCSAgc3RvbGVuLT5zdGFydCwgc3RvbGVuLT5zaXplKTsKLQlpZiAob2JqLT5wYWdlcyA9PSBO VUxMKQotCQlnb3RvIGNsZWFudXA7CisJcGFnZXMgPSBpOTE1X3BhZ2VzX2NyZWF0ZV9mb3Jfc3Rv bGVuKGRldiwKKwkJCQkJICAgICBzdG9sZW4tPnN0YXJ0LCBzdG9sZW4tPnNpemUpOworCWlmIChJ U19FUlIocGFnZXMpKSB7CisJCWk5MTVfZ2VtX29iamVjdF9mcmVlKG9iaik7CisJCXJldHVybiBF UlJfQ0FTVChwYWdlcyk7CisJfQorCisJb2JqLT5wYWdlcyA9IHBhZ2VzOwogCiAJb2JqLT5nZXRf cGFnZS5zZyA9IG9iai0+cGFnZXMtPnNnbDsKIAlvYmotPmdldF9wYWdlLmxhc3QgPSAwOwpAQCAt NTc5LDEwICs1ODYsNiBAQCBfaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKIAlvYmotPmNhY2hlX2xldmVsID0gSEFTX0xMQyhkZXYpID8gSTkxNV9D QUNIRV9MTEMgOiBJOTE1X0NBQ0hFX05PTkU7CiAKIAlyZXR1cm4gb2JqOwotCi1jbGVhbnVwOgot CWk5MTVfZ2VtX29iamVjdF9mcmVlKG9iaik7Ci0JcmV0dXJuIE5VTEw7CiB9CiAKIHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICoKQEAgLTU5NCwyOSArNTk3LDI5IEBAIGk5MTVfZ2VtX29iamVj dF9jcmVhdGVfc3RvbGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHU2NCBzaXplKQogCWludCBy ZXQ7CiAKIAlpZiAoIWRybV9tbV9pbml0aWFsaXplZCgmZGV2X3ByaXYtPm1tLnN0b2xlbikpCi0J CXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BUUigtRU5PREVWKTsKIAogCURSTV9ERUJVR19L TVMoImNyZWF0aW5nIHN0b2xlbiBvYmplY3Q6IHNpemU9JWxseFxuIiwgc2l6ZSk7CiAJaWYgKHNp emUgPT0gMCkKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwogCiAJ c3RvbGVuID0ga3phbGxvYyhzaXplb2YoKnN0b2xlbiksIEdGUF9LRVJORUwpOwogCWlmICghc3Rv bGVuKQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKIAlyZXQg PSBpOTE1X2dlbV9zdG9sZW5faW5zZXJ0X25vZGUoZGV2X3ByaXYsIHN0b2xlbiwgc2l6ZSwgNDA5 Nik7CiAJaWYgKHJldCkgewogCQlrZnJlZShzdG9sZW4pOwotCQlyZXR1cm4gTlVMTDsKKwkJcmV0 dXJuIEVSUl9QVFIocmV0KTsKIAl9CiAKIAlvYmogPSBfaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9z dG9sZW4oZGV2LCBzdG9sZW4pOwotCWlmIChvYmopCisJaWYgKCFJU19FUlIob2JqKSkKIAkJcmV0 dXJuIG9iajsKIAogCWk5MTVfZ2VtX3N0b2xlbl9yZW1vdmVfbm9kZShkZXZfcHJpdiwgc3RvbGVu KTsKIAlrZnJlZShzdG9sZW4pOwotCXJldHVybiBOVUxMOworCXJldHVybiBvYmo7CiB9CiAKIHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICoKQEAgLTYzMyw3ICs2MzYsNyBAQCBpOTE1X2dlbV9v YmplY3RfY3JlYXRlX3N0b2xlbl9mb3JfcHJlYWxsb2NhdGVkKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCiAJaW50IHJldDsKIAogCWlmICghZHJtX21tX2luaXRpYWxpemVkKCZkZXZfcHJpdi0+bW0u c3RvbGVuKSkKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBFUlJfUFRSKC1FTk9ERVYpOwogCiAJ RFJNX0RFQlVHX0tNUygiY3JlYXRpbmcgcHJlYWxsb2NhdGVkIHN0b2xlbiBvYmplY3Q6IHN0b2xl bl9vZmZzZXQ9JXgsIGd0dF9vZmZzZXQ9JXgsIHNpemU9JXhcbiIsCiAJCQlzdG9sZW5fb2Zmc2V0 LCBndHRfb2Zmc2V0LCBzaXplKTsKQEAgLTY0MSwxMSArNjQ0LDExIEBAIGk5MTVfZ2VtX29iamVj dF9jcmVhdGVfc3RvbGVuX2Zvcl9wcmVhbGxvY2F0ZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK IAkvKiBLSVNTIGFuZCBleHBlY3QgZXZlcnl0aGluZyB0byBiZSBwYWdlLWFsaWduZWQgKi8KIAlp ZiAoV0FSTl9PTihzaXplID09IDApIHx8IFdBUk5fT04oc2l6ZSAmIDQwOTUpIHx8CiAJICAgIFdB Uk5fT04oc3RvbGVuX29mZnNldCAmIDQwOTUpKQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVS Ul9QVFIoLUVJTlZBTCk7CiAKIAlzdG9sZW4gPSBremFsbG9jKHNpemVvZigqc3RvbGVuKSwgR0ZQ X0tFUk5FTCk7CiAJaWYgKCFzdG9sZW4pCi0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BU UigtRU5PTUVNKTsKIAogCXN0b2xlbi0+c3RhcnQgPSBzdG9sZW5fb2Zmc2V0OwogCXN0b2xlbi0+ c2l6ZSA9IHNpemU7CkBAIC02NTUsMTUgKzY1OCwxNSBAQCBpOTE1X2dlbV9vYmplY3RfY3JlYXRl X3N0b2xlbl9mb3JfcHJlYWxsb2NhdGVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJaWYgKHJl dCkgewogCQlEUk1fREVCVUdfS01TKCJmYWlsZWQgdG8gYWxsb2NhdGUgc3RvbGVuIHNwYWNlXG4i KTsKIAkJa2ZyZWUoc3RvbGVuKTsKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBFUlJfUFRSKHJl dCk7CiAJfQogCiAJb2JqID0gX2k5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuKGRldiwgc3Rv bGVuKTsKLQlpZiAob2JqID09IE5VTEwpIHsKKwlpZiAoSVNfRVJSKG9iaikpIHsKIAkJRFJNX0RF QlVHX0tNUygiZmFpbGVkIHRvIGFsbG9jYXRlIHN0b2xlbiBvYmplY3RcbiIpOwogCQlpOTE1X2dl bV9zdG9sZW5fcmVtb3ZlX25vZGUoZGV2X3ByaXYsIHN0b2xlbik7CiAJCWtmcmVlKHN0b2xlbik7 Ci0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gb2JqOwogCX0KIAogCS8qIFNvbWUgb2JqZWN0cyBq dXN0IG5lZWQgcGh5c2ljYWwgbWVtIGZyb20gc3RvbGVuIHNwYWNlICovCkBAIC03MDIsNSArNzA1 LDUgQEAgaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW5fZm9yX3ByZWFsbG9jYXRlZChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAogCiBlcnI6CiAJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2Uo Jm9iai0+YmFzZSk7Ci0JcmV0dXJuIE5VTEw7CisJcmV0dXJuIEVSUl9QVFIocmV0KTsKIH0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwppbmRleCA1MWFlNWMxLi4y MDdmODBmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNz aW9uLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCkBA IC02MzYsMjcgKzYzNiwzMCBAQCBpbnQgaTkxNV9ndWNfc3VibWl0KHN0cnVjdCBpOTE1X2d1Y19j bGllbnQgKmNsaWVudCwKICAqIG9iamVjdCBuZWVkcyB0byBiZSBwaW5uZWQgbGlmZXRpbWUuIEFs c28gd2UgbXVzdCBwaW4gaXQgdG8gZ3R0IHNwYWNlIG90aGVyCiAgKiB0aGFuIFswLCBHVUNfV09Q Q01fVE9QKSBiZWNhdXNlIHRoaXMgcmFuZ2UgaXMgcmVzZXJ2ZWQgaW5zaWRlIEd1Qy4KICAqCi0g KiBSZXR1cm46CUEgZHJtX2k5MTVfZ2VtX29iamVjdCBpZiBzdWNjZXNzZnVsLCBvdGhlcndpc2Ug TlVMTC4KKyAqIFJldHVybjoJQSBkcm1faTkxNV9nZW1fb2JqZWN0IGlmIHN1Y2Nlc3NmdWwsIG90 aGVyd2lzZSBlcnJvciBwb2ludGVyLgogICovCiBzdGF0aWMgc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKmdlbV9hbGxvY2F0ZV9ndWNfb2JqKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJ CQkJdTMyIHNpemUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2 LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOworCWludCBy ZXQ7CiAKIAlvYmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCBzaXplKTsKLQlpZiAoIW9i aikKLQkJcmV0dXJuIE5VTEw7CisJaWYgKElTX0VSUihvYmopKQorCQlyZXR1cm4gb2JqOwogCi0J aWYgKGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXMob2JqKSkgeworCXJldCA9IGk5MTVfZ2VtX29i amVjdF9nZXRfcGFnZXMob2JqKTsKKwlpZiAocmV0KSB7CiAJCWRybV9nZW1fb2JqZWN0X3VucmVm ZXJlbmNlKCZvYmotPmJhc2UpOwotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIocmV0 KTsKIAl9CiAKLQlpZiAoaTkxNV9nZW1fb2JqX2dndHRfcGluKG9iaiwgUEFHRV9TSVpFLAotCQkJ UElOX09GRlNFVF9CSUFTIHwgR1VDX1dPUENNX1RPUCkpIHsKKwlyZXQgPSBpOTE1X2dlbV9vYmpf Z2d0dF9waW4ob2JqLCBQQUdFX1NJWkUsCisJCQkJICAgIFBJTl9PRkZTRVRfQklBUyB8IEdVQ19X T1BDTV9UT1ApOworCWlmIChyZXQpIHsKIAkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJm9i ai0+YmFzZSk7Ci0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BUUihyZXQpOwogCX0KIAog CS8qIEludmFsaWRhdGUgR3VDIFRMQiB0byBsZXQgR3VDIHRha2UgdGhlIGxhdGVzdCB1cGRhdGVz IHRvIEdUVC4gKi8KQEAgLTcyNCw3ICs3MjcsNyBAQCBzdGF0aWMgdm9pZCBndWNfY2xpZW50X2Zy ZWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKICAqIEBjdHg6CXRoZSBjb250ZXh0IHRoYXQgb3du cyB0aGUgY2xpZW50ICh3ZSB1c2UgdGhlIGRlZmF1bHQgcmVuZGVyCiAgKiAJCWNvbnRleHQpCiAg KgotICogUmV0dXJuOglBbiBpOTE1X2d1Y19jbGllbnQgb2JqZWN0IGlmIHN1Y2Nlc3MuCisgKiBS ZXR1cm46CUFuIGk5MTVfZ3VjX2NsaWVudCBvYmplY3QgaWYgc3VjY2VzcywgZXJyb3IgcG9pbnRl ciBvbiBmYWlsdXJlLgogICovCiBzdGF0aWMgc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqZ3VjX2Ns aWVudF9hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCQkJdWludDMyX3QgcHJpb3Jp dHksCkBAIC03MzQsMTAgKzczNywxMSBAQCBzdGF0aWMgc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAq Z3VjX2NsaWVudF9hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX2d1 YyAqZ3VjID0gJmRldl9wcml2LT5ndWM7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i ajsKKwlpbnQgcmV0OwogCiAJY2xpZW50ID0ga3phbGxvYyhzaXplb2YoKmNsaWVudCksIEdGUF9L RVJORUwpOwogCWlmICghY2xpZW50KQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIo LUVOT01FTSk7CiAKIAljbGllbnQtPmRvb3JiZWxsX2lkID0gR1VDX0lOVkFMSURfRE9PUkJFTExf SUQ7CiAJY2xpZW50LT5wcmlvcml0eSA9IHByaW9yaXR5OwpAQCAtNzQ4LDEzICs3NTIsMTYgQEAg c3RhdGljIHN0cnVjdCBpOTE1X2d1Y19jbGllbnQgKmd1Y19jbGllbnRfYWxsb2Moc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKIAkJCUdVQ19NQVhfR1BVX0NPTlRFWFRTLCBHRlBfS0VSTkVMKTsKIAlp ZiAoY2xpZW50LT5jdHhfaW5kZXggPj0gR1VDX01BWF9HUFVfQ09OVEVYVFMpIHsKIAkJY2xpZW50 LT5jdHhfaW5kZXggPSBHVUNfSU5WQUxJRF9DVFhfSUQ7CisJCXJldCA9IC1FSU5WQUw7CiAJCWdv dG8gZXJyOwogCX0KIAogCS8qIFRoZSBmaXJzdCBwYWdlIGlzIGRvb3JiZWxsL3Byb2NfZGVzYy4g VHdvIGZvbGxvd2VkIHBhZ2VzIGFyZSB3cS4gKi8KIAlvYmogPSBnZW1fYWxsb2NhdGVfZ3VjX29i aihkZXYsIEdVQ19EQl9TSVpFICsgR1VDX1dRX1NJWkUpOwotCWlmICghb2JqKQorCWlmIChJU19F UlIob2JqKSkgeworCQlyZXQgPSBQVFJfRVJSKG9iaik7CiAJCWdvdG8gZXJyOworCX0KIAogCWNs aWVudC0+Y2xpZW50X29iaiA9IG9iajsKIAljbGllbnQtPndxX29mZnNldCA9IEdVQ19EQl9TSVpF OwpAQCAtNzczLDkgKzc4MCwxMSBAQCBzdGF0aWMgc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqZ3Vj X2NsaWVudF9hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQljbGllbnQtPnByb2NfZGVz Y19vZmZzZXQgPSAoR1VDX0RCX1NJWkUgLyAyKTsKIAogCWNsaWVudC0+ZG9vcmJlbGxfaWQgPSBh c3NpZ25fZG9vcmJlbGwoZ3VjLCBjbGllbnQtPnByaW9yaXR5KTsKLQlpZiAoY2xpZW50LT5kb29y YmVsbF9pZCA9PSBHVUNfSU5WQUxJRF9ET09SQkVMTF9JRCkKKwlpZiAoY2xpZW50LT5kb29yYmVs bF9pZCA9PSBHVUNfSU5WQUxJRF9ET09SQkVMTF9JRCkgewogCQkvKiBYWFg6IGV2aWN0IGEgZG9v cmJlbGwgaW5zdGVhZCAqLworCQlyZXQgPSAtRUlOVkFMOwogCQlnb3RvIGVycjsKKwl9CiAKIAln dWNfaW5pdF9wcm9jX2Rlc2MoZ3VjLCBjbGllbnQpOwogCWd1Y19pbml0X2N0eF9kZXNjKGd1Yywg Y2xpZW50KTsKQEAgLTc4Myw3ICs3OTIsOCBAQCBzdGF0aWMgc3RydWN0IGk5MTVfZ3VjX2NsaWVu dCAqZ3VjX2NsaWVudF9hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJLyogWFhYOiBB bnkgY2FjaGUgZmx1c2hlcyBuZWVkZWQ/IEdlbmVyYWwgZG9tYWluIG1nbXQgY2FsbHM/ICovCiAK LQlpZiAoaG9zdDJndWNfYWxsb2NhdGVfZG9vcmJlbGwoZ3VjLCBjbGllbnQpKQorCXJldCA9IGhv c3QyZ3VjX2FsbG9jYXRlX2Rvb3JiZWxsKGd1YywgY2xpZW50KTsKKwlpZiAocmV0KQogCQlnb3Rv IGVycjsKIAogCURSTV9ERUJVR19EUklWRVIoIm5ldyBwcmlvcml0eSAldSBjbGllbnQgJXA6IGN0 eF9pbmRleCAldSBkYl9pZCAldVxuIiwKQEAgLTc5NSw3ICs4MDUsNyBAQCBlcnI6CiAJRFJNX0VS Uk9SKCJGQUlMRUQgdG8gY3JlYXRlIHByaW9yaXR5ICV1IEd1QyBjbGllbnQhXG4iLCBwcmlvcml0 eSk7CiAKIAlndWNfY2xpZW50X2ZyZWUoZGV2LCBjbGllbnQpOwotCXJldHVybiBOVUxMOworCXJl dHVybiBFUlJfUFRSKHJldCk7CiB9CiAKIHN0YXRpYyB2b2lkIGd1Y19jcmVhdGVfbG9nKHN0cnVj dCBpbnRlbF9ndWMgKmd1YykKQEAgLTgyMCw3ICs4MzAsNyBAQCBzdGF0aWMgdm9pZCBndWNfY3Jl YXRlX2xvZyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCiAJb2JqID0gZ3VjLT5sb2dfb2JqOwogCWlm ICghb2JqKSB7CiAJCW9iaiA9IGdlbV9hbGxvY2F0ZV9ndWNfb2JqKGRldl9wcml2LT5kZXYsIHNp emUpOwotCQlpZiAoIW9iaikgeworCQlpZiAoSVNfRVJSKG9iaikpIHsKIAkJCS8qIGxvZ2dpbmcg d2lsbCBiZSBvZmYgKi8KIAkJCWk5MTUuZ3VjX2xvZ19sZXZlbCA9IC0xOwogCQkJcmV0dXJuOwpA QCAtOTQwLDYgKzk1MCw3IEBAIGludCBpOTE1X2d1Y19zdWJtaXNzaW9uX2luaXQoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIAljb25zdCBzaXplX3QgcG9vbHNpemUgPSBHVUNfTUFYX0dQVV9DT05U RVhUUyAqIGN0eHNpemU7CiAJY29uc3Qgc2l6ZV90IGdlbXNpemUgPSByb3VuZF91cChwb29sc2l6 ZSwgUEFHRV9TSVpFKTsKIAlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmZGV2X3ByaXYtPmd1YzsK KwlpbnQgcmV0OwogCiAJaWYgKCFpOTE1LmVuYWJsZV9ndWNfc3VibWlzc2lvbikKIAkJcmV0dXJu IDA7IC8qIG5vdCBlbmFibGVkICAqLwpAQCAtOTQ4LDggKzk1OSwxMSBAQCBpbnQgaTkxNV9ndWNf c3VibWlzc2lvbl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCXJldHVybiAwOyAvKiBh bHJlYWR5IGFsbG9jYXRlZCAqLwogCiAJZ3VjLT5jdHhfcG9vbF9vYmogPSBnZW1fYWxsb2NhdGVf Z3VjX29iaihkZXZfcHJpdi0+ZGV2LCBnZW1zaXplKTsKLQlpZiAoIWd1Yy0+Y3R4X3Bvb2xfb2Jq KQotCQlyZXR1cm4gLUVOT01FTTsKKwlpZiAoSVNfRVJSKGd1Yy0+Y3R4X3Bvb2xfb2JqKSkgewor CQlyZXQgPSBQVFJfRVJSKGd1Yy0+Y3R4X3Bvb2xfb2JqKTsKKwkJZ3VjLT5jdHhfcG9vbF9vYmog PSBOVUxMOworCQlyZXR1cm4gcmV0OworCX0KIAogCWlkYV9pbml0KCZndWMtPmN0eF9pZHMpOwog CkBAIC05NjksOSArOTgzLDkgQEAgaW50IGk5MTVfZ3VjX3N1Ym1pc3Npb25fZW5hYmxlKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCiAKIAkvKiBjbGllbnQgZm9yIGV4ZWNidWYgc3VibWlzc2lvbiAq LwogCWNsaWVudCA9IGd1Y19jbGllbnRfYWxsb2MoZGV2LCBHVUNfQ1RYX1BSSU9SSVRZX0tNRF9O T1JNQUwsIGN0eCk7Ci0JaWYgKCFjbGllbnQpIHsKKwlpZiAoSVNfRVJSKGNsaWVudCkpIHsKIAkJ RFJNX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIGV4ZWNidWYgZ3VjX2NsaWVudFxuIik7Ci0JCXJl dHVybiAtRU5PTUVNOworCQlyZXR1cm4gUFRSX0VSUihjbGllbnQpOwogCX0KIAogCWd1Yy0+ZXhl Y2J1Zl9jbGllbnQgPSBjbGllbnQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5k ZXggMmEwNjllYy4uZGZmMGM3NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpA QCAtMjU1NSw3ICsyNTU1LDcgQEAgaW50ZWxfYWxsb2NfaW5pdGlhbF9wbGFuZV9vYmooc3RydWN0 IGludGVsX2NydGMgKmNydGMsCiAJCQkJCQkJICAgICBiYXNlX2FsaWduZWQsCiAJCQkJCQkJICAg ICBiYXNlX2FsaWduZWQsCiAJCQkJCQkJICAgICBzaXplX2FsaWduZWQpOwotCWlmICghb2JqKQor CWlmIChJU19FUlIob2JqKSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJb2JqLT50aWxpbmdfbW9kZSA9 IHBsYW5lX2NvbmZpZy0+dGlsaW5nOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZmJkZXYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMKaW5kZXgg MDk4NDBmNC4uMWM4OTdjYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZmJkZXYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmRldi5jCkBAIC0xNDgs MTEgKzE0OCwxMSBAQCBzdGF0aWMgaW50IGludGVsZmJfYWxsb2Moc3RydWN0IGRybV9mYl9oZWxw ZXIgKmhlbHBlciwKIAkgKiBmZWF0dXJlcy4gKi8KIAlpZiAoc2l6ZSAqIDIgPCBkZXZfcHJpdi0+ Z3R0LnN0b2xlbl91c2FibGVfc2l6ZSkKIAkJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9z dG9sZW4oZGV2LCBzaXplKTsKLQlpZiAob2JqID09IE5VTEwpCisJaWYgKElTX0VSUl9PUl9OVUxM KG9iaikpCiAJCW9iaiA9IGk5MTVfZ2VtX2FsbG9jX29iamVjdChkZXYsIHNpemUpOwotCWlmICgh b2JqKSB7CisJaWYgKElTX0VSUihvYmopKSB7CiAJCURSTV9FUlJPUigiZmFpbGVkIHRvIGFsbG9j YXRlIGZyYW1lYnVmZmVyXG4iKTsKLQkJcmV0ID0gLUVOT01FTTsKKwkJcmV0ID0gUFRSX0VSUihv YmopOwogCQlnb3RvIG91dDsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKaW5kZXggNzNk NDM0Ny4uZDk5YjQ2YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKQEAgLTE0MzQsOSArMTQz NCwxMSBAQCBzdGF0aWMgaW50IGxyY19zZXR1cF93YV9jdHhfb2JqKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKnJpbmcsIHUzMiBzaXplKQogCWludCByZXQ7CiAKIAlyaW5nLT53YV9jdHgub2JqID0g aTkxNV9nZW1fYWxsb2Nfb2JqZWN0KHJpbmctPmRldiwgUEFHRV9BTElHTihzaXplKSk7Ci0JaWYg KCFyaW5nLT53YV9jdHgub2JqKSB7CisJaWYgKElTX0VSUihyaW5nLT53YV9jdHgub2JqKSkgewog CQlEUk1fREVCVUdfRFJJVkVSKCJhbGxvYyBMUkMgV0EgY3R4IGJhY2tpbmcgb2JqIGZhaWxlZC5c biIpOwotCQlyZXR1cm4gLUVOT01FTTsKKwkJcmV0ID0gUFRSX0VSUihyaW5nLT53YV9jdHgub2Jq KTsKKwkJcmluZy0+d2FfY3R4Lm9iaiA9IE5VTEw7CisJCXJldHVybiByZXQ7CiAJfQogCiAJcmV0 ID0gaTkxNV9nZW1fb2JqX2dndHRfcGluKHJpbmctPndhX2N0eC5vYmosIFBBR0VfU0laRSwgMCk7 CkBAIC0yNTMyLDkgKzI1MzQsOSBAQCBpbnQgaW50ZWxfbHJfY29udGV4dF9kZWZlcnJlZF9hbGxv YyhzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAogCWNvbnRleHRfc2l6ZSArPSBQQUdFX1NJWkUg KiBMUkNfUFBIV1NQX1BOOwogCiAJY3R4X29iaiA9IGk5MTVfZ2VtX2FsbG9jX29iamVjdChkZXYs IGNvbnRleHRfc2l6ZSk7Ci0JaWYgKCFjdHhfb2JqKSB7CisJaWYgKElTX0VSUihjdHhfb2JqKSkg ewogCQlEUk1fREVCVUdfRFJJVkVSKCJBbGxvYyBMUkMgYmFja2luZyBvYmogZmFpbGVkLlxuIik7 Ci0JCXJldHVybiAtRU5PTUVNOworCQlyZXR1cm4gUFRSX0VSUihjdHhfb2JqKTsKIAl9CiAKIAly aW5nYnVmID0gaW50ZWxfZW5naW5lX2NyZWF0ZV9yaW5nYnVmZmVyKHJpbmcsIDQgKiBQQUdFX1NJ WkUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheS5jCmluZGV4IDkxNjg0MTMuLjhlNWY2 MjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vdmVybGF5LmMKQEAgLTEzOTIsOSArMTM5Miw5 IEBAIHZvaWQgaW50ZWxfc2V0dXBfb3ZlcmxheShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXJl Z19ibyA9IE5VTEw7CiAJaWYgKCFPVkVSTEFZX05FRURTX1BIWVNJQ0FMKGRldikpCiAJCXJlZ19i byA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuKGRldiwgUEFHRV9TSVpFKTsKLQlpZiAo cmVnX2JvID09IE5VTEwpCisJaWYgKElTX0VSUl9PUl9OVUxMKHJlZ19ibykpCiAJCXJlZ19ibyA9 IGk5MTVfZ2VtX2FsbG9jX29iamVjdChkZXYsIFBBR0VfU0laRSk7Ci0JaWYgKHJlZ19ibyA9PSBO VUxMKQorCWlmIChJU19FUlIocmVnX2JvKSkKIAkJZ290byBvdXRfZnJlZTsKIAlvdmVybGF5LT5y ZWdfYm8gPSByZWdfYm87CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmluZGV4IDIwYmY4NTQuLmY4 YzE4NGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtNTIxNCwxMCArNTIxNCwxMyBAQCBz dGF0aWMgdm9pZCB2YWxsZXl2aWV3X3NldHVwX3BjdHgoc3RydWN0IGRybV9kZXZpY2UgKmRldikK IAkJCQkJCQkJICAgICAgcGNicl9vZmZzZXQsCiAJCQkJCQkJCSAgICAgIEk5MTVfR1RUX09GRlNF VF9OT05FLAogCQkJCQkJCQkgICAgICBwY3R4X3NpemUpOworCQlpZiAoSVNfRVJSKHBjdHgpKQor CQkJcGN0eCA9IE5VTEw7CisKIAkJZ290byBvdXQ7CiAJfQogCi0JRFJNX0RFQlVHX0RSSVZFUigi QklPUyBkaWRuJ3Qgc2V0IHVwIFBDQlIsIGZpeGluZyB1cFxuIik7CisJRFJNX0RFQlVHX0RSSVZF UigiQklPUyBkaWRuJ3Qgc2V0IHVwIFBDQlIgb3IgcHJlYWxsb2MgZmFpbGVkLCBmaXhpbmcgdXBc biIpOwogCiAJLyoKIAkgKiBGcm9tIHRoZSBHdW5pdCByZWdpc3RlciBIQVM6CkBAIC01MjI4LDcg KzUyMzEsNyBAQCBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X3NldHVwX3BjdHgoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKIAkgKiBtZW1vcnksIG9yIGFueSBvdGhlciByZWxldmFudCByYW5nZXMuCiAJ ICovCiAJcGN0eCA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuKGRldiwgcGN0eF9zaXpl KTsKLQlpZiAoIXBjdHgpIHsKKwlpZiAoSVNfRVJSKHBjdHgpKSB7CiAJCURSTV9ERUJVRygibm90 IGVub3VnaCBzdG9sZW4gc3BhY2UgZm9yIFBDVFgsIGRpc2FibGluZ1xuIik7CiAJCXJldHVybjsK IAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKaW5kZXggOTAzMGUyYi4u MWFhYTRlMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZl ci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwpAQCAtNjY0 LDkgKzY2NCwxMCBAQCBpbnRlbF9pbml0X3BpcGVfY29udHJvbChzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpyaW5nKQogCVdBUk5fT04ocmluZy0+c2NyYXRjaC5vYmopOwogCiAJcmluZy0+c2NyYXRj aC5vYmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3QocmluZy0+ZGV2LCA0MDk2KTsKLQlpZiAocmlu Zy0+c2NyYXRjaC5vYmogPT0gTlVMTCkgeworCWlmIChJU19FUlIocmluZy0+c2NyYXRjaC5vYmop KSB7CiAJCURSTV9FUlJPUigiRmFpbGVkIHRvIGFsbG9jYXRlIHNlcW5vIHBhZ2VcbiIpOwotCQly ZXQgPSAtRU5PTUVNOworCQlyZXQgPSBQVFJfRVJSKHJpbmctPnNjcmF0Y2gub2JqKTsKKwkJcmlu Zy0+c2NyYXRjaC5vYmogPSBOVUxMOwogCQlnb3RvIGVycjsKIAl9CiAKQEAgLTE5MzMsOSArMTkz NCw5IEBAIHN0YXRpYyBpbnQgaW5pdF9zdGF0dXNfcGFnZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICpyaW5nKQogCQlpbnQgcmV0OwogCiAJCW9iaiA9IGk5MTVfZ2VtX2FsbG9jX29iamVjdChyaW5n LT5kZXYsIDQwOTYpOwotCQlpZiAob2JqID09IE5VTEwpIHsKKwkJaWYgKElTX0VSUihvYmopKSB7 CiAJCQlEUk1fRVJST1IoIkZhaWxlZCB0byBhbGxvY2F0ZSBzdGF0dXMgcGFnZVxuIik7Ci0JCQly ZXR1cm4gLUVOT01FTTsKKwkJCXJldHVybiBQVFJfRVJSKG9iaik7CiAJCX0KIAogCQlyZXQgPSBp OTE1X2dlbV9vYmplY3Rfc2V0X2NhY2hlX2xldmVsKG9iaiwgSTkxNV9DQUNIRV9MTEMpOwpAQCAt MjA4NSwxMCArMjA4NiwxMCBAQCBzdGF0aWMgaW50IGludGVsX2FsbG9jX3JpbmdidWZmZXJfb2Jq KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJb2JqID0gTlVMTDsKIAlpZiAoIUhBU19MTEMoZGV2 KSkKIAkJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oZGV2LCByaW5nYnVmLT5z aXplKTsKLQlpZiAob2JqID09IE5VTEwpCisJaWYgKElTX0VSUl9PUl9OVUxMKG9iaikpCiAJCW9i aiA9IGk5MTVfZ2VtX2FsbG9jX29iamVjdChkZXYsIHJpbmdidWYtPnNpemUpOwotCWlmIChvYmog PT0gTlVMTCkKLQkJcmV0dXJuIC1FTk9NRU07CisJaWYgKElTX0VSUihvYmopKQorCQlyZXR1cm4g UFRSX0VSUihvYmopOwogCiAJLyogbWFyayByaW5nIGJ1ZmZlcnMgYXMgcmVhZC1vbmx5IGZyb20g R1BVIHNpZGUgYnkgZGVmYXVsdCAqLwogCW9iai0+Z3Rfcm8gPSAxOwpAQCAtMjY4OSw3ICsyNjkw LDcgQEAgaW50IGludGVsX2luaXRfcmVuZGVyX3JpbmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCiAJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDgpIHsKIAkJaWYgKGk5MTVfc2Vt YXBob3JlX2lzX2VuYWJsZWQoZGV2KSkgewogCQkJb2JqID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0 KGRldiwgNDA5Nik7Ci0JCQlpZiAob2JqID09IE5VTEwpIHsKKwkJCWlmIChJU19FUlIob2JqKSkg ewogCQkJCURSTV9FUlJPUigiRmFpbGVkIHRvIGFsbG9jYXRlIHNlbWFwaG9yZSBiby4gRGlzYWJs aW5nIHNlbWFwaG9yZXNcbiIpOwogCQkJCWk5MTUuc2VtYXBob3JlcyA9IDA7CiAJCQl9IGVsc2Ug ewpAQCAtMjc5Niw5ICsyNzk3LDkgQEAgaW50IGludGVsX2luaXRfcmVuZGVyX3JpbmdfYnVmZmVy KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJLyogV29ya2Fyb3VuZCBiYXRjaGJ1ZmZlciB0byBj b21iYXQgQ1MgdGxiIGJ1Zy4gKi8KIAlpZiAoSEFTX0JST0tFTl9DU19UTEIoZGV2KSkgewogCQlv YmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCBJODMwX1dBX1NJWkUpOwotCQlpZiAob2Jq ID09IE5VTEwpIHsKKwkJaWYgKElTX0VSUihvYmopKSB7CiAJCQlEUk1fRVJST1IoIkZhaWxlZCB0 byBhbGxvY2F0ZSBiYXRjaCBib1xuIik7Ci0JCQlyZXR1cm4gLUVOT01FTTsKKwkJCXJldHVybiBQ VFJfRVJSKG9iaik7CiAJCX0KIAogCQlyZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9waW4ob2JqLCAw LCAwKTsKLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=