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: Thu, 8 Oct 2015 11:54:26 +0530 Message-ID: <1444285469-8187-4-git-send-email-ankitprasad.r.sharma@intel.com> References: <1444285469-8187-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 F3BE26E5A6 for ; Wed, 7 Oct 2015 23:44:07 -0700 (PDT) In-Reply-To: <1444285469-8187-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 b2JqZWN0IHRvbyAoQ2hyaXMpCgpTaWduZWQtb2ZmLWJ5OiBBbmtpdHByYXNhZCBTaGFybWEgPGFu a2l0cHJhc2FkLnIuc2hhcm1hQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbS5jICAgICAgICAgICAgICB8IDE1ICsrKysrLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2JhdGNoX3Bvb2wuYyAgIHwgIDQgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9jb250ZXh0LmMgICAgICB8ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fcmVuZGVyX3N0YXRlLmMgfCAgNCArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX3N0b2xlbi5jICAgICAgIHwgNDMgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jICAgfCAgNCArLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICAgICAgIHwgIDIgKy0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMgICAgICAgICAgIHwgIDYgKystLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgICAgICAgfCAgOCArKystLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYyAgICAgICAgIHwgIDQgKy0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgICAgICB8IDIwICsrKysrKy0tLS0tLS0KIDEy IGZpbGVzIGNoYW5nZWQsIDYxIGluc2VydGlvbnMoKyksIDU1IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbS5jCmluZGV4IGQzZjQzMjEuLjU0ZjdkZjEgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYwpAQCAtMzkzLDkgKzM5Myw5IEBAIGk5MTVfZ2VtX2NyZWF0ZShzdHJ1Y3QgZHJtX2Zp bGUgKmZpbGUsCiAJaWYgKGZsYWdzICYgSTkxNV9DUkVBVEVfUExBQ0VNRU5UX1NUT0xFTikgewog CQltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CiAJCW9iaiA9IGk5MTVfZ2VtX29iamVj dF9jcmVhdGVfc3RvbGVuKGRldiwgc2l6ZSk7Ci0JCWlmICghb2JqKSB7CisJCWlmIChJU19FUlIo b2JqKSkgewogCQkJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Ci0JCQlyZXR1cm4g LUVOT01FTTsKKwkJCXJldHVybiBQVFJfRVJSKG9iaik7CiAJCX0KIAogCQkvKiBBbHdheXMgY2xl YXIgZnJlc2ggYnVmZmVycyBiZWZvcmUgaGFuZGluZyB0byB1c2Vyc3BhY2UgKi8KQEAgLTQxMSw4 ICs0MTEsOCBAQCBpOTE1X2dlbV9jcmVhdGUoc3RydWN0IGRybV9maWxlICpmaWxlLAogCQlvYmog PSBpOTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCBzaXplKTsKIAl9CiAKLQlpZiAob2JqID09IE5V TEwpCi0JCXJldHVybiAtRU5PTUVNOworCWlmIChJU19FUlIob2JqKSkKKwkJcmV0dXJuIFBUUl9F UlIob2JqKTsKIAogCXJldCA9IGRybV9nZW1faGFuZGxlX2NyZWF0ZShmaWxlLCAmb2JqLT5iYXNl LCAmaGFuZGxlKTsKIAkvKiBkcm9wIHJlZmVyZW5jZSBmcm9tIGFsbG9jYXRlIC0gaGFuZGxlIGhv bGRzIGl0IG5vdyAqLwpAQCAtNDI3MywxNCArNDI3MywxNSBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJ c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKIAlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAq bWFwcGluZzsKIAlnZnBfdCBtYXNrOworCWludCByZXQgPSAwOwogCiAJb2JqID0gaTkxNV9nZW1f b2JqZWN0X2FsbG9jKGRldik7CiAJaWYgKG9iaiA9PSBOVUxMKQotCQlyZXR1cm4gTlVMTDsKKwkJ cmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKLQlpZiAoZHJtX2dlbV9vYmplY3RfaW5pdChkZXYs ICZvYmotPmJhc2UsIHNpemUpICE9IDApIHsKKwlpZiAoKHJldCA9IGRybV9nZW1fb2JqZWN0X2lu aXQoZGV2LCAmb2JqLT5iYXNlLCBzaXplKSkgIT0gMCkgewogCQlpOTE1X2dlbV9vYmplY3RfZnJl ZShvYmopOwotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIocmV0KTsKIAl9CiAKIAlt YXNrID0gR0ZQX0hJR0hVU0VSIHwgX19HRlBfUkVDTEFJTUFCTEU7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9iYXRjaF9wb29sLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9iYXRjaF9wb29sLmMKaW5kZXggN2JmMmYzZi4uZDc5Y2FhMiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fYmF0Y2hfcG9vbC5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2JhdGNoX3Bvb2wuYwpAQCAtMTM1LDggKzEzNSw4 IEBAIGk5MTVfZ2VtX2JhdGNoX3Bvb2xfZ2V0KHN0cnVjdCBpOTE1X2dlbV9iYXRjaF9wb29sICpw b29sLAogCQlpbnQgcmV0OwogCiAJCW9iaiA9IGk5MTVfZ2VtX2FsbG9jX29iamVjdChwb29sLT5k ZXYsIHNpemUpOwotCQlpZiAob2JqID09IE5VTEwpCi0JCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVN KTsKKwkJaWYgKElTX0VSUihvYmopKQorCQkJcmV0dXJuIG9iajsKIAogCQlyZXQgPSBpOTE1X2dl bV9vYmplY3RfZ2V0X3BhZ2VzKG9iaik7CiAJCWlmIChyZXQpCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9jb250ZXh0LmMKaW5kZXggNzRhYTBjOS4uNjAzNjAwYyAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwpAQCAtMTU3LDggKzE1Nyw4IEBAIGk5MTVfZ2VtX2Fs bG9jX2NvbnRleHRfb2JqKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHNpemVfdCBzaXplKQogCWlu dCByZXQ7CiAKIAlvYmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCBzaXplKTsKLQlpZiAo b2JqID09IE5VTEwpCi0JCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCWlmIChJU19FUlIob2Jq KSkKKwkJcmV0dXJuIG9iajsKIAogCS8qCiAJICogVHJ5IHRvIG1ha2UgdGhlIGNvbnRleHQgdXRp bGl6ZSBMMyBhcyB3ZWxsIGFzIExMQy4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX3JlbmRlcl9zdGF0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f cmVuZGVyX3N0YXRlLmMKaW5kZXggNTAyNmE2Mi4uNTBkMDEwZSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVyX3N0YXRlLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVyX3N0YXRlLmMKQEAgLTU4LDggKzU4LDggQEAgc3RhdGlj IGludCByZW5kZXJfc3RhdGVfaW5pdChzdHJ1Y3QgcmVuZGVyX3N0YXRlICpzbywgc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlzby0+b2JqID0gaTkxNV9nZW1f YWxsb2Nfb2JqZWN0KGRldiwgNDA5Nik7Ci0JaWYgKHNvLT5vYmogPT0gTlVMTCkKLQkJcmV0dXJu IC1FTk9NRU07CisJaWYgKElTX0VSUihzby0+b2JqKSkKKwkJcmV0dXJuIFBUUl9FUlIoc28tPm9i aik7CiAKIAlyZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9waW4oc28tPm9iaiwgNDA5NiwgMCk7CiAJ aWYgKHJldCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xl bi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMKaW5kZXggNWVjMjE5 MC4uZDNlNjgxMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3Rv bGVuLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMKQEAgLTQw Niw2ICs0MDYsNyBAQCBpOTE1X3BhZ2VzX2NyZWF0ZV9mb3Jfc3RvbGVuKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKIAlzdHJ1Y3Qgc2dfdGFibGUgKnN0OwogCXN0cnVjdCBzY2F0dGVybGlzdCAqc2c7 CisJaW50IHJldDsKIAogCURSTV9ERUJVR19EUklWRVIoIm9mZnNldD0weCV4LCBzaXplPSVkXG4i LCBvZmZzZXQsIHNpemUpOwogCUJVR19PTihvZmZzZXQgPiBkZXZfcHJpdi0+Z3R0LnN0b2xlbl9z aXplIC0gc2l6ZSk7CkBAIC00MTcsMTEgKzQxOCwxMiBAQCBpOTE1X3BhZ2VzX2NyZWF0ZV9mb3Jf c3RvbGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIAlzdCA9IGttYWxsb2Moc2l6ZW9mKCpz dCksIEdGUF9LRVJORUwpOwogCWlmIChzdCA9PSBOVUxMKQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0 dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKLQlpZiAoc2dfYWxsb2NfdGFibGUoc3QsIDEsIEdGUF9L RVJORUwpKSB7CisJcmV0ID0gc2dfYWxsb2NfdGFibGUoc3QsIDEsIEdGUF9LRVJORUwpOworCWlm IChyZXQpIHsKIAkJa2ZyZWUoc3QpOwotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIo cmV0KTsKIAl9CiAKIAlzZyA9IHN0LT5zZ2w7CkBAIC00NzAsMTggKzQ3MiwyMSBAQCBfaTkxNV9n ZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCSAgICAg ICBzdHJ1Y3QgZHJtX21tX25vZGUgKnN0b2xlbikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqOworCWludCByZXQgPSAwOwogCiAJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2FsbG9j KGRldik7CiAJaWYgKG9iaiA9PSBOVUxMKQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9Q VFIoLUVOT01FTSk7CiAKIAlkcm1fZ2VtX3ByaXZhdGVfb2JqZWN0X2luaXQoZGV2LCAmb2JqLT5i YXNlLCBzdG9sZW4tPnNpemUpOwogCWk5MTVfZ2VtX29iamVjdF9pbml0KG9iaiwgJmk5MTVfZ2Vt X29iamVjdF9zdG9sZW5fb3BzKTsKIAogCW9iai0+cGFnZXMgPSBpOTE1X3BhZ2VzX2NyZWF0ZV9m b3Jfc3RvbGVuKGRldiwKIAkJCQkJCSAgc3RvbGVuLT5zdGFydCwgc3RvbGVuLT5zaXplKTsKLQlp ZiAob2JqLT5wYWdlcyA9PSBOVUxMKQorCWlmIChJU19FUlIob2JqLT5wYWdlcykpIHsKKwkJcmV0 ID0gUFRSX0VSUihvYmotPnBhZ2VzKTsKIAkJZ290byBjbGVhbnVwOworCX0KIAogCWk5MTVfZ2Vt X29iamVjdF9waW5fcGFnZXMob2JqKTsKIAlvYmotPnN0b2xlbiA9IHN0b2xlbjsKQEAgLTQ5Myw3 ICs0OTgsNyBAQCBfaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKIAogY2xlYW51cDoKIAlpOTE1X2dlbV9vYmplY3RfZnJlZShvYmopOwotCXJldHVy biBOVUxMOworCXJldHVybiBFUlJfUFRSKHJldCk7CiB9CiAKIHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICoKQEAgLTUwNSwyOSArNTEwLDI5IEBAIGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3Rv bGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHU2NCBzaXplKQogCWludCByZXQ7CiAKIAlpZiAo IWRybV9tbV9pbml0aWFsaXplZCgmZGV2X3ByaXYtPm1tLnN0b2xlbikpCi0JCXJldHVybiBOVUxM OworCQlyZXR1cm4gRVJSX1BUUigtRU5PREVWKTsKIAogCURSTV9ERUJVR19LTVMoImNyZWF0aW5n IHN0b2xlbiBvYmplY3Q6IHNpemU9JWxseFxuIiwgc2l6ZSk7CiAJaWYgKHNpemUgPT0gMCkKLQkJ cmV0dXJuIE5VTEw7CisJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwogCiAJc3RvbGVuID0ga3ph bGxvYyhzaXplb2YoKnN0b2xlbiksIEdGUF9LRVJORUwpOwogCWlmICghc3RvbGVuKQotCQlyZXR1 cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKIAlyZXQgPSBpOTE1X2dlbV9z dG9sZW5faW5zZXJ0X25vZGUoZGV2X3ByaXYsIHN0b2xlbiwgc2l6ZSwgNDA5Nik7CiAJaWYgKHJl dCkgewogCQlrZnJlZShzdG9sZW4pOwotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIo cmV0KTsKIAl9CiAKIAlvYmogPSBfaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oZGV2LCBz dG9sZW4pOwotCWlmIChvYmopCisJaWYgKCFJU19FUlIob2JqKSkKIAkJcmV0dXJuIG9iajsKIAog CWk5MTVfZ2VtX3N0b2xlbl9yZW1vdmVfbm9kZShkZXZfcHJpdiwgc3RvbGVuKTsKIAlrZnJlZShz dG9sZW4pOwotCXJldHVybiBOVUxMOworCXJldHVybiBvYmo7CiB9CiAKIHN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICoKQEAgLTU0NCw3ICs1NDksNyBAQCBpOTE1X2dlbV9vYmplY3RfY3JlYXRl X3N0b2xlbl9mb3JfcHJlYWxsb2NhdGVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJaW50IHJl dDsKIAogCWlmICghZHJtX21tX2luaXRpYWxpemVkKCZkZXZfcHJpdi0+bW0uc3RvbGVuKSkKLQkJ cmV0dXJuIE5VTEw7CisJCXJldHVybiBFUlJfUFRSKC1FTk9ERVYpOwogCiAJRFJNX0RFQlVHX0tN UygiY3JlYXRpbmcgcHJlYWxsb2NhdGVkIHN0b2xlbiBvYmplY3Q6IHN0b2xlbl9vZmZzZXQ9JXgs IGd0dF9vZmZzZXQ9JXgsIHNpemU9JXhcbiIsCiAJCQlzdG9sZW5fb2Zmc2V0LCBndHRfb2Zmc2V0 LCBzaXplKTsKQEAgLTU1MiwxMSArNTU3LDExIEBAIGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3Rv bGVuX2Zvcl9wcmVhbGxvY2F0ZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkvKiBLSVNTIGFu ZCBleHBlY3QgZXZlcnl0aGluZyB0byBiZSBwYWdlLWFsaWduZWQgKi8KIAlpZiAoV0FSTl9PTihz aXplID09IDApIHx8IFdBUk5fT04oc2l6ZSAmIDQwOTUpIHx8CiAJICAgIFdBUk5fT04oc3RvbGVu X29mZnNldCAmIDQwOTUpKQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIEVSUl9QVFIoLUVJTlZB TCk7CiAKIAlzdG9sZW4gPSBremFsbG9jKHNpemVvZigqc3RvbGVuKSwgR0ZQX0tFUk5FTCk7CiAJ aWYgKCFzdG9sZW4pCi0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsK IAogCXN0b2xlbi0+c3RhcnQgPSBzdG9sZW5fb2Zmc2V0OwogCXN0b2xlbi0+c2l6ZSA9IHNpemU7 CkBAIC01NjYsMTUgKzU3MSwxNSBAQCBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbl9mb3Jf cHJlYWxsb2NhdGVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJaWYgKHJldCkgewogCQlEUk1f REVCVUdfS01TKCJmYWlsZWQgdG8gYWxsb2NhdGUgc3RvbGVuIHNwYWNlXG4iKTsKIAkJa2ZyZWUo c3RvbGVuKTsKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBFUlJfUFRSKHJldCk7CiAJfQogCiAJ b2JqID0gX2k5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuKGRldiwgc3RvbGVuKTsKLQlpZiAo b2JqID09IE5VTEwpIHsKKwlpZiAoSVNfRVJSKG9iaikpIHsKIAkJRFJNX0RFQlVHX0tNUygiZmFp bGVkIHRvIGFsbG9jYXRlIHN0b2xlbiBvYmplY3RcbiIpOwogCQlpOTE1X2dlbV9zdG9sZW5fcmVt b3ZlX25vZGUoZGV2X3ByaXYsIHN0b2xlbik7CiAJCWtmcmVlKHN0b2xlbik7Ci0JCXJldHVybiBO VUxMOworCQlyZXR1cm4gb2JqOwogCX0KIAogCS8qIFNvbWUgb2JqZWN0cyBqdXN0IG5lZWQgcGh5 c2ljYWwgbWVtIGZyb20gc3RvbGVuIHNwYWNlICovCkBAIC02MTIsNSArNjE3LDUgQEAgaTkxNV9n ZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW5fZm9yX3ByZWFsbG9jYXRlZChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAogCiBlcnI6CiAJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJm9iai0+YmFzZSk7 Ci0JcmV0dXJuIE5VTEw7CisJcmV0dXJuIEVSUl9QVFIocmV0KTsKIH0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwppbmRleCA3OTJkMGI5Li4zOTAxNjk4IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCkBAIC02NDYsOCArNjQ2 LDggQEAgc3RhdGljIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpnZW1fYWxsb2NhdGVfZ3Vj X29iaihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmo7CiAKIAlvYmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCBzaXplKTsKLQlpZiAo IW9iaikKLQkJcmV0dXJuIE5VTEw7CisJaWYgKElTX0VSUihvYmopKQorCQlyZXR1cm4gb2JqOwog CiAJaWYgKGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXMob2JqKSkgewogCQlkcm1fZ2VtX29iamVj dF91bnJlZmVyZW5jZSgmb2JqLT5iYXNlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YwppbmRleCAxODQ3MjU3Li5kMDg5ODlhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jCkBAIC0yNTE0LDcgKzI1MTQsNyBAQCBpbnRlbF9hbGxvY19pbml0aWFsX3BsYW5lX29iaihz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJCQkJCQkgICAgIGJhc2VfYWxpZ25lZCwKIAkJCQkJ CQkgICAgIGJhc2VfYWxpZ25lZCwKIAkJCQkJCQkgICAgIHNpemVfYWxpZ25lZCk7Ci0JaWYgKCFv YmopCisJaWYgKElTX0VSUihvYmopKQogCQlyZXR1cm4gZmFsc2U7CiAKIAlvYmotPnRpbGluZ19t b2RlID0gcGxhbmVfY29uZmlnLT50aWxpbmc7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9mYmRldi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYwpp bmRleCA2NTMyOTEyLi42N2RlOTU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9mYmRldi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMKQEAg LTE0MCwxMSArMTQwLDExIEBAIHN0YXRpYyBpbnQgaW50ZWxmYl9hbGxvYyhzdHJ1Y3QgZHJtX2Zi X2hlbHBlciAqaGVscGVyLAogCXNpemUgPSBtb2RlX2NtZC5waXRjaGVzWzBdICogbW9kZV9jbWQu aGVpZ2h0OwogCXNpemUgPSBQQUdFX0FMSUdOKHNpemUpOwogCW9iaiA9IGk5MTVfZ2VtX29iamVj dF9jcmVhdGVfc3RvbGVuKGRldiwgc2l6ZSk7Ci0JaWYgKG9iaiA9PSBOVUxMKQorCWlmIChJU19F UlIob2JqKSkKIAkJb2JqID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KGRldiwgc2l6ZSk7Ci0JaWYg KCFvYmopIHsKKwlpZiAoSVNfRVJSKG9iaikpIHsKIAkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gYWxs b2NhdGUgZnJhbWVidWZmZXJcbiIpOwotCQlyZXQgPSAtRU5PTUVNOworCQlyZXQgPSBQVFJfRVJS KG9iaik7CiAJCWdvdG8gb3V0OwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwppbmRleCAy NTYxNjdiLi5kOWJkOWExIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s cmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwpAQCAtMTM3Nyw5ICsx Mzc3LDkgQEAgc3RhdGljIGludCBscmNfc2V0dXBfd2FfY3R4X29iaihzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICpyaW5nLCB1MzIgc2l6ZSkKIAlpbnQgcmV0OwogCiAJcmluZy0+d2FfY3R4Lm9iaiA9 IGk5MTVfZ2VtX2FsbG9jX29iamVjdChyaW5nLT5kZXYsIFBBR0VfQUxJR04oc2l6ZSkpOwotCWlm ICghcmluZy0+d2FfY3R4Lm9iaikgeworCWlmIChJU19FUlIocmluZy0+d2FfY3R4Lm9iaikpIHsK IAkJRFJNX0RFQlVHX0RSSVZFUigiYWxsb2MgTFJDIFdBIGN0eCBiYWNraW5nIG9iaiBmYWlsZWQu XG4iKTsKLQkJcmV0dXJuIC1FTk9NRU07CisJCXJldHVybiBQVFJfRVJSKHJpbmctPndhX2N0eC5v YmopOwogCX0KIAogCXJldCA9IGk5MTVfZ2VtX29ial9nZ3R0X3BpbihyaW5nLT53YV9jdHgub2Jq LCBQQUdFX1NJWkUsIDApOwpAQCAtMjQ1OSw5ICsyNDU5LDkgQEAgaW50IGludGVsX2xyX2NvbnRl eHRfZGVmZXJyZWRfYWxsb2Moc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKIAljb250ZXh0X3Np emUgKz0gUEFHRV9TSVpFICogTFJDX1BQSFdTUF9QTjsKIAogCWN0eF9vYmogPSBpOTE1X2dlbV9h bGxvY19vYmplY3QoZGV2LCBjb250ZXh0X3NpemUpOwotCWlmICghY3R4X29iaikgeworCWlmIChJ U19FUlIoY3R4X29iaikpIHsKIAkJRFJNX0RFQlVHX0RSSVZFUigiQWxsb2MgTFJDIGJhY2tpbmcg b2JqIGZhaWxlZC5cbiIpOwotCQlyZXR1cm4gLUVOT01FTTsKKwkJcmV0dXJuIFBUUl9FUlIoY3R4 X29iaik7CiAJfQogCiAJcmluZ2J1ZiA9IGludGVsX2VuZ2luZV9jcmVhdGVfcmluZ2J1ZmZlcihy aW5nLCA0ICogUEFHRV9TSVpFKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX292ZXJsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYwppbmRl eCA0NDQ1NDI2Li5iZmI5NWEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9vdmVybGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheS5jCkBA IC0xMzkyLDkgKzEzOTIsOSBAQCB2b2lkIGludGVsX3NldHVwX292ZXJsYXkoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKIAlyZWdfYm8gPSBOVUxMOwogCWlmICghT1ZFUkxBWV9ORUVEU19QSFlTSUNB TChkZXYpKQogCQlyZWdfYm8gPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihkZXYsIFBB R0VfU0laRSk7Ci0JaWYgKHJlZ19ibyA9PSBOVUxMKQorCWlmIChJU19FUlJfT1JfTlVMTChyZWdf Ym8pKQogCQlyZWdfYm8gPSBpOTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCBQQUdFX1NJWkUpOwot CWlmIChyZWdfYm8gPT0gTlVMTCkKKwlpZiAoSVNfRVJSKHJlZ19ibykpCiAJCWdvdG8gb3V0X2Zy ZWU7CiAJb3ZlcmxheS0+cmVnX2JvID0gcmVnX2JvOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpp bmRleCBhYjVhYzVlLi4wZDM1ZDdmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKQEAgLTUzODcs NyArNTM4Nyw3IEBAIHN0YXRpYyB2b2lkIHZhbGxleXZpZXdfc2V0dXBfcGN0eChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQogCSAqIG1lbW9yeSwgb3IgYW55IG90aGVyIHJlbGV2YW50IHJhbmdlcy4K IAkgKi8KIAlwY3R4ID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oZGV2LCBwY3R4X3Np emUpOwotCWlmICghcGN0eCkgeworCWlmIChJU19FUlIocGN0eCkpIHsKIAkJRFJNX0RFQlVHKCJu b3QgZW5vdWdoIHN0b2xlbiBzcGFjZSBmb3IgUENUWCwgZGlzYWJsaW5nXG4iKTsKIAkJcmV0dXJu OwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwppbmRleCAxNmE0ZWFk Li5hOTI4NjAyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCkBAIC02 NzYsOSArNjc2LDkgQEAgaW50ZWxfaW5pdF9waXBlX2NvbnRyb2woc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqcmluZykKIAlXQVJOX09OKHJpbmctPnNjcmF0Y2gub2JqKTsKIAogCXJpbmctPnNjcmF0 Y2gub2JqID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KHJpbmctPmRldiwgNDA5Nik7Ci0JaWYgKHJp bmctPnNjcmF0Y2gub2JqID09IE5VTEwpIHsKKwlpZiAoSVNfRVJSKHJpbmctPnNjcmF0Y2gub2Jq KSkgewogCQlEUk1fRVJST1IoIkZhaWxlZCB0byBhbGxvY2F0ZSBzZXFubyBwYWdlXG4iKTsKLQkJ cmV0ID0gLUVOT01FTTsKKwkJcmV0ID0gUFRSX0VSUihyaW5nLT5zY3JhdGNoLm9iaik7CiAJCWdv dG8gZXJyOwogCX0KIApAQCAtMTkxMyw5ICsxOTEzLDkgQEAgc3RhdGljIGludCBpbml0X3N0YXR1 c19wYWdlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCiAJCWludCByZXQ7CiAKIAkJb2Jq ID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KHJpbmctPmRldiwgNDA5Nik7Ci0JCWlmIChvYmogPT0g TlVMTCkgeworCQlpZiAoSVNfRVJSKG9iaikpIHsKIAkJCURSTV9FUlJPUigiRmFpbGVkIHRvIGFs bG9jYXRlIHN0YXR1cyBwYWdlXG4iKTsKLQkJCXJldHVybiAtRU5PTUVNOworCQkJcmV0dXJuIFBU Ul9FUlIob2JqKTsKIAkJfQogCiAJCXJldCA9IGk5MTVfZ2VtX29iamVjdF9zZXRfY2FjaGVfbGV2 ZWwob2JqLCBJOTE1X0NBQ0hFX0xMQyk7CkBAIC0yMDIwLDEwICsyMDIwLDEwIEBAIHN0YXRpYyBp bnQgaW50ZWxfYWxsb2NfcmluZ2J1ZmZlcl9vYmooc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlv YmogPSBOVUxMOwogCWlmICghSEFTX0xMQyhkZXYpKQogCQlvYmogPSBpOTE1X2dlbV9vYmplY3Rf Y3JlYXRlX3N0b2xlbihkZXYsIHJpbmdidWYtPnNpemUpOwotCWlmIChvYmogPT0gTlVMTCkKKwlp ZiAoSVNfRVJSX09SX05VTEwob2JqKSkKIAkJb2JqID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KGRl diwgcmluZ2J1Zi0+c2l6ZSk7Ci0JaWYgKG9iaiA9PSBOVUxMKQotCQlyZXR1cm4gLUVOT01FTTsK KwlpZiAoSVNfRVJSKG9iaikpCisJCXJldHVybiBQVFJfRVJSKG9iaik7CiAKIAkvKiBtYXJrIHJp bmcgYnVmZmVycyBhcyByZWFkLW9ubHkgZnJvbSBHUFUgc2lkZSBieSBkZWZhdWx0ICovCiAJb2Jq LT5ndF9ybyA9IDE7CkBAIC0yNjA3LDcgKzI2MDcsNyBAQCBpbnQgaW50ZWxfaW5pdF9yZW5kZXJf cmluZ19idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlpZiAoSU5URUxfSU5GTyhkZXYp LT5nZW4gPj0gOCkgewogCQlpZiAoaTkxNV9zZW1hcGhvcmVfaXNfZW5hYmxlZChkZXYpKSB7CiAJ CQlvYmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCA0MDk2KTsKLQkJCWlmIChvYmogPT0g TlVMTCkgeworCQkJaWYgKElTX0VSUihvYmopKSB7CiAJCQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8g YWxsb2NhdGUgc2VtYXBob3JlIGJvLiBEaXNhYmxpbmcgc2VtYXBob3Jlc1xuIik7CiAJCQkJaTkx NS5zZW1hcGhvcmVzID0gMDsKIAkJCX0gZWxzZSB7CkBAIC0yNzEzLDkgKzI3MTMsOSBAQCBpbnQg aW50ZWxfaW5pdF9yZW5kZXJfcmluZ19idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkv KiBXb3JrYXJvdW5kIGJhdGNoYnVmZmVyIHRvIGNvbWJhdCBDUyB0bGIgYnVnLiAqLwogCWlmIChI QVNfQlJPS0VOX0NTX1RMQihkZXYpKSB7CiAJCW9iaiA9IGk5MTVfZ2VtX2FsbG9jX29iamVjdChk ZXYsIEk4MzBfV0FfU0laRSk7Ci0JCWlmIChvYmogPT0gTlVMTCkgeworCQlpZiAoSVNfRVJSKG9i aikpIHsKIAkJCURSTV9FUlJPUigiRmFpbGVkIHRvIGFsbG9jYXRlIGJhdGNoIGJvXG4iKTsKLQkJ CXJldHVybiAtRU5PTUVNOworCQkJcmV0dXJuIFBUUl9FUlIob2JqKTsKIAkJfQogCiAJCXJldCA9 IGk5MTVfZ2VtX29ial9nZ3R0X3BpbihvYmosIDAsIDApOwotLSAKMS45LjEKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==