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: Mon, 29 Feb 2016 13:09:35 +0530 Message-ID: <1456731579-25584-7-git-send-email-ankitprasad.r.sharma@intel.com> References: <1456731579-25584-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 mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 732F18903B for ; Mon, 29 Feb 2016 08:03:30 +0000 (UTC) In-Reply-To: <1456731579-25584-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 IChDaHJpcykKCnY3OiBSZXNvbHZlZCByZWJhc2luZyBjb25mbGljdHMgKEFua2l0KQoKdjg6IFJl bW92ZWQgcmVkdW5kYW50IGNvZGUgKENocmlzKQoKdjk6IFJlYmFzZQoKU2lnbmVkLW9mZi1ieTog QW5raXRwcmFzYWQgU2hhcm1hIDxhbmtpdHByYXNhZC5yLnNoYXJtYUBpbnRlbC5jb20+ClJldmll d2VkLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgICAgICB8IDIzICsrKysrKy0tLS0t LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fYmF0Y2hfcG9vbC5jICAgfCAgNCArLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyAgICAgIHwgIDQgKy0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZW5kZXJfc3RhdGUuYyB8ICA3ICsrLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jICAgICAgIHwgNTMgKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlz c2lvbi5jICAgfCA1MiArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2ZiZGV2LmMgICAgICAgICAgIHwgIDYgKystLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbHJjLmMgICAgICAgICAgICAgfCAxMCArKystLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX292ZXJsYXkuYyAgICAgICAgIHwgIDQgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wbS5jICAgICAgICAgICAgICB8ICA3ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3JpbmdidWZmZXIuYyAgICAgIHwgMjEgKysrKystLS0tLS0KIDEyIGZpbGVzIGNoYW5n ZWQsIDExMCBpbnNlcnRpb25zKCspLCA4MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYwppbmRleCA4NTEyYmQ2Li42YjkxZThlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAg LTM5NywxOSArMzk3LDE4IEBAIGk5MTVfZ2VtX2FsbG9jX29iamVjdF9zdG9sZW4oc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgc2l6ZV90IHNpemUpCiAKIAltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9t dXRleCk7CiAJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oZGV2LCBzaXplKTsK LQlpZiAoIW9iaikgewotCQltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKLQkJcmV0 dXJuIE5VTEw7Ci0JfQorCWlmIChJU19FUlIob2JqKSkKKwkJZ290byBvdXQ7CiAKIAkvKiBBbHdh eXMgY2xlYXIgZnJlc2ggYnVmZmVycyBiZWZvcmUgaGFuZGluZyB0byB1c2Vyc3BhY2UgKi8KIAly ZXQgPSBpOTE1X2dlbV9vYmplY3RfY2xlYXIob2JqKTsKIAlpZiAocmV0KSB7CiAJCWRybV9nZW1f b2JqZWN0X3VucmVmZXJlbmNlKCZvYmotPmJhc2UpOwotCQltdXRleF91bmxvY2soJmRldi0+c3Ry dWN0X211dGV4KTsKLQkJcmV0dXJuIE5VTEw7CisJCW9iaiA9IEVSUl9QVFIocmV0KTsKKwkJZ290 byBvdXQ7CiAJfQogCitvdXQ6CiAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CiAJ cmV0dXJuIG9iajsKIH0KQEAgLTQ0NCw4ICs0NDMsOCBAQCBpOTE1X2dlbV9jcmVhdGUoc3RydWN0 IGRybV9maWxlICpmaWxlLAogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlpZiAob2JqID09IE5V TEwpCi0JCXJldHVybiAtRU5PTUVNOworCWlmIChJU19FUlIob2JqKSkKKwkJcmV0dXJuIFBUUl9F UlIob2JqKTsKIAogCXJldCA9IGRybV9nZW1faGFuZGxlX2NyZWF0ZShmaWxlLCAmb2JqLT5iYXNl LCAmaGFuZGxlKTsKIAkvKiBkcm9wIHJlZmVyZW5jZSBmcm9tIGFsbG9jYXRlIC0gaGFuZGxlIGhv bGRzIGl0IG5vdyAqLwpAQCAtNDU2MCwxNCArNDU1OSwxNiBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJ c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKIAlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAq bWFwcGluZzsKIAlnZnBfdCBtYXNrOworCWludCByZXQ7CiAKIAlvYmogPSBpOTE1X2dlbV9vYmpl Y3RfYWxsb2MoZGV2KTsKIAlpZiAob2JqID09IE5VTEwpCi0JCXJldHVybiBOVUxMOworCQlyZXR1 cm4gRVJSX1BUUigtRU5PTUVNKTsKIAotCWlmIChkcm1fZ2VtX29iamVjdF9pbml0KGRldiwgJm9i ai0+YmFzZSwgc2l6ZSkgIT0gMCkgeworCXJldCA9IGRybV9nZW1fb2JqZWN0X2luaXQoZGV2LCAm b2JqLT5iYXNlLCBzaXplKTsKKwlpZiAocmV0KSB7CiAJCWk5MTVfZ2VtX29iamVjdF9mcmVlKG9i aik7Ci0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BUUihyZXQpOwogCX0KIAogCW1hc2sg PSBHRlBfSElHSFVTRVIgfCBfX0dGUF9SRUNMQUlNQUJMRTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2JhdGNoX3Bvb2wuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2JhdGNoX3Bvb2wuYwppbmRleCA3YmYyZjNmLi5kNzljYWEyIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9iYXRjaF9wb29sLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fYmF0Y2hfcG9vbC5jCkBAIC0xMzUsOCArMTM1LDggQEAg aTkxNV9nZW1fYmF0Y2hfcG9vbF9nZXQoc3RydWN0IGk5MTVfZ2VtX2JhdGNoX3Bvb2wgKnBvb2ws CiAJCWludCByZXQ7CiAKIAkJb2JqID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KHBvb2wtPmRldiwg c2l6ZSk7Ci0JCWlmIChvYmogPT0gTlVMTCkKLQkJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwor CQlpZiAoSVNfRVJSKG9iaikpCisJCQlyZXR1cm4gb2JqOwogCiAJCXJldCA9IGk5MTVfZ2VtX29i amVjdF9nZXRfcGFnZXMob2JqKTsKIAkJaWYgKHJldCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2NvbnRleHQuYwppbmRleCA1ZGQ4NGUxLi44NmM3YTljIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fY29udGV4dC5jCkBAIC0xNzksOCArMTc5LDggQEAgaTkxNV9nZW1fYWxsb2Nf Y29udGV4dF9vYmooc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc2l6ZV90IHNpemUpCiAJaW50IHJl dDsKIAogCW9iaiA9IGk5MTVfZ2VtX2FsbG9jX29iamVjdChkZXYsIHNpemUpOwotCWlmIChvYmog PT0gTlVMTCkKLQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisJaWYgKElTX0VSUihvYmopKQor CQlyZXR1cm4gb2JqOwogCiAJLyoKIAkgKiBUcnkgdG8gbWFrZSB0aGUgY29udGV4dCB1dGlsaXpl IEwzIGFzIHdlbGwgYXMgTExDLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fcmVuZGVyX3N0YXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZW5k ZXJfc3RhdGUuYwppbmRleCBmYzdlNmQ1Li5hMmMzZjQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9yZW5kZXJfc3RhdGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9yZW5kZXJfc3RhdGUuYwpAQCAtNTgsOCArNTgsMTEgQEAgc3RhdGljIGlu dCByZW5kZXJfc3RhdGVfaW5pdChzdHJ1Y3QgcmVuZGVyX3N0YXRlICpzbywgc3RydWN0IGRybV9k ZXZpY2UgKmRldikKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlzby0+b2JqID0gaTkxNV9nZW1fYWxs b2Nfb2JqZWN0KGRldiwgNDA5Nik7Ci0JaWYgKHNvLT5vYmogPT0gTlVMTCkKLQkJcmV0dXJuIC1F Tk9NRU07CisJaWYgKElTX0VSUihzby0+b2JqKSkgeworCQlyZXQgPSBQVFJfRVJSKHNvLT5vYmop OworCQlzby0+b2JqID0gTlVMTDsKKwkJcmV0dXJuIHJldDsKKwl9CiAKIAlyZXQgPSBpOTE1X2dl bV9vYmpfZ2d0dF9waW4oc28tPm9iaiwgNDA5NiwgMCk7CiAJaWYgKHJldCkKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMKaW5kZXggMjFlNzI1MzMuLmY0ZGU1YmIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCkBAIC00OTUsNiArNDk1LDcgQEAgaTkxNV9w YWdlc19jcmVhdGVfZm9yX3N0b2xlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IHNn X3RhYmxlICpzdDsKIAlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnOworCWludCByZXQ7CiAKIAlEUk1f REVCVUdfRFJJVkVSKCJvZmZzZXQ9MHgleCwgc2l6ZT0lZFxuIiwgb2Zmc2V0LCBzaXplKTsKIAlC VUdfT04ob2Zmc2V0ID4gZGV2X3ByaXYtPmd0dC5zdG9sZW5fc2l6ZSAtIHNpemUpOwpAQCAtNTA2 LDExICs1MDcsMTIgQEAgaTkxNV9wYWdlc19jcmVhdGVfZm9yX3N0b2xlbihzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAogCiAJc3QgPSBrbWFsbG9jKHNpemVvZigqc3QpLCBHRlBfS0VSTkVMKTsKIAlp ZiAoc3QgPT0gTlVMTCkKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0p OwogCi0JaWYgKHNnX2FsbG9jX3RhYmxlKHN0LCAxLCBHRlBfS0VSTkVMKSkgeworCXJldCA9IHNn X2FsbG9jX3RhYmxlKHN0LCAxLCBHRlBfS0VSTkVMKTsKKwlpZiAocmV0KSB7CiAJCWtmcmVlKHN0 KTsKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBFUlJfUFRSKHJldCk7CiAJfQogCiAJc2cgPSBz dC0+c2dsOwpAQCAtNTU5LDE4ICs1NjEsMjMgQEAgX2k5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3Rv bGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkgICAgICAgc3RydWN0IGRybV9tbV9ub2Rl ICpzdG9sZW4pCiB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKKwlzdHJ1Y3Qg c2dfdGFibGUgKnBhZ2VzOwogCiAJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2FsbG9jKGRldik7CiAJ aWYgKG9iaiA9PSBOVUxMKQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01F TSk7CiAKIAlkcm1fZ2VtX3ByaXZhdGVfb2JqZWN0X2luaXQoZGV2LCAmb2JqLT5iYXNlLCBzdG9s ZW4tPnNpemUpOwogCWk5MTVfZ2VtX29iamVjdF9pbml0KG9iaiwgJmk5MTVfZ2VtX29iamVjdF9z dG9sZW5fb3BzKTsKIAotCW9iai0+cGFnZXMgPSBpOTE1X3BhZ2VzX2NyZWF0ZV9mb3Jfc3RvbGVu KGRldiwKLQkJCQkJCSAgc3RvbGVuLT5zdGFydCwgc3RvbGVuLT5zaXplKTsKLQlpZiAob2JqLT5w YWdlcyA9PSBOVUxMKQotCQlnb3RvIGNsZWFudXA7CisJcGFnZXMgPSBpOTE1X3BhZ2VzX2NyZWF0 ZV9mb3Jfc3RvbGVuKGRldiwKKwkJCQkJICAgICBzdG9sZW4tPnN0YXJ0LCBzdG9sZW4tPnNpemUp OworCWlmIChJU19FUlIocGFnZXMpKSB7CisJCWk5MTVfZ2VtX29iamVjdF9mcmVlKG9iaik7CisJ CXJldHVybiBFUlJfQ0FTVChwYWdlcyk7CisJfQorCisJb2JqLT5wYWdlcyA9IHBhZ2VzOwogCiAJ b2JqLT5nZXRfcGFnZS5zZyA9IG9iai0+cGFnZXMtPnNnbDsKIAlvYmotPmdldF9wYWdlLmxhc3Qg PSAwOwpAQCAtNTgyLDEwICs1ODksNiBAQCBfaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4o c3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlvYmotPmNhY2hlX2xldmVsID0gSEFTX0xMQyhkZXYp ID8gSTkxNV9DQUNIRV9MTEMgOiBJOTE1X0NBQ0hFX05PTkU7CiAKIAlyZXR1cm4gb2JqOwotCi1j bGVhbnVwOgotCWk5MTVfZ2VtX29iamVjdF9mcmVlKG9iaik7Ci0JcmV0dXJuIE5VTEw7CiB9CiAK IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICoKQEAgLTU5NywyOSArNjAwLDI5IEBAIGk5MTVf Z2VtX29iamVjdF9jcmVhdGVfc3RvbGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHU2NCBzaXpl KQogCWludCByZXQ7CiAKIAlpZiAoIWRybV9tbV9pbml0aWFsaXplZCgmZGV2X3ByaXYtPm1tLnN0 b2xlbikpCi0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BUUigtRU5PREVWKTsKIAogCURS TV9ERUJVR19LTVMoImNyZWF0aW5nIHN0b2xlbiBvYmplY3Q6IHNpemU9JWxseFxuIiwgc2l6ZSk7 CiAJaWYgKHNpemUgPT0gMCkKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBFUlJfUFRSKC1FSU5W QUwpOwogCiAJc3RvbGVuID0ga3phbGxvYyhzaXplb2YoKnN0b2xlbiksIEdGUF9LRVJORUwpOwog CWlmICghc3RvbGVuKQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7 CiAKIAlyZXQgPSBpOTE1X2dlbV9zdG9sZW5faW5zZXJ0X25vZGUoZGV2X3ByaXYsIHN0b2xlbiwg c2l6ZSwgNDA5Nik7CiAJaWYgKHJldCkgewogCQlrZnJlZShzdG9sZW4pOwotCQlyZXR1cm4gTlVM TDsKKwkJcmV0dXJuIEVSUl9QVFIocmV0KTsKIAl9CiAKIAlvYmogPSBfaTkxNV9nZW1fb2JqZWN0 X2NyZWF0ZV9zdG9sZW4oZGV2LCBzdG9sZW4pOwotCWlmIChvYmopCisJaWYgKCFJU19FUlIob2Jq KSkKIAkJcmV0dXJuIG9iajsKIAogCWk5MTVfZ2VtX3N0b2xlbl9yZW1vdmVfbm9kZShkZXZfcHJp diwgc3RvbGVuKTsKIAlrZnJlZShzdG9sZW4pOwotCXJldHVybiBOVUxMOworCXJldHVybiBvYmo7 CiB9CiAKIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICoKQEAgLTYzNiw3ICs2MzksNyBAQCBp OTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbl9mb3JfcHJlYWxsb2NhdGVkKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCiAJaW50IHJldDsKIAogCWlmICghZHJtX21tX2luaXRpYWxpemVkKCZkZXZf cHJpdi0+bW0uc3RvbGVuKSkKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBFUlJfUFRSKC1FTk9E RVYpOwogCiAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCkBAIC02 NDYsMTEgKzY0OSwxMSBAQCBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbl9mb3JfcHJlYWxs b2NhdGVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJLyogS0lTUyBhbmQgZXhwZWN0IGV2ZXJ5 dGhpbmcgdG8gYmUgcGFnZS1hbGlnbmVkICovCiAJaWYgKFdBUk5fT04oc2l6ZSA9PSAwKSB8fCBX QVJOX09OKHNpemUgJiA0MDk1KSB8fAogCSAgICBXQVJOX09OKHN0b2xlbl9vZmZzZXQgJiA0MDk1 KSkKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwogCiAJc3RvbGVu ID0ga3phbGxvYyhzaXplb2YoKnN0b2xlbiksIEdGUF9LRVJORUwpOwogCWlmICghc3RvbGVuKQot CQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKIAlzdG9sZW4tPnN0 YXJ0ID0gc3RvbGVuX29mZnNldDsKIAlzdG9sZW4tPnNpemUgPSBzaXplOwpAQCAtNjYwLDE1ICs2 NjMsMTUgQEAgaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW5fZm9yX3ByZWFsbG9jYXRlZChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCWlmIChyZXQpIHsKIAkJRFJNX0RFQlVHX0tNUygiZmFp bGVkIHRvIGFsbG9jYXRlIHN0b2xlbiBzcGFjZVxuIik7CiAJCWtmcmVlKHN0b2xlbik7Ci0JCXJl dHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BUUihyZXQpOwogCX0KIAogCW9iaiA9IF9pOTE1X2dl bV9vYmplY3RfY3JlYXRlX3N0b2xlbihkZXYsIHN0b2xlbik7Ci0JaWYgKG9iaiA9PSBOVUxMKSB7 CisJaWYgKElTX0VSUihvYmopKSB7CiAJCURSTV9ERUJVR19LTVMoImZhaWxlZCB0byBhbGxvY2F0 ZSBzdG9sZW4gb2JqZWN0XG4iKTsKIAkJaTkxNV9nZW1fc3RvbGVuX3JlbW92ZV9ub2RlKGRldl9w cml2LCBzdG9sZW4pOwogCQlrZnJlZShzdG9sZW4pOwotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJu IG9iajsKIAl9CiAKIAkvKiBTb21lIG9iamVjdHMganVzdCBuZWVkIHBoeXNpY2FsIG1lbSBmcm9t IHN0b2xlbiBzcGFjZSAqLwpAQCAtNzA3LDUgKzcxMCw1IEBAIGk5MTVfZ2VtX29iamVjdF9jcmVh dGVfc3RvbGVuX2Zvcl9wcmVhbGxvY2F0ZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogZXJy OgogCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZvYmotPmJhc2UpOwotCXJldHVybiBOVUxM OworCXJldHVybiBFUlJfUFRSKHJldCk7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1 Y19zdWJtaXNzaW9uLmMKaW5kZXggZDc1NDNlZi4uOWVmY2E2NiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwpAQCAtNjA3LDI3ICs2MDcsMzAgQEAgaW50IGk5 MTVfZ3VjX3N1Ym1pdChzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50ICpjbGllbnQsCiAgKiBvYmplY3Qg bmVlZHMgdG8gYmUgcGlubmVkIGxpZmV0aW1lLiBBbHNvIHdlIG11c3QgcGluIGl0IHRvIGd0dCBz cGFjZSBvdGhlcgogICogdGhhbiBbMCwgR1VDX1dPUENNX1RPUCkgYmVjYXVzZSB0aGlzIHJhbmdl IGlzIHJlc2VydmVkIGluc2lkZSBHdUMuCiAgKgotICogUmV0dXJuOglBIGRybV9pOTE1X2dlbV9v YmplY3QgaWYgc3VjY2Vzc2Z1bCwgb3RoZXJ3aXNlIE5VTEwuCisgKiBSZXR1cm46CUEgZHJtX2k5 MTVfZ2VtX29iamVjdCBpZiBzdWNjZXNzZnVsLCBvdGhlcndpc2UgZXJyb3IgcG9pbnRlci4KICAq Lwogc3RhdGljIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpnZW1fYWxsb2NhdGVfZ3VjX29i aihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCQkJCXUzMiBzaXplKQogewogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iajsKKwlpbnQgcmV0OwogCiAJb2JqID0gaTkxNV9nZW1fYWxs b2Nfb2JqZWN0KGRldiwgc2l6ZSk7Ci0JaWYgKCFvYmopCi0JCXJldHVybiBOVUxMOworCWlmIChJ U19FUlIob2JqKSkKKwkJcmV0dXJuIG9iajsKIAotCWlmIChpOTE1X2dlbV9vYmplY3RfZ2V0X3Bh Z2VzKG9iaikpIHsKKwlyZXQgPSBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzKG9iaik7CisJaWYg KHJldCkgewogCQlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgmb2JqLT5iYXNlKTsKLQkJcmV0 dXJuIE5VTEw7CisJCXJldHVybiBFUlJfUFRSKHJldCk7CiAJfQogCi0JaWYgKGk5MTVfZ2VtX29i al9nZ3R0X3BpbihvYmosIFBBR0VfU0laRSwKLQkJCVBJTl9PRkZTRVRfQklBUyB8IEdVQ19XT1BD TV9UT1ApKSB7CisJcmV0ID0gaTkxNV9nZW1fb2JqX2dndHRfcGluKG9iaiwgUEFHRV9TSVpFLAor CQkJCSAgICBQSU5fT0ZGU0VUX0JJQVMgfCBHVUNfV09QQ01fVE9QKTsKKwlpZiAocmV0KSB7CiAJ CWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZvYmotPmJhc2UpOwotCQlyZXR1cm4gTlVMTDsK KwkJcmV0dXJuIEVSUl9QVFIocmV0KTsKIAl9CiAKIAkvKiBJbnZhbGlkYXRlIEd1QyBUTEIgdG8g bGV0IEd1QyB0YWtlIHRoZSBsYXRlc3QgdXBkYXRlcyB0byBHVFQuICovCkBAIC02OTUsNyArNjk4 LDcgQEAgc3RhdGljIHZvaWQgZ3VjX2NsaWVudF9mcmVlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs CiAgKiBAY3R4Ogl0aGUgY29udGV4dCB0aGF0IG93bnMgdGhlIGNsaWVudCAod2UgdXNlIHRoZSBk ZWZhdWx0IHJlbmRlcgogICogCQljb250ZXh0KQogICoKLSAqIFJldHVybjoJQW4gaTkxNV9ndWNf Y2xpZW50IG9iamVjdCBpZiBzdWNjZXNzLgorICogUmV0dXJuOglBbiBpOTE1X2d1Y19jbGllbnQg b2JqZWN0IGlmIHN1Y2Nlc3MsIGVycm9yIHBvaW50ZXIgb24gZmFpbHVyZS4KICAqLwogc3RhdGlj IHN0cnVjdCBpOTE1X2d1Y19jbGllbnQgKmd1Y19jbGllbnRfYWxsb2Moc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKIAkJCQkJCXVpbnQzMl90IHByaW9yaXR5LApAQCAtNzA1LDEwICs3MDgsMTEgQEAg c3RhdGljIHN0cnVjdCBpOTE1X2d1Y19jbGllbnQgKmd1Y19jbGllbnRfYWxsb2Moc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYt PmRldl9wcml2YXRlOwogCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZkZXZfcHJpdi0+Z3VjOwog CXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CisJaW50IHJldDsKIAogCWNsaWVudCA9 IGt6YWxsb2Moc2l6ZW9mKCpjbGllbnQpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWNsaWVudCkKLQkJ cmV0dXJuIE5VTEw7CisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwogCiAJY2xpZW50LT5kb29y YmVsbF9pZCA9IEdVQ19JTlZBTElEX0RPT1JCRUxMX0lEOwogCWNsaWVudC0+cHJpb3JpdHkgPSBw cmlvcml0eTsKQEAgLTcxOSwxMyArNzIzLDE2IEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV9ndWNfY2xp ZW50ICpndWNfY2xpZW50X2FsbG9jKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQlHVUNfTUFY X0dQVV9DT05URVhUUywgR0ZQX0tFUk5FTCk7CiAJaWYgKGNsaWVudC0+Y3R4X2luZGV4ID49IEdV Q19NQVhfR1BVX0NPTlRFWFRTKSB7CiAJCWNsaWVudC0+Y3R4X2luZGV4ID0gR1VDX0lOVkFMSURf Q1RYX0lEOworCQlyZXQgPSAtRUlOVkFMOwogCQlnb3RvIGVycjsKIAl9CiAKIAkvKiBUaGUgZmly c3QgcGFnZSBpcyBkb29yYmVsbC9wcm9jX2Rlc2MuIFR3byBmb2xsb3dlZCBwYWdlcyBhcmUgd3Eu ICovCiAJb2JqID0gZ2VtX2FsbG9jYXRlX2d1Y19vYmooZGV2LCBHVUNfREJfU0laRSArIEdVQ19X UV9TSVpFKTsKLQlpZiAoIW9iaikKKwlpZiAoSVNfRVJSKG9iaikpIHsKKwkJcmV0ID0gUFRSX0VS UihvYmopOwogCQlnb3RvIGVycjsKKwl9CiAKIAljbGllbnQtPmNsaWVudF9vYmogPSBvYmo7CiAJ Y2xpZW50LT53cV9vZmZzZXQgPSBHVUNfREJfU0laRTsKQEAgLTc0NCw5ICs3NTEsMTEgQEAgc3Rh dGljIHN0cnVjdCBpOTE1X2d1Y19jbGllbnQgKmd1Y19jbGllbnRfYWxsb2Moc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKIAkJY2xpZW50LT5wcm9jX2Rlc2Nfb2Zmc2V0ID0gKEdVQ19EQl9TSVpFIC8g Mik7CiAKIAljbGllbnQtPmRvb3JiZWxsX2lkID0gYXNzaWduX2Rvb3JiZWxsKGd1YywgY2xpZW50 LT5wcmlvcml0eSk7Ci0JaWYgKGNsaWVudC0+ZG9vcmJlbGxfaWQgPT0gR1VDX0lOVkFMSURfRE9P UkJFTExfSUQpCisJaWYgKGNsaWVudC0+ZG9vcmJlbGxfaWQgPT0gR1VDX0lOVkFMSURfRE9PUkJF TExfSUQpIHsKIAkJLyogWFhYOiBldmljdCBhIGRvb3JiZWxsIGluc3RlYWQgKi8KKwkJcmV0ID0g LUVJTlZBTDsKIAkJZ290byBlcnI7CisJfQogCiAJZ3VjX2luaXRfcHJvY19kZXNjKGd1YywgY2xp ZW50KTsKIAlndWNfaW5pdF9jdHhfZGVzYyhndWMsIGNsaWVudCk7CkBAIC03NTQsNyArNzYzLDgg QEAgc3RhdGljIHN0cnVjdCBpOTE1X2d1Y19jbGllbnQgKmd1Y19jbGllbnRfYWxsb2Moc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKIAogCS8qIFhYWDogQW55IGNhY2hlIGZsdXNoZXMgbmVlZGVkPyBH ZW5lcmFsIGRvbWFpbiBtZ210IGNhbGxzPyAqLwogCi0JaWYgKGhvc3QyZ3VjX2FsbG9jYXRlX2Rv b3JiZWxsKGd1YywgY2xpZW50KSkKKwlyZXQgPSBob3N0Mmd1Y19hbGxvY2F0ZV9kb29yYmVsbChn dWMsIGNsaWVudCk7CisJaWYgKHJldCkKIAkJZ290byBlcnI7CiAKIAlEUk1fREVCVUdfRFJJVkVS KCJuZXcgcHJpb3JpdHkgJXUgY2xpZW50ICVwOiBjdHhfaW5kZXggJXUgZGJfaWQgJXVcbiIsCkBA IC03NjYsNyArNzc2LDcgQEAgZXJyOgogCURSTV9FUlJPUigiRkFJTEVEIHRvIGNyZWF0ZSBwcmlv cml0eSAldSBHdUMgY2xpZW50IVxuIiwgcHJpb3JpdHkpOwogCiAJZ3VjX2NsaWVudF9mcmVlKGRl diwgY2xpZW50KTsKLQlyZXR1cm4gTlVMTDsKKwlyZXR1cm4gRVJSX1BUUihyZXQpOwogfQogCiBz dGF0aWMgdm9pZCBndWNfY3JlYXRlX2xvZyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCkBAIC03OTEs NyArODAxLDcgQEAgc3RhdGljIHZvaWQgZ3VjX2NyZWF0ZV9sb2coc3RydWN0IGludGVsX2d1YyAq Z3VjKQogCW9iaiA9IGd1Yy0+bG9nX29iajsKIAlpZiAoIW9iaikgewogCQlvYmogPSBnZW1fYWxs b2NhdGVfZ3VjX29iaihkZXZfcHJpdi0+ZGV2LCBzaXplKTsKLQkJaWYgKCFvYmopIHsKKwkJaWYg KElTX0VSUihvYmopKSB7CiAJCQkvKiBsb2dnaW5nIHdpbGwgYmUgb2ZmICovCiAJCQlpOTE1Lmd1 Y19sb2dfbGV2ZWwgPSAtMTsKIAkJCXJldHVybjsKQEAgLTkxMSw2ICs5MjEsNyBAQCBpbnQgaTkx NV9ndWNfc3VibWlzc2lvbl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJY29uc3Qgc2l6 ZV90IHBvb2xzaXplID0gR1VDX01BWF9HUFVfQ09OVEVYVFMgKiBjdHhzaXplOwogCWNvbnN0IHNp emVfdCBnZW1zaXplID0gcm91bmRfdXAocG9vbHNpemUsIFBBR0VfU0laRSk7CiAJc3RydWN0IGlu dGVsX2d1YyAqZ3VjID0gJmRldl9wcml2LT5ndWM7CisJaW50IHJldDsKIAogCWlmICghaTkxNS5l bmFibGVfZ3VjX3N1Ym1pc3Npb24pCiAJCXJldHVybiAwOyAvKiBub3QgZW5hYmxlZCAgKi8KQEAg LTkxOSw4ICs5MzAsMTEgQEAgaW50IGk5MTVfZ3VjX3N1Ym1pc3Npb25faW5pdChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQogCQlyZXR1cm4gMDsgLyogYWxyZWFkeSBhbGxvY2F0ZWQgKi8KIAogCWd1 Yy0+Y3R4X3Bvb2xfb2JqID0gZ2VtX2FsbG9jYXRlX2d1Y19vYmooZGV2X3ByaXYtPmRldiwgZ2Vt c2l6ZSk7Ci0JaWYgKCFndWMtPmN0eF9wb29sX29iaikKLQkJcmV0dXJuIC1FTk9NRU07CisJaWYg KElTX0VSUihndWMtPmN0eF9wb29sX29iaikpIHsKKwkJcmV0ID0gUFRSX0VSUihndWMtPmN0eF9w b29sX29iaik7CisJCWd1Yy0+Y3R4X3Bvb2xfb2JqID0gTlVMTDsKKwkJcmV0dXJuIHJldDsKKwl9 CiAKIAlpZGFfaW5pdCgmZ3VjLT5jdHhfaWRzKTsKIApAQCAtOTQwLDkgKzk1NCw5IEBAIGludCBp OTE1X2d1Y19zdWJtaXNzaW9uX2VuYWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCiAJLyog Y2xpZW50IGZvciBleGVjYnVmIHN1Ym1pc3Npb24gKi8KIAljbGllbnQgPSBndWNfY2xpZW50X2Fs bG9jKGRldiwgR1VDX0NUWF9QUklPUklUWV9LTURfTk9STUFMLCBjdHgpOwotCWlmICghY2xpZW50 KSB7CisJaWYgKElTX0VSUihjbGllbnQpKSB7CiAJCURSTV9FUlJPUigiRmFpbGVkIHRvIGNyZWF0 ZSBleGVjYnVmIGd1Y19jbGllbnRcbiIpOwotCQlyZXR1cm4gLUVOT01FTTsKKwkJcmV0dXJuIFBU Ul9FUlIoY2xpZW50KTsKIAl9CiAKIAlndWMtPmV4ZWNidWZfY2xpZW50ID0gY2xpZW50OwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IDAyOTMwYjIuLjg5NjJiOGMgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTI1NjAsNyArMjU2MCw3IEBAIGludGVs X2FsbG9jX2luaXRpYWxfcGxhbmVfb2JqKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCQkJCQkJ CSAgICAgYmFzZV9hbGlnbmVkLAogCQkJCQkJCSAgICAgYmFzZV9hbGlnbmVkLAogCQkJCQkJCSAg ICAgc2l6ZV9hbGlnbmVkKTsKLQlpZiAoIW9iaikgeworCWlmIChJU19FUlIob2JqKSkgewogCQlt dXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKIAkJcmV0dXJuIGZhbHNlOwogCX0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9mYmRldi5jCmluZGV4IDk3YTkxZTYuLmUxYmZmMDggMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZmJkZXYuYwpAQCAtMTQ4LDExICsxNDgsMTEgQEAgc3RhdGljIGludCBp bnRlbGZiX2FsbG9jKHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIsCiAJICogZmVhdHVyZXMu ICovCiAJaWYgKHNpemUgKiAyIDwgZGV2X3ByaXYtPmd0dC5zdG9sZW5fdXNhYmxlX3NpemUpCiAJ CW9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuKGRldiwgc2l6ZSk7Ci0JaWYgKG9i aiA9PSBOVUxMKQorCWlmIChJU19FUlJfT1JfTlVMTChvYmopKQogCQlvYmogPSBpOTE1X2dlbV9h bGxvY19vYmplY3QoZGV2LCBzaXplKTsKLQlpZiAoIW9iaikgeworCWlmIChJU19FUlIob2JqKSkg ewogCQlEUk1fRVJST1IoImZhaWxlZCB0byBhbGxvY2F0ZSBmcmFtZWJ1ZmZlclxuIik7Ci0JCXJl dCA9IC1FTk9NRU07CisJCXJldCA9IFBUUl9FUlIob2JqKTsKIAkJZ290byBvdXQ7CiAJfQogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5jCmluZGV4IDZhOTc4Y2UuLmViOGY4NWEgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2xyYy5jCkBAIC0xNDUwLDkgKzE0NTAsMTEgQEAgc3RhdGljIGludCBscmNfc2V0 dXBfd2FfY3R4X29iaihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCB1MzIgc2l6ZSkKIAlp bnQgcmV0OwogCiAJcmluZy0+d2FfY3R4Lm9iaiA9IGk5MTVfZ2VtX2FsbG9jX29iamVjdChyaW5n LT5kZXYsIFBBR0VfQUxJR04oc2l6ZSkpOwotCWlmICghcmluZy0+d2FfY3R4Lm9iaikgeworCWlm IChJU19FUlIocmluZy0+d2FfY3R4Lm9iaikpIHsKIAkJRFJNX0RFQlVHX0RSSVZFUigiYWxsb2Mg TFJDIFdBIGN0eCBiYWNraW5nIG9iaiBmYWlsZWQuXG4iKTsKLQkJcmV0dXJuIC1FTk9NRU07CisJ CXJldCA9IFBUUl9FUlIocmluZy0+d2FfY3R4Lm9iaik7CisJCXJpbmctPndhX2N0eC5vYmogPSBO VUxMOworCQlyZXR1cm4gcmV0OwogCX0KIAogCXJldCA9IGk5MTVfZ2VtX29ial9nZ3R0X3Bpbihy aW5nLT53YV9jdHgub2JqLCBQQUdFX1NJWkUsIDApOwpAQCAtMjU3NSw5ICsyNTc3LDkgQEAgaW50 IGludGVsX2xyX2NvbnRleHRfZGVmZXJyZWRfYWxsb2Moc3RydWN0IGludGVsX2NvbnRleHQgKmN0 eCwKIAljb250ZXh0X3NpemUgKz0gUEFHRV9TSVpFICogTFJDX1BQSFdTUF9QTjsKIAogCWN0eF9v YmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCBjb250ZXh0X3NpemUpOwotCWlmICghY3R4 X29iaikgeworCWlmIChJU19FUlIoY3R4X29iaikpIHsKIAkJRFJNX0RFQlVHX0RSSVZFUigiQWxs b2MgTFJDIGJhY2tpbmcgb2JqIGZhaWxlZC5cbiIpOwotCQlyZXR1cm4gLUVOT01FTTsKKwkJcmV0 dXJuIFBUUl9FUlIoY3R4X29iaik7CiAJfQogCiAJcmluZ2J1ZiA9IGludGVsX2VuZ2luZV9jcmVh dGVfcmluZ2J1ZmZlcihyaW5nLCA0ICogUEFHRV9TSVpFKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X292ZXJsYXkuYwppbmRleCA5MTY4NDEzLi44ZTVmNjI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9vdmVybGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfb3ZlcmxheS5jCkBAIC0xMzkyLDkgKzEzOTIsOSBAQCB2b2lkIGludGVsX3NldHVwX292ZXJs YXkoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlyZWdfYm8gPSBOVUxMOwogCWlmICghT1ZFUkxB WV9ORUVEU19QSFlTSUNBTChkZXYpKQogCQlyZWdfYm8gPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRl X3N0b2xlbihkZXYsIFBBR0VfU0laRSk7Ci0JaWYgKHJlZ19ibyA9PSBOVUxMKQorCWlmIChJU19F UlJfT1JfTlVMTChyZWdfYm8pKQogCQlyZWdfYm8gPSBpOTE1X2dlbV9hbGxvY19vYmplY3QoZGV2 LCBQQUdFX1NJWkUpOwotCWlmIChyZWdfYm8gPT0gTlVMTCkKKwlpZiAoSVNfRVJSKHJlZ19ibykp CiAJCWdvdG8gb3V0X2ZyZWU7CiAJb3ZlcmxheS0+cmVnX2JvID0gcmVnX2JvOwogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcG0uYwppbmRleCAzNDdkNGRmLi45MGI4Y2EzIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BtLmMKQEAgLTUyNjksMTAgKzUyNjksMTMgQEAgc3RhdGljIHZvaWQgdmFsbGV5dmlld19zZXR1 cF9wY3R4KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCQkJCQkJCSAgICAgIHBjYnJfb2Zmc2V0 LAogCQkJCQkJCQkgICAgICBJOTE1X0dUVF9PRkZTRVRfTk9ORSwKIAkJCQkJCQkJICAgICAgcGN0 eF9zaXplKTsKKwkJaWYgKElTX0VSUihwY3R4KSkKKwkJCXBjdHggPSBOVUxMOworCiAJCWdvdG8g b3V0OwogCX0KIAotCURSTV9ERUJVR19EUklWRVIoIkJJT1MgZGlkbid0IHNldCB1cCBQQ0JSLCBm aXhpbmcgdXBcbiIpOworCURSTV9ERUJVR19EUklWRVIoIkJJT1MgZGlkbid0IHNldCB1cCBQQ0JS IG9yIHByZWFsbG9jIGZhaWxlZCwgZml4aW5nIHVwXG4iKTsKIAogCS8qCiAJICogRnJvbSB0aGUg R3VuaXQgcmVnaXN0ZXIgSEFTOgpAQCAtNTI4Myw3ICs1Mjg2LDcgQEAgc3RhdGljIHZvaWQgdmFs bGV5dmlld19zZXR1cF9wY3R4KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJICogbWVtb3J5LCBv ciBhbnkgb3RoZXIgcmVsZXZhbnQgcmFuZ2VzLgogCSAqLwogCXBjdHggPSBpOTE1X2dlbV9vYmpl Y3RfY3JlYXRlX3N0b2xlbihkZXYsIHBjdHhfc2l6ZSk7Ci0JaWYgKCFwY3R4KSB7CisJaWYgKElT X0VSUihwY3R4KSkgewogCQlEUk1fREVCVUcoIm5vdCBlbm91Z2ggc3RvbGVuIHNwYWNlIGZvciBQ Q1RYLCBkaXNhYmxpbmdcbiIpOwogCQlnb3RvIG91dDsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yaW5nYnVmZmVyLmMKaW5kZXggNDVjZTQ1YS4uZmJhYWJhMSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwpAQCAtNjY0LDkgKzY2NCwxMCBAQCBpbnRlbF9pbml0 X3BpcGVfY29udHJvbChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQogCVdBUk5fT04ocmlu Zy0+c2NyYXRjaC5vYmopOwogCiAJcmluZy0+c2NyYXRjaC5vYmogPSBpOTE1X2dlbV9hbGxvY19v YmplY3QocmluZy0+ZGV2LCA0MDk2KTsKLQlpZiAocmluZy0+c2NyYXRjaC5vYmogPT0gTlVMTCkg eworCWlmIChJU19FUlIocmluZy0+c2NyYXRjaC5vYmopKSB7CiAJCURSTV9FUlJPUigiRmFpbGVk IHRvIGFsbG9jYXRlIHNlcW5vIHBhZ2VcbiIpOwotCQlyZXQgPSAtRU5PTUVNOworCQlyZXQgPSBQ VFJfRVJSKHJpbmctPnNjcmF0Y2gub2JqKTsKKwkJcmluZy0+c2NyYXRjaC5vYmogPSBOVUxMOwog CQlnb3RvIGVycjsKIAl9CiAKQEAgLTE5OTQsOSArMTk5NSw5IEBAIHN0YXRpYyBpbnQgaW5pdF9z dGF0dXNfcGFnZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQogCQlpbnQgcmV0OwogCiAJ CW9iaiA9IGk5MTVfZ2VtX2FsbG9jX29iamVjdChyaW5nLT5kZXYsIDQwOTYpOwotCQlpZiAob2Jq ID09IE5VTEwpIHsKKwkJaWYgKElTX0VSUihvYmopKSB7CiAJCQlEUk1fRVJST1IoIkZhaWxlZCB0 byBhbGxvY2F0ZSBzdGF0dXMgcGFnZVxuIik7Ci0JCQlyZXR1cm4gLUVOT01FTTsKKwkJCXJldHVy biBQVFJfRVJSKG9iaik7CiAJCX0KIAogCQlyZXQgPSBpOTE1X2dlbV9vYmplY3Rfc2V0X2NhY2hl X2xldmVsKG9iaiwgSTkxNV9DQUNIRV9MTEMpOwpAQCAtMjE0OSwxMCArMjE1MCwxMCBAQCBzdGF0 aWMgaW50IGludGVsX2FsbG9jX3JpbmdidWZmZXJfb2JqKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs CiAJb2JqID0gTlVMTDsKIAlpZiAoIUhBU19MTEMoZGV2KSkKIAkJb2JqID0gaTkxNV9nZW1fb2Jq ZWN0X2NyZWF0ZV9zdG9sZW4oZGV2LCByaW5nYnVmLT5zaXplKTsKLQlpZiAob2JqID09IE5VTEwp CisJaWYgKElTX0VSUl9PUl9OVUxMKG9iaikpCiAJCW9iaiA9IGk5MTVfZ2VtX2FsbG9jX29iamVj dChkZXYsIHJpbmdidWYtPnNpemUpOwotCWlmIChvYmogPT0gTlVMTCkKLQkJcmV0dXJuIC1FTk9N RU07CisJaWYgKElTX0VSUihvYmopKQorCQlyZXR1cm4gUFRSX0VSUihvYmopOwogCiAJLyogbWFy ayByaW5nIGJ1ZmZlcnMgYXMgcmVhZC1vbmx5IGZyb20gR1BVIHNpZGUgYnkgZGVmYXVsdCAqLwog CW9iai0+Z3Rfcm8gPSAxOwpAQCAtMjc1Myw3ICsyNzU0LDcgQEAgaW50IGludGVsX2luaXRfcmVu ZGVyX3JpbmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJaWYgKElOVEVMX0lORk8o ZGV2KS0+Z2VuID49IDgpIHsKIAkJaWYgKGk5MTVfc2VtYXBob3JlX2lzX2VuYWJsZWQoZGV2KSkg ewogCQkJb2JqID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KGRldiwgNDA5Nik7Ci0JCQlpZiAob2Jq ID09IE5VTEwpIHsKKwkJCWlmIChJU19FUlIob2JqKSkgewogCQkJCURSTV9FUlJPUigiRmFpbGVk IHRvIGFsbG9jYXRlIHNlbWFwaG9yZSBiby4gRGlzYWJsaW5nIHNlbWFwaG9yZXNcbiIpOwogCQkJ CWk5MTUuc2VtYXBob3JlcyA9IDA7CiAJCQl9IGVsc2UgewpAQCAtMjg2MCw5ICsyODYxLDkgQEAg aW50IGludGVsX2luaXRfcmVuZGVyX3JpbmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp CiAJLyogV29ya2Fyb3VuZCBiYXRjaGJ1ZmZlciB0byBjb21iYXQgQ1MgdGxiIGJ1Zy4gKi8KIAlp ZiAoSEFTX0JST0tFTl9DU19UTEIoZGV2KSkgewogCQlvYmogPSBpOTE1X2dlbV9hbGxvY19vYmpl Y3QoZGV2LCBJODMwX1dBX1NJWkUpOwotCQlpZiAob2JqID09IE5VTEwpIHsKKwkJaWYgKElTX0VS UihvYmopKSB7CiAJCQlEUk1fRVJST1IoIkZhaWxlZCB0byBhbGxvY2F0ZSBiYXRjaCBib1xuIik7 Ci0JCQlyZXR1cm4gLUVOT01FTTsKKwkJCXJldHVybiBQVFJfRVJSKG9iaik7CiAJCX0KIAogCQly ZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9waW4ob2JqLCAwLCAwKTsKLS0gCjEuOS4xCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK