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: Thu, 4 Feb 2016 15:00:07 +0530 Message-ID: <1454578211-24823-7-git-send-email-ankitprasad.r.sharma@intel.com> References: <1454578211-24823-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 mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id 430886E846 for ; Thu, 4 Feb 2016 01:53:16 -0800 (PST) In-Reply-To: <1454578211-24823-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, Ankitprasad Sharma , 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 IChDaHJpcykKCnY3OiBSZXNvbHZlZCByZWJhc2luZyBjb25mbGljdHMgKEFua2l0KQoKdjg6IFJl bW92ZWQgcmVkdW5kYW50IGNvZGUgKENocmlzKQoKU2lnbmVkLW9mZi1ieTogQW5raXRwcmFzYWQg U2hhcm1hIDxhbmtpdHByYXNhZC5yLnNoYXJtYUBpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBDaHJp cyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbS5jICAgICAgICAgICAgICB8IDIzICsrKysrKy0tLS0tLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fYmF0Y2hfcG9vbC5jICAgfCAgNCArLS0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyAgICAgIHwgIDQgKy0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9yZW5kZXJfc3RhdGUuYyB8ICA3ICsrLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jICAgICAgIHwgNTMgKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jICAgfCA1 MiArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYyAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Zi ZGV2LmMgICAgICAgICAgIHwgIDYgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmMgICAgICAgICAgICAgfCAxMCArKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292 ZXJsYXkuYyAgICAgICAgIHwgIDQgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5j ICAgICAgICAgICAgICB8ICA3ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuYyAgICAgIHwgMjEgKysrKystLS0tLS0KIDEyIGZpbGVzIGNoYW5nZWQsIDExMCBpbnNl cnRpb25zKCspLCA4MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCA2 MGQyN2ZlLi5kNjNmMThjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTM5NywxOSArMzk3 LDE4IEBAIGk5MTVfZ2VtX2FsbG9jX29iamVjdF9zdG9sZW4oc3RydWN0IGRybV9kZXZpY2UgKmRl diwgc2l6ZV90IHNpemUpCiAKIAltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CiAJb2Jq ID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oZGV2LCBzaXplKTsKLQlpZiAoIW9iaikg ewotCQltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKLQkJcmV0dXJuIE5VTEw7Ci0J fQorCWlmIChJU19FUlIob2JqKSkKKwkJZ290byBvdXQ7CiAKIAkvKiBBbHdheXMgY2xlYXIgZnJl c2ggYnVmZmVycyBiZWZvcmUgaGFuZGluZyB0byB1c2Vyc3BhY2UgKi8KIAlyZXQgPSBpOTE1X2dl bV9vYmplY3RfY2xlYXIob2JqKTsKIAlpZiAocmV0KSB7CiAJCWRybV9nZW1fb2JqZWN0X3VucmVm ZXJlbmNlKCZvYmotPmJhc2UpOwotCQltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsK LQkJcmV0dXJuIE5VTEw7CisJCW9iaiA9IEVSUl9QVFIocmV0KTsKKwkJZ290byBvdXQ7CiAJfQog CitvdXQ6CiAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CiAJcmV0dXJuIG9iajsK IH0KQEAgLTQ0NCw4ICs0NDMsOCBAQCBpOTE1X2dlbV9jcmVhdGUoc3RydWN0IGRybV9maWxlICpm aWxlLAogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlpZiAob2JqID09IE5VTEwpCi0JCXJldHVy biAtRU5PTUVNOworCWlmIChJU19FUlIob2JqKSkKKwkJcmV0dXJuIFBUUl9FUlIob2JqKTsKIAog CXJldCA9IGRybV9nZW1faGFuZGxlX2NyZWF0ZShmaWxlLCAmb2JqLT5iYXNlLCAmaGFuZGxlKTsK IAkvKiBkcm9wIHJlZmVyZW5jZSBmcm9tIGFsbG9jYXRlIC0gaGFuZGxlIGhvbGRzIGl0IG5vdyAq LwpAQCAtNDU2MiwxNCArNDU2MSwxNiBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqaTkx NV9nZW1fYWxsb2Nfb2JqZWN0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iajsKIAlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZzsKIAln ZnBfdCBtYXNrOworCWludCByZXQ7CiAKIAlvYmogPSBpOTE1X2dlbV9vYmplY3RfYWxsb2MoZGV2 KTsKIAlpZiAob2JqID09IE5VTEwpCi0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BUUigt RU5PTUVNKTsKIAotCWlmIChkcm1fZ2VtX29iamVjdF9pbml0KGRldiwgJm9iai0+YmFzZSwgc2l6 ZSkgIT0gMCkgeworCXJldCA9IGRybV9nZW1fb2JqZWN0X2luaXQoZGV2LCAmb2JqLT5iYXNlLCBz aXplKTsKKwlpZiAocmV0KSB7CiAJCWk5MTVfZ2VtX29iamVjdF9mcmVlKG9iaik7Ci0JCXJldHVy biBOVUxMOworCQlyZXR1cm4gRVJSX1BUUihyZXQpOwogCX0KIAogCW1hc2sgPSBHRlBfSElHSFVT RVIgfCBfX0dGUF9SRUNMQUlNQUJMRTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2JhdGNoX3Bvb2wuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2Jh dGNoX3Bvb2wuYwppbmRleCA3YmYyZjNmLi5kNzljYWEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9iYXRjaF9wb29sLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fYmF0Y2hfcG9vbC5jCkBAIC0xMzUsOCArMTM1LDggQEAgaTkxNV9nZW1fYmF0 Y2hfcG9vbF9nZXQoc3RydWN0IGk5MTVfZ2VtX2JhdGNoX3Bvb2wgKnBvb2wsCiAJCWludCByZXQ7 CiAKIAkJb2JqID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KHBvb2wtPmRldiwgc2l6ZSk7Ci0JCWlm IChvYmogPT0gTlVMTCkKLQkJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCQlpZiAoSVNfRVJS KG9iaikpCisJCQlyZXR1cm4gb2JqOwogCiAJCXJldCA9IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFn ZXMob2JqKTsKIAkJaWYgKHJldCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2NvbnRleHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQu YwppbmRleCA4M2EwOTdjLi4yZGQ1ZmVkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9jb250ZXh0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f Y29udGV4dC5jCkBAIC0xNzksOCArMTc5LDggQEAgaTkxNV9nZW1fYWxsb2NfY29udGV4dF9vYmoo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgc2l6ZV90IHNpemUpCiAJaW50IHJldDsKIAogCW9iaiA9 IGk5MTVfZ2VtX2FsbG9jX29iamVjdChkZXYsIHNpemUpOwotCWlmIChvYmogPT0gTlVMTCkKLQkJ cmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisJaWYgKElTX0VSUihvYmopKQorCQlyZXR1cm4gb2Jq OwogCiAJLyoKIAkgKiBUcnkgdG8gbWFrZSB0aGUgY29udGV4dCB1dGlsaXplIEwzIGFzIHdlbGwg YXMgTExDLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVy X3N0YXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZW5kZXJfc3RhdGUuYwpp bmRleCBmYzdlNmQ1Li5hMmMzZjQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9yZW5kZXJfc3RhdGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9yZW5kZXJfc3RhdGUuYwpAQCAtNTgsOCArNTgsMTEgQEAgc3RhdGljIGludCByZW5kZXJfc3Rh dGVfaW5pdChzdHJ1Y3QgcmVuZGVyX3N0YXRlICpzbywgc3RydWN0IGRybV9kZXZpY2UgKmRldikK IAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlzby0+b2JqID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KGRl diwgNDA5Nik7Ci0JaWYgKHNvLT5vYmogPT0gTlVMTCkKLQkJcmV0dXJuIC1FTk9NRU07CisJaWYg KElTX0VSUihzby0+b2JqKSkgeworCQlyZXQgPSBQVFJfRVJSKHNvLT5vYmopOworCQlzby0+b2Jq ID0gTlVMTDsKKwkJcmV0dXJuIHJldDsKKwl9CiAKIAlyZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9w aW4oc28tPm9iaiwgNDA5NiwgMCk7CiAJaWYgKHJldCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fc3RvbGVuLmMKaW5kZXggODIwMzE1Ny4uNGRhZjI4ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fc3RvbGVuLmMKQEAgLTQ5Miw2ICs0OTIsNyBAQCBpOTE1X3BhZ2VzX2NyZWF0ZV9m b3Jfc3RvbGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3Qgc2dfdGFibGUgKnN0Owog CXN0cnVjdCBzY2F0dGVybGlzdCAqc2c7CisJaW50IHJldDsKIAogCURSTV9ERUJVR19EUklWRVIo Im9mZnNldD0weCV4LCBzaXplPSVkXG4iLCBvZmZzZXQsIHNpemUpOwogCUJVR19PTihvZmZzZXQg PiBkZXZfcHJpdi0+Z3R0LnN0b2xlbl9zaXplIC0gc2l6ZSk7CkBAIC01MDMsMTEgKzUwNCwxMiBA QCBpOTE1X3BhZ2VzX2NyZWF0ZV9mb3Jfc3RvbGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAK IAlzdCA9IGttYWxsb2Moc2l6ZW9mKCpzdCksIEdGUF9LRVJORUwpOwogCWlmIChzdCA9PSBOVUxM KQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKLQlpZiAoc2df YWxsb2NfdGFibGUoc3QsIDEsIEdGUF9LRVJORUwpKSB7CisJcmV0ID0gc2dfYWxsb2NfdGFibGUo c3QsIDEsIEdGUF9LRVJORUwpOworCWlmIChyZXQpIHsKIAkJa2ZyZWUoc3QpOwotCQlyZXR1cm4g TlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIocmV0KTsKIAl9CiAKIAlzZyA9IHN0LT5zZ2w7CkBAIC01 NTYsMTggKzU1OCwyMyBAQCBfaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKIAkJCSAgICAgICBzdHJ1Y3QgZHJtX21tX25vZGUgKnN0b2xlbikKIHsK IAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOworCXN0cnVjdCBzZ190YWJsZSAqcGFn ZXM7CiAKIAlvYmogPSBpOTE1X2dlbV9vYmplY3RfYWxsb2MoZGV2KTsKIAlpZiAob2JqID09IE5V TEwpCi0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAogCWRybV9n ZW1fcHJpdmF0ZV9vYmplY3RfaW5pdChkZXYsICZvYmotPmJhc2UsIHN0b2xlbi0+c2l6ZSk7CiAJ aTkxNV9nZW1fb2JqZWN0X2luaXQob2JqLCAmaTkxNV9nZW1fb2JqZWN0X3N0b2xlbl9vcHMpOwog Ci0Jb2JqLT5wYWdlcyA9IGk5MTVfcGFnZXNfY3JlYXRlX2Zvcl9zdG9sZW4oZGV2LAotCQkJCQkJ ICBzdG9sZW4tPnN0YXJ0LCBzdG9sZW4tPnNpemUpOwotCWlmIChvYmotPnBhZ2VzID09IE5VTEwp Ci0JCWdvdG8gY2xlYW51cDsKKwlwYWdlcyA9IGk5MTVfcGFnZXNfY3JlYXRlX2Zvcl9zdG9sZW4o ZGV2LAorCQkJCQkgICAgIHN0b2xlbi0+c3RhcnQsIHN0b2xlbi0+c2l6ZSk7CisJaWYgKElTX0VS UihwYWdlcykpIHsKKwkJaTkxNV9nZW1fb2JqZWN0X2ZyZWUob2JqKTsKKwkJcmV0dXJuIEVSUl9D QVNUKHBhZ2VzKTsKKwl9CisKKwlvYmotPnBhZ2VzID0gcGFnZXM7CiAKIAlvYmotPmdldF9wYWdl LnNnID0gb2JqLT5wYWdlcy0+c2dsOwogCW9iai0+Z2V0X3BhZ2UubGFzdCA9IDA7CkBAIC01Nzks MTAgKzU4Niw2IEBAIF9pOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAogCW9iai0+Y2FjaGVfbGV2ZWwgPSBIQVNfTExDKGRldikgPyBJOTE1X0NBQ0hF X0xMQyA6IEk5MTVfQ0FDSEVfTk9ORTsKIAogCXJldHVybiBvYmo7Ci0KLWNsZWFudXA6Ci0JaTkx NV9nZW1fb2JqZWN0X2ZyZWUob2JqKTsKLQlyZXR1cm4gTlVMTDsKIH0KIAogc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKgpAQCAtNTk0LDI5ICs1OTcsMjkgQEAgaTkxNV9nZW1fb2JqZWN0X2Ny ZWF0ZV9zdG9sZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTY0IHNpemUpCiAJaW50IHJldDsK IAogCWlmICghZHJtX21tX2luaXRpYWxpemVkKCZkZXZfcHJpdi0+bW0uc3RvbGVuKSkKLQkJcmV0 dXJuIE5VTEw7CisJCXJldHVybiBFUlJfUFRSKC1FTk9ERVYpOwogCiAJRFJNX0RFQlVHX0tNUygi Y3JlYXRpbmcgc3RvbGVuIG9iamVjdDogc2l6ZT0lbGx4XG4iLCBzaXplKTsKIAlpZiAoc2l6ZSA9 PSAwKQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CiAKIAlzdG9s ZW4gPSBremFsbG9jKHNpemVvZigqc3RvbGVuKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFzdG9sZW4p Ci0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAogCXJldCA9IGk5 MTVfZ2VtX3N0b2xlbl9pbnNlcnRfbm9kZShkZXZfcHJpdiwgc3RvbGVuLCBzaXplLCA0MDk2KTsK IAlpZiAocmV0KSB7CiAJCWtmcmVlKHN0b2xlbik7Ci0JCXJldHVybiBOVUxMOworCQlyZXR1cm4g RVJSX1BUUihyZXQpOwogCX0KIAogCW9iaiA9IF9pOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xl bihkZXYsIHN0b2xlbik7Ci0JaWYgKG9iaikKKwlpZiAoIUlTX0VSUihvYmopKQogCQlyZXR1cm4g b2JqOwogCiAJaTkxNV9nZW1fc3RvbGVuX3JlbW92ZV9ub2RlKGRldl9wcml2LCBzdG9sZW4pOwog CWtmcmVlKHN0b2xlbik7Ci0JcmV0dXJuIE5VTEw7CisJcmV0dXJuIG9iajsKIH0KIAogc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKgpAQCAtNjMzLDcgKzYzNiw3IEBAIGk5MTVfZ2VtX29iamVj dF9jcmVhdGVfc3RvbGVuX2Zvcl9wcmVhbGxvY2F0ZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK IAlpbnQgcmV0OwogCiAJaWYgKCFkcm1fbW1faW5pdGlhbGl6ZWQoJmRldl9wcml2LT5tbS5zdG9s ZW4pKQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT0RFVik7CiAKIAlEUk1f REVCVUdfS01TKCJjcmVhdGluZyBwcmVhbGxvY2F0ZWQgc3RvbGVuIG9iamVjdDogc3RvbGVuX29m ZnNldD0leCwgZ3R0X29mZnNldD0leCwgc2l6ZT0leFxuIiwKIAkJCXN0b2xlbl9vZmZzZXQsIGd0 dF9vZmZzZXQsIHNpemUpOwpAQCAtNjQxLDExICs2NDQsMTEgQEAgaTkxNV9nZW1fb2JqZWN0X2Ny ZWF0ZV9zdG9sZW5fZm9yX3ByZWFsbG9jYXRlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCS8q IEtJU1MgYW5kIGV4cGVjdCBldmVyeXRoaW5nIHRvIGJlIHBhZ2UtYWxpZ25lZCAqLwogCWlmIChX QVJOX09OKHNpemUgPT0gMCkgfHwgV0FSTl9PTihzaXplICYgNDA5NSkgfHwKIAkgICAgV0FSTl9P TihzdG9sZW5fb2Zmc2V0ICYgNDA5NSkpCi0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BU UigtRUlOVkFMKTsKIAogCXN0b2xlbiA9IGt6YWxsb2Moc2l6ZW9mKCpzdG9sZW4pLCBHRlBfS0VS TkVMKTsKIAlpZiAoIXN0b2xlbikKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBFUlJfUFRSKC1F Tk9NRU0pOwogCiAJc3RvbGVuLT5zdGFydCA9IHN0b2xlbl9vZmZzZXQ7CiAJc3RvbGVuLT5zaXpl ID0gc2l6ZTsKQEAgLTY1NSwxNSArNjU4LDE1IEBAIGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3Rv bGVuX2Zvcl9wcmVhbGxvY2F0ZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpZiAocmV0KSB7 CiAJCURSTV9ERUJVR19LTVMoImZhaWxlZCB0byBhbGxvY2F0ZSBzdG9sZW4gc3BhY2VcbiIpOwog CQlrZnJlZShzdG9sZW4pOwotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIocmV0KTsK IAl9CiAKIAlvYmogPSBfaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oZGV2LCBzdG9sZW4p OwotCWlmIChvYmogPT0gTlVMTCkgeworCWlmIChJU19FUlIob2JqKSkgewogCQlEUk1fREVCVUdf S01TKCJmYWlsZWQgdG8gYWxsb2NhdGUgc3RvbGVuIG9iamVjdFxuIik7CiAJCWk5MTVfZ2VtX3N0 b2xlbl9yZW1vdmVfbm9kZShkZXZfcHJpdiwgc3RvbGVuKTsKIAkJa2ZyZWUoc3RvbGVuKTsKLQkJ cmV0dXJuIE5VTEw7CisJCXJldHVybiBvYmo7CiAJfQogCiAJLyogU29tZSBvYmplY3RzIGp1c3Qg bmVlZCBwaHlzaWNhbCBtZW0gZnJvbSBzdG9sZW4gc3BhY2UgKi8KQEAgLTcwMiw1ICs3MDUsNSBA QCBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbl9mb3JfcHJlYWxsb2NhdGVkKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCiAKIGVycjoKIAlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgmb2Jq LT5iYXNlKTsKLQlyZXR1cm4gTlVMTDsKKwlyZXR1cm4gRVJSX1BUUihyZXQpOwogfQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCmluZGV4IGQ3NTQzZWYuLjllZmNh NjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24u YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKQEAgLTYw NywyNyArNjA3LDMwIEBAIGludCBpOTE1X2d1Y19zdWJtaXQoc3RydWN0IGk5MTVfZ3VjX2NsaWVu dCAqY2xpZW50LAogICogb2JqZWN0IG5lZWRzIHRvIGJlIHBpbm5lZCBsaWZldGltZS4gQWxzbyB3 ZSBtdXN0IHBpbiBpdCB0byBndHQgc3BhY2Ugb3RoZXIKICAqIHRoYW4gWzAsIEdVQ19XT1BDTV9U T1ApIGJlY2F1c2UgdGhpcyByYW5nZSBpcyByZXNlcnZlZCBpbnNpZGUgR3VDLgogICoKLSAqIFJl dHVybjoJQSBkcm1faTkxNV9nZW1fb2JqZWN0IGlmIHN1Y2Nlc3NmdWwsIG90aGVyd2lzZSBOVUxM LgorICogUmV0dXJuOglBIGRybV9pOTE1X2dlbV9vYmplY3QgaWYgc3VjY2Vzc2Z1bCwgb3RoZXJ3 aXNlIGVycm9yIHBvaW50ZXIuCiAgKi8KIHN0YXRpYyBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqZ2VtX2FsbG9jYXRlX2d1Y19vYmooc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkJCQl1 MzIgc2l6ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRl dl9wcml2YXRlOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CisJaW50IHJldDsK IAogCW9iaiA9IGk5MTVfZ2VtX2FsbG9jX29iamVjdChkZXYsIHNpemUpOwotCWlmICghb2JqKQot CQlyZXR1cm4gTlVMTDsKKwlpZiAoSVNfRVJSKG9iaikpCisJCXJldHVybiBvYmo7CiAKLQlpZiAo aTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlcyhvYmopKSB7CisJcmV0ID0gaTkxNV9nZW1fb2JqZWN0 X2dldF9wYWdlcyhvYmopOworCWlmIChyZXQpIHsKIAkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVu Y2UoJm9iai0+YmFzZSk7Ci0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BUUihyZXQpOwog CX0KIAotCWlmIChpOTE1X2dlbV9vYmpfZ2d0dF9waW4ob2JqLCBQQUdFX1NJWkUsCi0JCQlQSU5f T0ZGU0VUX0JJQVMgfCBHVUNfV09QQ01fVE9QKSkgeworCXJldCA9IGk5MTVfZ2VtX29ial9nZ3R0 X3BpbihvYmosIFBBR0VfU0laRSwKKwkJCQkgICAgUElOX09GRlNFVF9CSUFTIHwgR1VDX1dPUENN X1RPUCk7CisJaWYgKHJldCkgewogCQlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgmb2JqLT5i YXNlKTsKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBFUlJfUFRSKHJldCk7CiAJfQogCiAJLyog SW52YWxpZGF0ZSBHdUMgVExCIHRvIGxldCBHdUMgdGFrZSB0aGUgbGF0ZXN0IHVwZGF0ZXMgdG8g R1RULiAqLwpAQCAtNjk1LDcgKzY5OCw3IEBAIHN0YXRpYyB2b2lkIGd1Y19jbGllbnRfZnJlZShz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogICogQGN0eDoJdGhlIGNvbnRleHQgdGhhdCBvd25zIHRo ZSBjbGllbnQgKHdlIHVzZSB0aGUgZGVmYXVsdCByZW5kZXIKICAqIAkJY29udGV4dCkKICAqCi0g KiBSZXR1cm46CUFuIGk5MTVfZ3VjX2NsaWVudCBvYmplY3QgaWYgc3VjY2Vzcy4KKyAqIFJldHVy bjoJQW4gaTkxNV9ndWNfY2xpZW50IG9iamVjdCBpZiBzdWNjZXNzLCBlcnJvciBwb2ludGVyIG9u IGZhaWx1cmUuCiAgKi8KIHN0YXRpYyBzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50ICpndWNfY2xpZW50 X2FsbG9jKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJCQl1aW50MzJfdCBwcmlvcml0eSwK QEAgLTcwNSwxMCArNzA4LDExIEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50ICpndWNf Y2xpZW50X2FsbG9jKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfZ3VjICpn dWMgPSAmZGV2X3ByaXYtPmd1YzsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwor CWludCByZXQ7CiAKIAljbGllbnQgPSBremFsbG9jKHNpemVvZigqY2xpZW50KSwgR0ZQX0tFUk5F TCk7CiAJaWYgKCFjbGllbnQpCi0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BUUigtRU5P TUVNKTsKIAogCWNsaWVudC0+ZG9vcmJlbGxfaWQgPSBHVUNfSU5WQUxJRF9ET09SQkVMTF9JRDsK IAljbGllbnQtPnByaW9yaXR5ID0gcHJpb3JpdHk7CkBAIC03MTksMTMgKzcyMywxNiBAQCBzdGF0 aWMgc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqZ3VjX2NsaWVudF9hbGxvYyhzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAogCQkJR1VDX01BWF9HUFVfQ09OVEVYVFMsIEdGUF9LRVJORUwpOwogCWlmIChj bGllbnQtPmN0eF9pbmRleCA+PSBHVUNfTUFYX0dQVV9DT05URVhUUykgewogCQljbGllbnQtPmN0 eF9pbmRleCA9IEdVQ19JTlZBTElEX0NUWF9JRDsKKwkJcmV0ID0gLUVJTlZBTDsKIAkJZ290byBl cnI7CiAJfQogCiAJLyogVGhlIGZpcnN0IHBhZ2UgaXMgZG9vcmJlbGwvcHJvY19kZXNjLiBUd28g Zm9sbG93ZWQgcGFnZXMgYXJlIHdxLiAqLwogCW9iaiA9IGdlbV9hbGxvY2F0ZV9ndWNfb2JqKGRl diwgR1VDX0RCX1NJWkUgKyBHVUNfV1FfU0laRSk7Ci0JaWYgKCFvYmopCisJaWYgKElTX0VSUihv YmopKSB7CisJCXJldCA9IFBUUl9FUlIob2JqKTsKIAkJZ290byBlcnI7CisJfQogCiAJY2xpZW50 LT5jbGllbnRfb2JqID0gb2JqOwogCWNsaWVudC0+d3Ffb2Zmc2V0ID0gR1VDX0RCX1NJWkU7CkBA IC03NDQsOSArNzUxLDExIEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50ICpndWNfY2xp ZW50X2FsbG9jKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCWNsaWVudC0+cHJvY19kZXNjX29m ZnNldCA9IChHVUNfREJfU0laRSAvIDIpOwogCiAJY2xpZW50LT5kb29yYmVsbF9pZCA9IGFzc2ln bl9kb29yYmVsbChndWMsIGNsaWVudC0+cHJpb3JpdHkpOwotCWlmIChjbGllbnQtPmRvb3JiZWxs X2lkID09IEdVQ19JTlZBTElEX0RPT1JCRUxMX0lEKQorCWlmIChjbGllbnQtPmRvb3JiZWxsX2lk ID09IEdVQ19JTlZBTElEX0RPT1JCRUxMX0lEKSB7CiAJCS8qIFhYWDogZXZpY3QgYSBkb29yYmVs bCBpbnN0ZWFkICovCisJCXJldCA9IC1FSU5WQUw7CiAJCWdvdG8gZXJyOworCX0KIAogCWd1Y19p bml0X3Byb2NfZGVzYyhndWMsIGNsaWVudCk7CiAJZ3VjX2luaXRfY3R4X2Rlc2MoZ3VjLCBjbGll bnQpOwpAQCAtNzU0LDcgKzc2Myw4IEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50ICpn dWNfY2xpZW50X2FsbG9jKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIAkvKiBYWFg6IEFueSBj YWNoZSBmbHVzaGVzIG5lZWRlZD8gR2VuZXJhbCBkb21haW4gbWdtdCBjYWxscz8gKi8KIAotCWlm IChob3N0Mmd1Y19hbGxvY2F0ZV9kb29yYmVsbChndWMsIGNsaWVudCkpCisJcmV0ID0gaG9zdDJn dWNfYWxsb2NhdGVfZG9vcmJlbGwoZ3VjLCBjbGllbnQpOworCWlmIChyZXQpCiAJCWdvdG8gZXJy OwogCiAJRFJNX0RFQlVHX0RSSVZFUigibmV3IHByaW9yaXR5ICV1IGNsaWVudCAlcDogY3R4X2lu ZGV4ICV1IGRiX2lkICV1XG4iLApAQCAtNzY2LDcgKzc3Niw3IEBAIGVycjoKIAlEUk1fRVJST1Io IkZBSUxFRCB0byBjcmVhdGUgcHJpb3JpdHkgJXUgR3VDIGNsaWVudCFcbiIsIHByaW9yaXR5KTsK IAogCWd1Y19jbGllbnRfZnJlZShkZXYsIGNsaWVudCk7Ci0JcmV0dXJuIE5VTEw7CisJcmV0dXJu IEVSUl9QVFIocmV0KTsKIH0KIAogc3RhdGljIHZvaWQgZ3VjX2NyZWF0ZV9sb2coc3RydWN0IGlu dGVsX2d1YyAqZ3VjKQpAQCAtNzkxLDcgKzgwMSw3IEBAIHN0YXRpYyB2b2lkIGd1Y19jcmVhdGVf bG9nKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKIAlvYmogPSBndWMtPmxvZ19vYmo7CiAJaWYgKCFv YmopIHsKIAkJb2JqID0gZ2VtX2FsbG9jYXRlX2d1Y19vYmooZGV2X3ByaXYtPmRldiwgc2l6ZSk7 Ci0JCWlmICghb2JqKSB7CisJCWlmIChJU19FUlIob2JqKSkgewogCQkJLyogbG9nZ2luZyB3aWxs IGJlIG9mZiAqLwogCQkJaTkxNS5ndWNfbG9nX2xldmVsID0gLTE7CiAJCQlyZXR1cm47CkBAIC05 MTEsNiArOTIxLDcgQEAgaW50IGk5MTVfZ3VjX3N1Ym1pc3Npb25faW5pdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQogCWNvbnN0IHNpemVfdCBwb29sc2l6ZSA9IEdVQ19NQVhfR1BVX0NPTlRFWFRT ICogY3R4c2l6ZTsKIAljb25zdCBzaXplX3QgZ2Vtc2l6ZSA9IHJvdW5kX3VwKHBvb2xzaXplLCBQ QUdFX1NJWkUpOwogCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZkZXZfcHJpdi0+Z3VjOworCWlu dCByZXQ7CiAKIAlpZiAoIWk5MTUuZW5hYmxlX2d1Y19zdWJtaXNzaW9uKQogCQlyZXR1cm4gMDsg Lyogbm90IGVuYWJsZWQgICovCkBAIC05MTksOCArOTMwLDExIEBAIGludCBpOTE1X2d1Y19zdWJt aXNzaW9uX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJcmV0dXJuIDA7IC8qIGFscmVh ZHkgYWxsb2NhdGVkICovCiAKIAlndWMtPmN0eF9wb29sX29iaiA9IGdlbV9hbGxvY2F0ZV9ndWNf b2JqKGRldl9wcml2LT5kZXYsIGdlbXNpemUpOwotCWlmICghZ3VjLT5jdHhfcG9vbF9vYmopCi0J CXJldHVybiAtRU5PTUVNOworCWlmIChJU19FUlIoZ3VjLT5jdHhfcG9vbF9vYmopKSB7CisJCXJl dCA9IFBUUl9FUlIoZ3VjLT5jdHhfcG9vbF9vYmopOworCQlndWMtPmN0eF9wb29sX29iaiA9IE5V TEw7CisJCXJldHVybiByZXQ7CisJfQogCiAJaWRhX2luaXQoJmd1Yy0+Y3R4X2lkcyk7CiAKQEAg LTk0MCw5ICs5NTQsOSBAQCBpbnQgaTkxNV9ndWNfc3VibWlzc2lvbl9lbmFibGUoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIAogCS8qIGNsaWVudCBmb3IgZXhlY2J1ZiBzdWJtaXNzaW9uICovCiAJ Y2xpZW50ID0gZ3VjX2NsaWVudF9hbGxvYyhkZXYsIEdVQ19DVFhfUFJJT1JJVFlfS01EX05PUk1B TCwgY3R4KTsKLQlpZiAoIWNsaWVudCkgeworCWlmIChJU19FUlIoY2xpZW50KSkgewogCQlEUk1f RVJST1IoIkZhaWxlZCB0byBjcmVhdGUgZXhlY2J1ZiBndWNfY2xpZW50XG4iKTsKLQkJcmV0dXJu IC1FTk9NRU07CisJCXJldHVybiBQVFJfRVJSKGNsaWVudCk7CiAJfQogCiAJZ3VjLT5leGVjYnVm X2NsaWVudCA9IGNsaWVudDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCA5 Y2M5OTNjLi4zMGJiNGNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0y NTU1LDcgKzI1NTUsNyBAQCBpbnRlbF9hbGxvY19pbml0aWFsX3BsYW5lX29iaihzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YywKIAkJCQkJCQkgICAgIGJhc2VfYWxpZ25lZCwKIAkJCQkJCQkgICAgIGJh c2VfYWxpZ25lZCwKIAkJCQkJCQkgICAgIHNpemVfYWxpZ25lZCk7Ci0JaWYgKCFvYmopCisJaWYg KElTX0VSUihvYmopKQogCQlyZXR1cm4gZmFsc2U7CiAKIAlvYmotPnRpbGluZ19tb2RlID0gcGxh bmVfY29uZmlnLT50aWxpbmc7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9mYmRldi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYwppbmRleCAwOTg0 MGY0Li4xYzg5N2NiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmRl di5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMKQEAgLTE0OCwxMSAr MTQ4LDExIEBAIHN0YXRpYyBpbnQgaW50ZWxmYl9hbGxvYyhzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAq aGVscGVyLAogCSAqIGZlYXR1cmVzLiAqLwogCWlmIChzaXplICogMiA8IGRldl9wcml2LT5ndHQu c3RvbGVuX3VzYWJsZV9zaXplKQogCQlvYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xl bihkZXYsIHNpemUpOwotCWlmIChvYmogPT0gTlVMTCkKKwlpZiAoSVNfRVJSX09SX05VTEwob2Jq KSkKIAkJb2JqID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KGRldiwgc2l6ZSk7Ci0JaWYgKCFvYmop IHsKKwlpZiAoSVNfRVJSKG9iaikpIHsKIAkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gYWxsb2NhdGUg ZnJhbWVidWZmZXJcbiIpOwotCQlyZXQgPSAtRU5PTUVNOworCQlyZXQgPSBQVFJfRVJSKG9iaik7 CiAJCWdvdG8gb3V0OwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwppbmRleCAzYTAzNjQ2 Li5iNzcwYTM0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwpAQCAtMTQ1Myw5ICsxNDUzLDEx IEBAIHN0YXRpYyBpbnQgbHJjX3NldHVwX3dhX2N0eF9vYmooc3RydWN0IGludGVsX2VuZ2luZV9j cyAqcmluZywgdTMyIHNpemUpCiAJaW50IHJldDsKIAogCXJpbmctPndhX2N0eC5vYmogPSBpOTE1 X2dlbV9hbGxvY19vYmplY3QocmluZy0+ZGV2LCBQQUdFX0FMSUdOKHNpemUpKTsKLQlpZiAoIXJp bmctPndhX2N0eC5vYmopIHsKKwlpZiAoSVNfRVJSKHJpbmctPndhX2N0eC5vYmopKSB7CiAJCURS TV9ERUJVR19EUklWRVIoImFsbG9jIExSQyBXQSBjdHggYmFja2luZyBvYmogZmFpbGVkLlxuIik7 Ci0JCXJldHVybiAtRU5PTUVNOworCQlyZXQgPSBQVFJfRVJSKHJpbmctPndhX2N0eC5vYmopOwor CQlyaW5nLT53YV9jdHgub2JqID0gTlVMTDsKKwkJcmV0dXJuIHJldDsKIAl9CiAKIAlyZXQgPSBp OTE1X2dlbV9vYmpfZ2d0dF9waW4ocmluZy0+d2FfY3R4Lm9iaiwgUEFHRV9TSVpFLCAwKTsKQEAg LTI1NTYsOSArMjU1OCw5IEBAIGludCBpbnRlbF9scl9jb250ZXh0X2RlZmVycmVkX2FsbG9jKHN0 cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCiAJY29udGV4dF9zaXplICs9IFBBR0VfU0laRSAqIExS Q19QUEhXU1BfUE47CiAKIAljdHhfb2JqID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KGRldiwgY29u dGV4dF9zaXplKTsKLQlpZiAoIWN0eF9vYmopIHsKKwlpZiAoSVNfRVJSKGN0eF9vYmopKSB7CiAJ CURSTV9ERUJVR19EUklWRVIoIkFsbG9jIExSQyBiYWNraW5nIG9iaiBmYWlsZWQuXG4iKTsKLQkJ cmV0dXJuIC1FTk9NRU07CisJCXJldHVybiBQVFJfRVJSKGN0eF9vYmopOwogCX0KIAogCXJpbmdi dWYgPSBpbnRlbF9lbmdpbmVfY3JlYXRlX3JpbmdidWZmZXIocmluZywgNCAqIFBBR0VfU0laRSk7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vdmVybGF5LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vdmVybGF5LmMKaW5kZXggOTE2ODQxMy4uOGU1ZjYyOCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYwpAQCAtMTM5Miw5ICsxMzkyLDkgQEAg dm9pZCBpbnRlbF9zZXR1cF9vdmVybGF5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJcmVnX2Jv ID0gTlVMTDsKIAlpZiAoIU9WRVJMQVlfTkVFRFNfUEhZU0lDQUwoZGV2KSkKIAkJcmVnX2JvID0g aTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oZGV2LCBQQUdFX1NJWkUpOwotCWlmIChyZWdf Ym8gPT0gTlVMTCkKKwlpZiAoSVNfRVJSX09SX05VTEwocmVnX2JvKSkKIAkJcmVnX2JvID0gaTkx NV9nZW1fYWxsb2Nfb2JqZWN0KGRldiwgUEFHRV9TSVpFKTsKLQlpZiAocmVnX2JvID09IE5VTEwp CisJaWYgKElTX0VSUihyZWdfYm8pKQogCQlnb3RvIG91dF9mcmVlOwogCW92ZXJsYXktPnJlZ19i byA9IHJlZ19ibzsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0u YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKaW5kZXggYTQ3YjhmMi4uZWI3NTcx MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCkBAIC01MjEwLDEwICs1MjEwLDEzIEBAIHN0YXRp YyB2b2lkIHZhbGxleXZpZXdfc2V0dXBfcGN0eChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQkJ CQkJCQkgICAgICBwY2JyX29mZnNldCwKIAkJCQkJCQkJICAgICAgSTkxNV9HVFRfT0ZGU0VUX05P TkUsCiAJCQkJCQkJCSAgICAgIHBjdHhfc2l6ZSk7CisJCWlmIChJU19FUlIocGN0eCkpCisJCQlw Y3R4ID0gTlVMTDsKKwogCQlnb3RvIG91dDsKIAl9CiAKLQlEUk1fREVCVUdfRFJJVkVSKCJCSU9T IGRpZG4ndCBzZXQgdXAgUENCUiwgZml4aW5nIHVwXG4iKTsKKwlEUk1fREVCVUdfRFJJVkVSKCJC SU9TIGRpZG4ndCBzZXQgdXAgUENCUiBvciBwcmVhbGxvYyBmYWlsZWQsIGZpeGluZyB1cFxuIik7 CiAKIAkvKgogCSAqIEZyb20gdGhlIEd1bml0IHJlZ2lzdGVyIEhBUzoKQEAgLTUyMjQsNyArNTIy Nyw3IEBAIHN0YXRpYyB2b2lkIHZhbGxleXZpZXdfc2V0dXBfcGN0eChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQogCSAqIG1lbW9yeSwgb3IgYW55IG90aGVyIHJlbGV2YW50IHJhbmdlcy4KIAkgKi8K IAlwY3R4ID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oZGV2LCBwY3R4X3NpemUpOwot CWlmICghcGN0eCkgeworCWlmIChJU19FUlIocGN0eCkpIHsKIAkJRFJNX0RFQlVHKCJub3QgZW5v dWdoIHN0b2xlbiBzcGFjZSBmb3IgUENUWCwgZGlzYWJsaW5nXG4iKTsKIAkJcmV0dXJuOwogCX0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwppbmRleCA2ZjViNTExLi4wMTQ2 NDM4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCkBAIC02NjQsOSAr NjY0LDEwIEBAIGludGVsX2luaXRfcGlwZV9jb250cm9sKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KnJpbmcpCiAJV0FSTl9PTihyaW5nLT5zY3JhdGNoLm9iaik7CiAKIAlyaW5nLT5zY3JhdGNoLm9i aiA9IGk5MTVfZ2VtX2FsbG9jX29iamVjdChyaW5nLT5kZXYsIDQwOTYpOwotCWlmIChyaW5nLT5z Y3JhdGNoLm9iaiA9PSBOVUxMKSB7CisJaWYgKElTX0VSUihyaW5nLT5zY3JhdGNoLm9iaikpIHsK IAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYWxsb2NhdGUgc2Vxbm8gcGFnZVxuIik7Ci0JCXJldCA9 IC1FTk9NRU07CisJCXJldCA9IFBUUl9FUlIocmluZy0+c2NyYXRjaC5vYmopOworCQlyaW5nLT5z Y3JhdGNoLm9iaiA9IE5VTEw7CiAJCWdvdG8gZXJyOwogCX0KIApAQCAtMTk5NCw5ICsxOTk1LDkg QEAgc3RhdGljIGludCBpbml0X3N0YXR1c19wYWdlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJp bmcpCiAJCWludCByZXQ7CiAKIAkJb2JqID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KHJpbmctPmRl diwgNDA5Nik7Ci0JCWlmIChvYmogPT0gTlVMTCkgeworCQlpZiAoSVNfRVJSKG9iaikpIHsKIAkJ CURSTV9FUlJPUigiRmFpbGVkIHRvIGFsbG9jYXRlIHN0YXR1cyBwYWdlXG4iKTsKLQkJCXJldHVy biAtRU5PTUVNOworCQkJcmV0dXJuIFBUUl9FUlIob2JqKTsKIAkJfQogCiAJCXJldCA9IGk5MTVf Z2VtX29iamVjdF9zZXRfY2FjaGVfbGV2ZWwob2JqLCBJOTE1X0NBQ0hFX0xMQyk7CkBAIC0yMTQ2 LDEwICsyMTQ3LDEwIEBAIHN0YXRpYyBpbnQgaW50ZWxfYWxsb2NfcmluZ2J1ZmZlcl9vYmooc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKIAlvYmogPSBOVUxMOwogCWlmICghSEFTX0xMQyhkZXYpKQog CQlvYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihkZXYsIHJpbmdidWYtPnNpemUp OwotCWlmIChvYmogPT0gTlVMTCkKKwlpZiAoSVNfRVJSX09SX05VTEwob2JqKSkKIAkJb2JqID0g aTkxNV9nZW1fYWxsb2Nfb2JqZWN0KGRldiwgcmluZ2J1Zi0+c2l6ZSk7Ci0JaWYgKG9iaiA9PSBO VUxMKQotCQlyZXR1cm4gLUVOT01FTTsKKwlpZiAoSVNfRVJSKG9iaikpCisJCXJldHVybiBQVFJf RVJSKG9iaik7CiAKIAkvKiBtYXJrIHJpbmcgYnVmZmVycyBhcyByZWFkLW9ubHkgZnJvbSBHUFUg c2lkZSBieSBkZWZhdWx0ICovCiAJb2JqLT5ndF9ybyA9IDE7CkBAIC0yNzUwLDcgKzI3NTEsNyBA QCBpbnQgaW50ZWxfaW5pdF9yZW5kZXJfcmluZ19idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKIAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOCkgewogCQlpZiAoaTkxNV9zZW1hcGhv cmVfaXNfZW5hYmxlZChkZXYpKSB7CiAJCQlvYmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3QoZGV2 LCA0MDk2KTsKLQkJCWlmIChvYmogPT0gTlVMTCkgeworCQkJaWYgKElTX0VSUihvYmopKSB7CiAJ CQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYWxsb2NhdGUgc2VtYXBob3JlIGJvLiBEaXNhYmxpbmcg c2VtYXBob3Jlc1xuIik7CiAJCQkJaTkxNS5zZW1hcGhvcmVzID0gMDsKIAkJCX0gZWxzZSB7CkBA IC0yODU3LDkgKzI4NTgsOSBAQCBpbnQgaW50ZWxfaW5pdF9yZW5kZXJfcmluZ19idWZmZXIoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKIAkvKiBXb3JrYXJvdW5kIGJhdGNoYnVmZmVyIHRvIGNvbWJh dCBDUyB0bGIgYnVnLiAqLwogCWlmIChIQVNfQlJPS0VOX0NTX1RMQihkZXYpKSB7CiAJCW9iaiA9 IGk5MTVfZ2VtX2FsbG9jX29iamVjdChkZXYsIEk4MzBfV0FfU0laRSk7Ci0JCWlmIChvYmogPT0g TlVMTCkgeworCQlpZiAoSVNfRVJSKG9iaikpIHsKIAkJCURSTV9FUlJPUigiRmFpbGVkIHRvIGFs bG9jYXRlIGJhdGNoIGJvXG4iKTsKLQkJCXJldHVybiAtRU5PTUVNOworCQkJcmV0dXJuIFBUUl9F UlIob2JqKTsKIAkJfQogCiAJCXJldCA9IGk5MTVfZ2VtX29ial9nZ3R0X3BpbihvYmosIDAsIDAp OwotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==