From: Karol Herbst Subject: [RFC PATCH 01/29] therm: split return code and value in nvkm_get_temp Date: Fri, 15 Sep 2017 19:11:01 +0200 Message-ID: <20170915171129.5009-2-karolherbst@gmail.com> References: <20170915171129.5009-1-karolherbst@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170915171129.5009-1-karolherbst-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: nouveau.vger.kernel.org VGhlIGN1cnJlbnQgaHdtb24gY29kZSBkb2Vzbid0IGNoZWNrIGlmIHRoZSByZXR1cm5lZCB2YWx1 ZSB3YXMgYWN0dWFsbHkgYW4KZXJyb3IuCgpTaW5jZSBLZXBsZXIgdGVtcGVyYXR1cmUgc2Vuc29y cyBhcmUgYWJsZSB0byByZXBvcnQgbmVnYXRpdmUgdmFsdWVzLgpTaW5jZSBQYXNjYWwgKGFuZCBt YXliZSBlYXJsaWVyKSB3ZSBoYXZlIHNlbnNvcnMgd2l0aCBpbXByb3ZlZCBwcmVjaXNpb24uCgpB ZGp1c3QgdGhlIG52a21fZ2V0X3RlbXAgbWV0aG9kIHRvIGJlIGFibGUgdG8gZGVhbCB3aXRoIHRo b3NlIGNoYW5nZXMKYW5kIGxldCBod21vbiByZXR1cm4gYW4gZXJyb3IgcHJvcGVybHkuCgpTaWdu ZWQtb2ZmLWJ5OiBLYXJvbCBIZXJic3QgPGthcm9saGVyYnN0QGdtYWlsLmNvbT4KLS0tCiBkcm0v bm91dmVhdS9pbmNsdWRlL252a20vc3ViZGV2L3RoZXJtLmggfCAgMiArLQogZHJtL25vdXZlYXUv bm91dmVhdV9od21vbi5jICAgICAgICAgICAgIHwgMTUgKysrKysrKysrLS0tLS0tCiBkcm0vbm91 dmVhdS9udmttL3N1YmRldi90aGVybS9iYXNlLmMgICAgfCAxOSArKysrKysrKysrKysrKy0tLS0t CiBkcm0vbm91dmVhdS9udmttL3N1YmRldi90aGVybS9nODQuYyAgICAgfCAxMSArKysrKystLS0t LQogZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvdGhlcm0vZ3AxMDAuYyAgIHwgIDkgKysrKystLS0t CiBkcm0vbm91dmVhdS9udmttL3N1YmRldi90aGVybS9udjQwLmMgICAgfCAgOSArKystLS0tLS0K IGRybS9ub3V2ZWF1L252a20vc3ViZGV2L3RoZXJtL252NTAuYyAgICB8ICA5ICsrKy0tLS0tLQog ZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvdGhlcm0vcHJpdi5oICAgIHwgIDQgKystLQogZHJtL25v dXZlYXUvbnZrbS9zdWJkZXYvdGhlcm0vdGVtcC5jICAgIHwgMTYgKysrKysrKysrKysrLS0tLQog OSBmaWxlcyBjaGFuZ2VkLCA1NSBpbnNlcnRpb25zKCspLCAzOSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcm0vbm91dmVhdS9pbmNsdWRlL252a20vc3ViZGV2L3RoZXJtLmggYi9kcm0vbm91 dmVhdS9pbmNsdWRlL252a20vc3ViZGV2L3RoZXJtLmgKaW5kZXggOTg0MWYwNzYuLjhjODQwMTdm IDEwMDY0NAotLS0gYS9kcm0vbm91dmVhdS9pbmNsdWRlL252a20vc3ViZGV2L3RoZXJtLmgKKysr IGIvZHJtL25vdXZlYXUvaW5jbHVkZS9udmttL3N1YmRldi90aGVybS5oCkBAIC04Niw3ICs4Niw3 IEBAIHN0cnVjdCBudmttX3RoZXJtIHsKIAlpbnQgKCphdHRyX3NldCkoc3RydWN0IG52a21fdGhl cm0gKiwgZW51bSBudmttX3RoZXJtX2F0dHJfdHlwZSwgaW50KTsKIH07CiAKLWludCBudmttX3Ro ZXJtX3RlbXBfZ2V0KHN0cnVjdCBudmttX3RoZXJtICopOworaW50IG52a21fdGhlcm1fdGVtcF9n ZXQoc3RydWN0IG52a21fdGhlcm0gKiwgaW50ICopOwogaW50IG52a21fdGhlcm1fZmFuX3NlbnNl KHN0cnVjdCBudmttX3RoZXJtICopOwogaW50IG52a21fdGhlcm1fY3N0YXRlKHN0cnVjdCBudmtt X3RoZXJtICosIGludCwgaW50KTsKIApkaWZmIC0tZ2l0IGEvZHJtL25vdXZlYXUvbm91dmVhdV9o d21vbi5jIGIvZHJtL25vdXZlYXUvbm91dmVhdV9od21vbi5jCmluZGV4IDdjOTY1NjQ4Li5mMTkx NGQ5YSAxMDA2NDQKLS0tIGEvZHJtL25vdXZlYXUvbm91dmVhdV9od21vbi5jCisrKyBiL2RybS9u b3V2ZWF1L25vdXZlYXVfaHdtb24uYwpAQCAtMzI2LDggKzMyNiw5IEBAIG5vdXZlYXVfdGVtcF9p c192aXNpYmxlKGNvbnN0IHZvaWQgKmRhdGEsIHUzMiBhdHRyLCBpbnQgY2hhbm5lbCkKIHsKIAlz dHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSA9IG5vdXZlYXVfZHJtKChzdHJ1Y3QgZHJtX2RldmljZSAq KWRhdGEpOwogCXN0cnVjdCBudmttX3RoZXJtICp0aGVybSA9IG52eHhfdGhlcm0oJmRybS0+Y2xp ZW50LmRldmljZSk7CisJaW50IHZhbDsKIAotCWlmICh0aGVybSAmJiB0aGVybS0+YXR0cl9nZXQg JiYgbnZrbV90aGVybV90ZW1wX2dldCh0aGVybSkgPCAwKQorCWlmICh0aGVybSAmJiB0aGVybS0+ YXR0cl9nZXQgJiYgbnZrbV90aGVybV90ZW1wX2dldCh0aGVybSwgJnZhbCkgPCAwKQogCQlyZXR1 cm4gMDsKIAogCXN3aXRjaCAoYXR0cikgewpAQCAtNDIxLDE1ICs0MjIsMTYgQEAgbm91dmVhdV90 ZW1wX3JlYWQoc3RydWN0IGRldmljZSAqZGV2LCB1MzIgYXR0ciwgaW50IGNoYW5uZWwsIGxvbmcg KnZhbCkKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYp OwogCXN0cnVjdCBub3V2ZWF1X2RybSAqZHJtID0gbm91dmVhdV9kcm0oZHJtX2Rldik7CiAJc3Ry dWN0IG52a21fdGhlcm0gKnRoZXJtID0gbnZ4eF90aGVybSgmZHJtLT5jbGllbnQuZGV2aWNlKTsK LQlpbnQgcmV0OworCWludCByZXQgPSAwOworCWludCB0ZW1wOwogCiAJaWYgKCF0aGVybSB8fCAh dGhlcm0tPmF0dHJfZ2V0KQogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAKIAlzd2l0Y2ggKGF0dHIp IHsKIAljYXNlIGh3bW9uX3RlbXBfaW5wdXQ6Ci0JCXJldCA9IG52a21fdGhlcm1fdGVtcF9nZXQo dGhlcm0pOwotCQkqdmFsID0gcmV0IDwgMCA/IHJldCA6IChyZXQgKiAxMDAwKTsKKwkJcmV0ID0g bnZrbV90aGVybV90ZW1wX2dldCh0aGVybSwgJnRlbXApOworCQkqdmFsID0gdGVtcCAqIDEwMDA7 CiAJCWJyZWFrOwogCWNhc2UgaHdtb25fdGVtcF9tYXg6CiAJCSp2YWwgPSB0aGVybS0+YXR0cl9n ZXQodGhlcm0sIE5WS01fVEhFUk1fQVRUUl9USFJTX0RPV05fQ0xLKQpAQCAtNDU5LDcgKzQ2MSw3 IEBAIG5vdXZlYXVfdGVtcF9yZWFkKHN0cnVjdCBkZXZpY2UgKmRldiwgdTMyIGF0dHIsIGludCBj aGFubmVsLCBsb25nICp2YWwpCiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAl9CiAKLQlyZXR1cm4g MDsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50CkBAIC03MTMsNiArNzE1LDcgQEAgbm91 dmVhdV9od21vbl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJc3RydWN0IGRldmljZSAq aHdtb25fZGV2OwogCWludCByZXQgPSAwOwogCWludCBpID0gMDsKKwlpbnQgdmFsOwogCiAJaHdt b24gPSBkcm0tPmh3bW9uID0ga3phbGxvYyhzaXplb2YoKmh3bW9uKSwgR0ZQX0tFUk5FTCk7CiAJ aWYgKCFod21vbikKQEAgLTcyMCw3ICs3MjMsNyBAQCBub3V2ZWF1X2h3bW9uX2luaXQoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKIAlod21vbi0+ZGV2ID0gZGV2OwogCiAJaWYgKHRoZXJtICYmIHRo ZXJtLT5hdHRyX2dldCAmJiB0aGVybS0+YXR0cl9zZXQpIHsKLQkJaWYgKG52a21fdGhlcm1fdGVt cF9nZXQodGhlcm0pID49IDApCisJCWlmIChudmttX3RoZXJtX3RlbXBfZ2V0KHRoZXJtLCAmdmFs KSA+PSAwKQogCQkJc3BlY2lhbF9ncm91cHNbaSsrXSA9ICZ0ZW1wMV9hdXRvX3BvaW50X3NlbnNv cl9ncm91cDsKIAkJaWYgKHRoZXJtLT5mYW5fZ2V0ICYmIHRoZXJtLT5mYW5fZ2V0KHRoZXJtKSA+ PSAwKQogCQkJc3BlY2lhbF9ncm91cHNbaSsrXSA9ICZwd21fZmFuX3NlbnNvcl9ncm91cDsKZGlm ZiAtLWdpdCBhL2RybS9ub3V2ZWF1L252a20vc3ViZGV2L3RoZXJtL2Jhc2UuYyBiL2RybS9ub3V2 ZWF1L252a20vc3ViZGV2L3RoZXJtL2Jhc2UuYwppbmRleCBmMjdmYzZkMC4uOGZhNjkxZmIgMTAw NjQ0Ci0tLSBhL2RybS9ub3V2ZWF1L252a20vc3ViZGV2L3RoZXJtL2Jhc2UuYworKysgYi9kcm0v bm91dmVhdS9udmttL3N1YmRldi90aGVybS9iYXNlLmMKQEAgLTI0LDIyICsyNCwyNiBAQAogI2lu Y2x1ZGUgInByaXYuaCIKIAogaW50Ci1udmttX3RoZXJtX3RlbXBfZ2V0KHN0cnVjdCBudmttX3Ro ZXJtICp0aGVybSkKK252a21fdGhlcm1fdGVtcF9nZXQoc3RydWN0IG52a21fdGhlcm0gKnRoZXJt LCBpbnQgKnZhbCkKIHsKIAlpZiAodGhlcm0tPmZ1bmMtPnRlbXBfZ2V0KQotCQlyZXR1cm4gdGhl cm0tPmZ1bmMtPnRlbXBfZ2V0KHRoZXJtKTsKKwkJcmV0dXJuIHRoZXJtLT5mdW5jLT50ZW1wX2dl dCh0aGVybSwgdmFsKTsKIAlyZXR1cm4gLUVOT0RFVjsKIH0KIAogc3RhdGljIGludAogbnZrbV90 aGVybV91cGRhdGVfdHJpcChzdHJ1Y3QgbnZrbV90aGVybSAqdGhlcm0pCiB7CisJaW50IHRlbXAs IHJldDsKIAlzdHJ1Y3QgbnZiaW9zX3RoZXJtX3RyaXBfcG9pbnQgKnRyaXAgPSB0aGVybS0+ZmFu LT5iaW9zLnRyaXAsCiAJCQkJICAgICAgICpjdXJfdHJpcCA9IE5VTEwsCiAJCQkJICAgICAgICps YXN0X3RyaXAgPSB0aGVybS0+bGFzdF90cmlwOwotCXU4ICB0ZW1wID0gdGhlcm0tPmZ1bmMtPnRl bXBfZ2V0KHRoZXJtKTsKIAl1MTYgZHV0eSwgaTsKIAorCXJldCA9IHRoZXJtLT5mdW5jLT50ZW1w X2dldCh0aGVybSwgJnRlbXApOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCiAJLyog bG9vayBmb3IgdGhlIHRyaXAgcG9pbnQgY29ycmVzcG9uZGluZyB0byB0aGUgY3VycmVudCB0ZW1w ZXJhdHVyZSAqLwogCWN1cl90cmlwID0gTlVMTDsKIAlmb3IgKGkgPSAwOyBpIDwgdGhlcm0tPmZh bi0+Ymlvcy5ucl9mYW5fdHJpcDsgaSsrKSB7CkBAIC02Nyw5ICs3MSwxMyBAQCBzdGF0aWMgaW50 CiBudmttX3RoZXJtX2NvbXB1dGVfbGluZWFyX2R1dHkoc3RydWN0IG52a21fdGhlcm0gKnRoZXJt LCB1OCBsaW5lYXJfbWluX3RlbXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTgg bGluZWFyX21heF90ZW1wKQogewotCXU4ICB0ZW1wID0gdGhlcm0tPmZ1bmMtPnRlbXBfZ2V0KHRo ZXJtKTsKKwlpbnQgdGVtcCwgcmV0OwogCXUxNiBkdXR5OwogCisJcmV0ID0gdGhlcm0tPmZ1bmMt PnRlbXBfZ2V0KHRoZXJtLCAmdGVtcCk7CisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisK IAkvKiBoYW5kbGUgdGhlIG5vbi1saW5lYXIgcGFydCBmaXJzdCAqLwogCWlmICh0ZW1wIDwgbGlu ZWFyX21pbl90ZW1wKQogCQlyZXR1cm4gdGhlcm0tPmZhbi0+Ymlvcy5taW5fZHV0eTsKQEAgLTE4 Miw2ICsxOTAsNyBAQCBudmttX3RoZXJtX2Zhbl9tb2RlKHN0cnVjdCBudmttX3RoZXJtICp0aGVy bSwgaW50IG1vZGUpCiB7CiAJc3RydWN0IG52a21fc3ViZGV2ICpzdWJkZXYgPSAmdGhlcm0tPnN1 YmRldjsKIAlzdHJ1Y3QgbnZrbV9kZXZpY2UgKmRldmljZSA9IHN1YmRldi0+ZGV2aWNlOworCWlu dCB2YWw7CiAJc3RhdGljIGNvbnN0IGNoYXIgKm5hbWVbXSA9IHsKIAkJImRpc2FibGVkIiwKIAkJ Im1hbnVhbCIsCkBAIC0xOTcsNyArMjA2LDcgQEAgbnZrbV90aGVybV9mYW5fbW9kZShzdHJ1Y3Qg bnZrbV90aGVybSAqdGhlcm0sIGludCBtb2RlKQogCS8qIGRvIG5vdCBhbGxvdyBhdXRvbWF0aWMg ZmFuIG1hbmFnZW1lbnQgaWYgdGhlIHRoZXJtYWwgc2Vuc29yIGlzCiAJICogbm90IGF2YWlsYWJs ZSAqLwogCWlmIChtb2RlID09IE5WS01fVEhFUk1fQ1RSTF9BVVRPICYmCi0JICAgIHRoZXJtLT5m dW5jLT50ZW1wX2dldCh0aGVybSkgPCAwKQorCSAgICB0aGVybS0+ZnVuYy0+dGVtcF9nZXQodGhl cm0sICZ2YWwpIDwgMCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlpZiAodGhlcm0tPm1vZGUgPT0g bW9kZSkKZGlmZiAtLWdpdCBhL2RybS9ub3V2ZWF1L252a20vc3ViZGV2L3RoZXJtL2c4NC5jIGIv ZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvdGhlcm0vZzg0LmMKaW5kZXggOTZmOGRhNDAuLjNiYjJk ODI5IDEwMDY0NAotLS0gYS9kcm0vbm91dmVhdS9udmttL3N1YmRldi90aGVybS9nODQuYworKysg Yi9kcm0vbm91dmVhdS9udmttL3N1YmRldi90aGVybS9nODQuYwpAQCAtMjcsMTQgKzI3LDE1IEBA CiAjaW5jbHVkZSA8c3ViZGV2L2Z1c2UuaD4KIAogaW50Ci1nODRfdGVtcF9nZXQoc3RydWN0IG52 a21fdGhlcm0gKnRoZXJtKQorZzg0X3RlbXBfZ2V0KHN0cnVjdCBudmttX3RoZXJtICp0aGVybSwg aW50ICp2YWwpCiB7CiAJc3RydWN0IG52a21fZGV2aWNlICpkZXZpY2UgPSB0aGVybS0+c3ViZGV2 LmRldmljZTsKIAotCWlmIChudmttX2Z1c2VfcmVhZChkZXZpY2UtPmZ1c2UsIDB4MWE4KSA9PSAx KQotCQlyZXR1cm4gbnZrbV9yZDMyKGRldmljZSwgMHgyMDQwMCk7Ci0JZWxzZQorCWlmIChudmtt X2Z1c2VfcmVhZChkZXZpY2UtPmZ1c2UsIDB4MWE4KSAhPSAxKQogCQlyZXR1cm4gLUVOT0RFVjsK KworCSp2YWwgPSBudmttX3JkMzIoZGV2aWNlLCAweDIwNDAwKTsKKwlyZXR1cm4gMDsKIH0KIAog dm9pZApAQCAtMTE1LDcgKzExNiw3IEBAIGc4NF90aGVybV90aHJlc2hvbGRfaHlzdF9lbXVsYXRp b24oc3RydWN0IG52a21fdGhlcm0gKnRoZXJtLAogCX0KIAogCS8qIGZpeCB0aGUgc3RhdGUgKGlu IGNhc2Ugc29tZW9uZSByZXByb2dyYW1tZWQgdGhlIGFsYXJtcykgKi8KLQljdXIgPSB0aGVybS0+ ZnVuYy0+dGVtcF9nZXQodGhlcm0pOworCXRoZXJtLT5mdW5jLT50ZW1wX2dldCh0aGVybSwgJmN1 cik7CiAJaWYgKG5ld19zdGF0ZSA9PSBOVktNX1RIRVJNX1RIUlNfTE9XRVIgJiYgY3VyID4gdGhy cy0+dGVtcCkKIAkJbmV3X3N0YXRlID0gTlZLTV9USEVSTV9USFJTX0hJR0hFUjsKIAllbHNlIGlm IChuZXdfc3RhdGUgPT0gTlZLTV9USEVSTV9USFJTX0hJR0hFUiAmJgpkaWZmIC0tZ2l0IGEvZHJt L25vdXZlYXUvbnZrbS9zdWJkZXYvdGhlcm0vZ3AxMDAuYyBiL2RybS9ub3V2ZWF1L252a20vc3Vi ZGV2L3RoZXJtL2dwMTAwLmMKaW5kZXggOWYwZGVhM2YuLmQ4MjA2NzQ4IDEwMDY0NAotLS0gYS9k cm0vbm91dmVhdS9udmttL3N1YmRldi90aGVybS9ncDEwMC5jCisrKyBiL2RybS9ub3V2ZWF1L252 a20vc3ViZGV2L3RoZXJtL2dwMTAwLmMKQEAgLTI0LDcgKzI0LDcgQEAKICNpbmNsdWRlICJwcml2 LmgiCiAKIHN0YXRpYyBpbnQKLWdwMTAwX3RlbXBfZ2V0KHN0cnVjdCBudmttX3RoZXJtICp0aGVy bSkKK2dwMTAwX3RlbXBfZ2V0KHN0cnVjdCBudmttX3RoZXJtICp0aGVybSwgaW50ICp2YWwpCiB7 CiAJc3RydWN0IG52a21fZGV2aWNlICpkZXZpY2UgPSB0aGVybS0+c3ViZGV2LmRldmljZTsKIAlz dHJ1Y3QgbnZrbV9zdWJkZXYgKnN1YmRldiA9ICZ0aGVybS0+c3ViZGV2OwpAQCAtMzYsOSArMzYs MTAgQEAgZ3AxMDBfdGVtcF9nZXQoc3RydWN0IG52a21fdGhlcm0gKnRoZXJtKQogCQludmttX3Ry YWNlKHN1YmRldiwgInJlYWRpbmcgdGVtcGVyYXR1cmUgZnJvbSBTSEFET1dlZCBzZW5zb3JcbiIp OwogCiAJLyogZGV2aWNlIHZhbGlkICovCi0JaWYgKHRzZW5zb3IgJiAweDIwMDAwMDAwKQotCQly ZXR1cm4gKGludHRlbXAgPj4gOCk7Ci0JZWxzZQorCWlmICh0c2Vuc29yICYgMHgyMDAwMDAwMCkg eworCQkqdmFsID0gaW50dGVtcCA+PiA4OworCQlyZXR1cm4gMDsKKwl9IGVsc2UKIAkJcmV0dXJu IC1FTk9ERVY7CiB9CiAKZGlmZiAtLWdpdCBhL2RybS9ub3V2ZWF1L252a20vc3ViZGV2L3RoZXJt L252NDAuYyBiL2RybS9ub3V2ZWF1L252a20vc3ViZGV2L3RoZXJtL252NDAuYwppbmRleCAyYzky ZmZiNS4uY2ZkNWIyMTUgMTAwNjQ0Ci0tLSBhL2RybS9ub3V2ZWF1L252a20vc3ViZGV2L3RoZXJt L252NDAuYworKysgYi9kcm0vbm91dmVhdS9udmttL3N1YmRldi90aGVybS9udjQwLmMKQEAgLTcw LDcgKzcwLDcgQEAgbnY0MF9zZW5zb3Jfc2V0dXAoc3RydWN0IG52a21fdGhlcm0gKnRoZXJtKQog fQogCiBzdGF0aWMgaW50Ci1udjQwX3RlbXBfZ2V0KHN0cnVjdCBudmttX3RoZXJtICp0aGVybSkK K252NDBfdGVtcF9nZXQoc3RydWN0IG52a21fdGhlcm0gKnRoZXJtLCBpbnQgKnZhbCkKIHsKIAlz dHJ1Y3QgbnZrbV9kZXZpY2UgKmRldmljZSA9IHRoZXJtLT5zdWJkZXYuZGV2aWNlOwogCXN0cnVj dCBudmJpb3NfdGhlcm1fc2Vuc29yICpzZW5zb3IgPSAmdGhlcm0tPmJpb3Nfc2Vuc29yOwpAQCAt OTUsMTEgKzk1LDggQEAgbnY0MF90ZW1wX2dldChzdHJ1Y3QgbnZrbV90aGVybSAqdGhlcm0pCiAJ Y29yZV90ZW1wID0gY29yZV90ZW1wICsgc2Vuc29yLT5vZmZzZXRfbnVtIC8gc2Vuc29yLT5vZmZz ZXRfZGVuOwogCWNvcmVfdGVtcCA9IGNvcmVfdGVtcCArIHNlbnNvci0+b2Zmc2V0X2NvbnN0YW50 IC0gODsKIAotCS8qIHJlc2VydmUgbmVnYXRpdmUgdGVtcGVyYXR1cmVzIGZvciBlcnJvcnMgKi8K LQlpZiAoY29yZV90ZW1wIDwgMCkKLQkJY29yZV90ZW1wID0gMDsKLQotCXJldHVybiBjb3JlX3Rl bXA7CisJKnZhbCA9IGNvcmVfdGVtcDsKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludApkaWZm IC0tZ2l0IGEvZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvdGhlcm0vbnY1MC5jIGIvZHJtL25vdXZl YXUvbnZrbS9zdWJkZXYvdGhlcm0vbnY1MC5jCmluZGV4IDliNTdiNDMzLi42MmVjNDA2MyAxMDA2 NDQKLS0tIGEvZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvdGhlcm0vbnY1MC5jCisrKyBiL2RybS9u b3V2ZWF1L252a20vc3ViZGV2L3RoZXJtL252NTAuYwpAQCAtMTI2LDcgKzEyNiw3IEBAIG52NTBf c2Vuc29yX3NldHVwKHN0cnVjdCBudmttX3RoZXJtICp0aGVybSkKIH0KIAogc3RhdGljIGludAot bnY1MF90ZW1wX2dldChzdHJ1Y3QgbnZrbV90aGVybSAqdGhlcm0pCitudjUwX3RlbXBfZ2V0KHN0 cnVjdCBudmttX3RoZXJtICp0aGVybSwgaW50ICp2YWwpCiB7CiAJc3RydWN0IG52a21fZGV2aWNl ICpkZXZpY2UgPSB0aGVybS0+c3ViZGV2LmRldmljZTsKIAlzdHJ1Y3QgbnZiaW9zX3RoZXJtX3Nl bnNvciAqc2Vuc29yID0gJnRoZXJtLT5iaW9zX3NlbnNvcjsKQEAgLTE0MywxMSArMTQzLDggQEAg bnY1MF90ZW1wX2dldChzdHJ1Y3QgbnZrbV90aGVybSAqdGhlcm0pCiAJY29yZV90ZW1wID0gY29y ZV90ZW1wICsgc2Vuc29yLT5vZmZzZXRfbnVtIC8gc2Vuc29yLT5vZmZzZXRfZGVuOwogCWNvcmVf dGVtcCA9IGNvcmVfdGVtcCArIHNlbnNvci0+b2Zmc2V0X2NvbnN0YW50IC0gODsKIAotCS8qIHJl c2VydmUgbmVnYXRpdmUgdGVtcGVyYXR1cmVzIGZvciBlcnJvcnMgKi8KLQlpZiAoY29yZV90ZW1w IDwgMCkKLQkJY29yZV90ZW1wID0gMDsKLQotCXJldHVybiBjb3JlX3RlbXA7CisJKnZhbCA9IGNv cmVfdGVtcDsKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIHZvaWQKZGlmZiAtLWdpdCBhL2RybS9u b3V2ZWF1L252a20vc3ViZGV2L3RoZXJtL3ByaXYuaCBiL2RybS9ub3V2ZWF1L252a20vc3ViZGV2 L3RoZXJtL3ByaXYuaAppbmRleCAxZjQ2ZTM3MS4uYjMyNWVjNWYgMTAwNjQ0Ci0tLSBhL2RybS9u b3V2ZWF1L252a20vc3ViZGV2L3RoZXJtL3ByaXYuaAorKysgYi9kcm0vbm91dmVhdS9udmttL3N1 YmRldi90aGVybS9wcml2LmgKQEAgLTkxLDcgKzkxLDcgQEAgc3RydWN0IG52a21fdGhlcm1fZnVu YyB7CiAJaW50ICgqcHdtX3NldCkoc3RydWN0IG52a21fdGhlcm0gKiwgaW50IGxpbmUsIHUzMiwg dTMyKTsKIAlpbnQgKCpwd21fY2xvY2spKHN0cnVjdCBudmttX3RoZXJtICosIGludCBsaW5lKTsK IAotCWludCAoKnRlbXBfZ2V0KShzdHJ1Y3QgbnZrbV90aGVybSAqKTsKKwlpbnQgKCp0ZW1wX2dl dCkoc3RydWN0IG52a21fdGhlcm0gKiwgaW50ICopOwogCiAJaW50ICgqZmFuX3NlbnNlKShzdHJ1 Y3QgbnZrbV90aGVybSAqKTsKIApAQCAtMTA1LDcgKzEwNSw3IEBAIGludCAgbnY1MF9mYW5fcHdt X2dldChzdHJ1Y3QgbnZrbV90aGVybSAqLCBpbnQsIHUzMiAqLCB1MzIgKik7CiBpbnQgIG52NTBf ZmFuX3B3bV9zZXQoc3RydWN0IG52a21fdGhlcm0gKiwgaW50LCB1MzIsIHUzMik7CiBpbnQgIG52 NTBfZmFuX3B3bV9jbG9jayhzdHJ1Y3QgbnZrbV90aGVybSAqLCBpbnQpOwogCi1pbnQgIGc4NF90 ZW1wX2dldChzdHJ1Y3QgbnZrbV90aGVybSAqKTsKK2ludCAgZzg0X3RlbXBfZ2V0KHN0cnVjdCBu dmttX3RoZXJtICosIGludCAqKTsKIHZvaWQgZzg0X3NlbnNvcl9zZXR1cChzdHJ1Y3QgbnZrbV90 aGVybSAqKTsKIHZvaWQgZzg0X3RoZXJtX2Zpbmkoc3RydWN0IG52a21fdGhlcm0gKik7CiAKZGlm ZiAtLWdpdCBhL2RybS9ub3V2ZWF1L252a20vc3ViZGV2L3RoZXJtL3RlbXAuYyBiL2RybS9ub3V2 ZWF1L252a20vc3ViZGV2L3RoZXJtL3RlbXAuYwppbmRleCBkZGIyYjJjNi4uNWVjMmRmYjMgMTAw NjQ0Ci0tLSBhL2RybS9ub3V2ZWF1L252a20vc3ViZGV2L3RoZXJtL3RlbXAuYworKysgYi9kcm0v bm91dmVhdS9udmttL3N1YmRldi90aGVybS90ZW1wLmMKQEAgLTg2LDcgKzg2LDEwIEBAIG52a21f dGhlcm1fc2Vuc29yX2V2ZW50KHN0cnVjdCBudmttX3RoZXJtICp0aGVybSwgZW51bSBudmttX3Ro ZXJtX3RocnMgdGhycywKIAlzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHRocmVzaG9sZHNbXSA9 IHsKIAkJImZhbmJvb3N0IiwgImRvd25jbG9jayIsICJjcml0aWNhbCIsICJzaHV0ZG93biIKIAl9 OwotCWludCB0ZW1wZXJhdHVyZSA9IHRoZXJtLT5mdW5jLT50ZW1wX2dldCh0aGVybSk7CisJaW50 IHRlbXBlcmF0dXJlOworCisJaWYgKHRoZXJtLT5mdW5jLT50ZW1wX2dldCh0aGVybSwgJnRlbXBl cmF0dXJlKSA8IDApCisJCXJldHVybjsKIAogCWlmICh0aHJzIDwgMCB8fCB0aHJzID4gMykKIAkJ cmV0dXJuOwpAQCAtMTQwLDcgKzE0MywxMCBAQCBudmttX3RoZXJtX3RocmVzaG9sZF9oeXN0X3Bv bGxpbmcoc3RydWN0IG52a21fdGhlcm0gKnRoZXJtLAogewogCWVudW0gbnZrbV90aGVybV90aHJz X2RpcmVjdGlvbiBkaXJlY3Rpb247CiAJZW51bSBudmttX3RoZXJtX3RocnNfc3RhdGUgcHJldl9z dGF0ZSwgbmV3X3N0YXRlOwotCWludCB0ZW1wID0gdGhlcm0tPmZ1bmMtPnRlbXBfZ2V0KHRoZXJt KTsKKwlpbnQgdGVtcDsKKworCWlmICh0aGVybS0+ZnVuYy0+dGVtcF9nZXQodGhlcm0sICZ0ZW1w KSA8IDApCisJCXJldHVybjsKIAogCXByZXZfc3RhdGUgPSBudmttX3RoZXJtX3NlbnNvcl9nZXRf dGhyZXNob2xkX3N0YXRlKHRoZXJtLCB0aHJzX25hbWUpOwogCkBAIC0xNjYsNiArMTcyLDcgQEAg YWxhcm1fdGltZXJfY2FsbGJhY2soc3RydWN0IG52a21fYWxhcm0gKmFsYXJtKQogCXN0cnVjdCBu dmJpb3NfdGhlcm1fc2Vuc29yICpzZW5zb3IgPSAmdGhlcm0tPmJpb3Nfc2Vuc29yOwogCXN0cnVj dCBudmttX3RpbWVyICp0bXIgPSB0aGVybS0+c3ViZGV2LmRldmljZS0+dGltZXI7CiAJdW5zaWdu ZWQgbG9uZyBmbGFnczsKKwlpbnQgdmFsOwogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJnRoZXJtLT5z ZW5zb3IuYWxhcm1fcHJvZ3JhbV9sb2NrLCBmbGFncyk7CiAKQEAgLTE4NSw3ICsxOTIsNyBAQCBh bGFybV90aW1lcl9jYWxsYmFjayhzdHJ1Y3QgbnZrbV9hbGFybSAqYWxhcm0pCiAJc3Bpbl91bmxv Y2tfaXJxcmVzdG9yZSgmdGhlcm0tPnNlbnNvci5hbGFybV9wcm9ncmFtX2xvY2ssIGZsYWdzKTsK IAogCS8qIHNjaGVkdWxlIHRoZSBuZXh0IHBvbGwgaW4gb25lIHNlY29uZCAqLwotCWlmICh0aGVy bS0+ZnVuYy0+dGVtcF9nZXQodGhlcm0pID49IDApCisJaWYgKHRoZXJtLT5mdW5jLT50ZW1wX2dl dCh0aGVybSwgJnZhbCkgPj0gMCkKIAkJbnZrbV90aW1lcl9hbGFybSh0bXIsIDEwMDAwMDAwMDBV TEwsIGFsYXJtKTsKIH0KIApAQCAtMjI3LDkgKzIzNCwxMCBAQCBudmttX3RoZXJtX3NlbnNvcl9m aW5pKHN0cnVjdCBudmttX3RoZXJtICp0aGVybSwgYm9vbCBzdXNwZW5kKQogdm9pZAogbnZrbV90 aGVybV9zZW5zb3JfcHJlaW5pdChzdHJ1Y3QgbnZrbV90aGVybSAqdGhlcm0pCiB7CisJaW50IHZh bDsKIAljb25zdCBjaGFyICpzZW5zb3JfYXZhaWwgPSAieWVzIjsKIAotCWlmICh0aGVybS0+ZnVu Yy0+dGVtcF9nZXQodGhlcm0pIDwgMCkKKwlpZiAodGhlcm0tPmZ1bmMtPnRlbXBfZ2V0KHRoZXJt LCAmdmFsKSA8IDApCiAJCXNlbnNvcl9hdmFpbCA9ICJubyI7CiAKIAludmttX2RlYnVnKCZ0aGVy bS0+c3ViZGV2LCAiaW50ZXJuYWwgc2Vuc29yOiAlc1xuIiwgc2Vuc29yX2F2YWlsKTsKLS0gCjIu MTQuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTm91 dmVhdSBtYWlsaW5nIGxpc3QKTm91dmVhdUBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9ub3V2ZWF1Cg==