From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 10/64] drm/i915: Derive GEM requests from dma-fence Date: Thu, 7 Jul 2016 09:41:16 +0100 Message-ID: <1467880930-23082-10-git-send-email-chris@chris-wilson.co.uk> References: <1467880930-23082-1-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4284F6E756 for ; Thu, 7 Jul 2016 08:42:39 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id 187so3800650wmz.1 for ; Thu, 07 Jul 2016 01:42:39 -0700 (PDT) In-Reply-To: <1467880930-23082-1-git-send-email-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 Cc: Daniel Vetter , Jesse Barnes List-Id: intel-gfx@lists.freedesktop.org ZG1hLWJ1ZiBwcm92aWRlcyBhIGdlbmVyaWMgZmVuY2UgY2xhc3MgZm9yIGludGVyb3BlcmF0aW9u IGJldHdlZW4KZHJpdmVycy4gSW50ZXJuYWxseSB3ZSB1c2UgdGhlIHJlcXVlc3Qgc3RydWN0dXJl IGFzIGEgZmVuY2UsIGFuZCBzbyB3aXRoCm9ubHkgYSBsaXR0bGUgYml0IG9mIGludGVyZmFjaW5n IHdlIGNhbiByZWJhc2UgdGhvc2UgcmVxdWVzdHMgb24gdG9wIG9mCmRtYS1idWYgZmVuY2VzLiBU aGlzIHdpbGwgYWxsb3cgdXMsIGluIHRoZSBmdXR1cmUsIHRvIHBhc3MgdGhvc2UgZmVuY2VzCmJh Y2sgdG8gdXNlcnNwYWNlIG9yIGJldHdlZW4gZHJpdmVycy4KCnYyOiBUaGUgZmVuY2VfY29udGV4 dCBuZWVkcyB0byBiZSBnbG9iYWxseSB1bmlxdWUsIG5vdCBqdXN0IHVuaXF1ZSB0bwp0aGlzIGRl dmljZS4KClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNv LnVrPgpDYzogSmVzc2UgQmFybmVzIDxqYmFybmVzQHZpcnR1b3VzZ2Vlay5vcmc+CkNjOiBEYW5p ZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgpSZXZpZXdlZC1ieTogRGFuaWVsIFZl dHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RlYnVnZnMuYyAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX3JlcXVlc3QuYyAgICB8IDExMyArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5oICAgIHwgIDQzICsrKysrKystLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jICAgICAgfCAgIDIgKy0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyB8ICAgNCArLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV90cmFjZS5oICAgICAgICAgIHwgIDEwICstLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfYnJlYWRjcnVtYnMuYyAgIHwgICA3ICstCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgICAgfCAgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JpbmdidWZmZXIuYyAgICB8ICAxMSArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3JpbmdidWZmZXIuaCAgICB8ICAgMSArCiAxMCBmaWxlcyBjaGFuZ2VkLCAxNTAgaW5z ZXJ0aW9ucygrKSwgNDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMu YwppbmRleCBlNjg2NzA0YTMxMGEuLjg3ZjI1OWEwOWYyMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kZWJ1Z2ZzLmMKQEAgLTc2OCw3ICs3NjgsNyBAQCBzdGF0aWMgaW50IGk5MTVfZ2VtX3JlcXVl c3RfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiAJCQlpZiAocmVxLT5waWQp CiAJCQkJdGFzayA9IHBpZF90YXNrKHJlcS0+cGlkLCBQSURUWVBFX1BJRCk7CiAJCQlzZXFfcHJp bnRmKG0sICIgICAgJXggQCAlZDogJXMgWyVkXVxuIiwKLQkJCQkgICByZXEtPnNlcW5vLAorCQkJ CSAgIHJlcS0+ZmVuY2Uuc2Vxbm8sCiAJCQkJICAgKGludCkgKGppZmZpZXMgLSByZXEtPmVtaXR0 ZWRfamlmZmllcyksCiAJCQkJICAgdGFzayA/IHRhc2stPmNvbW0gOiAiPHVua25vd24+IiwKIAkJ CQkgICB0YXNrID8gdGFzay0+cGlkIDogLTEpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f cmVxdWVzdC5jCmluZGV4IGVlMTE4OWMzNTUwOS4uNDE4NGI1ODc5YWVhIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jCkBAIC0yNCw2ICsyNCw5NSBAQAogCiAjaW5jbHVk ZSAiaTkxNV9kcnYuaCIKIAorc3RhdGljIGNvbnN0IGNoYXIgKmk5MTVfZmVuY2VfZ2V0X2RyaXZl cl9uYW1lKHN0cnVjdCBmZW5jZSAqZmVuY2UpCit7CisJcmV0dXJuICJpOTE1IjsKK30KKworc3Rh dGljIGNvbnN0IGNoYXIgKmk5MTVfZmVuY2VfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGZlbmNl ICpmZW5jZSkKK3sKKwkvKiBUaW1lbGluZXMgYXJlIGJvdW5kIGJ5IGV2aWN0aW9uIHRvIGEgVk0u IEhvd2V2ZXIsIHNpbmNlCisJICogd2Ugb25seSBoYXZlIGEgZ2xvYmFsIHNlcW5vIGF0IHRoZSBt b21lbnQsIHdlIG9ubHkgaGF2ZQorCSAqIGEgc2luZ2xlIHRpbWVsaW5lLiBOb3RlIHRoYXQgZWFj aCB0aW1lbGluZSB3aWxsIGhhdmUKKwkgKiBtdWx0aXBsZSBleGVjdXRpb24gY29udGV4dHMgKGZl bmNlIGNvbnRleHRzKSBhcyB3ZSBhbGxvdworCSAqIGVuZ2luZXMgd2l0aGluIGEgc2luZ2xlIHRp bWVsaW5lIHRvIGV4ZWN1dGUgaW4gcGFyYWxsZWwuCisJICovCisJcmV0dXJuICJnbG9iYWwiOwor fQorCitzdGF0aWMgYm9vbCBpOTE1X2ZlbmNlX3NpZ25hbGVkKHN0cnVjdCBmZW5jZSAqZmVuY2Up Cit7CisJcmV0dXJuIGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKHRvX3JlcXVlc3QoZmVuY2Up KTsKK30KKworc3RhdGljIGJvb2wgaTkxNV9mZW5jZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBm ZW5jZSAqZmVuY2UpCit7CisJaWYgKGk5MTVfZmVuY2Vfc2lnbmFsZWQoZmVuY2UpKQorCQlyZXR1 cm4gZmFsc2U7CisKKwlpbnRlbF9lbmdpbmVfZW5hYmxlX3NpZ25hbGluZyh0b19yZXF1ZXN0KGZl bmNlKSk7CisJcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBzaWduZWQgbG9uZyBpOTE1X2ZlbmNl X3dhaXQoc3RydWN0IGZlbmNlICpmZW5jZSwKKwkJCQkgICBib29sIGludGVycnVwdGlibGUsCisJ CQkJICAgc2lnbmVkIGxvbmcgdGltZW91dF9qaWZmaWVzKQoreworCXM2NCB0aW1lb3V0X25zLCAq dGltZW91dDsKKwlpbnQgcmV0OworCisJaWYgKHRpbWVvdXRfamlmZmllcyAhPSBNQVhfU0NIRURV TEVfVElNRU9VVCkgeworCQl0aW1lb3V0X25zID0gamlmZmllc190b19uc2Vjcyh0aW1lb3V0X2pp ZmZpZXMpOworCQl0aW1lb3V0ID0gJnRpbWVvdXRfbnM7CisJfSBlbHNlIHsKKwkJdGltZW91dCA9 IE5VTEw7CisJfQorCisJcmV0ID0gX19pOTE1X3dhaXRfcmVxdWVzdCh0b19yZXF1ZXN0KGZlbmNl KSwKKwkJCQkgIGludGVycnVwdGlibGUsIHRpbWVvdXQsCisJCQkJICBOVUxMKTsKKwlpZiAocmV0 ID09IC1FVElNRSkKKwkJcmV0dXJuIDA7CisKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsK KworCWlmICh0aW1lb3V0X2ppZmZpZXMgIT0gTUFYX1NDSEVEVUxFX1RJTUVPVVQpCisJCXRpbWVv dXRfamlmZmllcyA9IG5zZWNzX3RvX2ppZmZpZXModGltZW91dF9ucyk7CisKKwlyZXR1cm4gdGlt ZW91dF9qaWZmaWVzOworfQorCitzdGF0aWMgdm9pZCBpOTE1X2ZlbmNlX3ZhbHVlX3N0cihzdHJ1 Y3QgZmVuY2UgKmZlbmNlLCBjaGFyICpzdHIsIGludCBzaXplKQoreworCXNucHJpbnRmKHN0ciwg c2l6ZSwgIiV1IiwgZmVuY2UtPnNlcW5vKTsKK30KKworc3RhdGljIHZvaWQgaTkxNV9mZW5jZV90 aW1lbGluZV92YWx1ZV9zdHIoc3RydWN0IGZlbmNlICpmZW5jZSwgY2hhciAqc3RyLAorCQkJCQkg IGludCBzaXplKQoreworCXNucHJpbnRmKHN0ciwgc2l6ZSwgIiV1IiwKKwkJIGludGVsX2VuZ2lu ZV9nZXRfc2Vxbm8odG9fcmVxdWVzdChmZW5jZSktPmVuZ2luZSkpOworfQorCitzdGF0aWMgdm9p ZCBpOTE1X2ZlbmNlX3JlbGVhc2Uoc3RydWN0IGZlbmNlICpmZW5jZSkKK3sKKwlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSA9IHRvX3JlcXVlc3QoZmVuY2UpOworCisJa21lbV9jYWNo ZV9mcmVlKHJlcS0+aTkxNS0+cmVxdWVzdHMsIHJlcSk7Cit9CisKK2NvbnN0IHN0cnVjdCBmZW5j ZV9vcHMgaTkxNV9mZW5jZV9vcHMgPSB7CisJLmdldF9kcml2ZXJfbmFtZSA9IGk5MTVfZmVuY2Vf Z2V0X2RyaXZlcl9uYW1lLAorCS5nZXRfdGltZWxpbmVfbmFtZSA9IGk5MTVfZmVuY2VfZ2V0X3Rp bWVsaW5lX25hbWUsCisJLmVuYWJsZV9zaWduYWxpbmcgPSBpOTE1X2ZlbmNlX2VuYWJsZV9zaWdu YWxpbmcsCisJLnNpZ25hbGVkID0gaTkxNV9mZW5jZV9zaWduYWxlZCwKKwkud2FpdCA9IGk5MTVf ZmVuY2Vfd2FpdCwKKwkucmVsZWFzZSA9IGk5MTVfZmVuY2VfcmVsZWFzZSwKKwkuZmVuY2VfdmFs dWVfc3RyID0gaTkxNV9mZW5jZV92YWx1ZV9zdHIsCisJLnRpbWVsaW5lX3ZhbHVlX3N0ciA9IGk5 MTVfZmVuY2VfdGltZWxpbmVfdmFsdWVfc3RyLAorfTsKKwogaW50IGk5MTVfZ2VtX3JlcXVlc3Rf YWRkX3RvX2NsaWVudChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkJCQkgICBz dHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCiB7CkBAIC0yMTEsNiArMzAwLDcgQEAgX19pOTE1X2dlbV9y ZXF1ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmk5MTU7CiAJdW5zaWduZWQgaW50IHJl c2V0X2NvdW50ZXIgPSBpOTE1X3Jlc2V0X2NvdW50ZXIoJmRldl9wcml2LT5ncHVfZXJyb3IpOwog CXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOworCXUzMiBzZXFubzsKIAlpbnQgcmV0 OwogCiAJaWYgKCFyZXFfb3V0KQpAQCAtMjM3LDExICszMjcsMTcgQEAgX19pOTE1X2dlbV9yZXF1 ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAlpZiAoIXJlcSkKIAkJ cmV0dXJuIC1FTk9NRU07CiAKLQlyZXQgPSBpOTE1X2dlbV9nZXRfc2Vxbm8oZGV2X3ByaXYsICZy ZXEtPnNlcW5vKTsKKwlyZXQgPSBpOTE1X2dlbV9nZXRfc2Vxbm8oZGV2X3ByaXYsICZzZXFubyk7 CiAJaWYgKHJldCkKIAkJZ290byBlcnI7CiAKLQlrcmVmX2luaXQoJnJlcS0+cmVmKTsKKwlzcGlu X2xvY2tfaW5pdCgmcmVxLT5sb2NrKTsKKwlmZW5jZV9pbml0KCZyZXEtPmZlbmNlLAorCQkgICAm aTkxNV9mZW5jZV9vcHMsCisJCSAgICZyZXEtPmxvY2ssCisJCSAgIGVuZ2luZS0+ZmVuY2VfY29u dGV4dCwKKwkJICAgc2Vxbm8pOworCiAJcmVxLT5pOTE1ID0gZGV2X3ByaXY7CiAJcmVxLT5lbmdp bmUgPSBlbmdpbmU7CiAJcmVxLT5jdHggPSBjdHg7CkBAIC0zODQsNyArNDgwLDcgQEAgdm9pZCBf X2k5MTVfYWRkX3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0LAog CSAqLwogCXJlcXVlc3QtPmVtaXR0ZWRfamlmZmllcyA9IGppZmZpZXM7CiAJcmVxdWVzdC0+cHJl dmlvdXNfc2Vxbm8gPSBlbmdpbmUtPmxhc3Rfc3VibWl0dGVkX3NlcW5vOwotCXNtcF9zdG9yZV9t YihlbmdpbmUtPmxhc3Rfc3VibWl0dGVkX3NlcW5vLCByZXF1ZXN0LT5zZXFubyk7CisJc21wX3N0 b3JlX21iKGVuZ2luZS0+bGFzdF9zdWJtaXR0ZWRfc2Vxbm8sIHJlcXVlc3QtPmZlbmNlLnNlcW5v KTsKIAlsaXN0X2FkZF90YWlsKCZyZXF1ZXN0LT5saXN0LCAmZW5naW5lLT5yZXF1ZXN0X2xpc3Qp OwogCiAJLyogUmVjb3JkIHRoZSBwb3NpdGlvbiBvZiB0aGUgc3RhcnQgb2YgdGhlIHJlcXVlc3Qg c28gdGhhdApAQCAtNTU1LDcgKzY1MSw3IEBAIGludCBfX2k5MTVfd2FpdF9yZXF1ZXN0KHN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCXNldF9jdXJyZW50X3N0YXRlKHN0YXRlKTsK IAlhZGRfd2FpdF9xdWV1ZSgmcmVxLT5pOTE1LT5ncHVfZXJyb3Iud2FpdF9xdWV1ZSwgJnJlc2V0 KTsKIAotCWludGVsX3dhaXRfaW5pdCgmd2FpdCwgcmVxLT5zZXFubyk7CisJaW50ZWxfd2FpdF9p bml0KCZ3YWl0LCByZXEtPmZlbmNlLnNlcW5vKTsKIAlpZiAoaW50ZWxfZW5naW5lX2FkZF93YWl0 KHJlcS0+ZW5naW5lLCAmd2FpdCkpCiAJCS8qIEluIG9yZGVyIHRvIGNoZWNrIHRoYXQgd2UgaGF2 ZW4ndCBtaXNzZWQgdGhlIGludGVycnVwdAogCQkgKiBhcyB3ZSBlbmFibGVkIGl0LCB3ZSBuZWVk IHRvIGtpY2sgb3Vyc2VsdmVzIHRvIGRvIGEKQEAgLTYxNiw3ICs3MTIsNyBAQCBjb21wbGV0ZToK IAkJCSp0aW1lb3V0ID0gMDsKIAl9CiAKLQlpZiAocnBzICYmIHJlcS0+c2Vxbm8gPT0gcmVxLT5l bmdpbmUtPmxhc3Rfc3VibWl0dGVkX3NlcW5vKSB7CisJaWYgKHJwcyAmJiByZXEtPmZlbmNlLnNl cW5vID09IHJlcS0+ZW5naW5lLT5sYXN0X3N1Ym1pdHRlZF9zZXFubykgewogCQkvKiBUaGUgR1BV IGlzIG5vdyBpZGxlIGFuZCB0aGlzIGNsaWVudCBoYXMgc3RhbGxlZC4KIAkJICogU2luY2Ugbm8g b3RoZXIgY2xpZW50IGhhcyBzdWJtaXR0ZWQgYSByZXF1ZXN0IGluIHRoZQogCQkgKiBtZWFudGlt ZSwgYXNzdW1lIHRoYXQgdGhpcyBjbGllbnQgaXMgdGhlIG9ubHkgb25lCkBAIC02NTYsMTAgKzc1 MiwzIEBAIGludCBpOTE1X3dhaXRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcSkKIAogCXJldHVybiAwOwogfQotCi12b2lkIGk5MTVfZ2VtX3JlcXVlc3RfZnJlZShzdHJ1 Y3Qga3JlZiAqcmVxX3JlZikKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSA9 Ci0JCWNvbnRhaW5lcl9vZihyZXFfcmVmLCB0eXBlb2YoKnJlcSksIHJlZik7Ci0Ja21lbV9jYWNo ZV9mcmVlKHJlcS0+aTkxNS0+cmVxdWVzdHMsIHJlcSk7Ci19CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9yZXF1ZXN0LmgKaW5kZXggZWE3MDBiZWZjYzI4Li42ZjJjODIwNzg1ZjMgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmgKQEAgLTI1LDYgKzI1LDEwIEBACiAj aWZuZGVmIEk5MTVfR0VNX1JFUVVFU1RfSAogI2RlZmluZSBJOTE1X0dFTV9SRVFVRVNUX0gKIAor I2luY2x1ZGUgPGxpbnV4L2ZlbmNlLmg+CisKKyNpbmNsdWRlICJpOTE1X2dlbS5oIgorCiAvKioK ICAqIFJlcXVlc3QgcXVldWUgc3RydWN0dXJlLgogICoKQEAgLTM2LDExICs0MCwxMSBAQAogICog ZW1pc3Npb24gdGltZSB0byBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJlcXVlc3QgZm9yIHRyYWNr aW5nIGhvdyBmYXIgYWhlYWQKICAqIG9mIHRoZSBHUFUgdGhlIHN1Ym1pc3Npb24gaXMuCiAgKgot ICogVGhlIHJlcXVlc3RzIGFyZSByZWZlcmVuY2UgY291bnRlZCwgc28gdXBvbiBjcmVhdGlvbiB0 aGV5IHNob3VsZCBoYXZlIGFuCi0gKiBpbml0aWFsIHJlZmVyZW5jZSB0YWtlbiB1c2luZyBrcmVm X2luaXQKKyAqIFRoZSByZXF1ZXN0cyBhcmUgcmVmZXJlbmNlIGNvdW50ZWQuCiAgKi8KIHN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCB7Ci0Jc3RydWN0IGtyZWYgcmVmOworCXN0cnVjdCBmZW5j ZSBmZW5jZTsKKwlzcGlubG9ja190IGxvY2s7CiAKIAkvKiogT24gV2hpY2ggcmluZyB0aGlzIHJl cXVlc3Qgd2FzIGdlbmVyYXRlZCAqLwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1OwpA QCAtNjYsMTIgKzcwLDYgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0IHsKIAkgKi8KIAl1 MzIgcHJldmlvdXNfc2Vxbm87CiAKLQkvKiogR0VNIHNlcXVlbmNlIG51bWJlciBhc3NvY2lhdGVk IHdpdGggdGhpcyByZXF1ZXN0LAotCSAqIHdoZW4gdGhlIEhXUyBicmVhZGNydW1iIGlzIGVxdWFs IG9yIGdyZWF0ZXIgdGhhbiB0aGlzIHRoZSBHUFUKLQkgKiBoYXMgZmluaXNoZWQgcHJvY2Vzc2lu ZyB0aGlzIHJlcXVlc3QuCi0JICovCi0JdTMyIHNlcW5vOwotCiAJLyoqIFBvc2l0aW9uIGluIHRo ZSByaW5nYnVmZmVyIG9mIHRoZSBzdGFydCBvZiB0aGUgcmVxdWVzdCAqLwogCXUzMiBoZWFkOwog CkBAIC0xNDAsMTAgKzEzOCwxNiBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgewogCXVu c2lnbmVkIGludCBjdHhfaHdfaWQ7CiB9OwogCitleHRlcm4gY29uc3Qgc3RydWN0IGZlbmNlX29w cyBpOTE1X2ZlbmNlX29wczsKKworc3RhdGljIGlubGluZSBib29sIGZlbmNlX2lzX2k5MTUoc3Ry dWN0IGZlbmNlICpmZW5jZSkKK3sKKwlyZXR1cm4gZmVuY2UtPm9wcyA9PSAmaTkxNV9mZW5jZV9v cHM7Cit9CisKIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqIF9fbXVzdF9jaGVjawogaTkx NV9nZW1fcmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJCSAg ICAgICBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4KTsKLXZvaWQgaTkxNV9nZW1fcmVxdWVz dF9mcmVlKHN0cnVjdCBrcmVmICpyZXFfcmVmKTsKIGludCBpOTE1X2dlbV9yZXF1ZXN0X2FkZF90 b19jbGllbnQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCiAJCQkJICAgc3RydWN0 IGRybV9maWxlICpmaWxlKTsKIHZvaWQgaTkxNV9nZW1fcmVxdWVzdF9yZXRpcmVfdXB0byhzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSk7CkBAIC0xNTEsNyArMTU1LDcgQEAgdm9pZCBp OTE1X2dlbV9yZXF1ZXN0X3JldGlyZV91cHRvKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxKTsKIHN0YXRpYyBpbmxpbmUgdTMyCiBpOTE1X2dlbV9yZXF1ZXN0X2dldF9zZXFubyhzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIHsKLQlyZXR1cm4gcmVxID8gcmVxLT5zZXFu byA6IDA7CisJcmV0dXJuIHJlcSA/IHJlcS0+ZmVuY2Uuc2Vxbm8gOiAwOwogfQogCiBzdGF0aWMg aW5saW5lIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKgpAQCAtMTYxLDE3ICsxNjUsMjQgQEAgaTkx NV9nZW1fcmVxdWVzdF9nZXRfZW5naW5lKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx KQogfQogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqCit0b19y ZXF1ZXN0KHN0cnVjdCBmZW5jZSAqZmVuY2UpCit7CisJLyogV2UgYXNzdW1lIHRoYXQgTlVMTCBm ZW5jZS9yZXF1ZXN0IGFyZSBpbnRlcm9wZXJhYmxlICovCisJQlVJTERfQlVHX09OKG9mZnNldG9m KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCwgZmVuY2UpICE9IDApOworCUdFTV9CVUdfT04o ZmVuY2UgJiYgIWZlbmNlX2lzX2k5MTUoZmVuY2UpKTsKKwlyZXR1cm4gY29udGFpbmVyX29mKGZl bmNlLCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QsIGZlbmNlKTsKK30KKworc3RhdGljIGlu bGluZSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKgogaTkxNV9nZW1fcmVxdWVzdF9yZWZl cmVuY2Uoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB7Ci0JaWYgKHJlcSkKLQkJ a3JlZl9nZXQoJnJlcS0+cmVmKTsKLQlyZXR1cm4gcmVxOworCXJldHVybiB0b19yZXF1ZXN0KGZl bmNlX2dldCgmcmVxLT5mZW5jZSkpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQKIGk5MTVfZ2Vt X3JlcXVlc3RfdW5yZWZlcmVuY2Uoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB7 Ci0Ja3JlZl9wdXQoJnJlcS0+cmVmLCBpOTE1X2dlbV9yZXF1ZXN0X2ZyZWUpOworCWZlbmNlX3B1 dCgmcmVxLT5mZW5jZSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBpOTE1X2dlbV9yZXF1ZXN0 X2Fzc2lnbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKipwZHN0LApAQCAtMjIzLDcgKzIz NCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbAogaTkxNV9nZW1fcmVxdWVzdF9jb21wbGV0ZWQoY29u c3Qgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB7CiAJcmV0dXJuIGk5MTVfc2Vx bm9fcGFzc2VkKGludGVsX2VuZ2luZV9nZXRfc2Vxbm8ocmVxLT5lbmdpbmUpLAotCQkJCSByZXEt PnNlcW5vKTsKKwkJCQkgcmVxLT5mZW5jZS5zZXFubyk7CiB9CiAKIGJvb2wgX19pOTE1X3NwaW5f cmVxdWVzdChjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QsCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwppbmRleCA5ZDczZDIyMTZhZGMuLjZkYWFmNGVj ZDJkYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCkBAIC0xMTgyLDcgKzEx ODIsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZWNvcmRfcmluZ3Moc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAogCQkJfQogCiAJCQllcnEgPSAmZXJyb3ItPnJpbmdbaV0ucmVx dWVzdHNbY291bnQrK107Ci0JCQllcnEtPnNlcW5vID0gcmVxdWVzdC0+c2Vxbm87CisJCQllcnEt PnNlcW5vID0gcmVxdWVzdC0+ZmVuY2Uuc2Vxbm87CiAJCQllcnEtPmppZmZpZXMgPSByZXF1ZXN0 LT5lbWl0dGVkX2ppZmZpZXM7CiAJCQllcnEtPnRhaWwgPSByZXF1ZXN0LT5wb3N0Zml4OwogCQl9 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKaW5kZXggMjExMmUw MjlkYjZhLi4xY2M1ZGUxMjllNzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ3VjX3N1Ym1pc3Npb24uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19z dWJtaXNzaW9uLmMKQEAgLTUwNiw3ICs1MDYsNyBAQCBzdGF0aWMgdm9pZCBndWNfYWRkX3dvcmtx dWV1ZV9pdGVtKHN0cnVjdCBpOTE1X2d1Y19jbGllbnQgKmdjLAogCQkJCQkJCSAgICAgcnEtPmVu Z2luZSk7CiAKIAl3cWktPnJpbmdfdGFpbCA9IHRhaWwgPDwgV1FfUklOR19UQUlMX1NISUZUOwot CXdxaS0+ZmVuY2VfaWQgPSBycS0+c2Vxbm87CisJd3FpLT5mZW5jZV9pZCA9IHJxLT5mZW5jZS5z ZXFubzsKIAogCWt1bm1hcF9hdG9taWMoYmFzZSk7CiB9CkBAIC02MDEsNyArNjAxLDcgQEAgaW50 IGk5MTVfZ3VjX3N1Ym1pdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJxKQogCQljbGll bnQtPmJfZmFpbCArPSAxOwogCiAJZ3VjLT5zdWJtaXNzaW9uc1tlbmdpbmVfaWRdICs9IDE7Ci0J Z3VjLT5sYXN0X3NlcW5vW2VuZ2luZV9pZF0gPSBycS0+c2Vxbm87CisJZ3VjLT5sYXN0X3NlcW5v W2VuZ2luZV9pZF0gPSBycS0+ZmVuY2Uuc2Vxbm87CiAKIAlyZXR1cm4gYl9yZXQ7CiB9CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3RyYWNlLmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3RyYWNlLmgKaW5kZXggNTM0MTU0ZTA1ZmJlLi4wMDcxMTJkMWUwNDkgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdHJhY2UuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3RyYWNlLmgKQEAgLTQ2NSw3ICs0NjUsNyBAQCBUUkFDRV9FVkVO VChpOTE1X2dlbV9yaW5nX3N5bmNfdG8sCiAJCQkgICBfX2VudHJ5LT5kZXYgPSBmcm9tLT5pOTE1 LT5kcm0ucHJpbWFyeS0+aW5kZXg7CiAJCQkgICBfX2VudHJ5LT5zeW5jX2Zyb20gPSBmcm9tLT5p ZDsKIAkJCSAgIF9fZW50cnktPnN5bmNfdG8gPSB0b19yZXEtPmVuZ2luZS0+aWQ7Ci0JCQkgICBf X2VudHJ5LT5zZXFubyA9IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3NlcW5vKHJlcSk7CisJCQkgICBf X2VudHJ5LT5zZXFubyA9IHJlcS0+ZmVuY2Uuc2Vxbm87CiAJCQkgICApLAogCiAJICAgIFRQX3By aW50aygiZGV2PSV1LCBzeW5jLWZyb209JXUsIHN5bmMtdG89JXUsIHNlcW5vPSV1IiwKQEAgLTQ4 OCw5ICs0ODgsOSBAQCBUUkFDRV9FVkVOVChpOTE1X2dlbV9yaW5nX2Rpc3BhdGNoLAogCSAgICBU UF9mYXN0X2Fzc2lnbigKIAkJCSAgIF9fZW50cnktPmRldiA9IHJlcS0+aTkxNS0+ZHJtLnByaW1h cnktPmluZGV4OwogCQkJICAgX19lbnRyeS0+cmluZyA9IHJlcS0+ZW5naW5lLT5pZDsKLQkJCSAg IF9fZW50cnktPnNlcW5vID0gcmVxLT5zZXFubzsKKwkJCSAgIF9fZW50cnktPnNlcW5vID0gcmVx LT5mZW5jZS5zZXFubzsKIAkJCSAgIF9fZW50cnktPmZsYWdzID0gZmxhZ3M7Ci0JCQkgICBpbnRl bF9lbmdpbmVfZW5hYmxlX3NpZ25hbGluZyhyZXEpOworCQkJICAgZmVuY2VfZW5hYmxlX3N3X3Np Z25hbGluZygmcmVxLT5mZW5jZSk7CiAJCQkgICApLAogCiAJICAgIFRQX3ByaW50aygiZGV2PSV1 LCByaW5nPSV1LCBzZXFubz0ldSwgZmxhZ3M9JXgiLApAQCAtNTMzLDcgKzUzMyw3IEBAIERFQ0xB UkVfRVZFTlRfQ0xBU1MoaTkxNV9nZW1fcmVxdWVzdCwKIAkgICAgVFBfZmFzdF9hc3NpZ24oCiAJ CQkgICBfX2VudHJ5LT5kZXYgPSByZXEtPmk5MTUtPmRybS5wcmltYXJ5LT5pbmRleDsKIAkJCSAg IF9fZW50cnktPnJpbmcgPSByZXEtPmVuZ2luZS0+aWQ7Ci0JCQkgICBfX2VudHJ5LT5zZXFubyA9 IHJlcS0+c2Vxbm87CisJCQkgICBfX2VudHJ5LT5zZXFubyA9IHJlcS0+ZmVuY2Uuc2Vxbm87CiAJ CQkgICApLAogCiAJICAgIFRQX3ByaW50aygiZGV2PSV1LCByaW5nPSV1LCBzZXFubz0ldSIsCkBA IC01OTUsNyArNTk1LDcgQEAgVFJBQ0VfRVZFTlQoaTkxNV9nZW1fcmVxdWVzdF93YWl0X2JlZ2lu LAogCSAgICBUUF9mYXN0X2Fzc2lnbigKIAkJCSAgIF9fZW50cnktPmRldiA9IHJlcS0+aTkxNS0+ ZHJtLnByaW1hcnktPmluZGV4OwogCQkJICAgX19lbnRyeS0+cmluZyA9IHJlcS0+ZW5naW5lLT5p ZDsKLQkJCSAgIF9fZW50cnktPnNlcW5vID0gcmVxLT5zZXFubzsKKwkJCSAgIF9fZW50cnktPnNl cW5vID0gcmVxLT5mZW5jZS5zZXFubzsKIAkJCSAgIF9fZW50cnktPmJsb2NraW5nID0KIAkJCQkg ICAgIG11dGV4X2lzX2xvY2tlZCgmcmVxLT5pOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAkJCSAg ICksCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9icmVhZGNydW1icy5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYnJlYWRjcnVtYnMuYwppbmRleCBiMDc0ZjNk NmQxMjcuLjMyYWRhNDFkZWRmYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfYnJlYWRjcnVtYnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9icmVhZGNy dW1icy5jCkBAIC00MzYsNiArNDM2LDcgQEAgc3RhdGljIGludCBpbnRlbF9icmVhZGNydW1ic19z aWduYWxlcih2b2lkICphcmcpCiAJCQkgKi8KIAkJCWludGVsX2VuZ2luZV9yZW1vdmVfd2FpdChl bmdpbmUsCiAJCQkJCQkgJnJlcXVlc3QtPnNpZ25hbGluZy53YWl0KTsKKwkJCWZlbmNlX3NpZ25h bCgmcmVxdWVzdC0+ZmVuY2UpOwogCiAJCQkvKiBGaW5kIHRoZSBuZXh0IG9sZGVzdCBzaWduYWwu IE5vdGUgdGhhdCBhcyB3ZSBoYXZlCiAJCQkgKiBub3QgYmVlbiBob2xkaW5nIHRoZSBsb2NrLCBh bm90aGVyIGNsaWVudCBtYXkKQEAgLTQ4Miw3ICs0ODMsNyBAQCB2b2lkIGludGVsX2VuZ2luZV9l bmFibGVfc2lnbmFsaW5nKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKIAl9 CiAKIAlyZXF1ZXN0LT5zaWduYWxpbmcud2FpdC50c2sgPSBiLT5zaWduYWxlcjsKLQlyZXF1ZXN0 LT5zaWduYWxpbmcud2FpdC5zZXFubyA9IHJlcXVlc3QtPnNlcW5vOworCXJlcXVlc3QtPnNpZ25h bGluZy53YWl0LnNlcW5vID0gcmVxdWVzdC0+ZmVuY2Uuc2Vxbm87CiAJaTkxNV9nZW1fcmVxdWVz dF9yZWZlcmVuY2UocmVxdWVzdCk7CiAKIAkvKiBGaXJzdCBhZGQgb3Vyc2VsdmVzIGludG8gdGhl IGxpc3Qgb2Ygd2FpdGVycywgYnV0IHJlZ2lzdGVyIG91cgpAQCAtNTA0LDggKzUwNSw4IEBAIHZv aWQgaW50ZWxfZW5naW5lX2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXF1ZXN0KQogCXAgPSAmYi0+c2lnbmFscy5yYl9ub2RlOwogCXdoaWxlICgqcCkgewog CQlwYXJlbnQgPSAqcDsKLQkJaWYgKGk5MTVfc2Vxbm9fcGFzc2VkKHJlcXVlc3QtPnNlcW5vLAot CQkJCSAgICAgIHRvX3NpZ25hbGVyKHBhcmVudCktPnNlcW5vKSkgeworCQlpZiAoaTkxNV9zZXFu b19wYXNzZWQocmVxdWVzdC0+ZmVuY2Uuc2Vxbm8sCisJCQkJICAgICAgdG9fc2lnbmFsZXIocGFy ZW50KS0+ZmVuY2Uuc2Vxbm8pKSB7CiAJCQlwID0gJnBhcmVudC0+cmJfcmlnaHQ7CiAJCQlmaXJz dCA9IGZhbHNlOwogCQl9IGVsc2UgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwppbmRleCBkNDdk MWEwZGJiOTEuLmIyMjkzMTg5MGE0YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbHJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKQEAgLTE4 MDIsNyArMTgwMiw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9lbWl0X3JlcXVlc3Qoc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQogCQkJCWludGVsX2h3c19zZXFub19hZGRyZXNzKHJl cXVlc3QtPmVuZ2luZSkgfAogCQkJCU1JX0ZMVVNIX0RXX1VTRV9HVFQpOwogCWludGVsX2xvZ2lj YWxfcmluZ19lbWl0KHJpbmdidWYsIDApOwotCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdi dWYsIHJlcXVlc3QtPnNlcW5vKTsKKwlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBy ZXF1ZXN0LT5mZW5jZS5zZXFubyk7CiAJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1Ziwg TUlfVVNFUl9JTlRFUlJVUFQpOwogCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIE1J X05PT1ApOwogCXJldHVybiBpbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5jZV9hbmRfc3VibWl0KHJl cXVlc3QpOwpAQCAtMjEyMCw2ICsyMTIwLDcgQEAgbG9naWNhbF9yaW5nX3NldHVwKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQpCiAJZW5n aW5lLT5leGVjX2lkID0gaW5mby0+ZXhlY19pZDsKIAllbmdpbmUtPmd1Y19pZCA9IGluZm8tPmd1 Y19pZDsKIAllbmdpbmUtPm1taW9fYmFzZSA9IGluZm8tPm1taW9fYmFzZTsKKwllbmdpbmUtPmZl bmNlX2NvbnRleHQgPSBmZW5jZV9jb250ZXh0X2FsbG9jKDEpOwogCiAJZW5naW5lLT5pOTE1ID0g ZGV2X3ByaXY7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwppbmRleCA2 MWUwMGJmOWU4N2YuLjI5ZGE3YTdhZmY4NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcmluZ2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuYwpAQCAtMTM1Miw3ICsxMzUyLDcgQEAgc3RhdGljIGludCBnZW44X3Jjc19zaWdu YWwoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpzaWduYWxsZXJfcmVxLAogCQkJCQkgICBQ SVBFX0NPTlRST0xfQ1NfU1RBTEwpOwogCQlpbnRlbF9yaW5nX2VtaXQoc2lnbmFsbGVyLCBsb3dl cl8zMl9iaXRzKGd0dF9vZmZzZXQpKTsKIAkJaW50ZWxfcmluZ19lbWl0KHNpZ25hbGxlciwgdXBw ZXJfMzJfYml0cyhndHRfb2Zmc2V0KSk7Ci0JCWludGVsX3JpbmdfZW1pdChzaWduYWxsZXIsIHNp Z25hbGxlcl9yZXEtPnNlcW5vKTsKKwkJaW50ZWxfcmluZ19lbWl0KHNpZ25hbGxlciwgc2lnbmFs bGVyX3JlcS0+ZmVuY2Uuc2Vxbm8pOwogCQlpbnRlbF9yaW5nX2VtaXQoc2lnbmFsbGVyLCAwKTsK IAkJaW50ZWxfcmluZ19lbWl0KHNpZ25hbGxlciwgTUlfU0VNQVBIT1JFX1NJR05BTCB8CiAJCQkJ CSAgIE1JX1NFTUFQSE9SRV9UQVJHRVQod2FpdGVyLT5od19pZCkpOwpAQCAtMTM5MCw3ICsxMzkw LDcgQEAgc3RhdGljIGludCBnZW44X3hjc19zaWduYWwoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpzaWduYWxsZXJfcmVxLAogCQlpbnRlbF9yaW5nX2VtaXQoc2lnbmFsbGVyLCBsb3dlcl8z Ml9iaXRzKGd0dF9vZmZzZXQpIHwKIAkJCQkJICAgTUlfRkxVU0hfRFdfVVNFX0dUVCk7CiAJCWlu dGVsX3JpbmdfZW1pdChzaWduYWxsZXIsIHVwcGVyXzMyX2JpdHMoZ3R0X29mZnNldCkpOwotCQlp bnRlbF9yaW5nX2VtaXQoc2lnbmFsbGVyLCBzaWduYWxsZXJfcmVxLT5zZXFubyk7CisJCWludGVs X3JpbmdfZW1pdChzaWduYWxsZXIsIHNpZ25hbGxlcl9yZXEtPmZlbmNlLnNlcW5vKTsKIAkJaW50 ZWxfcmluZ19lbWl0KHNpZ25hbGxlciwgTUlfU0VNQVBIT1JFX1NJR05BTCB8CiAJCQkJCSAgIE1J X1NFTUFQSE9SRV9UQVJHRVQod2FpdGVyLT5od19pZCkpOwogCQlpbnRlbF9yaW5nX2VtaXQoc2ln bmFsbGVyLCAwKTsKQEAgLTE0MjMsNyArMTQyMyw3IEBAIHN0YXRpYyBpbnQgZ2VuNl9zaWduYWwo c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpzaWduYWxsZXJfcmVxLAogCQlpZiAoaTkxNV9t bWlvX3JlZ192YWxpZChtYm94X3JlZykpIHsKIAkJCWludGVsX3JpbmdfZW1pdChzaWduYWxsZXIs IE1JX0xPQURfUkVHSVNURVJfSU1NKDEpKTsKIAkJCWludGVsX3JpbmdfZW1pdF9yZWcoc2lnbmFs bGVyLCBtYm94X3JlZyk7Ci0JCQlpbnRlbF9yaW5nX2VtaXQoc2lnbmFsbGVyLCBzaWduYWxsZXJf cmVxLT5zZXFubyk7CisJCQlpbnRlbF9yaW5nX2VtaXQoc2lnbmFsbGVyLCBzaWduYWxsZXJfcmVx LT5mZW5jZS5zZXFubyk7CiAJCX0KIAl9CiAKQEAgLTE0NTksNyArMTQ1OSw3IEBAIGdlbjZfYWRk X3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiAJaW50ZWxfcmluZ19l bWl0KGVuZ2luZSwgTUlfU1RPUkVfRFdPUkRfSU5ERVgpOwogCWludGVsX3JpbmdfZW1pdChlbmdp bmUsCiAJCQlJOTE1X0dFTV9IV1NfSU5ERVggPDwgTUlfU1RPUkVfRFdPUkRfSU5ERVhfU0hJRlQp OwotCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIHJlcS0+c2Vxbm8pOworCWludGVsX3JpbmdfZW1p dChlbmdpbmUsIHJlcS0+ZmVuY2Uuc2Vxbm8pOwogCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIE1J X1VTRVJfSU5URVJSVVBUKTsKIAlfX2ludGVsX3JpbmdfYWR2YW5jZShlbmdpbmUpOwogCkBAIC0x NzA4LDcgKzE3MDgsNyBAQCBpOXh4X2FkZF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxKQogCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIE1JX1NUT1JFX0RXT1JEX0lOREVY KTsKIAlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLAogCQkJSTkxNV9HRU1fSFdTX0lOREVYIDw8IE1J X1NUT1JFX0RXT1JEX0lOREVYX1NISUZUKTsKLQlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCByZXEt PnNlcW5vKTsKKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCByZXEtPmZlbmNlLnNlcW5vKTsKIAlp bnRlbF9yaW5nX2VtaXQoZW5naW5lLCBNSV9VU0VSX0lOVEVSUlVQVCk7CiAJX19pbnRlbF9yaW5n X2FkdmFuY2UoZW5naW5lKTsKIApAQCAtMjE3Nyw2ICsyMTc3LDcgQEAgc3RhdGljIGludCBpbnRl bF9pbml0X3JpbmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJV0FSTl9PTihlbmdp bmUtPmJ1ZmZlcik7CiAKIAllbmdpbmUtPmk5MTUgPSBkZXZfcHJpdjsKKwllbmdpbmUtPmZlbmNl X2NvbnRleHQgPSBmZW5jZV9jb250ZXh0X2FsbG9jKDEpOwogCUlOSVRfTElTVF9IRUFEKCZlbmdp bmUtPmFjdGl2ZV9saXN0KTsKIAlJTklUX0xJU1RfSEVBRCgmZW5naW5lLT5yZXF1ZXN0X2xpc3Qp OwogCUlOSVRfTElTVF9IRUFEKCZlbmdpbmUtPmV4ZWNsaXN0X3F1ZXVlKTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAppbmRleCAxMmNiN2VkOTAwMTQuLjNkNDdlMjM5OTFj YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaApAQCAtMTQ2LDYgKzE0 Niw3IEBAIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgewogCXVuc2lnbmVkIGludCBleGVjX2lkOwog CXVuc2lnbmVkIGludCBod19pZDsKIAl1bnNpZ25lZCBpbnQgZ3VjX2lkOyAvKiBYWFggc2FtZSBh cyBod19pZD8gKi8KKwl1NjQgZmVuY2VfY29udGV4dDsKIAl1MzIJCW1taW9fYmFzZTsKIAlzdHJ1 Y3QgaW50ZWxfcmluZ2J1ZmZlciAqYnVmZmVyOwogCXN0cnVjdCBsaXN0X2hlYWQgYnVmZmVyczsK LS0gCjIuOC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK