From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sameer Goel Subject: [v2 5/6] drivers/passthrough/arm: Refactor code for arm smmu drivers Date: Wed, 23 May 2018 18:46:19 -0600 Message-ID: <20180524004620.23828-6-sameer.goel@linaro.org> References: <20180524004620.23828-1-sameer.goel@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fLeP3-0001FR-Oz for xen-devel@lists.xenproject.org; Thu, 24 May 2018 00:46:49 +0000 Received: by mail-pl0-x241.google.com with SMTP id m24-v6so2655468pls.11 for ; Wed, 23 May 2018 17:46:47 -0700 (PDT) In-Reply-To: <20180524004620.23828-1-sameer.goel@linaro.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org, julien.grall@arm.com, mjaggi@caviumnetworks.com Cc: sstabellini@kernel.org, roger.pau@citrix.com, shankerd@codeaurora.org, Sameer Goel List-Id: xen-devel@lists.xenproject.org UHVsbCBjb21tb24gZGVmaW5lcyBmb3IgU01NVSBkcml2ZXMgaW4gYSBsb2NhbCBoZWFkZXIuCgpT aWduZWQtb2ZmLWJ5OiBTYW1lZXIgR29lbCA8c2FtZWVyLmdvZWxAbGluYXJvLm9yZz4KLS0tCiB4 ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vYXJtX3NtbXUuaCB8IDEyNSArKysrKysrKysrKysr KysrKysrKysrKysrCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vc21tdS12My5jICB8ICA5 NiArLS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vc21tdS5j ICAgICB8IDEwNCArLS0tLS0tLS0tLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAxMjggaW5z ZXJ0aW9ucygrKSwgMTk3IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL2FybS9hcm1fc21tdS5oCgpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvYXJtL2FybV9zbW11LmggYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0v YXJtX3NtbXUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5mNDlkY2Vi NWI0Ci0tLSAvZGV2L251bGwKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL2FybV9z bW11LmgKQEAgLTAsMCArMSwxMjUgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIC4vYXJt X3NtbXUuaAorICoKKyAqIENvbW1vbiBjb21wYXRpYmlsaXR5IGRlZmluZXMgYW5kIGRhdGFfc3Ry dWN0dXJlcyBmb3IgcG9ydGluZyBhcm0gc21tdQorICogZHJpdmVycyBmcm9tIExpbnV4LgorICoK KyAqIENvcHlyaWdodCAoYykgMjAxNyBMaW5hcm8gTGltaXRlZAorICoKKyAqIFRoaXMgcHJvZ3Jh bSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5 CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor ICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4KKyAqLworCisjaWZuZGVmIF9fQVJNX1NNTVVfSF9fCisjZGVmaW5lIF9f QVJNX1NNTVVfSF9fCisKKworLyogQWxpYXMgdG8gWGVuIGRldmljZSB0cmVlIGhlbHBlcnMgKi8K KyNkZWZpbmUgZGV2aWNlX25vZGUgZHRfZGV2aWNlX25vZGUKKyNkZWZpbmUgb2ZfcGhhbmRsZV9h cmdzIGR0X3BoYW5kbGVfYXJncworI2RlZmluZSBvZl9kZXZpY2VfaWQgZHRfZGV2aWNlX21hdGNo CisjZGVmaW5lIG9mX21hdGNoX25vZGUgZHRfbWF0Y2hfbm9kZQorI2RlZmluZSBvZl9wcm9wZXJ0 eV9yZWFkX3UzMihucCwgcG5hbWUsIG91dCkgKCFkdF9wcm9wZXJ0eV9yZWFkX3UzMihucCwgcG5h bWUsIG91dCkpCisjZGVmaW5lIG9mX3Byb3BlcnR5X3JlYWRfYm9vbCBkdF9wcm9wZXJ0eV9yZWFk X2Jvb2wKKyNkZWZpbmUgb2ZfcGFyc2VfcGhhbmRsZV93aXRoX2FyZ3MgZHRfcGFyc2VfcGhhbmRs ZV93aXRoX2FyZ3MKKworLyogSGVscGVycyB0byBnZXQgZGV2aWNlIE1NSU8gYW5kIElSUXMgKi8K K3N0cnVjdCByZXNvdXJjZSB7CisgICAgdTY0IGFkZHI7CisgICAgdTY0IHNpemU7CisgICAgdW5z aWduZWQgaW50IHR5cGU7Cit9OworCisjZGVmaW5lIHJlc291cmNlX3NpemUocmVzKSAoKHJlcykt PnNpemUpCisKKyNkZWZpbmUgcGxhdGZvcm1fZGV2aWNlIGRldmljZQorCisjZGVmaW5lIElPUkVT T1VSQ0VfTUVNIDAKKyNkZWZpbmUgSU9SRVNPVVJDRV9JUlEgMQorCisvKiBTdHViIG91dCBETUEg ZG9tYWluIHJlbGF0ZWQgZnVuY3Rpb25zICovCisjZGVmaW5lIGlvbW11X2dldF9kbWFfY29va2ll KGRvbSkgMAorI2RlZmluZSBpb21tdV9wdXRfZG1hX2Nvb2tpZShkb20pCisKKyNkZWZpbmUgVkFf QklUUwkJMCAvKiBPbmx5IHVzZWQgZm9yIGNvbmZpZ3VyaW5nIHN0YWdlLTEgaW5wdXQgc2l6ZSAq LworCisjZGVmaW5lIE1PRFVMRV9ERVZJQ0VfVEFCTEUodHlwZSwgbmFtZSkKKyNkZWZpbmUgbW9k dWxlX3BhcmFtX25hbWVkKG5hbWUsIHZhbHVlLCB0eXBlLCBwZXJtKQorI2RlZmluZSBNT0RVTEVf UEFSTV9ERVNDKF9wYXJtLCBkZXNjKQorCisjZGVmaW5lIGRtYV9zZXRfbWFza19hbmRfY29oZXJl bnQoZCwgYikJMAorI2RlZmluZSBvZl9kbWFfaXNfY29oZXJlbnQobikJMAorCitzdGF0aWMgdm9p ZCBfX2lvbWVtICpkZXZtX2lvcmVtYXBfcmVzb3VyY2Uoc3RydWN0IGRldmljZSAqZGV2LAorCQkJ CQkgICBzdHJ1Y3QgcmVzb3VyY2UgKnJlcykKK3sKKyAgICB2b2lkIF9faW9tZW0gKnB0cjsKKwor ICAgIGlmICggIXJlcyB8fCByZXMtPnR5cGUgIT0gSU9SRVNPVVJDRV9NRU0gKQorICAgIHsKKyAg ICAgICAgZGV2X2VycihkZXYsICJJbnZhbGlkIHJlc291cmNlXG4iKTsKKyAgICAgICAgcmV0dXJu IEVSUl9QVFIoLUVJTlZBTCk7CisgICAgfQorCisgICAgcHRyID0gaW9yZW1hcF9ub2NhY2hlKHJl cy0+YWRkciwgcmVzLT5zaXplKTsKKyAgICBpZiAoICFwdHIgKQorICAgIHsKKyAgICAgICAgZGV2 X2VycihkZXYsICJpb3JlbWFwIGZhaWxlZCAoYWRkciAweCUiUFJJeDY0IiBzaXplIDB4JSJQUkl4 NjQiKVxuIiwKKyAgICAgICAgICAgICAgICByZXMtPmFkZHIsIHJlcy0+c2l6ZSk7CisgICAgICAg IHJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworICAgIH0KKworICAgIHJldHVybiBwdHI7Cit9CisK Ky8qCisgKiBEb21haW4gdHlwZSBkZWZpbml0aW9ucy4gTm90IHJlYWxseSBuZWVkZWQgZm9yIFhl biwgZGVmaW5pbmcgdG8gcG9ydAorICogTGludXggY29kZSBhcy1pcworICovCisjZGVmaW5lIElP TU1VX0RPTUFJTl9VTk1BTkFHRUQgMAorI2RlZmluZSBJT01NVV9ET01BSU5fRE1BIDEKKyNkZWZp bmUgSU9NTVVfRE9NQUlOX0lERU5USVRZIDIKKworLyogWGVuOiBDb21wYXRpYmlsaXR5IGRlZmlu ZSBmb3IgaW9tbXVfZG9tYWluX2dlb21ldHJ5LiovCitzdHJ1Y3QgaW9tbXVfZG9tYWluX2dlb21l dHJ5IHsKKyAgICBkbWFfYWRkcl90IGFwZXJ0dXJlX3N0YXJ0OyAvKiBGaXJzdCBhZGRyZXNzIHRo YXQgY2FuIGJlIG1hcHBlZCAgICAqLworICAgIGRtYV9hZGRyX3QgYXBlcnR1cmVfZW5kOyAgIC8q IExhc3QgYWRkcmVzcyB0aGF0IGNhbiBiZSBtYXBwZWQgICAgICovCisgICAgYm9vbCBmb3JjZV9h cGVydHVyZTsgICAgICAgLyogRE1BIG9ubHkgYWxsb3dlZCBpbiBtYXBwYWJsZSByYW5nZT8gKi8K K307CisKKy8qIFhlbjogRHVtbXkgaW9tbXVfZG9tYWluICovCitzdHJ1Y3QgaW9tbXVfZG9tYWlu IHsKKyAgICAvKiBSdW50aW1lIFNNTVUgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBpb21tdV9kb21h aW4gKi8KKyAgICBzdHJ1Y3QgYXJtX3NtbXVfZG9tYWluCQkqcHJpdjsKKyAgICB1bnNpZ25lZCBp bnQJCQl0eXBlOworCisgICAgLyogRHVtbXkgY29tcGF0aWJpbGl0eSBkZWZpbmVzICovCisgICAg dW5zaWduZWQgbG9uZyBwZ3NpemVfYml0bWFwOworICAgIHN0cnVjdCBpb21tdV9kb21haW5fZ2Vv bWV0cnkgZ2VvbWV0cnk7CisKKyAgICBhdG9taWNfdCByZWY7CisgICAgLyogVXNlZCB0byBsaW5r IGlvbW11X2RvbWFpbiBjb250ZXh0cyBmb3IgYSBzYW1lIGRvbWFpbi4KKyAgICAgKiBUaGVyZSBp cyBhdCBsZWFzdCBvbmUgcGVyLVNNTVUgdG8gdXNlZCBieSB0aGUgZG9tYWluLgorICAgICAqLwor ICAgIHN0cnVjdCBsaXN0X2hlYWQJCWxpc3Q7Cit9OworCisvKiBYZW46IERlc2NyaWJlcyBpbmZv cm1hdGlvbiByZXF1aXJlZCBmb3IgYSBYZW4gZG9tYWluICovCitzdHJ1Y3QgYXJtX3NtbXVfeGVu X2RvbWFpbiB7CisgICAgc3BpbmxvY2tfdAkJCWxvY2s7CisgICAgLyogTGlzdCBvZiBpb21tdSBk b21haW5zIGFzc29jaWF0ZWQgdG8gdGhpcyBkb21haW4gKi8KKyAgICBzdHJ1Y3QgbGlzdF9oZWFk CQljb250ZXh0czsKK307CisKKyNlbmRpZiAvKiBfX0FSTV9TTU1VX0hfXyAqLworCmRpZmYgLS1n aXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vc21tdS12My5jIGIveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvYXJtL3NtbXUtdjMuYwppbmRleCBkZjgxNjI2Nzg1Li5iNDNmMGE4OTJlIDEw MDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vc21tdS12My5jCisrKyBiL3hl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9zbW11LXYzLmMKQEAgLTQ5LDI4ICs0OSw3IEBACiAj aW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8YXNtL3BsYXRmb3JtLmg+CiAKLS8qIEFsaWFz IHRvIFhlbiBkZXZpY2UgdHJlZSBoZWxwZXJzICovCi0jZGVmaW5lIGRldmljZV9ub2RlIGR0X2Rl dmljZV9ub2RlCi0jZGVmaW5lIG9mX3BoYW5kbGVfYXJncyBkdF9waGFuZGxlX2FyZ3MKLSNkZWZp bmUgb2ZfZGV2aWNlX2lkIGR0X2RldmljZV9tYXRjaAotI2RlZmluZSBvZl9tYXRjaF9ub2RlIGR0 X21hdGNoX25vZGUKLSNkZWZpbmUgb2ZfcHJvcGVydHlfcmVhZF91MzIobnAsIHBuYW1lLCBvdXQp ICghZHRfcHJvcGVydHlfcmVhZF91MzIobnAsIHBuYW1lLCBvdXQpKQotI2RlZmluZSBvZl9wcm9w ZXJ0eV9yZWFkX2Jvb2wgZHRfcHJvcGVydHlfcmVhZF9ib29sCi0jZGVmaW5lIG9mX3BhcnNlX3Bo YW5kbGVfd2l0aF9hcmdzIGR0X3BhcnNlX3BoYW5kbGVfd2l0aF9hcmdzCi0KLS8qIFhlbjogSGVs cGVycyB0byBnZXQgZGV2aWNlIE1NSU8gYW5kIElSUXMgKi8KLXN0cnVjdCByZXNvdXJjZSB7Ci0J dTY0IGFkZHI7Ci0JdTY0IHNpemU7Ci0JdW5zaWduZWQgaW50IHR5cGU7Ci19OwotCi0jZGVmaW5l IHJlc291cmNlX3NpemUocmVzKSAoKHJlcyktPnNpemUpCi0KLSNkZWZpbmUgcGxhdGZvcm1fZGV2 aWNlIGRldmljZQotCi0jZGVmaW5lIElPUkVTT1VSQ0VfTUVNIDAKLSNkZWZpbmUgSU9SRVNPVVJD RV9JUlEgMQorI2luY2x1ZGUgImFybV9zbW11LmgiCiAKIHN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Ug KnBsYXRmb3JtX2dldF9yZXNvdXJjZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAogCQkJ CQkgICAgICB1bnNpZ25lZCBpbnQgdHlwZSwKQEAgLTIwMCw3OSArMTc5LDYgQEAgc3RhdGljIHZv aWQgZG1hbV9mcmVlX2NvaGVyZW50KHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsIHZv aWQgKnZhZGRyLAogCXhmcmVlKHZhZGRyKTsKIH0KIAotLyogWGVuOiBTdHViIG91dCBETUEgZG9t YWluIHJlbGF0ZWQgZnVuY3Rpb25zICovCi0jZGVmaW5lIGlvbW11X2dldF9kbWFfY29va2llKGRv bSkgMAotI2RlZmluZSBpb21tdV9wdXRfZG1hX2Nvb2tpZShkb20pCi0KLS8qIFhlbjogU3R1YiBv dXQgbW9kdWxlIHBhcmFtIHJlbGF0ZWQgZnVuY3Rpb24gKi8KLSNkZWZpbmUgbW9kdWxlX3BhcmFt X25hbWVkKGEsIGIsIGMsIGQpCi0jZGVmaW5lIE1PRFVMRV9QQVJNX0RFU0MoYSwgYikKLQotI2Rl ZmluZSBkbWFfc2V0X21hc2tfYW5kX2NvaGVyZW50KGQsIGIpIDAKLQotI2RlZmluZSBvZl9kbWFf aXNfY29oZXJlbnQobikgMAotCi0jZGVmaW5lIE1PRFVMRV9ERVZJQ0VfVEFCTEUodHlwZSwgbmFt ZSkKLQotc3RhdGljIHZvaWQgX19pb21lbSAqZGV2bV9pb3JlbWFwX3Jlc291cmNlKHN0cnVjdCBk ZXZpY2UgKmRldiwKLQkJCQkJICAgc3RydWN0IHJlc291cmNlICpyZXMpCi17Ci0Jdm9pZCBfX2lv bWVtICpwdHI7Ci0KLQlpZiAoIXJlcyB8fCByZXMtPnR5cGUgIT0gSU9SRVNPVVJDRV9NRU0pIHsK LQkJZGV2X2VycihkZXYsICJJbnZhbGlkIHJlc291cmNlXG4iKTsKLQkJcmV0dXJuIEVSUl9QVFIo LUVJTlZBTCk7Ci0JfQotCi0JcHRyID0gaW9yZW1hcF9ub2NhY2hlKHJlcy0+YWRkciwgcmVzLT5z aXplKTsKLQlpZiAoIXB0cikgewotCQlkZXZfZXJyKGRldiwKLQkJCSJpb3JlbWFwIGZhaWxlZCAo YWRkciAweCUiUFJJeDY0IiBzaXplIDB4JSJQUkl4NjQiKVxuIiwKLQkJCXJlcy0+YWRkciwgcmVz LT5zaXplKTsKLQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Ci0JfQotCi0JcmV0dXJuIHB0cjsK LX0KLQotLyogWGVuOiBDb21wYXRpYmlsaXR5IGRlZmluZSBmb3IgaW9tbXVfZG9tYWluX2dlb21l dHJ5LiovCi1zdHJ1Y3QgaW9tbXVfZG9tYWluX2dlb21ldHJ5IHsKLQlkbWFfYWRkcl90IGFwZXJ0 dXJlX3N0YXJ0OyAvKiBGaXJzdCBhZGRyZXNzIHRoYXQgY2FuIGJlIG1hcHBlZCAgICAqLwotCWRt YV9hZGRyX3QgYXBlcnR1cmVfZW5kOyAgIC8qIExhc3QgYWRkcmVzcyB0aGF0IGNhbiBiZSBtYXBw ZWQgICAgICovCi0JYm9vbCBmb3JjZV9hcGVydHVyZTsgICAgICAgLyogRE1BIG9ubHkgYWxsb3dl ZCBpbiBtYXBwYWJsZSByYW5nZT8gKi8KLX07Ci0KLQotLyogWGVuOiBUeXBlIGRlZmluaXRpb25z IGZvciBpb21tdV9kb21haW4gKi8KLSNkZWZpbmUgSU9NTVVfRE9NQUlOX1VOTUFOQUdFRCAwCi0j ZGVmaW5lIElPTU1VX0RPTUFJTl9ETUEgMQotI2RlZmluZSBJT01NVV9ET01BSU5fSURFTlRJVFkg MgotCi0vKiBYZW46IER1bW15IGlvbW11X2RvbWFpbiAqLwotc3RydWN0IGlvbW11X2RvbWFpbiB7 Ci0JLyogUnVudGltZSBTTU1VIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgaW9tbXVfZG9tYWluICov Ci0Jc3RydWN0IGFybV9zbW11X2RvbWFpbgkJKnByaXY7Ci0JdW5zaWduZWQgaW50IHR5cGU7Ci0K LQkvKiBEdW1teSBjb21wYXRpYmlsaXR5IGRlZmluZXMgKi8KLQl1bnNpZ25lZCBsb25nIHBnc2l6 ZV9iaXRtYXA7Ci0Jc3RydWN0IGlvbW11X2RvbWFpbl9nZW9tZXRyeSBnZW9tZXRyeTsKLQotCWF0 b21pY190IHJlZjsKLQkvKgotCSAqIFVzZWQgdG8gbGluayBpb21tdV9kb21haW4gY29udGV4dHMg Zm9yIGEgc2FtZSBkb21haW4uCi0JICogVGhlcmUgaXMgYXQgbGVhc3Qgb25lIHBlci1TTU1VIHRv IHVzZWQgYnkgdGhlIGRvbWFpbi4KLQkgKi8KLQlzdHJ1Y3QgbGlzdF9oZWFkCQlsaXN0OwotfTsK LQotLyogWGVuOiBEZXNjcmliZXMgaW5mb3JtYXRpb24gcmVxdWlyZWQgZm9yIGEgWGVuIGRvbWFp biAqLwotc3RydWN0IGFybV9zbW11X3hlbl9kb21haW4gewotCXNwaW5sb2NrX3QJCQlsb2NrOwot CS8qIExpc3Qgb2YgaW9tbXUgZG9tYWlucyBhc3NvY2lhdGVkIHRvIHRoaXMgZG9tYWluICovCi0J c3RydWN0IGxpc3RfaGVhZAkJY29udGV4dHM7Ci19OwotCiAvKgogICogWGVuOiBJbmZvcm1hdGlv biBhYm91dCBlYWNoIGRldmljZSBzdG9yZWQgaW4gZGV2LT5hcmNoZGF0YS5pb21tdQogICoKZGlm ZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9zbW11LmMgYi94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC9hcm0vc21tdS5jCmluZGV4IGFkOTU2ZDViOGQuLjRjMDQzOTFlMjEgMTAw NjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9zbW11LmMKKysrIGIveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvYXJtL3NtbXUuYwpAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUg PHhlbi9pcnEuaD4KICNpbmNsdWRlIDx4ZW4vbGliLmg+CiAjaW5jbHVkZSA8eGVuL2xpc3QuaD4K KyNpbmNsdWRlIDx4ZW4vbGludXhfY29tcGF0Lmg+CiAjaW5jbHVkZSA8eGVuL21tLmg+CiAjaW5j bHVkZSA8eGVuL3ZtYXAuaD4KICNpbmNsdWRlIDx4ZW4vcmJ0cmVlLmg+CkBAIC01MSwzNiArNTIs MTMgQEAKICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxhc20vcGxhdGZvcm0uaD4KIAor I2luY2x1ZGUgImFybV9zbW11LmgiIC8qIE5vdCBhIHNlbGYgY29udGFpbmVkIGhlYWRlci4gU28g bGFzdCBpbiB0aGUgbGlzdCAqLwogLyogWGVuOiBUaGUgYmVsb3cgZGVmaW5lcyBhcmUgcmVkZWZp bmVkIHdpdGhpbiB0aGUgZmlsZS4gVW5kZWYgaXQgKi8KICN1bmRlZiBTQ1RMUl9BRkUKICN1bmRl ZiBTQ1RMUl9UUkUKICN1bmRlZiBTQ1RMUl9NCiAjdW5kZWYgVFRCQ1JfRUFFCiAKLS8qIEFsaWFz IHRvIFhlbiBkZXZpY2UgdHJlZSBoZWxwZXJzICovCi0jZGVmaW5lIGRldmljZV9ub2RlIGR0X2Rl dmljZV9ub2RlCi0jZGVmaW5lIG9mX3BoYW5kbGVfYXJncyBkdF9waGFuZGxlX2FyZ3MKLSNkZWZp bmUgb2ZfZGV2aWNlX2lkIGR0X2RldmljZV9tYXRjaAotI2RlZmluZSBvZl9tYXRjaF9ub2RlIGR0 X21hdGNoX25vZGUKLSNkZWZpbmUgb2ZfcHJvcGVydHlfcmVhZF91MzIobnAsIHBuYW1lLCBvdXQp ICghZHRfcHJvcGVydHlfcmVhZF91MzIobnAsIHBuYW1lLCBvdXQpKQotI2RlZmluZSBvZl9wcm9w ZXJ0eV9yZWFkX2Jvb2wgZHRfcHJvcGVydHlfcmVhZF9ib29sCi0jZGVmaW5lIG9mX3BhcnNlX3Bo YW5kbGVfd2l0aF9hcmdzIGR0X3BhcnNlX3BoYW5kbGVfd2l0aF9hcmdzCi0KLS8qIFhlbjogSGVs cGVycyB0byBnZXQgZGV2aWNlIE1NSU8gYW5kIElSUXMgKi8KLXN0cnVjdCByZXNvdXJjZQotewot CXU2NCBhZGRyOwotCXU2NCBzaXplOwotCXVuc2lnbmVkIGludCB0eXBlOwotfTsKLQotI2RlZmlu ZSByZXNvdXJjZV9zaXplKHJlcykgKHJlcyktPnNpemU7Ci0KLSNkZWZpbmUgcGxhdGZvcm1fZGV2 aWNlIGRldmljZQotCi0jZGVmaW5lIElPUkVTT1VSQ0VfTUVNIDAKLSNkZWZpbmUgSU9SRVNPVVJD RV9JUlEgMQotCiBzdGF0aWMgc3RydWN0IHJlc291cmNlICpwbGF0Zm9ybV9nZXRfcmVzb3VyY2Uo c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAkJCQkJICAgICAgdW5zaWduZWQgaW50IHR5 cGUsCiAJCQkJCSAgICAgIHVuc2lnbmVkIGludCBudW0pCkBAIC0xMTgsNTggKzk2LDYgQEAgc3Rh dGljIHN0cnVjdCByZXNvdXJjZSAqcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHN0cnVjdCBwbGF0Zm9y bV9kZXZpY2UgKnBkZXYsCiAKIC8qIFhlbjogSGVscGVycyBmb3IgSVJRIGZ1bmN0aW9ucyAqLwog I2RlZmluZSByZXF1ZXN0X2lycShpcnEsIGZ1bmMsIGZsYWdzLCBuYW1lLCBkZXYpIHJlcXVlc3Rf aXJxKGlycSwgZmxhZ3MsIGZ1bmMsIG5hbWUsIGRldikKLSNkZWZpbmUgZnJlZV9pcnEgcmVsZWFz ZV9pcnEKLQotZW51bSBpcnFyZXR1cm4gewotCUlSUV9OT05FCT0gKDAgPDwgMCksCi0JSVJRX0hB TkRMRUQJPSAoMSA8PCAwKSwKLX07Ci0KLXR5cGVkZWYgZW51bSBpcnFyZXR1cm4gaXJxcmV0dXJu X3Q7Ci0KLS8qIERldmljZSBsb2dnZXIgZnVuY3Rpb25zCi0gKiBUT0RPOiBIYW5kbGUgUENJCi0g Ki8KLSNkZWZpbmUgZGV2X3ByaW50KGRldiwgbHZsLCBmbXQsIC4uLikJCQkJCQlcCi0JIHByaW50 ayhsdmwgInNtbXU6ICVzOiAiIGZtdCwgZHRfbm9kZV9mdWxsX25hbWUoZGV2X3RvX2R0KGRldikp LCAjIyBfX1ZBX0FSR1NfXykKLQotI2RlZmluZSBkZXZfZGJnKGRldiwgZm10LCAuLi4pIGRldl9w cmludChkZXYsIFhFTkxPR19ERUJVRywgZm10LCAjIyBfX1ZBX0FSR1NfXykKLSNkZWZpbmUgZGV2 X25vdGljZShkZXYsIGZtdCwgLi4uKSBkZXZfcHJpbnQoZGV2LCBYRU5MT0dfSU5GTywgZm10LCAj IyBfX1ZBX0FSR1NfXykKLSNkZWZpbmUgZGV2X3dhcm4oZGV2LCBmbXQsIC4uLikgZGV2X3ByaW50 KGRldiwgWEVOTE9HX1dBUk5JTkcsIGZtdCwgIyMgX19WQV9BUkdTX18pCi0jZGVmaW5lIGRldl9l cnIoZGV2LCBmbXQsIC4uLikgZGV2X3ByaW50KGRldiwgWEVOTE9HX0VSUiwgZm10LCAjIyBfX1ZB X0FSR1NfXykKLQotI2RlZmluZSBkZXZfZXJyX3JhdGVsaW1pdGVkKGRldiwgZm10LCAuLi4pCQkJ CQlcCi0JIGRldl9wcmludChkZXYsIFhFTkxPR19FUlIsIGZtdCwgIyMgX19WQV9BUkdTX18pCi0K LSNkZWZpbmUgZGV2X25hbWUoZGV2KSBkdF9ub2RlX2Z1bGxfbmFtZShkZXZfdG9fZHQoZGV2KSkK LQotLyogQWxpYXMgdG8gWGVuIGFsbG9jYXRpb24gaGVscGVycyAqLwotI2RlZmluZSBrZnJlZSB4 ZnJlZQotI2RlZmluZSBrbWFsbG9jKHNpemUsIGZsYWdzKQkJX3htYWxsb2Moc2l6ZSwgc2l6ZW9m KHZvaWQgKikpCi0jZGVmaW5lIGt6YWxsb2Moc2l6ZSwgZmxhZ3MpCQlfeHphbGxvYyhzaXplLCBz aXplb2Yodm9pZCAqKSkKLSNkZWZpbmUgZGV2bV9remFsbG9jKGRldiwgc2l6ZSwgZmxhZ3MpCV94 emFsbG9jKHNpemUsIHNpemVvZih2b2lkICopKQotI2RlZmluZSBrbWFsbG9jX2FycmF5KHNpemUs IG4sIGZsYWdzKQlfeG1hbGxvY19hcnJheShzaXplLCBzaXplb2Yodm9pZCAqKSwgbikKLQotc3Rh dGljIHZvaWQgX19pb21lbSAqZGV2bV9pb3JlbWFwX3Jlc291cmNlKHN0cnVjdCBkZXZpY2UgKmRl diwKLQkJCQkJICAgc3RydWN0IHJlc291cmNlICpyZXMpCi17Ci0Jdm9pZCBfX2lvbWVtICpwdHI7 Ci0KLQlpZiAoIXJlcyB8fCByZXMtPnR5cGUgIT0gSU9SRVNPVVJDRV9NRU0pIHsKLQkJZGV2X2Vy cihkZXYsICJJbnZhbGlkIHJlc291cmNlXG4iKTsKLQkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7 Ci0JfQotCi0JcHRyID0gaW9yZW1hcF9ub2NhY2hlKHJlcy0+YWRkciwgcmVzLT5zaXplKTsKLQlp ZiAoIXB0cikgewotCQlkZXZfZXJyKGRldiwKLQkJCSJpb3JlbWFwIGZhaWxlZCAoYWRkciAweCUi UFJJeDY0IiBzaXplIDB4JSJQUkl4NjQiKVxuIiwKLQkJCXJlcy0+YWRkciwgcmVzLT5zaXplKTsK LQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Ci0JfQotCi0JcmV0dXJuIHB0cjsKLX0KIAogLyog WGVuIGRvZXNuJ3QgaGFuZGxlIElPTU1VIGZhdWx0ICovCiAjZGVmaW5lIHJlcG9ydF9pb21tdV9m YXVsdCguLi4pCTEKQEAgLTE5NiwzMiArMTIyLDYgQEAgc3RhdGljIGlubGluZSBpbnQgcGNpX2Zv cl9lYWNoX2RtYV9hbGlhcyhzdHJ1Y3QgcGNpX2RldiAqcGRldiwKICNkZWZpbmUgUEhZU19NQVNL X1NISUZUCQlQQUREUl9CSVRTCiB0eXBlZGVmIHBhZGRyX3QgcGh5c19hZGRyX3Q7CiAKLSNkZWZp bmUgVkFfQklUUwkJMAkvKiBPbmx5IHVzZWQgZm9yIGNvbmZpZ3VyaW5nIHN0YWdlLTEgaW5wdXQg c2l6ZSAqLwotCi0jZGVmaW5lIE1PRFVMRV9ERVZJQ0VfVEFCTEUodHlwZSwgbmFtZSkKLSNkZWZp bmUgbW9kdWxlX3BhcmFtX25hbWVkKG5hbWUsIHZhbHVlLCB0eXBlLCBwZXJtKQotI2RlZmluZSBN T0RVTEVfUEFSTV9ERVNDKF9wYXJtLCBkZXNjKQotCi0vKiBYZW46IER1bW15IGlvbW11X2RvbWFp biAqLwotc3RydWN0IGlvbW11X2RvbWFpbgotewotCS8qIFJ1bnRpbWUgU01NVSBjb25maWd1cmF0 aW9uIGZvciB0aGlzIGlvbW11X2RvbWFpbiAqLwotCXN0cnVjdCBhcm1fc21tdV9kb21haW4JCSpw cml2OwotCi0JYXRvbWljX3QgcmVmOwotCS8qIFVzZWQgdG8gbGluayBpb21tdV9kb21haW4gY29u dGV4dHMgZm9yIGEgc2FtZSBkb21haW4uCi0JICogVGhlcmUgaXMgYXQgbGVhc3Qgb25lIHBlci1T TU1VIHRvIHVzZWQgYnkgdGhlIGRvbWFpbi4KLQkgKiAqLwotCXN0cnVjdCBsaXN0X2hlYWQJCWxp c3Q7Ci19OwotCi0vKiBYZW46IERlc2NyaWJlcyBpbmZvcm1hdGlvbnMgcmVxdWlyZWQgZm9yIGEg WGVuIGRvbWFpbiAqLwotc3RydWN0IGFybV9zbW11X3hlbl9kb21haW4gewotCXNwaW5sb2NrX3QJ CQlsb2NrOwotCS8qIExpc3Qgb2YgY29udGV4dCAoaS5lIGlvbW11X2RvbWFpbikgYXNzb2NpYXRl ZCB0byB0aGlzIGRvbWFpbiAqLwotCXN0cnVjdCBsaXN0X2hlYWQJCWNvbnRleHRzOwotfTsKLQog LyoKICAqIFhlbjogSW5mb3JtYXRpb24gYWJvdXQgZWFjaCBkZXZpY2Ugc3RvcmVkIGluIGRldi0+ YXJjaGRhdGEuaW9tbXUKICAqCi0tIAoyLjE3LjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBs aXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4v bGlzdGluZm8veGVuLWRldmVs