From mboxrd@z Thu Jan 1 00:00:00 1970 From: ankitprasad.r.sharma@intel.com Subject: [PATCH 06/12] drm/i915: Propagating correct error codes to the userspace Date: Wed, 20 Apr 2016 16:47:33 +0530 Message-ID: <1461151059-16361-7-git-send-email-ankitprasad.r.sharma@intel.com> References: <1461151059-16361-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 B71B26E984 for ; Wed, 20 Apr 2016 11:42:46 +0000 (UTC) In-Reply-To: <1461151059-16361-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 MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IGQwYmQzYzIu LmYyYWZmYzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAtMzkyLDE5ICszOTIsMTggQEAg aTkxNV9nZW1fYWxsb2Nfb2JqZWN0X3N0b2xlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzaXpl X3Qgc2l6ZSkKIAogCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKIAlvYmogPSBpOTE1 X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihkZXYsIHNpemUpOwotCWlmICghb2JqKSB7Ci0JCW11 dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCQlyZXR1cm4gTlVMTDsKLQl9CisJaWYg KElTX0VSUihvYmopKQorCQlnb3RvIG91dDsKIAogCS8qIEFsd2F5cyBjbGVhciBmcmVzaCBidWZm ZXJzIGJlZm9yZSBoYW5kaW5nIHRvIHVzZXJzcGFjZSAqLwogCXJldCA9IGk5MTVfZ2VtX29iamVj dF9jbGVhcihvYmopOwogCWlmIChyZXQpIHsKIAkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2Uo Jm9iai0+YmFzZSk7Ci0JCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCQlyZXR1 cm4gTlVMTDsKKwkJb2JqID0gRVJSX1BUUihyZXQpOworCQlnb3RvIG91dDsKIAl9CiAKK291dDoK IAltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKIAlyZXR1cm4gb2JqOwogfQpAQCAt NDM5LDggKzQzOCw4IEBAIGk5MTVfZ2VtX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCiAJ CXJldHVybiAtRUlOVkFMOwogCX0KIAotCWlmIChvYmogPT0gTlVMTCkKLQkJcmV0dXJuIC1FTk9N RU07CisJaWYgKElTX0VSUihvYmopKQorCQlyZXR1cm4gUFRSX0VSUihvYmopOwogCiAJcmV0ID0g ZHJtX2dlbV9oYW5kbGVfY3JlYXRlKGZpbGUsICZvYmotPmJhc2UsICZoYW5kbGUpOwogCS8qIGRy b3AgcmVmZXJlbmNlIGZyb20gYWxsb2NhdGUgLSBoYW5kbGUgaG9sZHMgaXQgbm93ICovCkBAIC00 NTkyLDE0ICs0NTkxLDE2IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICppOTE1X2dlbV9h bGxvY19vYmplY3Qoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqOwogCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nOwogCWdmcF90IG1h c2s7CisJaW50IHJldDsKIAogCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9hbGxvYyhkZXYpOwogCWlm IChvYmogPT0gTlVMTCkKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0p OwogCi0JaWYgKGRybV9nZW1fb2JqZWN0X2luaXQoZGV2LCAmb2JqLT5iYXNlLCBzaXplKSAhPSAw KSB7CisJcmV0ID0gZHJtX2dlbV9vYmplY3RfaW5pdChkZXYsICZvYmotPmJhc2UsIHNpemUpOwor CWlmIChyZXQpIHsKIAkJaTkxNV9nZW1fb2JqZWN0X2ZyZWUob2JqKTsKLQkJcmV0dXJuIE5VTEw7 CisJCXJldHVybiBFUlJfUFRSKHJldCk7CiAJfQogCiAJbWFzayA9IEdGUF9ISUdIVVNFUiB8IF9f R0ZQX1JFQ0xBSU1BQkxFOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fYmF0Y2hfcG9vbC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fYmF0Y2hfcG9v bC5jCmluZGV4IDdiZjJmM2YuLmQ3OWNhYTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2JhdGNoX3Bvb2wuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9iYXRjaF9wb29sLmMKQEAgLTEzNSw4ICsxMzUsOCBAQCBpOTE1X2dlbV9iYXRjaF9wb29s X2dldChzdHJ1Y3QgaTkxNV9nZW1fYmF0Y2hfcG9vbCAqcG9vbCwKIAkJaW50IHJldDsKIAogCQlv YmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3QocG9vbC0+ZGV2LCBzaXplKTsKLQkJaWYgKG9iaiA9 PSBOVUxMKQotCQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisJCWlmIChJU19FUlIob2JqKSkK KwkJCXJldHVybiBvYmo7CiAKIAkJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlcyhvYmop OwogCQlpZiAocmV0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f Y29udGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCmluZGV4 IGU1YWNjMzkuLjM0ZjQ5MzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2NvbnRleHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0 LmMKQEAgLTE3OSw4ICsxNzksOCBAQCBpOTE1X2dlbV9hbGxvY19jb250ZXh0X29iaihzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSkKIAlpbnQgcmV0OwogCiAJb2JqID0gaTkxNV9n ZW1fYWxsb2Nfb2JqZWN0KGRldiwgc2l6ZSk7Ci0JaWYgKG9iaiA9PSBOVUxMKQotCQlyZXR1cm4g RVJSX1BUUigtRU5PTUVNKTsKKwlpZiAoSVNfRVJSKG9iaikpCisJCXJldHVybiBvYmo7CiAKIAkv KgogCSAqIFRyeSB0byBtYWtlIHRoZSBjb250ZXh0IHV0aWxpemUgTDMgYXMgd2VsbCBhcyBMTEMu CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZW5kZXJfc3RhdGUu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlbmRlcl9zdGF0ZS5jCmluZGV4IDcx NjExYmYuLjA3MWMxMWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X3JlbmRlcl9zdGF0ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlbmRl cl9zdGF0ZS5jCkBAIC01OCw4ICs1OCwxMSBAQCBzdGF0aWMgaW50IHJlbmRlcl9zdGF0ZV9pbml0 KHN0cnVjdCByZW5kZXJfc3RhdGUgKnNvLCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlyZXR1 cm4gLUVJTlZBTDsKIAogCXNvLT5vYmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCA0MDk2 KTsKLQlpZiAoc28tPm9iaiA9PSBOVUxMKQotCQlyZXR1cm4gLUVOT01FTTsKKwlpZiAoSVNfRVJS KHNvLT5vYmopKSB7CisJCXJldCA9IFBUUl9FUlIoc28tPm9iaik7CisJCXNvLT5vYmogPSBOVUxM OworCQlyZXR1cm4gcmV0OworCX0KIAogCXJldCA9IGk5MTVfZ2VtX29ial9nZ3R0X3Bpbihzby0+ b2JqLCA0MDk2LCAwKTsKIAlpZiAocmV0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fc3RvbGVuLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9s ZW4uYwppbmRleCA0M2EzMjQ2Li44OWNhMTUxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9zdG9sZW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9zdG9sZW4uYwpAQCAtNTAxLDYgKzUwMSw3IEBAIGk5MTVfcGFnZXNfY3JlYXRlX2Zvcl9zdG9s ZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0gJmRl dl9wcml2LT5nZ3R0OwogCXN0cnVjdCBzZ190YWJsZSAqc3Q7CiAJc3RydWN0IHNjYXR0ZXJsaXN0 ICpzZzsKKwlpbnQgcmV0OwogCiAJRFJNX0RFQlVHX0RSSVZFUigib2Zmc2V0PTB4JXgsIHNpemU9 JWRcbiIsIG9mZnNldCwgc2l6ZSk7CiAJQlVHX09OKG9mZnNldCA+IGdndHQtPnN0b2xlbl9zaXpl IC0gc2l6ZSk7CkBAIC01MTIsMTEgKzUxMywxMiBAQCBpOTE1X3BhZ2VzX2NyZWF0ZV9mb3Jfc3Rv bGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIAlzdCA9IGttYWxsb2Moc2l6ZW9mKCpzdCks IEdGUF9LRVJORUwpOwogCWlmIChzdCA9PSBOVUxMKQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJu IEVSUl9QVFIoLUVOT01FTSk7CiAKLQlpZiAoc2dfYWxsb2NfdGFibGUoc3QsIDEsIEdGUF9LRVJO RUwpKSB7CisJcmV0ID0gc2dfYWxsb2NfdGFibGUoc3QsIDEsIEdGUF9LRVJORUwpOworCWlmIChy ZXQpIHsKIAkJa2ZyZWUoc3QpOwotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIocmV0 KTsKIAl9CiAKIAlzZyA9IHN0LT5zZ2w7CkBAIC01NjUsMTggKzU2NywyMyBAQCBfaTkxNV9nZW1f b2JqZWN0X2NyZWF0ZV9zdG9sZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCSAgICAgICBz dHJ1Y3QgZHJtX21tX25vZGUgKnN0b2xlbikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqOworCXN0cnVjdCBzZ190YWJsZSAqcGFnZXM7CiAKIAlvYmogPSBpOTE1X2dlbV9vYmpl Y3RfYWxsb2MoZGV2KTsKIAlpZiAob2JqID09IE5VTEwpCi0JCXJldHVybiBOVUxMOworCQlyZXR1 cm4gRVJSX1BUUigtRU5PTUVNKTsKIAogCWRybV9nZW1fcHJpdmF0ZV9vYmplY3RfaW5pdChkZXYs ICZvYmotPmJhc2UsIHN0b2xlbi0+c2l6ZSk7CiAJaTkxNV9nZW1fb2JqZWN0X2luaXQob2JqLCAm aTkxNV9nZW1fb2JqZWN0X3N0b2xlbl9vcHMpOwogCi0Jb2JqLT5wYWdlcyA9IGk5MTVfcGFnZXNf Y3JlYXRlX2Zvcl9zdG9sZW4oZGV2LAotCQkJCQkJICBzdG9sZW4tPnN0YXJ0LCBzdG9sZW4tPnNp emUpOwotCWlmIChvYmotPnBhZ2VzID09IE5VTEwpCi0JCWdvdG8gY2xlYW51cDsKKwlwYWdlcyA9 IGk5MTVfcGFnZXNfY3JlYXRlX2Zvcl9zdG9sZW4oZGV2LAorCQkJCQkgICAgIHN0b2xlbi0+c3Rh cnQsIHN0b2xlbi0+c2l6ZSk7CisJaWYgKElTX0VSUihwYWdlcykpIHsKKwkJaTkxNV9nZW1fb2Jq ZWN0X2ZyZWUob2JqKTsKKwkJcmV0dXJuIEVSUl9DQVNUKHBhZ2VzKTsKKwl9CisKKwlvYmotPnBh Z2VzID0gcGFnZXM7CiAKIAlvYmotPmdldF9wYWdlLnNnID0gb2JqLT5wYWdlcy0+c2dsOwogCW9i ai0+Z2V0X3BhZ2UubGFzdCA9IDA7CkBAIC01ODgsMTAgKzU5NSw2IEBAIF9pOTE1X2dlbV9vYmpl Y3RfY3JlYXRlX3N0b2xlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCW9iai0+Y2FjaGVfbGV2 ZWwgPSBIQVNfTExDKGRldikgPyBJOTE1X0NBQ0hFX0xMQyA6IEk5MTVfQ0FDSEVfTk9ORTsKIAog CXJldHVybiBvYmo7Ci0KLWNsZWFudXA6Ci0JaTkxNV9nZW1fb2JqZWN0X2ZyZWUob2JqKTsKLQly ZXR1cm4gTlVMTDsKIH0KIAogc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKgpAQCAtNjAzLDI5 ICs2MDYsMjkgQEAgaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdTY0IHNpemUpCiAJaW50IHJldDsKIAogCWlmICghZHJtX21tX2luaXRpYWxpemVk KCZkZXZfcHJpdi0+bW0uc3RvbGVuKSkKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBFUlJfUFRS KC1FTk9ERVYpOwogCiAJRFJNX0RFQlVHX0tNUygiY3JlYXRpbmcgc3RvbGVuIG9iamVjdDogc2l6 ZT0lbGx4XG4iLCBzaXplKTsKIAlpZiAoc2l6ZSA9PSAwKQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0 dXJuIEVSUl9QVFIoLUVJTlZBTCk7CiAKIAlzdG9sZW4gPSBremFsbG9jKHNpemVvZigqc3RvbGVu KSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFzdG9sZW4pCi0JCXJldHVybiBOVUxMOworCQlyZXR1cm4g RVJSX1BUUigtRU5PTUVNKTsKIAogCXJldCA9IGk5MTVfZ2VtX3N0b2xlbl9pbnNlcnRfbm9kZShk ZXZfcHJpdiwgc3RvbGVuLCBzaXplLCA0MDk2KTsKIAlpZiAocmV0KSB7CiAJCWtmcmVlKHN0b2xl bik7Ci0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BUUihyZXQpOwogCX0KIAogCW9iaiA9 IF9pOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihkZXYsIHN0b2xlbik7Ci0JaWYgKG9iaikK KwlpZiAoIUlTX0VSUihvYmopKQogCQlyZXR1cm4gb2JqOwogCiAJaTkxNV9nZW1fc3RvbGVuX3Jl bW92ZV9ub2RlKGRldl9wcml2LCBzdG9sZW4pOwogCWtmcmVlKHN0b2xlbik7Ci0JcmV0dXJuIE5V TEw7CisJcmV0dXJuIG9iajsKIH0KIAogc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKgpAQCAt NjQyLDcgKzY0NSw3IEBAIGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuX2Zvcl9wcmVhbGxv Y2F0ZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpbnQgcmV0OwogCiAJaWYgKCFkcm1fbW1f aW5pdGlhbGl6ZWQoJmRldl9wcml2LT5tbS5zdG9sZW4pKQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0 dXJuIEVSUl9QVFIoLUVOT0RFVik7CiAKIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXYtPnN0cnVj dF9tdXRleCk7CiAKQEAgLTY1MiwxMSArNjU1LDExIEBAIGk5MTVfZ2VtX29iamVjdF9jcmVhdGVf c3RvbGVuX2Zvcl9wcmVhbGxvY2F0ZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkvKiBLSVNT IGFuZCBleHBlY3QgZXZlcnl0aGluZyB0byBiZSBwYWdlLWFsaWduZWQgKi8KIAlpZiAoV0FSTl9P TihzaXplID09IDApIHx8IFdBUk5fT04oc2l6ZSAmIDQwOTUpIHx8CiAJICAgIFdBUk5fT04oc3Rv bGVuX29mZnNldCAmIDQwOTUpKQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIoLUVJ TlZBTCk7CiAKIAlzdG9sZW4gPSBremFsbG9jKHNpemVvZigqc3RvbGVuKSwgR0ZQX0tFUk5FTCk7 CiAJaWYgKCFzdG9sZW4pCi0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVN KTsKIAogCXN0b2xlbi0+c3RhcnQgPSBzdG9sZW5fb2Zmc2V0OwogCXN0b2xlbi0+c2l6ZSA9IHNp emU7CkBAIC02NjYsMTUgKzY2OSwxNSBAQCBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbl9m b3JfcHJlYWxsb2NhdGVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJaWYgKHJldCkgewogCQlE Uk1fREVCVUdfS01TKCJmYWlsZWQgdG8gYWxsb2NhdGUgc3RvbGVuIHNwYWNlXG4iKTsKIAkJa2Zy ZWUoc3RvbGVuKTsKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBFUlJfUFRSKHJldCk7CiAJfQog CiAJb2JqID0gX2k5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuKGRldiwgc3RvbGVuKTsKLQlp ZiAob2JqID09IE5VTEwpIHsKKwlpZiAoSVNfRVJSKG9iaikpIHsKIAkJRFJNX0RFQlVHX0tNUygi ZmFpbGVkIHRvIGFsbG9jYXRlIHN0b2xlbiBvYmplY3RcbiIpOwogCQlpOTE1X2dlbV9zdG9sZW5f cmVtb3ZlX25vZGUoZGV2X3ByaXYsIHN0b2xlbik7CiAJCWtmcmVlKHN0b2xlbik7Ci0JCXJldHVy biBOVUxMOworCQlyZXR1cm4gb2JqOwogCX0KIAogCS8qIFNvbWUgb2JqZWN0cyBqdXN0IG5lZWQg cGh5c2ljYWwgbWVtIGZyb20gc3RvbGVuIHNwYWNlICovCkBAIC03MTMsNSArNzE2LDUgQEAgaTkx NV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW5fZm9yX3ByZWFsbG9jYXRlZChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAogCiBlcnI6CiAJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJm9iai0+YmFz ZSk7Ci0JcmV0dXJuIE5VTEw7CisJcmV0dXJuIEVSUl9QVFIocmV0KTsKIH0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwppbmRleCBkYTg2YmRiLi5jMGZhYjFiIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCkBAIC02MDgsMjcg KzYwOCwzMCBAQCBpbnQgaTkxNV9ndWNfc3VibWl0KHN0cnVjdCBpOTE1X2d1Y19jbGllbnQgKmNs aWVudCwKICAqIG9iamVjdCBuZWVkcyB0byBiZSBwaW5uZWQgbGlmZXRpbWUuIEFsc28gd2UgbXVz dCBwaW4gaXQgdG8gZ3R0IHNwYWNlIG90aGVyCiAgKiB0aGFuIFswLCBHVUNfV09QQ01fVE9QKSBi ZWNhdXNlIHRoaXMgcmFuZ2UgaXMgcmVzZXJ2ZWQgaW5zaWRlIEd1Qy4KICAqCi0gKiBSZXR1cm46 CUEgZHJtX2k5MTVfZ2VtX29iamVjdCBpZiBzdWNjZXNzZnVsLCBvdGhlcndpc2UgTlVMTC4KKyAq IFJldHVybjoJQSBkcm1faTkxNV9nZW1fb2JqZWN0IGlmIHN1Y2Nlc3NmdWwsIG90aGVyd2lzZSBl cnJvciBwb2ludGVyLgogICovCiBzdGF0aWMgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmdl bV9hbGxvY2F0ZV9ndWNfb2JqKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJCQkJdTMyIHNp emUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJp dmF0ZTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOworCWludCByZXQ7CiAKIAlv YmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCBzaXplKTsKLQlpZiAoIW9iaikKLQkJcmV0 dXJuIE5VTEw7CisJaWYgKElTX0VSUihvYmopKQorCQlyZXR1cm4gb2JqOwogCi0JaWYgKGk5MTVf Z2VtX29iamVjdF9nZXRfcGFnZXMob2JqKSkgeworCXJldCA9IGk5MTVfZ2VtX29iamVjdF9nZXRf cGFnZXMob2JqKTsKKwlpZiAocmV0KSB7CiAJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZv YmotPmJhc2UpOwotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIocmV0KTsKIAl9CiAK LQlpZiAoaTkxNV9nZW1fb2JqX2dndHRfcGluKG9iaiwgUEFHRV9TSVpFLAotCQkJUElOX09GRlNF VF9CSUFTIHwgR1VDX1dPUENNX1RPUCkpIHsKKwlyZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9waW4o b2JqLCBQQUdFX1NJWkUsCisJCQkJICAgIFBJTl9PRkZTRVRfQklBUyB8IEdVQ19XT1BDTV9UT1Ap OworCWlmIChyZXQpIHsKIAkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJm9iai0+YmFzZSk7 Ci0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BUUihyZXQpOwogCX0KIAogCS8qIEludmFs aWRhdGUgR3VDIFRMQiB0byBsZXQgR3VDIHRha2UgdGhlIGxhdGVzdCB1cGRhdGVzIHRvIEdUVC4g Ki8KQEAgLTY5Niw3ICs2OTksNyBAQCBzdGF0aWMgdm9pZCBndWNfY2xpZW50X2ZyZWUoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKICAqIEBjdHg6CXRoZSBjb250ZXh0IHRoYXQgb3ducyB0aGUgY2xp ZW50ICh3ZSB1c2UgdGhlIGRlZmF1bHQgcmVuZGVyCiAgKiAJCWNvbnRleHQpCiAgKgotICogUmV0 dXJuOglBbiBpOTE1X2d1Y19jbGllbnQgb2JqZWN0IGlmIHN1Y2Nlc3MuCisgKiBSZXR1cm46CUFu IGk5MTVfZ3VjX2NsaWVudCBvYmplY3QgaWYgc3VjY2VzcywgZXJyb3IgcG9pbnRlciBvbiBmYWls dXJlLgogICovCiBzdGF0aWMgc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqZ3VjX2NsaWVudF9hbGxv YyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCQkJdWludDMyX3QgcHJpb3JpdHksCkBAIC03 MDYsMTAgKzcwOSwxMSBAQCBzdGF0aWMgc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqZ3VjX2NsaWVu dF9hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX2d1YyAqZ3VjID0g JmRldl9wcml2LT5ndWM7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKKwlpbnQg cmV0OwogCiAJY2xpZW50ID0ga3phbGxvYyhzaXplb2YoKmNsaWVudCksIEdGUF9LRVJORUwpOwog CWlmICghY2xpZW50KQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7 CiAKIAljbGllbnQtPmRvb3JiZWxsX2lkID0gR1VDX0lOVkFMSURfRE9PUkJFTExfSUQ7CiAJY2xp ZW50LT5wcmlvcml0eSA9IHByaW9yaXR5OwpAQCAtNzIwLDEzICs3MjQsMTYgQEAgc3RhdGljIHN0 cnVjdCBpOTE1X2d1Y19jbGllbnQgKmd1Y19jbGllbnRfYWxsb2Moc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKIAkJCUdVQ19NQVhfR1BVX0NPTlRFWFRTLCBHRlBfS0VSTkVMKTsKIAlpZiAoY2xpZW50 LT5jdHhfaW5kZXggPj0gR1VDX01BWF9HUFVfQ09OVEVYVFMpIHsKIAkJY2xpZW50LT5jdHhfaW5k ZXggPSBHVUNfSU5WQUxJRF9DVFhfSUQ7CisJCXJldCA9IC1FSU5WQUw7CiAJCWdvdG8gZXJyOwog CX0KIAogCS8qIFRoZSBmaXJzdCBwYWdlIGlzIGRvb3JiZWxsL3Byb2NfZGVzYy4gVHdvIGZvbGxv d2VkIHBhZ2VzIGFyZSB3cS4gKi8KIAlvYmogPSBnZW1fYWxsb2NhdGVfZ3VjX29iaihkZXYsIEdV Q19EQl9TSVpFICsgR1VDX1dRX1NJWkUpOwotCWlmICghb2JqKQorCWlmIChJU19FUlIob2JqKSkg eworCQlyZXQgPSBQVFJfRVJSKG9iaik7CiAJCWdvdG8gZXJyOworCX0KIAogCWNsaWVudC0+Y2xp ZW50X29iaiA9IG9iajsKIAljbGllbnQtPndxX29mZnNldCA9IEdVQ19EQl9TSVpFOwpAQCAtNzQ1 LDkgKzc1MiwxMSBAQCBzdGF0aWMgc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqZ3VjX2NsaWVudF9h bGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQljbGllbnQtPnByb2NfZGVzY19vZmZzZXQg PSAoR1VDX0RCX1NJWkUgLyAyKTsKIAogCWNsaWVudC0+ZG9vcmJlbGxfaWQgPSBhc3NpZ25fZG9v cmJlbGwoZ3VjLCBjbGllbnQtPnByaW9yaXR5KTsKLQlpZiAoY2xpZW50LT5kb29yYmVsbF9pZCA9 PSBHVUNfSU5WQUxJRF9ET09SQkVMTF9JRCkKKwlpZiAoY2xpZW50LT5kb29yYmVsbF9pZCA9PSBH VUNfSU5WQUxJRF9ET09SQkVMTF9JRCkgewogCQkvKiBYWFg6IGV2aWN0IGEgZG9vcmJlbGwgaW5z dGVhZCAqLworCQlyZXQgPSAtRUlOVkFMOwogCQlnb3RvIGVycjsKKwl9CiAKIAlndWNfaW5pdF9w cm9jX2Rlc2MoZ3VjLCBjbGllbnQpOwogCWd1Y19pbml0X2N0eF9kZXNjKGd1YywgY2xpZW50KTsK QEAgLTc1NSw3ICs3NjQsOCBAQCBzdGF0aWMgc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqZ3VjX2Ns aWVudF9hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJLyogWFhYOiBBbnkgY2FjaGUg Zmx1c2hlcyBuZWVkZWQ/IEdlbmVyYWwgZG9tYWluIG1nbXQgY2FsbHM/ICovCiAKLQlpZiAoaG9z dDJndWNfYWxsb2NhdGVfZG9vcmJlbGwoZ3VjLCBjbGllbnQpKQorCXJldCA9IGhvc3QyZ3VjX2Fs bG9jYXRlX2Rvb3JiZWxsKGd1YywgY2xpZW50KTsKKwlpZiAocmV0KQogCQlnb3RvIGVycjsKIAog CURSTV9ERUJVR19EUklWRVIoIm5ldyBwcmlvcml0eSAldSBjbGllbnQgJXA6IGN0eF9pbmRleCAl dSBkYl9pZCAldVxuIiwKQEAgLTc2Nyw3ICs3NzcsNyBAQCBlcnI6CiAJRFJNX0VSUk9SKCJGQUlM RUQgdG8gY3JlYXRlIHByaW9yaXR5ICV1IEd1QyBjbGllbnQhXG4iLCBwcmlvcml0eSk7CiAKIAln dWNfY2xpZW50X2ZyZWUoZGV2LCBjbGllbnQpOwotCXJldHVybiBOVUxMOworCXJldHVybiBFUlJf UFRSKHJldCk7CiB9CiAKIHN0YXRpYyB2b2lkIGd1Y19jcmVhdGVfbG9nKHN0cnVjdCBpbnRlbF9n dWMgKmd1YykKQEAgLTc5Miw3ICs4MDIsNyBAQCBzdGF0aWMgdm9pZCBndWNfY3JlYXRlX2xvZyhz dHJ1Y3QgaW50ZWxfZ3VjICpndWMpCiAJb2JqID0gZ3VjLT5sb2dfb2JqOwogCWlmICghb2JqKSB7 CiAJCW9iaiA9IGdlbV9hbGxvY2F0ZV9ndWNfb2JqKGRldl9wcml2LT5kZXYsIHNpemUpOwotCQlp ZiAoIW9iaikgeworCQlpZiAoSVNfRVJSKG9iaikpIHsKIAkJCS8qIGxvZ2dpbmcgd2lsbCBiZSBv ZmYgKi8KIAkJCWk5MTUuZ3VjX2xvZ19sZXZlbCA9IC0xOwogCQkJcmV0dXJuOwpAQCAtOTEyLDYg KzkyMiw3IEBAIGludCBpOTE1X2d1Y19zdWJtaXNzaW9uX2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKIAljb25zdCBzaXplX3QgcG9vbHNpemUgPSBHVUNfTUFYX0dQVV9DT05URVhUUyAqIGN0 eHNpemU7CiAJY29uc3Qgc2l6ZV90IGdlbXNpemUgPSByb3VuZF91cChwb29sc2l6ZSwgUEFHRV9T SVpFKTsKIAlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmZGV2X3ByaXYtPmd1YzsKKwlpbnQgcmV0 OwogCiAJaWYgKCFpOTE1LmVuYWJsZV9ndWNfc3VibWlzc2lvbikKIAkJcmV0dXJuIDA7IC8qIG5v dCBlbmFibGVkICAqLwpAQCAtOTIwLDggKzkzMSwxMSBAQCBpbnQgaTkxNV9ndWNfc3VibWlzc2lv bl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCXJldHVybiAwOyAvKiBhbHJlYWR5IGFs bG9jYXRlZCAqLwogCiAJZ3VjLT5jdHhfcG9vbF9vYmogPSBnZW1fYWxsb2NhdGVfZ3VjX29iaihk ZXZfcHJpdi0+ZGV2LCBnZW1zaXplKTsKLQlpZiAoIWd1Yy0+Y3R4X3Bvb2xfb2JqKQotCQlyZXR1 cm4gLUVOT01FTTsKKwlpZiAoSVNfRVJSKGd1Yy0+Y3R4X3Bvb2xfb2JqKSkgeworCQlyZXQgPSBQ VFJfRVJSKGd1Yy0+Y3R4X3Bvb2xfb2JqKTsKKwkJZ3VjLT5jdHhfcG9vbF9vYmogPSBOVUxMOwor CQlyZXR1cm4gcmV0OworCX0KIAogCWlkYV9pbml0KCZndWMtPmN0eF9pZHMpOwogCkBAIC05NDEs OSArOTU1LDkgQEAgaW50IGk5MTVfZ3VjX3N1Ym1pc3Npb25fZW5hYmxlKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCiAKIAkvKiBjbGllbnQgZm9yIGV4ZWNidWYgc3VibWlzc2lvbiAqLwogCWNsaWVu dCA9IGd1Y19jbGllbnRfYWxsb2MoZGV2LCBHVUNfQ1RYX1BSSU9SSVRZX0tNRF9OT1JNQUwsIGN0 eCk7Ci0JaWYgKCFjbGllbnQpIHsKKwlpZiAoSVNfRVJSKGNsaWVudCkpIHsKIAkJRFJNX0VSUk9S KCJGYWlsZWQgdG8gY3JlYXRlIGV4ZWNidWYgZ3VjX2NsaWVudFxuIik7Ci0JCXJldHVybiAtRU5P TUVNOworCQlyZXR1cm4gUFRSX0VSUihjbGllbnQpOwogCX0KIAogCWd1Yy0+ZXhlY2J1Zl9jbGll bnQgPSBjbGllbnQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggOTM5Nzkx MC4uNjYwNzJiZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtMjQ3NCw3 ICsyNDc0LDcgQEAgaW50ZWxfYWxsb2NfaW5pdGlhbF9wbGFuZV9vYmooc3RydWN0IGludGVsX2Ny dGMgKmNydGMsCiAJCQkJCQkJICAgICBiYXNlX2FsaWduZWQsCiAJCQkJCQkJICAgICBiYXNlX2Fs aWduZWQsCiAJCQkJCQkJICAgICBzaXplX2FsaWduZWQpOwotCWlmICghb2JqKSB7CisJaWYgKElT X0VSUihvYmopKSB7CiAJCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCQlyZXR1 cm4gZmFsc2U7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJk ZXYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMKaW5kZXggNzlhYzIwMi4u MTY4NjY4NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmRldi5jCkBAIC0xNDksMTEgKzE0OSwx MSBAQCBzdGF0aWMgaW50IGludGVsZmJfYWxsb2Moc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBl ciwKIAkgKiBmZWF0dXJlcy4gKi8KIAlpZiAoc2l6ZSAqIDIgPCBnZ3R0LT5zdG9sZW5fdXNhYmxl X3NpemUpCiAJCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuKGRldiwgc2l6ZSk7 Ci0JaWYgKG9iaiA9PSBOVUxMKQorCWlmIChJU19FUlJfT1JfTlVMTChvYmopKQogCQlvYmogPSBp OTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCBzaXplKTsKLQlpZiAoIW9iaikgeworCWlmIChJU19F UlIob2JqKSkgewogCQlEUk1fRVJST1IoImZhaWxlZCB0byBhbGxvY2F0ZSBmcmFtZWJ1ZmZlclxu Iik7Ci0JCXJldCA9IC1FTk9NRU07CisJCXJldCA9IFBUUl9FUlIob2JqKTsKIAkJZ290byBvdXQ7 CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCmluZGV4IDE1NjJhNzUuLmMyM2I4OTEgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCkBAIC0xNDc2LDkgKzE0NzYsMTEgQEAgc3RhdGljIGlu dCBscmNfc2V0dXBfd2FfY3R4X29iaihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHUz MiBzaXplKQogCiAJZW5naW5lLT53YV9jdHgub2JqID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KGVu Z2luZS0+ZGV2LAogCQkJCQkJICAgUEFHRV9BTElHTihzaXplKSk7Ci0JaWYgKCFlbmdpbmUtPndh X2N0eC5vYmopIHsKKwlpZiAoSVNfRVJSKGVuZ2luZS0+d2FfY3R4Lm9iaikpIHsKIAkJRFJNX0RF QlVHX0RSSVZFUigiYWxsb2MgTFJDIFdBIGN0eCBiYWNraW5nIG9iaiBmYWlsZWQuXG4iKTsKLQkJ cmV0dXJuIC1FTk9NRU07CisJCXJldCA9IFBUUl9FUlIoZW5naW5lLT53YV9jdHgub2JqKTsKKwkJ ZW5naW5lLT53YV9jdHgub2JqID0gTlVMTDsKKwkJcmV0dXJuIHJldDsKIAl9CiAKIAlyZXQgPSBp OTE1X2dlbV9vYmpfZ2d0dF9waW4oZW5naW5lLT53YV9jdHgub2JqLCBQQUdFX1NJWkUsIDApOwpA QCAtMjY2OCw5ICsyNjcwLDkgQEAgaW50IGludGVsX2xyX2NvbnRleHRfZGVmZXJyZWRfYWxsb2Mo c3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKIAljb250ZXh0X3NpemUgKz0gUEFHRV9TSVpFICog TFJDX1BQSFdTUF9QTjsKIAogCWN0eF9vYmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCBj b250ZXh0X3NpemUpOwotCWlmICghY3R4X29iaikgeworCWlmIChJU19FUlIoY3R4X29iaikpIHsK IAkJRFJNX0RFQlVHX0RSSVZFUigiQWxsb2MgTFJDIGJhY2tpbmcgb2JqIGZhaWxlZC5cbiIpOwot CQlyZXR1cm4gLUVOT01FTTsKKwkJcmV0dXJuIFBUUl9FUlIoY3R4X29iaik7CiAJfQogCiAJcmlu Z2J1ZiA9IGludGVsX2VuZ2luZV9jcmVhdGVfcmluZ2J1ZmZlcihlbmdpbmUsIDQgKiBQQUdFX1NJ WkUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheS5jCmluZGV4IGJjYzNiNmEuLjdlNGMz ODkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vdmVybGF5LmMKQEAgLTEzOTUsOSArMTM5NSw5 IEBAIHZvaWQgaW50ZWxfc2V0dXBfb3ZlcmxheShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXJl Z19ibyA9IE5VTEw7CiAJaWYgKCFPVkVSTEFZX05FRURTX1BIWVNJQ0FMKGRldikpCiAJCXJlZ19i byA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuKGRldiwgUEFHRV9TSVpFKTsKLQlpZiAo cmVnX2JvID09IE5VTEwpCisJaWYgKElTX0VSUl9PUl9OVUxMKHJlZ19ibykpCiAJCXJlZ19ibyA9 IGk5MTVfZ2VtX2FsbG9jX29iamVjdChkZXYsIFBBR0VfU0laRSk7Ci0JaWYgKHJlZ19ibyA9PSBO VUxMKQorCWlmIChJU19FUlIocmVnX2JvKSkKIAkJZ290byBvdXRfZnJlZTsKIAlvdmVybGF5LT5y ZWdfYm8gPSByZWdfYm87CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmluZGV4IGI3YzIxODYuLjI4 NjNmMDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtNTM0MiwxMCArNTM0MiwxMyBAQCBz dGF0aWMgdm9pZCB2YWxsZXl2aWV3X3NldHVwX3BjdHgoc3RydWN0IGRybV9kZXZpY2UgKmRldikK IAkJCQkJCQkJICAgICAgcGNicl9vZmZzZXQsCiAJCQkJCQkJCSAgICAgIEk5MTVfR1RUX09GRlNF VF9OT05FLAogCQkJCQkJCQkgICAgICBwY3R4X3NpemUpOworCQlpZiAoSVNfRVJSKHBjdHgpKQor CQkJcGN0eCA9IE5VTEw7CisKIAkJZ290byBvdXQ7CiAJfQogCi0JRFJNX0RFQlVHX0RSSVZFUigi QklPUyBkaWRuJ3Qgc2V0IHVwIFBDQlIsIGZpeGluZyB1cFxuIik7CisJRFJNX0RFQlVHX0RSSVZF UigiQklPUyBkaWRuJ3Qgc2V0IHVwIFBDQlIgb3IgcHJlYWxsb2MgZmFpbGVkLCBmaXhpbmcgdXBc biIpOwogCiAJLyoKIAkgKiBGcm9tIHRoZSBHdW5pdCByZWdpc3RlciBIQVM6CkBAIC01MzU2LDcg KzUzNTksNyBAQCBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X3NldHVwX3BjdHgoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKIAkgKiBtZW1vcnksIG9yIGFueSBvdGhlciByZWxldmFudCByYW5nZXMuCiAJ ICovCiAJcGN0eCA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuKGRldiwgcGN0eF9zaXpl KTsKLQlpZiAoIXBjdHgpIHsKKwlpZiAoSVNfRVJSKHBjdHgpKSB7CiAJCURSTV9ERUJVRygibm90 IGVub3VnaCBzdG9sZW4gc3BhY2UgZm9yIFBDVFgsIGRpc2FibGluZ1xuIik7CiAJCWdvdG8gb3V0 OwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwppbmRleCAwZDI0NDk0 Li5mYzVmOGFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCkBAIC02 NzIsOSArNjcyLDEwIEBAIGludGVsX2luaXRfcGlwZV9jb250cm9sKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSkKIAlXQVJOX09OKGVuZ2luZS0+c2NyYXRjaC5vYmopOwogCiAJZW5naW5l LT5zY3JhdGNoLm9iaiA9IGk5MTVfZ2VtX2FsbG9jX29iamVjdChlbmdpbmUtPmRldiwgNDA5Nik7 Ci0JaWYgKGVuZ2luZS0+c2NyYXRjaC5vYmogPT0gTlVMTCkgeworCWlmIChJU19FUlIoZW5naW5l LT5zY3JhdGNoLm9iaikpIHsKIAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYWxsb2NhdGUgc2Vxbm8g cGFnZVxuIik7Ci0JCXJldCA9IC1FTk9NRU07CisJCXJldCA9IFBUUl9FUlIoZW5naW5lLT5zY3Jh dGNoLm9iaik7CisJCWVuZ2luZS0+c2NyYXRjaC5vYmogPSBOVUxMOwogCQlnb3RvIGVycjsKIAl9 CiAKQEAgLTIwMjIsOSArMjAyMyw5IEBAIHN0YXRpYyBpbnQgaW5pdF9zdGF0dXNfcGFnZShzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJCWludCByZXQ7CiAKIAkJb2JqID0gaTkxNV9n ZW1fYWxsb2Nfb2JqZWN0KGVuZ2luZS0+ZGV2LCA0MDk2KTsKLQkJaWYgKG9iaiA9PSBOVUxMKSB7 CisJCWlmIChJU19FUlIob2JqKSkgewogCQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYWxsb2NhdGUg c3RhdHVzIHBhZ2VcbiIpOwotCQkJcmV0dXJuIC1FTk9NRU07CisJCQlyZXR1cm4gUFRSX0VSUihv YmopOwogCQl9CiAKIAkJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3NldF9jYWNoZV9sZXZlbChvYmos IEk5MTVfQ0FDSEVfTExDKTsKQEAgLTIxNTgsMTAgKzIxNTksMTAgQEAgc3RhdGljIGludCBpbnRl bF9hbGxvY19yaW5nYnVmZmVyX29iaihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCW9iaiA9IE5V TEw7CiAJaWYgKCFIQVNfTExDKGRldikpCiAJCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVf c3RvbGVuKGRldiwgcmluZ2J1Zi0+c2l6ZSk7Ci0JaWYgKG9iaiA9PSBOVUxMKQorCWlmIChJU19F UlJfT1JfTlVMTChvYmopKQogCQlvYmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCByaW5n YnVmLT5zaXplKTsKLQlpZiAob2JqID09IE5VTEwpCi0JCXJldHVybiAtRU5PTUVNOworCWlmIChJ U19FUlIob2JqKSkKKwkJcmV0dXJuIFBUUl9FUlIob2JqKTsKIAogCS8qIG1hcmsgcmluZyBidWZm ZXJzIGFzIHJlYWQtb25seSBmcm9tIEdQVSBzaWRlIGJ5IGRlZmF1bHQgKi8KIAlvYmotPmd0X3Jv ID0gMTsKQEAgLTI3NzgsNyArMjc3OSw3IEBAIGludCBpbnRlbF9pbml0X3JlbmRlcl9yaW5nX2J1 ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+ PSA4KSB7CiAJCWlmIChpOTE1X3NlbWFwaG9yZV9pc19lbmFibGVkKGRldikpIHsKIAkJCW9iaiA9 IGk5MTVfZ2VtX2FsbG9jX29iamVjdChkZXYsIDQwOTYpOwotCQkJaWYgKG9iaiA9PSBOVUxMKSB7 CisJCQlpZiAoSVNfRVJSKG9iaikpIHsKIAkJCQlEUk1fRVJST1IoIkZhaWxlZCB0byBhbGxvY2F0 ZSBzZW1hcGhvcmUgYm8uIERpc2FibGluZyBzZW1hcGhvcmVzXG4iKTsKIAkJCQlpOTE1LnNlbWFw aG9yZXMgPSAwOwogCQkJfSBlbHNlIHsKQEAgLTI4ODcsOSArMjg4OCw5IEBAIGludCBpbnRlbF9p bml0X3JlbmRlcl9yaW5nX2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCS8qIFdvcmth cm91bmQgYmF0Y2hidWZmZXIgdG8gY29tYmF0IENTIHRsYiBidWcuICovCiAJaWYgKEhBU19CUk9L RU5fQ1NfVExCKGRldikpIHsKIAkJb2JqID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KGRldiwgSTgz MF9XQV9TSVpFKTsKLQkJaWYgKG9iaiA9PSBOVUxMKSB7CisJCWlmIChJU19FUlIob2JqKSkgewog CQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYWxsb2NhdGUgYmF0Y2ggYm9cbiIpOwotCQkJcmV0dXJu IC1FTk9NRU07CisJCQlyZXR1cm4gUFRSX0VSUihvYmopOwogCQl9CiAKIAkJcmV0ID0gaTkxNV9n ZW1fb2JqX2dndHRfcGluKG9iaiwgMCwgMCk7Ci0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==