From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: [PATCH 2/6] kthread: finer-grained lockdep/cross-release completion Date: Thu, 25 Oct 2018 16:35:23 +0200 Message-ID: <20181025143527.8575-3-daniel.vetter@ffwll.ch> References: <20181025143527.8575-1-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x542.google.com (mail-ed1-x542.google.com [IPv6:2a00:1450:4864:20::542]) by gabe.freedesktop.org (Postfix) with ESMTPS id D033E6E250 for ; Thu, 25 Oct 2018 14:35:37 +0000 (UTC) Received: by mail-ed1-x542.google.com with SMTP id t10-v6so8698137eds.12 for ; Thu, 25 Oct 2018 07:35:37 -0700 (PDT) In-Reply-To: <20181025143527.8575-1-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: DRI Development Cc: Intel Graphics Development List-Id: dri-devel@lists.freedesktop.org U2luY2UgLXJjMSB3ZSdyZSBoaXR0aW5nIGEgYnVuY2ggb2YgbG9ja2RlcCBzcGxhdHMgdXNpbmcg dGhlIG5ldwpjcm9zcy1yZWxlYXNlIHN0dWZmIGFyb3VuZCB0aGUgMiBrdGhyZWFkIGNvbXBsZXRp b25zLiBJbiBhbGwgY2FzZXMKdGhleSBhcmUgYmVjYXVzZSB0b3RhbGx5IGluZGVwZW5kZW50IHVz ZXMgb2Yga3RocmVhZCBhcmUgbWl4ZWQgdXAgYnkKbG9ja2RlcCBpbnRvIHRoZSBzYW1lIGxvY2tp bmcgY2xhc3MsIGNyZWF0aW5nIGFydGlmaWNpYWwgZGVhZGxvY2tzLgoKRml4IHRoaXMgYnkgY29u dmVydGluZyBrdGhyZWFkIGNvZGUgaW4gdGhlIHNhbWUgd2F5IGFzIGUuZy4KYWxsb2Nfd29ya3F1 ZXVlIGFscmVhZHkgd29ya3M6IFVzZSBtYWNyb3MgZm9yIHRoZSBwdWJsaWMgYXBpIHNvIHdlIGNh bgpoYXZlIGEgY2FsbHNpdGUgc3BlY2lmaWMgbG9ja2RlcCBrZXksIHRoZW4gcGFzcyB0aGF0IHRo cm91Z2ggdGhlCmVudGlyZSBjYWxsY2hhaW4uIER1ZSB0byB0aGUgbWFueSBlbnRyeSBwb2ludHMg dGhpcyBpcyBzbGlnaHRseQp0ZWRpb3VzLgoKQ2M6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJz dWxpbkBpbnRlbC5jb20+CkNjOiBNYXJ0YSBMb2ZzdGVkdCA8bWFydGEubG9mc3RlZHRAaW50ZWwu Y29tPgpDYzogQnl1bmdjaHVsIFBhcmsgPGJ5dW5nY2h1bC5wYXJrQGxnZS5jb20+CkNjOiBJbmdv IE1vbG5hciA8bWluZ29Aa2VybmVsLm9yZz4KQ2M6IFBldGVyIFppamxzdHJhIDxwZXRlcnpAaW5m cmFkZWFkLm9yZz4KQ2M6IFRlanVuIEhlbyA8dGpAa2VybmVsLm9yZz4KQ2M6IEtlZXMgQ29vayA8 a2Vlc2Nvb2tAY2hyb21pdW0ub3JnPgpDYzogVGhvbWFzIEdsZWl4bmVyIDx0Z2x4QGxpbnV0cm9u aXguZGU+CkNjOiBTaGFvaHVhIExpIDxzaGxpQGZiLmNvbT4KQ2M6IEFuZHJldyBNb3J0b24gPGFr cG1AbGludXgtZm91bmRhdGlvbi5vcmc+CkNjOiBKZW5zIEF4Ym9lIDxheGJvZUBrZXJuZWwuZGs+ CkNjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgpDYzogR3JlZyBLcm9h aC1IYXJ0bWFuIDxncmVna2hAbGludXhmb3VuZGF0aW9uLm9yZz4KQ2M6IEpvbmF0aGFuIENvcmJl dCA8Y29yYmV0QGx3bi5uZXQ+CkNjOiBPbGVnIE5lc3Rlcm92IDxvbGVnQHJlZGhhdC5jb20+ClJl ZmVyZW5jZXM6IGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTEw Mzk1MApTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNv bT4KLS0tCiBpbmNsdWRlL2xpbnV4L2t0aHJlYWQuaCB8IDQ4ICsrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tCiBrZXJuZWwva3RocmVhZC5jICAgICAgICB8IDY4ICsrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDg4IGluc2VydGlvbnMo KyksIDI4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgva3RocmVhZC5o IGIvaW5jbHVkZS9saW51eC9rdGhyZWFkLmgKaW5kZXggYzE5NjE3NjEzMTFkLi43YTk0NjNmMGJl NWMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgva3RocmVhZC5oCisrKyBiL2luY2x1ZGUvbGlu dXgva3RocmVhZC5oCkBAIC02LDEwICs2LDEyIEBACiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4K ICNpbmNsdWRlIDxsaW51eC9jZ3JvdXAuaD4KIAotX19wcmludGYoNCwgNSkKLXN0cnVjdCB0YXNr X3N0cnVjdCAqa3RocmVhZF9jcmVhdGVfb25fbm9kZShpbnQgKCp0aHJlYWRmbikodm9pZCAqZGF0 YSksCitfX3ByaW50Zig2LCA3KQorc3RydWN0IHRhc2tfc3RydWN0ICpfa3RocmVhZF9jcmVhdGVf b25fbm9kZShpbnQgKCp0aHJlYWRmbikodm9pZCAqZGF0YSksCiAJCQkJCSAgIHZvaWQgKmRhdGEs CiAJCQkJCSAgIGludCBub2RlLAorCQkJCQkgICBzdHJ1Y3QgbG9ja19jbGFzc19rZXkgKmV4aXRl ZF9rZXksCisJCQkJCSAgIHN0cnVjdCBsb2NrX2NsYXNzX2tleSAqcGFya2VkX2tleSwKIAkJCQkJ ICAgY29uc3QgY2hhciBuYW1lZm10W10sIC4uLik7CiAKIC8qKgpAQCAtMjUsMTIgKzI3LDI3IEBA IHN0cnVjdCB0YXNrX3N0cnVjdCAqa3RocmVhZF9jcmVhdGVfb25fbm9kZShpbnQgKCp0aHJlYWRm bikodm9pZCAqZGF0YSksCiAgKi8KICNkZWZpbmUga3RocmVhZF9jcmVhdGUodGhyZWFkZm4sIGRh dGEsIG5hbWVmbXQsIGFyZy4uLikgXAogCWt0aHJlYWRfY3JlYXRlX29uX25vZGUodGhyZWFkZm4s IGRhdGEsIE5VTUFfTk9fTk9ERSwgbmFtZWZtdCwgIyNhcmcpCisjZGVmaW5lIGt0aHJlYWRfY3Jl YXRlX29uX25vZGUodGhyZWFkZm4sIGRhdGEsIG5vZGUsIG5hbWVmbXQsIGFyZy4uLikJXAorKHsJ CQkJCQkJCQlcCisJc3RhdGljIHN0cnVjdCBsb2NrX2NsYXNzX2tleSBfX2V4aXRlZF9rZXksIF9f cGFya2VkX2tleTsJXAorCV9rdGhyZWFkX2NyZWF0ZV9vbl9ub2RlKHRocmVhZGZuLCBkYXRhLCBu b2RlLCAmX19leGl0ZWRfa2V5LAlcCisJCQkgICAgICAgJl9fcGFya2VkX2tleSwgbmFtZWZtdCwg IyNhcmcpOwkJXAorfSkKIAogCi1zdHJ1Y3QgdGFza19zdHJ1Y3QgKmt0aHJlYWRfY3JlYXRlX29u X2NwdShpbnQgKCp0aHJlYWRmbikodm9pZCAqZGF0YSksCitzdHJ1Y3QgdGFza19zdHJ1Y3QgKl9r dGhyZWFkX2NyZWF0ZV9vbl9jcHUoaW50ICgqdGhyZWFkZm4pKHZvaWQgKmRhdGEpLAogCQkJCQkg IHZvaWQgKmRhdGEsCiAJCQkJCSAgdW5zaWduZWQgaW50IGNwdSwKKwkJCQkJICBzdHJ1Y3QgbG9j a19jbGFzc19rZXkgKmV4aXRlZF9rZXksCisJCQkJCSAgc3RydWN0IGxvY2tfY2xhc3Nfa2V5ICpw YXJrZWRfa2V5LAogCQkJCQkgIGNvbnN0IGNoYXIgKm5hbWVmbXQpOworI2RlZmluZSBrdGhyZWFk X2NyZWF0ZV9vbl9jcHUodGhyZWFkZm4sIGRhdGEsIGNwdSwgbmFtZWZtdCkJCVwKKyh7CQkJCQkJ CQkJXAorCXN0YXRpYyBzdHJ1Y3QgbG9ja19jbGFzc19rZXkgX19leGl0ZWRfa2V5LCBfX3Bhcmtl ZF9rZXk7CVwKKwlfa3RocmVhZF9jcmVhdGVfb25fY3B1KHRocmVhZGZuLCBkYXRhLCBjcHUsICZf X2V4aXRlZF9rZXksXAorCQkJICAgICAgICZfX3BhcmtlZF9rZXksIG5hbWVmbXQpOwkJCVwKK30p CisKIAogLyoqCiAgKiBrdGhyZWFkX3J1biAtIGNyZWF0ZSBhbmQgd2FrZSBhIHRocmVhZC4KQEAg LTE3MSwxMyArMTg4LDMwIEBAIGV4dGVybiB2b2lkIF9fa3RocmVhZF9pbml0X3dvcmtlcihzdHJ1 Y3Qga3RocmVhZF93b3JrZXIgKndvcmtlciwKIAogaW50IGt0aHJlYWRfd29ya2VyX2ZuKHZvaWQg Kndvcmtlcl9wdHIpOwogCi1fX3ByaW50ZigyLCAzKQorX19wcmludGYoNCwgNSkKIHN0cnVjdCBr dGhyZWFkX3dvcmtlciAqCi1rdGhyZWFkX2NyZWF0ZV93b3JrZXIodW5zaWduZWQgaW50IGZsYWdz LCBjb25zdCBjaGFyIG5hbWVmbXRbXSwgLi4uKTsKK19rdGhyZWFkX2NyZWF0ZV93b3JrZXIodW5z aWduZWQgaW50IGZsYWdzLAorCQkgICAgICAgc3RydWN0IGxvY2tfY2xhc3Nfa2V5ICpleGl0ZWRf a2V5LAorCQkgICAgICAgc3RydWN0IGxvY2tfY2xhc3Nfa2V5ICpwYXJrZWRfa2V5LAorCQkgICAg ICAgY29uc3QgY2hhciBuYW1lZm10W10sIC4uLik7CisjZGVmaW5lIGt0aHJlYWRfY3JlYXRlX3dv cmtlcihmbGFncywgbmFtZWZtdC4uLikJCQkJXAorKHsJCQkJCQkJCQlcCisJc3RhdGljIHN0cnVj dCBsb2NrX2NsYXNzX2tleSBfX2V4aXRlZF9rZXksIF9fcGFya2VkX2tleTsJXAorCV9rdGhyZWFk X2NyZWF0ZV93b3JrZXIoZmxhZ3MsICZfX2V4aXRlZF9rZXksICZfX3BhcmtlZF9rZXksCVwKKwkJ CSAgICAgICAjI25hbWVmbXQpOwkJCQlcCit9KQogCi1fX3ByaW50ZigzLCA0KSBzdHJ1Y3Qga3Ro cmVhZF93b3JrZXIgKgota3RocmVhZF9jcmVhdGVfd29ya2VyX29uX2NwdShpbnQgY3B1LCB1bnNp Z25lZCBpbnQgZmxhZ3MsCitfX3ByaW50Zig1LCA2KSBzdHJ1Y3Qga3RocmVhZF93b3JrZXIgKgor X2t0aHJlYWRfY3JlYXRlX3dvcmtlcl9vbl9jcHUoaW50IGNwdSwgdW5zaWduZWQgaW50IGZsYWdz LAorCQkgICAgICAgc3RydWN0IGxvY2tfY2xhc3Nfa2V5ICpleGl0ZWRfa2V5LAorCQkgICAgICAg c3RydWN0IGxvY2tfY2xhc3Nfa2V5ICpwYXJrZWRfa2V5LAogCQkJICAgICBjb25zdCBjaGFyIG5h bWVmbXRbXSwgLi4uKTsKKyNkZWZpbmUga3RocmVhZF9jcmVhdGVfd29ya2VyX29uX2NwdShjcHUs IGZsYWdzLCBuYW1lZm10Li4uKQlcCisoewkJCQkJCQkJCVwKKwlzdGF0aWMgc3RydWN0IGxvY2tf Y2xhc3Nfa2V5IF9fZXhpdGVkX2tleSwgX19wYXJrZWRfa2V5OwlcCisJX2t0aHJlYWRfY3JlYXRl X3dvcmtlcl9vbl9jcHUoY3B1LCBmbGFncywgJl9fZXhpdGVkX2tleSwgJl9fcGFya2VkX2tleSxc CisJCQkgICAgICAgIyNuYW1lZm10KTsJCQkJXAorfSkKIAogYm9vbCBrdGhyZWFkX3F1ZXVlX3dv cmsoc3RydWN0IGt0aHJlYWRfd29ya2VyICp3b3JrZXIsCiAJCQlzdHJ1Y3Qga3RocmVhZF93b3Jr ICp3b3JrKTsKZGlmZiAtLWdpdCBhL2tlcm5lbC9rdGhyZWFkLmMgYi9rZXJuZWwva3RocmVhZC5j CmluZGV4IDA4N2QxOGQ3NzFiNS4uNjRjMDQ2NGExN2RkIDEwMDY0NAotLS0gYS9rZXJuZWwva3Ro cmVhZC5jCisrKyBiL2tlcm5lbC9rdGhyZWFkLmMKQEAgLTMyLDYgKzMyLDcgQEAgc3RydWN0IGt0 aHJlYWRfY3JlYXRlX2luZm8KIAlpbnQgKCp0aHJlYWRmbikodm9pZCAqZGF0YSk7CiAJdm9pZCAq ZGF0YTsKIAlpbnQgbm9kZTsKKwlzdHJ1Y3QgbG9ja19jbGFzc19rZXkgKmV4aXRlZF9rZXksICpw YXJrZWRfa2V5OwogCiAJLyogUmVzdWx0IHBhc3NlZCBiYWNrIHRvIGt0aHJlYWRfY3JlYXRlKCkg ZnJvbSBrdGhyZWFkZC4gKi8KIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnJlc3VsdDsKQEAgLTIyOSw4 ICsyMzAsMTUgQEAgc3RhdGljIGludCBrdGhyZWFkKHZvaWQgKl9jcmVhdGUpCiAJfQogCiAJc2Vs Zi0+ZGF0YSA9IGRhdGE7Ci0JaW5pdF9jb21wbGV0aW9uKCZzZWxmLT5leGl0ZWQpOwotCWluaXRf Y29tcGxldGlvbigmc2VsZi0+cGFya2VkKTsKKwlsb2NrZGVwX2luaXRfbWFwX2Nyb3NzbG9jaygm c2VsZi0+ZXhpdGVkLm1hcC5tYXAsCisJCQkiKGt0aHJlYWQgY29tcGxldGlvbiktPmV4aXRlZCIs CisJCQljcmVhdGUtPmV4aXRlZF9rZXksIDApOworCWluaXRfY29tcGxldGlvbl9tYXAoJnNlbGYt PmV4aXRlZCwgJnNlbGYtPmV4aXRlZC5tYXAubWFwKTsKKwlsb2NrZGVwX2luaXRfbWFwX2Nyb3Nz bG9jaygmc2VsZi0+cGFya2VkLm1hcC5tYXAsCisJCQkiKGt0aHJlYWQgY29tcGxldGlvbiktPnBh cmtlZCIsCisJCQljcmVhdGUtPnBhcmtlZF9rZXksIDApOworCWluaXRfY29tcGxldGlvbl9tYXAo JnNlbGYtPnBhcmtlZCwgJnNlbGYtPmV4aXRlZC5tYXAubWFwKTsKKwogCWN1cnJlbnQtPnZmb3Jr X2RvbmUgPSAmc2VsZi0+ZXhpdGVkOwogCiAJLyogT0ssIHRlbGwgdXNlciB3ZSdyZSBzcGF3bmVk LCB3YWl0IGZvciBzdG9wIG9yIHdha2V1cCAqLwpAQCAtMjgwLDkgKzI4OCwxMSBAQCBzdGF0aWMg dm9pZCBjcmVhdGVfa3RocmVhZChzdHJ1Y3Qga3RocmVhZF9jcmVhdGVfaW5mbyAqY3JlYXRlKQog CX0KIH0KIAotc3RhdGljIF9fcHJpbnRmKDQsIDApCitzdGF0aWMgX19wcmludGYoNiwgMCkKIHN0 cnVjdCB0YXNrX3N0cnVjdCAqX19rdGhyZWFkX2NyZWF0ZV9vbl9ub2RlKGludCAoKnRocmVhZGZu KSh2b2lkICpkYXRhKSwKIAkJCQkJCSAgICB2b2lkICpkYXRhLCBpbnQgbm9kZSwKKwkJCQkJCSAg ICBzdHJ1Y3QgbG9ja19jbGFzc19rZXkgKmV4aXRlZF9rZXksCisJCQkJCQkgICAgc3RydWN0IGxv Y2tfY2xhc3Nfa2V5ICpwYXJrZWRfa2V5LAogCQkJCQkJICAgIGNvbnN0IGNoYXIgbmFtZWZtdFtd LAogCQkJCQkJICAgIHZhX2xpc3QgYXJncykKIHsKQEAgLTI5Nyw2ICszMDcsOCBAQCBzdHJ1Y3Qg dGFza19zdHJ1Y3QgKl9fa3RocmVhZF9jcmVhdGVfb25fbm9kZShpbnQgKCp0aHJlYWRmbikodm9p ZCAqZGF0YSksCiAJY3JlYXRlLT5kYXRhID0gZGF0YTsKIAljcmVhdGUtPm5vZGUgPSBub2RlOwog CWNyZWF0ZS0+ZG9uZSA9ICZkb25lOworCWNyZWF0ZS0+ZXhpdGVkX2tleSA9IGV4aXRlZF9rZXk7 CisJY3JlYXRlLT5wYXJrZWRfa2V5ID0gcGFya2VkX2tleTsKIAogCXNwaW5fbG9jaygma3RocmVh ZF9jcmVhdGVfbG9jayk7CiAJbGlzdF9hZGRfdGFpbCgmY3JlYXRlLT5saXN0LCAma3RocmVhZF9j cmVhdGVfbGlzdCk7CkBAIC0zNjcsMjEgKzM3OSwyNCBAQCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKl9f a3RocmVhZF9jcmVhdGVfb25fbm9kZShpbnQgKCp0aHJlYWRmbikodm9pZCAqZGF0YSksCiAgKgog ICogUmV0dXJucyBhIHRhc2tfc3RydWN0IG9yIEVSUl9QVFIoLUVOT01FTSkgb3IgRVJSX1BUUigt RUlOVFIpLgogICovCi1zdHJ1Y3QgdGFza19zdHJ1Y3QgKmt0aHJlYWRfY3JlYXRlX29uX25vZGUo aW50ICgqdGhyZWFkZm4pKHZvaWQgKmRhdGEpLAotCQkJCQkgICB2b2lkICpkYXRhLCBpbnQgbm9k ZSwKLQkJCQkJICAgY29uc3QgY2hhciBuYW1lZm10W10sCi0JCQkJCSAgIC4uLikKK3N0cnVjdCB0 YXNrX3N0cnVjdCAqX2t0aHJlYWRfY3JlYXRlX29uX25vZGUoaW50ICgqdGhyZWFkZm4pKHZvaWQg KmRhdGEpLAorCQkJCQkgICAgdm9pZCAqZGF0YSwgaW50IG5vZGUsCisJCQkJCSAgICBzdHJ1Y3Qg bG9ja19jbGFzc19rZXkgKmV4aXRlZF9rZXksCisJCQkJCSAgICBzdHJ1Y3QgbG9ja19jbGFzc19r ZXkgKnBhcmtlZF9rZXksCisJCQkJCSAgICBjb25zdCBjaGFyIG5hbWVmbXRbXSwKKwkJCQkJICAg IC4uLikKIHsKIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2s7CiAJdmFfbGlzdCBhcmdzOwogCiAJ dmFfc3RhcnQoYXJncywgbmFtZWZtdCk7Ci0JdGFzayA9IF9fa3RocmVhZF9jcmVhdGVfb25fbm9k ZSh0aHJlYWRmbiwgZGF0YSwgbm9kZSwgbmFtZWZtdCwgYXJncyk7CisJdGFzayA9IF9fa3RocmVh ZF9jcmVhdGVfb25fbm9kZSh0aHJlYWRmbiwgZGF0YSwgbm9kZSwKKwkJCQkJZXhpdGVkX2tleSwg cGFya2VkX2tleSwgbmFtZWZtdCwgYXJncyk7CiAJdmFfZW5kKGFyZ3MpOwogCiAJcmV0dXJuIHRh c2s7CiB9Ci1FWFBPUlRfU1lNQk9MKGt0aHJlYWRfY3JlYXRlX29uX25vZGUpOworRVhQT1JUX1NZ TUJPTChfa3RocmVhZF9jcmVhdGVfb25fbm9kZSk7CiAKIHN0YXRpYyB2b2lkIF9fa3RocmVhZF9i aW5kX21hc2soc3RydWN0IHRhc2tfc3RydWN0ICpwLCBjb25zdCBzdHJ1Y3QgY3B1bWFzayAqbWFz aywgbG9uZyBzdGF0ZSkKIHsKQEAgLTQzNSwxNCArNDUwLDE2IEBAIEVYUE9SVF9TWU1CT0woa3Ro cmVhZF9iaW5kKTsKICAqIERlc2NyaXB0aW9uOiBUaGlzIGhlbHBlciBmdW5jdGlvbiBjcmVhdGVz IGFuZCBuYW1lcyBhIGtlcm5lbCB0aHJlYWQKICAqIFRoZSB0aHJlYWQgd2lsbCBiZSB3b2tlbiBh bmQgcHV0IGludG8gcGFyayBtb2RlLgogICovCi1zdHJ1Y3QgdGFza19zdHJ1Y3QgKmt0aHJlYWRf Y3JlYXRlX29uX2NwdShpbnQgKCp0aHJlYWRmbikodm9pZCAqZGF0YSksCitzdHJ1Y3QgdGFza19z dHJ1Y3QgKl9rdGhyZWFkX2NyZWF0ZV9vbl9jcHUoaW50ICgqdGhyZWFkZm4pKHZvaWQgKmRhdGEp LAogCQkJCQkgIHZvaWQgKmRhdGEsIHVuc2lnbmVkIGludCBjcHUsCisJCQkJCSAgc3RydWN0IGxv Y2tfY2xhc3Nfa2V5ICpleGl0ZWRfa2V5LAorCQkJCQkgIHN0cnVjdCBsb2NrX2NsYXNzX2tleSAq cGFya2VkX2tleSwKIAkJCQkJICBjb25zdCBjaGFyICpuYW1lZm10KQogewogCXN0cnVjdCB0YXNr X3N0cnVjdCAqcDsKIAotCXAgPSBrdGhyZWFkX2NyZWF0ZV9vbl9ub2RlKHRocmVhZGZuLCBkYXRh LCBjcHVfdG9fbm9kZShjcHUpLCBuYW1lZm10LAotCQkJCSAgIGNwdSk7CisJcCA9IF9rdGhyZWFk X2NyZWF0ZV9vbl9ub2RlKHRocmVhZGZuLCBkYXRhLCBjcHVfdG9fbm9kZShjcHUpLAorCQkJCSAg ICBleGl0ZWRfa2V5LCBwYXJrZWRfa2V5LCBuYW1lZm10LCBjcHUpOwogCWlmIChJU19FUlIocCkp CiAJCXJldHVybiBwOwogCWt0aHJlYWRfYmluZChwLCBjcHUpOwpAQCAtNjY5LDggKzY4NiwxMCBA QCBpbnQga3RocmVhZF93b3JrZXJfZm4odm9pZCAqd29ya2VyX3B0cikKIH0KIEVYUE9SVF9TWU1C T0xfR1BMKGt0aHJlYWRfd29ya2VyX2ZuKTsKIAotc3RhdGljIF9fcHJpbnRmKDMsIDApIHN0cnVj dCBrdGhyZWFkX3dvcmtlciAqCitzdGF0aWMgX19wcmludGYoNSwgMCkgc3RydWN0IGt0aHJlYWRf d29ya2VyICoKIF9fa3RocmVhZF9jcmVhdGVfd29ya2VyKGludCBjcHUsIHVuc2lnbmVkIGludCBm bGFncywKKwkJCXN0cnVjdCBsb2NrX2NsYXNzX2tleSAqZXhpdGVkX2tleSwKKwkJCXN0cnVjdCBs b2NrX2NsYXNzX2tleSAqcGFya2VkX2tleSwKIAkJCWNvbnN0IGNoYXIgbmFtZWZtdFtdLCB2YV9s aXN0IGFyZ3MpCiB7CiAJc3RydWN0IGt0aHJlYWRfd29ya2VyICp3b3JrZXI7CkBAIC02ODYsOCAr NzA1LDggQEAgX19rdGhyZWFkX2NyZWF0ZV93b3JrZXIoaW50IGNwdSwgdW5zaWduZWQgaW50IGZs YWdzLAogCWlmIChjcHUgPj0gMCkKIAkJbm9kZSA9IGNwdV90b19ub2RlKGNwdSk7CiAKLQl0YXNr ID0gX19rdGhyZWFkX2NyZWF0ZV9vbl9ub2RlKGt0aHJlYWRfd29ya2VyX2ZuLCB3b3JrZXIsCi0J CQkJCQlub2RlLCBuYW1lZm10LCBhcmdzKTsKKwl0YXNrID0gX19rdGhyZWFkX2NyZWF0ZV9vbl9u b2RlKGt0aHJlYWRfd29ya2VyX2ZuLCB3b3JrZXIsIG5vZGUsCisJCQkJCWV4aXRlZF9rZXksIHBh cmtlZF9rZXksIG5hbWVmbXQsIGFyZ3MpOwogCWlmIChJU19FUlIodGFzaykpCiAJCWdvdG8gZmFp bF90YXNrOwogCkBAIC03MTQsMTggKzczMywyMiBAQCBfX2t0aHJlYWRfY3JlYXRlX3dvcmtlcihp bnQgY3B1LCB1bnNpZ25lZCBpbnQgZmxhZ3MsCiAgKiB3aGVuIHRoZSB3b3JrZXIgd2FzIFNJR0tJ TExlZC4KICAqLwogc3RydWN0IGt0aHJlYWRfd29ya2VyICoKLWt0aHJlYWRfY3JlYXRlX3dvcmtl cih1bnNpZ25lZCBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgbmFtZWZtdFtdLCAuLi4pCitfa3RocmVh ZF9jcmVhdGVfd29ya2VyKHVuc2lnbmVkIGludCBmbGFncywKKwkJICAgICAgIHN0cnVjdCBsb2Nr X2NsYXNzX2tleSAqZXhpdGVkX2tleSwKKwkJICAgICAgIHN0cnVjdCBsb2NrX2NsYXNzX2tleSAq cGFya2VkX2tleSwKKwkJICAgICAgIGNvbnN0IGNoYXIgbmFtZWZtdFtdLCAuLi4pCiB7CiAJc3Ry dWN0IGt0aHJlYWRfd29ya2VyICp3b3JrZXI7CiAJdmFfbGlzdCBhcmdzOwogCiAJdmFfc3RhcnQo YXJncywgbmFtZWZtdCk7Ci0Jd29ya2VyID0gX19rdGhyZWFkX2NyZWF0ZV93b3JrZXIoLTEsIGZs YWdzLCBuYW1lZm10LCBhcmdzKTsKKwl3b3JrZXIgPSBfX2t0aHJlYWRfY3JlYXRlX3dvcmtlcigt MSwgZmxhZ3MsIGV4aXRlZF9rZXksIHBhcmtlZF9rZXksCisJCQkJCSBuYW1lZm10LCBhcmdzKTsK IAl2YV9lbmQoYXJncyk7CiAKIAlyZXR1cm4gd29ya2VyOwogfQotRVhQT1JUX1NZTUJPTChrdGhy ZWFkX2NyZWF0ZV93b3JrZXIpOworRVhQT1JUX1NZTUJPTChfa3RocmVhZF9jcmVhdGVfd29ya2Vy KTsKIAogLyoqCiAgKiBrdGhyZWFkX2NyZWF0ZV93b3JrZXJfb25fY3B1IC0gY3JlYXRlIGEga3Ro cmVhZCB3b3JrZXIgYW5kIGJpbmQgaXQKQEAgLTc0NSwxOSArNzY4LDIyIEBAIEVYUE9SVF9TWU1C T0woa3RocmVhZF9jcmVhdGVfd29ya2VyKTsKICAqIHdoZW4gdGhlIHdvcmtlciB3YXMgU0lHS0lM TGVkLgogICovCiBzdHJ1Y3Qga3RocmVhZF93b3JrZXIgKgota3RocmVhZF9jcmVhdGVfd29ya2Vy X29uX2NwdShpbnQgY3B1LCB1bnNpZ25lZCBpbnQgZmxhZ3MsCitfa3RocmVhZF9jcmVhdGVfd29y a2VyX29uX2NwdShpbnQgY3B1LCB1bnNpZ25lZCBpbnQgZmxhZ3MsCisJCQkgICAgICBzdHJ1Y3Qg bG9ja19jbGFzc19rZXkgKmV4aXRlZF9rZXksCisJCQkgICAgICBzdHJ1Y3QgbG9ja19jbGFzc19r ZXkgKnBhcmtlZF9rZXksCiAJCQkgICAgIGNvbnN0IGNoYXIgbmFtZWZtdFtdLCAuLi4pCiB7CiAJ c3RydWN0IGt0aHJlYWRfd29ya2VyICp3b3JrZXI7CiAJdmFfbGlzdCBhcmdzOwogCiAJdmFfc3Rh cnQoYXJncywgbmFtZWZtdCk7Ci0Jd29ya2VyID0gX19rdGhyZWFkX2NyZWF0ZV93b3JrZXIoY3B1 LCBmbGFncywgbmFtZWZtdCwgYXJncyk7CisJd29ya2VyID0gX19rdGhyZWFkX2NyZWF0ZV93b3Jr ZXIoY3B1LCBmbGFncywgZXhpdGVkX2tleSwgcGFya2VkX2tleSwKKwkJCQkJIG5hbWVmbXQsIGFy Z3MpOwogCXZhX2VuZChhcmdzKTsKIAogCXJldHVybiB3b3JrZXI7CiB9Ci1FWFBPUlRfU1lNQk9M KGt0aHJlYWRfY3JlYXRlX3dvcmtlcl9vbl9jcHUpOworRVhQT1JUX1NZTUJPTChfa3RocmVhZF9j cmVhdGVfd29ya2VyX29uX2NwdSk7CiAKIC8qCiAgKiBSZXR1cm5zIHRydWUgd2hlbiB0aGUgd29y ayBjb3VsZCBub3QgYmUgcXVldWVkIGF0IHRoZSBtb21lbnQuCi0tIAoyLjE5LjEKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=