From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 18/28] drm/i915/gt: Pull GT initialisation under intel_gt_init() Date: Thu, 7 Nov 2019 08:12:42 +0000 Message-ID: <20191107081252.10542-18-chris@chris-wilson.co.uk> References: <20191107081252.10542-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 492C76EEC5 for ; Thu, 7 Nov 2019 08:13:07 +0000 (UTC) In-Reply-To: <20191107081252.10542-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 QmVnaW4gcHVsbGluZyB0aGUgR1Qgc2V0dXAgdW5kZXJuZWF0aCBhIHNpbmdsZSBHVCB1bWJyZWxs YTsgbGV0IGludGVsX2d0CnRha2Ugb3duZXJzaGlwIG9mIGl0cyBlbmdpbmVzISBBcyBoaW50ZWQs IHRoZSBjb21wbGljYXRpb24gaXMgdGhlCmxpZmV0aW1lIG9mIHRoZSBwcm9iZWQgZW5naW5lIHZl cnN1cyB0aGUgYWN0aXZlIGxpZmV0aW1lIG9mIHRoZSBHVApiYWNrZW5kcy4gV2UgbmVlZCB0byBk ZXRlY3QgdGhlIGVuZ2luZSBsYXlvdXQgZWFybHkgYW5kIGtlZXAgaXQgdW50aWwKdGhlIGVuZCBz byB0aGF0IHdlIGNhbiBzYW5pdGl6ZSBzdGF0ZSBvbiB0YWtlb3ZlciBhbmQgcmVsZWFzZS4KClNp Z25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfb3ZlcmxheS5jICB8ICAgNiArLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lLmggICAgICAgIHwgICA0ICstCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYyAgICAgfCAgNDIgKystLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3R5cGVzLmggIHwgICAyICstCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndC5jICAgICAgICAgICAgfCAyMzEgKysrKysr KysrKysrKysrKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMuYyAgICAgICAg ICAgfCAgIDUgKy0KIC4uLi9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmluZ19zdWJtaXNzaW9uLmMg ICB8ICAgNiArLQogLi4uL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF90aW1lbGluZV90eXBlcy5oICAg IHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgICAgICAgICAg fCAgIDEgLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICAgICAgIHwg MjE4ICstLS0tLS0tLS0tLS0tLS0tCiAxMCBmaWxlcyBjaGFuZ2VkLCAyNjcgaW5zZXJ0aW9ucygr KSwgMjUyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfb3ZlcmxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9vdmVybGF5LmMKaW5kZXggOGNmYjc4NWU3NjFjLi45NzMwMjZmMGM3MTcgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfb3ZlcmxheS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfb3ZlcmxheS5jCkBAIC0xMzI2LDEyICsxMzI2 LDE0IEBAIHN0YXRpYyBpbnQgZ2V0X3JlZ2lzdGVycyhzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3Zl cmxheSwgYm9vbCB1c2VfcGh5cykKIHZvaWQgaW50ZWxfb3ZlcmxheV9zZXR1cChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJs YXk7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCWludCByZXQ7CiAKIAlpZiAo IUhBU19PVkVSTEFZKGRldl9wcml2KSkKIAkJcmV0dXJuOwogCi0JaWYgKCFIQVNfRU5HSU5FKGRl dl9wcml2LCBSQ1MwKSkKKwllbmdpbmUgPSBkZXZfcHJpdi0+ZW5naW5lW1JDUzBdOworCWlmICgh ZW5naW5lIHx8ICFlbmdpbmUtPmtlcm5lbF9jb250ZXh0KQogCQlyZXR1cm47CiAKIAlvdmVybGF5 ID0ga3phbGxvYyhzaXplb2YoKm92ZXJsYXkpLCBHRlBfS0VSTkVMKTsKQEAgLTEzMzksNyArMTM0 MSw3IEBAIHZvaWQgaW50ZWxfb3ZlcmxheV9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCiAJCXJldHVybjsKIAogCW92ZXJsYXktPmk5MTUgPSBkZXZfcHJpdjsKLQlvdmVy bGF5LT5jb250ZXh0ID0gZGV2X3ByaXYtPmVuZ2luZVtSQ1MwXS0+a2VybmVsX2NvbnRleHQ7CisJ b3ZlcmxheS0+Y29udGV4dCA9IGVuZ2luZS0+a2VybmVsX2NvbnRleHQ7CiAJR0VNX0JVR19PTigh b3ZlcmxheS0+Y29udGV4dCk7CiAKIAlvdmVybGF5LT5jb2xvcl9rZXkgPSAweDAxMDFmZTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZS5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lLmgKaW5kZXggYmMzYjcyYmZhOWUzLi4xMTRj NDJkMzU3NzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2lu ZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZS5oCkBAIC0xODEs NyArMTgxLDkgQEAgdm9pZCBpbnRlbF9lbmdpbmVfY2xlYW51cChzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpOwogaW50IGludGVsX2VuZ2luZXNfaW5pdF9tbWlvKHN0cnVjdCBpbnRlbF9n dCAqZ3QpOwogaW50IGludGVsX2VuZ2luZXNfc2V0dXAoc3RydWN0IGludGVsX2d0ICpndCk7CiBp bnQgaW50ZWxfZW5naW5lc19pbml0KHN0cnVjdCBpbnRlbF9ndCAqZ3QpOwotdm9pZCBpbnRlbF9l bmdpbmVzX2NsZWFudXAoc3RydWN0IGludGVsX2d0ICpndCk7CisKK3ZvaWQgaW50ZWxfZW5naW5l c19yZWxlYXNlKHN0cnVjdCBpbnRlbF9ndCAqZ3QpOwordm9pZCBpbnRlbF9lbmdpbmVzX2ZyZWUo c3RydWN0IGludGVsX2d0ICpndCk7CiAKIGludCBpbnRlbF9lbmdpbmVfaW5pdF9jb21tb24oc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKIHZvaWQgaW50ZWxfZW5naW5lX2NsZWFudXBf Y29tbW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L2ludGVsX2VuZ2luZV9jcy5jCmluZGV4IDVlNDAwNDQ0NzhmZi4uZmYzMTM4N2I3NTUz IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYwpAQCAtMzE4LDEy ICszMTgsNiBAQCBzdGF0aWMgaW50IGludGVsX2VuZ2luZV9zZXR1cChzdHJ1Y3QgaW50ZWxfZ3Qg Kmd0LCBlbnVtIGludGVsX2VuZ2luZV9pZCBpZCkKIAllbmdpbmUtPnByb3BzLnRpbWVzbGljZV9k dXJhdGlvbl9tcyA9CiAJCUNPTkZJR19EUk1fSTkxNV9USU1FU0xJQ0VfRFVSQVRJT047CiAKLQkv KgotCSAqIFRvIGJlIG92ZXJyaWRkZW4gYnkgdGhlIGJhY2tlbmQgb24gc2V0dXAuIEhvd2V2ZXIg dG8gZmFjaWxpdGF0ZQotCSAqIGNsZWFudXAgb24gZXJyb3IgZHVyaW5nIHNldHVwLCB3ZSBhbHdh eXMgcHJvdmlkZSB0aGUgZGVzdHJveSB2ZnVuYy4KLQkgKi8KLQllbmdpbmUtPmRlc3Ryb3kgPSAo dHlwZW9mKGVuZ2luZS0+ZGVzdHJveSkpa2ZyZWU7Ci0KIAllbmdpbmUtPmNvbnRleHRfc2l6ZSA9 IGludGVsX2VuZ2luZV9jb250ZXh0X3NpemUoZ3QtPmk5MTUsCiAJCQkJCQkJIGVuZ2luZS0+Y2xh c3MpOwogCWlmIChXQVJOX09OKGVuZ2luZS0+Y29udGV4dF9zaXplID4gQklUKDIwKSkpCkBAIC0z ODksMjEgKzM4MywzOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9zZXR1cF9lbmdpbmVfY2FwYWJpbGl0 aWVzKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiB9CiAKIC8qKgotICogaW50ZWxfZW5naW5lc19jbGVh bnVwKCkgLSBmcmVlIHRoZSByZXNvdXJjZXMgYWxsb2NhdGVkIGZvciBDb21tYW5kIFN0cmVhbWVy cworICogaW50ZWxfZW5naW5lc19yZWxlYXNlKCkgLSBmcmVlIHRoZSByZXNvdXJjZXMgYWxsb2Nh dGVkIGZvciBDb21tYW5kIFN0cmVhbWVycwogICogQGd0OiBwb2ludGVyIHRvIHN0cnVjdCBpbnRl bF9ndAogICovCi12b2lkIGludGVsX2VuZ2luZXNfY2xlYW51cChzdHJ1Y3QgaW50ZWxfZ3QgKmd0 KQordm9pZCBpbnRlbF9lbmdpbmVzX3JlbGVhc2Uoc3RydWN0IGludGVsX2d0ICpndCkKIHsKIAlz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7 CiAKKwkvKiBEZWNvdXBsZSB0aGUgYmFja2VuZDsgYnV0IGtlZXAgdGhlIGxheW91dCBmb3IgbGF0 ZSBHUFUgcmVzZXRzICovCiAJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QsIGlkKSB7Ci0JCWVu Z2luZS0+ZGVzdHJveShlbmdpbmUpOwotCQlndC0+ZW5naW5lW2lkXSA9IE5VTEw7CisJCWlmICgh ZW5naW5lLT5yZWxlYXNlKQorCQkJY29udGludWU7CisKKwkJZW5naW5lLT5yZWxlYXNlKGVuZ2lu ZSk7CisJCWVuZ2luZS0+cmVsZWFzZSA9IE5VTEw7CisKKwkJbWVtc2V0KCZlbmdpbmUtPnJlc2V0 LCAwLCBzaXplb2YoZW5naW5lLT5yZXNldCkpOworCiAJCWd0LT5pOTE1LT5lbmdpbmVbaWRdID0g TlVMTDsKIAl9CiB9CiAKK3ZvaWQgaW50ZWxfZW5naW5lc19mcmVlKHN0cnVjdCBpbnRlbF9ndCAq Z3QpCit7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCWVudW0gaW50ZWxfZW5n aW5lX2lkIGlkOworCisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QsIGlkKSB7CisJCWtmcmVl KGVuZ2luZSk7CisJCWd0LT5lbmdpbmVbaWRdID0gTlVMTDsKKwl9Cit9CisKIC8qKgogICogaW50 ZWxfZW5naW5lc19pbml0X21taW8oKSAtIGFsbG9jYXRlIGFuZCBwcmVwYXJlIHRoZSBFbmdpbmUg Q29tbWFuZCBTdHJlYW1lcnMKICAqIEBndDogcG9pbnRlciB0byBzdHJ1Y3QgaW50ZWxfZ3QKQEAg LTQ1NCw3ICs0NjYsNyBAQCBpbnQgaW50ZWxfZW5naW5lc19pbml0X21taW8oc3RydWN0IGludGVs X2d0ICpndCkKIAlyZXR1cm4gMDsKIAogY2xlYW51cDoKLQlpbnRlbF9lbmdpbmVzX2NsZWFudXAo Z3QpOworCWludGVsX2VuZ2luZXNfZnJlZShndCk7CiAJcmV0dXJuIGVycjsKIH0KIApAQCAtNDg3 LDcgKzQ5OSw3IEBAIGludCBpbnRlbF9lbmdpbmVzX2luaXQoc3RydWN0IGludGVsX2d0ICpndCkK IAlyZXR1cm4gMDsKIAogY2xlYW51cDoKLQlpbnRlbF9lbmdpbmVzX2NsZWFudXAoZ3QpOworCWlu dGVsX2VuZ2luZXNfcmVsZWFzZShndCk7CiAJcmV0dXJuIGVycjsKIH0KIApAQCAtNjYxLDE2ICs2 NzMsMTMgQEAgaW50IGludGVsX2VuZ2luZXNfc2V0dXAoc3RydWN0IGludGVsX2d0ICpndCkKIAkJ aWYgKGVycikKIAkJCWdvdG8gY2xlYW51cDsKIAotCQkvKiBXZSBleHBlY3QgdGhlIGJhY2tlbmQg dG8gdGFrZSBjb250cm9sIG92ZXIgaXRzIHN0YXRlICovCi0JCUdFTV9CVUdfT04oZW5naW5lLT5k ZXN0cm95ID09ICh0eXBlb2YoZW5naW5lLT5kZXN0cm95KSlrZnJlZSk7Ci0KIAkJR0VNX0JVR19P TighZW5naW5lLT5jb3BzKTsKIAl9CiAKIAlyZXR1cm4gMDsKIAogY2xlYW51cDoKLQlpbnRlbF9l bmdpbmVzX2NsZWFudXAoZ3QpOworCWludGVsX2VuZ2luZXNfcmVsZWFzZShndCk7CiAJcmV0dXJu IGVycjsKIH0KIApAQCAtODI5LDYgKzgzOCw3IEBAIGludCBpbnRlbF9lbmdpbmVfaW5pdF9jb21t b24oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogdm9pZCBpbnRlbF9lbmdpbmVfY2xl YW51cF9jb21tb24oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogCUdFTV9CVUdf T04oIWxpc3RfZW1wdHkoJmVuZ2luZS0+YWN0aXZlLnJlcXVlc3RzKSk7CisJdGFza2xldF9raWxs KCZlbmdpbmUtPmV4ZWNsaXN0cy50YXNrbGV0KTsgLyogZmx1c2ggdGhlIGNhbGxiYWNrICovCiAK IAljbGVhbnVwX3N0YXR1c19wYWdlKGVuZ2luZSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvaW50ZWxfZW5naW5lX3R5cGVzLmgKaW5kZXggYzVkMTA0N2E0YmM1Li4wODVkMGZkN2RiMjQg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV90eXBlcy5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV90eXBlcy5oCkBAIC00 NDcsNyArNDQ3LDcgQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7CiAJICovCiAJdm9pZAkJKCpj YW5jZWxfcmVxdWVzdHMpKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CiAKLQl2b2lk CQkoKmRlc3Ryb3kpKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CisJdm9pZAkJKCpy ZWxlYXNlKShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwogCiAJc3RydWN0IGludGVs X2VuZ2luZV9leGVjbGlzdHMgZXhlY2xpc3RzOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9pbnRlbF9ndC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3Qu YwppbmRleCAwMjQ4NDg2MGNhYTguLjc3ZTBjNDViZjEzZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9p bnRlbF9ndC5jCkBAIC00LDExICs0LDEzIEBACiAgKi8KIAogI2luY2x1ZGUgImk5MTVfZHJ2Lmgi CisjaW5jbHVkZSAiaW50ZWxfY29udGV4dC5oIgogI2luY2x1ZGUgImludGVsX2d0LmgiCiAjaW5j bHVkZSAiaW50ZWxfZ3RfcG0uaCIKICNpbmNsdWRlICJpbnRlbF9ndF9yZXF1ZXN0cy5oIgogI2lu Y2x1ZGUgImludGVsX21vY3MuaCIKICNpbmNsdWRlICJpbnRlbF9yYzYuaCIKKyNpbmNsdWRlICJp bnRlbF9yZW5kZXJzdGF0ZS5oIgogI2luY2x1ZGUgImludGVsX3Jwcy5oIgogI2luY2x1ZGUgImlu dGVsX3VuY29yZS5oIgogI2luY2x1ZGUgImludGVsX3BtLmgiCkBAIC0zNzIsMzIgKzM3NCwyNDUg QEAgc3RhdGljIHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKmtlcm5lbF92bShzdHJ1Y3QgaW50 ZWxfZ3QgKmd0KQogCQlyZXR1cm4gaTkxNV92bV9nZXQoJmd0LT5nZ3R0LT52bSk7CiB9CiAKK3N0 YXRpYyBpbnQgX19lbmdpbmVzX3JlY29yZF9kZWZhdWx0cyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQor eworCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3RzW0k5MTVfTlVNX0VOR0lORVNdID0ge307 CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCWVudW0gaW50ZWxfZW5naW5lX2lk IGlkOworCWludCBlcnIgPSAwOworCisJLyoKKwkgKiBBcyB3ZSByZXNldCB0aGUgZ3B1IGR1cmlu ZyB2ZXJ5IGVhcmx5IHNhbml0aXNhdGlvbiwgdGhlIGN1cnJlbnQKKwkgKiByZWdpc3RlciBzdGF0 ZSBvbiB0aGUgR1BVIHNob3VsZCByZWZsZWN0IGl0cyBkZWZhdWx0cyB2YWx1ZXMuCisJICogV2Ug bG9hZCBhIGNvbnRleHQgb250byB0aGUgaHcgKHdpdGggcmVzdG9yZS1pbmhpYml0KSwgdGhlbiBz d2l0Y2gKKwkgKiBvdmVyIHRvIGEgc2Vjb25kIGNvbnRleHQgdG8gc2F2ZSB0aGF0IGRlZmF1bHQg cmVnaXN0ZXIgc3RhdGUuIFdlCisJICogY2FuIHRoZW4gcHJpbWUgZXZlcnkgbmV3IGNvbnRleHQg d2l0aCB0aGF0IHN0YXRlIHNvIHRoZXkgYWxsIHN0YXJ0CisJICogZnJvbSB0aGUgc2FtZSBkZWZh dWx0IEhXIHZhbHVlcy4KKwkgKi8KKworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LCBpZCkg eworCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2U7CisJCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJx OworCisJCS8qIFdlIG11c3QgYmUgYWJsZSB0byBzd2l0Y2ggdG8gc29tZXRoaW5nISAqLworCQlH RU1fQlVHX09OKCFlbmdpbmUtPmtlcm5lbF9jb250ZXh0KTsKKwkJZW5naW5lLT5zZXJpYWwrKzsg LyogZm9yY2UgdGhlIGtlcm5lbCBjb250ZXh0IHN3aXRjaCAqLworCisJCWNlID0gaW50ZWxfY29u dGV4dF9jcmVhdGUoZW5naW5lKTsKKwkJaWYgKElTX0VSUihjZSkpIHsKKwkJCWVyciA9IFBUUl9F UlIoY2UpOworCQkJZ290byBvdXQ7CisJCX0KKworCQlycSA9IGludGVsX2NvbnRleHRfY3JlYXRl X3JlcXVlc3QoY2UpOworCQlpZiAoSVNfRVJSKHJxKSkgeworCQkJZXJyID0gUFRSX0VSUihycSk7 CisJCQlpbnRlbF9jb250ZXh0X3B1dChjZSk7CisJCQlnb3RvIG91dDsKKwkJfQorCisJCWVyciA9 IGludGVsX2VuZ2luZV9lbWl0X2N0eF93YShycSk7CisJCWlmIChlcnIpCisJCQlnb3RvIGVycl9y cTsKKworCQllcnIgPSBpbnRlbF9yZW5kZXJzdGF0ZV9lbWl0KHJxKTsKKwkJaWYgKGVycikKKwkJ CWdvdG8gZXJyX3JxOworCitlcnJfcnE6CisJCXJlcXVlc3RzW2lkXSA9IGk5MTVfcmVxdWVzdF9n ZXQocnEpOworCQlpOTE1X3JlcXVlc3RfYWRkKHJxKTsKKwkJaWYgKGVycikKKwkJCWdvdG8gb3V0 OworCX0KKworCS8qIEZsdXNoIHRoZSBkZWZhdWx0IGNvbnRleHQgaW1hZ2UgdG8gbWVtb3J5LCBh bmQgZW5hYmxlIHBvd2Vyc2F2aW5nLiAqLworCWlmIChpbnRlbF9ndF93YWl0X2Zvcl9pZGxlKGd0 LCBJOTE1X0dFTV9JRExFX1RJTUVPVVQpID09IC1FVElNRSkgeworCQllcnIgPSAtRUlPOworCQln b3RvIG91dDsKKwl9CisKKwlmb3IgKGlkID0gMDsgaWQgPCBBUlJBWV9TSVpFKHJlcXVlc3RzKTsg aWQrKykgeworCQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKKwkJc3RydWN0IGk5MTVfdm1hICpz dGF0ZTsKKwkJdm9pZCAqdmFkZHI7CisKKwkJcnEgPSByZXF1ZXN0c1tpZF07CisJCWlmICghcnEp CisJCQljb250aW51ZTsKKworCQkvKiBXZSB3YW50IHRvIGJlIGFibGUgdG8gdW5iaW5kIHRoZSBz dGF0ZSBmcm9tIHRoZSBHR1RUICovCisJCUdFTV9CVUdfT04oaW50ZWxfY29udGV4dF9pc19waW5u ZWQocnEtPmNvbnRleHQpKTsKKworCQlzdGF0ZSA9IHJxLT5jb250ZXh0LT5zdGF0ZTsKKwkJaWYg KCFzdGF0ZSkKKwkJCWNvbnRpbnVlOworCisJCS8qCisJCSAqIEFzIHdlIHdpbGwgaG9sZCBhIHJl ZmVyZW5jZSB0byB0aGUgbG9naWNhbCBzdGF0ZSwgaXQgd2lsbAorCQkgKiBub3QgYmUgdG9ybiBk b3duIHdpdGggdGhlIGNvbnRleHQsIGFuZCBpbXBvcnRhbnRseSB0aGUKKwkJICogb2JqZWN0IHdp bGwgaG9sZCBvbnRvIGl0cyB2bWEgKG1ha2luZyBpdCBwb3NzaWJsZSBmb3IgYQorCQkgKiBzdHJh eSBHVFQgd3JpdGUgdG8gY29ycnVwdCBvdXIgZGVmYXVsdHMpLiBVbm1hcCB0aGUgdm1hCisJCSAq IGZyb20gdGhlIEdUVCB0byBwcmV2ZW50IHN1Y2ggYWNjaWRlbnRzIGFuZCByZWNsYWltIHRoZQor CQkgKiBzcGFjZS4KKwkJICovCisJCWVyciA9IGk5MTVfdm1hX3VuYmluZChzdGF0ZSk7CisJCWlm IChlcnIpCisJCQlnb3RvIG91dDsKKworCQlpOTE1X2dlbV9vYmplY3RfbG9jayhzdGF0ZS0+b2Jq KTsKKwkJZXJyID0gaTkxNV9nZW1fb2JqZWN0X3NldF90b19jcHVfZG9tYWluKHN0YXRlLT5vYmos IGZhbHNlKTsKKwkJaTkxNV9nZW1fb2JqZWN0X3VubG9jayhzdGF0ZS0+b2JqKTsKKwkJaWYgKGVy cikKKwkJCWdvdG8gb3V0OworCisJCWk5MTVfZ2VtX29iamVjdF9zZXRfY2FjaGVfY29oZXJlbmN5 KHN0YXRlLT5vYmosIEk5MTVfQ0FDSEVfTExDKTsKKworCQkvKiBDaGVjayB3ZSBjYW4gYWNxdWly ZSB0aGUgaW1hZ2Ugb2YgdGhlIGNvbnRleHQgc3RhdGUgKi8KKwkJdmFkZHIgPSBpOTE1X2dlbV9v YmplY3RfcGluX21hcChzdGF0ZS0+b2JqLCBJOTE1X01BUF9GT1JDRV9XQik7CisJCWlmIChJU19F UlIodmFkZHIpKSB7CisJCQllcnIgPSBQVFJfRVJSKHZhZGRyKTsKKwkJCWdvdG8gb3V0OworCQl9 CisKKwkJcnEtPmVuZ2luZS0+ZGVmYXVsdF9zdGF0ZSA9IGk5MTVfZ2VtX29iamVjdF9nZXQoc3Rh dGUtPm9iaik7CisJCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAoc3RhdGUtPm9iaik7CisJfQor CitvdXQ6CisJLyoKKwkgKiBJZiB3ZSBoYXZlIHRvIGFiYW5kb24gbm93LCB3ZSBleHBlY3QgdGhl IGVuZ2luZXMgdG8gYmUgaWRsZQorCSAqIGFuZCByZWFkeSB0byBiZSB0b3JuLWRvd24uIFRoZSBx dWlja2VzdCB3YXkgd2UgY2FuIGFjY29tcGxpc2gKKwkgKiB0aGlzIGlzIGJ5IGRlY2xhcmluZyBv dXJzZWx2ZXMgd2VkZ2VkLgorCSAqLworCWlmIChlcnIpCisJCWludGVsX2d0X3NldF93ZWRnZWQo Z3QpOworCisJZm9yIChpZCA9IDA7IGlkIDwgQVJSQVlfU0laRShyZXF1ZXN0cyk7IGlkKyspIHsK KwkJc3RydWN0IGludGVsX2NvbnRleHQgKmNlOworCQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsK KworCQlycSA9IHJlcXVlc3RzW2lkXTsKKwkJaWYgKCFycSkKKwkJCWNvbnRpbnVlOworCisJCWNl ID0gcnEtPmNvbnRleHQ7CisJCWk5MTVfcmVxdWVzdF9wdXQocnEpOworCQlpbnRlbF9jb250ZXh0 X3B1dChjZSk7CisJfQorCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQgX19lbmdpbmVzX3Zl cmlmeV93b3JrYXJvdW5kcyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQoreworCXN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZTsKKwllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKKwlpbnQgZXJyID0g MDsKKworCWlmICghSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfREVCVUdfR0VNKSkKKwkJcmV0 dXJuIDA7CisKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndCwgaWQpIHsKKwkJaWYgKGludGVs X2VuZ2luZV92ZXJpZnlfd29ya2Fyb3VuZHMoZW5naW5lLCAibG9hZCIpKQorCQkJZXJyID0gLUVJ TzsKKwl9CisKKwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMgdm9pZCBfX2ludGVsX2d0X2Rpc2Fi bGUoc3RydWN0IGludGVsX2d0ICpndCkKK3sKKwlpbnRlbF9ndF9zZXRfd2VkZ2VkX29uX2luaXQo Z3QpOworCisJaW50ZWxfZ3Rfc3VzcGVuZF9wcmVwYXJlKGd0KTsKKwlpbnRlbF9ndF9zdXNwZW5k X2xhdGUoZ3QpOworCisJR0VNX0JVR19PTihpbnRlbF9ndF9wbV9pc19hd2FrZShndCkpOworfQor CiBpbnQgaW50ZWxfZ3RfaW5pdChzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQogewogCWludCBlcnI7CiAK LQllcnIgPSBpbnRlbF9ndF9pbml0X3NjcmF0Y2goZ3QsIElTX0dFTihndC0+aTkxNSwgMikgPyBT Wl8yNTZLIDogU1pfNEspOworCWVyciA9IGk5MTVfaW5qZWN0X3Byb2JlX2Vycm9yKGd0LT5pOTE1 LCAtRU5PREVWKTsKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwogCisJLyoKKwkgKiBUaGlzIGlz IGp1c3QgYSBzZWN1cml0eSBibGFua2V0IHRvIHBsYWNhdGUgZHJhZ29ucy4KKwkgKiBPbiBzb21l IHN5c3RlbXMsIHdlIHZlcnkgc3BvcmFkaWNhbGx5IG9ic2VydmUgdGhhdCB0aGUgZmlyc3QgVExC cworCSAqIHVzZWQgYnkgdGhlIENTIG1heSBiZSBzdGFsZSwgZGVzcGl0ZSB1cyBwb2tpbmcgdGhl IFRMQiByZXNldC4gSWYKKwkgKiB3ZSBob2xkIHRoZSBmb3JjZXdha2UgZHVyaW5nIGluaXRpYWxp c2F0aW9uIHRoZXNlIHByb2JsZW1zCisJICoganVzdCBtYWdpY2FsbHkgZ28gYXdheS4KKwkgKi8K KwlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2dldChndC0+dW5jb3JlLCBGT1JDRVdBS0VfQUxMKTsK KworCWVyciA9IGludGVsX2d0X2luaXRfc2NyYXRjaChndCwgSVNfR0VOKGd0LT5pOTE1LCAyKSA/ IFNaXzI1NksgOiBTWl80Syk7CisJaWYgKGVycikKKwkJZ290byBvdXRfZnc7CisKIAlpbnRlbF9n dF9wbV9pbml0KGd0KTsKIAogCWd0LT52bSA9IGtlcm5lbF92bShndCk7CiAJaWYgKCFndC0+dm0p IHsKIAkJZXJyID0gLUVOT01FTTsKLQkJZ290byBlcnJfc2NyYXRjaDsKKwkJZ290byBlcnJfcG07 CiAJfQogCi0JcmV0dXJuIDA7CisJZXJyID0gaW50ZWxfZW5naW5lc19zZXR1cChndCk7CisJaWYg KGVycikKKwkJZ290byBlcnJfdm07CisKKwllcnIgPSBpbnRlbF9lbmdpbmVzX2luaXQoZ3QpOwor CWlmIChlcnIpCisJCWdvdG8gZXJyX2VuZ2luZXM7CisKKwlpbnRlbF91Y19pbml0KCZndC0+dWMp OworCisJZXJyID0gaW50ZWxfZ3RfaW5pdF9odyhndCk7CisJaWYgKGVycikKKwkJZ290byBlcnJf dWNfaW5pdDsKIAotZXJyX3NjcmF0Y2g6CisJLyogT25seSB3aGVuIHRoZSBIVyBpcyByZS1pbml0 aWFsaXNlZCwgY2FuIHdlIHJlcGxheSB0aGUgcmVxdWVzdHMgKi8KKwllcnIgPSBpbnRlbF9ndF9y ZXN1bWUoZ3QpOworCWlmIChlcnIpCisJCWdvdG8gZXJyX3VjX2luaXQ7CisKKwllcnIgPSBfX2Vu Z2luZXNfcmVjb3JkX2RlZmF1bHRzKGd0KTsKKwlpZiAoZXJyKQorCQlnb3RvIGVycl9ndDsKKwor CWVyciA9IF9fZW5naW5lc192ZXJpZnlfd29ya2Fyb3VuZHMoZ3QpOworCWlmIChlcnIpCisJCWdv dG8gZXJyX2d0OworCisJZXJyID0gaTkxNV9pbmplY3RfcHJvYmVfZXJyb3IoZ3QtPmk5MTUsIC1F SU8pOworCWlmIChlcnIpCisJCWdvdG8gZXJyX2d0OworCisJZ290byBvdXRfZnc7CitlcnJfZ3Q6 CisJX19pbnRlbF9ndF9kaXNhYmxlKGd0KTsKK2Vycl91Y19pbml0OgorCWludGVsX3VjX2Zpbmko Jmd0LT51Yyk7CitlcnJfZW5naW5lczoKKwlpbnRlbF9lbmdpbmVzX3JlbGVhc2UoZ3QpOworZXJy X3ZtOgorCWk5MTVfdm1fcHV0KGZldGNoX2FuZF96ZXJvKCZndC0+dm0pKTsKK2Vycl9wbToKKwlp bnRlbF9ndF9wbV9maW5pKGd0KTsKIAlpbnRlbF9ndF9maW5pX3NjcmF0Y2goZ3QpOworb3V0X2Z3 OgorCWludGVsX3VuY29yZV9mb3JjZXdha2VfcHV0KGd0LT51bmNvcmUsIEZPUkNFV0FLRV9BTEwp OwogCXJldHVybiBlcnI7CiB9CiAKIHZvaWQgaW50ZWxfZ3RfZHJpdmVyX3JlbW92ZShzdHJ1Y3Qg aW50ZWxfZ3QgKmd0KQogewotCUdFTV9CVUdfT04oZ3QtPmF3YWtlKTsKKwlfX2ludGVsX2d0X2Rp c2FibGUoZ3QpOworCisJaW50ZWxfdWNfZmluaSgmZ3QtPnVjKTsKKwlpbnRlbF9lbmdpbmVzX3Jl bGVhc2UoZ3QpOwogfQogCiB2b2lkIGludGVsX2d0X2RyaXZlcl91bnJlZ2lzdGVyKHN0cnVjdCBp bnRlbF9ndCAqZ3QpCkBAIC00MTAsMTAgKzYyNSw5IEBAIHZvaWQgaW50ZWxfZ3RfZHJpdmVyX3Jl bGVhc2Uoc3RydWN0IGludGVsX2d0ICpndCkKIAlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2 bTsKIAogCXZtID0gZmV0Y2hfYW5kX3plcm8oJmd0LT52bSk7Ci0JaWYgKCF2bSkgLyogRklYTUUg YmVpbmcgY2FsbGVkIHR3aWNlIG9uIGVycm9yIHBhdGhzIDooICovCi0JCXJldHVybjsKKwlpZiAo dm0pIC8qIEZJWE1FIGJlaW5nIGNhbGxlZCB0d2ljZSBvbiBlcnJvciBwYXRocyA6KCAqLworCQlp OTE1X3ZtX3B1dCh2bSk7CiAKLQlpOTE1X3ZtX3B1dCh2bSk7CiAJaW50ZWxfZ3RfcG1fZmluaShn dCk7CiAJaW50ZWxfZ3RfZmluaV9zY3JhdGNoKGd0KTsKIH0KQEAgLTQyMyw0ICs2MzcsNSBAQCB2 b2lkIGludGVsX2d0X2RyaXZlcl9sYXRlX3JlbGVhc2Uoc3RydWN0IGludGVsX2d0ICpndCkKIAlp bnRlbF91Y19kcml2ZXJfbGF0ZV9yZWxlYXNlKCZndC0+dWMpOwogCWludGVsX2d0X2ZpbmlfcmVz ZXQoZ3QpOwogCWludGVsX2d0X2ZpbmlfdGltZWxpbmVzKGd0KTsKKwlpbnRlbF9lbmdpbmVzX2Zy ZWUoZ3QpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJj LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMuYwppbmRleCBkMjU1ZTkwN2Y4 NmMuLmZjNmNiNDEzNmZmNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50 ZWxfbHJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMKQEAgLTM3 NDUsMTEgKzM3NDUsMTAgQEAgdm9pZCBpbnRlbF9leGVjbGlzdHNfc2V0X2RlZmF1bHRfc3VibWlz c2lvbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJCWVuZ2luZS0+ZmxhZ3MgfD0g STkxNV9FTkdJTkVfSEFTX1JFTEFUSVZFX01NSU87CiB9CiAKLXN0YXRpYyB2b2lkIGV4ZWNsaXN0 c19kZXN0cm95KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3N0YXRpYyB2b2lkIGV4 ZWNsaXN0c19yZWxlYXNlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKIAlpbnRl bF9lbmdpbmVfY2xlYW51cF9jb21tb24oZW5naW5lKTsKIAlscmNfZGVzdHJveV93YV9jdHgoZW5n aW5lKTsKLQlrZnJlZShlbmdpbmUpOwogfQogCiBzdGF0aWMgdm9pZApAQCAtMzc1Nyw3ICszNzU2 LDcgQEAgbG9naWNhbF9yaW5nX2RlZmF1bHRfdmZ1bmNzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSkKIHsKIAkvKiBEZWZhdWx0IHZmdW5jcyB3aGljaCBjYW4gYmUgb3ZlcnJpZGVuIGJ5 IGVhY2ggZW5naW5lLiAqLwogCi0JZW5naW5lLT5kZXN0cm95ID0gZXhlY2xpc3RzX2Rlc3Ryb3k7 CisJZW5naW5lLT5yZWxlYXNlID0gZXhlY2xpc3RzX3JlbGVhc2U7CiAJZW5naW5lLT5yZXN1bWUg PSBleGVjbGlzdHNfcmVzdW1lOwogCiAJZW5naW5lLT5yZXNldC5wcmVwYXJlID0gZXhlY2xpc3Rz X3Jlc2V0X3ByZXBhcmU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRl bF9yaW5nX3N1Ym1pc3Npb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jpbmdf c3VibWlzc2lvbi5jCmluZGV4IDZkZGZlOGE4NmRiZS4uMGU5NDIxZTUyZjdmIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yaW5nX3N1Ym1pc3Npb24uYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yaW5nX3N1Ym1pc3Npb24uYwpAQCAtMTgxNiw3 ICsxODE2LDcgQEAgc3RhdGljIHZvaWQgZ2VuNl9ic2Rfc2V0X2RlZmF1bHRfc3VibWlzc2lvbihz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJZW5naW5lLT5zdWJtaXRfcmVxdWVzdCA9 IGdlbjZfYnNkX3N1Ym1pdF9yZXF1ZXN0OwogfQogCi1zdGF0aWMgdm9pZCByaW5nX2Rlc3Ryb3ko c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQorc3RhdGljIHZvaWQgcmluZ19yZWxlYXNl KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmk5MTU7CiAKQEAgLTE4MzAsOCArMTgzMCw2IEBAIHN0 YXRpYyB2b2lkIHJpbmdfZGVzdHJveShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAK IAlpbnRlbF90aW1lbGluZV91bnBpbihlbmdpbmUtPmxlZ2FjeS50aW1lbGluZSk7CiAJaW50ZWxf dGltZWxpbmVfcHV0KGVuZ2luZS0+bGVnYWN5LnRpbWVsaW5lKTsKLQotCWtmcmVlKGVuZ2luZSk7 CiB9CiAKIHN0YXRpYyB2b2lkIHNldHVwX2lycShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUpCkBAIC0xODYyLDcgKzE4NjAsNyBAQCBzdGF0aWMgdm9pZCBzZXR1cF9jb21tb24oc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCiAJc2V0dXBfaXJxKGVuZ2luZSk7CiAKLQllbmdp bmUtPmRlc3Ryb3kgPSByaW5nX2Rlc3Ryb3k7CisJZW5naW5lLT5yZWxlYXNlID0gcmluZ19yZWxl YXNlOwogCiAJZW5naW5lLT5yZXN1bWUgPSB4Y3NfcmVzdW1lOwogCWVuZ2luZS0+cmVzZXQucHJl cGFyZSA9IHJlc2V0X3ByZXBhcmU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9pbnRlbF90aW1lbGluZV90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxf dGltZWxpbmVfdHlwZXMuaAppbmRleCA5OGQ5ZWUxNjYzNzkuLjM0ZDI4ZDc3NzFkMSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfdGltZWxpbmVfdHlwZXMuaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF90aW1lbGluZV90eXBlcy5oCkBAIC0xNCwx MCArMTQsMTAgQEAKIAogI2luY2x1ZGUgImk5MTVfYWN0aXZlX3R5cGVzLmgiCiAKLXN0cnVjdCBk cm1faTkxNV9wcml2YXRlOwogc3RydWN0IGk5MTVfdm1hOwotc3RydWN0IGludGVsX3RpbWVsaW5l X2NhY2hlbGluZTsKIHN0cnVjdCBpOTE1X3N5bmNtYXA7CitzdHJ1Y3QgaW50ZWxfZ3Q7CitzdHJ1 Y3QgaW50ZWxfdGltZWxpbmVfY2FjaGVsaW5lOwogCiBzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgewog CXU2NCBmZW5jZV9jb250ZXh0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXggODJlNGU2YmYw OGMzLi4zM2I0OGRkNDc2MzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwpAQCAtNjE3LDcgKzYx Nyw2IEBAIHN0YXRpYyBpbnQgaTkxNV9kcml2ZXJfbW1pb19wcm9iZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiAgKi8KIHN0YXRpYyB2b2lkIGk5MTVfZHJpdmVyX21taW9fcmVs ZWFzZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0JaW50ZWxfZW5naW5l c19jbGVhbnVwKCZkZXZfcHJpdi0+Z3QpOwogCWludGVsX3RlYXJkb3duX21jaGJhcihkZXZfcHJp dik7CiAJaW50ZWxfdW5jb3JlX2ZpbmlfbW1pbygmZGV2X3ByaXYtPnVuY29yZSk7CiAJcGNpX2Rl dl9wdXQoZGV2X3ByaXYtPmJyaWRnZV9kZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXgg MDQzNTBlNjFjODZjLi42NmVmNWUwYjZhZmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAt MTAzOSwxNTIgKzEwMzksNiBAQCBpOTE1X2dlbV9tYWR2aXNlX2lvY3RsKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJcmV0dXJuIGVycjsKIH0KIAotc3RhdGljIGludCBfX2lu dGVsX2VuZ2luZXNfcmVjb3JkX2RlZmF1bHRzKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCi17Ci0Jc3Ry dWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdHNbSTkxNV9OVU1fRU5HSU5FU10gPSB7fTsKLQlzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0JZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7Ci0J aW50IGVyciA9IDA7Ci0KLQkvKgotCSAqIEFzIHdlIHJlc2V0IHRoZSBncHUgZHVyaW5nIHZlcnkg ZWFybHkgc2FuaXRpc2F0aW9uLCB0aGUgY3VycmVudAotCSAqIHJlZ2lzdGVyIHN0YXRlIG9uIHRo ZSBHUFUgc2hvdWxkIHJlZmxlY3QgaXRzIGRlZmF1bHRzIHZhbHVlcy4KLQkgKiBXZSBsb2FkIGEg Y29udGV4dCBvbnRvIHRoZSBodyAod2l0aCByZXN0b3JlLWluaGliaXQpLCB0aGVuIHN3aXRjaAot CSAqIG92ZXIgdG8gYSBzZWNvbmQgY29udGV4dCB0byBzYXZlIHRoYXQgZGVmYXVsdCByZWdpc3Rl ciBzdGF0ZS4gV2UKLQkgKiBjYW4gdGhlbiBwcmltZSBldmVyeSBuZXcgY29udGV4dCB3aXRoIHRo YXQgc3RhdGUgc28gdGhleSBhbGwgc3RhcnQKLQkgKiBmcm9tIHRoZSBzYW1lIGRlZmF1bHQgSFcg dmFsdWVzLgotCSAqLwotCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QsIGlkKSB7Ci0JCXN0 cnVjdCBpbnRlbF9jb250ZXh0ICpjZTsKLQkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7Ci0KLQkJ LyogV2UgbXVzdCBiZSBhYmxlIHRvIHN3aXRjaCB0byBzb21ldGhpbmchICovCi0JCUdFTV9CVUdf T04oIWVuZ2luZS0+a2VybmVsX2NvbnRleHQpOwotCQllbmdpbmUtPnNlcmlhbCsrOyAvKiBmb3Jj ZSB0aGUga2VybmVsIGNvbnRleHQgc3dpdGNoICovCi0KLQkJY2UgPSBpbnRlbF9jb250ZXh0X2Ny ZWF0ZShlbmdpbmUpOwotCQlpZiAoSVNfRVJSKGNlKSkgewotCQkJZXJyID0gUFRSX0VSUihjZSk7 Ci0JCQlnb3RvIG91dDsKLQkJfQotCi0JCXJxID0gaW50ZWxfY29udGV4dF9jcmVhdGVfcmVxdWVz dChjZSk7Ci0JCWlmIChJU19FUlIocnEpKSB7Ci0JCQllcnIgPSBQVFJfRVJSKHJxKTsKLQkJCWlu dGVsX2NvbnRleHRfcHV0KGNlKTsKLQkJCWdvdG8gb3V0OwotCQl9Ci0KLQkJZXJyID0gaW50ZWxf ZW5naW5lX2VtaXRfY3R4X3dhKHJxKTsKLQkJaWYgKGVycikKLQkJCWdvdG8gZXJyX3JxOwotCi0J CWVyciA9IGludGVsX3JlbmRlcnN0YXRlX2VtaXQocnEpOwotCQlpZiAoZXJyKQotCQkJZ290byBl cnJfcnE7Ci0KLWVycl9ycToKLQkJcmVxdWVzdHNbaWRdID0gaTkxNV9yZXF1ZXN0X2dldChycSk7 Ci0JCWk5MTVfcmVxdWVzdF9hZGQocnEpOwotCQlpZiAoZXJyKQotCQkJZ290byBvdXQ7Ci0JfQot Ci0JLyogRmx1c2ggdGhlIGRlZmF1bHQgY29udGV4dCBpbWFnZSB0byBtZW1vcnksIGFuZCBlbmFi bGUgcG93ZXJzYXZpbmcuICovCi0JaWYgKGludGVsX2d0X3dhaXRfZm9yX2lkbGUoZ3QsIEk5MTVf R0VNX0lETEVfVElNRU9VVCkgPT0gLUVUSU1FKSB7Ci0JCWVyciA9IC1FSU87Ci0JCWdvdG8gb3V0 OwotCX0KLQotCWZvciAoaWQgPSAwOyBpZCA8IEFSUkFZX1NJWkUocmVxdWVzdHMpOyBpZCsrKSB7 Ci0JCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOwotCQlzdHJ1Y3QgaTkxNV92bWEgKnN0YXRlOwot CQl2b2lkICp2YWRkcjsKLQotCQlycSA9IHJlcXVlc3RzW2lkXTsKLQkJaWYgKCFycSkKLQkJCWNv bnRpbnVlOwotCi0JCS8qIFdlIHdhbnQgdG8gYmUgYWJsZSB0byB1bmJpbmQgdGhlIHN0YXRlIGZy b20gdGhlIEdHVFQgKi8KLQkJR0VNX0JVR19PTihpbnRlbF9jb250ZXh0X2lzX3Bpbm5lZChycS0+ Y29udGV4dCkpOwotCi0JCXN0YXRlID0gcnEtPmNvbnRleHQtPnN0YXRlOwotCQlpZiAoIXN0YXRl KQotCQkJY29udGludWU7Ci0KLQkJLyoKLQkJICogQXMgd2Ugd2lsbCBob2xkIGEgcmVmZXJlbmNl IHRvIHRoZSBsb2dpY2FsIHN0YXRlLCBpdCB3aWxsCi0JCSAqIG5vdCBiZSB0b3JuIGRvd24gd2l0 aCB0aGUgY29udGV4dCwgYW5kIGltcG9ydGFudGx5IHRoZQotCQkgKiBvYmplY3Qgd2lsbCBob2xk IG9udG8gaXRzIHZtYSAobWFraW5nIGl0IHBvc3NpYmxlIGZvciBhCi0JCSAqIHN0cmF5IEdUVCB3 cml0ZSB0byBjb3JydXB0IG91ciBkZWZhdWx0cykuIFVubWFwIHRoZSB2bWEKLQkJICogZnJvbSB0 aGUgR1RUIHRvIHByZXZlbnQgc3VjaCBhY2NpZGVudHMgYW5kIHJlY2xhaW0gdGhlCi0JCSAqIHNw YWNlLgotCQkgKi8KLQkJZXJyID0gaTkxNV92bWFfdW5iaW5kKHN0YXRlKTsKLQkJaWYgKGVycikK LQkJCWdvdG8gb3V0OwotCi0JCWk5MTVfZ2VtX29iamVjdF9sb2NrKHN0YXRlLT5vYmopOwotCQll cnIgPSBpOTE1X2dlbV9vYmplY3Rfc2V0X3RvX2NwdV9kb21haW4oc3RhdGUtPm9iaiwgZmFsc2Up OwotCQlpOTE1X2dlbV9vYmplY3RfdW5sb2NrKHN0YXRlLT5vYmopOwotCQlpZiAoZXJyKQotCQkJ Z290byBvdXQ7Ci0KLQkJaTkxNV9nZW1fb2JqZWN0X3NldF9jYWNoZV9jb2hlcmVuY3koc3RhdGUt Pm9iaiwgSTkxNV9DQUNIRV9MTEMpOwotCi0JCS8qIENoZWNrIHdlIGNhbiBhY3F1aXJlIHRoZSBp bWFnZSBvZiB0aGUgY29udGV4dCBzdGF0ZSAqLwotCQl2YWRkciA9IGk5MTVfZ2VtX29iamVjdF9w aW5fbWFwKHN0YXRlLT5vYmosIEk5MTVfTUFQX0ZPUkNFX1dCKTsKLQkJaWYgKElTX0VSUih2YWRk cikpIHsKLQkJCWVyciA9IFBUUl9FUlIodmFkZHIpOwotCQkJZ290byBvdXQ7Ci0JCX0KLQotCQly cS0+ZW5naW5lLT5kZWZhdWx0X3N0YXRlID0gaTkxNV9nZW1fb2JqZWN0X2dldChzdGF0ZS0+b2Jq KTsKLQkJaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcChzdGF0ZS0+b2JqKTsKLQl9Ci0KLW91dDoK LQkvKgotCSAqIElmIHdlIGhhdmUgdG8gYWJhbmRvbiBub3csIHdlIGV4cGVjdCB0aGUgZW5naW5l cyB0byBiZSBpZGxlCi0JICogYW5kIHJlYWR5IHRvIGJlIHRvcm4tZG93bi4gVGhlIHF1aWNrZXN0 IHdheSB3ZSBjYW4gYWNjb21wbGlzaAotCSAqIHRoaXMgaXMgYnkgZGVjbGFyaW5nIG91cnNlbHZl cyB3ZWRnZWQuCi0JICovCi0JaWYgKGVycikKLQkJaW50ZWxfZ3Rfc2V0X3dlZGdlZChndCk7Ci0K LQlmb3IgKGlkID0gMDsgaWQgPCBBUlJBWV9TSVpFKHJlcXVlc3RzKTsgaWQrKykgewotCQlzdHJ1 Y3QgaW50ZWxfY29udGV4dCAqY2U7Ci0JCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOwotCi0JCXJx ID0gcmVxdWVzdHNbaWRdOwotCQlpZiAoIXJxKQotCQkJY29udGludWU7Ci0KLQkJY2UgPSBycS0+ Y29udGV4dDsKLQkJaTkxNV9yZXF1ZXN0X3B1dChycSk7Ci0JCWludGVsX2NvbnRleHRfcHV0KGNl KTsKLQl9Ci0JcmV0dXJuIGVycjsKLX0KLQotc3RhdGljIGludCBpbnRlbF9lbmdpbmVzX3Zlcmlm eV93b3JrYXJvdW5kcyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQotewotCXN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZTsKLQllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKLQlpbnQgZXJyID0gMDsK LQotCWlmICghSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfREVCVUdfR0VNKSkKLQkJcmV0dXJu IDA7Ci0KLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndCwgaWQpIHsKLQkJaWYgKGludGVsX2Vu Z2luZV92ZXJpZnlfd29ya2Fyb3VuZHMoZW5naW5lLCAibG9hZCIpKQotCQkJZXJyID0gLUVJTzsK LQl9Ci0KLQlyZXR1cm4gZXJyOwotfQotCiBpbnQgaTkxNV9nZW1faW5pdChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJaW50IHJldDsKQEAgLTEyMDEsNDUgKzEwNTUsMTIg QEAgaW50IGk5MTVfZ2VtX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQog CWludGVsX3VjX2ZldGNoX2Zpcm13YXJlcygmZGV2X3ByaXYtPmd0LnVjKTsKIAlpbnRlbF93b3Bj bV9pbml0KCZkZXZfcHJpdi0+d29wY20pOwogCi0JLyogVGhpcyBpcyBqdXN0IGEgc2VjdXJpdHkg YmxhbmtldCB0byBwbGFjYXRlIGRyYWdvbnMuCi0JICogT24gc29tZSBzeXN0ZW1zLCB3ZSB2ZXJ5 IHNwb3JhZGljYWxseSBvYnNlcnZlIHRoYXQgdGhlIGZpcnN0IFRMQnMKLQkgKiB1c2VkIGJ5IHRo ZSBDUyBtYXkgYmUgc3RhbGUsIGRlc3BpdGUgdXMgcG9raW5nIHRoZSBUTEIgcmVzZXQuIElmCi0J ICogd2UgaG9sZCB0aGUgZm9yY2V3YWtlIGR1cmluZyBpbml0aWFsaXNhdGlvbiB0aGVzZSBwcm9i bGVtcwotCSAqIGp1c3QgbWFnaWNhbGx5IGdvIGF3YXkuCi0JICovCi0JaW50ZWxfdW5jb3JlX2Zv cmNld2FrZV9nZXQoJmRldl9wcml2LT51bmNvcmUsIEZPUkNFV0FLRV9BTEwpOwotCiAJcmV0ID0g aTkxNV9pbml0X2dndHQoZGV2X3ByaXYpOwogCWlmIChyZXQpIHsKIAkJR0VNX0JVR19PTihyZXQg PT0gLUVJTyk7CiAJCWdvdG8gZXJyX3VubG9jazsKIAl9CiAKLQlpbnRlbF9ndF9pbml0KCZkZXZf cHJpdi0+Z3QpOwotCi0JcmV0ID0gaW50ZWxfZW5naW5lc19zZXR1cCgmZGV2X3ByaXYtPmd0KTsK LQlpZiAocmV0KSB7Ci0JCUdFTV9CVUdfT04ocmV0ID09IC1FSU8pOwotCQlnb3RvIGVycl9ndF9l YXJseTsKLQl9Ci0KLQlyZXQgPSBpbnRlbF9lbmdpbmVzX2luaXQoJmRldl9wcml2LT5ndCk7Ci0J aWYgKHJldCkgewotCQlHRU1fQlVHX09OKHJldCA9PSAtRUlPKTsKLQkJZ290byBlcnJfZW5naW5l czsKLQl9Ci0KLQlpbnRlbF91Y19pbml0KCZkZXZfcHJpdi0+Z3QudWMpOwotCi0JcmV0ID0gaW50 ZWxfZ3RfaW5pdF9odygmZGV2X3ByaXYtPmd0KTsKLQlpZiAocmV0KQotCQlnb3RvIGVycl91Y19p bml0OwotCi0JLyogT25seSB3aGVuIHRoZSBIVyBpcyByZS1pbml0aWFsaXNlZCwgY2FuIHdlIHJl cGxheSB0aGUgcmVxdWVzdHMgKi8KLQlyZXQgPSBpbnRlbF9ndF9yZXN1bWUoJmRldl9wcml2LT5n dCk7Ci0JaWYgKHJldCkKLQkJZ290byBlcnJfaW5pdF9odzsKLQogCS8qCiAJICogRGVzcGl0ZSBp dHMgbmFtZSBpbnRlbF9pbml0X2Nsb2NrX2dhdGluZyBhcHBsaWVzIGJvdGggZGlzcGxheQogCSAq IGNsb2NrIGdhdGluZyB3b3JrYXJvdW5kczsgR1QgbW1pbyB3b3JrYXJvdW5kcyBhbmQgdGhlIG9j Y2FzaW9uYWwKQEAgLTEyNTEsMjMgKzEwNzIsOSBAQCBpbnQgaTkxNV9nZW1faW5pdChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJICovCiAJaW50ZWxfaW5pdF9jbG9ja19nYXRp bmcoZGV2X3ByaXYpOwogCi0JcmV0ID0gaW50ZWxfZW5naW5lc192ZXJpZnlfd29ya2Fyb3VuZHMo JmRldl9wcml2LT5ndCk7Ci0JaWYgKHJldCkKLQkJZ290byBlcnJfZ3RfbGF0ZTsKLQotCXJldCA9 IF9faW50ZWxfZW5naW5lc19yZWNvcmRfZGVmYXVsdHMoJmRldl9wcml2LT5ndCk7Ci0JaWYgKHJl dCkKLQkJZ290byBlcnJfZ3RfbGF0ZTsKLQotCXJldCA9IGk5MTVfaW5qZWN0X3Byb2JlX2Vycm9y KGRldl9wcml2LCAtRU5PREVWKTsKKwlyZXQgPSBpbnRlbF9ndF9pbml0KCZkZXZfcHJpdi0+Z3Qp OwogCWlmIChyZXQpCi0JCWdvdG8gZXJyX2d0X2xhdGU7Ci0KLQlyZXQgPSBpOTE1X2luamVjdF9w cm9iZV9lcnJvcihkZXZfcHJpdiwgLUVJTyk7Ci0JaWYgKHJldCkKLQkJZ290byBlcnJfZ3RfbGF0 ZTsKLQotCWludGVsX3VuY29yZV9mb3JjZXdha2VfcHV0KCZkZXZfcHJpdi0+dW5jb3JlLCBGT1JD RVdBS0VfQUxMKTsKKwkJZ290byBlcnJfdW5sb2NrOwogCiAJcmV0dXJuIDA7CiAKQEAgLTEyNzcs MjQgKzEwODQsOCBAQCBpbnQgaTkxNV9nZW1faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCiAJICogSFcgYXMgaXJyZXZpc2libHkgd2VkZ2VkLCBidXQga2VlcCBlbm91Z2gg c3RhdGUgYXJvdW5kIHRoYXQgdGhlCiAJICogZHJpdmVyIGRvZXNuJ3QgZXhwbG9kZSBkdXJpbmcg cnVudGltZS4KIAkgKi8KLWVycl9ndF9sYXRlOgotCWludGVsX2d0X3NldF93ZWRnZWRfb25faW5p dCgmZGV2X3ByaXYtPmd0KTsKLQlpOTE1X2dlbV9zdXNwZW5kKGRldl9wcml2KTsKLQlpOTE1X2dl bV9zdXNwZW5kX2xhdGUoZGV2X3ByaXYpOwotCi0JaTkxNV9nZW1fZHJhaW5fd29ya3F1ZXVlKGRl dl9wcml2KTsKLWVycl9pbml0X2h3OgotCWludGVsX3VjX2ZpbmlfaHcoJmRldl9wcml2LT5ndC51 Yyk7Ci1lcnJfdWNfaW5pdDoKLQlpZiAocmV0ICE9IC1FSU8pCi0JCWludGVsX3VjX2ZpbmkoJmRl dl9wcml2LT5ndC51Yyk7Ci1lcnJfZW5naW5lczoKLQlpZiAocmV0ICE9IC1FSU8pCi0JCWludGVs X2VuZ2luZXNfY2xlYW51cCgmZGV2X3ByaXYtPmd0KTsKLWVycl9ndF9lYXJseToKLQlpbnRlbF9n dF9kcml2ZXJfcmVsZWFzZSgmZGV2X3ByaXYtPmd0KTsKIGVycl91bmxvY2s6Ci0JaW50ZWxfdW5j b3JlX2ZvcmNld2FrZV9wdXQoJmRldl9wcml2LT51bmNvcmUsIEZPUkNFV0FLRV9BTEwpOworCWk5 MTVfZ2VtX2RyYWluX3dvcmtxdWV1ZShkZXZfcHJpdik7CiAKIAlpZiAocmV0ICE9IC1FSU8pIHsK IAkJaW50ZWxfdWNfY2xlYW51cF9maXJtd2FyZXMoJmRldl9wcml2LT5ndC51Yyk7CkBAIC0xMzQy LDE5ICsxMTMzLDE4IEBAIHZvaWQgaTkxNV9nZW1fZHJpdmVyX3JlbW92ZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIAlpOTE1X2dlbV9zdXNwZW5kX2xhdGUoZGV2X3ByaXYp OwogCWludGVsX2d0X2RyaXZlcl9yZW1vdmUoJmRldl9wcml2LT5ndCk7CisJZGV2X3ByaXYtPnVh YmlfZW5naW5lcyA9IFJCX1JPT1Q7CiAKIAkvKiBGbHVzaCBhbnkgb3V0c3RhbmRpbmcgdW5waW5f d29yay4gKi8KIAlpOTE1X2dlbV9kcmFpbl93b3JrcXVldWUoZGV2X3ByaXYpOwogCiAJaW50ZWxf dWNfZmluaV9odygmZGV2X3ByaXYtPmd0LnVjKTsKLQlpbnRlbF91Y19maW5pKCZkZXZfcHJpdi0+ Z3QudWMpOwogCiAJaTkxNV9nZW1fZHJhaW5fZnJlZWRfb2JqZWN0cyhkZXZfcHJpdik7CiB9CiAK IHZvaWQgaTkxNV9nZW1fZHJpdmVyX3JlbGVhc2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQogewotCWludGVsX2VuZ2luZXNfY2xlYW51cCgmZGV2X3ByaXYtPmd0KTsKIAlpbnRl bF9ndF9kcml2ZXJfcmVsZWFzZSgmZGV2X3ByaXYtPmd0KTsKIAogCWludGVsX3dhX2xpc3RfZnJl ZSgmZGV2X3ByaXYtPmd0X3dhX2xpc3QpOwotLSAKMi4yNC4wCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 255D9C5DF61 for ; Thu, 7 Nov 2019 08:13:16 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id EF6772077C for ; Thu, 7 Nov 2019 08:13:15 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EF6772077C Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=chris-wilson.co.uk Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 8B2DA6EEC5; Thu, 7 Nov 2019 08:13:10 +0000 (UTC) Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 492C76EEC5 for ; Thu, 7 Nov 2019 08:13:07 +0000 (UTC) X-Default-Received-SPF: pass (skip=forwardok (res=PASS)) x-ip-name=78.156.65.138; Received: from haswell.alporthouse.com (unverified [78.156.65.138]) by fireflyinternet.com (Firefly Internet (M1)) with ESMTP id 19110675-1500050 for multiple; Thu, 07 Nov 2019 08:12:56 +0000 From: Chris Wilson To: intel-gfx@lists.freedesktop.org Date: Thu, 7 Nov 2019 08:12:42 +0000 Message-Id: <20191107081252.10542-18-chris@chris-wilson.co.uk> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20191107081252.10542-1-chris@chris-wilson.co.uk> References: <20191107081252.10542-1-chris@chris-wilson.co.uk> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 18/28] drm/i915/gt: Pull GT initialisation under intel_gt_init() X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191107081242.aEoN9O7qdBkgbqt9YuJYEBNk3zm2_jr1P9QdGFpAT_c@z> QmVnaW4gcHVsbGluZyB0aGUgR1Qgc2V0dXAgdW5kZXJuZWF0aCBhIHNpbmdsZSBHVCB1bWJyZWxs YTsgbGV0IGludGVsX2d0CnRha2Ugb3duZXJzaGlwIG9mIGl0cyBlbmdpbmVzISBBcyBoaW50ZWQs IHRoZSBjb21wbGljYXRpb24gaXMgdGhlCmxpZmV0aW1lIG9mIHRoZSBwcm9iZWQgZW5naW5lIHZl cnN1cyB0aGUgYWN0aXZlIGxpZmV0aW1lIG9mIHRoZSBHVApiYWNrZW5kcy4gV2UgbmVlZCB0byBk ZXRlY3QgdGhlIGVuZ2luZSBsYXlvdXQgZWFybHkgYW5kIGtlZXAgaXQgdW50aWwKdGhlIGVuZCBz byB0aGF0IHdlIGNhbiBzYW5pdGl6ZSBzdGF0ZSBvbiB0YWtlb3ZlciBhbmQgcmVsZWFzZS4KClNp Z25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfb3ZlcmxheS5jICB8ICAgNiArLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lLmggICAgICAgIHwgICA0ICstCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYyAgICAgfCAgNDIgKystLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3R5cGVzLmggIHwgICAyICstCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndC5jICAgICAgICAgICAgfCAyMzEgKysrKysr KysrKysrKysrKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMuYyAgICAgICAg ICAgfCAgIDUgKy0KIC4uLi9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmluZ19zdWJtaXNzaW9uLmMg ICB8ICAgNiArLQogLi4uL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF90aW1lbGluZV90eXBlcy5oICAg IHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgICAgICAgICAg fCAgIDEgLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICAgICAgIHwg MjE4ICstLS0tLS0tLS0tLS0tLS0tCiAxMCBmaWxlcyBjaGFuZ2VkLCAyNjcgaW5zZXJ0aW9ucygr KSwgMjUyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfb3ZlcmxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9vdmVybGF5LmMKaW5kZXggOGNmYjc4NWU3NjFjLi45NzMwMjZmMGM3MTcgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfb3ZlcmxheS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfb3ZlcmxheS5jCkBAIC0xMzI2LDEyICsxMzI2 LDE0IEBAIHN0YXRpYyBpbnQgZ2V0X3JlZ2lzdGVycyhzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3Zl cmxheSwgYm9vbCB1c2VfcGh5cykKIHZvaWQgaW50ZWxfb3ZlcmxheV9zZXR1cChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJs YXk7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCWludCByZXQ7CiAKIAlpZiAo IUhBU19PVkVSTEFZKGRldl9wcml2KSkKIAkJcmV0dXJuOwogCi0JaWYgKCFIQVNfRU5HSU5FKGRl dl9wcml2LCBSQ1MwKSkKKwllbmdpbmUgPSBkZXZfcHJpdi0+ZW5naW5lW1JDUzBdOworCWlmICgh ZW5naW5lIHx8ICFlbmdpbmUtPmtlcm5lbF9jb250ZXh0KQogCQlyZXR1cm47CiAKIAlvdmVybGF5 ID0ga3phbGxvYyhzaXplb2YoKm92ZXJsYXkpLCBHRlBfS0VSTkVMKTsKQEAgLTEzMzksNyArMTM0 MSw3IEBAIHZvaWQgaW50ZWxfb3ZlcmxheV9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCiAJCXJldHVybjsKIAogCW92ZXJsYXktPmk5MTUgPSBkZXZfcHJpdjsKLQlvdmVy bGF5LT5jb250ZXh0ID0gZGV2X3ByaXYtPmVuZ2luZVtSQ1MwXS0+a2VybmVsX2NvbnRleHQ7CisJ b3ZlcmxheS0+Y29udGV4dCA9IGVuZ2luZS0+a2VybmVsX2NvbnRleHQ7CiAJR0VNX0JVR19PTigh b3ZlcmxheS0+Y29udGV4dCk7CiAKIAlvdmVybGF5LT5jb2xvcl9rZXkgPSAweDAxMDFmZTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZS5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lLmgKaW5kZXggYmMzYjcyYmZhOWUzLi4xMTRj NDJkMzU3NzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2lu ZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZS5oCkBAIC0xODEs NyArMTgxLDkgQEAgdm9pZCBpbnRlbF9lbmdpbmVfY2xlYW51cChzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpOwogaW50IGludGVsX2VuZ2luZXNfaW5pdF9tbWlvKHN0cnVjdCBpbnRlbF9n dCAqZ3QpOwogaW50IGludGVsX2VuZ2luZXNfc2V0dXAoc3RydWN0IGludGVsX2d0ICpndCk7CiBp bnQgaW50ZWxfZW5naW5lc19pbml0KHN0cnVjdCBpbnRlbF9ndCAqZ3QpOwotdm9pZCBpbnRlbF9l bmdpbmVzX2NsZWFudXAoc3RydWN0IGludGVsX2d0ICpndCk7CisKK3ZvaWQgaW50ZWxfZW5naW5l c19yZWxlYXNlKHN0cnVjdCBpbnRlbF9ndCAqZ3QpOwordm9pZCBpbnRlbF9lbmdpbmVzX2ZyZWUo c3RydWN0IGludGVsX2d0ICpndCk7CiAKIGludCBpbnRlbF9lbmdpbmVfaW5pdF9jb21tb24oc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKIHZvaWQgaW50ZWxfZW5naW5lX2NsZWFudXBf Y29tbW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L2ludGVsX2VuZ2luZV9jcy5jCmluZGV4IDVlNDAwNDQ0NzhmZi4uZmYzMTM4N2I3NTUz IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYwpAQCAtMzE4LDEy ICszMTgsNiBAQCBzdGF0aWMgaW50IGludGVsX2VuZ2luZV9zZXR1cChzdHJ1Y3QgaW50ZWxfZ3Qg Kmd0LCBlbnVtIGludGVsX2VuZ2luZV9pZCBpZCkKIAllbmdpbmUtPnByb3BzLnRpbWVzbGljZV9k dXJhdGlvbl9tcyA9CiAJCUNPTkZJR19EUk1fSTkxNV9USU1FU0xJQ0VfRFVSQVRJT047CiAKLQkv KgotCSAqIFRvIGJlIG92ZXJyaWRkZW4gYnkgdGhlIGJhY2tlbmQgb24gc2V0dXAuIEhvd2V2ZXIg dG8gZmFjaWxpdGF0ZQotCSAqIGNsZWFudXAgb24gZXJyb3IgZHVyaW5nIHNldHVwLCB3ZSBhbHdh eXMgcHJvdmlkZSB0aGUgZGVzdHJveSB2ZnVuYy4KLQkgKi8KLQllbmdpbmUtPmRlc3Ryb3kgPSAo dHlwZW9mKGVuZ2luZS0+ZGVzdHJveSkpa2ZyZWU7Ci0KIAllbmdpbmUtPmNvbnRleHRfc2l6ZSA9 IGludGVsX2VuZ2luZV9jb250ZXh0X3NpemUoZ3QtPmk5MTUsCiAJCQkJCQkJIGVuZ2luZS0+Y2xh c3MpOwogCWlmIChXQVJOX09OKGVuZ2luZS0+Y29udGV4dF9zaXplID4gQklUKDIwKSkpCkBAIC0z ODksMjEgKzM4MywzOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9zZXR1cF9lbmdpbmVfY2FwYWJpbGl0 aWVzKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiB9CiAKIC8qKgotICogaW50ZWxfZW5naW5lc19jbGVh bnVwKCkgLSBmcmVlIHRoZSByZXNvdXJjZXMgYWxsb2NhdGVkIGZvciBDb21tYW5kIFN0cmVhbWVy cworICogaW50ZWxfZW5naW5lc19yZWxlYXNlKCkgLSBmcmVlIHRoZSByZXNvdXJjZXMgYWxsb2Nh dGVkIGZvciBDb21tYW5kIFN0cmVhbWVycwogICogQGd0OiBwb2ludGVyIHRvIHN0cnVjdCBpbnRl bF9ndAogICovCi12b2lkIGludGVsX2VuZ2luZXNfY2xlYW51cChzdHJ1Y3QgaW50ZWxfZ3QgKmd0 KQordm9pZCBpbnRlbF9lbmdpbmVzX3JlbGVhc2Uoc3RydWN0IGludGVsX2d0ICpndCkKIHsKIAlz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7 CiAKKwkvKiBEZWNvdXBsZSB0aGUgYmFja2VuZDsgYnV0IGtlZXAgdGhlIGxheW91dCBmb3IgbGF0 ZSBHUFUgcmVzZXRzICovCiAJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QsIGlkKSB7Ci0JCWVu Z2luZS0+ZGVzdHJveShlbmdpbmUpOwotCQlndC0+ZW5naW5lW2lkXSA9IE5VTEw7CisJCWlmICgh ZW5naW5lLT5yZWxlYXNlKQorCQkJY29udGludWU7CisKKwkJZW5naW5lLT5yZWxlYXNlKGVuZ2lu ZSk7CisJCWVuZ2luZS0+cmVsZWFzZSA9IE5VTEw7CisKKwkJbWVtc2V0KCZlbmdpbmUtPnJlc2V0 LCAwLCBzaXplb2YoZW5naW5lLT5yZXNldCkpOworCiAJCWd0LT5pOTE1LT5lbmdpbmVbaWRdID0g TlVMTDsKIAl9CiB9CiAKK3ZvaWQgaW50ZWxfZW5naW5lc19mcmVlKHN0cnVjdCBpbnRlbF9ndCAq Z3QpCit7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCWVudW0gaW50ZWxfZW5n aW5lX2lkIGlkOworCisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QsIGlkKSB7CisJCWtmcmVl KGVuZ2luZSk7CisJCWd0LT5lbmdpbmVbaWRdID0gTlVMTDsKKwl9Cit9CisKIC8qKgogICogaW50 ZWxfZW5naW5lc19pbml0X21taW8oKSAtIGFsbG9jYXRlIGFuZCBwcmVwYXJlIHRoZSBFbmdpbmUg Q29tbWFuZCBTdHJlYW1lcnMKICAqIEBndDogcG9pbnRlciB0byBzdHJ1Y3QgaW50ZWxfZ3QKQEAg LTQ1NCw3ICs0NjYsNyBAQCBpbnQgaW50ZWxfZW5naW5lc19pbml0X21taW8oc3RydWN0IGludGVs X2d0ICpndCkKIAlyZXR1cm4gMDsKIAogY2xlYW51cDoKLQlpbnRlbF9lbmdpbmVzX2NsZWFudXAo Z3QpOworCWludGVsX2VuZ2luZXNfZnJlZShndCk7CiAJcmV0dXJuIGVycjsKIH0KIApAQCAtNDg3 LDcgKzQ5OSw3IEBAIGludCBpbnRlbF9lbmdpbmVzX2luaXQoc3RydWN0IGludGVsX2d0ICpndCkK IAlyZXR1cm4gMDsKIAogY2xlYW51cDoKLQlpbnRlbF9lbmdpbmVzX2NsZWFudXAoZ3QpOworCWlu dGVsX2VuZ2luZXNfcmVsZWFzZShndCk7CiAJcmV0dXJuIGVycjsKIH0KIApAQCAtNjYxLDE2ICs2 NzMsMTMgQEAgaW50IGludGVsX2VuZ2luZXNfc2V0dXAoc3RydWN0IGludGVsX2d0ICpndCkKIAkJ aWYgKGVycikKIAkJCWdvdG8gY2xlYW51cDsKIAotCQkvKiBXZSBleHBlY3QgdGhlIGJhY2tlbmQg dG8gdGFrZSBjb250cm9sIG92ZXIgaXRzIHN0YXRlICovCi0JCUdFTV9CVUdfT04oZW5naW5lLT5k ZXN0cm95ID09ICh0eXBlb2YoZW5naW5lLT5kZXN0cm95KSlrZnJlZSk7Ci0KIAkJR0VNX0JVR19P TighZW5naW5lLT5jb3BzKTsKIAl9CiAKIAlyZXR1cm4gMDsKIAogY2xlYW51cDoKLQlpbnRlbF9l bmdpbmVzX2NsZWFudXAoZ3QpOworCWludGVsX2VuZ2luZXNfcmVsZWFzZShndCk7CiAJcmV0dXJu IGVycjsKIH0KIApAQCAtODI5LDYgKzgzOCw3IEBAIGludCBpbnRlbF9lbmdpbmVfaW5pdF9jb21t b24oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogdm9pZCBpbnRlbF9lbmdpbmVfY2xl YW51cF9jb21tb24oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogCUdFTV9CVUdf T04oIWxpc3RfZW1wdHkoJmVuZ2luZS0+YWN0aXZlLnJlcXVlc3RzKSk7CisJdGFza2xldF9raWxs KCZlbmdpbmUtPmV4ZWNsaXN0cy50YXNrbGV0KTsgLyogZmx1c2ggdGhlIGNhbGxiYWNrICovCiAK IAljbGVhbnVwX3N0YXR1c19wYWdlKGVuZ2luZSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvaW50ZWxfZW5naW5lX3R5cGVzLmgKaW5kZXggYzVkMTA0N2E0YmM1Li4wODVkMGZkN2RiMjQg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV90eXBlcy5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV90eXBlcy5oCkBAIC00 NDcsNyArNDQ3LDcgQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7CiAJICovCiAJdm9pZAkJKCpj YW5jZWxfcmVxdWVzdHMpKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CiAKLQl2b2lk CQkoKmRlc3Ryb3kpKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CisJdm9pZAkJKCpy ZWxlYXNlKShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwogCiAJc3RydWN0IGludGVs X2VuZ2luZV9leGVjbGlzdHMgZXhlY2xpc3RzOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9pbnRlbF9ndC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3Qu YwppbmRleCAwMjQ4NDg2MGNhYTguLjc3ZTBjNDViZjEzZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9p bnRlbF9ndC5jCkBAIC00LDExICs0LDEzIEBACiAgKi8KIAogI2luY2x1ZGUgImk5MTVfZHJ2Lmgi CisjaW5jbHVkZSAiaW50ZWxfY29udGV4dC5oIgogI2luY2x1ZGUgImludGVsX2d0LmgiCiAjaW5j bHVkZSAiaW50ZWxfZ3RfcG0uaCIKICNpbmNsdWRlICJpbnRlbF9ndF9yZXF1ZXN0cy5oIgogI2lu Y2x1ZGUgImludGVsX21vY3MuaCIKICNpbmNsdWRlICJpbnRlbF9yYzYuaCIKKyNpbmNsdWRlICJp bnRlbF9yZW5kZXJzdGF0ZS5oIgogI2luY2x1ZGUgImludGVsX3Jwcy5oIgogI2luY2x1ZGUgImlu dGVsX3VuY29yZS5oIgogI2luY2x1ZGUgImludGVsX3BtLmgiCkBAIC0zNzIsMzIgKzM3NCwyNDUg QEAgc3RhdGljIHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKmtlcm5lbF92bShzdHJ1Y3QgaW50 ZWxfZ3QgKmd0KQogCQlyZXR1cm4gaTkxNV92bV9nZXQoJmd0LT5nZ3R0LT52bSk7CiB9CiAKK3N0 YXRpYyBpbnQgX19lbmdpbmVzX3JlY29yZF9kZWZhdWx0cyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQor eworCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3RzW0k5MTVfTlVNX0VOR0lORVNdID0ge307 CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCWVudW0gaW50ZWxfZW5naW5lX2lk IGlkOworCWludCBlcnIgPSAwOworCisJLyoKKwkgKiBBcyB3ZSByZXNldCB0aGUgZ3B1IGR1cmlu ZyB2ZXJ5IGVhcmx5IHNhbml0aXNhdGlvbiwgdGhlIGN1cnJlbnQKKwkgKiByZWdpc3RlciBzdGF0 ZSBvbiB0aGUgR1BVIHNob3VsZCByZWZsZWN0IGl0cyBkZWZhdWx0cyB2YWx1ZXMuCisJICogV2Ug bG9hZCBhIGNvbnRleHQgb250byB0aGUgaHcgKHdpdGggcmVzdG9yZS1pbmhpYml0KSwgdGhlbiBz d2l0Y2gKKwkgKiBvdmVyIHRvIGEgc2Vjb25kIGNvbnRleHQgdG8gc2F2ZSB0aGF0IGRlZmF1bHQg cmVnaXN0ZXIgc3RhdGUuIFdlCisJICogY2FuIHRoZW4gcHJpbWUgZXZlcnkgbmV3IGNvbnRleHQg d2l0aCB0aGF0IHN0YXRlIHNvIHRoZXkgYWxsIHN0YXJ0CisJICogZnJvbSB0aGUgc2FtZSBkZWZh dWx0IEhXIHZhbHVlcy4KKwkgKi8KKworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LCBpZCkg eworCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2U7CisJCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJx OworCisJCS8qIFdlIG11c3QgYmUgYWJsZSB0byBzd2l0Y2ggdG8gc29tZXRoaW5nISAqLworCQlH RU1fQlVHX09OKCFlbmdpbmUtPmtlcm5lbF9jb250ZXh0KTsKKwkJZW5naW5lLT5zZXJpYWwrKzsg LyogZm9yY2UgdGhlIGtlcm5lbCBjb250ZXh0IHN3aXRjaCAqLworCisJCWNlID0gaW50ZWxfY29u dGV4dF9jcmVhdGUoZW5naW5lKTsKKwkJaWYgKElTX0VSUihjZSkpIHsKKwkJCWVyciA9IFBUUl9F UlIoY2UpOworCQkJZ290byBvdXQ7CisJCX0KKworCQlycSA9IGludGVsX2NvbnRleHRfY3JlYXRl X3JlcXVlc3QoY2UpOworCQlpZiAoSVNfRVJSKHJxKSkgeworCQkJZXJyID0gUFRSX0VSUihycSk7 CisJCQlpbnRlbF9jb250ZXh0X3B1dChjZSk7CisJCQlnb3RvIG91dDsKKwkJfQorCisJCWVyciA9 IGludGVsX2VuZ2luZV9lbWl0X2N0eF93YShycSk7CisJCWlmIChlcnIpCisJCQlnb3RvIGVycl9y cTsKKworCQllcnIgPSBpbnRlbF9yZW5kZXJzdGF0ZV9lbWl0KHJxKTsKKwkJaWYgKGVycikKKwkJ CWdvdG8gZXJyX3JxOworCitlcnJfcnE6CisJCXJlcXVlc3RzW2lkXSA9IGk5MTVfcmVxdWVzdF9n ZXQocnEpOworCQlpOTE1X3JlcXVlc3RfYWRkKHJxKTsKKwkJaWYgKGVycikKKwkJCWdvdG8gb3V0 OworCX0KKworCS8qIEZsdXNoIHRoZSBkZWZhdWx0IGNvbnRleHQgaW1hZ2UgdG8gbWVtb3J5LCBh bmQgZW5hYmxlIHBvd2Vyc2F2aW5nLiAqLworCWlmIChpbnRlbF9ndF93YWl0X2Zvcl9pZGxlKGd0 LCBJOTE1X0dFTV9JRExFX1RJTUVPVVQpID09IC1FVElNRSkgeworCQllcnIgPSAtRUlPOworCQln b3RvIG91dDsKKwl9CisKKwlmb3IgKGlkID0gMDsgaWQgPCBBUlJBWV9TSVpFKHJlcXVlc3RzKTsg aWQrKykgeworCQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKKwkJc3RydWN0IGk5MTVfdm1hICpz dGF0ZTsKKwkJdm9pZCAqdmFkZHI7CisKKwkJcnEgPSByZXF1ZXN0c1tpZF07CisJCWlmICghcnEp CisJCQljb250aW51ZTsKKworCQkvKiBXZSB3YW50IHRvIGJlIGFibGUgdG8gdW5iaW5kIHRoZSBz dGF0ZSBmcm9tIHRoZSBHR1RUICovCisJCUdFTV9CVUdfT04oaW50ZWxfY29udGV4dF9pc19waW5u ZWQocnEtPmNvbnRleHQpKTsKKworCQlzdGF0ZSA9IHJxLT5jb250ZXh0LT5zdGF0ZTsKKwkJaWYg KCFzdGF0ZSkKKwkJCWNvbnRpbnVlOworCisJCS8qCisJCSAqIEFzIHdlIHdpbGwgaG9sZCBhIHJl ZmVyZW5jZSB0byB0aGUgbG9naWNhbCBzdGF0ZSwgaXQgd2lsbAorCQkgKiBub3QgYmUgdG9ybiBk b3duIHdpdGggdGhlIGNvbnRleHQsIGFuZCBpbXBvcnRhbnRseSB0aGUKKwkJICogb2JqZWN0IHdp bGwgaG9sZCBvbnRvIGl0cyB2bWEgKG1ha2luZyBpdCBwb3NzaWJsZSBmb3IgYQorCQkgKiBzdHJh eSBHVFQgd3JpdGUgdG8gY29ycnVwdCBvdXIgZGVmYXVsdHMpLiBVbm1hcCB0aGUgdm1hCisJCSAq IGZyb20gdGhlIEdUVCB0byBwcmV2ZW50IHN1Y2ggYWNjaWRlbnRzIGFuZCByZWNsYWltIHRoZQor CQkgKiBzcGFjZS4KKwkJICovCisJCWVyciA9IGk5MTVfdm1hX3VuYmluZChzdGF0ZSk7CisJCWlm IChlcnIpCisJCQlnb3RvIG91dDsKKworCQlpOTE1X2dlbV9vYmplY3RfbG9jayhzdGF0ZS0+b2Jq KTsKKwkJZXJyID0gaTkxNV9nZW1fb2JqZWN0X3NldF90b19jcHVfZG9tYWluKHN0YXRlLT5vYmos IGZhbHNlKTsKKwkJaTkxNV9nZW1fb2JqZWN0X3VubG9jayhzdGF0ZS0+b2JqKTsKKwkJaWYgKGVy cikKKwkJCWdvdG8gb3V0OworCisJCWk5MTVfZ2VtX29iamVjdF9zZXRfY2FjaGVfY29oZXJlbmN5 KHN0YXRlLT5vYmosIEk5MTVfQ0FDSEVfTExDKTsKKworCQkvKiBDaGVjayB3ZSBjYW4gYWNxdWly ZSB0aGUgaW1hZ2Ugb2YgdGhlIGNvbnRleHQgc3RhdGUgKi8KKwkJdmFkZHIgPSBpOTE1X2dlbV9v YmplY3RfcGluX21hcChzdGF0ZS0+b2JqLCBJOTE1X01BUF9GT1JDRV9XQik7CisJCWlmIChJU19F UlIodmFkZHIpKSB7CisJCQllcnIgPSBQVFJfRVJSKHZhZGRyKTsKKwkJCWdvdG8gb3V0OworCQl9 CisKKwkJcnEtPmVuZ2luZS0+ZGVmYXVsdF9zdGF0ZSA9IGk5MTVfZ2VtX29iamVjdF9nZXQoc3Rh dGUtPm9iaik7CisJCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAoc3RhdGUtPm9iaik7CisJfQor CitvdXQ6CisJLyoKKwkgKiBJZiB3ZSBoYXZlIHRvIGFiYW5kb24gbm93LCB3ZSBleHBlY3QgdGhl IGVuZ2luZXMgdG8gYmUgaWRsZQorCSAqIGFuZCByZWFkeSB0byBiZSB0b3JuLWRvd24uIFRoZSBx dWlja2VzdCB3YXkgd2UgY2FuIGFjY29tcGxpc2gKKwkgKiB0aGlzIGlzIGJ5IGRlY2xhcmluZyBv dXJzZWx2ZXMgd2VkZ2VkLgorCSAqLworCWlmIChlcnIpCisJCWludGVsX2d0X3NldF93ZWRnZWQo Z3QpOworCisJZm9yIChpZCA9IDA7IGlkIDwgQVJSQVlfU0laRShyZXF1ZXN0cyk7IGlkKyspIHsK KwkJc3RydWN0IGludGVsX2NvbnRleHQgKmNlOworCQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsK KworCQlycSA9IHJlcXVlc3RzW2lkXTsKKwkJaWYgKCFycSkKKwkJCWNvbnRpbnVlOworCisJCWNl ID0gcnEtPmNvbnRleHQ7CisJCWk5MTVfcmVxdWVzdF9wdXQocnEpOworCQlpbnRlbF9jb250ZXh0 X3B1dChjZSk7CisJfQorCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQgX19lbmdpbmVzX3Zl cmlmeV93b3JrYXJvdW5kcyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQoreworCXN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZTsKKwllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKKwlpbnQgZXJyID0g MDsKKworCWlmICghSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfREVCVUdfR0VNKSkKKwkJcmV0 dXJuIDA7CisKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndCwgaWQpIHsKKwkJaWYgKGludGVs X2VuZ2luZV92ZXJpZnlfd29ya2Fyb3VuZHMoZW5naW5lLCAibG9hZCIpKQorCQkJZXJyID0gLUVJ TzsKKwl9CisKKwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMgdm9pZCBfX2ludGVsX2d0X2Rpc2Fi bGUoc3RydWN0IGludGVsX2d0ICpndCkKK3sKKwlpbnRlbF9ndF9zZXRfd2VkZ2VkX29uX2luaXQo Z3QpOworCisJaW50ZWxfZ3Rfc3VzcGVuZF9wcmVwYXJlKGd0KTsKKwlpbnRlbF9ndF9zdXNwZW5k X2xhdGUoZ3QpOworCisJR0VNX0JVR19PTihpbnRlbF9ndF9wbV9pc19hd2FrZShndCkpOworfQor CiBpbnQgaW50ZWxfZ3RfaW5pdChzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQogewogCWludCBlcnI7CiAK LQllcnIgPSBpbnRlbF9ndF9pbml0X3NjcmF0Y2goZ3QsIElTX0dFTihndC0+aTkxNSwgMikgPyBT Wl8yNTZLIDogU1pfNEspOworCWVyciA9IGk5MTVfaW5qZWN0X3Byb2JlX2Vycm9yKGd0LT5pOTE1 LCAtRU5PREVWKTsKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwogCisJLyoKKwkgKiBUaGlzIGlz IGp1c3QgYSBzZWN1cml0eSBibGFua2V0IHRvIHBsYWNhdGUgZHJhZ29ucy4KKwkgKiBPbiBzb21l IHN5c3RlbXMsIHdlIHZlcnkgc3BvcmFkaWNhbGx5IG9ic2VydmUgdGhhdCB0aGUgZmlyc3QgVExC cworCSAqIHVzZWQgYnkgdGhlIENTIG1heSBiZSBzdGFsZSwgZGVzcGl0ZSB1cyBwb2tpbmcgdGhl IFRMQiByZXNldC4gSWYKKwkgKiB3ZSBob2xkIHRoZSBmb3JjZXdha2UgZHVyaW5nIGluaXRpYWxp c2F0aW9uIHRoZXNlIHByb2JsZW1zCisJICoganVzdCBtYWdpY2FsbHkgZ28gYXdheS4KKwkgKi8K KwlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2dldChndC0+dW5jb3JlLCBGT1JDRVdBS0VfQUxMKTsK KworCWVyciA9IGludGVsX2d0X2luaXRfc2NyYXRjaChndCwgSVNfR0VOKGd0LT5pOTE1LCAyKSA/ IFNaXzI1NksgOiBTWl80Syk7CisJaWYgKGVycikKKwkJZ290byBvdXRfZnc7CisKIAlpbnRlbF9n dF9wbV9pbml0KGd0KTsKIAogCWd0LT52bSA9IGtlcm5lbF92bShndCk7CiAJaWYgKCFndC0+dm0p IHsKIAkJZXJyID0gLUVOT01FTTsKLQkJZ290byBlcnJfc2NyYXRjaDsKKwkJZ290byBlcnJfcG07 CiAJfQogCi0JcmV0dXJuIDA7CisJZXJyID0gaW50ZWxfZW5naW5lc19zZXR1cChndCk7CisJaWYg KGVycikKKwkJZ290byBlcnJfdm07CisKKwllcnIgPSBpbnRlbF9lbmdpbmVzX2luaXQoZ3QpOwor CWlmIChlcnIpCisJCWdvdG8gZXJyX2VuZ2luZXM7CisKKwlpbnRlbF91Y19pbml0KCZndC0+dWMp OworCisJZXJyID0gaW50ZWxfZ3RfaW5pdF9odyhndCk7CisJaWYgKGVycikKKwkJZ290byBlcnJf dWNfaW5pdDsKIAotZXJyX3NjcmF0Y2g6CisJLyogT25seSB3aGVuIHRoZSBIVyBpcyByZS1pbml0 aWFsaXNlZCwgY2FuIHdlIHJlcGxheSB0aGUgcmVxdWVzdHMgKi8KKwllcnIgPSBpbnRlbF9ndF9y ZXN1bWUoZ3QpOworCWlmIChlcnIpCisJCWdvdG8gZXJyX3VjX2luaXQ7CisKKwllcnIgPSBfX2Vu Z2luZXNfcmVjb3JkX2RlZmF1bHRzKGd0KTsKKwlpZiAoZXJyKQorCQlnb3RvIGVycl9ndDsKKwor CWVyciA9IF9fZW5naW5lc192ZXJpZnlfd29ya2Fyb3VuZHMoZ3QpOworCWlmIChlcnIpCisJCWdv dG8gZXJyX2d0OworCisJZXJyID0gaTkxNV9pbmplY3RfcHJvYmVfZXJyb3IoZ3QtPmk5MTUsIC1F SU8pOworCWlmIChlcnIpCisJCWdvdG8gZXJyX2d0OworCisJZ290byBvdXRfZnc7CitlcnJfZ3Q6 CisJX19pbnRlbF9ndF9kaXNhYmxlKGd0KTsKK2Vycl91Y19pbml0OgorCWludGVsX3VjX2Zpbmko Jmd0LT51Yyk7CitlcnJfZW5naW5lczoKKwlpbnRlbF9lbmdpbmVzX3JlbGVhc2UoZ3QpOworZXJy X3ZtOgorCWk5MTVfdm1fcHV0KGZldGNoX2FuZF96ZXJvKCZndC0+dm0pKTsKK2Vycl9wbToKKwlp bnRlbF9ndF9wbV9maW5pKGd0KTsKIAlpbnRlbF9ndF9maW5pX3NjcmF0Y2goZ3QpOworb3V0X2Z3 OgorCWludGVsX3VuY29yZV9mb3JjZXdha2VfcHV0KGd0LT51bmNvcmUsIEZPUkNFV0FLRV9BTEwp OwogCXJldHVybiBlcnI7CiB9CiAKIHZvaWQgaW50ZWxfZ3RfZHJpdmVyX3JlbW92ZShzdHJ1Y3Qg aW50ZWxfZ3QgKmd0KQogewotCUdFTV9CVUdfT04oZ3QtPmF3YWtlKTsKKwlfX2ludGVsX2d0X2Rp c2FibGUoZ3QpOworCisJaW50ZWxfdWNfZmluaSgmZ3QtPnVjKTsKKwlpbnRlbF9lbmdpbmVzX3Jl bGVhc2UoZ3QpOwogfQogCiB2b2lkIGludGVsX2d0X2RyaXZlcl91bnJlZ2lzdGVyKHN0cnVjdCBp bnRlbF9ndCAqZ3QpCkBAIC00MTAsMTAgKzYyNSw5IEBAIHZvaWQgaW50ZWxfZ3RfZHJpdmVyX3Jl bGVhc2Uoc3RydWN0IGludGVsX2d0ICpndCkKIAlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2 bTsKIAogCXZtID0gZmV0Y2hfYW5kX3plcm8oJmd0LT52bSk7Ci0JaWYgKCF2bSkgLyogRklYTUUg YmVpbmcgY2FsbGVkIHR3aWNlIG9uIGVycm9yIHBhdGhzIDooICovCi0JCXJldHVybjsKKwlpZiAo dm0pIC8qIEZJWE1FIGJlaW5nIGNhbGxlZCB0d2ljZSBvbiBlcnJvciBwYXRocyA6KCAqLworCQlp OTE1X3ZtX3B1dCh2bSk7CiAKLQlpOTE1X3ZtX3B1dCh2bSk7CiAJaW50ZWxfZ3RfcG1fZmluaShn dCk7CiAJaW50ZWxfZ3RfZmluaV9zY3JhdGNoKGd0KTsKIH0KQEAgLTQyMyw0ICs2MzcsNSBAQCB2 b2lkIGludGVsX2d0X2RyaXZlcl9sYXRlX3JlbGVhc2Uoc3RydWN0IGludGVsX2d0ICpndCkKIAlp bnRlbF91Y19kcml2ZXJfbGF0ZV9yZWxlYXNlKCZndC0+dWMpOwogCWludGVsX2d0X2ZpbmlfcmVz ZXQoZ3QpOwogCWludGVsX2d0X2ZpbmlfdGltZWxpbmVzKGd0KTsKKwlpbnRlbF9lbmdpbmVzX2Zy ZWUoZ3QpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJj LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMuYwppbmRleCBkMjU1ZTkwN2Y4 NmMuLmZjNmNiNDEzNmZmNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50 ZWxfbHJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMKQEAgLTM3 NDUsMTEgKzM3NDUsMTAgQEAgdm9pZCBpbnRlbF9leGVjbGlzdHNfc2V0X2RlZmF1bHRfc3VibWlz c2lvbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJCWVuZ2luZS0+ZmxhZ3MgfD0g STkxNV9FTkdJTkVfSEFTX1JFTEFUSVZFX01NSU87CiB9CiAKLXN0YXRpYyB2b2lkIGV4ZWNsaXN0 c19kZXN0cm95KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3N0YXRpYyB2b2lkIGV4 ZWNsaXN0c19yZWxlYXNlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKIAlpbnRl bF9lbmdpbmVfY2xlYW51cF9jb21tb24oZW5naW5lKTsKIAlscmNfZGVzdHJveV93YV9jdHgoZW5n aW5lKTsKLQlrZnJlZShlbmdpbmUpOwogfQogCiBzdGF0aWMgdm9pZApAQCAtMzc1Nyw3ICszNzU2 LDcgQEAgbG9naWNhbF9yaW5nX2RlZmF1bHRfdmZ1bmNzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSkKIHsKIAkvKiBEZWZhdWx0IHZmdW5jcyB3aGljaCBjYW4gYmUgb3ZlcnJpZGVuIGJ5 IGVhY2ggZW5naW5lLiAqLwogCi0JZW5naW5lLT5kZXN0cm95ID0gZXhlY2xpc3RzX2Rlc3Ryb3k7 CisJZW5naW5lLT5yZWxlYXNlID0gZXhlY2xpc3RzX3JlbGVhc2U7CiAJZW5naW5lLT5yZXN1bWUg PSBleGVjbGlzdHNfcmVzdW1lOwogCiAJZW5naW5lLT5yZXNldC5wcmVwYXJlID0gZXhlY2xpc3Rz X3Jlc2V0X3ByZXBhcmU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRl bF9yaW5nX3N1Ym1pc3Npb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jpbmdf c3VibWlzc2lvbi5jCmluZGV4IDZkZGZlOGE4NmRiZS4uMGU5NDIxZTUyZjdmIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yaW5nX3N1Ym1pc3Npb24uYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yaW5nX3N1Ym1pc3Npb24uYwpAQCAtMTgxNiw3 ICsxODE2LDcgQEAgc3RhdGljIHZvaWQgZ2VuNl9ic2Rfc2V0X2RlZmF1bHRfc3VibWlzc2lvbihz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJZW5naW5lLT5zdWJtaXRfcmVxdWVzdCA9 IGdlbjZfYnNkX3N1Ym1pdF9yZXF1ZXN0OwogfQogCi1zdGF0aWMgdm9pZCByaW5nX2Rlc3Ryb3ko c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQorc3RhdGljIHZvaWQgcmluZ19yZWxlYXNl KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmk5MTU7CiAKQEAgLTE4MzAsOCArMTgzMCw2IEBAIHN0 YXRpYyB2b2lkIHJpbmdfZGVzdHJveShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAK IAlpbnRlbF90aW1lbGluZV91bnBpbihlbmdpbmUtPmxlZ2FjeS50aW1lbGluZSk7CiAJaW50ZWxf dGltZWxpbmVfcHV0KGVuZ2luZS0+bGVnYWN5LnRpbWVsaW5lKTsKLQotCWtmcmVlKGVuZ2luZSk7 CiB9CiAKIHN0YXRpYyB2b2lkIHNldHVwX2lycShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUpCkBAIC0xODYyLDcgKzE4NjAsNyBAQCBzdGF0aWMgdm9pZCBzZXR1cF9jb21tb24oc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCiAJc2V0dXBfaXJxKGVuZ2luZSk7CiAKLQllbmdp bmUtPmRlc3Ryb3kgPSByaW5nX2Rlc3Ryb3k7CisJZW5naW5lLT5yZWxlYXNlID0gcmluZ19yZWxl YXNlOwogCiAJZW5naW5lLT5yZXN1bWUgPSB4Y3NfcmVzdW1lOwogCWVuZ2luZS0+cmVzZXQucHJl cGFyZSA9IHJlc2V0X3ByZXBhcmU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9pbnRlbF90aW1lbGluZV90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxf dGltZWxpbmVfdHlwZXMuaAppbmRleCA5OGQ5ZWUxNjYzNzkuLjM0ZDI4ZDc3NzFkMSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfdGltZWxpbmVfdHlwZXMuaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF90aW1lbGluZV90eXBlcy5oCkBAIC0xNCwx MCArMTQsMTAgQEAKIAogI2luY2x1ZGUgImk5MTVfYWN0aXZlX3R5cGVzLmgiCiAKLXN0cnVjdCBk cm1faTkxNV9wcml2YXRlOwogc3RydWN0IGk5MTVfdm1hOwotc3RydWN0IGludGVsX3RpbWVsaW5l X2NhY2hlbGluZTsKIHN0cnVjdCBpOTE1X3N5bmNtYXA7CitzdHJ1Y3QgaW50ZWxfZ3Q7CitzdHJ1 Y3QgaW50ZWxfdGltZWxpbmVfY2FjaGVsaW5lOwogCiBzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgewog CXU2NCBmZW5jZV9jb250ZXh0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXggODJlNGU2YmYw OGMzLi4zM2I0OGRkNDc2MzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwpAQCAtNjE3LDcgKzYx Nyw2IEBAIHN0YXRpYyBpbnQgaTkxNV9kcml2ZXJfbW1pb19wcm9iZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiAgKi8KIHN0YXRpYyB2b2lkIGk5MTVfZHJpdmVyX21taW9fcmVs ZWFzZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0JaW50ZWxfZW5naW5l c19jbGVhbnVwKCZkZXZfcHJpdi0+Z3QpOwogCWludGVsX3RlYXJkb3duX21jaGJhcihkZXZfcHJp dik7CiAJaW50ZWxfdW5jb3JlX2ZpbmlfbW1pbygmZGV2X3ByaXYtPnVuY29yZSk7CiAJcGNpX2Rl dl9wdXQoZGV2X3ByaXYtPmJyaWRnZV9kZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXgg MDQzNTBlNjFjODZjLi42NmVmNWUwYjZhZmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAt MTAzOSwxNTIgKzEwMzksNiBAQCBpOTE1X2dlbV9tYWR2aXNlX2lvY3RsKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJcmV0dXJuIGVycjsKIH0KIAotc3RhdGljIGludCBfX2lu dGVsX2VuZ2luZXNfcmVjb3JkX2RlZmF1bHRzKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCi17Ci0Jc3Ry dWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdHNbSTkxNV9OVU1fRU5HSU5FU10gPSB7fTsKLQlzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Ci0JZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7Ci0J aW50IGVyciA9IDA7Ci0KLQkvKgotCSAqIEFzIHdlIHJlc2V0IHRoZSBncHUgZHVyaW5nIHZlcnkg ZWFybHkgc2FuaXRpc2F0aW9uLCB0aGUgY3VycmVudAotCSAqIHJlZ2lzdGVyIHN0YXRlIG9uIHRo ZSBHUFUgc2hvdWxkIHJlZmxlY3QgaXRzIGRlZmF1bHRzIHZhbHVlcy4KLQkgKiBXZSBsb2FkIGEg Y29udGV4dCBvbnRvIHRoZSBodyAod2l0aCByZXN0b3JlLWluaGliaXQpLCB0aGVuIHN3aXRjaAot CSAqIG92ZXIgdG8gYSBzZWNvbmQgY29udGV4dCB0byBzYXZlIHRoYXQgZGVmYXVsdCByZWdpc3Rl ciBzdGF0ZS4gV2UKLQkgKiBjYW4gdGhlbiBwcmltZSBldmVyeSBuZXcgY29udGV4dCB3aXRoIHRo YXQgc3RhdGUgc28gdGhleSBhbGwgc3RhcnQKLQkgKiBmcm9tIHRoZSBzYW1lIGRlZmF1bHQgSFcg dmFsdWVzLgotCSAqLwotCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QsIGlkKSB7Ci0JCXN0 cnVjdCBpbnRlbF9jb250ZXh0ICpjZTsKLQkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7Ci0KLQkJ LyogV2UgbXVzdCBiZSBhYmxlIHRvIHN3aXRjaCB0byBzb21ldGhpbmchICovCi0JCUdFTV9CVUdf T04oIWVuZ2luZS0+a2VybmVsX2NvbnRleHQpOwotCQllbmdpbmUtPnNlcmlhbCsrOyAvKiBmb3Jj ZSB0aGUga2VybmVsIGNvbnRleHQgc3dpdGNoICovCi0KLQkJY2UgPSBpbnRlbF9jb250ZXh0X2Ny ZWF0ZShlbmdpbmUpOwotCQlpZiAoSVNfRVJSKGNlKSkgewotCQkJZXJyID0gUFRSX0VSUihjZSk7 Ci0JCQlnb3RvIG91dDsKLQkJfQotCi0JCXJxID0gaW50ZWxfY29udGV4dF9jcmVhdGVfcmVxdWVz dChjZSk7Ci0JCWlmIChJU19FUlIocnEpKSB7Ci0JCQllcnIgPSBQVFJfRVJSKHJxKTsKLQkJCWlu dGVsX2NvbnRleHRfcHV0KGNlKTsKLQkJCWdvdG8gb3V0OwotCQl9Ci0KLQkJZXJyID0gaW50ZWxf ZW5naW5lX2VtaXRfY3R4X3dhKHJxKTsKLQkJaWYgKGVycikKLQkJCWdvdG8gZXJyX3JxOwotCi0J CWVyciA9IGludGVsX3JlbmRlcnN0YXRlX2VtaXQocnEpOwotCQlpZiAoZXJyKQotCQkJZ290byBl cnJfcnE7Ci0KLWVycl9ycToKLQkJcmVxdWVzdHNbaWRdID0gaTkxNV9yZXF1ZXN0X2dldChycSk7 Ci0JCWk5MTVfcmVxdWVzdF9hZGQocnEpOwotCQlpZiAoZXJyKQotCQkJZ290byBvdXQ7Ci0JfQot Ci0JLyogRmx1c2ggdGhlIGRlZmF1bHQgY29udGV4dCBpbWFnZSB0byBtZW1vcnksIGFuZCBlbmFi bGUgcG93ZXJzYXZpbmcuICovCi0JaWYgKGludGVsX2d0X3dhaXRfZm9yX2lkbGUoZ3QsIEk5MTVf R0VNX0lETEVfVElNRU9VVCkgPT0gLUVUSU1FKSB7Ci0JCWVyciA9IC1FSU87Ci0JCWdvdG8gb3V0 OwotCX0KLQotCWZvciAoaWQgPSAwOyBpZCA8IEFSUkFZX1NJWkUocmVxdWVzdHMpOyBpZCsrKSB7 Ci0JCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOwotCQlzdHJ1Y3QgaTkxNV92bWEgKnN0YXRlOwot CQl2b2lkICp2YWRkcjsKLQotCQlycSA9IHJlcXVlc3RzW2lkXTsKLQkJaWYgKCFycSkKLQkJCWNv bnRpbnVlOwotCi0JCS8qIFdlIHdhbnQgdG8gYmUgYWJsZSB0byB1bmJpbmQgdGhlIHN0YXRlIGZy b20gdGhlIEdHVFQgKi8KLQkJR0VNX0JVR19PTihpbnRlbF9jb250ZXh0X2lzX3Bpbm5lZChycS0+ Y29udGV4dCkpOwotCi0JCXN0YXRlID0gcnEtPmNvbnRleHQtPnN0YXRlOwotCQlpZiAoIXN0YXRl KQotCQkJY29udGludWU7Ci0KLQkJLyoKLQkJICogQXMgd2Ugd2lsbCBob2xkIGEgcmVmZXJlbmNl IHRvIHRoZSBsb2dpY2FsIHN0YXRlLCBpdCB3aWxsCi0JCSAqIG5vdCBiZSB0b3JuIGRvd24gd2l0 aCB0aGUgY29udGV4dCwgYW5kIGltcG9ydGFudGx5IHRoZQotCQkgKiBvYmplY3Qgd2lsbCBob2xk IG9udG8gaXRzIHZtYSAobWFraW5nIGl0IHBvc3NpYmxlIGZvciBhCi0JCSAqIHN0cmF5IEdUVCB3 cml0ZSB0byBjb3JydXB0IG91ciBkZWZhdWx0cykuIFVubWFwIHRoZSB2bWEKLQkJICogZnJvbSB0 aGUgR1RUIHRvIHByZXZlbnQgc3VjaCBhY2NpZGVudHMgYW5kIHJlY2xhaW0gdGhlCi0JCSAqIHNw YWNlLgotCQkgKi8KLQkJZXJyID0gaTkxNV92bWFfdW5iaW5kKHN0YXRlKTsKLQkJaWYgKGVycikK LQkJCWdvdG8gb3V0OwotCi0JCWk5MTVfZ2VtX29iamVjdF9sb2NrKHN0YXRlLT5vYmopOwotCQll cnIgPSBpOTE1X2dlbV9vYmplY3Rfc2V0X3RvX2NwdV9kb21haW4oc3RhdGUtPm9iaiwgZmFsc2Up OwotCQlpOTE1X2dlbV9vYmplY3RfdW5sb2NrKHN0YXRlLT5vYmopOwotCQlpZiAoZXJyKQotCQkJ Z290byBvdXQ7Ci0KLQkJaTkxNV9nZW1fb2JqZWN0X3NldF9jYWNoZV9jb2hlcmVuY3koc3RhdGUt Pm9iaiwgSTkxNV9DQUNIRV9MTEMpOwotCi0JCS8qIENoZWNrIHdlIGNhbiBhY3F1aXJlIHRoZSBp bWFnZSBvZiB0aGUgY29udGV4dCBzdGF0ZSAqLwotCQl2YWRkciA9IGk5MTVfZ2VtX29iamVjdF9w aW5fbWFwKHN0YXRlLT5vYmosIEk5MTVfTUFQX0ZPUkNFX1dCKTsKLQkJaWYgKElTX0VSUih2YWRk cikpIHsKLQkJCWVyciA9IFBUUl9FUlIodmFkZHIpOwotCQkJZ290byBvdXQ7Ci0JCX0KLQotCQly cS0+ZW5naW5lLT5kZWZhdWx0X3N0YXRlID0gaTkxNV9nZW1fb2JqZWN0X2dldChzdGF0ZS0+b2Jq KTsKLQkJaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcChzdGF0ZS0+b2JqKTsKLQl9Ci0KLW91dDoK LQkvKgotCSAqIElmIHdlIGhhdmUgdG8gYWJhbmRvbiBub3csIHdlIGV4cGVjdCB0aGUgZW5naW5l cyB0byBiZSBpZGxlCi0JICogYW5kIHJlYWR5IHRvIGJlIHRvcm4tZG93bi4gVGhlIHF1aWNrZXN0 IHdheSB3ZSBjYW4gYWNjb21wbGlzaAotCSAqIHRoaXMgaXMgYnkgZGVjbGFyaW5nIG91cnNlbHZl cyB3ZWRnZWQuCi0JICovCi0JaWYgKGVycikKLQkJaW50ZWxfZ3Rfc2V0X3dlZGdlZChndCk7Ci0K LQlmb3IgKGlkID0gMDsgaWQgPCBBUlJBWV9TSVpFKHJlcXVlc3RzKTsgaWQrKykgewotCQlzdHJ1 Y3QgaW50ZWxfY29udGV4dCAqY2U7Ci0JCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOwotCi0JCXJx ID0gcmVxdWVzdHNbaWRdOwotCQlpZiAoIXJxKQotCQkJY29udGludWU7Ci0KLQkJY2UgPSBycS0+ Y29udGV4dDsKLQkJaTkxNV9yZXF1ZXN0X3B1dChycSk7Ci0JCWludGVsX2NvbnRleHRfcHV0KGNl KTsKLQl9Ci0JcmV0dXJuIGVycjsKLX0KLQotc3RhdGljIGludCBpbnRlbF9lbmdpbmVzX3Zlcmlm eV93b3JrYXJvdW5kcyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQotewotCXN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZTsKLQllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKLQlpbnQgZXJyID0gMDsK LQotCWlmICghSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfREVCVUdfR0VNKSkKLQkJcmV0dXJu IDA7Ci0KLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndCwgaWQpIHsKLQkJaWYgKGludGVsX2Vu Z2luZV92ZXJpZnlfd29ya2Fyb3VuZHMoZW5naW5lLCAibG9hZCIpKQotCQkJZXJyID0gLUVJTzsK LQl9Ci0KLQlyZXR1cm4gZXJyOwotfQotCiBpbnQgaTkxNV9nZW1faW5pdChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJaW50IHJldDsKQEAgLTEyMDEsNDUgKzEwNTUsMTIg QEAgaW50IGk5MTVfZ2VtX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQog CWludGVsX3VjX2ZldGNoX2Zpcm13YXJlcygmZGV2X3ByaXYtPmd0LnVjKTsKIAlpbnRlbF93b3Bj bV9pbml0KCZkZXZfcHJpdi0+d29wY20pOwogCi0JLyogVGhpcyBpcyBqdXN0IGEgc2VjdXJpdHkg YmxhbmtldCB0byBwbGFjYXRlIGRyYWdvbnMuCi0JICogT24gc29tZSBzeXN0ZW1zLCB3ZSB2ZXJ5 IHNwb3JhZGljYWxseSBvYnNlcnZlIHRoYXQgdGhlIGZpcnN0IFRMQnMKLQkgKiB1c2VkIGJ5IHRo ZSBDUyBtYXkgYmUgc3RhbGUsIGRlc3BpdGUgdXMgcG9raW5nIHRoZSBUTEIgcmVzZXQuIElmCi0J ICogd2UgaG9sZCB0aGUgZm9yY2V3YWtlIGR1cmluZyBpbml0aWFsaXNhdGlvbiB0aGVzZSBwcm9i bGVtcwotCSAqIGp1c3QgbWFnaWNhbGx5IGdvIGF3YXkuCi0JICovCi0JaW50ZWxfdW5jb3JlX2Zv cmNld2FrZV9nZXQoJmRldl9wcml2LT51bmNvcmUsIEZPUkNFV0FLRV9BTEwpOwotCiAJcmV0ID0g aTkxNV9pbml0X2dndHQoZGV2X3ByaXYpOwogCWlmIChyZXQpIHsKIAkJR0VNX0JVR19PTihyZXQg PT0gLUVJTyk7CiAJCWdvdG8gZXJyX3VubG9jazsKIAl9CiAKLQlpbnRlbF9ndF9pbml0KCZkZXZf cHJpdi0+Z3QpOwotCi0JcmV0ID0gaW50ZWxfZW5naW5lc19zZXR1cCgmZGV2X3ByaXYtPmd0KTsK LQlpZiAocmV0KSB7Ci0JCUdFTV9CVUdfT04ocmV0ID09IC1FSU8pOwotCQlnb3RvIGVycl9ndF9l YXJseTsKLQl9Ci0KLQlyZXQgPSBpbnRlbF9lbmdpbmVzX2luaXQoJmRldl9wcml2LT5ndCk7Ci0J aWYgKHJldCkgewotCQlHRU1fQlVHX09OKHJldCA9PSAtRUlPKTsKLQkJZ290byBlcnJfZW5naW5l czsKLQl9Ci0KLQlpbnRlbF91Y19pbml0KCZkZXZfcHJpdi0+Z3QudWMpOwotCi0JcmV0ID0gaW50 ZWxfZ3RfaW5pdF9odygmZGV2X3ByaXYtPmd0KTsKLQlpZiAocmV0KQotCQlnb3RvIGVycl91Y19p bml0OwotCi0JLyogT25seSB3aGVuIHRoZSBIVyBpcyByZS1pbml0aWFsaXNlZCwgY2FuIHdlIHJl cGxheSB0aGUgcmVxdWVzdHMgKi8KLQlyZXQgPSBpbnRlbF9ndF9yZXN1bWUoJmRldl9wcml2LT5n dCk7Ci0JaWYgKHJldCkKLQkJZ290byBlcnJfaW5pdF9odzsKLQogCS8qCiAJICogRGVzcGl0ZSBp dHMgbmFtZSBpbnRlbF9pbml0X2Nsb2NrX2dhdGluZyBhcHBsaWVzIGJvdGggZGlzcGxheQogCSAq IGNsb2NrIGdhdGluZyB3b3JrYXJvdW5kczsgR1QgbW1pbyB3b3JrYXJvdW5kcyBhbmQgdGhlIG9j Y2FzaW9uYWwKQEAgLTEyNTEsMjMgKzEwNzIsOSBAQCBpbnQgaTkxNV9nZW1faW5pdChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJICovCiAJaW50ZWxfaW5pdF9jbG9ja19nYXRp bmcoZGV2X3ByaXYpOwogCi0JcmV0ID0gaW50ZWxfZW5naW5lc192ZXJpZnlfd29ya2Fyb3VuZHMo JmRldl9wcml2LT5ndCk7Ci0JaWYgKHJldCkKLQkJZ290byBlcnJfZ3RfbGF0ZTsKLQotCXJldCA9 IF9faW50ZWxfZW5naW5lc19yZWNvcmRfZGVmYXVsdHMoJmRldl9wcml2LT5ndCk7Ci0JaWYgKHJl dCkKLQkJZ290byBlcnJfZ3RfbGF0ZTsKLQotCXJldCA9IGk5MTVfaW5qZWN0X3Byb2JlX2Vycm9y KGRldl9wcml2LCAtRU5PREVWKTsKKwlyZXQgPSBpbnRlbF9ndF9pbml0KCZkZXZfcHJpdi0+Z3Qp OwogCWlmIChyZXQpCi0JCWdvdG8gZXJyX2d0X2xhdGU7Ci0KLQlyZXQgPSBpOTE1X2luamVjdF9w cm9iZV9lcnJvcihkZXZfcHJpdiwgLUVJTyk7Ci0JaWYgKHJldCkKLQkJZ290byBlcnJfZ3RfbGF0 ZTsKLQotCWludGVsX3VuY29yZV9mb3JjZXdha2VfcHV0KCZkZXZfcHJpdi0+dW5jb3JlLCBGT1JD RVdBS0VfQUxMKTsKKwkJZ290byBlcnJfdW5sb2NrOwogCiAJcmV0dXJuIDA7CiAKQEAgLTEyNzcs MjQgKzEwODQsOCBAQCBpbnQgaTkxNV9nZW1faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCiAJICogSFcgYXMgaXJyZXZpc2libHkgd2VkZ2VkLCBidXQga2VlcCBlbm91Z2gg c3RhdGUgYXJvdW5kIHRoYXQgdGhlCiAJICogZHJpdmVyIGRvZXNuJ3QgZXhwbG9kZSBkdXJpbmcg cnVudGltZS4KIAkgKi8KLWVycl9ndF9sYXRlOgotCWludGVsX2d0X3NldF93ZWRnZWRfb25faW5p dCgmZGV2X3ByaXYtPmd0KTsKLQlpOTE1X2dlbV9zdXNwZW5kKGRldl9wcml2KTsKLQlpOTE1X2dl bV9zdXNwZW5kX2xhdGUoZGV2X3ByaXYpOwotCi0JaTkxNV9nZW1fZHJhaW5fd29ya3F1ZXVlKGRl dl9wcml2KTsKLWVycl9pbml0X2h3OgotCWludGVsX3VjX2ZpbmlfaHcoJmRldl9wcml2LT5ndC51 Yyk7Ci1lcnJfdWNfaW5pdDoKLQlpZiAocmV0ICE9IC1FSU8pCi0JCWludGVsX3VjX2ZpbmkoJmRl dl9wcml2LT5ndC51Yyk7Ci1lcnJfZW5naW5lczoKLQlpZiAocmV0ICE9IC1FSU8pCi0JCWludGVs X2VuZ2luZXNfY2xlYW51cCgmZGV2X3ByaXYtPmd0KTsKLWVycl9ndF9lYXJseToKLQlpbnRlbF9n dF9kcml2ZXJfcmVsZWFzZSgmZGV2X3ByaXYtPmd0KTsKIGVycl91bmxvY2s6Ci0JaW50ZWxfdW5j b3JlX2ZvcmNld2FrZV9wdXQoJmRldl9wcml2LT51bmNvcmUsIEZPUkNFV0FLRV9BTEwpOworCWk5 MTVfZ2VtX2RyYWluX3dvcmtxdWV1ZShkZXZfcHJpdik7CiAKIAlpZiAocmV0ICE9IC1FSU8pIHsK IAkJaW50ZWxfdWNfY2xlYW51cF9maXJtd2FyZXMoJmRldl9wcml2LT5ndC51Yyk7CkBAIC0xMzQy LDE5ICsxMTMzLDE4IEBAIHZvaWQgaTkxNV9nZW1fZHJpdmVyX3JlbW92ZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIAlpOTE1X2dlbV9zdXNwZW5kX2xhdGUoZGV2X3ByaXYp OwogCWludGVsX2d0X2RyaXZlcl9yZW1vdmUoJmRldl9wcml2LT5ndCk7CisJZGV2X3ByaXYtPnVh YmlfZW5naW5lcyA9IFJCX1JPT1Q7CiAKIAkvKiBGbHVzaCBhbnkgb3V0c3RhbmRpbmcgdW5waW5f d29yay4gKi8KIAlpOTE1X2dlbV9kcmFpbl93b3JrcXVldWUoZGV2X3ByaXYpOwogCiAJaW50ZWxf dWNfZmluaV9odygmZGV2X3ByaXYtPmd0LnVjKTsKLQlpbnRlbF91Y19maW5pKCZkZXZfcHJpdi0+ Z3QudWMpOwogCiAJaTkxNV9nZW1fZHJhaW5fZnJlZWRfb2JqZWN0cyhkZXZfcHJpdik7CiB9CiAK IHZvaWQgaTkxNV9nZW1fZHJpdmVyX3JlbGVhc2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQogewotCWludGVsX2VuZ2luZXNfY2xlYW51cCgmZGV2X3ByaXYtPmd0KTsKIAlpbnRl bF9ndF9kcml2ZXJfcmVsZWFzZSgmZGV2X3ByaXYtPmd0KTsKIAogCWludGVsX3dhX2xpc3RfZnJl ZSgmZGV2X3ByaXYtPmd0X3dhX2xpc3QpOwotLSAKMi4yNC4wCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=