From mboxrd@z Thu Jan 1 00:00:00 1970 From: ankitprasad.r.sharma@intel.com Subject: [PATCH 3/6] drm/i915: Propagating correct error codes to the userspace Date: Wed, 11 Nov 2015 16:06:10 +0530 Message-ID: <1447238173-31347-4-git-send-email-ankitprasad.r.sharma@intel.com> References: <1447238173-31347-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 mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 154516E3D9 for ; Wed, 11 Nov 2015 02:55:40 -0800 (PST) In-Reply-To: <1447238173-31347-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 Y3Rpb25zIChDaHJpcykKClNpZ25lZC1vZmYtYnk6IEFua2l0cHJhc2FkIFNoYXJtYSA8YW5raXRw cmFzYWQuci5zaGFybWFAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMgICAgICAgICAgICAgIHwgMTUgKysrKystLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fYmF0Y2hfcG9vbC5jICAgfCAgNCArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2NvbnRleHQuYyAgICAgIHwgIDQgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9yZW5kZXJfc3RhdGUuYyB8ICA3ICsrKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9zdG9sZW4uYyAgICAgICB8IDQzICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMgICB8IDQ1ICsrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAg ICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMgICAgICAg ICAgIHwgIDYgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgICAg ICAgfCAxMCArKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vdmVybGF5LmMgICAg ICAgICB8ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAgICAgICAg ICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jICAgICAg fCAyMSArKysrKystLS0tLS0tCiAxMiBmaWxlcyBjaGFuZ2VkLCA5NCBpbnNlcnRpb25zKCspLCA2 OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCA4OTg5MDRlLi41N2Yw MmFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTM5Myw5ICszOTMsOSBAQCBpOTE1X2dl bV9jcmVhdGUoc3RydWN0IGRybV9maWxlICpmaWxlLAogCWlmIChmbGFncyAmIEk5MTVfQ1JFQVRF X1BMQUNFTUVOVF9TVE9MRU4pIHsKIAkJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwog CQlvYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihkZXYsIHNpemUpOwotCQlpZiAo IW9iaikgeworCQlpZiAoSVNfRVJSKG9iaikpIHsKIAkJCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1 Y3RfbXV0ZXgpOwotCQkJcmV0dXJuIC1FTk9NRU07CisJCQlyZXR1cm4gUFRSX0VSUihvYmopOwog CQl9CiAKIAkJLyogQWx3YXlzIGNsZWFyIGZyZXNoIGJ1ZmZlcnMgYmVmb3JlIGhhbmRpbmcgdG8g dXNlcnNwYWNlICovCkBAIC00MTEsOCArNDExLDggQEAgaTkxNV9nZW1fY3JlYXRlKHN0cnVjdCBk cm1fZmlsZSAqZmlsZSwKIAkJb2JqID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KGRldiwgc2l6ZSk7 CiAJfQogCi0JaWYgKG9iaiA9PSBOVUxMKQotCQlyZXR1cm4gLUVOT01FTTsKKwlpZiAoSVNfRVJS KG9iaikpCisJCXJldHVybiBQVFJfRVJSKG9iaik7CiAKIAlyZXQgPSBkcm1fZ2VtX2hhbmRsZV9j cmVhdGUoZmlsZSwgJm9iai0+YmFzZSwgJmhhbmRsZSk7CiAJLyogZHJvcCByZWZlcmVuY2UgZnJv bSBhbGxvY2F0ZSAtIGhhbmRsZSBob2xkcyBpdCBub3cgKi8KQEAgLTQzOTksMTQgKzQzOTksMTUg QEAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmk5MTVfZ2VtX2FsbG9jX29iamVjdChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CiAJ c3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmc7CiAJZ2ZwX3QgbWFzazsKKwlpbnQgcmV0ID0g MDsKIAogCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9hbGxvYyhkZXYpOwogCWlmIChvYmogPT0gTlVM TCkKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwogCi0JaWYgKGRy bV9nZW1fb2JqZWN0X2luaXQoZGV2LCAmb2JqLT5iYXNlLCBzaXplKSAhPSAwKSB7CisJaWYgKChy ZXQgPSBkcm1fZ2VtX29iamVjdF9pbml0KGRldiwgJm9iai0+YmFzZSwgc2l6ZSkpICE9IDApIHsK IAkJaTkxNV9nZW1fb2JqZWN0X2ZyZWUob2JqKTsKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBF UlJfUFRSKHJldCk7CiAJfQogCiAJbWFzayA9IEdGUF9ISUdIVVNFUiB8IF9fR0ZQX1JFQ0xBSU1B QkxFOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fYmF0Y2hfcG9v bC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fYmF0Y2hfcG9vbC5jCmluZGV4IDdi ZjJmM2YuLmQ3OWNhYTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2JhdGNoX3Bvb2wuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9iYXRjaF9w b29sLmMKQEAgLTEzNSw4ICsxMzUsOCBAQCBpOTE1X2dlbV9iYXRjaF9wb29sX2dldChzdHJ1Y3Qg aTkxNV9nZW1fYmF0Y2hfcG9vbCAqcG9vbCwKIAkJaW50IHJldDsKIAogCQlvYmogPSBpOTE1X2dl bV9hbGxvY19vYmplY3QocG9vbC0+ZGV2LCBzaXplKTsKLQkJaWYgKG9iaiA9PSBOVUxMKQotCQkJ cmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisJCWlmIChJU19FUlIob2JqKSkKKwkJCXJldHVybiBv Ymo7CiAKIAkJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlcyhvYmopOwogCQlpZiAocmV0 KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCmluZGV4IDIwNGRjN2MuLjRk MjRjZmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKQEAgLTE4MSw4 ICsxODEsOCBAQCBpOTE1X2dlbV9hbGxvY19jb250ZXh0X29iaihzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBzaXplX3Qgc2l6ZSkKIAlpbnQgcmV0OwogCiAJb2JqID0gaTkxNV9nZW1fYWxsb2Nfb2Jq ZWN0KGRldiwgc2l6ZSk7Ci0JaWYgKG9iaiA9PSBOVUxMKQotCQlyZXR1cm4gRVJSX1BUUigtRU5P TUVNKTsKKwlpZiAoSVNfRVJSKG9iaikpCisJCXJldHVybiBvYmo7CiAKIAkvKgogCSAqIFRyeSB0 byBtYWtlIHRoZSBjb250ZXh0IHV0aWxpemUgTDMgYXMgd2VsbCBhcyBMTEMuCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZW5kZXJfc3RhdGUuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlbmRlcl9zdGF0ZS5jCmluZGV4IDUwMjZhNjIuLjJiZmRk NDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlbmRlcl9zdGF0 ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlbmRlcl9zdGF0ZS5jCkBA IC01OCw4ICs1OCwxMSBAQCBzdGF0aWMgaW50IHJlbmRlcl9zdGF0ZV9pbml0KHN0cnVjdCByZW5k ZXJfc3RhdGUgKnNvLCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlyZXR1cm4gLUVJTlZBTDsK IAogCXNvLT5vYmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCA0MDk2KTsKLQlpZiAoc28t Pm9iaiA9PSBOVUxMKQotCQlyZXR1cm4gLUVOT01FTTsKKwlpZiAoSVNfRVJSKHNvLT5vYmopKSB7 CisJCXJldCA9IFBUUl9FUlIoc28tPm9iaik7CisJCXNvLT5vYmogPSBOVUxMOworCQlyZXR1cm4g cmV0OworCX0KIAogCXJldCA9IGk5MTVfZ2VtX29ial9nZ3R0X3Bpbihzby0+b2JqLCA0MDk2LCAw KTsKIAlpZiAocmV0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f c3RvbGVuLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYwppbmRleCBi OThhM2JmLi4wYjBjZTExIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9zdG9sZW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYwpA QCAtNDkyLDYgKzQ5Miw3IEBAIGk5MTVfcGFnZXNfY3JlYXRlX2Zvcl9zdG9sZW4oc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYt PmRldl9wcml2YXRlOwogCXN0cnVjdCBzZ190YWJsZSAqc3Q7CiAJc3RydWN0IHNjYXR0ZXJsaXN0 ICpzZzsKKwlpbnQgcmV0OwogCiAJRFJNX0RFQlVHX0RSSVZFUigib2Zmc2V0PTB4JXgsIHNpemU9 JWRcbiIsIG9mZnNldCwgc2l6ZSk7CiAJQlVHX09OKG9mZnNldCA+IGRldl9wcml2LT5ndHQuc3Rv bGVuX3NpemUgLSBzaXplKTsKQEAgLTUwMywxMSArNTA0LDEyIEBAIGk5MTVfcGFnZXNfY3JlYXRl X2Zvcl9zdG9sZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogCXN0ID0ga21hbGxvYyhzaXpl b2YoKnN0KSwgR0ZQX0tFUk5FTCk7CiAJaWYgKHN0ID09IE5VTEwpCi0JCXJldHVybiBOVUxMOwor CQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAotCWlmIChzZ19hbGxvY190YWJsZShzdCwgMSwg R0ZQX0tFUk5FTCkpIHsKKwlyZXQgPSBzZ19hbGxvY190YWJsZShzdCwgMSwgR0ZQX0tFUk5FTCk7 CisJaWYgKHJldCkgewogCQlrZnJlZShzdCk7Ci0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJS X1BUUihyZXQpOwogCX0KIAogCXNnID0gc3QtPnNnbDsKQEAgLTU1NiwxOCArNTU4LDIxIEBAIF9p OTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJ ICAgICAgIHN0cnVjdCBkcm1fbW1fbm9kZSAqc3RvbGVuKQogewogCXN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmo7CisJaW50IHJldCA9IDA7CiAKIAlvYmogPSBpOTE1X2dlbV9vYmplY3Rf YWxsb2MoZGV2KTsKIAlpZiAob2JqID09IE5VTEwpCi0JCXJldHVybiBOVUxMOworCQlyZXR1cm4g RVJSX1BUUigtRU5PTUVNKTsKIAogCWRybV9nZW1fcHJpdmF0ZV9vYmplY3RfaW5pdChkZXYsICZv YmotPmJhc2UsIHN0b2xlbi0+c2l6ZSk7CiAJaTkxNV9nZW1fb2JqZWN0X2luaXQob2JqLCAmaTkx NV9nZW1fb2JqZWN0X3N0b2xlbl9vcHMpOwogCiAJb2JqLT5wYWdlcyA9IGk5MTVfcGFnZXNfY3Jl YXRlX2Zvcl9zdG9sZW4oZGV2LAogCQkJCQkJICBzdG9sZW4tPnN0YXJ0LCBzdG9sZW4tPnNpemUp OwotCWlmIChvYmotPnBhZ2VzID09IE5VTEwpCisJaWYgKElTX0VSUihvYmotPnBhZ2VzKSkgewor CQlyZXQgPSBQVFJfRVJSKG9iai0+cGFnZXMpOwogCQlnb3RvIGNsZWFudXA7CisJfQogCiAJaTkx NV9nZW1fb2JqZWN0X3Bpbl9wYWdlcyhvYmopOwogCW9iai0+c3RvbGVuID0gc3RvbGVuOwpAQCAt NTc5LDcgKzU4NCw3IEBAIF9pOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAogCiBjbGVhbnVwOgogCWk5MTVfZ2VtX29iamVjdF9mcmVlKG9iaik7Ci0J cmV0dXJuIE5VTEw7CisJcmV0dXJuIEVSUl9QVFIocmV0KTsKIH0KIAogc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKgpAQCAtNTkxLDI5ICs1OTYsMjkgQEAgaTkxNV9nZW1fb2JqZWN0X2NyZWF0 ZV9zdG9sZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTY0IHNpemUpCiAJaW50IHJldDsKIAog CWlmICghZHJtX21tX2luaXRpYWxpemVkKCZkZXZfcHJpdi0+bW0uc3RvbGVuKSkKLQkJcmV0dXJu IE5VTEw7CisJCXJldHVybiBFUlJfUFRSKC1FTk9ERVYpOwogCiAJRFJNX0RFQlVHX0tNUygiY3Jl YXRpbmcgc3RvbGVuIG9iamVjdDogc2l6ZT0lbGx4XG4iLCBzaXplKTsKIAlpZiAoc2l6ZSA9PSAw KQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CiAKIAlzdG9sZW4g PSBremFsbG9jKHNpemVvZigqc3RvbGVuKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFzdG9sZW4pCi0J CXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAogCXJldCA9IGk5MTVf Z2VtX3N0b2xlbl9pbnNlcnRfbm9kZShkZXZfcHJpdiwgc3RvbGVuLCBzaXplLCA0MDk2KTsKIAlp ZiAocmV0KSB7CiAJCWtmcmVlKHN0b2xlbik7Ci0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJS X1BUUihyZXQpOwogCX0KIAogCW9iaiA9IF9pOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihk ZXYsIHN0b2xlbik7Ci0JaWYgKG9iaikKKwlpZiAoIUlTX0VSUihvYmopKQogCQlyZXR1cm4gb2Jq OwogCiAJaTkxNV9nZW1fc3RvbGVuX3JlbW92ZV9ub2RlKGRldl9wcml2LCBzdG9sZW4pOwogCWtm cmVlKHN0b2xlbik7Ci0JcmV0dXJuIE5VTEw7CisJcmV0dXJuIG9iajsKIH0KIAogc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKgpAQCAtNjMwLDcgKzYzNSw3IEBAIGk5MTVfZ2VtX29iamVjdF9j cmVhdGVfc3RvbGVuX2Zvcl9wcmVhbGxvY2F0ZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlp bnQgcmV0OwogCiAJaWYgKCFkcm1fbW1faW5pdGlhbGl6ZWQoJmRldl9wcml2LT5tbS5zdG9sZW4p KQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT0RFVik7CiAKIAlEUk1fREVC VUdfS01TKCJjcmVhdGluZyBwcmVhbGxvY2F0ZWQgc3RvbGVuIG9iamVjdDogc3RvbGVuX29mZnNl dD0leCwgZ3R0X29mZnNldD0leCwgc2l6ZT0leFxuIiwKIAkJCXN0b2xlbl9vZmZzZXQsIGd0dF9v ZmZzZXQsIHNpemUpOwpAQCAtNjM4LDExICs2NDMsMTEgQEAgaTkxNV9nZW1fb2JqZWN0X2NyZWF0 ZV9zdG9sZW5fZm9yX3ByZWFsbG9jYXRlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCS8qIEtJ U1MgYW5kIGV4cGVjdCBldmVyeXRoaW5nIHRvIGJlIHBhZ2UtYWxpZ25lZCAqLwogCWlmIChXQVJO X09OKHNpemUgPT0gMCkgfHwgV0FSTl9PTihzaXplICYgNDA5NSkgfHwKIAkgICAgV0FSTl9PTihz dG9sZW5fb2Zmc2V0ICYgNDA5NSkpCi0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BUUigt RUlOVkFMKTsKIAogCXN0b2xlbiA9IGt6YWxsb2Moc2l6ZW9mKCpzdG9sZW4pLCBHRlBfS0VSTkVM KTsKIAlpZiAoIXN0b2xlbikKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBFUlJfUFRSKC1FTk9N RU0pOwogCiAJc3RvbGVuLT5zdGFydCA9IHN0b2xlbl9vZmZzZXQ7CiAJc3RvbGVuLT5zaXplID0g c2l6ZTsKQEAgLTY1MiwxNSArNjU3LDE1IEBAIGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVu X2Zvcl9wcmVhbGxvY2F0ZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpZiAocmV0KSB7CiAJ CURSTV9ERUJVR19LTVMoImZhaWxlZCB0byBhbGxvY2F0ZSBzdG9sZW4gc3BhY2VcbiIpOwogCQlr ZnJlZShzdG9sZW4pOwotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIocmV0KTsKIAl9 CiAKIAlvYmogPSBfaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oZGV2LCBzdG9sZW4pOwot CWlmIChvYmogPT0gTlVMTCkgeworCWlmIChJU19FUlIob2JqKSkgewogCQlEUk1fREVCVUdfS01T KCJmYWlsZWQgdG8gYWxsb2NhdGUgc3RvbGVuIG9iamVjdFxuIik7CiAJCWk5MTVfZ2VtX3N0b2xl bl9yZW1vdmVfbm9kZShkZXZfcHJpdiwgc3RvbGVuKTsKIAkJa2ZyZWUoc3RvbGVuKTsKLQkJcmV0 dXJuIE5VTEw7CisJCXJldHVybiBvYmo7CiAJfQogCiAJLyogU29tZSBvYmplY3RzIGp1c3QgbmVl ZCBwaHlzaWNhbCBtZW0gZnJvbSBzdG9sZW4gc3BhY2UgKi8KQEAgLTY5OCw1ICs3MDMsNSBAQCBp OTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbl9mb3JfcHJlYWxsb2NhdGVkKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCiAKIGVycjoKIAlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgmb2JqLT5i YXNlKTsKLQlyZXR1cm4gTlVMTDsKKwlyZXR1cm4gRVJSX1BUUihyZXQpOwogfQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCmluZGV4IDRhYzg4NjcuLmFhMzhhZTQg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKQEAgLTY0NSwy MiArNjQ1LDI0IEBAIGludCBpOTE1X2d1Y19zdWJtaXQoc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAq Y2xpZW50LAogICogb2JqZWN0IG5lZWRzIHRvIGJlIHBpbm5lZCBsaWZldGltZS4gQWxzbyB3ZSBt dXN0IHBpbiBpdCB0byBndHQgc3BhY2Ugb3RoZXIKICAqIHRoYW4gWzAsIEdVQ19XT1BDTV9UT1Ap IGJlY2F1c2UgdGhpcyByYW5nZSBpcyByZXNlcnZlZCBpbnNpZGUgR3VDLgogICoKLSAqIFJldHVy bjoJQSBkcm1faTkxNV9nZW1fb2JqZWN0IGlmIHN1Y2Nlc3NmdWwsIG90aGVyd2lzZSBOVUxMLgor ICogUmV0dXJuOglBIGRybV9pOTE1X2dlbV9vYmplY3QgaWYgc3VjY2Vzc2Z1bCwgb3RoZXJ3aXNl IGVycm9yIHBvaW50ZXIuCiAgKi8KIHN0YXRpYyBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq Z2VtX2FsbG9jYXRlX2d1Y19vYmooc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkJCQl1MzIg c2l6ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9w cml2YXRlOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CisJaW50IHJldDsKIAog CW9iaiA9IGk5MTVfZ2VtX2FsbG9jX29iamVjdChkZXYsIHNpemUpOwotCWlmICghb2JqKQotCQly ZXR1cm4gTlVMTDsKKwlpZiAoSVNfRVJSKG9iaikpCisJCXJldHVybiBvYmo7CiAKLQlpZiAoaTkx NV9nZW1fb2JqX2dndHRfcGluKG9iaiwgUEFHRV9TSVpFLAotCQkJUElOX09GRlNFVF9CSUFTIHwg R1VDX1dPUENNX1RPUCkpIHsKKwlyZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9waW4ob2JqLCBQQUdF X1NJWkUsCisJCQkJICAgIFBJTl9PRkZTRVRfQklBUyB8IEdVQ19XT1BDTV9UT1ApOworCWlmIChy ZXQpIHsKIAkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJm9iai0+YmFzZSk7Ci0JCXJldHVy biBOVUxMOworCQlyZXR1cm4gRVJSX1BUUihyZXQpOwogCX0KIAogCS8qIEludmFsaWRhdGUgR3VD IFRMQiB0byBsZXQgR3VDIHRha2UgdGhlIGxhdGVzdCB1cGRhdGVzIHRvIEdUVC4gKi8KQEAgLTcz OCwxMCArNzQwLDExIEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50ICpndWNfY2xpZW50 X2FsbG9jKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAm ZGV2X3ByaXYtPmd1YzsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOworCWludCBy ZXQ7CiAKIAljbGllbnQgPSBremFsbG9jKHNpemVvZigqY2xpZW50KSwgR0ZQX0tFUk5FTCk7CiAJ aWYgKCFjbGllbnQpCi0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsK IAogCWNsaWVudC0+ZG9vcmJlbGxfaWQgPSBHVUNfSU5WQUxJRF9ET09SQkVMTF9JRDsKIAljbGll bnQtPnByaW9yaXR5ID0gcHJpb3JpdHk7CkBAIC03NTIsMTMgKzc1NSwxNiBAQCBzdGF0aWMgc3Ry dWN0IGk5MTVfZ3VjX2NsaWVudCAqZ3VjX2NsaWVudF9hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAogCQkJR1VDX01BWF9HUFVfQ09OVEVYVFMsIEdGUF9LRVJORUwpOwogCWlmIChjbGllbnQt PmN0eF9pbmRleCA+PSBHVUNfTUFYX0dQVV9DT05URVhUUykgewogCQljbGllbnQtPmN0eF9pbmRl eCA9IEdVQ19JTlZBTElEX0NUWF9JRDsKKwkJcmV0ID0gLUVJTlZBTDsKIAkJZ290byBlcnI7CiAJ fQogCiAJLyogVGhlIGZpcnN0IHBhZ2UgaXMgZG9vcmJlbGwvcHJvY19kZXNjLiBUd28gZm9sbG93 ZWQgcGFnZXMgYXJlIHdxLiAqLwogCW9iaiA9IGdlbV9hbGxvY2F0ZV9ndWNfb2JqKGRldiwgR1VD X0RCX1NJWkUgKyBHVUNfV1FfU0laRSk7Ci0JaWYgKCFvYmopCisJaWYgKElTX0VSUihvYmopKSB7 CisJCXJldCA9IFBUUl9FUlIob2JqKTsKIAkJZ290byBlcnI7CisJfQogCiAJY2xpZW50LT5jbGll bnRfb2JqID0gb2JqOwogCWNsaWVudC0+d3Ffb2Zmc2V0ID0gR1VDX0RCX1NJWkU7CkBAIC03Nzgs OSArNzg0LDExIEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50ICpndWNfY2xpZW50X2Fs bG9jKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCWNsaWVudC0+cHJvY19kZXNjX29mZnNldCA9 IChHVUNfREJfU0laRSAvIDIpOwogCiAJY2xpZW50LT5kb29yYmVsbF9pZCA9IGFzc2lnbl9kb29y YmVsbChndWMsIGNsaWVudC0+cHJpb3JpdHkpOwotCWlmIChjbGllbnQtPmRvb3JiZWxsX2lkID09 IEdVQ19JTlZBTElEX0RPT1JCRUxMX0lEKQorCWlmIChjbGllbnQtPmRvb3JiZWxsX2lkID09IEdV Q19JTlZBTElEX0RPT1JCRUxMX0lEKSB7CiAJCS8qIFhYWDogZXZpY3QgYSBkb29yYmVsbCBpbnN0 ZWFkICovCisJCXJldCA9IC1FSU5WQUw7CiAJCWdvdG8gZXJyOworCX0KIAogCWd1Y19pbml0X3By b2NfZGVzYyhndWMsIGNsaWVudCk7CiAJZ3VjX2luaXRfY3R4X2Rlc2MoZ3VjLCBjbGllbnQpOwpA QCAtNzg4LDcgKzc5Niw4IEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50ICpndWNfY2xp ZW50X2FsbG9jKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIAkvKiBYWFg6IEFueSBjYWNoZSBm bHVzaGVzIG5lZWRlZD8gR2VuZXJhbCBkb21haW4gbWdtdCBjYWxscz8gKi8KIAotCWlmIChob3N0 Mmd1Y19hbGxvY2F0ZV9kb29yYmVsbChndWMsIGNsaWVudCkpCisJcmV0ID0gaG9zdDJndWNfYWxs b2NhdGVfZG9vcmJlbGwoZ3VjLCBjbGllbnQpOworCWlmIChyZXQpCiAJCWdvdG8gZXJyOwogCiAJ RFJNX0RFQlVHX0RSSVZFUigibmV3IHByaW9yaXR5ICV1IGNsaWVudCAlcDogY3R4X2luZGV4ICV1 IGRiX2lkICV1XG4iLApAQCAtODAwLDcgKzgwOSw3IEBAIGVycjoKIAlEUk1fRVJST1IoIkZBSUxF RCB0byBjcmVhdGUgcHJpb3JpdHkgJXUgR3VDIGNsaWVudCFcbiIsIHByaW9yaXR5KTsKIAogCWd1 Y19jbGllbnRfZnJlZShkZXYsIGNsaWVudCk7Ci0JcmV0dXJuIE5VTEw7CisJcmV0dXJuIEVSUl9Q VFIocmV0KTsKIH0KIAogc3RhdGljIHZvaWQgZ3VjX2NyZWF0ZV9sb2coc3RydWN0IGludGVsX2d1 YyAqZ3VjKQpAQCAtODI1LDcgKzgzNCw3IEBAIHN0YXRpYyB2b2lkIGd1Y19jcmVhdGVfbG9nKHN0 cnVjdCBpbnRlbF9ndWMgKmd1YykKIAlvYmogPSBndWMtPmxvZ19vYmo7CiAJaWYgKCFvYmopIHsK IAkJb2JqID0gZ2VtX2FsbG9jYXRlX2d1Y19vYmooZGV2X3ByaXYtPmRldiwgc2l6ZSk7Ci0JCWlm ICghb2JqKSB7CisJCWlmIChJU19FUlIob2JqKSkgewogCQkJLyogbG9nZ2luZyB3aWxsIGJlIG9m ZiAqLwogCQkJaTkxNS5ndWNfbG9nX2xldmVsID0gLTE7CiAJCQlyZXR1cm47CkBAIC04NTUsNiAr ODY0LDcgQEAgaW50IGk5MTVfZ3VjX3N1Ym1pc3Npb25faW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQogCWNvbnN0IHNpemVfdCBwb29sc2l6ZSA9IEdVQ19NQVhfR1BVX0NPTlRFWFRTICogY3R4 c2l6ZTsKIAljb25zdCBzaXplX3QgZ2Vtc2l6ZSA9IHJvdW5kX3VwKHBvb2xzaXplLCBQQUdFX1NJ WkUpOwogCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZkZXZfcHJpdi0+Z3VjOworCWludCByZXQg PSAwOwogCiAJaWYgKCFpOTE1LmVuYWJsZV9ndWNfc3VibWlzc2lvbikKIAkJcmV0dXJuIDA7IC8q IG5vdCBlbmFibGVkICAqLwpAQCAtODYzLDggKzg3MywxMSBAQCBpbnQgaTkxNV9ndWNfc3VibWlz c2lvbl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCXJldHVybiAwOyAvKiBhbHJlYWR5 IGFsbG9jYXRlZCAqLwogCiAJZ3VjLT5jdHhfcG9vbF9vYmogPSBnZW1fYWxsb2NhdGVfZ3VjX29i aihkZXZfcHJpdi0+ZGV2LCBnZW1zaXplKTsKLQlpZiAoIWd1Yy0+Y3R4X3Bvb2xfb2JqKQotCQly ZXR1cm4gLUVOT01FTTsKKwlpZiAoSVNfRVJSKGd1Yy0+Y3R4X3Bvb2xfb2JqKSkgeworCQlyZXQg PSBQVFJfRVJSKGd1Yy0+Y3R4X3Bvb2xfb2JqKTsKKwkJZ3VjLT5jdHhfcG9vbF9vYmogPSBOVUxM OworCQlyZXR1cm4gcmV0OworCX0KIAogCXNwaW5fbG9ja19pbml0KCZkZXZfcHJpdi0+Z3VjLmhv c3QyZ3VjX2xvY2spOwogCkBAIC04ODQsOSArODk3LDkgQEAgaW50IGk5MTVfZ3VjX3N1Ym1pc3Np b25fZW5hYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAkvKiBjbGllbnQgZm9yIGV4ZWNi dWYgc3VibWlzc2lvbiAqLwogCWNsaWVudCA9IGd1Y19jbGllbnRfYWxsb2MoZGV2LCBHVUNfQ1RY X1BSSU9SSVRZX0tNRF9OT1JNQUwsIGN0eCk7Ci0JaWYgKCFjbGllbnQpIHsKKwlpZiAoSVNfRVJS KGNsaWVudCkpIHsKIAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIGV4ZWNidWYgZ3VjX2Ns aWVudFxuIik7Ci0JCXJldHVybiAtRU5PTUVNOworCQlyZXR1cm4gUFRSX0VSUihjbGllbnQpOwog CX0KIAogCWd1Yy0+ZXhlY2J1Zl9jbGllbnQgPSBjbGllbnQ7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMKaW5kZXggNzc5NzllZC4uZjI4MWUwYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYwpAQCAtMjU0Niw3ICsyNTQ2LDcgQEAgaW50ZWxfYWxsb2NfaW5pdGlhbF9w bGFuZV9vYmooc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJCQkJCQkJICAgICBiYXNlX2FsaWdu ZWQsCiAJCQkJCQkJICAgICBiYXNlX2FsaWduZWQsCiAJCQkJCQkJICAgICBzaXplX2FsaWduZWQp OwotCWlmICghb2JqKQorCWlmIChJU19FUlIob2JqKSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJb2Jq LT50aWxpbmdfbW9kZSA9IHBsYW5lX2NvbmZpZy0+dGlsaW5nOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2ZiZGV2LmMKaW5kZXggODQwZDZiZi4uZjQzNjgxZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZmJkZXYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9m YmRldi5jCkBAIC0xNDYsMTEgKzE0NiwxMSBAQCBzdGF0aWMgaW50IGludGVsZmJfYWxsb2Moc3Ry dWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKIAkgKiBmZWF0dXJlcy4gKi8KIAlpZiAoc2l6ZSAq IDIgPCBkZXZfcHJpdi0+Z3R0LnN0b2xlbl91c2FibGVfc2l6ZSkKIAkJb2JqID0gaTkxNV9nZW1f b2JqZWN0X2NyZWF0ZV9zdG9sZW4oZGV2LCBzaXplKTsKLQlpZiAob2JqID09IE5VTEwpCisJaWYg KElTX0VSUl9PUl9OVUxMKG9iaikpCiAJCW9iaiA9IGk5MTVfZ2VtX2FsbG9jX29iamVjdChkZXYs IHNpemUpOwotCWlmICghb2JqKSB7CisJaWYgKElTX0VSUihvYmopKSB7CiAJCURSTV9FUlJPUigi ZmFpbGVkIHRvIGFsbG9jYXRlIGZyYW1lYnVmZmVyXG4iKTsKLQkJcmV0ID0gLUVOT01FTTsKKwkJ cmV0ID0gUFRSX0VSUihvYmopOwogCQlnb3RvIG91dDsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmMKaW5kZXggMDYxODBkYy4uNDUzOWNjNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfbHJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMK QEAgLTEzNjQsOSArMTM2NCwxMSBAQCBzdGF0aWMgaW50IGxyY19zZXR1cF93YV9jdHhfb2JqKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIHUzMiBzaXplKQogCWludCByZXQ7CiAKIAlyaW5n LT53YV9jdHgub2JqID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KHJpbmctPmRldiwgUEFHRV9BTElH TihzaXplKSk7Ci0JaWYgKCFyaW5nLT53YV9jdHgub2JqKSB7CisJaWYgKElTX0VSUihyaW5nLT53 YV9jdHgub2JqKSkgewogCQlEUk1fREVCVUdfRFJJVkVSKCJhbGxvYyBMUkMgV0EgY3R4IGJhY2tp bmcgb2JqIGZhaWxlZC5cbiIpOwotCQlyZXR1cm4gLUVOT01FTTsKKwkJcmV0ID0gUFRSX0VSUihy aW5nLT53YV9jdHgub2JqKTsKKwkJcmluZy0+d2FfY3R4Lm9iaiA9IE5VTEw7CisJCXJldHVybiBy ZXQ7CiAJfQogCiAJcmV0ID0gaTkxNV9nZW1fb2JqX2dndHRfcGluKHJpbmctPndhX2N0eC5vYmos IFBBR0VfU0laRSwgMCk7CkBAIC0yNDcxLDkgKzI0NzMsOSBAQCBpbnQgaW50ZWxfbHJfY29udGV4 dF9kZWZlcnJlZF9hbGxvYyhzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAogCWNvbnRleHRfc2l6 ZSArPSBQQUdFX1NJWkUgKiBMUkNfUFBIV1NQX1BOOwogCiAJY3R4X29iaiA9IGk5MTVfZ2VtX2Fs bG9jX29iamVjdChkZXYsIGNvbnRleHRfc2l6ZSk7Ci0JaWYgKCFjdHhfb2JqKSB7CisJaWYgKElT X0VSUihjdHhfb2JqKSkgewogCQlEUk1fREVCVUdfRFJJVkVSKCJBbGxvYyBMUkMgYmFja2luZyBv YmogZmFpbGVkLlxuIik7Ci0JCXJldHVybiAtRU5PTUVNOworCQlyZXR1cm4gUFRSX0VSUihjdHhf b2JqKTsKIAl9CiAKIAlyaW5nYnVmID0gaW50ZWxfZW5naW5lX2NyZWF0ZV9yaW5nYnVmZmVyKHJp bmcsIDQgKiBQQUdFX1NJWkUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfb3ZlcmxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheS5jCmluZGV4 IDc2ZjE5ODAuLjNhNjU4NTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X292ZXJsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vdmVybGF5LmMKQEAg LTEzOTIsOSArMTM5Miw5IEBAIHZvaWQgaW50ZWxfc2V0dXBfb3ZlcmxheShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQogCXJlZ19ibyA9IE5VTEw7CiAJaWYgKCFPVkVSTEFZX05FRURTX1BIWVNJQ0FM KGRldikpCiAJCXJlZ19ibyA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuKGRldiwgUEFH RV9TSVpFKTsKLQlpZiAocmVnX2JvID09IE5VTEwpCisJaWYgKElTX0VSUl9PUl9OVUxMKHJlZ19i bykpCiAJCXJlZ19ibyA9IGk5MTVfZ2VtX2FsbG9jX29iamVjdChkZXYsIFBBR0VfU0laRSk7Ci0J aWYgKHJlZ19ibyA9PSBOVUxMKQorCWlmIChJU19FUlIocmVnX2JvKSkKIAkJZ290byBvdXRfZnJl ZTsKIAlvdmVybGF5LT5yZWdfYm8gPSByZWdfYm87CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmlu ZGV4IDY0N2MwZmYuLjZkZWU5MDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtNTE3Miw3 ICs1MTcyLDcgQEAgc3RhdGljIHZvaWQgdmFsbGV5dmlld19zZXR1cF9wY3R4KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCiAJICogbWVtb3J5LCBvciBhbnkgb3RoZXIgcmVsZXZhbnQgcmFuZ2VzLgog CSAqLwogCXBjdHggPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihkZXYsIHBjdHhfc2l6 ZSk7Ci0JaWYgKCFwY3R4KSB7CisJaWYgKElTX0VSUihwY3R4KSkgewogCQlEUk1fREVCVUcoIm5v dCBlbm91Z2ggc3RvbGVuIHNwYWNlIGZvciBQQ1RYLCBkaXNhYmxpbmdcbiIpOwogCQlyZXR1cm47 CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCmluZGV4IGM5YjA4MWYu LjVlYWJhZjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKQEAgLTY3 OCw5ICs2NzgsMTAgQEAgaW50ZWxfaW5pdF9waXBlX2NvbnRyb2woc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqcmluZykKIAlXQVJOX09OKHJpbmctPnNjcmF0Y2gub2JqKTsKIAogCXJpbmctPnNjcmF0 Y2gub2JqID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KHJpbmctPmRldiwgNDA5Nik7Ci0JaWYgKHJp bmctPnNjcmF0Y2gub2JqID09IE5VTEwpIHsKKwlpZiAoSVNfRVJSKHJpbmctPnNjcmF0Y2gub2Jq KSkgewogCQlEUk1fRVJST1IoIkZhaWxlZCB0byBhbGxvY2F0ZSBzZXFubyBwYWdlXG4iKTsKLQkJ cmV0ID0gLUVOT01FTTsKKwkJcmV0ID0gUFRSX0VSUihyaW5nLT5zY3JhdGNoLm9iaik7CisJCXJp bmctPnNjcmF0Y2gub2JqID0gTlVMTDsKIAkJZ290byBlcnI7CiAJfQogCkBAIC0xOTM1LDkgKzE5 MzYsOSBAQCBzdGF0aWMgaW50IGluaXRfc3RhdHVzX3BhZ2Uoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqcmluZykKIAkJaW50IHJldDsKIAogCQlvYmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3Qocmlu Zy0+ZGV2LCA0MDk2KTsKLQkJaWYgKG9iaiA9PSBOVUxMKSB7CisJCWlmIChJU19FUlIob2JqKSkg ewogCQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYWxsb2NhdGUgc3RhdHVzIHBhZ2VcbiIpOwotCQkJ cmV0dXJuIC1FTk9NRU07CisJCQlyZXR1cm4gUFRSX0VSUihvYmopOwogCQl9CiAKIAkJcmV0ID0g aTkxNV9nZW1fb2JqZWN0X3NldF9jYWNoZV9sZXZlbChvYmosIEk5MTVfQ0FDSEVfTExDKTsKQEAg LTIwODQsMTAgKzIwODUsMTAgQEAgc3RhdGljIGludCBpbnRlbF9hbGxvY19yaW5nYnVmZmVyX29i aihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCW9iaiA9IE5VTEw7CiAJaWYgKCFIQVNfTExDKGRl dikpCiAJCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuKGRldiwgcmluZ2J1Zi0+ c2l6ZSk7Ci0JaWYgKG9iaiA9PSBOVUxMKQorCWlmIChJU19FUlJfT1JfTlVMTChvYmopKQogCQlv YmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCByaW5nYnVmLT5zaXplKTsKLQlpZiAob2Jq ID09IE5VTEwpCi0JCXJldHVybiAtRU5PTUVNOworCWlmIChJU19FUlIob2JqKSkKKwkJcmV0dXJu IFBUUl9FUlIob2JqKTsKIAogCS8qIG1hcmsgcmluZyBidWZmZXJzIGFzIHJlYWQtb25seSBmcm9t IEdQVSBzaWRlIGJ5IGRlZmF1bHQgKi8KIAlvYmotPmd0X3JvID0gMTsKQEAgLTI2NzgsNyArMjY3 OSw3IEBAIGludCBpbnRlbF9pbml0X3JlbmRlcl9yaW5nX2J1ZmZlcihzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQogCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA4KSB7CiAJCWlmIChpOTE1X3Nl bWFwaG9yZV9pc19lbmFibGVkKGRldikpIHsKIAkJCW9iaiA9IGk5MTVfZ2VtX2FsbG9jX29iamVj dChkZXYsIDQwOTYpOwotCQkJaWYgKG9iaiA9PSBOVUxMKSB7CisJCQlpZiAoSVNfRVJSKG9iaikp IHsKIAkJCQlEUk1fRVJST1IoIkZhaWxlZCB0byBhbGxvY2F0ZSBzZW1hcGhvcmUgYm8uIERpc2Fi bGluZyBzZW1hcGhvcmVzXG4iKTsKIAkJCQlpOTE1LnNlbWFwaG9yZXMgPSAwOwogCQkJfSBlbHNl IHsKQEAgLTI3ODUsOSArMjc4Niw5IEBAIGludCBpbnRlbF9pbml0X3JlbmRlcl9yaW5nX2J1ZmZl cihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCS8qIFdvcmthcm91bmQgYmF0Y2hidWZmZXIgdG8g Y29tYmF0IENTIHRsYiBidWcuICovCiAJaWYgKEhBU19CUk9LRU5fQ1NfVExCKGRldikpIHsKIAkJ b2JqID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KGRldiwgSTgzMF9XQV9TSVpFKTsKLQkJaWYgKG9i aiA9PSBOVUxMKSB7CisJCWlmIChJU19FUlIob2JqKSkgewogCQkJRFJNX0VSUk9SKCJGYWlsZWQg dG8gYWxsb2NhdGUgYmF0Y2ggYm9cbiIpOwotCQkJcmV0dXJuIC1FTk9NRU07CisJCQlyZXR1cm4g UFRSX0VSUihvYmopOwogCQl9CiAKIAkJcmV0ID0gaTkxNV9nZW1fb2JqX2dndHRfcGluKG9iaiwg MCwgMCk7Ci0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK