From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 01/11] drm/i915/gtt: Use shallow dma pages for scratch Date: Sun, 7 Jul 2019 22:00:14 +0100 Message-ID: <20190707210024.26192-2-chris@chris-wilson.co.uk> References: <20190707210024.26192-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 789C489AC6 for ; Sun, 7 Jul 2019 21:01:02 +0000 (UTC) In-Reply-To: <20190707210024.26192-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 V2Ugb25seSB1c2UgdGhlIGRtYSBwYWdlcyBmb3Igc2NyYXRjaCwgYW5kIHNvIGRvIG5vdCBuZWVk IHRvIGFsbG9jYXRlCnRoZSBleHRyYSBzdG9yYWdlIGZvciB0aGUgc2hhZG93IHBhZ2UgZGlyZWN0 b3J5LgoKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28u dWs+CkNjOiBNaWthIEt1b3BwYWxhIDxtaWthLmt1b3BwYWxhQGxpbnV4LmludGVsLmNvbT4KLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyB8IDE5MiArKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaCB8ICAg NiArLQogMiBmaWxlcyBjaGFuZ2VkLCA4NSBpbnNlcnRpb25zKCspLCAxMTMgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwppbmRleCAyMzZjOTY0ZGQ3NjEuLjkzNzIz NjkxM2U3MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKQEAgLTU5NCwyNSArNTk0 LDE3IEBAIHN0YXRpYyB2b2lkIGNsZWFudXBfcGFnZV9kbWEoc3RydWN0IGk5MTVfYWRkcmVzc19z cGFjZSAqdm0sCiAKICNkZWZpbmUga21hcF9hdG9taWNfcHgocHgpIGttYXBfYXRvbWljKHB4X2Jh c2UocHgpLT5wYWdlKQogCi0jZGVmaW5lIGZpbGxfcHgodm0sIHB4LCB2KSBmaWxsX3BhZ2VfZG1h KCh2bSksIHB4X2Jhc2UocHgpLCAodikpCi0jZGVmaW5lIGZpbGwzMl9weCh2bSwgcHgsIHYpIGZp bGxfcGFnZV9kbWFfMzIoKHZtKSwgcHhfYmFzZShweCksICh2KSkKKyNkZWZpbmUgZmlsbF9weChw eCwgdikgZmlsbF9wYWdlX2RtYShweF9iYXNlKHB4KSwgKHYpKQorI2RlZmluZSBmaWxsMzJfcHgo cHgsIHYpIGZpbGxfcGFnZV9kbWFfMzIocHhfYmFzZShweCksICh2KSkKIAotc3RhdGljIHZvaWQg ZmlsbF9wYWdlX2RtYShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKLQkJCSAgc3RydWN0 IGk5MTVfcGFnZV9kbWEgKnAsCi0JCQkgIGNvbnN0IHU2NCB2YWwpCitzdGF0aWMgdm9pZCBmaWxs X3BhZ2VfZG1hKHN0cnVjdCBpOTE1X3BhZ2VfZG1hICpwLCBjb25zdCB1NjQgdmFsKQogewotCXU2 NCAqIGNvbnN0IHZhZGRyID0ga21hcF9hdG9taWMocC0+cGFnZSk7Ci0KLQltZW1zZXQ2NCh2YWRk ciwgdmFsLCBQQUdFX1NJWkUgLyBzaXplb2YodmFsKSk7Ci0KLQlrdW5tYXBfYXRvbWljKHZhZGRy KTsKKwlrdW5tYXBfYXRvbWljKG1lbXNldDY0KGttYXBfYXRvbWljKHAtPnBhZ2UpLCB2YWwsIEk5 MTVfUERFUykpOwogfQogCi1zdGF0aWMgdm9pZCBmaWxsX3BhZ2VfZG1hXzMyKHN0cnVjdCBpOTE1 X2FkZHJlc3Nfc3BhY2UgKnZtLAotCQkJICAgICBzdHJ1Y3QgaTkxNV9wYWdlX2RtYSAqcCwKLQkJ CSAgICAgY29uc3QgdTMyIHYpCitzdGF0aWMgdm9pZCBmaWxsX3BhZ2VfZG1hXzMyKHN0cnVjdCBp OTE1X3BhZ2VfZG1hICpwLCBjb25zdCB1MzIgdikKIHsKLQlmaWxsX3BhZ2VfZG1hKHZtLCBwLCAo dTY0KXYgPDwgMzIgfCB2KTsKKwlmaWxsX3BhZ2VfZG1hKHAsICh1NjQpdiA8PCAzMiB8IHYpOwog fQogCiBzdGF0aWMgaW50CkBAIC02ODcsNiArNjc5LDIxIEBAIHN0YXRpYyB2b2lkIGNsZWFudXBf c2NyYXRjaF9wYWdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQogCV9fZnJlZV9wYWdl cyhwLT5wYWdlLCBvcmRlcik7CiB9CiAKK3N0YXRpYyB2b2lkIGZyZWVfc2NyYXRjaChzdHJ1Y3Qg aTkxNV9hZGRyZXNzX3NwYWNlICp2bSkKK3sKKwlpZiAoIXZtLT5zY3JhdGNoX3BhZ2UuZGFkZHIp IC8qIHNldCB0byAwIG9uIGNsb25lcyAqLworCQlyZXR1cm47CisKKwlpZiAodm0tPnNjcmF0Y2hf cGRwLmRhZGRyKQorCQljbGVhbnVwX3BhZ2VfZG1hKHZtLCAmdm0tPnNjcmF0Y2hfcGRwKTsKKwlp ZiAodm0tPnNjcmF0Y2hfcGQuZGFkZHIpCisJCWNsZWFudXBfcGFnZV9kbWEodm0sICZ2bS0+c2Ny YXRjaF9wZCk7CisJaWYgKHZtLT5zY3JhdGNoX3B0LmRhZGRyKQorCQljbGVhbnVwX3BhZ2VfZG1h KHZtLCAmdm0tPnNjcmF0Y2hfcHQpOworCisJY2xlYW51cF9zY3JhdGNoX3BhZ2Uodm0pOworfQor CiBzdGF0aWMgc3RydWN0IGk5MTVfcGFnZV90YWJsZSAqYWxsb2NfcHQoc3RydWN0IGk5MTVfYWRk cmVzc19zcGFjZSAqdm0pCiB7CiAJc3RydWN0IGk5MTVfcGFnZV90YWJsZSAqcHQ7CkBAIC03MTEs MTggKzcxOCw2IEBAIHN0YXRpYyB2b2lkIGZyZWVfcHQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFj ZSAqdm0sIHN0cnVjdCBpOTE1X3BhZ2VfdGFibGUgKnB0KQogCWtmcmVlKHB0KTsKIH0KIAotc3Rh dGljIHZvaWQgZ2VuOF9pbml0aWFsaXplX3B0KHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZt LAotCQkJICAgICAgIHN0cnVjdCBpOTE1X3BhZ2VfdGFibGUgKnB0KQotewotCWZpbGxfcHgodm0s IHB0LCB2bS0+c2NyYXRjaF9wdGUpOwotfQotCi1zdGF0aWMgdm9pZCBnZW42X2luaXRpYWxpemVf cHQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCi0JCQkgICAgICAgc3RydWN0IGk5MTVf cGFnZV90YWJsZSAqcHQpCi17Ci0JZmlsbDMyX3B4KHZtLCBwdCwgdm0tPnNjcmF0Y2hfcHRlKTsK LX0KLQogc3RhdGljIHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpfX2FsbG9jX3BkKHZvaWQp CiB7CiAJc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKnBkOwpAQCAtNzY1LDkgKzc2MCwxMSBA QCBzdGF0aWMgdm9pZCBmcmVlX3BkKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCWtm cmVlKHBkKTsKIH0KIAotI2RlZmluZSBpbml0X3BkKHZtLCBwZCwgdG8pIHsJCQkJCVwKLQlmaWxs X3B4KCh2bSksIChwZCksIGdlbjhfcGRlX2VuY29kZShweF9kbWEodG8pLCBJOTE1X0NBQ0hFX0xM QykpOyBcCi0JbWVtc2V0X3AoKHBkKS0+ZW50cnksICh0byksIDUxMik7CQkJCVwKK3N0YXRpYyB2 b2lkIGluaXRfcGQoc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKnBkLAorCQkgICAgc3RydWN0 IGk5MTVfcGFnZV9kbWEgKnNjcmF0Y2gpCit7CisJZmlsbF9weChwZCwgZ2VuOF9wZGVfZW5jb2Rl KHNjcmF0Y2gtPmRhZGRyLCBJOTE1X0NBQ0hFX0xMQykpOworCW1lbXNldF9wKHBkLT5lbnRyeSwg c2NyYXRjaCwgNTEyKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkCkBAIC04NjksMTIgKzg2Niwx MSBAQCBzdGF0aWMgdm9pZCBnZW44X3BwZ3R0X2NsZWFyX3BkKHN0cnVjdCBpOTE1X2FkZHJlc3Nf c3BhY2UgKnZtLAogCXUzMiBwZGU7CiAKIAlnZW44X2Zvcl9lYWNoX3BkZShwdCwgcGQsIHN0YXJ0 LCBsZW5ndGgsIHBkZSkgewotCQlHRU1fQlVHX09OKHB0ID09IHZtLT5zY3JhdGNoX3B0KTsKKwkJ R0VNX0JVR19PTihweF9iYXNlKHB0KSA9PSAmdm0tPnNjcmF0Y2hfcHQpOwogCiAJCWF0b21pY19p bmMoJnB0LT51c2VkKTsKIAkJZ2VuOF9wcGd0dF9jbGVhcl9wdCh2bSwgcHQsIHN0YXJ0LCBsZW5n dGgpOwotCQlpZiAocmVsZWFzZV9wZF9lbnRyeShwZCwgcGRlLCAmcHQtPnVzZWQsCi0JCQkJICAg ICBweF9iYXNlKHZtLT5zY3JhdGNoX3B0KSkpCisJCWlmIChyZWxlYXNlX3BkX2VudHJ5KHBkLCBw ZGUsICZwdC0+dXNlZCwgJnZtLT5zY3JhdGNoX3B0KSkKIAkJCWZyZWVfcHQodm0sIHB0KTsKIAl9 CiB9CkBAIC04OTAsMTIgKzg4NiwxMSBAQCBzdGF0aWMgdm9pZCBnZW44X3BwZ3R0X2NsZWFyX3Bk cChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAl1bnNpZ25lZCBpbnQgcGRwZTsKIAog CWdlbjhfZm9yX2VhY2hfcGRwZShwZCwgcGRwLCBzdGFydCwgbGVuZ3RoLCBwZHBlKSB7Ci0JCUdF TV9CVUdfT04ocGQgPT0gdm0tPnNjcmF0Y2hfcGQpOworCQlHRU1fQlVHX09OKHB4X2Jhc2UocGQp ID09ICZ2bS0+c2NyYXRjaF9wZCk7CiAKIAkJYXRvbWljX2luYygmcGQtPnVzZWQpOwogCQlnZW44 X3BwZ3R0X2NsZWFyX3BkKHZtLCBwZCwgc3RhcnQsIGxlbmd0aCk7Ci0JCWlmIChyZWxlYXNlX3Bk X2VudHJ5KHBkcCwgcGRwZSwgJnBkLT51c2VkLAotCQkJCSAgICAgcHhfYmFzZSh2bS0+c2NyYXRj aF9wZCkpKQorCQlpZiAocmVsZWFzZV9wZF9lbnRyeShwZHAsIHBkcGUsICZwZC0+dXNlZCwgJnZt LT5zY3JhdGNoX3BkKSkKIAkJCWZyZWVfcGQodm0sIHBkKTsKIAl9CiB9CkBAIC05MjEsMTIgKzkx NiwxMSBAQCBzdGF0aWMgdm9pZCBnZW44X3BwZ3R0X2NsZWFyXzRsdmwoc3RydWN0IGk5MTVfYWRk cmVzc19zcGFjZSAqdm0sCiAJR0VNX0JVR19PTighaTkxNV92bV9pc180bHZsKHZtKSk7CiAKIAln ZW44X2Zvcl9lYWNoX3BtbDRlKHBkcCwgcG1sNCwgc3RhcnQsIGxlbmd0aCwgcG1sNGUpIHsKLQkJ R0VNX0JVR19PTihwZHAgPT0gdm0tPnNjcmF0Y2hfcGRwKTsKKwkJR0VNX0JVR19PTihweF9iYXNl KHBkcCkgPT0gJnZtLT5zY3JhdGNoX3BkcCk7CiAKIAkJYXRvbWljX2luYygmcGRwLT51c2VkKTsK IAkJZ2VuOF9wcGd0dF9jbGVhcl9wZHAodm0sIHBkcCwgc3RhcnQsIGxlbmd0aCk7Ci0JCWlmIChy ZWxlYXNlX3BkX2VudHJ5KHBtbDQsIHBtbDRlLCAmcGRwLT51c2VkLAotCQkJCSAgICAgcHhfYmFz ZSh2bS0+c2NyYXRjaF9wZHApKSkKKwkJaWYgKHJlbGVhc2VfcGRfZW50cnkocG1sNCwgcG1sNGUs ICZwZHAtPnVzZWQsICZ2bS0+c2NyYXRjaF9wZHApKQogCQkJZnJlZV9wZCh2bSwgcGRwKTsKIAl9 CiB9CkBAIC0xMTgxLDcgKzExNzUsNyBAQCBzdGF0aWMgdm9pZCBnZW44X2ZyZWVfcGFnZV90YWJs ZXMoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAJaW50IGk7CiAKIAlmb3IgKGkgPSAw OyBpIDwgSTkxNV9QREVTOyBpKyspIHsKLQkJaWYgKHBkLT5lbnRyeVtpXSAhPSB2bS0+c2NyYXRj aF9wdCkKKwkJaWYgKHBkLT5lbnRyeVtpXSAhPSAmdm0tPnNjcmF0Y2hfcHQpCiAJCQlmcmVlX3B0 KHZtLCBwZC0+ZW50cnlbaV0pOwogCX0KIH0KQEAgLTEyMTgsMzcgKzEyMTIsMzUgQEAgc3RhdGlj IGludCBnZW44X2luaXRfc2NyYXRjaChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSkKIAkJ CQlJOTE1X0NBQ0hFX0xMQywKIAkJCQl2bS0+aGFzX3JlYWRfb25seSk7CiAKLQl2bS0+c2NyYXRj aF9wdCA9IGFsbG9jX3B0KHZtKTsKLQlpZiAoSVNfRVJSKHZtLT5zY3JhdGNoX3B0KSkgewotCQly ZXQgPSBQVFJfRVJSKHZtLT5zY3JhdGNoX3B0KTsKKwlpZiAodW5saWtlbHkoc2V0dXBfcGFnZV9k bWEodm0sICZ2bS0+c2NyYXRjaF9wdCkpKSB7CisJCXJldCA9IC1FTk9NRU07CiAJCWdvdG8gZnJl ZV9zY3JhdGNoX3BhZ2U7CiAJfQorCWZpbGxfcGFnZV9kbWEoJnZtLT5zY3JhdGNoX3B0LCB2bS0+ c2NyYXRjaF9wdGUpOwogCi0Jdm0tPnNjcmF0Y2hfcGQgPSBhbGxvY19wZCh2bSk7Ci0JaWYgKElT X0VSUih2bS0+c2NyYXRjaF9wZCkpIHsKLQkJcmV0ID0gUFRSX0VSUih2bS0+c2NyYXRjaF9wZCk7 CisJaWYgKHVubGlrZWx5KHNldHVwX3BhZ2VfZG1hKHZtLCAmdm0tPnNjcmF0Y2hfcGQpKSkgewor CQlyZXQgPSAtRU5PTUVNOwogCQlnb3RvIGZyZWVfcHQ7CiAJfQorCWZpbGxfcGFnZV9kbWEoJnZt LT5zY3JhdGNoX3BkLAorCQkgICAgICBnZW44X3BkZV9lbmNvZGUodm0tPnNjcmF0Y2hfcGQuZGFk ZHIsIEk5MTVfQ0FDSEVfTExDKSk7CiAKIAlpZiAoaTkxNV92bV9pc180bHZsKHZtKSkgewotCQl2 bS0+c2NyYXRjaF9wZHAgPSBhbGxvY19wZCh2bSk7Ci0JCWlmIChJU19FUlIodm0tPnNjcmF0Y2hf cGRwKSkgewotCQkJcmV0ID0gUFRSX0VSUih2bS0+c2NyYXRjaF9wZHApOworCQlpZiAodW5saWtl bHkoc2V0dXBfcGFnZV9kbWEodm0sICZ2bS0+c2NyYXRjaF9wZHApKSkgeworCQkJcmV0ID0gLUVO T01FTTsKIAkJCWdvdG8gZnJlZV9wZDsKIAkJfQorCQlmaWxsX3BhZ2VfZG1hKCZ2bS0+c2NyYXRj aF9wZHAsCisJCQkgICAgICBnZW44X3BkZV9lbmNvZGUodm0tPnNjcmF0Y2hfcGRwLmRhZGRyLAor CQkJCQkgICAgICBJOTE1X0NBQ0hFX0xMQykpOwogCX0KIAotCWdlbjhfaW5pdGlhbGl6ZV9wdCh2 bSwgdm0tPnNjcmF0Y2hfcHQpOwotCWluaXRfcGQodm0sIHZtLT5zY3JhdGNoX3BkLCB2bS0+c2Ny YXRjaF9wdCk7Ci0JaWYgKGk5MTVfdm1faXNfNGx2bCh2bSkpCi0JCWluaXRfcGQodm0sIHZtLT5z Y3JhdGNoX3BkcCwgdm0tPnNjcmF0Y2hfcGQpOwotCiAJcmV0dXJuIDA7CiAKIGZyZWVfcGQ6Ci0J ZnJlZV9wZCh2bSwgdm0tPnNjcmF0Y2hfcGQpOworCWNsZWFudXBfcGFnZV9kbWEodm0sICZ2bS0+ c2NyYXRjaF9wZCk7CiBmcmVlX3B0OgotCWZyZWVfcHQodm0sIHZtLT5zY3JhdGNoX3B0KTsKKwlj bGVhbnVwX3BhZ2VfZG1hKHZtLCAmdm0tPnNjcmF0Y2hfcHQpOwogZnJlZV9zY3JhdGNoX3BhZ2U6 CiAJY2xlYW51cF9zY3JhdGNoX3BhZ2Uodm0pOwogCkBAIC0xMjkyLDE4ICsxMjg0LDYgQEAgc3Rh dGljIGludCBnZW44X3BwZ3R0X25vdGlmeV92Z3Qoc3RydWN0IGk5MTVfcHBndHQgKnBwZ3R0LCBi b29sIGNyZWF0ZSkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgZ2VuOF9mcmVlX3NjcmF0 Y2goc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0pCi17Ci0JaWYgKCF2bS0+c2NyYXRjaF9w YWdlLmRhZGRyKQotCQlyZXR1cm47Ci0KLQlpZiAoaTkxNV92bV9pc180bHZsKHZtKSkKLQkJZnJl ZV9wZCh2bSwgdm0tPnNjcmF0Y2hfcGRwKTsKLQlmcmVlX3BkKHZtLCB2bS0+c2NyYXRjaF9wZCk7 Ci0JZnJlZV9wdCh2bSwgdm0tPnNjcmF0Y2hfcHQpOwotCWNsZWFudXBfc2NyYXRjaF9wYWdlKHZt KTsKLX0KLQogc3RhdGljIHZvaWQgZ2VuOF9wcGd0dF9jbGVhbnVwXzNsdmwoc3RydWN0IGk5MTVf YWRkcmVzc19zcGFjZSAqdm0sCiAJCQkJICAgIHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpw ZHApCiB7CkBAIC0xMzExLDcgKzEyOTEsNyBAQCBzdGF0aWMgdm9pZCBnZW44X3BwZ3R0X2NsZWFu dXBfM2x2bChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAlpbnQgaTsKIAogCWZvciAo aSA9IDA7IGkgPCBwZHBlczsgaSsrKSB7Ci0JCWlmIChwZHAtPmVudHJ5W2ldID09IHZtLT5zY3Jh dGNoX3BkKQorCQlpZiAocGRwLT5lbnRyeVtpXSA9PSAmdm0tPnNjcmF0Y2hfcGQpCiAJCQljb250 aW51ZTsKIAogCQlnZW44X2ZyZWVfcGFnZV90YWJsZXModm0sIHBkcC0+ZW50cnlbaV0pOwpAQCAt MTMyOSw3ICsxMzA5LDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9wcGd0dF9jbGVhbnVwXzRsdmwoc3Ry dWN0IGk5MTVfcHBndHQgKnBwZ3R0KQogCWZvciAoaSA9IDA7IGkgPCBHRU44X1BNTDRFU19QRVJf UE1MNDsgaSsrKSB7CiAJCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpwZHAgPSBpOTE1X3Bk cF9lbnRyeShwbWw0LCBpKTsKIAotCQlpZiAocGRwID09IHBwZ3R0LT52bS5zY3JhdGNoX3BkcCkK KwkJaWYgKHB4X2Jhc2UocGRwKSA9PSAmcHBndHQtPnZtLnNjcmF0Y2hfcGRwKQogCQkJY29udGlu dWU7CiAKIAkJZ2VuOF9wcGd0dF9jbGVhbnVwXzNsdmwoJnBwZ3R0LT52bSwgcGRwKTsKQEAgLTEz NTEsNyArMTMzMSw3IEBAIHN0YXRpYyB2b2lkIGdlbjhfcHBndHRfY2xlYW51cChzdHJ1Y3QgaTkx NV9hZGRyZXNzX3NwYWNlICp2bSkKIAllbHNlCiAJCWdlbjhfcHBndHRfY2xlYW51cF8zbHZsKCZw cGd0dC0+dm0sIHBwZ3R0LT5wZCk7CiAKLQlnZW44X2ZyZWVfc2NyYXRjaCh2bSk7CisJZnJlZV9z Y3JhdGNoKHZtKTsKIH0KIAogc3RhdGljIGludCBnZW44X3BwZ3R0X2FsbG9jX3BkKHN0cnVjdCBp OTE1X2FkZHJlc3Nfc3BhY2UgKnZtLApAQCAtMTM2Nyw3ICsxMzQ3LDcgQEAgc3RhdGljIGludCBn ZW44X3BwZ3R0X2FsbG9jX3BkKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCWdlbjhf Zm9yX2VhY2hfcGRlKHB0LCBwZCwgc3RhcnQsIGxlbmd0aCwgcGRlKSB7CiAJCWNvbnN0IGludCBj b3VudCA9IGdlbjhfcHRlX2NvdW50KHN0YXJ0LCBsZW5ndGgpOwogCi0JCWlmIChwdCA9PSB2bS0+ c2NyYXRjaF9wdCkgeworCQlpZiAocHhfYmFzZShwdCkgPT0gJnZtLT5zY3JhdGNoX3B0KSB7CiAJ CQlzcGluX3VubG9jaygmcGQtPmxvY2spOwogCiAJCQlwdCA9IGZldGNoX2FuZF96ZXJvKCZhbGxv Yyk7CkBAIC0xMzc5LDEwICsxMzU5LDEwIEBAIHN0YXRpYyBpbnQgZ2VuOF9wcGd0dF9hbGxvY19w ZChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAkJCX0KIAogCQkJaWYgKGNvdW50IDwg R0VOOF9QVEVTIHx8IGludGVsX3ZncHVfYWN0aXZlKHZtLT5pOTE1KSkKLQkJCQlnZW44X2luaXRp YWxpemVfcHQodm0sIHB0KTsKKwkJCQlmaWxsX3B4KHB0LCB2bS0+c2NyYXRjaF9wdGUpOwogCiAJ CQlzcGluX2xvY2soJnBkLT5sb2NrKTsKLQkJCWlmIChwZC0+ZW50cnlbcGRlXSA9PSB2bS0+c2Ny YXRjaF9wdCkgeworCQkJaWYgKHBkLT5lbnRyeVtwZGVdID09ICZ2bS0+c2NyYXRjaF9wdCkgewog CQkJCXNldF9wZF9lbnRyeShwZCwgcGRlLCBwdCk7CiAJCQl9IGVsc2UgewogCQkJCWFsbG9jID0g cHQ7CkBAIC0xNDE0LDcgKzEzOTQsNyBAQCBzdGF0aWMgaW50IGdlbjhfcHBndHRfYWxsb2NfcGRw KHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCiAJc3Bpbl9sb2NrKCZwZHAtPmxvY2sp OwogCWdlbjhfZm9yX2VhY2hfcGRwZShwZCwgcGRwLCBzdGFydCwgbGVuZ3RoLCBwZHBlKSB7Ci0J CWlmIChwZCA9PSB2bS0+c2NyYXRjaF9wZCkgeworCQlpZiAocHhfYmFzZShwZCkgPT0gJnZtLT5z Y3JhdGNoX3BkKSB7CiAJCQlzcGluX3VubG9jaygmcGRwLT5sb2NrKTsKIAogCQkJcGQgPSBmZXRj aF9hbmRfemVybygmYWxsb2MpOwpAQCAtMTQyNSwxMCArMTQwNSwxMCBAQCBzdGF0aWMgaW50IGdl bjhfcHBndHRfYWxsb2NfcGRwKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCQkJCWdv dG8gdW53aW5kOwogCQkJfQogCi0JCQlpbml0X3BkKHZtLCBwZCwgdm0tPnNjcmF0Y2hfcHQpOwor CQkJaW5pdF9wZChwZCwgJnZtLT5zY3JhdGNoX3B0KTsKIAogCQkJc3Bpbl9sb2NrKCZwZHAtPmxv Y2spOwotCQkJaWYgKHBkcC0+ZW50cnlbcGRwZV0gPT0gdm0tPnNjcmF0Y2hfcGQpIHsKKwkJCWlm IChwZHAtPmVudHJ5W3BkcGVdID09ICZ2bS0+c2NyYXRjaF9wZCkgewogCQkJCXNldF9wZF9lbnRy eShwZHAsIHBkcGUsIHBkKTsKIAkJCX0gZWxzZSB7CiAJCQkJYWxsb2MgPSBwZDsKQEAgLTE0NDks NyArMTQyOSw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9wcGd0dF9hbGxvY19wZHAoc3RydWN0IGk5MTVf YWRkcmVzc19zcGFjZSAqdm0sCiAJZ290byBvdXQ7CiAKIHVud2luZF9wZDoKLQlpZiAocmVsZWFz ZV9wZF9lbnRyeShwZHAsIHBkcGUsICZwZC0+dXNlZCwgcHhfYmFzZSh2bS0+c2NyYXRjaF9wZCkp KQorCWlmIChyZWxlYXNlX3BkX2VudHJ5KHBkcCwgcGRwZSwgJnBkLT51c2VkLCAmdm0tPnNjcmF0 Y2hfcGQpKQogCQlmcmVlX3BkKHZtLCBwZCk7CiB1bndpbmQ6CiAJZ2VuOF9wcGd0dF9jbGVhcl9w ZHAodm0sIHBkcCwgZnJvbSwgc3RhcnQgLSBmcm9tKTsKQEAgLTE0NzgsNyArMTQ1OCw3IEBAIHN0 YXRpYyBpbnQgZ2VuOF9wcGd0dF9hbGxvY180bHZsKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2Ug KnZtLAogCiAJc3Bpbl9sb2NrKCZwbWw0LT5sb2NrKTsKIAlnZW44X2Zvcl9lYWNoX3BtbDRlKHBk cCwgcG1sNCwgc3RhcnQsIGxlbmd0aCwgcG1sNGUpIHsKLQkJaWYgKHBkcCA9PSB2bS0+c2NyYXRj aF9wZHApIHsKKwkJaWYgKHB4X2Jhc2UocGRwKSA9PSAmdm0tPnNjcmF0Y2hfcGRwKSB7CiAJCQlz cGluX3VubG9jaygmcG1sNC0+bG9jayk7CiAKIAkJCXBkcCA9IGZldGNoX2FuZF96ZXJvKCZhbGxv Yyk7CkBAIC0xNDg5LDEwICsxNDY5LDEwIEBAIHN0YXRpYyBpbnQgZ2VuOF9wcGd0dF9hbGxvY180 bHZsKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCQkJCWdvdG8gdW53aW5kOwogCQkJ fQogCi0JCQlpbml0X3BkKHZtLCBwZHAsIHZtLT5zY3JhdGNoX3BkKTsKKwkJCWluaXRfcGQocGRw LCAmdm0tPnNjcmF0Y2hfcGQpOwogCiAJCQlzcGluX2xvY2soJnBtbDQtPmxvY2spOwotCQkJaWYg KHBtbDQtPmVudHJ5W3BtbDRlXSA9PSB2bS0+c2NyYXRjaF9wZHApIHsKKwkJCWlmIChwbWw0LT5l bnRyeVtwbWw0ZV0gPT0gJnZtLT5zY3JhdGNoX3BkcCkgewogCQkJCXNldF9wZF9lbnRyeShwbWw0 LCBwbWw0ZSwgcGRwKTsKIAkJCX0gZWxzZSB7CiAJCQkJYWxsb2MgPSBwZHA7CkBAIC0xNTEzLDcg KzE0OTMsNyBAQCBzdGF0aWMgaW50IGdlbjhfcHBndHRfYWxsb2NfNGx2bChzdHJ1Y3QgaTkxNV9h ZGRyZXNzX3NwYWNlICp2bSwKIAlnb3RvIG91dDsKIAogdW53aW5kX3BkcDoKLQlpZiAocmVsZWFz ZV9wZF9lbnRyeShwbWw0LCBwbWw0ZSwgJnBkcC0+dXNlZCwgcHhfYmFzZSh2bS0+c2NyYXRjaF9w ZHApKSkKKwlpZiAocmVsZWFzZV9wZF9lbnRyeShwbWw0LCBwbWw0ZSwgJnBkcC0+dXNlZCwgJnZt LT5zY3JhdGNoX3BkcCkpCiAJCWZyZWVfcGQodm0sIHBkcCk7CiB1bndpbmQ6CiAJZ2VuOF9wcGd0 dF9jbGVhcl80bHZsKHZtLCBmcm9tLCBzdGFydCAtIGZyb20pOwpAQCAtMTUzNyw3ICsxNTE3LDcg QEAgc3RhdGljIGludCBnZW44X3ByZWFsbG9jYXRlX3RvcF9sZXZlbF9wZHAoc3RydWN0IGk5MTVf cHBndHQgKnBwZ3R0KQogCQlpZiAoSVNfRVJSKHBkKSkKIAkJCWdvdG8gdW53aW5kOwogCi0JCWlu aXRfcGQodm0sIHBkLCB2bS0+c2NyYXRjaF9wdCk7CisJCWluaXRfcGQocGQsICZ2bS0+c2NyYXRj aF9wdCk7CiAJCXNldF9wZF9lbnRyeShwZHAsIHBkcGUsIHBkKTsKIAl9CiAKQEAgLTE1NjgsMTAg KzE1NDgsMTAgQEAgc3RhdGljIHZvaWQgcHBndHRfaW5pdChzdHJ1Y3QgaTkxNV9wcGd0dCAqcHBn dHQsIHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiAKIHN0YXRpYyB2b2lkIGluaXRfcGRfbihzdHJ1Y3Qg aTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAkJICAgICAgc3RydWN0IGk5MTVfcGFnZV9kaXJlY3Rv cnkgKnBkLAotCQkgICAgICBzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqdG8sCisJCSAgICAg IHN0cnVjdCBpOTE1X3BhZ2VfZG1hICp0bywKIAkJICAgICAgY29uc3QgdW5zaWduZWQgaW50IGVu dHJpZXMpCiB7Ci0JY29uc3QgdTY0IGRhZGRyID0gZ2VuOF9wZGVfZW5jb2RlKHB4X2RtYSh0byks IEk5MTVfQ0FDSEVfTExDKTsKKwljb25zdCB1NjQgZGFkZHIgPSBnZW44X3BkZV9lbmNvZGUodG8t PmRhZGRyLCBJOTE1X0NBQ0hFX0xMQyk7CiAJdTY0ICogY29uc3QgdmFkZHIgPSBrbWFwX2F0b21p YyhwZC0+YmFzZS5wYWdlKTsKIAogCW1lbXNldDY0KHZhZGRyLCBkYWRkciwgZW50cmllcyk7CkBA IC0xNTg4LDcgKzE1NjgsNyBAQCBnZW44X2FsbG9jX3RvcF9wZChzdHJ1Y3QgaTkxNV9hZGRyZXNz X3NwYWNlICp2bSkKIAlpZiAoaTkxNV92bV9pc180bHZsKHZtKSkgewogCQlwZCA9IGFsbG9jX3Bk KHZtKTsKIAkJaWYgKCFJU19FUlIocGQpKQotCQkJaW5pdF9wZCh2bSwgcGQsIHZtLT5zY3JhdGNo X3BkcCk7CisJCQlpbml0X3BkKHBkLCAmdm0tPnNjcmF0Y2hfcGRwKTsKIAogCQlyZXR1cm4gcGQ7 CiAJfQpAQCAtMTYwNSw3ICsxNTg1LDcgQEAgZ2VuOF9hbGxvY190b3BfcGQoc3RydWN0IGk5MTVf YWRkcmVzc19zcGFjZSAqdm0pCiAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwogCX0KIAotCWlu aXRfcGRfbih2bSwgcGQsIHZtLT5zY3JhdGNoX3BkLCBHRU44XzNMVkxfUERQRVMpOworCWluaXRf cGRfbih2bSwgcGQsICZ2bS0+c2NyYXRjaF9wZCwgR0VOOF8zTFZMX1BEUEVTKTsKIAogCXJldHVy biBwZDsKIH0KQEAgLTE2NzgsNyArMTY1OCw3IEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV9wcGd0dCAq Z2VuOF9wcGd0dF9jcmVhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiBlcnJfZnJl ZV9wZDoKIAlmcmVlX3BkKCZwcGd0dC0+dm0sIHBwZ3R0LT5wZCk7CiBlcnJfZnJlZV9zY3JhdGNo OgotCWdlbjhfZnJlZV9zY3JhdGNoKCZwcGd0dC0+dm0pOworCWZyZWVfc2NyYXRjaCgmcHBndHQt PnZtKTsKIGVycl9mcmVlOgogCWtmcmVlKHBwZ3R0KTsKIAlyZXR1cm4gRVJSX1BUUihlcnIpOwpA QCAtMTc2Myw3ICsxNzQzLDcgQEAgc3RhdGljIHZvaWQgZ2VuNl9wcGd0dF9jbGVhcl9yYW5nZShz dHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAkJY29uc3QgdW5zaWduZWQgaW50IGNvdW50 ID0gbWluKG51bV9lbnRyaWVzLCBHRU42X1BURVMgLSBwdGUpOwogCQlnZW42X3B0ZV90ICp2YWRk cjsKIAotCQlHRU1fQlVHX09OKHB0ID09IHZtLT5zY3JhdGNoX3B0KTsKKwkJR0VNX0JVR19PTihw eF9iYXNlKHB0KSA9PSAmdm0tPnNjcmF0Y2hfcHQpOwogCiAJCW51bV9lbnRyaWVzIC09IGNvdW50 OwogCkBAIC0xODAwLDcgKzE3ODAsNyBAQCBzdGF0aWMgdm9pZCBnZW42X3BwZ3R0X2luc2VydF9l bnRyaWVzKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCXN0cnVjdCBzZ3RfZG1hIGl0 ZXIgPSBzZ3RfZG1hKHZtYSk7CiAJZ2VuNl9wdGVfdCAqdmFkZHI7CiAKLQlHRU1fQlVHX09OKGk5 MTVfcHRfZW50cnkocGQsIGFjdF9wdCkgPT0gdm0tPnNjcmF0Y2hfcHQpOworCUdFTV9CVUdfT04o cGQtPmVudHJ5W2FjdF9wdF0gPT0gJnZtLT5zY3JhdGNoX3B0KTsKIAogCXZhZGRyID0ga21hcF9h dG9taWNfcHgoaTkxNV9wdF9lbnRyeShwZCwgYWN0X3B0KSk7CiAJZG8gewpAQCAtMTg0NSw3ICsx ODI1LDcgQEAgc3RhdGljIGludCBnZW42X2FsbG9jX3ZhX3JhbmdlKHN0cnVjdCBpOTE1X2FkZHJl c3Nfc3BhY2UgKnZtLAogCWdlbjZfZm9yX2VhY2hfcGRlKHB0LCBwZCwgc3RhcnQsIGxlbmd0aCwg cGRlKSB7CiAJCWNvbnN0IHVuc2lnbmVkIGludCBjb3VudCA9IGdlbjZfcHRlX2NvdW50KHN0YXJ0 LCBsZW5ndGgpOwogCi0JCWlmIChwdCA9PSB2bS0+c2NyYXRjaF9wdCkgeworCQlpZiAocHhfYmFz ZShwdCkgPT0gJnZtLT5zY3JhdGNoX3B0KSB7CiAJCQlzcGluX3VubG9jaygmcGQtPmxvY2spOwog CiAJCQlwdCA9IGZldGNoX2FuZF96ZXJvKCZhbGxvYyk7CkBAIC0xODU2LDEwICsxODM2LDEwIEBA IHN0YXRpYyBpbnQgZ2VuNl9hbGxvY192YV9yYW5nZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNl ICp2bSwKIAkJCQlnb3RvIHVud2luZF9vdXQ7CiAJCQl9CiAKLQkJCWdlbjZfaW5pdGlhbGl6ZV9w dCh2bSwgcHQpOworCQkJZmlsbDMyX3B4KHB0LCB2bS0+c2NyYXRjaF9wdGUpOwogCiAJCQlzcGlu X2xvY2soJnBkLT5sb2NrKTsKLQkJCWlmIChwZC0+ZW50cnlbcGRlXSA9PSB2bS0+c2NyYXRjaF9w dCkgeworCQkJaWYgKHBkLT5lbnRyeVtwZGVdID09ICZ2bS0+c2NyYXRjaF9wdCkgewogCQkJCXBk LT5lbnRyeVtwZGVdID0gcHQ7CiAJCQkJaWYgKGk5MTVfdm1hX2lzX2JvdW5kKHBwZ3R0LT52bWEs CiAJCQkJCQkgICAgICBJOTE1X1ZNQV9HTE9CQUxfQklORCkpIHsKQEAgLTE5MDgsMjYgKzE4ODgs MTggQEAgc3RhdGljIGludCBnZW42X3BwZ3R0X2luaXRfc2NyYXRjaChzdHJ1Y3QgZ2VuNl9wcGd0 dCAqcHBndHQpCiAJCQkJCSBJOTE1X0NBQ0hFX05PTkUsCiAJCQkJCSBQVEVfUkVBRF9PTkxZKTsK IAotCXZtLT5zY3JhdGNoX3B0ID0gYWxsb2NfcHQodm0pOwotCWlmIChJU19FUlIodm0tPnNjcmF0 Y2hfcHQpKSB7CisJaWYgKHVubGlrZWx5KHNldHVwX3BhZ2VfZG1hKHZtLCAmdm0tPnNjcmF0Y2hf cHQpKSkgewogCQljbGVhbnVwX3NjcmF0Y2hfcGFnZSh2bSk7Ci0JCXJldHVybiBQVFJfRVJSKHZt LT5zY3JhdGNoX3B0KTsKKwkJcmV0dXJuIC1FTk9NRU07CiAJfQotCi0JZ2VuNl9pbml0aWFsaXpl X3B0KHZtLCB2bS0+c2NyYXRjaF9wdCk7CisJZmlsbF9wYWdlX2RtYV8zMigmdm0tPnNjcmF0Y2hf cHQsIHZtLT5zY3JhdGNoX3B0ZSk7CiAKIAlnZW42X2Zvcl9hbGxfcGRlcyh1bnVzZWQsIHBkLCBw ZGUpCi0JCXBkLT5lbnRyeVtwZGVdID0gdm0tPnNjcmF0Y2hfcHQ7CisJCXBkLT5lbnRyeVtwZGVd ID0gJnZtLT5zY3JhdGNoX3B0OwogCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIGdlbjZf cHBndHRfZnJlZV9zY3JhdGNoKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQotewotCWZy ZWVfcHQodm0sIHZtLT5zY3JhdGNoX3B0KTsKLQljbGVhbnVwX3NjcmF0Y2hfcGFnZSh2bSk7Ci19 Ci0KIHN0YXRpYyB2b2lkIGdlbjZfcHBndHRfZnJlZV9wZChzdHJ1Y3QgZ2VuNl9wcGd0dCAqcHBn dHQpCiB7CiAJc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKiBjb25zdCBwZCA9IHBwZ3R0LT5i YXNlLnBkOwpAQCAtMTkzNSw3ICsxOTA3LDcgQEAgc3RhdGljIHZvaWQgZ2VuNl9wcGd0dF9mcmVl X3BkKHN0cnVjdCBnZW42X3BwZ3R0ICpwcGd0dCkKIAl1MzIgcGRlOwogCiAJZ2VuNl9mb3JfYWxs X3BkZXMocHQsIHBkLCBwZGUpCi0JCWlmIChwdCAhPSBwcGd0dC0+YmFzZS52bS5zY3JhdGNoX3B0 KQorCQlpZiAocHhfYmFzZShwdCkgIT0gJnBwZ3R0LT5iYXNlLnZtLnNjcmF0Y2hfcHQpCiAJCQlm cmVlX3B0KCZwcGd0dC0+YmFzZS52bSwgcHQpOwogfQogCkBAIC0xOTUwLDcgKzE5MjIsNyBAQCBz dGF0aWMgdm9pZCBnZW42X3BwZ3R0X2NsZWFudXAoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAq dm0pCiAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAogCWdlbjZfcHBn dHRfZnJlZV9wZChwcGd0dCk7Ci0JZ2VuNl9wcGd0dF9mcmVlX3NjcmF0Y2godm0pOworCWZyZWVf c2NyYXRjaCh2bSk7CiAJa2ZyZWUocHBndHQtPmJhc2UucGQpOwogfQogCkBAIC0xOTkzLDcgKzE5 NjUsNyBAQCBzdGF0aWMgdm9pZCBwZF92bWFfdW5iaW5kKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQog ewogCXN0cnVjdCBnZW42X3BwZ3R0ICpwcGd0dCA9IHZtYS0+cHJpdmF0ZTsKIAlzdHJ1Y3QgaTkx NV9wYWdlX2RpcmVjdG9yeSAqIGNvbnN0IHBkID0gcHBndHQtPmJhc2UucGQ7Ci0Jc3RydWN0IGk5 MTVfcGFnZV90YWJsZSAqIGNvbnN0IHNjcmF0Y2hfcHQgPSBwcGd0dC0+YmFzZS52bS5zY3JhdGNo X3B0OworCXN0cnVjdCBpOTE1X3BhZ2VfZG1hICogY29uc3Qgc2NyYXRjaCA9ICZwcGd0dC0+YmFz ZS52bS5zY3JhdGNoX3B0OwogCXN0cnVjdCBpOTE1X3BhZ2VfdGFibGUgKnB0OwogCXVuc2lnbmVk IGludCBwZGU7CiAKQEAgLTIwMDIsMTEgKzE5NzQsMTEgQEAgc3RhdGljIHZvaWQgcGRfdm1hX3Vu YmluZChzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKIAogCS8qIEZyZWUgYWxsIG5vIGxvbmdlciB1c2Vk IHBhZ2UgdGFibGVzICovCiAJZ2VuNl9mb3JfYWxsX3BkZXMocHQsIHBwZ3R0LT5iYXNlLnBkLCBw ZGUpIHsKLQkJaWYgKGF0b21pY19yZWFkKCZwdC0+dXNlZCkgfHwgcHQgPT0gc2NyYXRjaF9wdCkK KwkJaWYgKHB4X2Jhc2UocHQpID09IHNjcmF0Y2ggfHwgYXRvbWljX3JlYWQoJnB0LT51c2VkKSkK IAkJCWNvbnRpbnVlOwogCiAJCWZyZWVfcHQoJnBwZ3R0LT5iYXNlLnZtLCBwdCk7Ci0JCXBkLT5l bnRyeVtwZGVdID0gc2NyYXRjaF9wdDsKKwkJcGQtPmVudHJ5W3BkZV0gPSBzY3JhdGNoOwogCX0K IAogCXBwZ3R0LT5zY2FuX2Zvcl91bnVzZWRfcHQgPSBmYWxzZTsKQEAgLTIxNDgsNyArMjEyMCw3 IEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV9wcGd0dCAqZ2VuNl9wcGd0dF9jcmVhdGUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJcmV0dXJuICZwcGd0dC0+YmFzZTsKIAogZXJyX3NjcmF0 Y2g6Ci0JZ2VuNl9wcGd0dF9mcmVlX3NjcmF0Y2goJnBwZ3R0LT5iYXNlLnZtKTsKKwlmcmVlX3Nj cmF0Y2goJnBwZ3R0LT5iYXNlLnZtKTsKIGVycl9wZDoKIAlrZnJlZShwcGd0dC0+YmFzZS5wZCk7 CiBlcnJfZnJlZToKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0 dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKaW5kZXggNTdhNjhlZjRl ZGE3Li44NjA4NTA0MTFhMWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2d0dC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCkBAIC0z MDQsOSArMzA0LDkgQEAgc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSB7CiAJdTY0IHNjcmF0Y2hf cHRlOwogCWludCBzY3JhdGNoX29yZGVyOwogCXN0cnVjdCBpOTE1X3BhZ2VfZG1hIHNjcmF0Y2hf cGFnZTsKLQlzdHJ1Y3QgaTkxNV9wYWdlX3RhYmxlICpzY3JhdGNoX3B0OwotCXN0cnVjdCBpOTE1 X3BhZ2VfZGlyZWN0b3J5ICpzY3JhdGNoX3BkOwotCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5 ICpzY3JhdGNoX3BkcDsgLyogR0VOOCsgJiA0OGIgUFBHVFQgKi8KKwlzdHJ1Y3QgaTkxNV9wYWdl X2RtYSBzY3JhdGNoX3B0OworCXN0cnVjdCBpOTE1X3BhZ2VfZG1hIHNjcmF0Y2hfcGQ7CisJc3Ry dWN0IGk5MTVfcGFnZV9kbWEgc2NyYXRjaF9wZHA7IC8qIEdFTjgrICYgNDhiIFBQR1RUICovCiAK IAkvKioKIAkgKiBMaXN0IG9mIHZtYSBjdXJyZW50bHkgYm91bmQuCi0tIAoyLjIwLjEKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==