From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sameer Goel Subject: [PATCH 6/7] drivers/passthrough/arm: Refactor code for arm smmu drivers Date: Thu, 8 Feb 2018 20:10:54 -0700 Message-ID: <20180209031055.21926-7-sameer.goel@linaro.org> References: <20180209031055.21926-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.84_2) (envelope-from ) id 1ejz63-00054T-Rp for xen-devel@lists.xenproject.org; Fri, 09 Feb 2018 03:11:31 +0000 Received: by mail-pl0-x244.google.com with SMTP id o13so862325pli.6 for ; Thu, 08 Feb 2018 19:11:30 -0800 (PST) In-Reply-To: <20180209031055.21926-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 KysrKysrKysrKysrKysrKysrKysKIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9zbW11LXYz LmMgIHwgIDk2ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL2FybS9zbW11LmMgICAgIHwgMTA0ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMyBm aWxlcyBjaGFuZ2VkLCAxMjggaW5zZXJ0aW9ucygrKSwgMTk3IGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9hcm1fc21tdS5oCgpkaWZm IC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL2FybV9zbW11LmggYi94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC9hcm0vYXJtX3NtbXUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwLi5mNDlkY2ViNWI0Ci0tLSAvZGV2L251bGwKKysrIGIveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvYXJtL2FybV9zbW11LmgKQEAgLTAsMCArMSwxMjUgQEAKKy8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKKyAqIC4vYXJtX3NtbXUuaAorICoKKyAqIENvbW1vbiBjb21wYXRpYmlsaXR5 IGRlZmluZXMgYW5kIGRhdGFfc3RydWN0dXJlcyBmb3IgcG9ydGluZyBhcm0gc21tdQorICogZHJp dmVycyBmcm9tIExpbnV4LgorICoKKyAqIENvcHlyaWdodCAoYykgMjAxNyBMaW5hcm8gTGltaXRl ZAorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IElmIG5vdCwg c2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyAqLworCisjaWZuZGVmIF9fQVJN X1NNTVVfSF9fCisjZGVmaW5lIF9fQVJNX1NNTVVfSF9fCisKKworLyogQWxpYXMgdG8gWGVuIGRl dmljZSB0cmVlIGhlbHBlcnMgKi8KKyNkZWZpbmUgZGV2aWNlX25vZGUgZHRfZGV2aWNlX25vZGUK KyNkZWZpbmUgb2ZfcGhhbmRsZV9hcmdzIGR0X3BoYW5kbGVfYXJncworI2RlZmluZSBvZl9kZXZp Y2VfaWQgZHRfZGV2aWNlX21hdGNoCisjZGVmaW5lIG9mX21hdGNoX25vZGUgZHRfbWF0Y2hfbm9k ZQorI2RlZmluZSBvZl9wcm9wZXJ0eV9yZWFkX3UzMihucCwgcG5hbWUsIG91dCkgKCFkdF9wcm9w ZXJ0eV9yZWFkX3UzMihucCwgcG5hbWUsIG91dCkpCisjZGVmaW5lIG9mX3Byb3BlcnR5X3JlYWRf Ym9vbCBkdF9wcm9wZXJ0eV9yZWFkX2Jvb2wKKyNkZWZpbmUgb2ZfcGFyc2VfcGhhbmRsZV93aXRo X2FyZ3MgZHRfcGFyc2VfcGhhbmRsZV93aXRoX2FyZ3MKKworLyogSGVscGVycyB0byBnZXQgZGV2 aWNlIE1NSU8gYW5kIElSUXMgKi8KK3N0cnVjdCByZXNvdXJjZSB7CisgICAgdTY0IGFkZHI7Cisg ICAgdTY0IHNpemU7CisgICAgdW5zaWduZWQgaW50IHR5cGU7Cit9OworCisjZGVmaW5lIHJlc291 cmNlX3NpemUocmVzKSAoKHJlcyktPnNpemUpCisKKyNkZWZpbmUgcGxhdGZvcm1fZGV2aWNlIGRl dmljZQorCisjZGVmaW5lIElPUkVTT1VSQ0VfTUVNIDAKKyNkZWZpbmUgSU9SRVNPVVJDRV9JUlEg MQorCisvKiBTdHViIG91dCBETUEgZG9tYWluIHJlbGF0ZWQgZnVuY3Rpb25zICovCisjZGVmaW5l IGlvbW11X2dldF9kbWFfY29va2llKGRvbSkgMAorI2RlZmluZSBpb21tdV9wdXRfZG1hX2Nvb2tp ZShkb20pCisKKyNkZWZpbmUgVkFfQklUUwkJMCAvKiBPbmx5IHVzZWQgZm9yIGNvbmZpZ3VyaW5n IHN0YWdlLTEgaW5wdXQgc2l6ZSAqLworCisjZGVmaW5lIE1PRFVMRV9ERVZJQ0VfVEFCTEUodHlw ZSwgbmFtZSkKKyNkZWZpbmUgbW9kdWxlX3BhcmFtX25hbWVkKG5hbWUsIHZhbHVlLCB0eXBlLCBw ZXJtKQorI2RlZmluZSBNT0RVTEVfUEFSTV9ERVNDKF9wYXJtLCBkZXNjKQorCisjZGVmaW5lIGRt YV9zZXRfbWFza19hbmRfY29oZXJlbnQoZCwgYikJMAorI2RlZmluZSBvZl9kbWFfaXNfY29oZXJl bnQobikJMAorCitzdGF0aWMgdm9pZCBfX2lvbWVtICpkZXZtX2lvcmVtYXBfcmVzb3VyY2Uoc3Ry dWN0IGRldmljZSAqZGV2LAorCQkJCQkgICBzdHJ1Y3QgcmVzb3VyY2UgKnJlcykKK3sKKyAgICB2 b2lkIF9faW9tZW0gKnB0cjsKKworICAgIGlmICggIXJlcyB8fCByZXMtPnR5cGUgIT0gSU9SRVNP VVJDRV9NRU0gKQorICAgIHsKKyAgICAgICAgZGV2X2VycihkZXYsICJJbnZhbGlkIHJlc291cmNl XG4iKTsKKyAgICAgICAgcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CisgICAgfQorCisgICAgcHRy ID0gaW9yZW1hcF9ub2NhY2hlKHJlcy0+YWRkciwgcmVzLT5zaXplKTsKKyAgICBpZiAoICFwdHIg KQorICAgIHsKKyAgICAgICAgZGV2X2VycihkZXYsICJpb3JlbWFwIGZhaWxlZCAoYWRkciAweCUi UFJJeDY0IiBzaXplIDB4JSJQUkl4NjQiKVxuIiwKKyAgICAgICAgICAgICAgICByZXMtPmFkZHIs IHJlcy0+c2l6ZSk7CisgICAgICAgIHJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworICAgIH0KKwor ICAgIHJldHVybiBwdHI7Cit9CisKKy8qCisgKiBEb21haW4gdHlwZSBkZWZpbml0aW9ucy4gTm90 IHJlYWxseSBuZWVkZWQgZm9yIFhlbiwgZGVmaW5pbmcgdG8gcG9ydAorICogTGludXggY29kZSBh cy1pcworICovCisjZGVmaW5lIElPTU1VX0RPTUFJTl9VTk1BTkFHRUQgMAorI2RlZmluZSBJT01N VV9ET01BSU5fRE1BIDEKKyNkZWZpbmUgSU9NTVVfRE9NQUlOX0lERU5USVRZIDIKKworLyogWGVu OiBDb21wYXRpYmlsaXR5IGRlZmluZSBmb3IgaW9tbXVfZG9tYWluX2dlb21ldHJ5LiovCitzdHJ1 Y3QgaW9tbXVfZG9tYWluX2dlb21ldHJ5IHsKKyAgICBkbWFfYWRkcl90IGFwZXJ0dXJlX3N0YXJ0 OyAvKiBGaXJzdCBhZGRyZXNzIHRoYXQgY2FuIGJlIG1hcHBlZCAgICAqLworICAgIGRtYV9hZGRy X3QgYXBlcnR1cmVfZW5kOyAgIC8qIExhc3QgYWRkcmVzcyB0aGF0IGNhbiBiZSBtYXBwZWQgICAg ICovCisgICAgYm9vbCBmb3JjZV9hcGVydHVyZTsgICAgICAgLyogRE1BIG9ubHkgYWxsb3dlZCBp biBtYXBwYWJsZSByYW5nZT8gKi8KK307CisKKy8qIFhlbjogRHVtbXkgaW9tbXVfZG9tYWluICov CitzdHJ1Y3QgaW9tbXVfZG9tYWluIHsKKyAgICAvKiBSdW50aW1lIFNNTVUgY29uZmlndXJhdGlv biBmb3IgdGhpcyBpb21tdV9kb21haW4gKi8KKyAgICBzdHJ1Y3QgYXJtX3NtbXVfZG9tYWluCQkq cHJpdjsKKyAgICB1bnNpZ25lZCBpbnQJCQl0eXBlOworCisgICAgLyogRHVtbXkgY29tcGF0aWJp bGl0eSBkZWZpbmVzICovCisgICAgdW5zaWduZWQgbG9uZyBwZ3NpemVfYml0bWFwOworICAgIHN0 cnVjdCBpb21tdV9kb21haW5fZ2VvbWV0cnkgZ2VvbWV0cnk7CisKKyAgICBhdG9taWNfdCByZWY7 CisgICAgLyogVXNlZCB0byBsaW5rIGlvbW11X2RvbWFpbiBjb250ZXh0cyBmb3IgYSBzYW1lIGRv bWFpbi4KKyAgICAgKiBUaGVyZSBpcyBhdCBsZWFzdCBvbmUgcGVyLVNNTVUgdG8gdXNlZCBieSB0 aGUgZG9tYWluLgorICAgICAqLworICAgIHN0cnVjdCBsaXN0X2hlYWQJCWxpc3Q7Cit9OworCisv KiBYZW46IERlc2NyaWJlcyBpbmZvcm1hdGlvbiByZXF1aXJlZCBmb3IgYSBYZW4gZG9tYWluICov CitzdHJ1Y3QgYXJtX3NtbXVfeGVuX2RvbWFpbiB7CisgICAgc3BpbmxvY2tfdAkJCWxvY2s7Cisg ICAgLyogTGlzdCBvZiBpb21tdSBkb21haW5zIGFzc29jaWF0ZWQgdG8gdGhpcyBkb21haW4gKi8K KyAgICBzdHJ1Y3QgbGlzdF9oZWFkCQljb250ZXh0czsKK307CisKKyNlbmRpZiAvKiBfX0FSTV9T TU1VX0hfXyAqLworCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vc21t dS12My5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL3NtbXUtdjMuYwppbmRleCBmNDM0 ODVmZTZlLi5mMGE2MTUyMWZiIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9h cm0vc21tdS12My5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9zbW11LXYzLmMK QEAgLTQ5LDI4ICs0OSw3IEBACiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8YXNtL3Bs YXRmb3JtLmg+CiAKLS8qIEFsaWFzIHRvIFhlbiBkZXZpY2UgdHJlZSBoZWxwZXJzICovCi0jZGVm aW5lIGRldmljZV9ub2RlIGR0X2RldmljZV9ub2RlCi0jZGVmaW5lIG9mX3BoYW5kbGVfYXJncyBk dF9waGFuZGxlX2FyZ3MKLSNkZWZpbmUgb2ZfZGV2aWNlX2lkIGR0X2RldmljZV9tYXRjaAotI2Rl ZmluZSBvZl9tYXRjaF9ub2RlIGR0X21hdGNoX25vZGUKLSNkZWZpbmUgb2ZfcHJvcGVydHlfcmVh ZF91MzIobnAsIHBuYW1lLCBvdXQpICghZHRfcHJvcGVydHlfcmVhZF91MzIobnAsIHBuYW1lLCBv dXQpKQotI2RlZmluZSBvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wgZHRfcHJvcGVydHlfcmVhZF9ib29s Ci0jZGVmaW5lIG9mX3BhcnNlX3BoYW5kbGVfd2l0aF9hcmdzIGR0X3BhcnNlX3BoYW5kbGVfd2l0 aF9hcmdzCi0KLS8qIFhlbjogSGVscGVycyB0byBnZXQgZGV2aWNlIE1NSU8gYW5kIElSUXMgKi8K LXN0cnVjdCByZXNvdXJjZSB7Ci0JdTY0IGFkZHI7Ci0JdTY0IHNpemU7Ci0JdW5zaWduZWQgaW50 IHR5cGU7Ci19OwotCi0jZGVmaW5lIHJlc291cmNlX3NpemUocmVzKSAoKHJlcyktPnNpemUpCi0K LSNkZWZpbmUgcGxhdGZvcm1fZGV2aWNlIGRldmljZQotCi0jZGVmaW5lIElPUkVTT1VSQ0VfTUVN IDAKLSNkZWZpbmUgSU9SRVNPVVJDRV9JUlEgMQorI2luY2x1ZGUgImFybV9zbW11LmgiCiAKIHN0 YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgKnBsYXRmb3JtX2dldF9yZXNvdXJjZShzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlICpwZGV2LAogCQkJCQkgICAgICB1bnNpZ25lZCBpbnQgdHlwZSwKQEAgLTIwMCw3 OSArMTc5LDYgQEAgc3RhdGljIHZvaWQgZG1hbV9mcmVlX2NvaGVyZW50KHN0cnVjdCBkZXZpY2Ug KmRldiwgc2l6ZV90IHNpemUsIHZvaWQgKnZhZGRyLAogCXhmcmVlKHZhZGRyKTsKIH0KIAotLyog WGVuOiBTdHViIG91dCBETUEgZG9tYWluIHJlbGF0ZWQgZnVuY3Rpb25zICovCi0jZGVmaW5lIGlv bW11X2dldF9kbWFfY29va2llKGRvbSkgMAotI2RlZmluZSBpb21tdV9wdXRfZG1hX2Nvb2tpZShk b20pCi0KLS8qIFhlbjogU3R1YiBvdXQgbW9kdWxlIHBhcmFtIHJlbGF0ZWQgZnVuY3Rpb24gKi8K LSNkZWZpbmUgbW9kdWxlX3BhcmFtX25hbWVkKGEsIGIsIGMsIGQpCi0jZGVmaW5lIE1PRFVMRV9Q QVJNX0RFU0MoYSwgYikKLQotI2RlZmluZSBkbWFfc2V0X21hc2tfYW5kX2NvaGVyZW50KGQsIGIp IDAKLQotI2RlZmluZSBvZl9kbWFfaXNfY29oZXJlbnQobikgMAotCi0jZGVmaW5lIE1PRFVMRV9E RVZJQ0VfVEFCTEUodHlwZSwgbmFtZSkKLQotc3RhdGljIHZvaWQgX19pb21lbSAqZGV2bV9pb3Jl bWFwX3Jlc291cmNlKHN0cnVjdCBkZXZpY2UgKmRldiwKLQkJCQkJICAgc3RydWN0IHJlc291cmNl ICpyZXMpCi17Ci0Jdm9pZCBfX2lvbWVtICpwdHI7Ci0KLQlpZiAoIXJlcyB8fCByZXMtPnR5cGUg IT0gSU9SRVNPVVJDRV9NRU0pIHsKLQkJZGV2X2VycihkZXYsICJJbnZhbGlkIHJlc291cmNlXG4i KTsKLQkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7Ci0JfQotCi0JcHRyID0gaW9yZW1hcF9ub2Nh Y2hlKHJlcy0+YWRkciwgcmVzLT5zaXplKTsKLQlpZiAoIXB0cikgewotCQlkZXZfZXJyKGRldiwK LQkJCSJpb3JlbWFwIGZhaWxlZCAoYWRkciAweCUiUFJJeDY0IiBzaXplIDB4JSJQUkl4NjQiKVxu IiwKLQkJCXJlcy0+YWRkciwgcmVzLT5zaXplKTsKLQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7 Ci0JfQotCi0JcmV0dXJuIHB0cjsKLX0KLQotLyogWGVuOiBDb21wYXRpYmlsaXR5IGRlZmluZSBm b3IgaW9tbXVfZG9tYWluX2dlb21ldHJ5LiovCi1zdHJ1Y3QgaW9tbXVfZG9tYWluX2dlb21ldHJ5 IHsKLQlkbWFfYWRkcl90IGFwZXJ0dXJlX3N0YXJ0OyAvKiBGaXJzdCBhZGRyZXNzIHRoYXQgY2Fu IGJlIG1hcHBlZCAgICAqLwotCWRtYV9hZGRyX3QgYXBlcnR1cmVfZW5kOyAgIC8qIExhc3QgYWRk cmVzcyB0aGF0IGNhbiBiZSBtYXBwZWQgICAgICovCi0JYm9vbCBmb3JjZV9hcGVydHVyZTsgICAg ICAgLyogRE1BIG9ubHkgYWxsb3dlZCBpbiBtYXBwYWJsZSByYW5nZT8gKi8KLX07Ci0KLQotLyog WGVuOiBUeXBlIGRlZmluaXRpb25zIGZvciBpb21tdV9kb21haW4gKi8KLSNkZWZpbmUgSU9NTVVf RE9NQUlOX1VOTUFOQUdFRCAwCi0jZGVmaW5lIElPTU1VX0RPTUFJTl9ETUEgMQotI2RlZmluZSBJ T01NVV9ET01BSU5fSURFTlRJVFkgMgotCi0vKiBYZW46IER1bW15IGlvbW11X2RvbWFpbiAqLwot c3RydWN0IGlvbW11X2RvbWFpbiB7Ci0JLyogUnVudGltZSBTTU1VIGNvbmZpZ3VyYXRpb24gZm9y IHRoaXMgaW9tbXVfZG9tYWluICovCi0Jc3RydWN0IGFybV9zbW11X2RvbWFpbgkJKnByaXY7Ci0J dW5zaWduZWQgaW50IHR5cGU7Ci0KLQkvKiBEdW1teSBjb21wYXRpYmlsaXR5IGRlZmluZXMgKi8K LQl1bnNpZ25lZCBsb25nIHBnc2l6ZV9iaXRtYXA7Ci0Jc3RydWN0IGlvbW11X2RvbWFpbl9nZW9t ZXRyeSBnZW9tZXRyeTsKLQotCWF0b21pY190IHJlZjsKLQkvKgotCSAqIFVzZWQgdG8gbGluayBp b21tdV9kb21haW4gY29udGV4dHMgZm9yIGEgc2FtZSBkb21haW4uCi0JICogVGhlcmUgaXMgYXQg bGVhc3Qgb25lIHBlci1TTU1VIHRvIHVzZWQgYnkgdGhlIGRvbWFpbi4KLQkgKi8KLQlzdHJ1Y3Qg bGlzdF9oZWFkCQlsaXN0OwotfTsKLQotLyogWGVuOiBEZXNjcmliZXMgaW5mb3JtYXRpb24gcmVx dWlyZWQgZm9yIGEgWGVuIGRvbWFpbiAqLwotc3RydWN0IGFybV9zbW11X3hlbl9kb21haW4gewot CXNwaW5sb2NrX3QJCQlsb2NrOwotCS8qIExpc3Qgb2YgaW9tbXUgZG9tYWlucyBhc3NvY2lhdGVk IHRvIHRoaXMgZG9tYWluICovCi0Jc3RydWN0IGxpc3RfaGVhZAkJY29udGV4dHM7Ci19OwotCiAv KgogICogWGVuOiBJbmZvcm1hdGlvbiBhYm91dCBlYWNoIGRldmljZSBzdG9yZWQgaW4gZGV2LT5h cmNoZGF0YS5pb21tdQogICoKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2Fy bS9zbW11LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vc21tdS5jCmluZGV4IGFkOTU2 ZDViOGQuLjRjMDQzOTFlMjEgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2Fy bS9zbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL3NtbXUuYwpAQCAtNDEs NiArNDEsNyBAQAogI2luY2x1ZGUgPHhlbi9pcnEuaD4KICNpbmNsdWRlIDx4ZW4vbGliLmg+CiAj aW5jbHVkZSA8eGVuL2xpc3QuaD4KKyNpbmNsdWRlIDx4ZW4vbGludXhfY29tcGF0Lmg+CiAjaW5j bHVkZSA8eGVuL21tLmg+CiAjaW5jbHVkZSA8eGVuL3ZtYXAuaD4KICNpbmNsdWRlIDx4ZW4vcmJ0 cmVlLmg+CkBAIC01MSwzNiArNTIsMTMgQEAKICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRl IDxhc20vcGxhdGZvcm0uaD4KIAorI2luY2x1ZGUgImFybV9zbW11LmgiIC8qIE5vdCBhIHNlbGYg Y29udGFpbmVkIGhlYWRlci4gU28gbGFzdCBpbiB0aGUgbGlzdCAqLwogLyogWGVuOiBUaGUgYmVs b3cgZGVmaW5lcyBhcmUgcmVkZWZpbmVkIHdpdGhpbiB0aGUgZmlsZS4gVW5kZWYgaXQgKi8KICN1 bmRlZiBTQ1RMUl9BRkUKICN1bmRlZiBTQ1RMUl9UUkUKICN1bmRlZiBTQ1RMUl9NCiAjdW5kZWYg VFRCQ1JfRUFFCiAKLS8qIEFsaWFzIHRvIFhlbiBkZXZpY2UgdHJlZSBoZWxwZXJzICovCi0jZGVm aW5lIGRldmljZV9ub2RlIGR0X2RldmljZV9ub2RlCi0jZGVmaW5lIG9mX3BoYW5kbGVfYXJncyBk dF9waGFuZGxlX2FyZ3MKLSNkZWZpbmUgb2ZfZGV2aWNlX2lkIGR0X2RldmljZV9tYXRjaAotI2Rl ZmluZSBvZl9tYXRjaF9ub2RlIGR0X21hdGNoX25vZGUKLSNkZWZpbmUgb2ZfcHJvcGVydHlfcmVh ZF91MzIobnAsIHBuYW1lLCBvdXQpICghZHRfcHJvcGVydHlfcmVhZF91MzIobnAsIHBuYW1lLCBv dXQpKQotI2RlZmluZSBvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wgZHRfcHJvcGVydHlfcmVhZF9ib29s Ci0jZGVmaW5lIG9mX3BhcnNlX3BoYW5kbGVfd2l0aF9hcmdzIGR0X3BhcnNlX3BoYW5kbGVfd2l0 aF9hcmdzCi0KLS8qIFhlbjogSGVscGVycyB0byBnZXQgZGV2aWNlIE1NSU8gYW5kIElSUXMgKi8K LXN0cnVjdCByZXNvdXJjZQotewotCXU2NCBhZGRyOwotCXU2NCBzaXplOwotCXVuc2lnbmVkIGlu dCB0eXBlOwotfTsKLQotI2RlZmluZSByZXNvdXJjZV9zaXplKHJlcykgKHJlcyktPnNpemU7Ci0K LSNkZWZpbmUgcGxhdGZvcm1fZGV2aWNlIGRldmljZQotCi0jZGVmaW5lIElPUkVTT1VSQ0VfTUVN IDAKLSNkZWZpbmUgSU9SRVNPVVJDRV9JUlEgMQotCiBzdGF0aWMgc3RydWN0IHJlc291cmNlICpw bGF0Zm9ybV9nZXRfcmVzb3VyY2Uoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAkJCQkJ ICAgICAgdW5zaWduZWQgaW50IHR5cGUsCiAJCQkJCSAgICAgIHVuc2lnbmVkIGludCBudW0pCkBA IC0xMTgsNTggKzk2LDYgQEAgc3RhdGljIHN0cnVjdCByZXNvdXJjZSAqcGxhdGZvcm1fZ2V0X3Jl c291cmNlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiAKIC8qIFhlbjogSGVscGVycyBm b3IgSVJRIGZ1bmN0aW9ucyAqLwogI2RlZmluZSByZXF1ZXN0X2lycShpcnEsIGZ1bmMsIGZsYWdz LCBuYW1lLCBkZXYpIHJlcXVlc3RfaXJxKGlycSwgZmxhZ3MsIGZ1bmMsIG5hbWUsIGRldikKLSNk ZWZpbmUgZnJlZV9pcnEgcmVsZWFzZV9pcnEKLQotZW51bSBpcnFyZXR1cm4gewotCUlSUV9OT05F CT0gKDAgPDwgMCksCi0JSVJRX0hBTkRMRUQJPSAoMSA8PCAwKSwKLX07Ci0KLXR5cGVkZWYgZW51 bSBpcnFyZXR1cm4gaXJxcmV0dXJuX3Q7Ci0KLS8qIERldmljZSBsb2dnZXIgZnVuY3Rpb25zCi0g KiBUT0RPOiBIYW5kbGUgUENJCi0gKi8KLSNkZWZpbmUgZGV2X3ByaW50KGRldiwgbHZsLCBmbXQs IC4uLikJCQkJCQlcCi0JIHByaW50ayhsdmwgInNtbXU6ICVzOiAiIGZtdCwgZHRfbm9kZV9mdWxs X25hbWUoZGV2X3RvX2R0KGRldikpLCAjIyBfX1ZBX0FSR1NfXykKLQotI2RlZmluZSBkZXZfZGJn KGRldiwgZm10LCAuLi4pIGRldl9wcmludChkZXYsIFhFTkxPR19ERUJVRywgZm10LCAjIyBfX1ZB X0FSR1NfXykKLSNkZWZpbmUgZGV2X25vdGljZShkZXYsIGZtdCwgLi4uKSBkZXZfcHJpbnQoZGV2 LCBYRU5MT0dfSU5GTywgZm10LCAjIyBfX1ZBX0FSR1NfXykKLSNkZWZpbmUgZGV2X3dhcm4oZGV2 LCBmbXQsIC4uLikgZGV2X3ByaW50KGRldiwgWEVOTE9HX1dBUk5JTkcsIGZtdCwgIyMgX19WQV9B UkdTX18pCi0jZGVmaW5lIGRldl9lcnIoZGV2LCBmbXQsIC4uLikgZGV2X3ByaW50KGRldiwgWEVO TE9HX0VSUiwgZm10LCAjIyBfX1ZBX0FSR1NfXykKLQotI2RlZmluZSBkZXZfZXJyX3JhdGVsaW1p dGVkKGRldiwgZm10LCAuLi4pCQkJCQlcCi0JIGRldl9wcmludChkZXYsIFhFTkxPR19FUlIsIGZt dCwgIyMgX19WQV9BUkdTX18pCi0KLSNkZWZpbmUgZGV2X25hbWUoZGV2KSBkdF9ub2RlX2Z1bGxf bmFtZShkZXZfdG9fZHQoZGV2KSkKLQotLyogQWxpYXMgdG8gWGVuIGFsbG9jYXRpb24gaGVscGVy cyAqLwotI2RlZmluZSBrZnJlZSB4ZnJlZQotI2RlZmluZSBrbWFsbG9jKHNpemUsIGZsYWdzKQkJ X3htYWxsb2Moc2l6ZSwgc2l6ZW9mKHZvaWQgKikpCi0jZGVmaW5lIGt6YWxsb2Moc2l6ZSwgZmxh Z3MpCQlfeHphbGxvYyhzaXplLCBzaXplb2Yodm9pZCAqKSkKLSNkZWZpbmUgZGV2bV9remFsbG9j KGRldiwgc2l6ZSwgZmxhZ3MpCV94emFsbG9jKHNpemUsIHNpemVvZih2b2lkICopKQotI2RlZmlu ZSBrbWFsbG9jX2FycmF5KHNpemUsIG4sIGZsYWdzKQlfeG1hbGxvY19hcnJheShzaXplLCBzaXpl b2Yodm9pZCAqKSwgbikKLQotc3RhdGljIHZvaWQgX19pb21lbSAqZGV2bV9pb3JlbWFwX3Jlc291 cmNlKHN0cnVjdCBkZXZpY2UgKmRldiwKLQkJCQkJICAgc3RydWN0IHJlc291cmNlICpyZXMpCi17 Ci0Jdm9pZCBfX2lvbWVtICpwdHI7Ci0KLQlpZiAoIXJlcyB8fCByZXMtPnR5cGUgIT0gSU9SRVNP VVJDRV9NRU0pIHsKLQkJZGV2X2VycihkZXYsICJJbnZhbGlkIHJlc291cmNlXG4iKTsKLQkJcmV0 dXJuIEVSUl9QVFIoLUVJTlZBTCk7Ci0JfQotCi0JcHRyID0gaW9yZW1hcF9ub2NhY2hlKHJlcy0+ YWRkciwgcmVzLT5zaXplKTsKLQlpZiAoIXB0cikgewotCQlkZXZfZXJyKGRldiwKLQkJCSJpb3Jl bWFwIGZhaWxlZCAoYWRkciAweCUiUFJJeDY0IiBzaXplIDB4JSJQUkl4NjQiKVxuIiwKLQkJCXJl cy0+YWRkciwgcmVzLT5zaXplKTsKLQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Ci0JfQotCi0J cmV0dXJuIHB0cjsKLX0KIAogLyogWGVuIGRvZXNuJ3QgaGFuZGxlIElPTU1VIGZhdWx0ICovCiAj ZGVmaW5lIHJlcG9ydF9pb21tdV9mYXVsdCguLi4pCTEKQEAgLTE5NiwzMiArMTIyLDYgQEAgc3Rh dGljIGlubGluZSBpbnQgcGNpX2Zvcl9lYWNoX2RtYV9hbGlhcyhzdHJ1Y3QgcGNpX2RldiAqcGRl diwKICNkZWZpbmUgUEhZU19NQVNLX1NISUZUCQlQQUREUl9CSVRTCiB0eXBlZGVmIHBhZGRyX3Qg cGh5c19hZGRyX3Q7CiAKLSNkZWZpbmUgVkFfQklUUwkJMAkvKiBPbmx5IHVzZWQgZm9yIGNvbmZp Z3VyaW5nIHN0YWdlLTEgaW5wdXQgc2l6ZSAqLwotCi0jZGVmaW5lIE1PRFVMRV9ERVZJQ0VfVEFC TEUodHlwZSwgbmFtZSkKLSNkZWZpbmUgbW9kdWxlX3BhcmFtX25hbWVkKG5hbWUsIHZhbHVlLCB0 eXBlLCBwZXJtKQotI2RlZmluZSBNT0RVTEVfUEFSTV9ERVNDKF9wYXJtLCBkZXNjKQotCi0vKiBY ZW46IER1bW15IGlvbW11X2RvbWFpbiAqLwotc3RydWN0IGlvbW11X2RvbWFpbgotewotCS8qIFJ1 bnRpbWUgU01NVSBjb25maWd1cmF0aW9uIGZvciB0aGlzIGlvbW11X2RvbWFpbiAqLwotCXN0cnVj dCBhcm1fc21tdV9kb21haW4JCSpwcml2OwotCi0JYXRvbWljX3QgcmVmOwotCS8qIFVzZWQgdG8g bGluayBpb21tdV9kb21haW4gY29udGV4dHMgZm9yIGEgc2FtZSBkb21haW4uCi0JICogVGhlcmUg aXMgYXQgbGVhc3Qgb25lIHBlci1TTU1VIHRvIHVzZWQgYnkgdGhlIGRvbWFpbi4KLQkgKiAqLwot CXN0cnVjdCBsaXN0X2hlYWQJCWxpc3Q7Ci19OwotCi0vKiBYZW46IERlc2NyaWJlcyBpbmZvcm1h dGlvbnMgcmVxdWlyZWQgZm9yIGEgWGVuIGRvbWFpbiAqLwotc3RydWN0IGFybV9zbW11X3hlbl9k b21haW4gewotCXNwaW5sb2NrX3QJCQlsb2NrOwotCS8qIExpc3Qgb2YgY29udGV4dCAoaS5lIGlv bW11X2RvbWFpbikgYXNzb2NpYXRlZCB0byB0aGlzIGRvbWFpbiAqLwotCXN0cnVjdCBsaXN0X2hl YWQJCWNvbnRleHRzOwotfTsKLQogLyoKICAqIFhlbjogSW5mb3JtYXRpb24gYWJvdXQgZWFjaCBk ZXZpY2Ugc3RvcmVkIGluIGRldi0+YXJjaGRhdGEuaW9tbXUKICAqCi0tIAoyLjE0LjEKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFp bGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhl bnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs