From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 5/5] drm/i915: Cancel non-persistent contexts on close Date: Tue, 6 Aug 2019 14:47:25 +0100 Message-ID: <20190806134725.25321-5-chris@chris-wilson.co.uk> References: <20190806134725.25321-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id CA6F86E38A for ; Tue, 6 Aug 2019 13:47:51 +0000 (UTC) In-Reply-To: <20190806134725.25321-1-chris@chris-wilson.co.uk> 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 Tm9ybWFsbHksIHdlIHJlbHkgb24gb3VyIGhhbmdjaGVjayB0byBwcmV2ZW50IHBlcnNpc3RlbnQg YmF0Y2hlcyBmcm9tCmhvZ2dpbmcgdGhlIEdQVS4gSG93ZXZlciwgaWYgdGhlIHVzZXIgZGlzYWJs ZXMgaGFuZ2NoZWNrLCB0aGlzIG1lY2hhbmlzbQpicmVha3MgZG93bi4gRGVzcGl0ZSBvdXIgaW5z aXN0ZW5jZSB0aGF0IHRoaXMgaXMgdW5zYWZlLCB0aGUgdXNlcnMgYXJlCmVxdWFsbHkgaW5zaXN0 ZW50IHRoYXQgdGhleSB3YW50IHRvIHVzZSBlbmRsZXNzIGJhdGNoZXMgYW5kIHdpbGwgZGlzYWJs ZQp0aGUgaGFuZ2NoZWNrIG1lY2hhbmlzbS4gV2UgYXJlIGxvb2tpbmcgYXJlIHBlcmhhcHMgcmVw bGFjaW5nIGhhbmdjaGVjawp3aXRoIGEgc29mdGVyIG1lY2hhbmlzbSwgdGhhdCBzZW5kcyBhIHB1 bHNlIGRvd24gdGhlIGVuZ2luZSB0byBjaGVjayBpZgppdCBpcyB3ZWxsLiBXZSBjYW4gdXNlIHRo ZSBzYW1lIHByZWVtcHRpdmUgcHVsc2UgdG8gZmx1c2ggYW4gYWN0aXZlCnBlcnNpc3RlbnQgY29u dGV4dCBvZmYgdGhlIEdQVSB1cG9uIGNvbnRleHQgY2xvc2UsIHByZXZlbnRpbmcgcmVzb3VyY2Vz CmJlaW5nIGxvc3QgYW5kIHVua2lsbGFibGUgcmVxdWVzdHMgcmVtYWluaW5nIG9uIHRoZSBHUFUs IGFmdGVyIHByb2Nlc3MKdGVybWluYXRpb24uIFRvIGF2b2lkIGNoYW5naW5nIHRoZSBBQkkgYW5k IGFjY2lkZW50YWxseSBicmVha2luZwpleGlzdGluZyB1c2Vyc3BhY2UsIHdlIG1ha2UgdGhlIHBl cnNpc3RlbmNlIG9mIGEgY29udGV4dCBleHBsaWNpdCBhbmQKZW5hYmxlIGl0IGJ5IGRlZmF1bHQu IFVzZXJzcGFjZSBjYW4gb3B0IG91dCBvZiBwZXJzaXN0ZW50IG1vZGUgKGZvcmNpbmcKcmVxdWVz dHMgdG8gYmUgY2FuY2VsbGVkIHdoZW4gdGhlIGNvbnRleHQgaXMgY2xvc2VkIGJ5IHByb2Nlc3MK dGVybWluYXRpb24gb3IgZXhwbGljaXRseSkgYnkgYSBjb250ZXh0IHBhcmFtZXRlciwgb3IgdG8g ZmFjaWxpdGF0ZQpleGlzdGluZyB1c2UtY2FzZXMgYnkgZGlzYWJsaW5nIGhhbmdjaGVjayAoaTkx NS5lbmFibGVfaGFuZ2NoZWNrPTApLgooTm90ZSwgb25lIG9mIHRoZSBvdXRjb21lcyBmb3Igc3Vw cG9ydGluZyBlbmRsZXNzIG1vZGUgd2lsbCBiZSB0aGUKcmVtb3ZhbCBvZiBoYW5nY2hlY2tpbmcs IGF0IHdoaWNoIHBvaW50IG9wdGluZyBpbnRvIHBlcnNpc3RlbnQgbW9kZSB3aWxsCmJlIG1hbmRh dG9yeSwgb3IgbWF5YmUgdGhlIGRlZmF1bHQuKQoKVGVzdGNhc2U6IGlndC9nZW1fY3R4X3BlcnNp c3RlbmNlClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNv LnVrPgpDYzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29t PgpDYzogTWljaGHFgiBXaW5pYXJza2kgPG1pY2hhbC53aW5pYXJza2lAaW50ZWwuY29tPgpDYzog Sm9uIEJsb29tZmllbGQgPGpvbi5ibG9vbWZpZWxkQGludGVsLmNvbT4KCi0tLQpTYW1lIHNvcnQg b2YgY2F2ZWF0cyBhcyBmb3IgaGFuZ2NoZWNrLCBhIGZldyBjb3JuZXIgY2FzZXMgbmVlZApzdHJ1 Y3RfbXV0ZXggYW5kIHNvbWUgcHJlYWxsb2NhdGlvbi4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv Z2VtL2k5MTVfZ2VtX2NvbnRleHQuYyAgIHwgNzkgKysrKysrKysrKysrKysrKysrKwogZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQuaCAgIHwgMTUgKysrKwogLi4uL2dw dS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dF90eXBlcy5oIHwgIDEgKwogLi4uL2dwdS9k cm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfaGVhcnRiZWF0LmMgIHwgNTMgKysrKysrKysrKysrKwog Li4uL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfaGVhcnRiZWF0LmggIHwgMTQgKysrKwog aW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oICAgICAgICAgICAgICAgICAgIHwgMTUgKysrKwog NyBmaWxlcyBjaGFuZ2VkLCAxNzkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9oZWFydGJl YXQuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2Vu Z2luZV9oZWFydGJlYXQuaAoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2Vm aWxlIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKaW5kZXggYTEwMTY4NThkMDE0Li40 MjQxN2Q4NzQ5NmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCkBAIC03MSw5ICs3MSwxMCBAQCBvYmot eSArPSBndC8KIGd0LXkgKz0gXAogCWd0L2ludGVsX2JyZWFkY3J1bWJzLm8gXAogCWd0L2ludGVs X2NvbnRleHQubyBcCi0JZ3QvaW50ZWxfZW5naW5lX3Bvb2wubyBcCiAJZ3QvaW50ZWxfZW5naW5l X2NzLm8gXAorCWd0L2ludGVsX2VuZ2luZV9oZWFydGJlYXQubyBcCiAJZ3QvaW50ZWxfZW5naW5l X3BtLm8gXAorCWd0L2ludGVsX2VuZ2luZV9wb29sLm8gXAogCWd0L2ludGVsX2d0Lm8gXAogCWd0 L2ludGVsX2d0X3BtLm8gXAogCWd0L2ludGVsX2hhbmdjaGVjay5vIFwKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dC5jCmluZGV4IDY0ZjdhNTMzZTg4Ni4uNTcxOGI3 NGY5NWI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29u dGV4dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0LmMK QEAgLTcwLDYgKzcwLDcgQEAKICNpbmNsdWRlIDxkcm0vaTkxNV9kcm0uaD4KIAogI2luY2x1ZGUg Imd0L2ludGVsX2xyY19yZWcuaCIKKyNpbmNsdWRlICJndC9pbnRlbF9lbmdpbmVfaGVhcnRiZWF0 LmgiCiAKICNpbmNsdWRlICJpOTE1X2dlbV9jb250ZXh0LmgiCiAjaW5jbHVkZSAiaTkxNV9nbG9i YWxzLmgiCkBAIC0zNzMsNiArMzc0LDQ1IEBAIHZvaWQgaTkxNV9nZW1fY29udGV4dF9yZWxlYXNl KHN0cnVjdCBrcmVmICpyZWYpCiAJCXF1ZXVlX3dvcmsoaTkxNS0+d3EsICZpOTE1LT5jb250ZXh0 cy5mcmVlX3dvcmspOwogfQogCitzdGF0aWMgdm9pZCBraWxsX2NvbnRleHQoc3RydWN0IGk5MTVf Z2VtX2NvbnRleHQgKmN0eCkKK3sKKwlzdHJ1Y3QgaTkxNV9nZW1fZW5naW5lc19pdGVyIGl0Owor CXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKKwlpbnRlbF9lbmdpbmVfbWFza190IHRt cCwgYWN0aXZlOworCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZTsKKworCWlmIChpOTE1X2dlbV9j b250ZXh0X2lzX2Jhbm5lZChjdHgpKQorCQlyZXR1cm47CisKKwlpOTE1X2dlbV9jb250ZXh0X3Nl dF9iYW5uZWQoY3R4KTsKKworCWFjdGl2ZSA9IDA7CisJZm9yX2VhY2hfZ2VtX2VuZ2luZShjZSwg aTkxNV9nZW1fY29udGV4dF9sb2NrX2VuZ2luZXMoY3R4KSwgaXQpIHsKKwkJc3RydWN0IGk5MTVf cmVxdWVzdCAqcnE7CisKKwkJaWYgKCFjZS0+cmluZykKKwkJCWNvbnRpbnVlOworCisJCXJxID0g aTkxNV9hY3RpdmVfcmVxdWVzdF9nZXRfdW5sb2NrZWQoJmNlLT5yaW5nLT50aW1lbGluZS0+bGFz dF9yZXF1ZXN0KTsKKwkJaWYgKCFycSkKKwkJCWNvbnRpbnVlOworCisJCWFjdGl2ZSB8PSBycS0+ ZW5naW5lLT5tYXNrOworCQlpOTE1X3JlcXVlc3RfcHV0KHJxKTsKKwl9CisJaTkxNV9nZW1fY29u dGV4dF91bmxvY2tfZW5naW5lcyhjdHgpOworCisJLyoKKwkgKiBTZW5kIGEgImhpZ2ggcHJpb3Jp dHkgcHVsc2UiIGRvd24gdGhlIGVuZ2luZSB0byBjYXVzZSB0aGUKKwkgKiBjdXJyZW50IHJlcXVl c3QgdG8gYmUgbW9tZW50YXJpbHkgcHJlZW1wdGVkLiAoSWYgaXQgZmFpbHMgdG8KKwkgKiBiZSBw cmVlbXB0ZWQsIGl0IHdpbGwgYmUgcmVzZXQpLiBBcyB3ZSBoYXZlIG1hcmtlZCBvdXIgY29udGV4 dAorCSAqIGFzIGJhbm5lZCwgYW55IGluY29tcGxldGUgcmVxdWVzdCwgaW5jbHVkaW5nIGFueSBy dW5uaW5nLCB3aWxsCisJICogYmUgc2tpcHBlZC4KKwkgKi8KKwlmb3JfZWFjaF9lbmdpbmVfbWFz a2VkKGVuZ2luZSwgY3R4LT5pOTE1LCBhY3RpdmUsIHRtcCkKKwkJaW50ZWxfZW5naW5lX3B1bHNl KGVuZ2luZSk7Cit9CisKIHN0YXRpYyB2b2lkIGNvbnRleHRfY2xvc2Uoc3RydWN0IGk5MTVfZ2Vt X2NvbnRleHQgKmN0eCkKIHsKIAltdXRleF9sb2NrKCZjdHgtPm11dGV4KTsKQEAgLTM5NCw2ICs0 MzQsMTUgQEAgc3RhdGljIHZvaWQgY29udGV4dF9jbG9zZShzdHJ1Y3QgaTkxNV9nZW1fY29udGV4 dCAqY3R4KQogCWx1dF9jbG9zZShjdHgpOwogCiAJbXV0ZXhfdW5sb2NrKCZjdHgtPm11dGV4KTsK KworCS8qCisJICogSWYgdGhlIHVzZXIgaGFzIGRpc2FibGVkIGhhbmdjaGVja2luZywgd2UgY2Fu IG5vdCBiZSBzdXJlIHRoYXQKKwkgKiB0aGUgYmF0Y2hlcyB3aWxsIGV2ZXIgY29tcGxldGUgYW5k IGxldCB0aGUgY29udGV4dCBiZSBmcmVlZC4KKwkgKiBGb3JjaWJseSBraWxsIG9mZiBhbnkgcmVt YWluaW5nIHJlcXVlc3RzIGluIHRoaXMgY2FzZS4KKwkgKi8KKwlpZiAoIWk5MTVfZ2VtX2NvbnRl eHRfaXNfcGVyc2lzdGVudChjdHgpKQorCQlraWxsX2NvbnRleHQoY3R4KTsKKwogCWk5MTVfZ2Vt X2NvbnRleHRfcHV0KGN0eCk7CiB9CiAKQEAgLTQzMyw2ICs0ODIsOCBAQCBfX2NyZWF0ZV9jb250 ZXh0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCiAJaTkxNV9nZW1fY29udGV4dF9z ZXRfYmFubmFibGUoY3R4KTsKIAlpOTE1X2dlbV9jb250ZXh0X3NldF9yZWNvdmVyYWJsZShjdHgp OworCWlmIChpOTE1X21vZHBhcmFtcy5lbmFibGVfaGFuZ2NoZWNrKQorCQlpOTE1X2dlbV9jb250 ZXh0X3NldF9wZXJzaXN0ZW5jZShjdHgpOwogCiAJY3R4LT5yaW5nX3NpemUgPSA0ICogUEFHRV9T SVpFOwogCkBAIC0xNzQ1LDYgKzE3OTYsMjUgQEAgZ2V0X2VuZ2luZXMoc3RydWN0IGk5MTVfZ2Vt X2NvbnRleHQgKmN0eCwKIAlyZXR1cm4gZXJyOwogfQogCitzdGF0aWMgaW50CitzZXRfcGVyc2lz dGVuY2Uoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKKwkJY29uc3Qgc3RydWN0IGRybV9p OTE1X2dlbV9jb250ZXh0X3BhcmFtICphcmdzKQoreworCWlmIChhcmdzLT5zaXplKQorCQlyZXR1 cm4gLUVJTlZBTDsKKworCWlmICghYXJncy0+dmFsdWUpIHsKKwkJaTkxNV9nZW1fY29udGV4dF9j bGVhcl9wZXJzaXN0ZW5jZShjdHgpOworCQlyZXR1cm4gMDsKKwl9CisKKwlpZiAoIShjdHgtPmk5 MTUtPmNhcHMuc2NoZWR1bGVyICYgSTkxNV9TQ0hFRFVMRVJfQ0FQX1BSRUVNUFRJT04pKQorCQly ZXR1cm4gLUVOT0RFVjsKKworCWk5MTVfZ2VtX2NvbnRleHRfc2V0X3BlcnNpc3RlbmNlKGN0eCk7 CisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgY3R4X3NldHBhcmFtKHN0cnVjdCBkcm1faTkx NV9maWxlX3ByaXZhdGUgKmZwcml2LAogCQkJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwK IAkJCXN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbSAqYXJncykKQEAgLTE4MjIsNiAr MTg5MiwxMCBAQCBzdGF0aWMgaW50IGN0eF9zZXRwYXJhbShzdHJ1Y3QgZHJtX2k5MTVfZmlsZV9w cml2YXRlICpmcHJpdiwKIAkJcmV0ID0gc2V0X2VuZ2luZXMoY3R4LCBhcmdzKTsKIAkJYnJlYWs7 CiAKKwljYXNlIEk5MTVfQ09OVEVYVF9QQVJBTV9QRVJTSVNURU5DRToKKwkJcmV0ID0gc2V0X3Bl cnNpc3RlbmNlKGN0eCwgYXJncyk7CisJCWJyZWFrOworCiAJY2FzZSBJOTE1X0NPTlRFWFRfUEFS QU1fQkFOX1BFUklPRDoKIAlkZWZhdWx0OgogCQlyZXQgPSAtRUlOVkFMOwpAQCAtMjI3OCw2ICsy MzUyLDExIEBAIGludCBpOTE1X2dlbV9jb250ZXh0X2dldHBhcmFtX2lvY3RsKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCXJldCA9IGdldF9lbmdpbmVzKGN0eCwgYXJncyk7 CiAJCWJyZWFrOwogCisJY2FzZSBJOTE1X0NPTlRFWFRfUEFSQU1fUEVSU0lTVEVOQ0U6CisJCWFy Z3MtPnNpemUgPSAwOworCQlhcmdzLT52YWx1ZSA9IGk5MTVfZ2VtX2NvbnRleHRfaXNfcGVyc2lz dGVudChjdHgpOworCQlicmVhazsKKwogCWNhc2UgSTkxNV9DT05URVhUX1BBUkFNX0JBTl9QRVJJ T0Q6CiAJZGVmYXVsdDoKIAkJcmV0ID0gLUVJTlZBTDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n ZW0vaTkxNV9nZW1fY29udGV4dC5oCmluZGV4IDEwNmUyY2NmN2E0Yy4uMTgzNGQxZGYyYWM5IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dC5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0LmgKQEAgLTc0LDYg Kzc0LDIxIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBpOTE1X2dlbV9jb250ZXh0X2NsZWFyX3JlY292 ZXJhYmxlKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjCiAJY2xlYXJfYml0KFVDT05URVhUX1JF Q09WRVJBQkxFLCAmY3R4LT51c2VyX2ZsYWdzKTsKIH0KIAorc3RhdGljIGlubGluZSBib29sIGk5 MTVfZ2VtX2NvbnRleHRfaXNfcGVyc2lzdGVudChjb25zdCBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4 dCAqY3R4KQoreworCXJldHVybiB0ZXN0X2JpdChVQ09OVEVYVF9QRVJTSVNURU5DRSwgJmN0eC0+ dXNlcl9mbGFncyk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBpOTE1X2dlbV9jb250ZXh0X3Nl dF9wZXJzaXN0ZW5jZShzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4KQoreworCXNldF9iaXQo VUNPTlRFWFRfUEVSU0lTVEVOQ0UsICZjdHgtPnVzZXJfZmxhZ3MpOworfQorCitzdGF0aWMgaW5s aW5lIHZvaWQgaTkxNV9nZW1fY29udGV4dF9jbGVhcl9wZXJzaXN0ZW5jZShzdHJ1Y3QgaTkxNV9n ZW1fY29udGV4dCAqY3R4KQoreworCWNsZWFyX2JpdChVQ09OVEVYVF9QRVJTSVNURU5DRSwgJmN0 eC0+dXNlcl9mbGFncyk7Cit9CisKIHN0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X2dlbV9jb250ZXh0 X2lzX2Jhbm5lZChjb25zdCBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4KQogewogCXJldHVy biB0ZXN0X2JpdChDT05URVhUX0JBTk5FRCwgJmN0eC0+ZmxhZ3MpOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHRfdHlwZXMuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0X3R5cGVzLmgKaW5kZXggYTAyZDk4NDk0 MDc4Li5iZjQxYjQzZmZhOWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9p OTE1X2dlbV9jb250ZXh0X3R5cGVzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5 MTVfZ2VtX2NvbnRleHRfdHlwZXMuaApAQCAtMTM3LDYgKzEzNyw3IEBAIHN0cnVjdCBpOTE1X2dl bV9jb250ZXh0IHsKICNkZWZpbmUgVUNPTlRFWFRfTk9fRVJST1JfQ0FQVFVSRQkxCiAjZGVmaW5l IFVDT05URVhUX0JBTk5BQkxFCQkyCiAjZGVmaW5lIFVDT05URVhUX1JFQ09WRVJBQkxFCQkzCisj ZGVmaW5lIFVDT05URVhUX1BFUlNJU1RFTkNFCQk0CiAKIAkvKioKIAkgKiBAZmxhZ3M6IHNtYWxs IHNldCBvZiBib29sZWFucwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50 ZWxfZW5naW5lX2hlYXJ0YmVhdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5n aW5lX2hlYXJ0YmVhdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u MGMwNjMyYTQyM2E3Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv aW50ZWxfZW5naW5lX2hlYXJ0YmVhdC5jCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogTUlUCisgKgorICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29y cG9yYXRpb24KKyAqLworCisjaW5jbHVkZSAiaTkxNV9yZXF1ZXN0LmgiCisKKyNpbmNsdWRlICJp bnRlbF9jb250ZXh0LmgiCisjaW5jbHVkZSAiaW50ZWxfZW5naW5lX2hlYXJ0YmVhdC5oIgorI2lu Y2x1ZGUgImludGVsX2VuZ2luZV9wbS5oIgorI2luY2x1ZGUgImludGVsX2VuZ2luZS5oIgorI2lu Y2x1ZGUgImludGVsX2d0LmgiCisKK3ZvaWQgaW50ZWxfZW5naW5lX3B1bHNlKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSkKK3sKKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UgPSBlbmdp bmUtPmtlcm5lbF9jb250ZXh0OworCXN0cnVjdCBpOTE1X3NjaGVkX2F0dHIgYXR0ciA9IHsgLnBy aW9yaXR5ID0gSU5UX01BWCB9OworCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOworCWludCBlcnIg PSAwOworCisJR0VNX0JVR19PTighZW5naW5lLT5zY2hlZHVsZSk7CisKKwlpZiAoIWludGVsX2Vu Z2luZV9wbV9nZXRfaWZfYXdha2UoZW5naW5lKSkKKwkJcmV0dXJuOworCisJbXV0ZXhfbG9jaygm Y2UtPnJpbmctPnRpbWVsaW5lLT5tdXRleCk7CisKKwlpbnRlbF9jb250ZXh0X2VudGVyKGNlKTsK KwlycSA9IF9faTkxNV9yZXF1ZXN0X2NyZWF0ZShjZSwgR0ZQX05PV0FJVCB8IF9fR0ZQX05PV0FS Tik7CisJaW50ZWxfY29udGV4dF9leGl0KGNlKTsKKwlpZiAoSVNfRVJSKHJxKSkgeworCQllcnIg PSBQVFJfRVJSKHJxKTsKKwkJZ290byBvdXRfdW5sb2NrOworCX0KKwlpOTE1X3JlcXVlc3RfZ2V0 KHJxKTsKKworCXJxLT5mbGFncyB8PSBJOTE1X1JFUVVFU1RfU0VOVElORUw7CisJX19pOTE1X3Jl cXVlc3RfY29tbWl0KHJxKTsKKworCWxvY2FsX2JoX2Rpc2FibGUoKTsKKwllbmdpbmUtPnNjaGVk dWxlKHJxLCAmYXR0cik7CisJbG9jYWxfYmhfZW5hYmxlKCk7CisKKwlpOTE1X3JlcXVlc3RfcHV0 KHJxKTsKKworb3V0X3VubG9jazoKKwltdXRleF91bmxvY2soJmNlLT5yaW5nLT50aW1lbGluZS0+ bXV0ZXgpOworCWludGVsX2NvbnRleHRfdGltZWxpbmVfdW5sb2NrKGNlKTsKKwlpbnRlbF9lbmdp bmVfcG1fcHV0KGVuZ2luZSk7CisJaWYgKGVycikgLyogWFhYIG11c3Qgbm90IGJlIGFsbG93ZWQg dG8gZmFpbCAqLworCQlEUk1fRVJST1IoIkZhaWxlZCB0byBwaW5nICVzLCBlcnI9JWRcbiIsIGVu Z2luZS0+bmFtZSwgZXJyKTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L2ludGVsX2VuZ2luZV9oZWFydGJlYXQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVs X2VuZ2luZV9oZWFydGJlYXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLjg2NzYxNzQ4ZGMyMQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L2ludGVsX2VuZ2luZV9oZWFydGJlYXQuaApAQCAtMCwwICsxLDE0IEBACisvKgorICogU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorICoKKyAqIENvcHlyaWdodCDCqSAyMDE5IEludGVs IENvcnBvcmF0aW9uCisgKi8KKworI2lmbmRlZiBJTlRFTF9FTkdJTkVfSEVBUlRCRUFUX0gKKyNk ZWZpbmUgSU5URUxfRU5HSU5FX0hFQVJUQkVBVF9ICisKK3N0cnVjdCBpbnRlbF9lbmdpbmVfY3M7 CisKK3ZvaWQgaW50ZWxfZW5naW5lX3B1bHNlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSk7CisKKyNlbmRpZiAvKiBJTlRFTF9FTkdJTkVfSEVBUlRCRUFUX0ggKi8KZGlmZiAtLWdpdCBh L2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0u aAppbmRleCA0NjlkYzUxMmNjYTMuLmRiYzg2OTFkNzVkMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS91 YXBpL2RybS9pOTE1X2RybS5oCisrKyBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaApAQCAt MTU2NSw2ICsxNTY1LDIxIEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbSB7CiAg KiAgIGk5MTVfY29udGV4dF9lbmdpbmVzX2JvbmQgKEk5MTVfQ09OVEVYVF9FTkdJTkVTX0VYVF9C T05EKQogICovCiAjZGVmaW5lIEk5MTVfQ09OVEVYVF9QQVJBTV9FTkdJTkVTCTB4YQorCisvKgor ICogSTkxNV9DT05URVhUX1BBUkFNX1BFUlNJU1RFTkNFOgorICoKKyAqIEFsbG93IHRoZSBjb250 ZXh0IGFuZCBhY3RpdmUgcmVuZGVyaW5nIHRvIHN1cnZpdmUgdGhlIHByb2Nlc3MgdW50aWwKKyAq IGNvbXBsZXRpb24uIFBlcnNpc3RlbmNlIGFsbG93cyBmaXJlLWFuZC1mb3JnZXQgY2xpZW50cyB0 byBxdWV1ZSB1cCBhCisgKiBidW5jaCBvZiB3b3JrLCBoYW5kIHRoZSBvdXRwdXQgb3ZlciB0byBh IGRpc3BsYXkgc2VydmVyIGFuZCB0aGUgcXVpdC4KKyAqIElmIHRoZSBjb250ZXh0IGlzIG5vdCBt YXJrZWQgYXMgcGVyc2lzdGVudCwgdXBvbiBjbG9zaW5nIChlaXRoZXIgdmlhCisgKiBhbiBleHBs aWNpdCBEUk1fSTkxNV9HRU1fQ09OVEVYVF9ERVNUUk9ZIG9yIGltcGxpY2l0bHkgZnJvbSBmaWxl IGNsb3N1cmUKKyAqIG9yIHByb2Nlc3MgdGVybWluYXRpb24pLCB0aGUgY29udGV4dCBhbmQgYW55 IG91dHN0YW5kaW5nIHJlcXVlc3RzIHdpbGwgYmUKKyAqIGNhbmNlbGxlZCAoYW5kIGV4cG9ydGVk IGZlbmNlcyBmb3IgY2FuY2VsbGVkIHJlcXVlc3RzIG1hcmtlZCBhcyAtRUlPKS4KKyAqCisgKiBC eSBkZWZhdWx0LCBuZXcgY29udGV4dHMgYWxsb3cgcGVyc2lzdGVuY2UuCisgKi8KKyNkZWZpbmUg STkxNV9DT05URVhUX1BBUkFNX1BFUlNJU1RFTkNFCTB4YgogLyogTXVzdCBiZSBrZXB0IGNvbXBh Y3QgLS0gbm8gaG9sZXMgYW5kIHdlbGwgZG9jdW1lbnRlZCAqLwogCiAJX191NjQgdmFsdWU7Ci0t IAoyLjIzLjAucmMxCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n Zng=