From mboxrd@z Thu Jan 1 00:00:00 1970 From: ankitprasad.r.sharma@intel.com Subject: [PATCH 3/6] drm/i915: Propagating correct error codes to the userspace Date: Wed, 9 Dec 2015 18:16:19 +0530 Message-ID: <1449665182-10054-4-git-send-email-ankitprasad.r.sharma@intel.com> References: <1449665182-10054-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 mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 8EA9E72110 for ; Wed, 9 Dec 2015 05:06:02 -0800 (PST) In-Reply-To: <1449665182-10054-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 dGUgKENocmlzKQoKU2lnbmVkLW9mZi1ieTogQW5raXRwcmFzYWQgU2hhcm1hIDxhbmtpdHByYXNh ZC5yLnNoYXJtYUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0u YyAgICAgICAgICAgICAgfCAxNiArKysrKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9iYXRjaF9wb29sLmMgICB8ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fY29udGV4dC5jICAgICAgfCAgNCArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X3JlbmRlcl9zdGF0ZS5jIHwgIDcgKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X3N0b2xlbi5jICAgICAgIHwgNDMgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyAgIHwgNDUgKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICAgICAg ICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYyAgICAgICAgICAg fCAgNiArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgICAgICB8 IDEwICsrKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYyAgICAgICAg IHwgIDQgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jICAgICAgICAgICAgICB8 ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgICAgICB8IDIx ICsrKysrKy0tLS0tLS0KIDEyIGZpbGVzIGNoYW5nZWQsIDk1IGluc2VydGlvbnMoKyksIDY5IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IDI5NmU2M2YuLjU4MTI3NDgg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAtMzkzLDkgKzM5Myw5IEBAIGk5MTVfZ2VtX2Ny ZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCiAJaWYgKGZsYWdzICYgSTkxNV9DUkVBVEVfUExB Q0VNRU5UX1NUT0xFTikgewogCQltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CiAJCW9i aiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuKGRldiwgc2l6ZSk7Ci0JCWlmICghb2Jq KSB7CisJCWlmIChJU19FUlIob2JqKSkgewogCQkJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9t dXRleCk7Ci0JCQlyZXR1cm4gLUVOT01FTTsKKwkJCXJldHVybiBQVFJfRVJSKG9iaik7CiAJCX0K IAogCQkvKiBBbHdheXMgY2xlYXIgZnJlc2ggYnVmZmVycyBiZWZvcmUgaGFuZGluZyB0byB1c2Vy c3BhY2UgKi8KQEAgLTQxMSw4ICs0MTEsOCBAQCBpOTE1X2dlbV9jcmVhdGUoc3RydWN0IGRybV9m aWxlICpmaWxlLAogCQlvYmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCBzaXplKTsKIAl9 CiAKLQlpZiAob2JqID09IE5VTEwpCi0JCXJldHVybiAtRU5PTUVNOworCWlmIChJU19FUlIob2Jq KSkKKwkJcmV0dXJuIFBUUl9FUlIob2JqKTsKIAogCXJldCA9IGRybV9nZW1faGFuZGxlX2NyZWF0 ZShmaWxlLCAmb2JqLT5iYXNlLCAmaGFuZGxlKTsKIAkvKiBkcm9wIHJlZmVyZW5jZSBmcm9tIGFs bG9jYXRlIC0gaGFuZGxlIGhvbGRzIGl0IG5vdyAqLwpAQCAtNDM5OSwxNCArNDM5OSwxNiBAQCBz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKIAlzdHJ1 Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZzsKIAlnZnBfdCBtYXNrOworCWludCByZXQ7CiAKIAlv YmogPSBpOTE1X2dlbV9vYmplY3RfYWxsb2MoZGV2KTsKIAlpZiAob2JqID09IE5VTEwpCi0JCXJl dHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAotCWlmIChkcm1fZ2VtX29i amVjdF9pbml0KGRldiwgJm9iai0+YmFzZSwgc2l6ZSkgIT0gMCkgeworCXJldCA9IGRybV9nZW1f b2JqZWN0X2luaXQoZGV2LCAmb2JqLT5iYXNlLCBzaXplKTsKKwlpZiAocmV0KSB7CiAJCWk5MTVf Z2VtX29iamVjdF9mcmVlKG9iaik7Ci0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BUUihy ZXQpOwogCX0KIAogCW1hc2sgPSBHRlBfSElHSFVTRVIgfCBfX0dGUF9SRUNMQUlNQUJMRTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2JhdGNoX3Bvb2wuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2JhdGNoX3Bvb2wuYwppbmRleCA3YmYyZjNmLi5k NzljYWEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9iYXRjaF9w b29sLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fYmF0Y2hfcG9vbC5jCkBA IC0xMzUsOCArMTM1LDggQEAgaTkxNV9nZW1fYmF0Y2hfcG9vbF9nZXQoc3RydWN0IGk5MTVfZ2Vt X2JhdGNoX3Bvb2wgKnBvb2wsCiAJCWludCByZXQ7CiAKIAkJb2JqID0gaTkxNV9nZW1fYWxsb2Nf b2JqZWN0KHBvb2wtPmRldiwgc2l6ZSk7Ci0JCWlmIChvYmogPT0gTlVMTCkKLQkJCXJldHVybiBF UlJfUFRSKC1FTk9NRU0pOworCQlpZiAoSVNfRVJSKG9iaikpCisJCQlyZXR1cm4gb2JqOwogCiAJ CXJldCA9IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXMob2JqKTsKIAkJaWYgKHJldCkKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwppbmRleCAyMDRkYzdjLi40ZDI0Y2ZjIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCkBAIC0xODEsOCArMTgxLDgg QEAgaTkxNV9nZW1fYWxsb2NfY29udGV4dF9vYmooc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc2l6 ZV90IHNpemUpCiAJaW50IHJldDsKIAogCW9iaiA9IGk5MTVfZ2VtX2FsbG9jX29iamVjdChkZXYs IHNpemUpOwotCWlmIChvYmogPT0gTlVMTCkKLQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisJ aWYgKElTX0VSUihvYmopKQorCQlyZXR1cm4gb2JqOwogCiAJLyoKIAkgKiBUcnkgdG8gbWFrZSB0 aGUgY29udGV4dCB1dGlsaXplIEwzIGFzIHdlbGwgYXMgTExDLgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVyX3N0YXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9yZW5kZXJfc3RhdGUuYwppbmRleCA1MDI2YTYyLi4yYmZkZDQ5IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZW5kZXJfc3RhdGUuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZW5kZXJfc3RhdGUuYwpAQCAtNTgsOCAr NTgsMTEgQEAgc3RhdGljIGludCByZW5kZXJfc3RhdGVfaW5pdChzdHJ1Y3QgcmVuZGVyX3N0YXRl ICpzbywgc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlzby0+ b2JqID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KGRldiwgNDA5Nik7Ci0JaWYgKHNvLT5vYmogPT0g TlVMTCkKLQkJcmV0dXJuIC1FTk9NRU07CisJaWYgKElTX0VSUihzby0+b2JqKSkgeworCQlyZXQg PSBQVFJfRVJSKHNvLT5vYmopOworCQlzby0+b2JqID0gTlVMTDsKKwkJcmV0dXJuIHJldDsKKwl9 CiAKIAlyZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9waW4oc28tPm9iaiwgNDA5NiwgMCk7CiAJaWYg KHJldCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMKaW5kZXggYjk4YTNiZi4u MGIwY2UxMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVu LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMKQEAgLTQ5Miw2 ICs0OTIsNyBAQCBpOTE1X3BhZ2VzX2NyZWF0ZV9mb3Jfc3RvbGVuKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJp dmF0ZTsKIAlzdHJ1Y3Qgc2dfdGFibGUgKnN0OwogCXN0cnVjdCBzY2F0dGVybGlzdCAqc2c7CisJ aW50IHJldDsKIAogCURSTV9ERUJVR19EUklWRVIoIm9mZnNldD0weCV4LCBzaXplPSVkXG4iLCBv ZmZzZXQsIHNpemUpOwogCUJVR19PTihvZmZzZXQgPiBkZXZfcHJpdi0+Z3R0LnN0b2xlbl9zaXpl IC0gc2l6ZSk7CkBAIC01MDMsMTEgKzUwNCwxMiBAQCBpOTE1X3BhZ2VzX2NyZWF0ZV9mb3Jfc3Rv bGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIAlzdCA9IGttYWxsb2Moc2l6ZW9mKCpzdCks IEdGUF9LRVJORUwpOwogCWlmIChzdCA9PSBOVUxMKQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJu IEVSUl9QVFIoLUVOT01FTSk7CiAKLQlpZiAoc2dfYWxsb2NfdGFibGUoc3QsIDEsIEdGUF9LRVJO RUwpKSB7CisJcmV0ID0gc2dfYWxsb2NfdGFibGUoc3QsIDEsIEdGUF9LRVJORUwpOworCWlmIChy ZXQpIHsKIAkJa2ZyZWUoc3QpOwotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIocmV0 KTsKIAl9CiAKIAlzZyA9IHN0LT5zZ2w7CkBAIC01NTYsMTggKzU1OCwyMSBAQCBfaTkxNV9nZW1f b2JqZWN0X2NyZWF0ZV9zdG9sZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCSAgICAgICBz dHJ1Y3QgZHJtX21tX25vZGUgKnN0b2xlbikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqOworCWludCByZXQgPSAwOwogCiAJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2FsbG9jKGRl dik7CiAJaWYgKG9iaiA9PSBOVUxMKQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIo LUVOT01FTSk7CiAKIAlkcm1fZ2VtX3ByaXZhdGVfb2JqZWN0X2luaXQoZGV2LCAmb2JqLT5iYXNl LCBzdG9sZW4tPnNpemUpOwogCWk5MTVfZ2VtX29iamVjdF9pbml0KG9iaiwgJmk5MTVfZ2VtX29i amVjdF9zdG9sZW5fb3BzKTsKIAogCW9iai0+cGFnZXMgPSBpOTE1X3BhZ2VzX2NyZWF0ZV9mb3Jf c3RvbGVuKGRldiwKIAkJCQkJCSAgc3RvbGVuLT5zdGFydCwgc3RvbGVuLT5zaXplKTsKLQlpZiAo b2JqLT5wYWdlcyA9PSBOVUxMKQorCWlmIChJU19FUlIob2JqLT5wYWdlcykpIHsKKwkJcmV0ID0g UFRSX0VSUihvYmotPnBhZ2VzKTsKIAkJZ290byBjbGVhbnVwOworCX0KIAogCWk5MTVfZ2VtX29i amVjdF9waW5fcGFnZXMob2JqKTsKIAlvYmotPnN0b2xlbiA9IHN0b2xlbjsKQEAgLTU3OSw3ICs1 ODQsNyBAQCBfaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKIAogY2xlYW51cDoKIAlpOTE1X2dlbV9vYmplY3RfZnJlZShvYmopOwotCXJldHVybiBO VUxMOworCXJldHVybiBFUlJfUFRSKHJldCk7CiB9CiAKIHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICoKQEAgLTU5MSwyOSArNTk2LDI5IEBAIGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVu KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHU2NCBzaXplKQogCWludCByZXQ7CiAKIAlpZiAoIWRy bV9tbV9pbml0aWFsaXplZCgmZGV2X3ByaXYtPm1tLnN0b2xlbikpCi0JCXJldHVybiBOVUxMOwor CQlyZXR1cm4gRVJSX1BUUigtRU5PREVWKTsKIAogCURSTV9ERUJVR19LTVMoImNyZWF0aW5nIHN0 b2xlbiBvYmplY3Q6IHNpemU9JWxseFxuIiwgc2l6ZSk7CiAJaWYgKHNpemUgPT0gMCkKLQkJcmV0 dXJuIE5VTEw7CisJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwogCiAJc3RvbGVuID0ga3phbGxv YyhzaXplb2YoKnN0b2xlbiksIEdGUF9LRVJORUwpOwogCWlmICghc3RvbGVuKQotCQlyZXR1cm4g TlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKIAlyZXQgPSBpOTE1X2dlbV9zdG9s ZW5faW5zZXJ0X25vZGUoZGV2X3ByaXYsIHN0b2xlbiwgc2l6ZSwgNDA5Nik7CiAJaWYgKHJldCkg ewogCQlrZnJlZShzdG9sZW4pOwotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIocmV0 KTsKIAl9CiAKIAlvYmogPSBfaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oZGV2LCBzdG9s ZW4pOwotCWlmIChvYmopCisJaWYgKCFJU19FUlIob2JqKSkKIAkJcmV0dXJuIG9iajsKIAogCWk5 MTVfZ2VtX3N0b2xlbl9yZW1vdmVfbm9kZShkZXZfcHJpdiwgc3RvbGVuKTsKIAlrZnJlZShzdG9s ZW4pOwotCXJldHVybiBOVUxMOworCXJldHVybiBvYmo7CiB9CiAKIHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICoKQEAgLTYzMCw3ICs2MzUsNyBAQCBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0 b2xlbl9mb3JfcHJlYWxsb2NhdGVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJaW50IHJldDsK IAogCWlmICghZHJtX21tX2luaXRpYWxpemVkKCZkZXZfcHJpdi0+bW0uc3RvbGVuKSkKLQkJcmV0 dXJuIE5VTEw7CisJCXJldHVybiBFUlJfUFRSKC1FTk9ERVYpOwogCiAJRFJNX0RFQlVHX0tNUygi Y3JlYXRpbmcgcHJlYWxsb2NhdGVkIHN0b2xlbiBvYmplY3Q6IHN0b2xlbl9vZmZzZXQ9JXgsIGd0 dF9vZmZzZXQ9JXgsIHNpemU9JXhcbiIsCiAJCQlzdG9sZW5fb2Zmc2V0LCBndHRfb2Zmc2V0LCBz aXplKTsKQEAgLTYzOCwxMSArNjQzLDExIEBAIGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVu X2Zvcl9wcmVhbGxvY2F0ZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkvKiBLSVNTIGFuZCBl eHBlY3QgZXZlcnl0aGluZyB0byBiZSBwYWdlLWFsaWduZWQgKi8KIAlpZiAoV0FSTl9PTihzaXpl ID09IDApIHx8IFdBUk5fT04oc2l6ZSAmIDQwOTUpIHx8CiAJICAgIFdBUk5fT04oc3RvbGVuX29m ZnNldCAmIDQwOTUpKQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7 CiAKIAlzdG9sZW4gPSBremFsbG9jKHNpemVvZigqc3RvbGVuKSwgR0ZQX0tFUk5FTCk7CiAJaWYg KCFzdG9sZW4pCi0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAog CXN0b2xlbi0+c3RhcnQgPSBzdG9sZW5fb2Zmc2V0OwogCXN0b2xlbi0+c2l6ZSA9IHNpemU7CkBA IC02NTIsMTUgKzY1NywxNSBAQCBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbl9mb3JfcHJl YWxsb2NhdGVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJaWYgKHJldCkgewogCQlEUk1fREVC VUdfS01TKCJmYWlsZWQgdG8gYWxsb2NhdGUgc3RvbGVuIHNwYWNlXG4iKTsKIAkJa2ZyZWUoc3Rv bGVuKTsKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBFUlJfUFRSKHJldCk7CiAJfQogCiAJb2Jq ID0gX2k5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuKGRldiwgc3RvbGVuKTsKLQlpZiAob2Jq ID09IE5VTEwpIHsKKwlpZiAoSVNfRVJSKG9iaikpIHsKIAkJRFJNX0RFQlVHX0tNUygiZmFpbGVk IHRvIGFsbG9jYXRlIHN0b2xlbiBvYmplY3RcbiIpOwogCQlpOTE1X2dlbV9zdG9sZW5fcmVtb3Zl X25vZGUoZGV2X3ByaXYsIHN0b2xlbik7CiAJCWtmcmVlKHN0b2xlbik7Ci0JCXJldHVybiBOVUxM OworCQlyZXR1cm4gb2JqOwogCX0KIAogCS8qIFNvbWUgb2JqZWN0cyBqdXN0IG5lZWQgcGh5c2lj YWwgbWVtIGZyb20gc3RvbGVuIHNwYWNlICovCkBAIC02OTgsNSArNzAzLDUgQEAgaTkxNV9nZW1f b2JqZWN0X2NyZWF0ZV9zdG9sZW5fZm9yX3ByZWFsbG9jYXRlZChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAogCiBlcnI6CiAJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJm9iai0+YmFzZSk7Ci0J cmV0dXJuIE5VTEw7CisJcmV0dXJuIEVSUl9QVFIocmV0KTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwppbmRleCA0YWM4ODY3Li5hYTM4YWU0IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCkBAIC02NDUsMjIgKzY0NSwy NCBAQCBpbnQgaTkxNV9ndWNfc3VibWl0KHN0cnVjdCBpOTE1X2d1Y19jbGllbnQgKmNsaWVudCwK ICAqIG9iamVjdCBuZWVkcyB0byBiZSBwaW5uZWQgbGlmZXRpbWUuIEFsc28gd2UgbXVzdCBwaW4g aXQgdG8gZ3R0IHNwYWNlIG90aGVyCiAgKiB0aGFuIFswLCBHVUNfV09QQ01fVE9QKSBiZWNhdXNl IHRoaXMgcmFuZ2UgaXMgcmVzZXJ2ZWQgaW5zaWRlIEd1Qy4KICAqCi0gKiBSZXR1cm46CUEgZHJt X2k5MTVfZ2VtX29iamVjdCBpZiBzdWNjZXNzZnVsLCBvdGhlcndpc2UgTlVMTC4KKyAqIFJldHVy bjoJQSBkcm1faTkxNV9nZW1fb2JqZWN0IGlmIHN1Y2Nlc3NmdWwsIG90aGVyd2lzZSBlcnJvciBw b2ludGVyLgogICovCiBzdGF0aWMgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmdlbV9hbGxv Y2F0ZV9ndWNfb2JqKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJCQkJdTMyIHNpemUpCiB7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK IAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOworCWludCByZXQ7CiAKIAlvYmogPSBp OTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCBzaXplKTsKLQlpZiAoIW9iaikKLQkJcmV0dXJuIE5V TEw7CisJaWYgKElTX0VSUihvYmopKQorCQlyZXR1cm4gb2JqOwogCi0JaWYgKGk5MTVfZ2VtX29i al9nZ3R0X3BpbihvYmosIFBBR0VfU0laRSwKLQkJCVBJTl9PRkZTRVRfQklBUyB8IEdVQ19XT1BD TV9UT1ApKSB7CisJcmV0ID0gaTkxNV9nZW1fb2JqX2dndHRfcGluKG9iaiwgUEFHRV9TSVpFLAor CQkJCSAgICBQSU5fT0ZGU0VUX0JJQVMgfCBHVUNfV09QQ01fVE9QKTsKKwlpZiAocmV0KSB7CiAJ CWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZvYmotPmJhc2UpOwotCQlyZXR1cm4gTlVMTDsK KwkJcmV0dXJuIEVSUl9QVFIocmV0KTsKIAl9CiAKIAkvKiBJbnZhbGlkYXRlIEd1QyBUTEIgdG8g bGV0IEd1QyB0YWtlIHRoZSBsYXRlc3QgdXBkYXRlcyB0byBHVFQuICovCkBAIC03MzgsMTAgKzc0 MCwxMSBAQCBzdGF0aWMgc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqZ3VjX2NsaWVudF9hbGxvYyhz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmRldl9wcml2 LT5ndWM7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKKwlpbnQgcmV0OwogCiAJ Y2xpZW50ID0ga3phbGxvYyhzaXplb2YoKmNsaWVudCksIEdGUF9LRVJORUwpOwogCWlmICghY2xp ZW50KQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKIAljbGll bnQtPmRvb3JiZWxsX2lkID0gR1VDX0lOVkFMSURfRE9PUkJFTExfSUQ7CiAJY2xpZW50LT5wcmlv cml0eSA9IHByaW9yaXR5OwpAQCAtNzUyLDEzICs3NTUsMTYgQEAgc3RhdGljIHN0cnVjdCBpOTE1 X2d1Y19jbGllbnQgKmd1Y19jbGllbnRfYWxsb2Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJ CUdVQ19NQVhfR1BVX0NPTlRFWFRTLCBHRlBfS0VSTkVMKTsKIAlpZiAoY2xpZW50LT5jdHhfaW5k ZXggPj0gR1VDX01BWF9HUFVfQ09OVEVYVFMpIHsKIAkJY2xpZW50LT5jdHhfaW5kZXggPSBHVUNf SU5WQUxJRF9DVFhfSUQ7CisJCXJldCA9IC1FSU5WQUw7CiAJCWdvdG8gZXJyOwogCX0KIAogCS8q IFRoZSBmaXJzdCBwYWdlIGlzIGRvb3JiZWxsL3Byb2NfZGVzYy4gVHdvIGZvbGxvd2VkIHBhZ2Vz IGFyZSB3cS4gKi8KIAlvYmogPSBnZW1fYWxsb2NhdGVfZ3VjX29iaihkZXYsIEdVQ19EQl9TSVpF ICsgR1VDX1dRX1NJWkUpOwotCWlmICghb2JqKQorCWlmIChJU19FUlIob2JqKSkgeworCQlyZXQg PSBQVFJfRVJSKG9iaik7CiAJCWdvdG8gZXJyOworCX0KIAogCWNsaWVudC0+Y2xpZW50X29iaiA9 IG9iajsKIAljbGllbnQtPndxX29mZnNldCA9IEdVQ19EQl9TSVpFOwpAQCAtNzc4LDkgKzc4NCwx MSBAQCBzdGF0aWMgc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqZ3VjX2NsaWVudF9hbGxvYyhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAogCQljbGllbnQtPnByb2NfZGVzY19vZmZzZXQgPSAoR1VDX0RC X1NJWkUgLyAyKTsKIAogCWNsaWVudC0+ZG9vcmJlbGxfaWQgPSBhc3NpZ25fZG9vcmJlbGwoZ3Vj LCBjbGllbnQtPnByaW9yaXR5KTsKLQlpZiAoY2xpZW50LT5kb29yYmVsbF9pZCA9PSBHVUNfSU5W QUxJRF9ET09SQkVMTF9JRCkKKwlpZiAoY2xpZW50LT5kb29yYmVsbF9pZCA9PSBHVUNfSU5WQUxJ RF9ET09SQkVMTF9JRCkgewogCQkvKiBYWFg6IGV2aWN0IGEgZG9vcmJlbGwgaW5zdGVhZCAqLwor CQlyZXQgPSAtRUlOVkFMOwogCQlnb3RvIGVycjsKKwl9CiAKIAlndWNfaW5pdF9wcm9jX2Rlc2Mo Z3VjLCBjbGllbnQpOwogCWd1Y19pbml0X2N0eF9kZXNjKGd1YywgY2xpZW50KTsKQEAgLTc4OCw3 ICs3OTYsOCBAQCBzdGF0aWMgc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqZ3VjX2NsaWVudF9hbGxv YyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJLyogWFhYOiBBbnkgY2FjaGUgZmx1c2hlcyBu ZWVkZWQ/IEdlbmVyYWwgZG9tYWluIG1nbXQgY2FsbHM/ICovCiAKLQlpZiAoaG9zdDJndWNfYWxs b2NhdGVfZG9vcmJlbGwoZ3VjLCBjbGllbnQpKQorCXJldCA9IGhvc3QyZ3VjX2FsbG9jYXRlX2Rv b3JiZWxsKGd1YywgY2xpZW50KTsKKwlpZiAocmV0KQogCQlnb3RvIGVycjsKIAogCURSTV9ERUJV R19EUklWRVIoIm5ldyBwcmlvcml0eSAldSBjbGllbnQgJXA6IGN0eF9pbmRleCAldSBkYl9pZCAl dVxuIiwKQEAgLTgwMCw3ICs4MDksNyBAQCBlcnI6CiAJRFJNX0VSUk9SKCJGQUlMRUQgdG8gY3Jl YXRlIHByaW9yaXR5ICV1IEd1QyBjbGllbnQhXG4iLCBwcmlvcml0eSk7CiAKIAlndWNfY2xpZW50 X2ZyZWUoZGV2LCBjbGllbnQpOwotCXJldHVybiBOVUxMOworCXJldHVybiBFUlJfUFRSKHJldCk7 CiB9CiAKIHN0YXRpYyB2b2lkIGd1Y19jcmVhdGVfbG9nKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykK QEAgLTgyNSw3ICs4MzQsNyBAQCBzdGF0aWMgdm9pZCBndWNfY3JlYXRlX2xvZyhzdHJ1Y3QgaW50 ZWxfZ3VjICpndWMpCiAJb2JqID0gZ3VjLT5sb2dfb2JqOwogCWlmICghb2JqKSB7CiAJCW9iaiA9 IGdlbV9hbGxvY2F0ZV9ndWNfb2JqKGRldl9wcml2LT5kZXYsIHNpemUpOwotCQlpZiAoIW9iaikg eworCQlpZiAoSVNfRVJSKG9iaikpIHsKIAkJCS8qIGxvZ2dpbmcgd2lsbCBiZSBvZmYgKi8KIAkJ CWk5MTUuZ3VjX2xvZ19sZXZlbCA9IC0xOwogCQkJcmV0dXJuOwpAQCAtODU1LDYgKzg2NCw3IEBA IGludCBpOTE1X2d1Y19zdWJtaXNzaW9uX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlj b25zdCBzaXplX3QgcG9vbHNpemUgPSBHVUNfTUFYX0dQVV9DT05URVhUUyAqIGN0eHNpemU7CiAJ Y29uc3Qgc2l6ZV90IGdlbXNpemUgPSByb3VuZF91cChwb29sc2l6ZSwgUEFHRV9TSVpFKTsKIAlz dHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmZGV2X3ByaXYtPmd1YzsKKwlpbnQgcmV0ID0gMDsKIAog CWlmICghaTkxNS5lbmFibGVfZ3VjX3N1Ym1pc3Npb24pCiAJCXJldHVybiAwOyAvKiBub3QgZW5h YmxlZCAgKi8KQEAgLTg2Myw4ICs4NzMsMTEgQEAgaW50IGk5MTVfZ3VjX3N1Ym1pc3Npb25faW5p dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlyZXR1cm4gMDsgLyogYWxyZWFkeSBhbGxvY2F0 ZWQgKi8KIAogCWd1Yy0+Y3R4X3Bvb2xfb2JqID0gZ2VtX2FsbG9jYXRlX2d1Y19vYmooZGV2X3By aXYtPmRldiwgZ2Vtc2l6ZSk7Ci0JaWYgKCFndWMtPmN0eF9wb29sX29iaikKLQkJcmV0dXJuIC1F Tk9NRU07CisJaWYgKElTX0VSUihndWMtPmN0eF9wb29sX29iaikpIHsKKwkJcmV0ID0gUFRSX0VS UihndWMtPmN0eF9wb29sX29iaik7CisJCWd1Yy0+Y3R4X3Bvb2xfb2JqID0gTlVMTDsKKwkJcmV0 dXJuIHJldDsKKwl9CiAKIAlzcGluX2xvY2tfaW5pdCgmZGV2X3ByaXYtPmd1Yy5ob3N0Mmd1Y19s b2NrKTsKIApAQCAtODg0LDkgKzg5Nyw5IEBAIGludCBpOTE1X2d1Y19zdWJtaXNzaW9uX2VuYWJs ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCiAJLyogY2xpZW50IGZvciBleGVjYnVmIHN1Ym1p c3Npb24gKi8KIAljbGllbnQgPSBndWNfY2xpZW50X2FsbG9jKGRldiwgR1VDX0NUWF9QUklPUklU WV9LTURfTk9STUFMLCBjdHgpOwotCWlmICghY2xpZW50KSB7CisJaWYgKElTX0VSUihjbGllbnQp KSB7CiAJCURSTV9FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBleGVjYnVmIGd1Y19jbGllbnRcbiIp OwotCQlyZXR1cm4gLUVOT01FTTsKKwkJcmV0dXJuIFBUUl9FUlIoY2xpZW50KTsKIAl9CiAKIAln dWMtPmV4ZWNidWZfY2xpZW50ID0gY2xpZW50OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jCmluZGV4IDc3OTc5ZWQuLmYyODFlMGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMKQEAgLTI1NDYsNyArMjU0Niw3IEBAIGludGVsX2FsbG9jX2luaXRpYWxfcGxhbmVfb2Jq KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCQkJCQkJCSAgICAgYmFzZV9hbGlnbmVkLAogCQkJ CQkJCSAgICAgYmFzZV9hbGlnbmVkLAogCQkJCQkJCSAgICAgc2l6ZV9hbGlnbmVkKTsKLQlpZiAo IW9iaikKKwlpZiAoSVNfRVJSKG9iaikpCiAJCXJldHVybiBmYWxzZTsKIAogCW9iai0+dGlsaW5n X21vZGUgPSBwbGFuZV9jb25maWctPnRpbGluZzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2ZiZGV2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmRldi5j CmluZGV4IDg0MGQ2YmYuLmY0MzY4MWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2ZiZGV2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYwpA QCAtMTQ2LDExICsxNDYsMTEgQEAgc3RhdGljIGludCBpbnRlbGZiX2FsbG9jKHN0cnVjdCBkcm1f ZmJfaGVscGVyICpoZWxwZXIsCiAJICogZmVhdHVyZXMuICovCiAJaWYgKHNpemUgKiAyIDwgZGV2 X3ByaXYtPmd0dC5zdG9sZW5fdXNhYmxlX3NpemUpCiAJCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9j cmVhdGVfc3RvbGVuKGRldiwgc2l6ZSk7Ci0JaWYgKG9iaiA9PSBOVUxMKQorCWlmIChJU19FUlJf T1JfTlVMTChvYmopKQogCQlvYmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCBzaXplKTsK LQlpZiAoIW9iaikgeworCWlmIChJU19FUlIob2JqKSkgewogCQlEUk1fRVJST1IoImZhaWxlZCB0 byBhbGxvY2F0ZSBmcmFtZWJ1ZmZlclxuIik7Ci0JCXJldCA9IC1FTk9NRU07CisJCXJldCA9IFBU Ul9FUlIob2JqKTsKIAkJZ290byBvdXQ7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCmlu ZGV4IDA2MTgwZGMuLjQ1MzljYzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCkBAIC0xMzY0 LDkgKzEzNjQsMTEgQEAgc3RhdGljIGludCBscmNfc2V0dXBfd2FfY3R4X29iaihzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICpyaW5nLCB1MzIgc2l6ZSkKIAlpbnQgcmV0OwogCiAJcmluZy0+d2FfY3R4 Lm9iaiA9IGk5MTVfZ2VtX2FsbG9jX29iamVjdChyaW5nLT5kZXYsIFBBR0VfQUxJR04oc2l6ZSkp OwotCWlmICghcmluZy0+d2FfY3R4Lm9iaikgeworCWlmIChJU19FUlIocmluZy0+d2FfY3R4Lm9i aikpIHsKIAkJRFJNX0RFQlVHX0RSSVZFUigiYWxsb2MgTFJDIFdBIGN0eCBiYWNraW5nIG9iaiBm YWlsZWQuXG4iKTsKLQkJcmV0dXJuIC1FTk9NRU07CisJCXJldCA9IFBUUl9FUlIocmluZy0+d2Ff Y3R4Lm9iaik7CisJCXJpbmctPndhX2N0eC5vYmogPSBOVUxMOworCQlyZXR1cm4gcmV0OwogCX0K IAogCXJldCA9IGk5MTVfZ2VtX29ial9nZ3R0X3BpbihyaW5nLT53YV9jdHgub2JqLCBQQUdFX1NJ WkUsIDApOwpAQCAtMjQ3MSw5ICsyNDczLDkgQEAgaW50IGludGVsX2xyX2NvbnRleHRfZGVmZXJy ZWRfYWxsb2Moc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKIAljb250ZXh0X3NpemUgKz0gUEFH RV9TSVpFICogTFJDX1BQSFdTUF9QTjsKIAogCWN0eF9vYmogPSBpOTE1X2dlbV9hbGxvY19vYmpl Y3QoZGV2LCBjb250ZXh0X3NpemUpOwotCWlmICghY3R4X29iaikgeworCWlmIChJU19FUlIoY3R4 X29iaikpIHsKIAkJRFJNX0RFQlVHX0RSSVZFUigiQWxsb2MgTFJDIGJhY2tpbmcgb2JqIGZhaWxl ZC5cbiIpOwotCQlyZXR1cm4gLUVOT01FTTsKKwkJcmV0dXJuIFBUUl9FUlIoY3R4X29iaik7CiAJ fQogCiAJcmluZ2J1ZiA9IGludGVsX2VuZ2luZV9jcmVhdGVfcmluZ2J1ZmZlcihyaW5nLCA0ICog UEFHRV9TSVpFKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJs YXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYwppbmRleCA3NmYxOTgw Li4zYTY1ODU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vdmVybGF5 LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheS5jCkBAIC0xMzkyLDkg KzEzOTIsOSBAQCB2b2lkIGludGVsX3NldHVwX292ZXJsYXkoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKIAlyZWdfYm8gPSBOVUxMOwogCWlmICghT1ZFUkxBWV9ORUVEU19QSFlTSUNBTChkZXYpKQog CQlyZWdfYm8gPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihkZXYsIFBBR0VfU0laRSk7 Ci0JaWYgKHJlZ19ibyA9PSBOVUxMKQorCWlmIChJU19FUlJfT1JfTlVMTChyZWdfYm8pKQogCQly ZWdfYm8gPSBpOTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCBQQUdFX1NJWkUpOwotCWlmIChyZWdf Ym8gPT0gTlVMTCkKKwlpZiAoSVNfRVJSKHJlZ19ibykpCiAJCWdvdG8gb3V0X2ZyZWU7CiAJb3Zl cmxheS0+cmVnX2JvID0gcmVnX2JvOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwppbmRleCA2NDdj MGZmLi42ZGVlOTA4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKQEAgLTUxNzIsNyArNTE3Miw3 IEBAIHN0YXRpYyB2b2lkIHZhbGxleXZpZXdfc2V0dXBfcGN0eChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQogCSAqIG1lbW9yeSwgb3IgYW55IG90aGVyIHJlbGV2YW50IHJhbmdlcy4KIAkgKi8KIAlw Y3R4ID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oZGV2LCBwY3R4X3NpemUpOwotCWlm ICghcGN0eCkgeworCWlmIChJU19FUlIocGN0eCkpIHsKIAkJRFJNX0RFQlVHKCJub3QgZW5vdWdo IHN0b2xlbiBzcGFjZSBmb3IgUENUWCwgZGlzYWJsaW5nXG4iKTsKIAkJcmV0dXJuOwogCX0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwppbmRleCBjOWIwODFmLi41ZWFiYWY2 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCkBAIC02NzgsOSArNjc4 LDEwIEBAIGludGVsX2luaXRfcGlwZV9jb250cm9sKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJp bmcpCiAJV0FSTl9PTihyaW5nLT5zY3JhdGNoLm9iaik7CiAKIAlyaW5nLT5zY3JhdGNoLm9iaiA9 IGk5MTVfZ2VtX2FsbG9jX29iamVjdChyaW5nLT5kZXYsIDQwOTYpOwotCWlmIChyaW5nLT5zY3Jh dGNoLm9iaiA9PSBOVUxMKSB7CisJaWYgKElTX0VSUihyaW5nLT5zY3JhdGNoLm9iaikpIHsKIAkJ RFJNX0VSUk9SKCJGYWlsZWQgdG8gYWxsb2NhdGUgc2Vxbm8gcGFnZVxuIik7Ci0JCXJldCA9IC1F Tk9NRU07CisJCXJldCA9IFBUUl9FUlIocmluZy0+c2NyYXRjaC5vYmopOworCQlyaW5nLT5zY3Jh dGNoLm9iaiA9IE5VTEw7CiAJCWdvdG8gZXJyOwogCX0KIApAQCAtMTkzNSw5ICsxOTM2LDkgQEAg c3RhdGljIGludCBpbml0X3N0YXR1c19wYWdlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcp CiAJCWludCByZXQ7CiAKIAkJb2JqID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KHJpbmctPmRldiwg NDA5Nik7Ci0JCWlmIChvYmogPT0gTlVMTCkgeworCQlpZiAoSVNfRVJSKG9iaikpIHsKIAkJCURS TV9FUlJPUigiRmFpbGVkIHRvIGFsbG9jYXRlIHN0YXR1cyBwYWdlXG4iKTsKLQkJCXJldHVybiAt RU5PTUVNOworCQkJcmV0dXJuIFBUUl9FUlIob2JqKTsKIAkJfQogCiAJCXJldCA9IGk5MTVfZ2Vt X29iamVjdF9zZXRfY2FjaGVfbGV2ZWwob2JqLCBJOTE1X0NBQ0hFX0xMQyk7CkBAIC0yMDg0LDEw ICsyMDg1LDEwIEBAIHN0YXRpYyBpbnQgaW50ZWxfYWxsb2NfcmluZ2J1ZmZlcl9vYmooc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKIAlvYmogPSBOVUxMOwogCWlmICghSEFTX0xMQyhkZXYpKQogCQlv YmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihkZXYsIHJpbmdidWYtPnNpemUpOwot CWlmIChvYmogPT0gTlVMTCkKKwlpZiAoSVNfRVJSX09SX05VTEwob2JqKSkKIAkJb2JqID0gaTkx NV9nZW1fYWxsb2Nfb2JqZWN0KGRldiwgcmluZ2J1Zi0+c2l6ZSk7Ci0JaWYgKG9iaiA9PSBOVUxM KQotCQlyZXR1cm4gLUVOT01FTTsKKwlpZiAoSVNfRVJSKG9iaikpCisJCXJldHVybiBQVFJfRVJS KG9iaik7CiAKIAkvKiBtYXJrIHJpbmcgYnVmZmVycyBhcyByZWFkLW9ubHkgZnJvbSBHUFUgc2lk ZSBieSBkZWZhdWx0ICovCiAJb2JqLT5ndF9ybyA9IDE7CkBAIC0yNjc4LDcgKzI2NzksNyBAQCBp bnQgaW50ZWxfaW5pdF9yZW5kZXJfcmluZ19idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikK IAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOCkgewogCQlpZiAoaTkxNV9zZW1hcGhvcmVf aXNfZW5hYmxlZChkZXYpKSB7CiAJCQlvYmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCA0 MDk2KTsKLQkJCWlmIChvYmogPT0gTlVMTCkgeworCQkJaWYgKElTX0VSUihvYmopKSB7CiAJCQkJ RFJNX0VSUk9SKCJGYWlsZWQgdG8gYWxsb2NhdGUgc2VtYXBob3JlIGJvLiBEaXNhYmxpbmcgc2Vt YXBob3Jlc1xuIik7CiAJCQkJaTkxNS5zZW1hcGhvcmVzID0gMDsKIAkJCX0gZWxzZSB7CkBAIC0y Nzg1LDkgKzI3ODYsOSBAQCBpbnQgaW50ZWxfaW5pdF9yZW5kZXJfcmluZ19idWZmZXIoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKIAkvKiBXb3JrYXJvdW5kIGJhdGNoYnVmZmVyIHRvIGNvbWJhdCBD UyB0bGIgYnVnLiAqLwogCWlmIChIQVNfQlJPS0VOX0NTX1RMQihkZXYpKSB7CiAJCW9iaiA9IGk5 MTVfZ2VtX2FsbG9jX29iamVjdChkZXYsIEk4MzBfV0FfU0laRSk7Ci0JCWlmIChvYmogPT0gTlVM TCkgeworCQlpZiAoSVNfRVJSKG9iaikpIHsKIAkJCURSTV9FUlJPUigiRmFpbGVkIHRvIGFsbG9j YXRlIGJhdGNoIGJvXG4iKTsKLQkJCXJldHVybiAtRU5PTUVNOworCQkJcmV0dXJuIFBUUl9FUlIo b2JqKTsKIAkJfQogCiAJCXJldCA9IGk5MTVfZ2VtX29ial9nZ3R0X3BpbihvYmosIDAsIDApOwot LSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==