From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Clark Subject: [RFC 2/4] drm: writeback: Add out-fences for writeback connectors Date: Fri, 23 Feb 2018 08:17:52 -0500 Message-ID: <20180223131758.18362-3-robdclark@gmail.com> References: <20180223131758.18362-1-robdclark@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180223131758.18362-1-robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Maarten Lankhorst , linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Liviu Dudau , linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, David Airlie , Rob Clark , Sean Paul , Gustavo Padovan , Mihail Atanassov , freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Brian Starkey List-Id: linux-arm-msm@vger.kernel.org RnJvbTogQnJpYW4gU3RhcmtleSA8YnJpYW4uc3RhcmtleUBhcm0uY29tPgoKQWRkIHRoZSBXUklU RUJBQ0tfT1VUX0ZFTkNFX1BUUiBwcm9wZXJ0eSB0byB3cml0ZWJhY2sgY29ubmVjdG9ycywgdG8K ZW5hYmxlIHVzZXJzcGFjZSB0byBnZXQgYSBmZW5jZSB3aGljaCB3aWxsIHNpZ25hbCBvbmNlIHRo ZSB3cml0ZWJhY2sgaXMKY29tcGxldGUuIEl0IGlzIG5vdCBhbGxvd2VkIHRvIHJlcXVlc3QgYW4g b3V0LWZlbmNlIHdpdGhvdXQgYQpmcmFtZWJ1ZmZlciBhdHRhY2hlZCB0byB0aGUgY29ubmVjdG9y LgoKQSB0aW1lbGluZSBpcyBhZGRlZCB0byBkcm1fd3JpdGViYWNrX2Nvbm5lY3RvciBmb3IgdXNl IGJ5IHRoZSB3cml0ZWJhY2sKb3V0LWZlbmNlcy4KCkluIHRoZSBjYXNlIG9mIGEgY29tbWl0IGZh aWx1cmUgb3IgRFJNX01PREVfQVRPTUlDX1RFU1RfT05MWSwgdGhlIGZlbmNlCmlzIHNldCB0byAt MS4KCkNoYW5nZXMgZnJvbSB2MjoKIC0gUmViYXNlIG9udG8gR3VzdGF2byBQYWRvdmFuJ3Mgdjkg ZXhwbGljaXQgc3luYyBzZXJpZXMKIC0gQ2hhbmdlIG91dF9mZW5jZV9wdHIgdHlwZSB0byBzMzIg X191c2VyICoKIC0gU2V0ICpvdXRfZmVuY2VfcHRyIHRvIC0xIGluIGRybV9hdG9taWNfY29ubmVj dG9yX3NldF9wcm9wZXJ0eQogLSBTdG9yZSBmZW5jZSBpbiBkcm1fd3JpdGViYWNrX2pvYgogR3Vz dGF2byBQYWRvdmFuOgogLSBNb3ZlIG91dF9mZW5jZV9wdHIgb3V0IG9mIGNvbm5lY3Rvcl9zdGF0 ZQogLSBTaWduYWwgZmVuY2UgZnJvbSBkcm1fd3JpdGViYWNrX3NpZ25hbF9jb21wbGV0aW9uIGlu c3RlYWQgb2YKICAgaW4gZHJpdmVyIGRpcmVjdGx5CgpDaGFuZ2VzIGZyb20gdjM6CiAtIFJlYmFz ZSBvbnRvIDdlOTA4MWM1YWFjNyBkcm0vZmVuY2U6IGZpeCBtZW1vcnkgb3ZlcndyaXRlIHdoZW4g c2V0dGluZyBvdXRfZmVuY2UgZmQKICAgKGNoYW5nZSBvdXRfZmVuY2VfcHRyIHRvIHMzMiBfX3Vz ZXIgKiwgZm9yIHJlYWwgdGhpcyB0aW1lLikKIC0gVXBkYXRlIGRvY3VtZW50YXRpb24gYXJvdW5k IFdSSVRFQkFDS19PVVRfRkVOQ0VfUFRSCgpTaWduZWQtb2ZmLWJ5OiBCcmlhbiBTdGFya2V5IDxi cmlhbi5zdGFya2V5QGFybS5jb20+CltyZWJhc2VkIGFuZCBmaXhlZCBjb25mbGljdHNdClNpZ25l ZC1vZmYtYnk6IE1paGFpbCBBdGFuYXNzb3YgPG1paGFpbC5hdGFuYXNzb3ZAYXJtLmNvbT4KU2ln bmVkLW9mZi1ieTogTGl2aXUgRHVkYXUgPGxpdml1LmR1ZGF1QGFybS5jb20+ClNpZ25lZC1vZmYt Ynk6IFJvYiBDbGFyayA8cm9iZGNsYXJrQGdtYWlsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0v ZHJtX2F0b21pYy5jICAgIHwgIDk5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t LQogZHJpdmVycy9ncHUvZHJtL2RybV93cml0ZWJhY2suYyB8IDEwOSArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystCiBpbmNsdWRlL2RybS9kcm1fYXRvbWljLmggICAgICAg IHwgICA4ICsrKwogaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oICAgICB8ICAgOCArLS0KIGlu Y2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oICAgfCAgIDggKysrCiBpbmNsdWRlL2RybS9kcm1f d3JpdGViYWNrLmggICAgIHwgIDQxICsrKysrKysrKysrKysrLQogNiBmaWxlcyBjaGFuZ2VkLCAy NTcgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKaW5kZXgg MDE5ZjEzMWZlOGJlLi5mYzhjNGRhNDA5ZmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fYXRvbWljLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwpAQCAtMzE4LDYg KzMxOCwzNSBAQCBzdGF0aWMgczMyIF9fdXNlciAqZ2V0X291dF9mZW5jZV9mb3JfY3J0YyhzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJcmV0dXJuIGZlbmNlX3B0cjsKIH0KIAorc3Rh dGljIGludCBzZXRfb3V0X2ZlbmNlX2Zvcl9jb25uZWN0b3Ioc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKnN0YXRlLAorCQkJCQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAorCQkJCQlz MzIgX191c2VyICpmZW5jZV9wdHIpCit7CisJdW5zaWduZWQgaW50IGluZGV4ID0gZHJtX2Nvbm5l Y3Rvcl9pbmRleChjb25uZWN0b3IpOworCisJaWYgKCFmZW5jZV9wdHIpCisJCXJldHVybiAwOwor CisJaWYgKHB1dF91c2VyKC0xLCBmZW5jZV9wdHIpKQorCQlyZXR1cm4gLUVGQVVMVDsKKworCXN0 YXRlLT5jb25uZWN0b3JzW2luZGV4XS5vdXRfZmVuY2VfcHRyID0gZmVuY2VfcHRyOworCisJcmV0 dXJuIDA7Cit9CisKK3N0YXRpYyBzMzIgX191c2VyICpnZXRfb3V0X2ZlbmNlX2Zvcl9jb25uZWN0 b3Ioc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJCQkgICAgICAgc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwl1bnNpZ25lZCBpbnQgaW5kZXggPSBkcm1fY29u bmVjdG9yX2luZGV4KGNvbm5lY3Rvcik7CisJczMyIF9fdXNlciAqZmVuY2VfcHRyOworCisJZmVu Y2VfcHRyID0gc3RhdGUtPmNvbm5lY3RvcnNbaW5kZXhdLm91dF9mZW5jZV9wdHI7CisJc3RhdGUt PmNvbm5lY3RvcnNbaW5kZXhdLm91dF9mZW5jZV9wdHIgPSBOVUxMOworCisJcmV0dXJuIGZlbmNl X3B0cjsKK30KKwogLyoqCiAgKiBkcm1fYXRvbWljX3NldF9tb2RlX2Zvcl9jcnRjIC0gc2V0IG1v ZGUgZm9yIENSVEMKICAqIEBzdGF0ZTogdGhlIENSVEMgd2hvc2UgaW5jb21pbmcgc3RhdGUgdG8g dXBkYXRlCkBAIC02NzYsNiArNzA1LDEyIEBAIHN0YXRpYyBpbnQgZHJtX2F0b21pY19jb25uZWN0 b3JfY2hlY2soc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAkJcmV0dXJuIC1FSU5W QUw7CiAJfQogCisJaWYgKHdyaXRlYmFja19qb2ItPm91dF9mZW5jZSAmJiAhd3JpdGViYWNrX2pv Yi0+ZmIpIHsKKwkJRFJNX0RFQlVHX0FUT01JQygiW0NPTk5FQ1RPUjolZDolc10gcmVxdWVzdGlu ZyBvdXQtZmVuY2Ugd2l0aG91dCBmcmFtZWJ1ZmZlclxuIiwKKwkJCQkgY29ubmVjdG9yLT5iYXNl LmlkLCBjb25uZWN0b3ItPm5hbWUpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKIAlyZXR1cm4g MDsKIH0KIApAQCAtMTI3Nyw2ICsxMzEyLDExIEBAIHN0YXRpYyBpbnQgZHJtX2F0b21pY19jb25u ZWN0b3Jfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJCWlm IChmYikKIAkJCWRybV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5jZShmYik7CiAJCXJldHVybiByZXQ7 CisJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPndyaXRlYmFja19vdXRfZmVuY2VfcHRy X3Byb3BlcnR5KSB7CisJCXMzMiBfX3VzZXIgKmZlbmNlX3B0ciA9IHU2NF90b191c2VyX3B0cih2 YWwpOworCisJCXJldHVybiBzZXRfb3V0X2ZlbmNlX2Zvcl9jb25uZWN0b3Ioc3RhdGUtPnN0YXRl LCBjb25uZWN0b3IsCisJCQkJCQkgICBmZW5jZV9wdHIpOwogCX0gZWxzZSBpZiAoY29ubmVjdG9y LT5mdW5jcy0+YXRvbWljX3NldF9wcm9wZXJ0eSkgewogCQlyZXR1cm4gY29ubmVjdG9yLT5mdW5j cy0+YXRvbWljX3NldF9wcm9wZXJ0eShjb25uZWN0b3IsCiAJCQkJc3RhdGUsIHByb3BlcnR5LCB2 YWwpOwpAQCAtMTM2MSw2ICsxNDAxLDggQEAgZHJtX2F0b21pY19jb25uZWN0b3JfZ2V0X3Byb3Bl cnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJfSBlbHNlIGlmIChwcm9wZXJ0 eSA9PSBjb25maWctPndyaXRlYmFja19mYl9pZF9wcm9wZXJ0eSkgewogCQkvKiBXcml0ZWJhY2sg ZnJhbWVidWZmZXIgaXMgb25lLXNob3QsIHdyaXRlIGFuZCBmb3JnZXQgKi8KIAkJKnZhbCA9IDA7 CisJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPndyaXRlYmFja19vdXRfZmVuY2VfcHRy X3Byb3BlcnR5KSB7CisJCSp2YWwgPSAwOwogCX0gZWxzZSBpZiAoY29ubmVjdG9yLT5mdW5jcy0+ YXRvbWljX2dldF9wcm9wZXJ0eSkgewogCQlyZXR1cm4gY29ubmVjdG9yLT5mdW5jcy0+YXRvbWlj X2dldF9wcm9wZXJ0eShjb25uZWN0b3IsCiAJCQkJc3RhdGUsIHByb3BlcnR5LCB2YWwpOwpAQCAt MjIyMSw3ICsyMjYzLDcgQEAgc3RhdGljIGludCBzZXR1cF9vdXRfZmVuY2Uoc3RydWN0IGRybV9v dXRfZmVuY2Vfc3RhdGUgKmZlbmNlX3N0YXRlLAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50 IHByZXBhcmVfY3J0Y19zaWduYWxpbmcoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKK3N0YXRpYyBp bnQgcHJlcGFyZV9zaWduYWxpbmcoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkgIHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJCQkgIHN0cnVjdCBkcm1fbW9kZV9hdG9taWMg KmFyZywKIAkJCQkgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LApAQCAtMjIzMCw2ICsyMjcy LDggQEAgc3RhdGljIGludCBwcmVwYXJlX2NydGNfc2lnbmFsaW5nKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCiB7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjOwogCXN0cnVjdCBkcm1fY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubjsKKwlzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZTsKIAlpbnQgaSwgYyA9IDAsIHJldDsKIAogCWlm IChhcmctPmZsYWdzICYgRFJNX01PREVfQVRPTUlDX1RFU1RfT05MWSkKQEAgLTIyOTUsNiArMjMz OSw0MyBAQCBzdGF0aWMgaW50IHByZXBhcmVfY3J0Y19zaWduYWxpbmcoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKIAkJYysrOwogCX0KIAorCWZvcl9lYWNoX25ld19jb25uZWN0b3JfaW5fc3RhdGUo c3RhdGUsIGNvbm4sIGNvbm5fc3RhdGUsIGkpIHsKKwkJc3RydWN0IGRybV93cml0ZWJhY2tfam9i ICpqb2I7CisJCXN0cnVjdCBkcm1fb3V0X2ZlbmNlX3N0YXRlICpmOworCQlzdHJ1Y3QgZG1hX2Zl bmNlICpmZW5jZTsKKwkJczMyIF9fdXNlciAqZmVuY2VfcHRyOworCisJCWZlbmNlX3B0ciA9IGdl dF9vdXRfZmVuY2VfZm9yX2Nvbm5lY3RvcihzdGF0ZSwgY29ubik7CisJCWlmICghZmVuY2VfcHRy KQorCQkJY29udGludWU7CisKKwkJam9iID0gZHJtX2F0b21pY19nZXRfd3JpdGViYWNrX2pvYihj b25uX3N0YXRlKTsKKwkJaWYgKCFqb2IpCisJCQlyZXR1cm4gLUVOT01FTTsKKworCQlmID0ga3Jl YWxsb2MoKmZlbmNlX3N0YXRlLCBzaXplb2YoKipmZW5jZV9zdGF0ZSkgKgorCQkJICAgICAoKm51 bV9mZW5jZXMgKyAxKSwgR0ZQX0tFUk5FTCk7CisJCWlmICghZikKKwkJCXJldHVybiAtRU5PTUVN OworCisJCW1lbXNldCgmZlsqbnVtX2ZlbmNlc10sIDAsIHNpemVvZigqZikpOworCisJCWZbKm51 bV9mZW5jZXNdLm91dF9mZW5jZV9wdHIgPSBmZW5jZV9wdHI7CisJCSpmZW5jZV9zdGF0ZSA9IGY7 CisKKwkJZmVuY2UgPSBkcm1fd3JpdGViYWNrX2dldF9vdXRfZmVuY2UoKHN0cnVjdCBkcm1fd3Jp dGViYWNrX2Nvbm5lY3RvciAqKWNvbm4pOworCQlpZiAoIWZlbmNlKQorCQkJcmV0dXJuIC1FTk9N RU07CisKKwkJcmV0ID0gc2V0dXBfb3V0X2ZlbmNlKCZmWygqbnVtX2ZlbmNlcykrK10sIGZlbmNl KTsKKwkJaWYgKHJldCkgeworCQkJZG1hX2ZlbmNlX3B1dChmZW5jZSk7CisJCQlyZXR1cm4gcmV0 OworCQl9CisKKwkJam9iLT5vdXRfZmVuY2UgPSBmZW5jZTsKKwl9CisKIAkvKgogCSAqIEhhdmlu ZyB0aGlzIGZsYWcgbWVhbnMgdXNlciBtb2RlIHBlbmRzIG9uIGV2ZW50IHdoaWNoIHdpbGwgbmV2 ZXIKIAkgKiByZWFjaCBkdWUgdG8gbGFjayBvZiBhdCBsZWFzdCBvbmUgQ1JUQyBmb3Igc2lnbmFs aW5nCkBAIC0yMzA1LDExICsyMzg2LDExIEBAIHN0YXRpYyBpbnQgcHJlcGFyZV9jcnRjX3NpZ25h bGluZyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9p ZCBjb21wbGV0ZV9jcnRjX3NpZ25hbGluZyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCSAg ICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCi0JCQkJICAgIHN0cnVjdCBkcm1fb3V0 X2ZlbmNlX3N0YXRlICpmZW5jZV9zdGF0ZSwKLQkJCQkgICAgdW5zaWduZWQgaW50IG51bV9mZW5j ZXMsCi0JCQkJICAgIGJvb2wgaW5zdGFsbF9mZHMpCitzdGF0aWMgdm9pZCBjb21wbGV0ZV9zaWdu YWxpbmcoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCSAgICAgICBzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqc3RhdGUsCisJCQkgICAgICAgc3RydWN0IGRybV9vdXRfZmVuY2Vfc3RhdGUgKmZl bmNlX3N0YXRlLAorCQkJICAgICAgIHVuc2lnbmVkIGludCBudW1fZmVuY2VzLAorCQkJICAgICAg IGJvb2wgaW5zdGFsbF9mZHMpCiB7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjOwogCXN0cnVjdCBk cm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKQEAgLTI0ODgsOCArMjU2OSw4IEBAIGludCBkcm1f bW9kZV9hdG9taWNfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJZHJtX21vZGVfb2Jq ZWN0X3B1dChvYmopOwogCX0KIAotCXJldCA9IHByZXBhcmVfY3J0Y19zaWduYWxpbmcoZGV2LCBz dGF0ZSwgYXJnLCBmaWxlX3ByaXYsICZmZW5jZV9zdGF0ZSwKLQkJCQkgICAgICZudW1fZmVuY2Vz KTsKKwlyZXQgPSBwcmVwYXJlX3NpZ25hbGluZyhkZXYsIHN0YXRlLCBhcmcsIGZpbGVfcHJpdiwg JmZlbmNlX3N0YXRlLAorCQkJCSZudW1fZmVuY2VzKTsKIAlpZiAocmV0KQogCQlnb3RvIG91dDsK IApAQCAtMjUwNyw3ICsyNTg4LDcgQEAgaW50IGRybV9tb2RlX2F0b21pY19pb2N0bChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAogb3V0OgogCWRybV9hdG9taWNfY2xlYW5fb2xkX2ZiKGRldiwgcGxh bmVfbWFzaywgcmV0KTsKIAotCWNvbXBsZXRlX2NydGNfc2lnbmFsaW5nKGRldiwgc3RhdGUsIGZl bmNlX3N0YXRlLCBudW1fZmVuY2VzLCAhcmV0KTsKKwljb21wbGV0ZV9zaWduYWxpbmcoZGV2LCBz dGF0ZSwgZmVuY2Vfc3RhdGUsIG51bV9mZW5jZXMsICFyZXQpOwogCiAJaWYgKHJldCA9PSAtRURF QURMSykgewogCQlkcm1fYXRvbWljX3N0YXRlX2NsZWFyKHN0YXRlKTsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1fd3JpdGViYWNrLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3dyaXRl YmFjay5jCmluZGV4IGRhNjFmOTI5Y2JjMy4uODM5ZTc5OTMyYzE5IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX3dyaXRlYmFjay5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fd3Jp dGViYWNrLmMKQEAgLTEzLDYgKzEzLDcgQEAKICNpbmNsdWRlIDxkcm0vZHJtX3Byb3BlcnR5Lmg+ CiAjaW5jbHVkZSA8ZHJtL2RybV93cml0ZWJhY2suaD4KICNpbmNsdWRlIDxkcm0vZHJtUC5oPgor I2luY2x1ZGUgPGxpbnV4L2RtYS1mZW5jZS5oPgogCiAvKioKICAqIERPQzogb3ZlcnZpZXcKQEAg LTMwLDYgKzMxLDE2IEBACiAgKiBmcmFtZWJ1ZmZlciBhcHBsaWVzIG9ubHkgdG8gYSBzaW5nbGUg Y29tbWl0IChzZWUgYmVsb3cpLiBBIGZyYW1lYnVmZmVyIG1heQogICogbm90IGJlIGF0dGFjaGVk IHdoaWxlIHRoZSBDUlRDIGlzIG9mZi4KICAqCisgKiBVbmxpa2Ugd2l0aCBwbGFuZXMsIHdoZW4g YSB3cml0ZWJhY2sgZnJhbWVidWZmZXIgaXMgcmVtb3ZlZCBieSB1c2Vyc3BhY2UgRFJNCisgKiBt YWtlcyBubyBhdHRlbXB0IHRvIHJlbW92ZSBpdCBmcm9tIGFjdGl2ZSB1c2UgYnkgdGhlIGNvbm5l Y3Rvci4gVGhpcyBpcworICogYmVjYXVzZSBubyBtZXRob2QgaXMgcHJvdmlkZWQgdG8gYWJvcnQg YSB3cml0ZWJhY2sgb3BlcmF0aW9uLCBhbmQgaW4gYW55CisgKiBjYXNlIG1ha2luZyBhIG5ldyBj b21taXQgd2hpbHN0IGEgd3JpdGViYWNrIGlzIG9uZ29pbmcgaXMgdW5kZWZpbmVkIChzZWUKKyAq IFdSSVRFQkFDS19PVVRfRkVOQ0VfUFRSIGJlbG93KS4gQXMgc29vbiBhcyB0aGUgY3VycmVudCB3 cml0ZWJhY2sgaXMgZmluaXNoZWQsCisgKiB0aGUgZnJhbWVidWZmZXIgd2lsbCBhdXRvbWF0aWNh bGx5IG5vIGxvbmdlciBiZSBpbiBhY3RpdmUgdXNlLiBBcyBpdCB3aWxsCisgKiBhbHNvIGhhdmUg YWxyZWFkeSBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgZnJhbWVidWZmZXIgbGlzdCwgdGhlcmUgd2ls bCBiZSBubworICogd2F5IGZvciBhbnkgdXNlcnNwYWNlIGFwcGxpY2F0aW9uIHRvIHJldHJpZXZl IGEgcmVmZXJlbmNlIHRvIGl0IGluIHRoZQorICogaW50ZXJ2ZW5pbmcgcGVyaW9kLgorICoKICAq IFdyaXRlYmFjayBjb25uZWN0b3JzIGhhdmUgc29tZSBhZGRpdGlvbmFsIHByb3BlcnRpZXMsIHdo aWNoIHVzZXJzcGFjZQogICogY2FuIHVzZSB0byBxdWVyeSBhbmQgY29udHJvbCB0aGVtOgogICoK QEAgLTQ2LDggKzU3LDU0IEBACiAgKglkYXRhIGlzIGFuIGFycmF5IG9mIHUzMiBEUk1fRk9STUFU XyogZm91cmNjIHZhbHVlcy4KICAqCVVzZXJzcGFjZSBjYW4gdXNlIHRoaXMgYmxvYiB0byBmaW5k IG91dCB3aGF0IHBpeGVsIGZvcm1hdHMgYXJlIHN1cHBvcnRlZAogICoJYnkgdGhlIGNvbm5lY3Rv cidzIHdyaXRlYmFjayBlbmdpbmUuCisgKgorICogICJXUklURUJBQ0tfT1VUX0ZFTkNFX1BUUiI6 CisgKglVc2Vyc3BhY2UgY2FuIHVzZSB0aGlzIHByb3BlcnR5IHRvIHByb3ZpZGUgYSBwb2ludGVy IGZvciB0aGUga2VybmVsIHRvCisgKglmaWxsIHdpdGggYSBzeW5jX2ZpbGUgZmlsZSBkZXNjcmlw dG9yLCB3aGljaCB3aWxsIHNpZ25hbCBvbmNlIHRoZQorICoJd3JpdGViYWNrIGlzIGZpbmlzaGVk LiBUaGUgdmFsdWUgc2hvdWxkIGJlIHRoZSBhZGRyZXNzIG9mIGEgMzItYml0CisgKglzaWduZWQg aW50ZWdlciwgY2FzdCB0byBhIHU2NC4KKyAqCVVzZXJzcGFjZSBzaG91bGQgd2FpdCBmb3IgdGhp cyBmZW5jZSB0byBzaWduYWwgYmVmb3JlIG1ha2luZyBhbm90aGVyCisgKgljb21taXQgYWZmZWN0 aW5nIGFueSBvZiB0aGUgc2FtZSBDUlRDcywgUGxhbmVzIG9yIENvbm5lY3RvcnMuCisgKgkqKkZh aWx1cmUgdG8gZG8gc28gd2lsbCByZXN1bHQgaW4gdW5kZWZpbmVkIGJlaGF2aW91ci4qKgorICoJ Rm9yIHRoaXMgcmVhc29uIGl0IGlzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRoYXQgYWxsIHVzZXJz cGFjZQorICoJYXBwbGljYXRpb25zIG1ha2luZyB1c2Ugb2Ygd3JpdGViYWNrIGNvbm5lY3RvcnMg KmFsd2F5cyogcmV0cmlldmUgYW4KKyAqCW91dC1mZW5jZSBmb3IgdGhlIGNvbW1pdCBhbmQgdXNl IGl0IGFwcHJvcHJpYXRlbHkuCisgKglGcm9tIHVzZXJzcGFjZSwgdGhpcyBwcm9wZXJ0eSB3aWxs IGFsd2F5cyByZWFkIGFzIHplcm8uCiAgKi8KIAorI2RlZmluZSBmZW5jZV90b193Yl9jb25uZWN0 b3IoeCkgY29udGFpbmVyX29mKHgtPmxvY2ssIFwKKwkJCQkJICAgICAgc3RydWN0IGRybV93cml0 ZWJhY2tfY29ubmVjdG9yLCBcCisJCQkJCSAgICAgIGZlbmNlX2xvY2spCisKK3N0YXRpYyBjb25z dCBjaGFyICpkcm1fd3JpdGViYWNrX2ZlbmNlX2dldF9kcml2ZXJfbmFtZShzdHJ1Y3QgZG1hX2Zl bmNlICpmZW5jZSkKK3sKKwlzdHJ1Y3QgZHJtX3dyaXRlYmFja19jb25uZWN0b3IgKndiX2Nvbm5l Y3RvciA9CisJCWZlbmNlX3RvX3diX2Nvbm5lY3RvcihmZW5jZSk7CisKKwlyZXR1cm4gd2JfY29u bmVjdG9yLT5iYXNlLmRldi0+ZHJpdmVyLT5uYW1lOworfQorCitzdGF0aWMgY29uc3QgY2hhciAq Citkcm1fd3JpdGViYWNrX2ZlbmNlX2dldF90aW1lbGluZV9uYW1lKHN0cnVjdCBkbWFfZmVuY2Ug KmZlbmNlKQoreworCXN0cnVjdCBkcm1fd3JpdGViYWNrX2Nvbm5lY3RvciAqd2JfY29ubmVjdG9y ID0KKwkJZmVuY2VfdG9fd2JfY29ubmVjdG9yKGZlbmNlKTsKKworCXJldHVybiB3Yl9jb25uZWN0 b3ItPnRpbWVsaW5lX25hbWU7Cit9CisKK3N0YXRpYyBib29sIGRybV93cml0ZWJhY2tfZmVuY2Vf ZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKK3sKKwlyZXR1cm4gdHJ1 ZTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3BzIGRybV93cml0ZWJhY2tf ZmVuY2Vfb3BzID0geworCS5nZXRfZHJpdmVyX25hbWUgPSBkcm1fd3JpdGViYWNrX2ZlbmNlX2dl dF9kcml2ZXJfbmFtZSwKKwkuZ2V0X3RpbWVsaW5lX25hbWUgPSBkcm1fd3JpdGViYWNrX2ZlbmNl X2dldF90aW1lbGluZV9uYW1lLAorCS5lbmFibGVfc2lnbmFsaW5nID0gZHJtX3dyaXRlYmFja19m ZW5jZV9lbmFibGVfc2lnbmFsaW5nLAorCS53YWl0ID0gZG1hX2ZlbmNlX2RlZmF1bHRfd2FpdCwK K307CisKIHN0YXRpYyBib29sIGNyZWF0ZV93cml0ZWJhY2tfcHJvcGVydGllcyhzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3A7CkBAIC02OSw2ICsx MjYsMTUgQEAgc3RhdGljIGJvb2wgY3JlYXRlX3dyaXRlYmFja19wcm9wZXJ0aWVzKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCiAJCWRldi0+bW9kZV9jb25maWcud3JpdGViYWNrX3BpeGVsX2Zvcm1h dHNfcHJvcGVydHkgPSBwcm9wOwogCX0KIAorCWlmICghZGV2LT5tb2RlX2NvbmZpZy53cml0ZWJh Y2tfb3V0X2ZlbmNlX3B0cl9wcm9wZXJ0eSkgeworCQlwcm9wID0gZHJtX3Byb3BlcnR5X2NyZWF0 ZV9yYW5nZShkZXYsIERSTV9NT0RFX1BST1BfQVRPTUlDLAorCQkJCQkJICJXUklURUJBQ0tfT1VU X0ZFTkNFX1BUUiIsIDAsCisJCQkJCQkgVTY0X01BWCk7CisJCWlmICghcHJvcCkKKwkJCXJldHVy biAtRU5PTUVNOworCQlkZXYtPm1vZGVfY29uZmlnLndyaXRlYmFja19vdXRfZmVuY2VfcHRyX3By b3BlcnR5ID0gcHJvcDsKKwl9CisKIAlyZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTM4LDYgKzIwNCwx NSBAQCBpbnQgZHJtX3dyaXRlYmFja19jb25uZWN0b3JfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAogCUlOSVRfTElTVF9IRUFEKCZ3Yl9jb25uZWN0b3ItPmpvYl9xdWV1ZSk7CiAJc3Bpbl9s b2NrX2luaXQoJndiX2Nvbm5lY3Rvci0+am9iX2xvY2spOwogCisJd2JfY29ubmVjdG9yLT5mZW5j ZV9jb250ZXh0ID0gZG1hX2ZlbmNlX2NvbnRleHRfYWxsb2MoMSk7CisJc3Bpbl9sb2NrX2luaXQo JndiX2Nvbm5lY3Rvci0+ZmVuY2VfbG9jayk7CisJc25wcmludGYod2JfY29ubmVjdG9yLT50aW1l bGluZV9uYW1lLAorCQkgc2l6ZW9mKHdiX2Nvbm5lY3Rvci0+dGltZWxpbmVfbmFtZSksCisJCSAi Q09OTkVDVE9SOiVkLSVzIiwgY29ubmVjdG9yLT5iYXNlLmlkLCBjb25uZWN0b3ItPm5hbWUpOwor CisJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJmNvbm5lY3Rvci0+YmFzZSwKKwkJCQkgICBj b25maWctPndyaXRlYmFja19vdXRfZmVuY2VfcHRyX3Byb3BlcnR5LCAwKTsKKwogCWRybV9vYmpl Y3RfYXR0YWNoX3Byb3BlcnR5KCZjb25uZWN0b3ItPmJhc2UsCiAJCQkJICAgY29uZmlnLT53cml0 ZWJhY2tfZmJfaWRfcHJvcGVydHksIDApOwogCkBAIC0yMDAsNiArMjc1LDcgQEAgdm9pZCBkcm1f d3JpdGViYWNrX2NsZWFudXBfam9iKHN0cnVjdCBkcm1fd3JpdGViYWNrX2pvYiAqam9iKQogCiAJ aWYgKGpvYi0+ZmIpCiAJCWRybV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5jZShqb2ItPmZiKTsKKwlk bWFfZmVuY2VfcHV0KGpvYi0+b3V0X2ZlbmNlKTsKIAlrZnJlZShqb2IpOwogfQogRVhQT1JUX1NZ TUJPTChkcm1fd3JpdGViYWNrX2NsZWFudXBfam9iKTsKQEAgLTIyMiw2ICsyOTgsNyBAQCBzdGF0 aWMgdm9pZCBjbGVhbnVwX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogLyoqCiAgKiBk cm1fd3JpdGViYWNrX3NpZ25hbF9jb21wbGV0aW9uIC0gU2lnbmFsIHRoZSBjb21wbGV0aW9uIG9m IGEgd3JpdGViYWNrIGpvYgogICogQHdiX2Nvbm5lY3RvcjogVGhlIHdyaXRlYmFjayBjb25uZWN0 b3Igd2hvc2Ugam9iIGlzIGNvbXBsZXRlCisgKiBAc3RhdHVzOiBTdGF0dXMgY29kZSB0byBzZXQg aW4gdGhlIHdyaXRlYmFjayBvdXRfZmVuY2UgKDAgZm9yIHN1Y2Nlc3MpCiAgKgogICogRHJpdmVy cyBzaG91bGQgY2FsbCB0aGlzIHRvIHNpZ25hbCB0aGUgY29tcGxldGlvbiBvZiBhIHByZXZpb3Vz bHkgcXVldWVkCiAgKiB3cml0ZWJhY2sgam9iLiBJdCBzaG91bGQgYmUgY2FsbGVkIGFzIHNvb24g YXMgcG9zc2libGUgYWZ0ZXIgdGhlIGhhcmR3YXJlCkBAIC0yMzUsNyArMzEyLDggQEAgc3RhdGlj IHZvaWQgY2xlYW51cF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKICAqIFNlZSBhbHNv OiBkcm1fd3JpdGViYWNrX3F1ZXVlX2pvYigpCiAgKi8KIHZvaWQKLWRybV93cml0ZWJhY2tfc2ln bmFsX2NvbXBsZXRpb24oc3RydWN0IGRybV93cml0ZWJhY2tfY29ubmVjdG9yICp3Yl9jb25uZWN0 b3IpCitkcm1fd3JpdGViYWNrX3NpZ25hbF9jb21wbGV0aW9uKHN0cnVjdCBkcm1fd3JpdGViYWNr X2Nvbm5lY3RvciAqd2JfY29ubmVjdG9yLAorCQkJCWludCBzdGF0dXMpCiB7CiAJdW5zaWduZWQg bG9uZyBmbGFnczsKIAlzdHJ1Y3QgZHJtX3dyaXRlYmFja19qb2IgKmpvYjsKQEAgLTI0NCw4ICsz MjIsMTQgQEAgZHJtX3dyaXRlYmFja19zaWduYWxfY29tcGxldGlvbihzdHJ1Y3QgZHJtX3dyaXRl YmFja19jb25uZWN0b3IgKndiX2Nvbm5lY3RvcikKIAlqb2IgPSBsaXN0X2ZpcnN0X2VudHJ5X29y X251bGwoJndiX2Nvbm5lY3Rvci0+am9iX3F1ZXVlLAogCQkJCSAgICAgICBzdHJ1Y3QgZHJtX3dy aXRlYmFja19qb2IsCiAJCQkJICAgICAgIGxpc3RfZW50cnkpOwotCWlmIChqb2IpCisJaWYgKGpv YikgewogCQlsaXN0X2RlbCgmam9iLT5saXN0X2VudHJ5KTsKKwkJaWYgKGpvYi0+b3V0X2ZlbmNl KSB7CisJCQlpZiAoc3RhdHVzKQorCQkJCWRtYV9mZW5jZV9zZXRfZXJyb3Ioam9iLT5vdXRfZmVu Y2UsIHN0YXR1cyk7CisJCQlkbWFfZmVuY2Vfc2lnbmFsKGpvYi0+b3V0X2ZlbmNlKTsKKwkJfQor CX0KIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ3Yl9jb25uZWN0b3ItPmpvYl9sb2NrLCBmbGFn cyk7CiAKIAlpZiAoV0FSTl9PTigham9iKSkKQEAgLTI1NSwzICszMzksMjQgQEAgZHJtX3dyaXRl YmFja19zaWduYWxfY29tcGxldGlvbihzdHJ1Y3QgZHJtX3dyaXRlYmFja19jb25uZWN0b3IgKndi X2Nvbm5lY3RvcikKIAlxdWV1ZV93b3JrKHN5c3RlbV9sb25nX3dxLCAmam9iLT5jbGVhbnVwX3dv cmspOwogfQogRVhQT1JUX1NZTUJPTChkcm1fd3JpdGViYWNrX3NpZ25hbF9jb21wbGV0aW9uKTsK Kworc3RydWN0IGRtYV9mZW5jZSAqCitkcm1fd3JpdGViYWNrX2dldF9vdXRfZmVuY2Uoc3RydWN0 IGRybV93cml0ZWJhY2tfY29ubmVjdG9yICp3Yl9jb25uZWN0b3IpCit7CisJc3RydWN0IGRtYV9m ZW5jZSAqZmVuY2U7CisKKwlpZiAoV0FSTl9PTih3Yl9jb25uZWN0b3ItPmJhc2UuY29ubmVjdG9y X3R5cGUgIT0KKwkJICAgIERSTV9NT0RFX0NPTk5FQ1RPUl9XUklURUJBQ0spKQorCQlyZXR1cm4g TlVMTDsKKworCWZlbmNlID0ga3phbGxvYyhzaXplb2YoKmZlbmNlKSwgR0ZQX0tFUk5FTCk7CisJ aWYgKCFmZW5jZSkKKwkJcmV0dXJuIE5VTEw7CisKKwlkbWFfZmVuY2VfaW5pdChmZW5jZSwgJmRy bV93cml0ZWJhY2tfZmVuY2Vfb3BzLAorCQkgICAgICAgJndiX2Nvbm5lY3Rvci0+ZmVuY2VfbG9j aywgd2JfY29ubmVjdG9yLT5mZW5jZV9jb250ZXh0LAorCQkgICAgICAgKyt3Yl9jb25uZWN0b3It PmZlbmNlX3NlcW5vKTsKKworCXJldHVybiBmZW5jZTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX3dy aXRlYmFja19nZXRfb3V0X2ZlbmNlKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9hdG9t aWMuaCBiL2luY2x1ZGUvZHJtL2RybV9hdG9taWMuaAppbmRleCBkN2IwMjYzY2M1Y2YuLjA5MDc2 YTYyNTYzNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oCisrKyBiL2luY2x1 ZGUvZHJtL2RybV9hdG9taWMuaApAQCAtMTYwLDYgKzE2MCwxNCBAQCBzdHJ1Y3QgX19kcm1fY3J0 Y3Nfc3RhdGUgewogc3RydWN0IF9fZHJtX2Nvbm5uZWN0b3JzX3N0YXRlIHsKIAlzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqcHRyOwogCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpzdGF0ZSwgKm9s ZF9zdGF0ZSwgKm5ld19zdGF0ZTsKKwkvKioKKwkgKiBAb3V0X2ZlbmNlX3B0cjoKKwkgKgorCSAq IFVzZXItcHJvdmlkZWQgcG9pbnRlciB3aGljaCB0aGUga2VybmVsIHVzZXMgdG8gcmV0dXJuIGEg c3luY19maWxlCisJICogZmlsZSBkZXNjcmlwdG9yLiBVc2VkIGJ5IHdyaXRlYmFjayBjb25uZWN0 b3JzIHRvIHNpZ25hbCBjb21wbGV0aW9uIG9mCisJICogdGhlIHdyaXRlYmFjay4KKwkgKi8KKwlz MzIgX191c2VyICpvdXRfZmVuY2VfcHRyOwogfTsKIAogc3RydWN0IGRybV9wcml2YXRlX29iajsK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaCBiL2luY2x1ZGUvZHJtL2Ry bV9jb25uZWN0b3IuaAppbmRleCA4NzAxZWJjYzY4YjMuLmRhNTZmZGE2ZTIxOCAxMDA2NDQKLS0t IGEvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9jb25u ZWN0b3IuaApAQCAtNDI5LDEwICs0MjksMTAgQEAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUg ewogCS8qKgogCSAqIEB3cml0ZWJhY2tfam9iOiBXcml0ZWJhY2sgam9iIGZvciB3cml0ZWJhY2sg Y29ubmVjdG9ycwogCSAqCi0JICogSG9sZHMgdGhlIGZyYW1lYnVmZmVyIGZvciBhIHdyaXRlYmFj ayBjb25uZWN0b3IuIEFzIHRoZSB3cml0ZWJhY2sKLQkgKiBjb21wbGV0aW9uIG1heSBiZSBhc3lu Y2hyb25vdXMgdG8gdGhlIG5vcm1hbCBjb21taXQgY3ljbGUsIHRoZQotCSAqIHdyaXRlYmFjayBq b2IgbGlmZXRpbWUgaXMgbWFuYWdlZCBzZXBhcmF0ZWx5IGZyb20gdGhlIG5vcm1hbCBhdG9taWMK LQkgKiBzdGF0ZSBieSB0aGlzIG9iamVjdC4KKwkgKiBIb2xkcyB0aGUgZnJhbWVidWZmZXIgYW5k IG91dC1mZW5jZSBmb3IgYSB3cml0ZWJhY2sgY29ubmVjdG9yLiBBcworCSAqIHRoZSB3cml0ZWJh Y2sgY29tcGxldGlvbiBtYXkgYmUgYXN5bmNocm9ub3VzIHRvIHRoZSBub3JtYWwgY29tbWl0CisJ ICogY3ljbGUsIHRoZSB3cml0ZWJhY2sgam9iIGxpZmV0aW1lIGlzIG1hbmFnZWQgc2VwYXJhdGVs eSBmcm9tIHRoZQorCSAqIG5vcm1hbCBhdG9taWMgc3RhdGUgYnkgdGhpcyBvYmplY3QuCiAJICoK IAkgKiBTZWUgYWxzbzogZHJtX3dyaXRlYmFja19xdWV1ZV9qb2IoKSBhbmQKIAkgKiBkcm1fd3Jp dGViYWNrX3NpZ25hbF9jb21wbGV0aW9uKCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9t b2RlX2NvbmZpZy5oIGIvaW5jbHVkZS9kcm0vZHJtX21vZGVfY29uZmlnLmgKaW5kZXggYzAxMmUx MTQ4ZWMwLi45MzBlMDA1NjAzODAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9tb2RlX2Nv bmZpZy5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oCkBAIC03OTIsNiArNzky LDE0IEBAIHN0cnVjdCBkcm1fbW9kZV9jb25maWcgewogCSAqIFNlZSBhbHNvOiBkcm1fd3JpdGVi YWNrX2Nvbm5lY3Rvcl9pbml0KCkKIAkgKi8KIAlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICp3cml0ZWJh Y2tfcGl4ZWxfZm9ybWF0c19wcm9wZXJ0eTsKKwkvKioKKwkgKiBAd3JpdGViYWNrX291dF9mZW5j ZV9wdHJfcHJvcGVydHk6IFByb3BlcnR5IGZvciB3cml0ZWJhY2sgY29ubmVjdG9ycywKKwkgKiBm ZCBwb2ludGVyIHJlcHJlc2VudGluZyB0aGUgb3V0Z29pbmcgZmVuY2VzIGZvciBhIHdyaXRlYmFj aworCSAqIGNvbm5lY3Rvci4gVXNlcnNwYWNlIHNob3VsZCBwcm92aWRlIGEgcG9pbnRlciB0byBh IHZhbHVlIG9mIHR5cGUgczMyLAorCSAqIGFuZCB0aGVuIGNhc3QgdGhhdCBwb2ludGVyIHRvIHU2 NC4KKwkgKiBTZWUgYWxzbzogZHJtX3dyaXRlYmFja19jb25uZWN0b3JfaW5pdCgpCisJICovCisJ c3RydWN0IGRybV9wcm9wZXJ0eSAqd3JpdGViYWNrX291dF9mZW5jZV9wdHJfcHJvcGVydHk7CiAK IAkvKiBkdW1iIGlvY3RsIHBhcmFtZXRlcnMgKi8KIAl1aW50MzJfdCBwcmVmZXJyZWRfZGVwdGgs IHByZWZlcl9zaGFkb3c7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fd3JpdGViYWNrLmgg Yi9pbmNsdWRlL2RybS9kcm1fd3JpdGViYWNrLmgKaW5kZXggMGJiOTVmZDQ5MDdkLi5iOTQ3MGFl MmE1M2QgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV93cml0ZWJhY2suaAorKysgYi9pbmNs dWRlL2RybS9kcm1fd3JpdGViYWNrLmgKQEAgLTQ5LDYgKzQ5LDMyIEBAIHN0cnVjdCBkcm1fd3Jp dGViYWNrX2Nvbm5lY3RvciB7CiAJICogZHJtX3dyaXRlYmFja19zaWduYWxfY29tcGxldGlvbigp CiAJICovCiAJc3RydWN0IGxpc3RfaGVhZCBqb2JfcXVldWU7CisKKwkvKioKKwkgKiBAZmVuY2Vf Y29udGV4dDoKKwkgKgorCSAqIHRpbWVsaW5lIGNvbnRleHQgdXNlZCBmb3IgZmVuY2Ugb3BlcmF0 aW9ucy4KKwkgKi8KKwl1bnNpZ25lZCBpbnQgZmVuY2VfY29udGV4dDsKKwkvKioKKwkgKiBAZmVu Y2VfbG9jazoKKwkgKgorCSAqIHNwaW5sb2NrIHRvIHByb3RlY3QgdGhlIGZlbmNlcyBpbiB0aGUg ZmVuY2VfY29udGV4dC4KKwkgKi8KKwlzcGlubG9ja190IGZlbmNlX2xvY2s7CisJLyoqCisJICog QGZlbmNlX3NlcW5vOgorCSAqCisJICogU2Vxbm8gdmFyaWFibGUgdXNlZCBhcyBtb25vdG9uaWMg Y291bnRlciBmb3IgdGhlIGZlbmNlcworCSAqIGNyZWF0ZWQgb24gdGhlIGNvbm5lY3RvcidzIHRp bWVsaW5lLgorCSAqLworCXVuc2lnbmVkIGxvbmcgZmVuY2Vfc2Vxbm87CisJLyoqCisJICogQHRp bWVsaW5lX25hbWU6CisJICoKKwkgKiBUaGUgbmFtZSBvZiB0aGUgY29ubmVjdG9yJ3MgZmVuY2Ug dGltZWxpbmUuCisJICovCisJY2hhciB0aW1lbGluZV9uYW1lWzMyXTsKIH07CiAjZGVmaW5lIHRv X3diX2Nvbm5lY3Rvcih4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGRybV93cml0ZWJhY2tfY29u bmVjdG9yLCBiYXNlKQogCkBAIC03Myw2ICs5OSwxMyBAQCBzdHJ1Y3QgZHJtX3dyaXRlYmFja19q b2IgewogCSAqIGRpcmVjdGx5LCB1c2UgZHJtX2F0b21pY19zZXRfd3JpdGViYWNrX2ZiX2Zvcl9j b25uZWN0b3IoKQogCSAqLwogCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiOworCisJLyoqCisJ ICogQG91dF9mZW5jZToKKwkgKgorCSAqIEZlbmNlIHdoaWNoIHdpbGwgc2lnbmFsIG9uY2UgdGhl IHdyaXRlYmFjayBoYXMgY29tcGxldGVkCisJICovCisJc3RydWN0IGRtYV9mZW5jZSAqb3V0X2Zl bmNlOwogfTsKIAogaW50IGRybV93cml0ZWJhY2tfY29ubmVjdG9yX2luaXQoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKQEAgLTg1LDUgKzExOCwxMSBAQCB2b2lkIGRybV93cml0ZWJhY2tfcXVldWVf am9iKHN0cnVjdCBkcm1fd3JpdGViYWNrX2Nvbm5lY3RvciAqd2JfY29ubmVjdG9yLAogCQkJICAg ICBzdHJ1Y3QgZHJtX3dyaXRlYmFja19qb2IgKmpvYik7CiAKIHZvaWQgZHJtX3dyaXRlYmFja19j bGVhbnVwX2pvYihzdHJ1Y3QgZHJtX3dyaXRlYmFja19qb2IgKmpvYik7Ci12b2lkIGRybV93cml0 ZWJhY2tfc2lnbmFsX2NvbXBsZXRpb24oc3RydWN0IGRybV93cml0ZWJhY2tfY29ubmVjdG9yICp3 Yl9jb25uZWN0b3IpOworCit2b2lkCitkcm1fd3JpdGViYWNrX3NpZ25hbF9jb21wbGV0aW9uKHN0 cnVjdCBkcm1fd3JpdGViYWNrX2Nvbm5lY3RvciAqd2JfY29ubmVjdG9yLAorCQkJCWludCBzdGF0 dXMpOworCitzdHJ1Y3QgZG1hX2ZlbmNlICoKK2RybV93cml0ZWJhY2tfZ2V0X291dF9mZW5jZShz dHJ1Y3QgZHJtX3dyaXRlYmFja19jb25uZWN0b3IgKndiX2Nvbm5lY3Rvcik7CiAjZW5kaWYKLS0g CjIuMTQuMwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K RnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWRyZW5vCg==