From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lionel Landwerlin Subject: [PATCH 6/8] drm/i915: reprogram NOA muxes on context switch when using perf Date: Wed, 25 Apr 2018 12:45:19 +0100 Message-ID: <20180425114521.7524-7-lionel.g.landwerlin@intel.com> References: <20180425114521.7524-1-lionel.g.landwerlin@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 ESMTPS id DD6D76E59E for ; Wed, 25 Apr 2018 11:46:41 +0000 (UTC) In-Reply-To: <20180425114521.7524-1-lionel.g.landwerlin@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 List-Id: intel-gfx@lists.freedesktop.org SWYgc29tZSBvZiB0aGUgY29udGV4dHMgc3VibWl0dGluZyB3b3JrbG9hZHMgdG8gdGhlIEdQVSBo YXZlIGJlZW4KY29uZmlndXJlZCB0byBzaHV0ZG93biBzbGljZXMvc3Vic2xpY2VzLCB3ZSBtaWdo dCBsb29zZSB0aGUgTk9BCmNvbmZpZ3VyYXRpb25zIHdyaXR0ZW4gaW4gdGhlIE5PQSBtdXhlcy4g V2UgbmVlZCB0byByZXByb2dyYW0gdGhlbSBhdApjb250ZXh0IHN3aXRjaC4KClNpZ25lZC1vZmYt Ynk6IExpb25lbCBMYW5kd2VybGluIDxsaW9uZWwuZy5sYW5kd2VybGluQGludGVsLmNvbT4KLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICB8ICAyICsKIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcGVyZi5jIHwgOTIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIHwgNzEgKysrKysrKysrKysrKysrKysr KysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaCB8ICAxICsKIDQgZmlsZXMg Y2hhbmdlZCwgMTUzIGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCmluZGV4IGZkZjcxMTY0ZWUyNC4uYjE1ZjFmYTQ0NTNhIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKQEAgLTMyNjMsNiArMzI2Myw4IEBAIGludCBpOTE1X3BlcmZfcmVtb3ZlX2Nv bmZpZ19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogdm9pZCBpOTE1 X29hX2luaXRfcmVnX3N0YXRlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAkJCSAg ICBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAogCQkJICAgIHVpbnQzMl90ICpyZWdfc3Rh dGUpOwordTMyIGk5MTVfb2FfZ2V0X3BlcmN0eF9iYl9zaXplKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSk7Cit1MzIgKmk5MTVfb2FfZW1pdF9wZXJjdHhfYmIoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lLCB1MzIgKmJhdGNoKTsKIAogLyogaTkxNV9nZW1fZXZpY3QuYyAqLwog aW50IF9fbXVzdF9jaGVjayBpOTE1X2dlbV9ldmljdF9zb21ldGhpbmcoc3RydWN0IGk5MTVfYWRk cmVzc19zcGFjZSAqdm0sCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Bl cmYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5jCmluZGV4IDJmYzljODVhMGQ5 OS4uZDE1OThmNTRlNjNiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Bl cmYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYwpAQCAtMTc1Miw2ICsx NzUyLDcxIEBAIHN0YXRpYyBpbnQgZ2VuOF9lbWl0X29hX2NvbmZpZyhzdHJ1Y3QgaTkxNV9yZXF1 ZXN0ICpycSwKIAlyZXR1cm4gMDsKIH0KIAorI2RlZmluZSBNQVhfTFJJX1NJWkUgKDEyNVUpCisK K3UzMiBpOTE1X29hX2dldF9wZXJjdHhfYmJfc2l6ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5p OTE1OworCXN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0gPSBkZXZfcHJpdi0+cGVyZi5v YS5leGNsdXNpdmVfc3RyZWFtOworCXN0cnVjdCBpOTE1X29hX2NvbmZpZyAqb2FfY29uZmlnOwor CXUzMiBuX2xyaTsKKworCS8qIFdlIG9ubHkgY2FyZSBhYm91dCBSQ1MuICovCisJaWYgKGVuZ2lu ZS0+aWQgIT0gUkNTKQorCQlyZXR1cm4gMDsKKworCS8qIFBlcmYgbm90IHN1cHBvcnRlZC4gKi8K KwlpZiAoIWRldl9wcml2LT5wZXJmLmluaXRpYWxpemVkKQorCQlyZXR1cm4gMDsKKworCS8qIE9B IG5vdCBjdXJyZW50bHkgY29uZmlndXJlZC4gKi8KKwlpZiAoIXN0cmVhbSkKKwkJcmV0dXJuIDA7 CisKKwlvYV9jb25maWcgPSBzdHJlYW0tPm9hX2NvbmZpZzsKKworCS8qIFZlcnkgdW5saWtlbHkg YnV0IHBvc3NpYmxlIHRoYXQgd2UgaGF2ZSBubyBtdXhlcyB0byBjb25maWd1cmUuICovCisJaWYg KCFvYV9jb25maWctPm11eF9yZWdzX2xlbikKKwkJcmV0dXJuIDA7CisKKwluX2xyaSA9IChvYV9j b25maWctPm11eF9yZWdzX2xlbiAvIE1BWF9MUklfU0laRSkgKworCQkob2FfY29uZmlnLT5tdXhf cmVnc19sZW4gJSBNQVhfTFJJX1NJWkUpICE9IDA7CisKKwkvKiBSZXR1cm4gdGhlIHNpemUgb2Yg TUlfTE9BRF9SRUdJU1RFUl9JTU1zICsgUElQRV9DT05UUk9MIC4gKi8KKwlyZXR1cm4gbl9scmkg KiA0ICsgb2FfY29uZmlnLT5tdXhfcmVnc19sZW4gKiA4ICsgMjQ7Cit9CisKK3UzMiAqaTkxNV9v YV9lbWl0X3BlcmN0eF9iYihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHUzMiAqYmF0 Y2gpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5pOTE1 OworCXN0cnVjdCBpOTE1X29hX2NvbmZpZyAqb2FfY29uZmlnOworCXUzMiBpLCBuX2xvYWRlZF9y ZWdzOworCisJaWYgKGk5MTVfb2FfZ2V0X3BlcmN0eF9iYl9zaXplKGVuZ2luZSkgPT0gMCkKKwkJ cmV0dXJuIGJhdGNoOworCisJb2FfY29uZmlnID0gZGV2X3ByaXYtPnBlcmYub2EuZXhjbHVzaXZl X3N0cmVhbS0+b2FfY29uZmlnOworCisJbl9sb2FkZWRfcmVncyA9IDA7CisJZm9yIChpID0gMDsg aSA8IG9hX2NvbmZpZy0+bXV4X3JlZ3NfbGVuOyBpKyspIHsKKwkJaWYgKChuX2xvYWRlZF9yZWdz ICUgTUFYX0xSSV9TSVpFKSA9PSAwKSB7CisJCQl1MzIgbl9scmkgPSBtaW4ob2FfY29uZmlnLT5t dXhfcmVnc19sZW4gLSBuX2xvYWRlZF9yZWdzLAorCQkJCQlNQVhfTFJJX1NJWkUpOworCQkJKmJh dGNoKysgPSBNSV9MT0FEX1JFR0lTVEVSX0lNTShuX2xyaSk7CisJCX0KKworCQkqYmF0Y2grKyA9 IGk5MTVfbW1pb19yZWdfb2Zmc2V0KG9hX2NvbmZpZy0+bXV4X3JlZ3NbaV0uYWRkcik7CisJCSpi YXRjaCsrID0gb2FfY29uZmlnLT5tdXhfcmVnc1tpXS52YWx1ZTsKKwkJbl9sb2FkZWRfcmVncysr OworCX0KKworCWJhdGNoID0gZ2VuOF9lbWl0X3BpcGVfY29udHJvbChiYXRjaCwKKwkJCQkgICAg ICAgUElQRV9DT05UUk9MX01NSU9fV1JJVEUsCisJCQkJICAgICAgIDApOworCisJcmV0dXJuIGJh dGNoOworfQorCiBzdGF0aWMgaW50IGdlbjhfc3dpdGNoX3RvX3VwZGF0ZWRfa2VybmVsX2NvbnRl eHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCQkJIGNvbnN0IHN0cnVj dCBpOTE1X29hX2NvbmZpZyAqb2FfY29uZmlnKQogewpAQCAtMTgyOSw3ICsxODk0LDcgQEAgc3Rh dGljIGludCBnZW44X2NvbmZpZ3VyZV9hbGxfY29udGV4dHMoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAogCS8qIFN3aXRjaCBhd2F5IGZyb20gYW55IHVzZXIgY29udGV4dC4gKi8K IAlyZXQgPSBnZW44X3N3aXRjaF90b191cGRhdGVkX2tlcm5lbF9jb250ZXh0KGRldl9wcml2LCBv YV9jb25maWcpOwogCWlmIChyZXQpCi0JCWdvdG8gb3V0OworCQlyZXR1cm4gcmV0OwogCiAJLyoK IAkgKiBUaGUgT0EgcmVnaXN0ZXIgY29uZmlnIGlzIHNldHVwIHRocm91Z2ggdGhlIGNvbnRleHQg aW1hZ2UuIFRoaXMgaW1hZ2UKQEAgLTE4NDYsNyArMTkxMSwxNiBAQCBzdGF0aWMgaW50IGdlbjhf Y29uZmlndXJlX2FsbF9jb250ZXh0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs CiAJICovCiAJcmV0ID0gaTkxNV9nZW1fd2FpdF9mb3JfaWRsZShkZXZfcHJpdiwgd2FpdF9mbGFn cyk7CiAJaWYgKHJldCkKLQkJZ290byBvdXQ7CisJCXJldHVybiByZXQ7CisKKwkvKgorCSAqIFJl bG9hZCB0aGUgd29ya2Fyb3VuZCBiYXRjaGJ1ZmZlciB0byBpbmNsdWRlIE5PQSBtdXhlcworCSAq IHJlcHJvZ3JhbW1pbmcgb24gY29udGV4dC1zd2l0Y2gsIHNvIHdlIGRvbid0IGxvb3NlIGNvbmZp Z3VyYXRpb25zCisJICogYWZ0ZXIgc3dpdGNoLWZyb20gYSBjb250ZXh0IHdpdGggZGlzYWJsZWQg c2xpY2VzL3N1YnNsaWNlcy4KKwkgKi8KKwlyZXQgPSBsb2dpY2FsX3JlbmRlcl9yaW5nX3JlbG9h ZF93YV9iYihkZXZfcHJpdi0+ZW5naW5lW1JDU10pOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7 CiAKIAkvKiBVcGRhdGUgYWxsIGNvbnRleHRzIG5vdyB0aGF0IHdlJ3ZlIHN0YWxsZWQgdGhlIHN1 Ym1pc3Npb24uICovCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShjdHgsICZkZXZfcHJpdi0+Y29udGV4 dHMubGlzdCwgbGluaykgewpAQCAtMTg1OCwxMCArMTkzMiw4IEBAIHN0YXRpYyBpbnQgZ2VuOF9j b25maWd1cmVfYWxsX2NvbnRleHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK IAkJCWNvbnRpbnVlOwogCiAJCXJlZ3MgPSBpOTE1X2dlbV9vYmplY3RfcGluX21hcChjZS0+c3Rh dGUtPm9iaiwgSTkxNV9NQVBfV0IpOwotCQlpZiAoSVNfRVJSKHJlZ3MpKSB7Ci0JCQlyZXQgPSBQ VFJfRVJSKHJlZ3MpOwotCQkJZ290byBvdXQ7Ci0JCX0KKwkJaWYgKElTX0VSUihyZWdzKSkKKwkJ CXJldHVybiBQVFJfRVJSKHJlZ3MpOwogCiAJCWNlLT5zdGF0ZS0+b2JqLT5tbS5kaXJ0eSA9IHRy dWU7CiAJCXJlZ3MgKz0gTFJDX1NUQVRFX1BOICogUEFHRV9TSVpFIC8gc2l6ZW9mKCpyZWdzKTsK QEAgLTE4NzEsNyArMTk0Myw2IEBAIHN0YXRpYyBpbnQgZ2VuOF9jb25maWd1cmVfYWxsX2NvbnRl eHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJaTkxNV9nZW1fb2JqZWN0 X3VucGluX21hcChjZS0+c3RhdGUtPm9iaik7CiAJfQogCi0gb3V0OgogCXJldHVybiByZXQ7CiB9 CiAKQEAgLTIyMTMsNiArMjI4NCwxMyBAQCBzdGF0aWMgaW50IGk5MTVfb2Ffc3RyZWFtX2luaXQo c3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAogCWRldl9wcml2LT5wZXJmLm9hLmV4 Y2x1c2l2ZV9zdHJlYW0gPSBzdHJlYW07CiAKKwlyZXQgPSBkZXZfcHJpdi0+cGVyZi5vYS5vcHMu ZW5hYmxlX21ldHJpY19zZXQoZGV2X3ByaXYsCisJCQkJCQkgICAgICBzdHJlYW0tPm9hX2NvbmZp Zyk7CisJaWYgKHJldCkKKwkJZ290byBlcnJfZW5hYmxlOworCisJc3RyZWFtLT5vcHMgPSAmaTkx NV9vYV9zdHJlYW1fb3BzOworCiAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9t dXRleCk7CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKaW5kZXggN2E1ZWZh YjNlNGZiLi5hMGY3MmZjZGEwZDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCkBAIC0xNjks NiArMTY5LDggQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2luaXRfcmVnX3N0YXRlKHUzMiAqcmVn X3N0YXRlLAogCQkJCSAgICAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKIAkJCQkgICAg IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAkJCQkgICAgIHN0cnVjdCBpbnRlbF9y aW5nICpyaW5nKTsKK3N0YXRpYyB2b2lkIGV4ZWNsaXN0c19pbml0X3JlZ19zdGF0ZV93YV9iYih1 MzIgKnJlZ19zdGF0ZSwKKwkJCQkJICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsK IAogc3RhdGljIGlubGluZSBzdHJ1Y3QgaTkxNV9wcmlvbGlzdCAqdG9fcHJpb2xpc3Qoc3RydWN0 IHJiX25vZGUgKnJiKQogewpAQCAtMTU4NCwxNiArMTU4NiwyOCBAQCBnZW4xMF9pbml0X2luZGly ZWN0Y3R4X2JiKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgdTMyICpiYXRjaCkKIAly ZXR1cm4gYmF0Y2g7CiB9CiAKLSNkZWZpbmUgQ1RYX1dBX0JCX09CSl9TSVpFIChQQUdFX1NJWkUp CitzdGF0aWMgdTMyICpnZW5faW5pdF9wZXJjdHhfYmIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lLCB1MzIgKmJhdGNoKQoreworCWJhdGNoID0gaTkxNV9vYV9lbWl0X3BlcmN0eF9iYihl bmdpbmUsIGJhdGNoKTsKKwkqYmF0Y2grKyA9IE1JX0JBVENIX0JVRkZFUl9FTkQ7CisKKwlyZXR1 cm4gYmF0Y2g7Cit9CisKKy8qIFJlc2VydmUgYSBtaW5pbXVtIG9mIDIwMCBkd29yZHMgZm9yIGlu ZGlyZWN0IGJiICovCisjZGVmaW5lIENUWF9XQV9CQl9NSU5fRFdPUkRTICgyMDApCiAKIHN0YXRp YyBpbnQgbHJjX3NldHVwX3dhX2N0eChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJ CQkgICAgc3RydWN0IGk5MTVfY3R4X3dvcmthcm91bmRzICp3YV9jdHgpCiB7CiAJc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iajsKIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKKwl1MzIgbl9w YWdlcyA9IERJVl9ST1VORF9VUChpOTE1X29hX2dldF9wZXJjdHhfYmJfc2l6ZShlbmdpbmUpICsK KwkJCQkgICA0ICogQ1RYX1dBX0JCX01JTl9EV09SRFMsCisJCQkJICAgUEFHRV9TSVpFKTsKIAlp bnQgZXJyOwogCi0Jb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZShlbmdpbmUtPmk5MTUsIENU WF9XQV9CQl9PQkpfU0laRSk7CisJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZShlbmdpbmUt Pmk5MTUsIG5fcGFnZXMgKiBQQUdFX1NJWkUpOwogCWlmIChJU19FUlIob2JqKSkKIAkJcmV0dXJu IFBUUl9FUlIob2JqKTsKIApAQCAtMTYzOSwxNSArMTY1MywxNSBAQCBzdGF0aWMgaW50IGludGVs X2luaXRfd29ya2Fyb3VuZF9iYihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJc3dp dGNoIChJTlRFTF9HRU4oZW5naW5lLT5pOTE1KSkgewogCWNhc2UgMTA6CiAJCXdhX2JiX2ZuWzBd ID0gZ2VuMTBfaW5pdF9pbmRpcmVjdGN0eF9iYjsKLQkJd2FfYmJfZm5bMV0gPSBOVUxMOworCQl3 YV9iYl9mblsxXSA9IGdlbl9pbml0X3BlcmN0eF9iYjsKIAkJYnJlYWs7CiAJY2FzZSA5OgogCQl3 YV9iYl9mblswXSA9IGdlbjlfaW5pdF9pbmRpcmVjdGN0eF9iYjsKLQkJd2FfYmJfZm5bMV0gPSBO VUxMOworCQl3YV9iYl9mblsxXSA9IGdlbl9pbml0X3BlcmN0eF9iYjsKIAkJYnJlYWs7CiAJY2Fz ZSA4OgogCQl3YV9iYl9mblswXSA9IGdlbjhfaW5pdF9pbmRpcmVjdGN0eF9iYjsKLQkJd2FfYmJf Zm5bMV0gPSBOVUxMOworCQl3YV9iYl9mblsxXSA9IGdlbl9pbml0X3BlcmN0eF9iYjsKIAkJYnJl YWs7CiAJZGVmYXVsdDoKIAkJTUlTU0lOR19DQVNFKElOVEVMX0dFTihlbmdpbmUtPmk5MTUpKTsK QEAgLTE2ODAsNyArMTY5NCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfaW5pdF93b3JrYXJvdW5kX2Ji KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAkJd2FfYmJbaV0tPnNpemUgPSBiYXRj aF9wdHIgLSAoYmF0Y2ggKyB3YV9iYltpXS0+b2Zmc2V0KTsKIAl9CiAKLQlCVUdfT04oYmF0Y2hf cHRyIC0gYmF0Y2ggPiBDVFhfV0FfQkJfT0JKX1NJWkUpOworCUJVR19PTihiYXRjaF9wdHIgLSBi YXRjaCA+IHdhX2N0eC0+dm1hLT5vYmotPmJhc2Uuc2l6ZSk7CiAKIAlrdW5tYXBfYXRvbWljKGJh dGNoKTsKIAlpZiAocmV0KQpAQCAtMjMyMSw2ICsyMzM1LDUxIEBAIGludCBsb2dpY2FsX3JlbmRl cl9yaW5nX2luaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCXJldHVybiBsb2dp Y2FsX3JpbmdfaW5pdChlbmdpbmUpOwogfQogCitpbnQgbG9naWNhbF9yZW5kZXJfcmluZ19yZWxv YWRfd2FfYmIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQoreworCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVuZ2luZS0+aTkxNTsKKwlzdHJ1Y3QgaTkxNV9jdHhf d29ya2Fyb3VuZHMgbmV3X3dhX2N0eDsKKwlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4Owor CWludCByZXQ7CisKKwlpZiAoV0FSTl9PTihlbmdpbmUtPmlkICE9IFJDUykpCisJCXJldHVybiAt RUlOVkFMOworCisJbWVtc2V0KCZuZXdfd2FfY3R4LCAwLCBzaXplb2YobmV3X3dhX2N0eCkpOwor CXJldCA9IGludGVsX2luaXRfd29ya2Fyb3VuZF9iYihlbmdpbmUsICZuZXdfd2FfY3R4KTsKKwlp ZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJaWYgKGVuZ2luZS0+d2FfY3R4LnZtYSkKKwkJbHJj X2Rlc3Ryb3lfd2FfY3R4KGVuZ2luZSk7CisKKwltZW1jcHkoJmVuZ2luZS0+d2FfY3R4LCAmbmV3 X3dhX2N0eCwgc2l6ZW9mKGVuZ2luZS0+d2FfY3R4KSk7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5 KGN0eCwgJmRldl9wcml2LT5jb250ZXh0cy5saXN0LCBsaW5rKSB7CisJCXN0cnVjdCBpbnRlbF9j b250ZXh0ICpjZSA9ICZjdHgtPmVuZ2luZVtSQ1NdOworCQl1MzIgKnJlZ3M7CisKKwkJLyogU2V0 dGluZ3Mgd2lsbCBiZSBzZXQgdXBvbiBmaXJzdCB1c2UuICovCisJCWlmICghY2UtPnN0YXRlKQor CQkJY29udGludWU7CisKKwkJcmVncyA9IGk5MTVfZ2VtX29iamVjdF9waW5fbWFwKGNlLT5zdGF0 ZS0+b2JqLCBJOTE1X01BUF9XQik7CisJCWlmIChJU19FUlIocmVncykpIHsKKwkJCXJldCA9IFBU Ul9FUlIocmVncyk7CisJCQlicmVhazsKKwkJfQorCisJCWNlLT5zdGF0ZS0+b2JqLT5tbS5kaXJ0 eSA9IHRydWU7CisJCXJlZ3MgKz0gTFJDX1NUQVRFX1BOICogUEFHRV9TSVpFIC8gc2l6ZW9mKCpy ZWdzKTsKKworCQlleGVjbGlzdHNfaW5pdF9yZWdfc3RhdGVfd2FfYmIocmVncywgZW5naW5lKTsK KworCQlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKGNlLT5zdGF0ZS0+b2JqKTsKKwl9CisKKwly ZXR1cm4gcmV0OworfQorCiBpbnQgbG9naWNhbF94Y3NfcmluZ19pbml0KHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSkKIHsKIAlsb2dpY2FsX3Jpbmdfc2V0dXAoZW5naW5lKTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfbHJjLmgKaW5kZXggNTlkN2I4NjAxMmU5Li5kOTFkNjlhMTcyMDYgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5oCkBAIC03MSw2ICs3MSw3IEBAIGVudW0gewogLyogTG9naWNh bCBSaW5ncyAqLwogdm9pZCBpbnRlbF9sb2dpY2FsX3JpbmdfY2xlYW51cChzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpOwogaW50IGxvZ2ljYWxfcmVuZGVyX3JpbmdfaW5pdChzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUpOworaW50IGxvZ2ljYWxfcmVuZGVyX3JpbmdfcmVsb2Fk X3dhX2JiKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CiBpbnQgbG9naWNhbF94Y3Nf cmluZ19pbml0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CiAKIC8qIExvZ2ljYWwg UmluZyBDb250ZXh0cyAqLwotLSAKMi4xNy4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK