From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: [PATCH 02/13] kthread: finer-grained lockdep/cross-release completion Date: Wed, 7 Nov 2018 16:30:08 +0100 Message-ID: <20181107153019.26401-2-daniel.vetter@ffwll.ch> References: <20181107153019.26401-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-x541.google.com (mail-ed1-x541.google.com [IPv6:2a00:1450:4864:20::541]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6E9326E1A4 for ; Wed, 7 Nov 2018 15:30:29 +0000 (UTC) Received: by mail-ed1-x541.google.com with SMTP id w25so7846877edx.6 for ; Wed, 07 Nov 2018 07:30:29 -0800 (PST) Received: from phenom.ffwll.local ([2a02:168:569e:0:3106:d637:d723:e855]) by smtp.gmail.com with ESMTPSA id b48-v6sm322425edb.27.2018.11.07.07.30.26 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 07 Nov 2018 07:30:26 -0800 (PST) In-Reply-To: <20181107153019.26401-1-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel Graphics Development List-Id: intel-gfx@lists.freedesktop.org V2hlbiBjcm9zcyByZWxlYXNlIHdhcyBvcmlnaW5hbGx5IG1lcmdlZCB3ZSd2ZSBoaXQgYSBidW5j aCBvZiBsb2NrZGVwCnNwbGF0cyBhcm91bmQgdGhlIDIga3RocmVhZCBjb21wbGV0aW9ucy4gSW4g YWxsIGNhc2VzIHRoZXkgYXJlIGJlY2F1c2UKdG90YWxseSBpbmRlcGVuZGVudCB1c2VzIG9mIGt0 aHJlYWQgYXJlIG1peGVkIHVwIGJ5IGxvY2tkZXAgaW50byB0aGUKc2FtZSBsb2NraW5nIGNsYXNz LCBjcmVhdGluZyBhcnRpZmljaWFsIGRlYWRsb2Nrcy4KCkZpeCB0aGlzIGJ5IGNvbnZlcnRpbmcg a3RocmVhZCBjb2RlIGluIHRoZSBzYW1lIHdheSBhcyBlLmcuCmFsbG9jX3dvcmtxdWV1ZSBhbHJl YWR5IHdvcmtzOiBVc2UgbWFjcm9zIGZvciB0aGUgcHVibGljIGFwaSBzbyB3ZSBjYW4KaGF2ZSBh IGNhbGxzaXRlIHNwZWNpZmljIGxvY2tkZXAga2V5LCB0aGVuIHBhc3MgdGhhdCB0aHJvdWdoIHRo ZQplbnRpcmUgY2FsbGNoYWluLiBEdWUgdG8gdGhlIG1hbnkgZW50cnkgcG9pbnRzIHRoaXMgaXMg c2xpZ2h0bHkKdGVkaW91cy4KCkNjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50 ZWwuY29tPgpDYzogTWFydGEgTG9mc3RlZHQgPG1hcnRhLmxvZnN0ZWR0QGludGVsLmNvbT4KQ2M6 IEJ5dW5nY2h1bCBQYXJrIDxieXVuZ2NodWwucGFya0BsZ2UuY29tPgpDYzogSW5nbyBNb2xuYXIg PG1pbmdvQGtlcm5lbC5vcmc+CkNjOiBQZXRlciBaaWpsc3RyYSA8cGV0ZXJ6QGluZnJhZGVhZC5v cmc+CkNjOiBUZWp1biBIZW8gPHRqQGtlcm5lbC5vcmc+CkNjOiBLZWVzIENvb2sgPGtlZXNjb29r QGNocm9taXVtLm9yZz4KQ2M6IFRob21hcyBHbGVpeG5lciA8dGdseEBsaW51dHJvbml4LmRlPgpD YzogU2hhb2h1YSBMaSA8c2hsaUBmYi5jb20+CkNjOiBBbmRyZXcgTW9ydG9uIDxha3BtQGxpbnV4 LWZvdW5kYXRpb24ub3JnPgpDYzogSmVucyBBeGJvZSA8YXhib2VAa2VybmVsLmRrPgpDYzogRGFu aWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KQ2M6IEdyZWcgS3JvYWgtSGFydG1h biA8Z3JlZ2toQGxpbnV4Zm91bmRhdGlvbi5vcmc+CkNjOiBKb25hdGhhbiBDb3JiZXQgPGNvcmJl dEBsd24ubmV0PgpDYzogT2xlZyBOZXN0ZXJvdiA8b2xlZ0ByZWRoYXQuY29tPgpDYzogIlN0ZXZl biBSb3N0ZWR0IChWTXdhcmUpIiA8cm9zdGVkdEBnb29kbWlzLm9yZz4KQ2M6IFNuaWxkIERvbGtv dyA8c25pbGRAc29ueS5jb20+ClJlZmVyZW5jZXM6IGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5v cmcvc2hvd19idWcuY2dpP2lkPTEwMzk1MApTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxk YW5pZWwudmV0dGVyQGludGVsLmNvbT4KLS0KUGV0ZXIgYWNrZWQgdGhlIG9yaWdpbmFsIHBhdGNo IGJ1dCB0aGVuIGNyb3NzLXJlbGVhc2UgZ290IHJlbW92ZWQKYmVmb3JlIHRoaXMgb25lIGhlcmUg bGFuZGVkLgotRGFuaWVsCi0tLQogaW5jbHVkZS9saW51eC9rdGhyZWFkLmggfCA0OCArKysrKysr KysrKysrKysrKysrKysrKystLS0tLQoga2VybmVsL2t0aHJlYWQuYyAgICAgICAgfCA2OCArKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA4 OCBpbnNlcnRpb25zKCspLCAyOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xp bnV4L2t0aHJlYWQuaCBiL2luY2x1ZGUvbGludXgva3RocmVhZC5oCmluZGV4IGMxOTYxNzYxMzEx ZC4uN2E5NDYzZjBiZTVjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2t0aHJlYWQuaAorKysg Yi9pbmNsdWRlL2xpbnV4L2t0aHJlYWQuaApAQCAtNiwxMCArNiwxMiBAQAogI2luY2x1ZGUgPGxp bnV4L3NjaGVkLmg+CiAjaW5jbHVkZSA8bGludXgvY2dyb3VwLmg+CiAKLV9fcHJpbnRmKDQsIDUp Ci1zdHJ1Y3QgdGFza19zdHJ1Y3QgKmt0aHJlYWRfY3JlYXRlX29uX25vZGUoaW50ICgqdGhyZWFk Zm4pKHZvaWQgKmRhdGEpLAorX19wcmludGYoNiwgNykKK3N0cnVjdCB0YXNrX3N0cnVjdCAqX2t0 aHJlYWRfY3JlYXRlX29uX25vZGUoaW50ICgqdGhyZWFkZm4pKHZvaWQgKmRhdGEpLAogCQkJCQkg ICB2b2lkICpkYXRhLAogCQkJCQkgICBpbnQgbm9kZSwKKwkJCQkJICAgc3RydWN0IGxvY2tfY2xh c3Nfa2V5ICpleGl0ZWRfa2V5LAorCQkJCQkgICBzdHJ1Y3QgbG9ja19jbGFzc19rZXkgKnBhcmtl ZF9rZXksCiAJCQkJCSAgIGNvbnN0IGNoYXIgbmFtZWZtdFtdLCAuLi4pOwogCiAvKioKQEAgLTI1 LDEyICsyNywyNyBAQCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmt0aHJlYWRfY3JlYXRlX29uX25vZGUo aW50ICgqdGhyZWFkZm4pKHZvaWQgKmRhdGEpLAogICovCiAjZGVmaW5lIGt0aHJlYWRfY3JlYXRl KHRocmVhZGZuLCBkYXRhLCBuYW1lZm10LCBhcmcuLi4pIFwKIAlrdGhyZWFkX2NyZWF0ZV9vbl9u b2RlKHRocmVhZGZuLCBkYXRhLCBOVU1BX05PX05PREUsIG5hbWVmbXQsICMjYXJnKQorI2RlZmlu ZSBrdGhyZWFkX2NyZWF0ZV9vbl9ub2RlKHRocmVhZGZuLCBkYXRhLCBub2RlLCBuYW1lZm10LCBh cmcuLi4pCVwKKyh7CQkJCQkJCQkJXAorCXN0YXRpYyBzdHJ1Y3QgbG9ja19jbGFzc19rZXkgX19l eGl0ZWRfa2V5LCBfX3BhcmtlZF9rZXk7CVwKKwlfa3RocmVhZF9jcmVhdGVfb25fbm9kZSh0aHJl YWRmbiwgZGF0YSwgbm9kZSwgJl9fZXhpdGVkX2tleSwJXAorCQkJICAgICAgICZfX3BhcmtlZF9r ZXksIG5hbWVmbXQsICMjYXJnKTsJCVwKK30pCiAKIAotc3RydWN0IHRhc2tfc3RydWN0ICprdGhy ZWFkX2NyZWF0ZV9vbl9jcHUoaW50ICgqdGhyZWFkZm4pKHZvaWQgKmRhdGEpLAorc3RydWN0IHRh c2tfc3RydWN0ICpfa3RocmVhZF9jcmVhdGVfb25fY3B1KGludCAoKnRocmVhZGZuKSh2b2lkICpk YXRhKSwKIAkJCQkJICB2b2lkICpkYXRhLAogCQkJCQkgIHVuc2lnbmVkIGludCBjcHUsCisJCQkJ CSAgc3RydWN0IGxvY2tfY2xhc3Nfa2V5ICpleGl0ZWRfa2V5LAorCQkJCQkgIHN0cnVjdCBsb2Nr X2NsYXNzX2tleSAqcGFya2VkX2tleSwKIAkJCQkJICBjb25zdCBjaGFyICpuYW1lZm10KTsKKyNk ZWZpbmUga3RocmVhZF9jcmVhdGVfb25fY3B1KHRocmVhZGZuLCBkYXRhLCBjcHUsIG5hbWVmbXQp CQlcCisoewkJCQkJCQkJCVwKKwlzdGF0aWMgc3RydWN0IGxvY2tfY2xhc3Nfa2V5IF9fZXhpdGVk X2tleSwgX19wYXJrZWRfa2V5OwlcCisJX2t0aHJlYWRfY3JlYXRlX29uX2NwdSh0aHJlYWRmbiwg ZGF0YSwgY3B1LCAmX19leGl0ZWRfa2V5LFwKKwkJCSAgICAgICAmX19wYXJrZWRfa2V5LCBuYW1l Zm10KTsJCQlcCit9KQorCiAKIC8qKgogICoga3RocmVhZF9ydW4gLSBjcmVhdGUgYW5kIHdha2Ug YSB0aHJlYWQuCkBAIC0xNzEsMTMgKzE4OCwzMCBAQCBleHRlcm4gdm9pZCBfX2t0aHJlYWRfaW5p dF93b3JrZXIoc3RydWN0IGt0aHJlYWRfd29ya2VyICp3b3JrZXIsCiAKIGludCBrdGhyZWFkX3dv cmtlcl9mbih2b2lkICp3b3JrZXJfcHRyKTsKIAotX19wcmludGYoMiwgMykKK19fcHJpbnRmKDQs IDUpCiBzdHJ1Y3Qga3RocmVhZF93b3JrZXIgKgota3RocmVhZF9jcmVhdGVfd29ya2VyKHVuc2ln bmVkIGludCBmbGFncywgY29uc3QgY2hhciBuYW1lZm10W10sIC4uLik7Citfa3RocmVhZF9jcmVh dGVfd29ya2VyKHVuc2lnbmVkIGludCBmbGFncywKKwkJICAgICAgIHN0cnVjdCBsb2NrX2NsYXNz X2tleSAqZXhpdGVkX2tleSwKKwkJICAgICAgIHN0cnVjdCBsb2NrX2NsYXNzX2tleSAqcGFya2Vk X2tleSwKKwkJICAgICAgIGNvbnN0IGNoYXIgbmFtZWZtdFtdLCAuLi4pOworI2RlZmluZSBrdGhy ZWFkX2NyZWF0ZV93b3JrZXIoZmxhZ3MsIG5hbWVmbXQuLi4pCQkJCVwKKyh7CQkJCQkJCQkJXAor CXN0YXRpYyBzdHJ1Y3QgbG9ja19jbGFzc19rZXkgX19leGl0ZWRfa2V5LCBfX3BhcmtlZF9rZXk7 CVwKKwlfa3RocmVhZF9jcmVhdGVfd29ya2VyKGZsYWdzLCAmX19leGl0ZWRfa2V5LCAmX19wYXJr ZWRfa2V5LAlcCisJCQkgICAgICAgIyNuYW1lZm10KTsJCQkJXAorfSkKIAotX19wcmludGYoMywg NCkgc3RydWN0IGt0aHJlYWRfd29ya2VyICoKLWt0aHJlYWRfY3JlYXRlX3dvcmtlcl9vbl9jcHUo aW50IGNwdSwgdW5zaWduZWQgaW50IGZsYWdzLAorX19wcmludGYoNSwgNikgc3RydWN0IGt0aHJl YWRfd29ya2VyICoKK19rdGhyZWFkX2NyZWF0ZV93b3JrZXJfb25fY3B1KGludCBjcHUsIHVuc2ln bmVkIGludCBmbGFncywKKwkJICAgICAgIHN0cnVjdCBsb2NrX2NsYXNzX2tleSAqZXhpdGVkX2tl eSwKKwkJICAgICAgIHN0cnVjdCBsb2NrX2NsYXNzX2tleSAqcGFya2VkX2tleSwKIAkJCSAgICAg Y29uc3QgY2hhciBuYW1lZm10W10sIC4uLik7CisjZGVmaW5lIGt0aHJlYWRfY3JlYXRlX3dvcmtl cl9vbl9jcHUoY3B1LCBmbGFncywgbmFtZWZtdC4uLikJXAorKHsJCQkJCQkJCQlcCisJc3RhdGlj IHN0cnVjdCBsb2NrX2NsYXNzX2tleSBfX2V4aXRlZF9rZXksIF9fcGFya2VkX2tleTsJXAorCV9r dGhyZWFkX2NyZWF0ZV93b3JrZXJfb25fY3B1KGNwdSwgZmxhZ3MsICZfX2V4aXRlZF9rZXksICZf X3BhcmtlZF9rZXksXAorCQkJICAgICAgICMjbmFtZWZtdCk7CQkJCVwKK30pCiAKIGJvb2wga3Ro cmVhZF9xdWV1ZV93b3JrKHN0cnVjdCBrdGhyZWFkX3dvcmtlciAqd29ya2VyLAogCQkJc3RydWN0 IGt0aHJlYWRfd29yayAqd29yayk7CmRpZmYgLS1naXQgYS9rZXJuZWwva3RocmVhZC5jIGIva2Vy bmVsL2t0aHJlYWQuYwppbmRleCAwODdkMThkNzcxYjUuLjY0YzA0NjRhMTdkZCAxMDA2NDQKLS0t IGEva2VybmVsL2t0aHJlYWQuYworKysgYi9rZXJuZWwva3RocmVhZC5jCkBAIC0zMiw2ICszMiw3 IEBAIHN0cnVjdCBrdGhyZWFkX2NyZWF0ZV9pbmZvCiAJaW50ICgqdGhyZWFkZm4pKHZvaWQgKmRh dGEpOwogCXZvaWQgKmRhdGE7CiAJaW50IG5vZGU7CisJc3RydWN0IGxvY2tfY2xhc3Nfa2V5ICpl eGl0ZWRfa2V5LCAqcGFya2VkX2tleTsKIAogCS8qIFJlc3VsdCBwYXNzZWQgYmFjayB0byBrdGhy ZWFkX2NyZWF0ZSgpIGZyb20ga3RocmVhZGQuICovCiAJc3RydWN0IHRhc2tfc3RydWN0ICpyZXN1 bHQ7CkBAIC0yMjksOCArMjMwLDE1IEBAIHN0YXRpYyBpbnQga3RocmVhZCh2b2lkICpfY3JlYXRl KQogCX0KIAogCXNlbGYtPmRhdGEgPSBkYXRhOwotCWluaXRfY29tcGxldGlvbigmc2VsZi0+ZXhp dGVkKTsKLQlpbml0X2NvbXBsZXRpb24oJnNlbGYtPnBhcmtlZCk7CisJbG9ja2RlcF9pbml0X21h cF9jcm9zc2xvY2soJnNlbGYtPmV4aXRlZC5tYXAubWFwLAorCQkJIihrdGhyZWFkIGNvbXBsZXRp b24pLT5leGl0ZWQiLAorCQkJY3JlYXRlLT5leGl0ZWRfa2V5LCAwKTsKKwlpbml0X2NvbXBsZXRp b25fbWFwKCZzZWxmLT5leGl0ZWQsICZzZWxmLT5leGl0ZWQubWFwLm1hcCk7CisJbG9ja2RlcF9p bml0X21hcF9jcm9zc2xvY2soJnNlbGYtPnBhcmtlZC5tYXAubWFwLAorCQkJIihrdGhyZWFkIGNv bXBsZXRpb24pLT5wYXJrZWQiLAorCQkJY3JlYXRlLT5wYXJrZWRfa2V5LCAwKTsKKwlpbml0X2Nv bXBsZXRpb25fbWFwKCZzZWxmLT5wYXJrZWQsICZzZWxmLT5leGl0ZWQubWFwLm1hcCk7CisKIAlj dXJyZW50LT52Zm9ya19kb25lID0gJnNlbGYtPmV4aXRlZDsKIAogCS8qIE9LLCB0ZWxsIHVzZXIg d2UncmUgc3Bhd25lZCwgd2FpdCBmb3Igc3RvcCBvciB3YWtldXAgKi8KQEAgLTI4MCw5ICsyODgs MTEgQEAgc3RhdGljIHZvaWQgY3JlYXRlX2t0aHJlYWQoc3RydWN0IGt0aHJlYWRfY3JlYXRlX2lu Zm8gKmNyZWF0ZSkKIAl9CiB9CiAKLXN0YXRpYyBfX3ByaW50Zig0LCAwKQorc3RhdGljIF9fcHJp bnRmKDYsIDApCiBzdHJ1Y3QgdGFza19zdHJ1Y3QgKl9fa3RocmVhZF9jcmVhdGVfb25fbm9kZShp bnQgKCp0aHJlYWRmbikodm9pZCAqZGF0YSksCiAJCQkJCQkgICAgdm9pZCAqZGF0YSwgaW50IG5v ZGUsCisJCQkJCQkgICAgc3RydWN0IGxvY2tfY2xhc3Nfa2V5ICpleGl0ZWRfa2V5LAorCQkJCQkJ ICAgIHN0cnVjdCBsb2NrX2NsYXNzX2tleSAqcGFya2VkX2tleSwKIAkJCQkJCSAgICBjb25zdCBj aGFyIG5hbWVmbXRbXSwKIAkJCQkJCSAgICB2YV9saXN0IGFyZ3MpCiB7CkBAIC0yOTcsNiArMzA3 LDggQEAgc3RydWN0IHRhc2tfc3RydWN0ICpfX2t0aHJlYWRfY3JlYXRlX29uX25vZGUoaW50ICgq dGhyZWFkZm4pKHZvaWQgKmRhdGEpLAogCWNyZWF0ZS0+ZGF0YSA9IGRhdGE7CiAJY3JlYXRlLT5u b2RlID0gbm9kZTsKIAljcmVhdGUtPmRvbmUgPSAmZG9uZTsKKwljcmVhdGUtPmV4aXRlZF9rZXkg PSBleGl0ZWRfa2V5OworCWNyZWF0ZS0+cGFya2VkX2tleSA9IHBhcmtlZF9rZXk7CiAKIAlzcGlu X2xvY2soJmt0aHJlYWRfY3JlYXRlX2xvY2spOwogCWxpc3RfYWRkX3RhaWwoJmNyZWF0ZS0+bGlz dCwgJmt0aHJlYWRfY3JlYXRlX2xpc3QpOwpAQCAtMzY3LDIxICszNzksMjQgQEAgc3RydWN0IHRh c2tfc3RydWN0ICpfX2t0aHJlYWRfY3JlYXRlX29uX25vZGUoaW50ICgqdGhyZWFkZm4pKHZvaWQg KmRhdGEpLAogICoKICAqIFJldHVybnMgYSB0YXNrX3N0cnVjdCBvciBFUlJfUFRSKC1FTk9NRU0p IG9yIEVSUl9QVFIoLUVJTlRSKS4KICAqLwotc3RydWN0IHRhc2tfc3RydWN0ICprdGhyZWFkX2Ny ZWF0ZV9vbl9ub2RlKGludCAoKnRocmVhZGZuKSh2b2lkICpkYXRhKSwKLQkJCQkJICAgdm9pZCAq ZGF0YSwgaW50IG5vZGUsCi0JCQkJCSAgIGNvbnN0IGNoYXIgbmFtZWZtdFtdLAotCQkJCQkgICAu Li4pCitzdHJ1Y3QgdGFza19zdHJ1Y3QgKl9rdGhyZWFkX2NyZWF0ZV9vbl9ub2RlKGludCAoKnRo cmVhZGZuKSh2b2lkICpkYXRhKSwKKwkJCQkJICAgIHZvaWQgKmRhdGEsIGludCBub2RlLAorCQkJ CQkgICAgc3RydWN0IGxvY2tfY2xhc3Nfa2V5ICpleGl0ZWRfa2V5LAorCQkJCQkgICAgc3RydWN0 IGxvY2tfY2xhc3Nfa2V5ICpwYXJrZWRfa2V5LAorCQkJCQkgICAgY29uc3QgY2hhciBuYW1lZm10 W10sCisJCQkJCSAgICAuLi4pCiB7CiAJc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrOwogCXZhX2xp c3QgYXJnczsKIAogCXZhX3N0YXJ0KGFyZ3MsIG5hbWVmbXQpOwotCXRhc2sgPSBfX2t0aHJlYWRf Y3JlYXRlX29uX25vZGUodGhyZWFkZm4sIGRhdGEsIG5vZGUsIG5hbWVmbXQsIGFyZ3MpOworCXRh c2sgPSBfX2t0aHJlYWRfY3JlYXRlX29uX25vZGUodGhyZWFkZm4sIGRhdGEsIG5vZGUsCisJCQkJ CWV4aXRlZF9rZXksIHBhcmtlZF9rZXksIG5hbWVmbXQsIGFyZ3MpOwogCXZhX2VuZChhcmdzKTsK IAogCXJldHVybiB0YXNrOwogfQotRVhQT1JUX1NZTUJPTChrdGhyZWFkX2NyZWF0ZV9vbl9ub2Rl KTsKK0VYUE9SVF9TWU1CT0woX2t0aHJlYWRfY3JlYXRlX29uX25vZGUpOwogCiBzdGF0aWMgdm9p ZCBfX2t0aHJlYWRfYmluZF9tYXNrKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgY29uc3Qgc3RydWN0 IGNwdW1hc2sgKm1hc2ssIGxvbmcgc3RhdGUpCiB7CkBAIC00MzUsMTQgKzQ1MCwxNiBAQCBFWFBP UlRfU1lNQk9MKGt0aHJlYWRfYmluZCk7CiAgKiBEZXNjcmlwdGlvbjogVGhpcyBoZWxwZXIgZnVu Y3Rpb24gY3JlYXRlcyBhbmQgbmFtZXMgYSBrZXJuZWwgdGhyZWFkCiAgKiBUaGUgdGhyZWFkIHdp bGwgYmUgd29rZW4gYW5kIHB1dCBpbnRvIHBhcmsgbW9kZS4KICAqLwotc3RydWN0IHRhc2tfc3Ry dWN0ICprdGhyZWFkX2NyZWF0ZV9vbl9jcHUoaW50ICgqdGhyZWFkZm4pKHZvaWQgKmRhdGEpLAor c3RydWN0IHRhc2tfc3RydWN0ICpfa3RocmVhZF9jcmVhdGVfb25fY3B1KGludCAoKnRocmVhZGZu KSh2b2lkICpkYXRhKSwKIAkJCQkJICB2b2lkICpkYXRhLCB1bnNpZ25lZCBpbnQgY3B1LAorCQkJ CQkgIHN0cnVjdCBsb2NrX2NsYXNzX2tleSAqZXhpdGVkX2tleSwKKwkJCQkJICBzdHJ1Y3QgbG9j a19jbGFzc19rZXkgKnBhcmtlZF9rZXksCiAJCQkJCSAgY29uc3QgY2hhciAqbmFtZWZtdCkKIHsK IAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnA7CiAKLQlwID0ga3RocmVhZF9jcmVhdGVfb25fbm9kZSh0 aHJlYWRmbiwgZGF0YSwgY3B1X3RvX25vZGUoY3B1KSwgbmFtZWZtdCwKLQkJCQkgICBjcHUpOwor CXAgPSBfa3RocmVhZF9jcmVhdGVfb25fbm9kZSh0aHJlYWRmbiwgZGF0YSwgY3B1X3RvX25vZGUo Y3B1KSwKKwkJCQkgICAgZXhpdGVkX2tleSwgcGFya2VkX2tleSwgbmFtZWZtdCwgY3B1KTsKIAlp ZiAoSVNfRVJSKHApKQogCQlyZXR1cm4gcDsKIAlrdGhyZWFkX2JpbmQocCwgY3B1KTsKQEAgLTY2 OSw4ICs2ODYsMTAgQEAgaW50IGt0aHJlYWRfd29ya2VyX2ZuKHZvaWQgKndvcmtlcl9wdHIpCiB9 CiBFWFBPUlRfU1lNQk9MX0dQTChrdGhyZWFkX3dvcmtlcl9mbik7CiAKLXN0YXRpYyBfX3ByaW50 ZigzLCAwKSBzdHJ1Y3Qga3RocmVhZF93b3JrZXIgKgorc3RhdGljIF9fcHJpbnRmKDUsIDApIHN0 cnVjdCBrdGhyZWFkX3dvcmtlciAqCiBfX2t0aHJlYWRfY3JlYXRlX3dvcmtlcihpbnQgY3B1LCB1 bnNpZ25lZCBpbnQgZmxhZ3MsCisJCQlzdHJ1Y3QgbG9ja19jbGFzc19rZXkgKmV4aXRlZF9rZXks CisJCQlzdHJ1Y3QgbG9ja19jbGFzc19rZXkgKnBhcmtlZF9rZXksCiAJCQljb25zdCBjaGFyIG5h bWVmbXRbXSwgdmFfbGlzdCBhcmdzKQogewogCXN0cnVjdCBrdGhyZWFkX3dvcmtlciAqd29ya2Vy OwpAQCAtNjg2LDggKzcwNSw4IEBAIF9fa3RocmVhZF9jcmVhdGVfd29ya2VyKGludCBjcHUsIHVu c2lnbmVkIGludCBmbGFncywKIAlpZiAoY3B1ID49IDApCiAJCW5vZGUgPSBjcHVfdG9fbm9kZShj cHUpOwogCi0JdGFzayA9IF9fa3RocmVhZF9jcmVhdGVfb25fbm9kZShrdGhyZWFkX3dvcmtlcl9m biwgd29ya2VyLAotCQkJCQkJbm9kZSwgbmFtZWZtdCwgYXJncyk7CisJdGFzayA9IF9fa3RocmVh ZF9jcmVhdGVfb25fbm9kZShrdGhyZWFkX3dvcmtlcl9mbiwgd29ya2VyLCBub2RlLAorCQkJCQll eGl0ZWRfa2V5LCBwYXJrZWRfa2V5LCBuYW1lZm10LCBhcmdzKTsKIAlpZiAoSVNfRVJSKHRhc2sp KQogCQlnb3RvIGZhaWxfdGFzazsKIApAQCAtNzE0LDE4ICs3MzMsMjIgQEAgX19rdGhyZWFkX2Ny ZWF0ZV93b3JrZXIoaW50IGNwdSwgdW5zaWduZWQgaW50IGZsYWdzLAogICogd2hlbiB0aGUgd29y a2VyIHdhcyBTSUdLSUxMZWQuCiAgKi8KIHN0cnVjdCBrdGhyZWFkX3dvcmtlciAqCi1rdGhyZWFk X2NyZWF0ZV93b3JrZXIodW5zaWduZWQgaW50IGZsYWdzLCBjb25zdCBjaGFyIG5hbWVmbXRbXSwg Li4uKQorX2t0aHJlYWRfY3JlYXRlX3dvcmtlcih1bnNpZ25lZCBpbnQgZmxhZ3MsCisJCSAgICAg ICBzdHJ1Y3QgbG9ja19jbGFzc19rZXkgKmV4aXRlZF9rZXksCisJCSAgICAgICBzdHJ1Y3QgbG9j a19jbGFzc19rZXkgKnBhcmtlZF9rZXksCisJCSAgICAgICBjb25zdCBjaGFyIG5hbWVmbXRbXSwg Li4uKQogewogCXN0cnVjdCBrdGhyZWFkX3dvcmtlciAqd29ya2VyOwogCXZhX2xpc3QgYXJnczsK IAogCXZhX3N0YXJ0KGFyZ3MsIG5hbWVmbXQpOwotCXdvcmtlciA9IF9fa3RocmVhZF9jcmVhdGVf d29ya2VyKC0xLCBmbGFncywgbmFtZWZtdCwgYXJncyk7CisJd29ya2VyID0gX19rdGhyZWFkX2Ny ZWF0ZV93b3JrZXIoLTEsIGZsYWdzLCBleGl0ZWRfa2V5LCBwYXJrZWRfa2V5LAorCQkJCQkgbmFt ZWZtdCwgYXJncyk7CiAJdmFfZW5kKGFyZ3MpOwogCiAJcmV0dXJuIHdvcmtlcjsKIH0KLUVYUE9S VF9TWU1CT0woa3RocmVhZF9jcmVhdGVfd29ya2VyKTsKK0VYUE9SVF9TWU1CT0woX2t0aHJlYWRf Y3JlYXRlX3dvcmtlcik7CiAKIC8qKgogICoga3RocmVhZF9jcmVhdGVfd29ya2VyX29uX2NwdSAt IGNyZWF0ZSBhIGt0aHJlYWQgd29ya2VyIGFuZCBiaW5kIGl0CkBAIC03NDUsMTkgKzc2OCwyMiBA QCBFWFBPUlRfU1lNQk9MKGt0aHJlYWRfY3JlYXRlX3dvcmtlcik7CiAgKiB3aGVuIHRoZSB3b3Jr ZXIgd2FzIFNJR0tJTExlZC4KICAqLwogc3RydWN0IGt0aHJlYWRfd29ya2VyICoKLWt0aHJlYWRf Y3JlYXRlX3dvcmtlcl9vbl9jcHUoaW50IGNwdSwgdW5zaWduZWQgaW50IGZsYWdzLAorX2t0aHJl YWRfY3JlYXRlX3dvcmtlcl9vbl9jcHUoaW50IGNwdSwgdW5zaWduZWQgaW50IGZsYWdzLAorCQkJ ICAgICAgc3RydWN0IGxvY2tfY2xhc3Nfa2V5ICpleGl0ZWRfa2V5LAorCQkJICAgICAgc3RydWN0 IGxvY2tfY2xhc3Nfa2V5ICpwYXJrZWRfa2V5LAogCQkJICAgICBjb25zdCBjaGFyIG5hbWVmbXRb XSwgLi4uKQogewogCXN0cnVjdCBrdGhyZWFkX3dvcmtlciAqd29ya2VyOwogCXZhX2xpc3QgYXJn czsKIAogCXZhX3N0YXJ0KGFyZ3MsIG5hbWVmbXQpOwotCXdvcmtlciA9IF9fa3RocmVhZF9jcmVh dGVfd29ya2VyKGNwdSwgZmxhZ3MsIG5hbWVmbXQsIGFyZ3MpOworCXdvcmtlciA9IF9fa3RocmVh ZF9jcmVhdGVfd29ya2VyKGNwdSwgZmxhZ3MsIGV4aXRlZF9rZXksIHBhcmtlZF9rZXksCisJCQkJ CSBuYW1lZm10LCBhcmdzKTsKIAl2YV9lbmQoYXJncyk7CiAKIAlyZXR1cm4gd29ya2VyOwogfQot RVhQT1JUX1NZTUJPTChrdGhyZWFkX2NyZWF0ZV93b3JrZXJfb25fY3B1KTsKK0VYUE9SVF9TWU1C T0woX2t0aHJlYWRfY3JlYXRlX3dvcmtlcl9vbl9jcHUpOwogCiAvKgogICogUmV0dXJucyB0cnVl IHdoZW4gdGhlIHdvcmsgY291bGQgbm90IGJlIHF1ZXVlZCBhdCB0aGUgbW9tZW50LgotLSAKMi4x OS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK