From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: [PATCH] drm/amd/powerplay: return 0 when interface not implement on some asic. Date: Mon, 2 May 2016 16:00:46 -0400 Message-ID: <1462219259-29806-34-git-send-email-alexander.deucher@amd.com> References: <1462219259-29806-1-git-send-email-alexander.deucher@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qg0-x22c.google.com (mail-qg0-x22c.google.com [IPv6:2607:f8b0:400d:c04::22c]) by gabe.freedesktop.org (Postfix) with ESMTPS id CBC9B6E63F for ; Mon, 2 May 2016 20:01:26 +0000 (UTC) Received: by mail-qg0-x22c.google.com with SMTP id f92so74370450qgf.0 for ; Mon, 02 May 2016 13:01:26 -0700 (PDT) In-Reply-To: <1462219259-29806-1-git-send-email-alexander.deucher@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Alex Deucher , Rex Zhu List-Id: dri-devel@lists.freedesktop.org RnJvbTogUmV4IFpodSA8UmV4LlpodUBhbWQuY29tPgoKRG9uJ3QgZmFpbCBpZiBjZXJ0YWluIG9w dGlvbmFsIGludGVyZmFjZSBjYWxsYmFja3MgYXJlIG1pc3NpbmcuCgpTaWduZWQtb2ZmLWJ5OiBS ZXggWmh1IDxSZXguWmh1QGFtZC5jb20+ClJldmlld2VkLWJ5OiBBbGV4IERldWNoZXIgPGFsZXhh bmRlci5kZXVjaGVyQGFtZC5jb20+ClNpZ25lZC1vZmYtYnk6IEFsZXggRGV1Y2hlciA8YWxleGFu ZGVyLmRldWNoZXJAYW1kLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9h bWRfcG93ZXJwbGF5LmMgfCAxNjkgKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAxMTMgaW5zZXJ0aW9ucygrKSwgNTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvYW1kX3Bvd2VycGxheS5jIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9wb3dlcnBsYXkvYW1kX3Bvd2VycGxheS5jCmluZGV4IDMyYTZhNmYuLmNlOGQ5 YmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2FtZF9wb3dlcnBs YXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9hbWRfcG93ZXJwbGF5LmMK QEAgLTM3LDYgKzM3LDEyIEBACiAJCQlyZXR1cm4gLUVJTlZBTDsJCQkJCVwKIAl9IHdoaWxlICgw KQogCisjZGVmaW5lIFBQX0NIRUNLX0hXKGh3bWdyKQkJCQkJCVwKKwlkbyB7CQkJCQkJCQlcCisJ CWlmICgoaHdtZ3IpID09IE5VTEwgfHwgKGh3bWdyKS0+aHdtZ3JfZnVuYyA9PSBOVUxMKQlcCisJ CQlyZXR1cm4gLUVJTlZBTDsJCQkJCVwKKwl9IHdoaWxlICgwKQorCiBzdGF0aWMgaW50IHBwX2Vh cmx5X2luaXQodm9pZCAqaGFuZGxlKQogewogCXJldHVybiAwOwpAQCAtNTQsOCArNjAsOSBAQCBz dGF0aWMgaW50IHBwX3N3X2luaXQodm9pZCAqaGFuZGxlKQogCXBwX2hhbmRsZSA9IChzdHJ1Y3Qg cHBfaW5zdGFuY2UgKiloYW5kbGU7CiAJaHdtZ3IgPSBwcF9oYW5kbGUtPmh3bWdyOwogCi0JaWYg KGh3bWdyID09IE5VTEwgfHwgaHdtZ3ItPnBwdGFibGVfZnVuYyA9PSBOVUxMIHx8Ci0JICAgIGh3 bWdyLT5od21ncl9mdW5jID09IE5VTEwgfHwKKwlQUF9DSEVDS19IVyhod21ncik7CisKKwlpZiAo aHdtZ3ItPnBwdGFibGVfZnVuYyA9PSBOVUxMIHx8CiAJICAgIGh3bWdyLT5wcHRhYmxlX2Z1bmMt PnBwdGFibGVfaW5pdCA9PSBOVUxMIHx8CiAJICAgIGh3bWdyLT5od21ncl9mdW5jLT5iYWNrZW5k X2luaXQgPT0gTlVMTCkKIAkJcmV0dXJuIC1FSU5WQUw7CkBAIC02Niw5ICs3Myw5IEBAIHN0YXRp YyBpbnQgcHBfc3dfaW5pdCh2b2lkICpoYW5kbGUpCiAJCXJldCA9IGh3bWdyLT5od21ncl9mdW5j LT5iYWNrZW5kX2luaXQoaHdtZ3IpOwogCiAJaWYgKHJldCkKLQkJcHJpbnRrKCJhbWRncHU6IHBv d2VycGxheSBpbml0aWFsaXphdGlvbiBmYWlsZWRcbiIpOworCQlwcmludGsoS0VSTl9FUlIgImFt ZGdwdTogcG93ZXJwbGF5IGluaXRpYWxpemF0aW9uIGZhaWxlZFxuIik7CiAJZWxzZQotCQlwcmlu dGsoImFtZGdwdTogcG93ZXJwbGF5IGluaXRpYWxpemVkXG4iKTsKKwkJcHJpbnRrKEtFUk5fSU5G TyAiYW1kZ3B1OiBwb3dlcnBsYXkgaW5pdGlhbGl6ZWRcbiIpOwogCiAJcmV0dXJuIHJldDsKIH0K QEAgLTg1LDggKzkyLDkgQEAgc3RhdGljIGludCBwcF9zd19maW5pKHZvaWQgKmhhbmRsZSkKIAlw cF9oYW5kbGUgPSAoc3RydWN0IHBwX2luc3RhbmNlICopaGFuZGxlOwogCWh3bWdyID0gcHBfaGFu ZGxlLT5od21ncjsKIAotCWlmIChod21nciAhPSBOVUxMIHx8IGh3bWdyLT5od21ncl9mdW5jICE9 IE5VTEwgfHwKLQkgICAgaHdtZ3ItPmh3bWdyX2Z1bmMtPmJhY2tlbmRfZmluaSAhPSBOVUxMKQor CVBQX0NIRUNLX0hXKGh3bWdyKTsKKworCWlmIChod21nci0+aHdtZ3JfZnVuYy0+YmFja2VuZF9m aW5pICE9IE5VTEwpCiAJCXJldCA9IGh3bWdyLT5od21ncl9mdW5jLT5iYWNrZW5kX2ZpbmkoaHdt Z3IpOwogCiAJcmV0dXJuIHJldDsKQEAgLTE4OCwxMSArMTk2LDEyIEBAIHN0YXRpYyBpbnQgcHBf c2V0X2Nsb2NrZ2F0aW5nX3N0YXRlKHZvaWQgKmhhbmRsZSwKIAogCWh3bWdyID0gKChzdHJ1Y3Qg cHBfaW5zdGFuY2UgKiloYW5kbGUpLT5od21ncjsKIAotCWlmIChod21nciA9PSBOVUxMIHx8IGh3 bWdyLT5od21ncl9mdW5jID09IE5VTEwpCi0JCQlyZXR1cm4gLUVJTlZBTDsKKwlQUF9DSEVDS19I Vyhod21ncik7CiAKLQlpZiAoaHdtZ3ItPmh3bWdyX2Z1bmMtPnVwZGF0ZV9jbG9ja19nYXRpbmdz ID09IE5VTEwpCisJaWYgKGh3bWdyLT5od21ncl9mdW5jLT51cGRhdGVfY2xvY2tfZ2F0aW5ncyA9 PSBOVUxMKSB7CisJCXByaW50ayhLRVJOX0lORk8gIiVzIHdhcyBub3QgaW1wbGVtZW50ZWQuXG4i LCBfX2Z1bmNfXyk7CiAJCXJldHVybiAwOworCX0KIAogCWlmIChzdGF0ZSA9PSBBTURfQ0dfU1RB VEVfVU5HQVRFKQogCQlwcF9zdGF0ZSA9IDA7CkBAIC0yNzYsOSArMjg1LDEyIEBAIHN0YXRpYyBp bnQgcHBfc2V0X3Bvd2VyZ2F0aW5nX3N0YXRlKHZvaWQgKmhhbmRsZSwKIAogCWh3bWdyID0gKChz dHJ1Y3QgcHBfaW5zdGFuY2UgKiloYW5kbGUpLT5od21ncjsKIAotCWlmIChod21nciA9PSBOVUxM IHx8IGh3bWdyLT5od21ncl9mdW5jID09IE5VTEwgfHwKLQkJCWh3bWdyLT5od21ncl9mdW5jLT5l bmFibGVfcGVyX2N1X3Bvd2VyX2dhdGluZyA9PSBOVUxMKQotCQkJCXJldHVybiAtRUlOVkFMOwor CVBQX0NIRUNLX0hXKGh3bWdyKTsKKworCWlmIChod21nci0+aHdtZ3JfZnVuYy0+ZW5hYmxlX3Bl cl9jdV9wb3dlcl9nYXRpbmcgPT0gTlVMTCkgeworCQlwcmludGsoS0VSTl9JTkZPICIlcyB3YXMg bm90IGltcGxlbWVudGVkLlxuIiwgX19mdW5jX18pOworCQlyZXR1cm4gMDsKKwl9CiAKIAkvKiBF bmFibGUvZGlzYWJsZSBHRlggcGVyIGN1IHBvd2VyZ2F0aW5nIHRocm91Z2ggU01VICovCiAJcmV0 dXJuIGh3bWdyLT5od21ncl9mdW5jLT5lbmFibGVfcGVyX2N1X3Bvd2VyX2dhdGluZyhod21nciwK QEAgLTM3MSw5ICszODMsMTIgQEAgc3RhdGljIGludCBwcF9kcG1fZm9yY2VfcGVyZm9ybWFuY2Vf bGV2ZWwodm9pZCAqaGFuZGxlLAogCiAJaHdtZ3IgPSBwcF9oYW5kbGUtPmh3bWdyOwogCi0JaWYg KGh3bWdyID09IE5VTEwgfHwgaHdtZ3ItPmh3bWdyX2Z1bmMgPT0gTlVMTCB8fAotCSAgICBod21n ci0+aHdtZ3JfZnVuYy0+Zm9yY2VfZHBtX2xldmVsID09IE5VTEwpCi0JCXJldHVybiAtRUlOVkFM OworCVBQX0NIRUNLX0hXKGh3bWdyKTsKKworCWlmIChod21nci0+aHdtZ3JfZnVuYy0+Zm9yY2Vf ZHBtX2xldmVsID09IE5VTEwpIHsKKwkJcHJpbnRrKEtFUk5fSU5GTyAiJXMgd2FzIG5vdCBpbXBs ZW1lbnRlZC5cbiIsIF9fZnVuY19fKTsKKwkJcmV0dXJuIDA7CisJfQogCiAJaHdtZ3ItPmh3bWdy X2Z1bmMtPmZvcmNlX2RwbV9sZXZlbChod21nciwgbGV2ZWwpOwogCkBAIC00MDUsOSArNDIwLDEy IEBAIHN0YXRpYyBpbnQgcHBfZHBtX2dldF9zY2xrKHZvaWQgKmhhbmRsZSwgYm9vbCBsb3cpCiAK IAlod21nciA9ICgoc3RydWN0IHBwX2luc3RhbmNlICopaGFuZGxlKS0+aHdtZ3I7CiAKLQlpZiAo aHdtZ3IgPT0gTlVMTCB8fCBod21nci0+aHdtZ3JfZnVuYyA9PSBOVUxMIHx8Ci0JICAgIGh3bWdy LT5od21ncl9mdW5jLT5nZXRfc2NsayA9PSBOVUxMKQotCQlyZXR1cm4gLUVJTlZBTDsKKwlQUF9D SEVDS19IVyhod21ncik7CisKKwlpZiAoaHdtZ3ItPmh3bWdyX2Z1bmMtPmdldF9zY2xrID09IE5V TEwpIHsKKwkJcHJpbnRrKEtFUk5fSU5GTyAiJXMgd2FzIG5vdCBpbXBsZW1lbnRlZC5cbiIsIF9f ZnVuY19fKTsKKwkJcmV0dXJuIDA7CisJfQogCiAJcmV0dXJuIGh3bWdyLT5od21ncl9mdW5jLT5n ZXRfc2Nsayhod21nciwgbG93KTsKIH0KQEAgLTQyMSw5ICs0MzksMTIgQEAgc3RhdGljIGludCBw cF9kcG1fZ2V0X21jbGsodm9pZCAqaGFuZGxlLCBib29sIGxvdykKIAogCWh3bWdyID0gKChzdHJ1 Y3QgcHBfaW5zdGFuY2UgKiloYW5kbGUpLT5od21ncjsKIAotCWlmIChod21nciA9PSBOVUxMIHx8 IGh3bWdyLT5od21ncl9mdW5jID09IE5VTEwgfHwKLQkgICAgaHdtZ3ItPmh3bWdyX2Z1bmMtPmdl dF9tY2xrID09IE5VTEwpCi0JCXJldHVybiAtRUlOVkFMOworCVBQX0NIRUNLX0hXKGh3bWdyKTsK KworCWlmIChod21nci0+aHdtZ3JfZnVuYy0+Z2V0X21jbGsgPT0gTlVMTCkgeworCQlwcmludGso S0VSTl9JTkZPICIlcyB3YXMgbm90IGltcGxlbWVudGVkLlxuIiwgX19mdW5jX18pOworCQlyZXR1 cm4gMDsKKwl9CiAKIAlyZXR1cm4gaHdtZ3ItPmh3bWdyX2Z1bmMtPmdldF9tY2xrKGh3bWdyLCBs b3cpOwogfQpAQCAtNDM3LDkgKzQ1OCwxMiBAQCBzdGF0aWMgaW50IHBwX2RwbV9wb3dlcmdhdGVf dmNlKHZvaWQgKmhhbmRsZSwgYm9vbCBnYXRlKQogCiAJaHdtZ3IgPSAoKHN0cnVjdCBwcF9pbnN0 YW5jZSAqKWhhbmRsZSktPmh3bWdyOwogCi0JaWYgKGh3bWdyID09IE5VTEwgfHwgaHdtZ3ItPmh3 bWdyX2Z1bmMgPT0gTlVMTCB8fAotCSAgICBod21nci0+aHdtZ3JfZnVuYy0+cG93ZXJnYXRlX3Zj ZSA9PSBOVUxMKQotCQlyZXR1cm4gLUVJTlZBTDsKKwlQUF9DSEVDS19IVyhod21ncik7CisKKwlp ZiAoaHdtZ3ItPmh3bWdyX2Z1bmMtPnBvd2VyZ2F0ZV92Y2UgPT0gTlVMTCkgeworCQlwcmludGso S0VSTl9JTkZPICIlcyB3YXMgbm90IGltcGxlbWVudGVkLlxuIiwgX19mdW5jX18pOworCQlyZXR1 cm4gMDsKKwl9CiAKIAlyZXR1cm4gaHdtZ3ItPmh3bWdyX2Z1bmMtPnBvd2VyZ2F0ZV92Y2UoaHdt Z3IsIGdhdGUpOwogfQpAQCAtNDUzLDkgKzQ3NywxMiBAQCBzdGF0aWMgaW50IHBwX2RwbV9wb3dl cmdhdGVfdXZkKHZvaWQgKmhhbmRsZSwgYm9vbCBnYXRlKQogCiAJaHdtZ3IgPSAoKHN0cnVjdCBw cF9pbnN0YW5jZSAqKWhhbmRsZSktPmh3bWdyOwogCi0JaWYgKGh3bWdyID09IE5VTEwgfHwgaHdt Z3ItPmh3bWdyX2Z1bmMgPT0gTlVMTCB8fAotCSAgICBod21nci0+aHdtZ3JfZnVuYy0+cG93ZXJn YXRlX3V2ZCA9PSBOVUxMKQotCQlyZXR1cm4gLUVJTlZBTDsKKwlQUF9DSEVDS19IVyhod21ncik7 CisKKwlpZiAoaHdtZ3ItPmh3bWdyX2Z1bmMtPnBvd2VyZ2F0ZV91dmQgPT0gTlVMTCkgeworCQlw cmludGsoS0VSTl9JTkZPICIlcyB3YXMgbm90IGltcGxlbWVudGVkLlxuIiwgX19mdW5jX18pOwor CQlyZXR1cm4gMDsKKwl9CiAKIAlyZXR1cm4gaHdtZ3ItPmh3bWdyX2Z1bmMtPnBvd2VyZ2F0ZV91 dmQoaHdtZ3IsIGdhdGUpOwogfQpAQCAtNTUxLDkgKzU3OCwxMyBAQCBwcF9kZWJ1Z2ZzX3ByaW50 X2N1cnJlbnRfcGVyZm9ybWFuY2VfbGV2ZWwodm9pZCAqaGFuZGxlLAogCiAJaHdtZ3IgPSAoKHN0 cnVjdCBwcF9pbnN0YW5jZSAqKWhhbmRsZSktPmh3bWdyOwogCi0JaWYgKGh3bWdyID09IE5VTEwg fHwgaHdtZ3ItPmh3bWdyX2Z1bmMgPT0gTlVMTCB8fAotCSAgaHdtZ3ItPmh3bWdyX2Z1bmMtPnBy aW50X2N1cnJlbnRfcGVyZm9yY2VfbGV2ZWwgPT0gTlVMTCkKKwlpZiAoaHdtZ3IgPT0gTlVMTCB8 fCBod21nci0+aHdtZ3JfZnVuYyA9PSBOVUxMKQorCQlyZXR1cm47CisKKwlpZiAoaHdtZ3ItPmh3 bWdyX2Z1bmMtPnByaW50X2N1cnJlbnRfcGVyZm9yY2VfbGV2ZWwgPT0gTlVMTCkgeworCQlwcmlu dGsoS0VSTl9JTkZPICIlcyB3YXMgbm90IGltcGxlbWVudGVkLlxuIiwgX19mdW5jX18pOwogCQly ZXR1cm47CisJfQogCiAJaHdtZ3ItPmh3bWdyX2Z1bmMtPnByaW50X2N1cnJlbnRfcGVyZm9yY2Vf bGV2ZWwoaHdtZ3IsIG0pOwogfQpAQCAtNTY3LDkgKzU5OCwxMiBAQCBzdGF0aWMgaW50IHBwX2Rw bV9zZXRfZmFuX2NvbnRyb2xfbW9kZSh2b2lkICpoYW5kbGUsIHVpbnQzMl90IG1vZGUpCiAKIAlo d21nciA9ICgoc3RydWN0IHBwX2luc3RhbmNlICopaGFuZGxlKS0+aHdtZ3I7CiAKLQlpZiAoaHdt Z3IgPT0gTlVMTCB8fCBod21nci0+aHdtZ3JfZnVuYyA9PSBOVUxMIHx8Ci0JICBod21nci0+aHdt Z3JfZnVuYy0+c2V0X2Zhbl9jb250cm9sX21vZGUgPT0gTlVMTCkKLQkJcmV0dXJuIC1FSU5WQUw7 CisJUFBfQ0hFQ0tfSFcoaHdtZ3IpOworCisJaWYgKGh3bWdyLT5od21ncl9mdW5jLT5zZXRfZmFu X2NvbnRyb2xfbW9kZSA9PSBOVUxMKSB7CisJCXByaW50ayhLRVJOX0lORk8gIiVzIHdhcyBub3Qg aW1wbGVtZW50ZWQuXG4iLCBfX2Z1bmNfXyk7CisJCXJldHVybiAwOworCX0KIAogCXJldHVybiBo d21nci0+aHdtZ3JfZnVuYy0+c2V0X2Zhbl9jb250cm9sX21vZGUoaHdtZ3IsIG1vZGUpOwogfQpA QCAtNTgzLDkgKzYxNywxMiBAQCBzdGF0aWMgaW50IHBwX2RwbV9nZXRfZmFuX2NvbnRyb2xfbW9k ZSh2b2lkICpoYW5kbGUpCiAKIAlod21nciA9ICgoc3RydWN0IHBwX2luc3RhbmNlICopaGFuZGxl KS0+aHdtZ3I7CiAKLQlpZiAoaHdtZ3IgPT0gTlVMTCB8fCBod21nci0+aHdtZ3JfZnVuYyA9PSBO VUxMIHx8Ci0JICBod21nci0+aHdtZ3JfZnVuYy0+Z2V0X2Zhbl9jb250cm9sX21vZGUgPT0gTlVM TCkKLQkJcmV0dXJuIC1FSU5WQUw7CisJUFBfQ0hFQ0tfSFcoaHdtZ3IpOworCisJaWYgKGh3bWdy LT5od21ncl9mdW5jLT5nZXRfZmFuX2NvbnRyb2xfbW9kZSA9PSBOVUxMKSB7CisJCXByaW50ayhL RVJOX0lORk8gIiVzIHdhcyBub3QgaW1wbGVtZW50ZWQuXG4iLCBfX2Z1bmNfXyk7CisJCXJldHVy biAwOworCX0KIAogCXJldHVybiBod21nci0+aHdtZ3JfZnVuYy0+Z2V0X2Zhbl9jb250cm9sX21v ZGUoaHdtZ3IpOwogfQpAQCAtNTk5LDkgKzYzNiwxMiBAQCBzdGF0aWMgaW50IHBwX2RwbV9zZXRf ZmFuX3NwZWVkX3BlcmNlbnQodm9pZCAqaGFuZGxlLCB1aW50MzJfdCBwZXJjZW50KQogCiAJaHdt Z3IgPSAoKHN0cnVjdCBwcF9pbnN0YW5jZSAqKWhhbmRsZSktPmh3bWdyOwogCi0JaWYgKGh3bWdy ID09IE5VTEwgfHwgaHdtZ3ItPmh3bWdyX2Z1bmMgPT0gTlVMTCB8fAotCSAgaHdtZ3ItPmh3bWdy X2Z1bmMtPnNldF9mYW5fc3BlZWRfcGVyY2VudCA9PSBOVUxMKQotCQlyZXR1cm4gLUVJTlZBTDsK KwlQUF9DSEVDS19IVyhod21ncik7CisKKwlpZiAoaHdtZ3ItPmh3bWdyX2Z1bmMtPnNldF9mYW5f c3BlZWRfcGVyY2VudCA9PSBOVUxMKSB7CisJCXByaW50ayhLRVJOX0lORk8gIiVzIHdhcyBub3Qg aW1wbGVtZW50ZWQuXG4iLCBfX2Z1bmNfXyk7CisJCXJldHVybiAwOworCX0KIAogCXJldHVybiBo d21nci0+aHdtZ3JfZnVuYy0+c2V0X2Zhbl9zcGVlZF9wZXJjZW50KGh3bWdyLCBwZXJjZW50KTsK IH0KQEAgLTYxNSw5ICs2NTUsMTIgQEAgc3RhdGljIGludCBwcF9kcG1fZ2V0X2Zhbl9zcGVlZF9w ZXJjZW50KHZvaWQgKmhhbmRsZSwgdWludDMyX3QgKnNwZWVkKQogCiAJaHdtZ3IgPSAoKHN0cnVj dCBwcF9pbnN0YW5jZSAqKWhhbmRsZSktPmh3bWdyOwogCi0JaWYgKGh3bWdyID09IE5VTEwgfHwg aHdtZ3ItPmh3bWdyX2Z1bmMgPT0gTlVMTCB8fAotCSAgaHdtZ3ItPmh3bWdyX2Z1bmMtPmdldF9m YW5fc3BlZWRfcGVyY2VudCA9PSBOVUxMKQotCQlyZXR1cm4gLUVJTlZBTDsKKwlQUF9DSEVDS19I Vyhod21ncik7CisKKwlpZiAoaHdtZ3ItPmh3bWdyX2Z1bmMtPmdldF9mYW5fc3BlZWRfcGVyY2Vu dCA9PSBOVUxMKSB7CisJCXByaW50ayhLRVJOX0lORk8gIiVzIHdhcyBub3QgaW1wbGVtZW50ZWQu XG4iLCBfX2Z1bmNfXyk7CisJCXJldHVybiAwOworCX0KIAogCXJldHVybiBod21nci0+aHdtZ3Jf ZnVuYy0+Z2V0X2Zhbl9zcGVlZF9wZXJjZW50KGh3bWdyLCBzcGVlZCk7CiB9CkBAIC02MzEsOSAr Njc0LDEyIEBAIHN0YXRpYyBpbnQgcHBfZHBtX2dldF90ZW1wZXJhdHVyZSh2b2lkICpoYW5kbGUp CiAKIAlod21nciA9ICgoc3RydWN0IHBwX2luc3RhbmNlICopaGFuZGxlKS0+aHdtZ3I7CiAKLQlp ZiAoaHdtZ3IgPT0gTlVMTCB8fCBod21nci0+aHdtZ3JfZnVuYyA9PSBOVUxMIHx8Ci0JICBod21n ci0+aHdtZ3JfZnVuYy0+Z2V0X3RlbXBlcmF0dXJlID09IE5VTEwpCi0JCXJldHVybiAtRUlOVkFM OworCVBQX0NIRUNLX0hXKGh3bWdyKTsKKworCWlmIChod21nci0+aHdtZ3JfZnVuYy0+Z2V0X3Rl bXBlcmF0dXJlID09IE5VTEwpIHsKKwkJcHJpbnRrKEtFUk5fSU5GTyAiJXMgd2FzIG5vdCBpbXBs ZW1lbnRlZC5cbiIsIF9fZnVuY19fKTsKKwkJcmV0dXJuIDA7CisJfQogCiAJcmV0dXJuIGh3bWdy LT5od21ncl9mdW5jLT5nZXRfdGVtcGVyYXR1cmUoaHdtZ3IpOwogfQpAQCAtNjg3LDkgKzczMywx MiBAQCBzdGF0aWMgaW50IHBwX2RwbV9nZXRfcHBfdGFibGUodm9pZCAqaGFuZGxlLCBjaGFyICoq dGFibGUpCiAKIAlod21nciA9ICgoc3RydWN0IHBwX2luc3RhbmNlICopaGFuZGxlKS0+aHdtZ3I7 CiAKLQlpZiAoaHdtZ3IgPT0gTlVMTCB8fCBod21nci0+aHdtZ3JfZnVuYyA9PSBOVUxMIHx8Ci0J CWh3bWdyLT5od21ncl9mdW5jLT5nZXRfcHBfdGFibGUgPT0gTlVMTCkKLQkJcmV0dXJuIC1FSU5W QUw7CisJUFBfQ0hFQ0tfSFcoaHdtZ3IpOworCisJaWYgKGh3bWdyLT5od21ncl9mdW5jLT5nZXRf cHBfdGFibGUgPT0gTlVMTCkgeworCQlwcmludGsoS0VSTl9JTkZPICIlcyB3YXMgbm90IGltcGxl bWVudGVkLlxuIiwgX19mdW5jX18pOworCQlyZXR1cm4gMDsKKwl9CiAKIAlyZXR1cm4gaHdtZ3It Pmh3bWdyX2Z1bmMtPmdldF9wcF90YWJsZShod21nciwgdGFibGUpOwogfQpAQCAtNzAzLDkgKzc1 MiwxMiBAQCBzdGF0aWMgaW50IHBwX2RwbV9zZXRfcHBfdGFibGUodm9pZCAqaGFuZGxlLCBjb25z dCBjaGFyICpidWYsIHNpemVfdCBzaXplKQogCiAJaHdtZ3IgPSAoKHN0cnVjdCBwcF9pbnN0YW5j ZSAqKWhhbmRsZSktPmh3bWdyOwogCi0JaWYgKGh3bWdyID09IE5VTEwgfHwgaHdtZ3ItPmh3bWdy X2Z1bmMgPT0gTlVMTCB8fAotCQlod21nci0+aHdtZ3JfZnVuYy0+c2V0X3BwX3RhYmxlID09IE5V TEwpCi0JCXJldHVybiAtRUlOVkFMOworCVBQX0NIRUNLX0hXKGh3bWdyKTsKKworCWlmIChod21n ci0+aHdtZ3JfZnVuYy0+c2V0X3BwX3RhYmxlID09IE5VTEwpIHsKKwkJcHJpbnRrKEtFUk5fSU5G TyAiJXMgd2FzIG5vdCBpbXBsZW1lbnRlZC5cbiIsIF9fZnVuY19fKTsKKwkJcmV0dXJuIDA7CisJ fQogCiAJcmV0dXJuIGh3bWdyLT5od21ncl9mdW5jLT5zZXRfcHBfdGFibGUoaHdtZ3IsIGJ1Ziwg c2l6ZSk7CiB9CkBAIC03MjAsOSArNzcyLDEyIEBAIHN0YXRpYyBpbnQgcHBfZHBtX2ZvcmNlX2Ns b2NrX2xldmVsKHZvaWQgKmhhbmRsZSwKIAogCWh3bWdyID0gKChzdHJ1Y3QgcHBfaW5zdGFuY2Ug KiloYW5kbGUpLT5od21ncjsKIAotCWlmIChod21nciA9PSBOVUxMIHx8IGh3bWdyLT5od21ncl9m dW5jID09IE5VTEwgfHwKLQkJCWh3bWdyLT5od21ncl9mdW5jLT5mb3JjZV9jbG9ja19sZXZlbCA9 PSBOVUxMKQotCQlyZXR1cm4gLUVJTlZBTDsKKwlQUF9DSEVDS19IVyhod21ncik7CisKKwlpZiAo aHdtZ3ItPmh3bWdyX2Z1bmMtPmZvcmNlX2Nsb2NrX2xldmVsID09IE5VTEwpIHsKKwkJcHJpbnRr KEtFUk5fSU5GTyAiJXMgd2FzIG5vdCBpbXBsZW1lbnRlZC5cbiIsIF9fZnVuY19fKTsKKwkJcmV0 dXJuIDA7CisJfQogCiAJcmV0dXJuIGh3bWdyLT5od21ncl9mdW5jLT5mb3JjZV9jbG9ja19sZXZl bChod21nciwgdHlwZSwgbGV2ZWwpOwogfQpAQCAtNzM3LDEwICs3OTIsMTIgQEAgc3RhdGljIGlu dCBwcF9kcG1fcHJpbnRfY2xvY2tfbGV2ZWxzKHZvaWQgKmhhbmRsZSwKIAogCWh3bWdyID0gKChz dHJ1Y3QgcHBfaW5zdGFuY2UgKiloYW5kbGUpLT5od21ncjsKIAotCWlmIChod21nciA9PSBOVUxM IHx8IGh3bWdyLT5od21ncl9mdW5jID09IE5VTEwgfHwKLQkJCWh3bWdyLT5od21ncl9mdW5jLT5w cmludF9jbG9ja19sZXZlbHMgPT0gTlVMTCkKLQkJcmV0dXJuIC1FSU5WQUw7CisJUFBfQ0hFQ0tf SFcoaHdtZ3IpOwogCisJaWYgKGh3bWdyLT5od21ncl9mdW5jLT5wcmludF9jbG9ja19sZXZlbHMg PT0gTlVMTCkgeworCQlwcmludGsoS0VSTl9JTkZPICIlcyB3YXMgbm90IGltcGxlbWVudGVkLlxu IiwgX19mdW5jX18pOworCQlyZXR1cm4gMDsKKwl9CiAJcmV0dXJuIGh3bWdyLT5od21ncl9mdW5j LT5wcmludF9jbG9ja19sZXZlbHMoaHdtZ3IsIHR5cGUsIGJ1Zik7CiB9CiAKLS0gCjIuNS41Cgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwg bWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK