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: Fri, 18 Mar 2016 11:52:06 +0530 Message-ID: <1458282130-31660-7-git-send-email-ankitprasad.r.sharma@intel.com> References: <1458282130-31660-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 AA0266E02C for ; Fri, 18 Mar 2016 06:46:26 +0000 (UTC) In-Reply-To: <1458282130-31660-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 List-Id: intel-gfx@lists.freedesktop.org RnJvbTogQW5raXRwcmFzYWQgU2hhcm1hIDxhbmtpdHByYXNhZC5yLnNoYXJtYUBpbnRlbC5jb20+ CgpQcm9wYWdhdGluZyBjb3JyZWN0IGVycm9yIGNvZGVzIHRvIHVzZXJzcGFjZSBieSB1c2luZyBF UlJfUFRSIGFuZApQVFJfRVJSIG1hY3JvcyBmb3Igc3RvbGVuIG1lbW9yeSBiYXNlZCBvYmplY3Qg YWxsb2NhdGlvbi4gV2UgZ2VuZXJhbGx5CnJldHVybiAtRU5PTUVNIHRvIHRoZSB1c2VyIHdoZW5l dmVyIHRoZXJlIGlzIGEgZmFpbHVyZSBpbiBvYmplY3QKYWxsb2NhdGlvbi4gVGhpcyBwYXRjaCBo ZWxwcyB1c2VyIHRvIGlkZW50aWZ5IHRoZSBjb3JyZWN0IHJlYXNvbiBmb3IgdGhlCmZhaWx1cmUg YW5kIG5vdCBqdXN0IC1FTk9NRU0gZWFjaCB0aW1lLgoKdjI6IE1vdmVkIHRoZSBwYXRjaCB1cCBp biB0aGUgc2VyaWVzLCBhZGRlZCBlcnJvciBwcm9wYWdhdGlvbiBmb3IKaTkxNV9nZW1fYWxsb2Nf b2JqZWN0IHRvbyAoQ2hyaXMpCgp2MzogUmVtb3ZlZCBzdG9yaW5nIG9mIGVycm9yIHBvaW50ZXIg aW5zaWRlIHN0cnVjdHMsIENvcnJlY3RlZCBlcnJvcgpwcm9wYWdhdGlvbiBpbiBjYWxsZXIgZnVu Y3Rpb25zIChDaHJpcykKCnY0OiBSZW1vdmUgYXNzaWdubWVudHMgaW5zaWRlIHRoZSBwcmVkaWNh dGUgKENocmlzKQoKdjU6IFJlbW92ZWQgdW5uZWNlc3NhcnkgaW5pdGlhbGl6YXRpb25zLCB1cGRh dGVkIGtlcm5lbGRvYyBmb3IKaTkxNV9ndWNfY2xpZW50LCBjb3JyZWN0ZWQgbWlzc2VkIGVycm9y IHBvaW50ZXIgaGFuZGxpbmcgKFR2cnRrbykKCnY2OiBVc2UgRVJSX0NBU1QvdGVtcG9yYXJ5IHZh cmlhYmxlIHRvIGF2b2lkIHN0b3JpbmcgaW52YWxpZCBwb2ludGVyCmluIGEgY29tbW9uIGZpZWxk IChDaHJpcykKCnY3OiBSZXNvbHZlZCByZWJhc2luZyBjb25mbGljdHMgKEFua2l0KQoKdjg6IFJl bW92ZWQgcmVkdW5kYW50IGNvZGUgKENocmlzKQoKdjk6IFJlYmFzZQoKdjEwOiBSZWJhc2UsIHJl c29sdmUgbWVyZ2UgY29uZmxpY3RzCgpTaWduZWQtb2ZmLWJ5OiBBbmtpdHByYXNhZCBTaGFybWEg PGFua2l0cHJhc2FkLnIuc2hhcm1hQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IENocmlzIFdpbHNv biA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtLmMgICAgICAgICAgICAgIHwgMjMgKysrKysrLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9iYXRjaF9wb29sLmMgICB8ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fY29udGV4dC5jICAgICAgfCAgNCArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX3JlbmRlcl9zdGF0ZS5jIHwgIDcgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fc3RvbGVuLmMgICAgICAgfCA1MyArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMgICB8IDUyICsrKysr KysrKysrKysrKysrLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jICAgICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYyAg ICAgICAgICAgfCAgNiArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAg ICAgICAgICB8IDEwICsrKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheS5j ICAgICAgICAgfCAgNCArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgICAgICAg ICAgICAgIHwgIDcgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5j ICAgICAgfCAyMSArKysrKy0tLS0tLQogMTIgZmlsZXMgY2hhbmdlZCwgMTEwIGluc2VydGlvbnMo KyksIDgzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IDQzYWFjYjEu LjdkZmEwMjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAtMzk3LDE5ICszOTcsMTggQEAg aTkxNV9nZW1fYWxsb2Nfb2JqZWN0X3N0b2xlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzaXpl X3Qgc2l6ZSkKIAogCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKIAlvYmogPSBpOTE1 X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihkZXYsIHNpemUpOwotCWlmICghb2JqKSB7Ci0JCW11 dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCQlyZXR1cm4gTlVMTDsKLQl9CisJaWYg KElTX0VSUihvYmopKQorCQlnb3RvIG91dDsKIAogCS8qIEFsd2F5cyBjbGVhciBmcmVzaCBidWZm ZXJzIGJlZm9yZSBoYW5kaW5nIHRvIHVzZXJzcGFjZSAqLwogCXJldCA9IGk5MTVfZ2VtX29iamVj dF9jbGVhcihvYmopOwogCWlmIChyZXQpIHsKIAkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2Uo Jm9iai0+YmFzZSk7Ci0JCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCQlyZXR1 cm4gTlVMTDsKKwkJb2JqID0gRVJSX1BUUihyZXQpOworCQlnb3RvIG91dDsKIAl9CiAKK291dDoK IAltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKIAlyZXR1cm4gb2JqOwogfQpAQCAt NDQ0LDggKzQ0Myw4IEBAIGk5MTVfZ2VtX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCiAJ CXJldHVybiAtRUlOVkFMOwogCX0KIAotCWlmIChvYmogPT0gTlVMTCkKLQkJcmV0dXJuIC1FTk9N RU07CisJaWYgKElTX0VSUihvYmopKQorCQlyZXR1cm4gUFRSX0VSUihvYmopOwogCiAJcmV0ID0g ZHJtX2dlbV9oYW5kbGVfY3JlYXRlKGZpbGUsICZvYmotPmJhc2UsICZoYW5kbGUpOwogCS8qIGRy b3AgcmVmZXJlbmNlIGZyb20gYWxsb2NhdGUgLSBoYW5kbGUgaG9sZHMgaXQgbm93ICovCkBAIC00 NTYwLDE0ICs0NTU5LDE2IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICppOTE1X2dlbV9h bGxvY19vYmplY3Qoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqOwogCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nOwogCWdmcF90IG1h c2s7CisJaW50IHJldDsKIAogCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9hbGxvYyhkZXYpOwogCWlm IChvYmogPT0gTlVMTCkKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0p OwogCi0JaWYgKGRybV9nZW1fb2JqZWN0X2luaXQoZGV2LCAmb2JqLT5iYXNlLCBzaXplKSAhPSAw KSB7CisJcmV0ID0gZHJtX2dlbV9vYmplY3RfaW5pdChkZXYsICZvYmotPmJhc2UsIHNpemUpOwor CWlmIChyZXQpIHsKIAkJaTkxNV9nZW1fb2JqZWN0X2ZyZWUob2JqKTsKLQkJcmV0dXJuIE5VTEw7 CisJCXJldHVybiBFUlJfUFRSKHJldCk7CiAJfQogCiAJbWFzayA9IEdGUF9ISUdIVVNFUiB8IF9f R0ZQX1JFQ0xBSU1BQkxFOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fYmF0Y2hfcG9vbC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fYmF0Y2hfcG9v bC5jCmluZGV4IDdiZjJmM2YuLmQ3OWNhYTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2JhdGNoX3Bvb2wuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9iYXRjaF9wb29sLmMKQEAgLTEzNSw4ICsxMzUsOCBAQCBpOTE1X2dlbV9iYXRjaF9wb29s X2dldChzdHJ1Y3QgaTkxNV9nZW1fYmF0Y2hfcG9vbCAqcG9vbCwKIAkJaW50IHJldDsKIAogCQlv YmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3QocG9vbC0+ZGV2LCBzaXplKTsKLQkJaWYgKG9iaiA9 PSBOVUxMKQotCQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisJCWlmIChJU19FUlIob2JqKSkK KwkJCXJldHVybiBvYmo7CiAKIAkJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlcyhvYmop OwogCQlpZiAocmV0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f Y29udGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCmluZGV4 IDE5OTM0NDkuLmFmNzZlMzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2NvbnRleHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0 LmMKQEAgLTE3OSw4ICsxNzksOCBAQCBpOTE1X2dlbV9hbGxvY19jb250ZXh0X29iaihzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSkKIAlpbnQgcmV0OwogCiAJb2JqID0gaTkxNV9n ZW1fYWxsb2Nfb2JqZWN0KGRldiwgc2l6ZSk7Ci0JaWYgKG9iaiA9PSBOVUxMKQotCQlyZXR1cm4g RVJSX1BUUigtRU5PTUVNKTsKKwlpZiAoSVNfRVJSKG9iaikpCisJCXJldHVybiBvYmo7CiAKIAkv KgogCSAqIFRyeSB0byBtYWtlIHRoZSBjb250ZXh0IHV0aWxpemUgTDMgYXMgd2VsbCBhcyBMTEMu CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZW5kZXJfc3RhdGUu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlbmRlcl9zdGF0ZS5jCmluZGV4IDcx NjExYmYuLjA3MWMxMWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X3JlbmRlcl9zdGF0ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlbmRl cl9zdGF0ZS5jCkBAIC01OCw4ICs1OCwxMSBAQCBzdGF0aWMgaW50IHJlbmRlcl9zdGF0ZV9pbml0 KHN0cnVjdCByZW5kZXJfc3RhdGUgKnNvLCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlyZXR1 cm4gLUVJTlZBTDsKIAogCXNvLT5vYmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCA0MDk2 KTsKLQlpZiAoc28tPm9iaiA9PSBOVUxMKQotCQlyZXR1cm4gLUVOT01FTTsKKwlpZiAoSVNfRVJS KHNvLT5vYmopKSB7CisJCXJldCA9IFBUUl9FUlIoc28tPm9iaik7CisJCXNvLT5vYmogPSBOVUxM OworCQlyZXR1cm4gcmV0OworCX0KIAogCXJldCA9IGk5MTVfZ2VtX29ial9nZ3R0X3Bpbihzby0+ b2JqLCA0MDk2LCAwKTsKIAlpZiAocmV0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fc3RvbGVuLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9s ZW4uYwppbmRleCAyMWU3MjUzMy4uZjRkZTViYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fc3RvbGVuLmMKQEAgLTQ5NSw2ICs0OTUsNyBAQCBpOTE1X3BhZ2VzX2NyZWF0ZV9mb3Jfc3Rv bGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3Qgc2dfdGFibGUgKnN0OwogCXN0cnVj dCBzY2F0dGVybGlzdCAqc2c7CisJaW50IHJldDsKIAogCURSTV9ERUJVR19EUklWRVIoIm9mZnNl dD0weCV4LCBzaXplPSVkXG4iLCBvZmZzZXQsIHNpemUpOwogCUJVR19PTihvZmZzZXQgPiBkZXZf cHJpdi0+Z3R0LnN0b2xlbl9zaXplIC0gc2l6ZSk7CkBAIC01MDYsMTEgKzUwNywxMiBAQCBpOTE1 X3BhZ2VzX2NyZWF0ZV9mb3Jfc3RvbGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIAlzdCA9 IGttYWxsb2Moc2l6ZW9mKCpzdCksIEdGUF9LRVJORUwpOwogCWlmIChzdCA9PSBOVUxMKQotCQly ZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKLQlpZiAoc2dfYWxsb2Nf dGFibGUoc3QsIDEsIEdGUF9LRVJORUwpKSB7CisJcmV0ID0gc2dfYWxsb2NfdGFibGUoc3QsIDEs IEdGUF9LRVJORUwpOworCWlmIChyZXQpIHsKIAkJa2ZyZWUoc3QpOwotCQlyZXR1cm4gTlVMTDsK KwkJcmV0dXJuIEVSUl9QVFIocmV0KTsKIAl9CiAKIAlzZyA9IHN0LT5zZ2w7CkBAIC01NTksMTgg KzU2MSwyMyBAQCBfaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKIAkJCSAgICAgICBzdHJ1Y3QgZHJtX21tX25vZGUgKnN0b2xlbikKIHsKIAlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOworCXN0cnVjdCBzZ190YWJsZSAqcGFnZXM7CiAK IAlvYmogPSBpOTE1X2dlbV9vYmplY3RfYWxsb2MoZGV2KTsKIAlpZiAob2JqID09IE5VTEwpCi0J CXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAogCWRybV9nZW1fcHJp dmF0ZV9vYmplY3RfaW5pdChkZXYsICZvYmotPmJhc2UsIHN0b2xlbi0+c2l6ZSk7CiAJaTkxNV9n ZW1fb2JqZWN0X2luaXQob2JqLCAmaTkxNV9nZW1fb2JqZWN0X3N0b2xlbl9vcHMpOwogCi0Jb2Jq LT5wYWdlcyA9IGk5MTVfcGFnZXNfY3JlYXRlX2Zvcl9zdG9sZW4oZGV2LAotCQkJCQkJICBzdG9s ZW4tPnN0YXJ0LCBzdG9sZW4tPnNpemUpOwotCWlmIChvYmotPnBhZ2VzID09IE5VTEwpCi0JCWdv dG8gY2xlYW51cDsKKwlwYWdlcyA9IGk5MTVfcGFnZXNfY3JlYXRlX2Zvcl9zdG9sZW4oZGV2LAor CQkJCQkgICAgIHN0b2xlbi0+c3RhcnQsIHN0b2xlbi0+c2l6ZSk7CisJaWYgKElTX0VSUihwYWdl cykpIHsKKwkJaTkxNV9nZW1fb2JqZWN0X2ZyZWUob2JqKTsKKwkJcmV0dXJuIEVSUl9DQVNUKHBh Z2VzKTsKKwl9CisKKwlvYmotPnBhZ2VzID0gcGFnZXM7CiAKIAlvYmotPmdldF9wYWdlLnNnID0g b2JqLT5wYWdlcy0+c2dsOwogCW9iai0+Z2V0X3BhZ2UubGFzdCA9IDA7CkBAIC01ODIsMTAgKzU4 OSw2IEBAIF9pOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAogCW9iai0+Y2FjaGVfbGV2ZWwgPSBIQVNfTExDKGRldikgPyBJOTE1X0NBQ0hFX0xMQyA6 IEk5MTVfQ0FDSEVfTk9ORTsKIAogCXJldHVybiBvYmo7Ci0KLWNsZWFudXA6Ci0JaTkxNV9nZW1f b2JqZWN0X2ZyZWUob2JqKTsKLQlyZXR1cm4gTlVMTDsKIH0KIAogc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKgpAQCAtNTk3LDI5ICs2MDAsMjkgQEAgaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9z dG9sZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTY0IHNpemUpCiAJaW50IHJldDsKIAogCWlm ICghZHJtX21tX2luaXRpYWxpemVkKCZkZXZfcHJpdi0+bW0uc3RvbGVuKSkKLQkJcmV0dXJuIE5V TEw7CisJCXJldHVybiBFUlJfUFRSKC1FTk9ERVYpOwogCiAJRFJNX0RFQlVHX0tNUygiY3JlYXRp bmcgc3RvbGVuIG9iamVjdDogc2l6ZT0lbGx4XG4iLCBzaXplKTsKIAlpZiAoc2l6ZSA9PSAwKQot CQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CiAKIAlzdG9sZW4gPSBr emFsbG9jKHNpemVvZigqc3RvbGVuKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFzdG9sZW4pCi0JCXJl dHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAogCXJldCA9IGk5MTVfZ2Vt X3N0b2xlbl9pbnNlcnRfbm9kZShkZXZfcHJpdiwgc3RvbGVuLCBzaXplLCA0MDk2KTsKIAlpZiAo cmV0KSB7CiAJCWtmcmVlKHN0b2xlbik7Ci0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BU UihyZXQpOwogCX0KIAogCW9iaiA9IF9pOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihkZXYs IHN0b2xlbik7Ci0JaWYgKG9iaikKKwlpZiAoIUlTX0VSUihvYmopKQogCQlyZXR1cm4gb2JqOwog CiAJaTkxNV9nZW1fc3RvbGVuX3JlbW92ZV9ub2RlKGRldl9wcml2LCBzdG9sZW4pOwogCWtmcmVl KHN0b2xlbik7Ci0JcmV0dXJuIE5VTEw7CisJcmV0dXJuIG9iajsKIH0KIAogc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKgpAQCAtNjM2LDcgKzYzOSw3IEBAIGk5MTVfZ2VtX29iamVjdF9jcmVh dGVfc3RvbGVuX2Zvcl9wcmVhbGxvY2F0ZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpbnQg cmV0OwogCiAJaWYgKCFkcm1fbW1faW5pdGlhbGl6ZWQoJmRldl9wcml2LT5tbS5zdG9sZW4pKQot CQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT0RFVik7CiAKIAlsb2NrZGVwX2Fz c2VydF9oZWxkKCZkZXYtPnN0cnVjdF9tdXRleCk7CiAKQEAgLTY0NiwxMSArNjQ5LDExIEBAIGk5 MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuX2Zvcl9wcmVhbGxvY2F0ZWQoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKIAkvKiBLSVNTIGFuZCBleHBlY3QgZXZlcnl0aGluZyB0byBiZSBwYWdlLWFs aWduZWQgKi8KIAlpZiAoV0FSTl9PTihzaXplID09IDApIHx8IFdBUk5fT04oc2l6ZSAmIDQwOTUp IHx8CiAJICAgIFdBUk5fT04oc3RvbGVuX29mZnNldCAmIDQwOTUpKQotCQlyZXR1cm4gTlVMTDsK KwkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CiAKIAlzdG9sZW4gPSBremFsbG9jKHNpemVvZigq c3RvbGVuKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFzdG9sZW4pCi0JCXJldHVybiBOVUxMOworCQly ZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAogCXN0b2xlbi0+c3RhcnQgPSBzdG9sZW5fb2Zmc2V0 OwogCXN0b2xlbi0+c2l6ZSA9IHNpemU7CkBAIC02NjAsMTUgKzY2MywxNSBAQCBpOTE1X2dlbV9v YmplY3RfY3JlYXRlX3N0b2xlbl9mb3JfcHJlYWxsb2NhdGVkKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCiAJaWYgKHJldCkgewogCQlEUk1fREVCVUdfS01TKCJmYWlsZWQgdG8gYWxsb2NhdGUgc3Rv bGVuIHNwYWNlXG4iKTsKIAkJa2ZyZWUoc3RvbGVuKTsKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVy biBFUlJfUFRSKHJldCk7CiAJfQogCiAJb2JqID0gX2k5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3Rv bGVuKGRldiwgc3RvbGVuKTsKLQlpZiAob2JqID09IE5VTEwpIHsKKwlpZiAoSVNfRVJSKG9iaikp IHsKIAkJRFJNX0RFQlVHX0tNUygiZmFpbGVkIHRvIGFsbG9jYXRlIHN0b2xlbiBvYmplY3RcbiIp OwogCQlpOTE1X2dlbV9zdG9sZW5fcmVtb3ZlX25vZGUoZGV2X3ByaXYsIHN0b2xlbik7CiAJCWtm cmVlKHN0b2xlbik7Ci0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gb2JqOwogCX0KIAogCS8qIFNv bWUgb2JqZWN0cyBqdXN0IG5lZWQgcGh5c2ljYWwgbWVtIGZyb20gc3RvbGVuIHNwYWNlICovCkBA IC03MDcsNSArNzEwLDUgQEAgaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW5fZm9yX3ByZWFs bG9jYXRlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiBlcnI6CiAJZHJtX2dlbV9vYmplY3Rf dW5yZWZlcmVuY2UoJm9iai0+YmFzZSk7Ci0JcmV0dXJuIE5VTEw7CisJcmV0dXJuIEVSUl9QVFIo cmV0KTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1p c3Npb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwppbmRl eCBhZTFmNThkLi5hODc2YWMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2d1Y19zdWJtaXNzaW9uLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3Vi bWlzc2lvbi5jCkBAIC02MDgsMjcgKzYwOCwzMCBAQCBpbnQgaTkxNV9ndWNfc3VibWl0KHN0cnVj dCBpOTE1X2d1Y19jbGllbnQgKmNsaWVudCwKICAqIG9iamVjdCBuZWVkcyB0byBiZSBwaW5uZWQg bGlmZXRpbWUuIEFsc28gd2UgbXVzdCBwaW4gaXQgdG8gZ3R0IHNwYWNlIG90aGVyCiAgKiB0aGFu IFswLCBHVUNfV09QQ01fVE9QKSBiZWNhdXNlIHRoaXMgcmFuZ2UgaXMgcmVzZXJ2ZWQgaW5zaWRl IEd1Qy4KICAqCi0gKiBSZXR1cm46CUEgZHJtX2k5MTVfZ2VtX29iamVjdCBpZiBzdWNjZXNzZnVs LCBvdGhlcndpc2UgTlVMTC4KKyAqIFJldHVybjoJQSBkcm1faTkxNV9nZW1fb2JqZWN0IGlmIHN1 Y2Nlc3NmdWwsIG90aGVyd2lzZSBlcnJvciBwb2ludGVyLgogICovCiBzdGF0aWMgc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKmdlbV9hbGxvY2F0ZV9ndWNfb2JqKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCiAJCQkJCQkJdTMyIHNpemUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqOworCWludCByZXQ7CiAKIAlvYmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCBzaXpl KTsKLQlpZiAoIW9iaikKLQkJcmV0dXJuIE5VTEw7CisJaWYgKElTX0VSUihvYmopKQorCQlyZXR1 cm4gb2JqOwogCi0JaWYgKGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXMob2JqKSkgeworCXJldCA9 IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXMob2JqKTsKKwlpZiAocmV0KSB7CiAJCWRybV9nZW1f b2JqZWN0X3VucmVmZXJlbmNlKCZvYmotPmJhc2UpOwotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJu IEVSUl9QVFIocmV0KTsKIAl9CiAKLQlpZiAoaTkxNV9nZW1fb2JqX2dndHRfcGluKG9iaiwgUEFH RV9TSVpFLAotCQkJUElOX09GRlNFVF9CSUFTIHwgR1VDX1dPUENNX1RPUCkpIHsKKwlyZXQgPSBp OTE1X2dlbV9vYmpfZ2d0dF9waW4ob2JqLCBQQUdFX1NJWkUsCisJCQkJICAgIFBJTl9PRkZTRVRf QklBUyB8IEdVQ19XT1BDTV9UT1ApOworCWlmIChyZXQpIHsKIAkJZHJtX2dlbV9vYmplY3RfdW5y ZWZlcmVuY2UoJm9iai0+YmFzZSk7Ci0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BUUihy ZXQpOwogCX0KIAogCS8qIEludmFsaWRhdGUgR3VDIFRMQiB0byBsZXQgR3VDIHRha2UgdGhlIGxh dGVzdCB1cGRhdGVzIHRvIEdUVC4gKi8KQEAgLTY5Niw3ICs2OTksNyBAQCBzdGF0aWMgdm9pZCBn dWNfY2xpZW50X2ZyZWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKICAqIEBjdHg6CXRoZSBjb250 ZXh0IHRoYXQgb3ducyB0aGUgY2xpZW50ICh3ZSB1c2UgdGhlIGRlZmF1bHQgcmVuZGVyCiAgKiAJ CWNvbnRleHQpCiAgKgotICogUmV0dXJuOglBbiBpOTE1X2d1Y19jbGllbnQgb2JqZWN0IGlmIHN1 Y2Nlc3MuCisgKiBSZXR1cm46CUFuIGk5MTVfZ3VjX2NsaWVudCBvYmplY3QgaWYgc3VjY2Vzcywg ZXJyb3IgcG9pbnRlciBvbiBmYWlsdXJlLgogICovCiBzdGF0aWMgc3RydWN0IGk5MTVfZ3VjX2Ns aWVudCAqZ3VjX2NsaWVudF9hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCQkJdWlu dDMyX3QgcHJpb3JpdHksCkBAIC03MDYsMTAgKzcwOSwxMSBAQCBzdGF0aWMgc3RydWN0IGk5MTVf Z3VjX2NsaWVudCAqZ3VjX2NsaWVudF9hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3Ry dWN0IGludGVsX2d1YyAqZ3VjID0gJmRldl9wcml2LT5ndWM7CiAJc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iajsKKwlpbnQgcmV0OwogCiAJY2xpZW50ID0ga3phbGxvYyhzaXplb2YoKmNs aWVudCksIEdGUF9LRVJORUwpOwogCWlmICghY2xpZW50KQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0 dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKIAljbGllbnQtPmRvb3JiZWxsX2lkID0gR1VDX0lOVkFM SURfRE9PUkJFTExfSUQ7CiAJY2xpZW50LT5wcmlvcml0eSA9IHByaW9yaXR5OwpAQCAtNzIwLDEz ICs3MjQsMTYgQEAgc3RhdGljIHN0cnVjdCBpOTE1X2d1Y19jbGllbnQgKmd1Y19jbGllbnRfYWxs b2Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCUdVQ19NQVhfR1BVX0NPTlRFWFRTLCBHRlBf S0VSTkVMKTsKIAlpZiAoY2xpZW50LT5jdHhfaW5kZXggPj0gR1VDX01BWF9HUFVfQ09OVEVYVFMp IHsKIAkJY2xpZW50LT5jdHhfaW5kZXggPSBHVUNfSU5WQUxJRF9DVFhfSUQ7CisJCXJldCA9IC1F SU5WQUw7CiAJCWdvdG8gZXJyOwogCX0KIAogCS8qIFRoZSBmaXJzdCBwYWdlIGlzIGRvb3JiZWxs L3Byb2NfZGVzYy4gVHdvIGZvbGxvd2VkIHBhZ2VzIGFyZSB3cS4gKi8KIAlvYmogPSBnZW1fYWxs b2NhdGVfZ3VjX29iaihkZXYsIEdVQ19EQl9TSVpFICsgR1VDX1dRX1NJWkUpOwotCWlmICghb2Jq KQorCWlmIChJU19FUlIob2JqKSkgeworCQlyZXQgPSBQVFJfRVJSKG9iaik7CiAJCWdvdG8gZXJy OworCX0KIAogCWNsaWVudC0+Y2xpZW50X29iaiA9IG9iajsKIAljbGllbnQtPndxX29mZnNldCA9 IEdVQ19EQl9TSVpFOwpAQCAtNzQ1LDkgKzc1MiwxMSBAQCBzdGF0aWMgc3RydWN0IGk5MTVfZ3Vj X2NsaWVudCAqZ3VjX2NsaWVudF9hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQljbGll bnQtPnByb2NfZGVzY19vZmZzZXQgPSAoR1VDX0RCX1NJWkUgLyAyKTsKIAogCWNsaWVudC0+ZG9v cmJlbGxfaWQgPSBhc3NpZ25fZG9vcmJlbGwoZ3VjLCBjbGllbnQtPnByaW9yaXR5KTsKLQlpZiAo Y2xpZW50LT5kb29yYmVsbF9pZCA9PSBHVUNfSU5WQUxJRF9ET09SQkVMTF9JRCkKKwlpZiAoY2xp ZW50LT5kb29yYmVsbF9pZCA9PSBHVUNfSU5WQUxJRF9ET09SQkVMTF9JRCkgewogCQkvKiBYWFg6 IGV2aWN0IGEgZG9vcmJlbGwgaW5zdGVhZCAqLworCQlyZXQgPSAtRUlOVkFMOwogCQlnb3RvIGVy cjsKKwl9CiAKIAlndWNfaW5pdF9wcm9jX2Rlc2MoZ3VjLCBjbGllbnQpOwogCWd1Y19pbml0X2N0 eF9kZXNjKGd1YywgY2xpZW50KTsKQEAgLTc1NSw3ICs3NjQsOCBAQCBzdGF0aWMgc3RydWN0IGk5 MTVfZ3VjX2NsaWVudCAqZ3VjX2NsaWVudF9hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAog CiAJLyogWFhYOiBBbnkgY2FjaGUgZmx1c2hlcyBuZWVkZWQ/IEdlbmVyYWwgZG9tYWluIG1nbXQg Y2FsbHM/ICovCiAKLQlpZiAoaG9zdDJndWNfYWxsb2NhdGVfZG9vcmJlbGwoZ3VjLCBjbGllbnQp KQorCXJldCA9IGhvc3QyZ3VjX2FsbG9jYXRlX2Rvb3JiZWxsKGd1YywgY2xpZW50KTsKKwlpZiAo cmV0KQogCQlnb3RvIGVycjsKIAogCURSTV9ERUJVR19EUklWRVIoIm5ldyBwcmlvcml0eSAldSBj bGllbnQgJXA6IGN0eF9pbmRleCAldSBkYl9pZCAldVxuIiwKQEAgLTc2Nyw3ICs3NzcsNyBAQCBl cnI6CiAJRFJNX0VSUk9SKCJGQUlMRUQgdG8gY3JlYXRlIHByaW9yaXR5ICV1IEd1QyBjbGllbnQh XG4iLCBwcmlvcml0eSk7CiAKIAlndWNfY2xpZW50X2ZyZWUoZGV2LCBjbGllbnQpOwotCXJldHVy biBOVUxMOworCXJldHVybiBFUlJfUFRSKHJldCk7CiB9CiAKIHN0YXRpYyB2b2lkIGd1Y19jcmVh dGVfbG9nKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKQEAgLTc5Miw3ICs4MDIsNyBAQCBzdGF0aWMg dm9pZCBndWNfY3JlYXRlX2xvZyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCiAJb2JqID0gZ3VjLT5s b2dfb2JqOwogCWlmICghb2JqKSB7CiAJCW9iaiA9IGdlbV9hbGxvY2F0ZV9ndWNfb2JqKGRldl9w cml2LT5kZXYsIHNpemUpOwotCQlpZiAoIW9iaikgeworCQlpZiAoSVNfRVJSKG9iaikpIHsKIAkJ CS8qIGxvZ2dpbmcgd2lsbCBiZSBvZmYgKi8KIAkJCWk5MTUuZ3VjX2xvZ19sZXZlbCA9IC0xOwog CQkJcmV0dXJuOwpAQCAtOTEyLDYgKzkyMiw3IEBAIGludCBpOTE1X2d1Y19zdWJtaXNzaW9uX2lu aXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAljb25zdCBzaXplX3QgcG9vbHNpemUgPSBHVUNf TUFYX0dQVV9DT05URVhUUyAqIGN0eHNpemU7CiAJY29uc3Qgc2l6ZV90IGdlbXNpemUgPSByb3Vu ZF91cChwb29sc2l6ZSwgUEFHRV9TSVpFKTsKIAlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmZGV2 X3ByaXYtPmd1YzsKKwlpbnQgcmV0OwogCiAJaWYgKCFpOTE1LmVuYWJsZV9ndWNfc3VibWlzc2lv bikKIAkJcmV0dXJuIDA7IC8qIG5vdCBlbmFibGVkICAqLwpAQCAtOTIwLDggKzkzMSwxMSBAQCBp bnQgaTkxNV9ndWNfc3VibWlzc2lvbl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCXJl dHVybiAwOyAvKiBhbHJlYWR5IGFsbG9jYXRlZCAqLwogCiAJZ3VjLT5jdHhfcG9vbF9vYmogPSBn ZW1fYWxsb2NhdGVfZ3VjX29iaihkZXZfcHJpdi0+ZGV2LCBnZW1zaXplKTsKLQlpZiAoIWd1Yy0+ Y3R4X3Bvb2xfb2JqKQotCQlyZXR1cm4gLUVOT01FTTsKKwlpZiAoSVNfRVJSKGd1Yy0+Y3R4X3Bv b2xfb2JqKSkgeworCQlyZXQgPSBQVFJfRVJSKGd1Yy0+Y3R4X3Bvb2xfb2JqKTsKKwkJZ3VjLT5j dHhfcG9vbF9vYmogPSBOVUxMOworCQlyZXR1cm4gcmV0OworCX0KIAogCWlkYV9pbml0KCZndWMt PmN0eF9pZHMpOwogCkBAIC05NDEsOSArOTU1LDkgQEAgaW50IGk5MTVfZ3VjX3N1Ym1pc3Npb25f ZW5hYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAkvKiBjbGllbnQgZm9yIGV4ZWNidWYg c3VibWlzc2lvbiAqLwogCWNsaWVudCA9IGd1Y19jbGllbnRfYWxsb2MoZGV2LCBHVUNfQ1RYX1BS SU9SSVRZX0tNRF9OT1JNQUwsIGN0eCk7Ci0JaWYgKCFjbGllbnQpIHsKKwlpZiAoSVNfRVJSKGNs aWVudCkpIHsKIAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIGV4ZWNidWYgZ3VjX2NsaWVu dFxuIik7Ci0JCXJldHVybiAtRU5PTUVNOworCQlyZXR1cm4gUFRSX0VSUihjbGllbnQpOwogCX0K IAogCWd1Yy0+ZXhlY2J1Zl9jbGllbnQgPSBjbGllbnQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMKaW5kZXggNWY4YzVhZDguLmM1YTgwYmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMKQEAgLTI1MTIsNyArMjUxMiw3IEBAIGludGVsX2FsbG9jX2luaXRpYWxfcGxh bmVfb2JqKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCQkJCQkJCSAgICAgYmFzZV9hbGlnbmVk LAogCQkJCQkJCSAgICAgYmFzZV9hbGlnbmVkLAogCQkJCQkJCSAgICAgc2l6ZV9hbGlnbmVkKTsK LQlpZiAoIW9iaikgeworCWlmIChJU19FUlIob2JqKSkgewogCQltdXRleF91bmxvY2soJmRldi0+ c3RydWN0X211dGV4KTsKIAkJcmV0dXJuIGZhbHNlOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9m YmRldi5jCmluZGV4IGFlOWNmNmYuLmQ0NTA5ZDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2ZiZGV2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJk ZXYuYwpAQCAtMTQ4LDExICsxNDgsMTEgQEAgc3RhdGljIGludCBpbnRlbGZiX2FsbG9jKHN0cnVj dCBkcm1fZmJfaGVscGVyICpoZWxwZXIsCiAJICogZmVhdHVyZXMuICovCiAJaWYgKHNpemUgKiAy IDwgZGV2X3ByaXYtPmd0dC5zdG9sZW5fdXNhYmxlX3NpemUpCiAJCW9iaiA9IGk5MTVfZ2VtX29i amVjdF9jcmVhdGVfc3RvbGVuKGRldiwgc2l6ZSk7Ci0JaWYgKG9iaiA9PSBOVUxMKQorCWlmIChJ U19FUlJfT1JfTlVMTChvYmopKQogCQlvYmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCBz aXplKTsKLQlpZiAoIW9iaikgeworCWlmIChJU19FUlIob2JqKSkgewogCQlEUk1fRVJST1IoImZh aWxlZCB0byBhbGxvY2F0ZSBmcmFtZWJ1ZmZlclxuIik7Ci0JCXJldCA9IC1FTk9NRU07CisJCXJl dCA9IFBUUl9FUlIob2JqKTsKIAkJZ290byBvdXQ7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5jCmluZGV4IGY3Mjc4MjIuLmViNWQzMTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCkBA IC0xNDY1LDkgKzE0NjUsMTEgQEAgc3RhdGljIGludCBscmNfc2V0dXBfd2FfY3R4X29iaihzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHUzMiBzaXplKQogCiAJZW5naW5lLT53YV9jdHgu b2JqID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KGVuZ2luZS0+ZGV2LAogCQkJCQkJICAgUEFHRV9B TElHTihzaXplKSk7Ci0JaWYgKCFlbmdpbmUtPndhX2N0eC5vYmopIHsKKwlpZiAoSVNfRVJSKGVu Z2luZS0+d2FfY3R4Lm9iaikpIHsKIAkJRFJNX0RFQlVHX0RSSVZFUigiYWxsb2MgTFJDIFdBIGN0 eCBiYWNraW5nIG9iaiBmYWlsZWQuXG4iKTsKLQkJcmV0dXJuIC1FTk9NRU07CisJCXJldCA9IFBU Ul9FUlIoZW5naW5lLT53YV9jdHgub2JqKTsKKwkJZW5naW5lLT53YV9jdHgub2JqID0gTlVMTDsK KwkJcmV0dXJuIHJldDsKIAl9CiAKIAlyZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9waW4oZW5naW5l LT53YV9jdHgub2JqLCBQQUdFX1NJWkUsIDApOwpAQCAtMjYxNyw5ICsyNjE5LDkgQEAgaW50IGlu dGVsX2xyX2NvbnRleHRfZGVmZXJyZWRfYWxsb2Moc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwK IAljb250ZXh0X3NpemUgKz0gUEFHRV9TSVpFICogTFJDX1BQSFdTUF9QTjsKIAogCWN0eF9vYmog PSBpOTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCBjb250ZXh0X3NpemUpOwotCWlmICghY3R4X29i aikgeworCWlmIChJU19FUlIoY3R4X29iaikpIHsKIAkJRFJNX0RFQlVHX0RSSVZFUigiQWxsb2Mg TFJDIGJhY2tpbmcgb2JqIGZhaWxlZC5cbiIpOwotCQlyZXR1cm4gLUVOT01FTTsKKwkJcmV0dXJu IFBUUl9FUlIoY3R4X29iaik7CiAJfQogCiAJcmluZ2J1ZiA9IGludGVsX2VuZ2luZV9jcmVhdGVf cmluZ2J1ZmZlcihlbmdpbmUsIDQgKiBQQUdFX1NJWkUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf b3ZlcmxheS5jCmluZGV4IDEzZTIyZjUuLjYwNzUwZWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9vdmVybGF5LmMKQEAgLTEzOTQsOSArMTM5NCw5IEBAIHZvaWQgaW50ZWxfc2V0dXBfb3Zlcmxh eShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXJlZ19ibyA9IE5VTEw7CiAJaWYgKCFPVkVSTEFZ X05FRURTX1BIWVNJQ0FMKGRldikpCiAJCXJlZ19ibyA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVf c3RvbGVuKGRldiwgUEFHRV9TSVpFKTsKLQlpZiAocmVnX2JvID09IE5VTEwpCisJaWYgKElTX0VS Ul9PUl9OVUxMKHJlZ19ibykpCiAJCXJlZ19ibyA9IGk5MTVfZ2VtX2FsbG9jX29iamVjdChkZXYs IFBBR0VfU0laRSk7Ci0JaWYgKHJlZ19ibyA9PSBOVUxMKQorCWlmIChJU19FUlIocmVnX2JvKSkK IAkJZ290byBvdXRfZnJlZTsKIAlvdmVybGF5LT5yZWdfYm8gPSByZWdfYm87CiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wbS5jCmluZGV4IDIwYzgyNDMuLjAxMDc4ZDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cG0uYwpAQCAtNTMyOCwxMCArNTMyOCwxMyBAQCBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X3NldHVw X3BjdHgoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJCQkJCQkJICAgICAgcGNicl9vZmZzZXQs CiAJCQkJCQkJCSAgICAgIEk5MTVfR1RUX09GRlNFVF9OT05FLAogCQkJCQkJCQkgICAgICBwY3R4 X3NpemUpOworCQlpZiAoSVNfRVJSKHBjdHgpKQorCQkJcGN0eCA9IE5VTEw7CisKIAkJZ290byBv dXQ7CiAJfQogCi0JRFJNX0RFQlVHX0RSSVZFUigiQklPUyBkaWRuJ3Qgc2V0IHVwIFBDQlIsIGZp eGluZyB1cFxuIik7CisJRFJNX0RFQlVHX0RSSVZFUigiQklPUyBkaWRuJ3Qgc2V0IHVwIFBDQlIg b3IgcHJlYWxsb2MgZmFpbGVkLCBmaXhpbmcgdXBcbiIpOwogCiAJLyoKIAkgKiBGcm9tIHRoZSBH dW5pdCByZWdpc3RlciBIQVM6CkBAIC01MzQyLDcgKzUzNDUsNyBAQCBzdGF0aWMgdm9pZCB2YWxs ZXl2aWV3X3NldHVwX3BjdHgoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkgKiBtZW1vcnksIG9y IGFueSBvdGhlciByZWxldmFudCByYW5nZXMuCiAJICovCiAJcGN0eCA9IGk5MTVfZ2VtX29iamVj dF9jcmVhdGVfc3RvbGVuKGRldiwgcGN0eF9zaXplKTsKLQlpZiAoIXBjdHgpIHsKKwlpZiAoSVNf RVJSKHBjdHgpKSB7CiAJCURSTV9ERUJVRygibm90IGVub3VnaCBzdG9sZW4gc3BhY2UgZm9yIFBD VFgsIGRpc2FibGluZ1xuIik7CiAJCWdvdG8gb3V0OwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3JpbmdidWZmZXIuYwppbmRleCAwMTVkYzdkLi5mNTQzMTRlIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCkBAIC02NjcsOSArNjY3LDEwIEBAIGludGVsX2luaXRf cGlwZV9jb250cm9sKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlXQVJOX09OKGVu Z2luZS0+c2NyYXRjaC5vYmopOwogCiAJZW5naW5lLT5zY3JhdGNoLm9iaiA9IGk5MTVfZ2VtX2Fs bG9jX29iamVjdChlbmdpbmUtPmRldiwgNDA5Nik7Ci0JaWYgKGVuZ2luZS0+c2NyYXRjaC5vYmog PT0gTlVMTCkgeworCWlmIChJU19FUlIoZW5naW5lLT5zY3JhdGNoLm9iaikpIHsKIAkJRFJNX0VS Uk9SKCJGYWlsZWQgdG8gYWxsb2NhdGUgc2Vxbm8gcGFnZVxuIik7Ci0JCXJldCA9IC1FTk9NRU07 CisJCXJldCA9IFBUUl9FUlIoZW5naW5lLT5zY3JhdGNoLm9iaik7CisJCWVuZ2luZS0+c2NyYXRj aC5vYmogPSBOVUxMOwogCQlnb3RvIGVycjsKIAl9CiAKQEAgLTIwMDYsOSArMjAwNyw5IEBAIHN0 YXRpYyBpbnQgaW5pdF9zdGF0dXNfcGFnZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp CiAJCWludCByZXQ7CiAKIAkJb2JqID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KGVuZ2luZS0+ZGV2 LCA0MDk2KTsKLQkJaWYgKG9iaiA9PSBOVUxMKSB7CisJCWlmIChJU19FUlIob2JqKSkgewogCQkJ RFJNX0VSUk9SKCJGYWlsZWQgdG8gYWxsb2NhdGUgc3RhdHVzIHBhZ2VcbiIpOwotCQkJcmV0dXJu IC1FTk9NRU07CisJCQlyZXR1cm4gUFRSX0VSUihvYmopOwogCQl9CiAKIAkJcmV0ID0gaTkxNV9n ZW1fb2JqZWN0X3NldF9jYWNoZV9sZXZlbChvYmosIEk5MTVfQ0FDSEVfTExDKTsKQEAgLTIxNjEs MTAgKzIxNjIsMTAgQEAgc3RhdGljIGludCBpbnRlbF9hbGxvY19yaW5nYnVmZmVyX29iaihzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAogCW9iaiA9IE5VTEw7CiAJaWYgKCFIQVNfTExDKGRldikpCiAJ CW9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuKGRldiwgcmluZ2J1Zi0+c2l6ZSk7 Ci0JaWYgKG9iaiA9PSBOVUxMKQorCWlmIChJU19FUlJfT1JfTlVMTChvYmopKQogCQlvYmogPSBp OTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCByaW5nYnVmLT5zaXplKTsKLQlpZiAob2JqID09IE5V TEwpCi0JCXJldHVybiAtRU5PTUVNOworCWlmIChJU19FUlIob2JqKSkKKwkJcmV0dXJuIFBUUl9F UlIob2JqKTsKIAogCS8qIG1hcmsgcmluZyBidWZmZXJzIGFzIHJlYWQtb25seSBmcm9tIEdQVSBz aWRlIGJ5IGRlZmF1bHQgKi8KIAlvYmotPmd0X3JvID0gMTsKQEAgLTI3NjgsNyArMjc2OSw3IEBA IGludCBpbnRlbF9pbml0X3JlbmRlcl9yaW5nX2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQogCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA4KSB7CiAJCWlmIChpOTE1X3NlbWFwaG9y ZV9pc19lbmFibGVkKGRldikpIHsKIAkJCW9iaiA9IGk5MTVfZ2VtX2FsbG9jX29iamVjdChkZXYs IDQwOTYpOwotCQkJaWYgKG9iaiA9PSBOVUxMKSB7CisJCQlpZiAoSVNfRVJSKG9iaikpIHsKIAkJ CQlEUk1fRVJST1IoIkZhaWxlZCB0byBhbGxvY2F0ZSBzZW1hcGhvcmUgYm8uIERpc2FibGluZyBz ZW1hcGhvcmVzXG4iKTsKIAkJCQlpOTE1LnNlbWFwaG9yZXMgPSAwOwogCQkJfSBlbHNlIHsKQEAg LTI4NzUsOSArMjg3Niw5IEBAIGludCBpbnRlbF9pbml0X3JlbmRlcl9yaW5nX2J1ZmZlcihzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQogCS8qIFdvcmthcm91bmQgYmF0Y2hidWZmZXIgdG8gY29tYmF0 IENTIHRsYiBidWcuICovCiAJaWYgKEhBU19CUk9LRU5fQ1NfVExCKGRldikpIHsKIAkJb2JqID0g aTkxNV9nZW1fYWxsb2Nfb2JqZWN0KGRldiwgSTgzMF9XQV9TSVpFKTsKLQkJaWYgKG9iaiA9PSBO VUxMKSB7CisJCWlmIChJU19FUlIob2JqKSkgewogCQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYWxs b2NhdGUgYmF0Y2ggYm9cbiIpOwotCQkJcmV0dXJuIC1FTk9NRU07CisJCQlyZXR1cm4gUFRSX0VS UihvYmopOwogCQl9CiAKIAkJcmV0ID0gaTkxNV9nZW1fb2JqX2dndHRfcGluKG9iaiwgMCwgMCk7 Ci0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==