From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 4/8] drm/i915: Allocate a common scratch page Date: Mon, 3 Dec 2018 11:36:57 +0000 Message-ID: <20181203113701.12106-4-chris@chris-wilson.co.uk> References: <20181203113701.12106-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 0876389DEA for ; Mon, 3 Dec 2018 11:37:28 +0000 (UTC) In-Reply-To: <20181203113701.12106-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 Q3VycmVudGx5IHdlIGFsbG9jYXRlIGEgc2NyYXRjaCBwYWdlIGZvciBlYWNoIGVuZ2luZSwgYnV0 IHNpbmNlIHdlIG9ubHkKZXZlciB3cml0ZSBpbnRvIGl0IGZvciBwb3N0LXN5bmMgb3BlcmF0aW9u cywgaXQgaXMgbm90IGV4cG9zZWQgdG8KdXNlcnNwYWNlIG5vciBkbyB3ZSBjYXJlIGZvciBjb2hl cmVuY3kuIEFzIHdlIHRoZW4gZG8gbm90IGNhcmUgYWJvdXQgaXRzCmNvbnRlbnRzLCB3ZSBjYW4g dXNlIG9uZSBwYWdlIGZvciBhbGwsIHJlZHVjaW5nIG91ciBhbGxvY2F0aW9ucyBhbmQKYXZvaWQg Y29tcGxpY2F0aW9ucyBieSBub3QgYXNzdW1pbmcgcGVyLWVuZ2luZSBpc29sYXRpb24uCgpGb3Ig bGF0ZXIgdXNlLCBpdCBzaW1wbGlmaWVzIGVuZ2luZSBpbml0aWFsaXNhdGlvbiAoYnkgcmVtb3Zp bmcgdGhlCmFsbG9jYXRpb24gdGhhdCByZXF1aXJlZCBzdHJ1Y3RfbXV0ZXghKSBhbmQgbWVhbnMg dGhhdCB3ZSBjYW4gYWx3YXlzIHJlbHkKb24gdGhlcmUgYmVpbmcgYSBzY3JhdGNoIHBhZ2UuCgpT aWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KQ2M6 IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgIHwgIDcgKysrKwogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYyAgICAgICAgIHwgNTAgKysrKysrKysrKysrKysrKysrKysrKysrLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyAgIHwgIDIgKy0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jICB8IDQyIC0tLS0tLS0tLS0tLS0tLS0tLS0t LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgIHwgMTcgKysrLS0tLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgfCAzMyArKysrKy0tLS0t LS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggfCAgNSAtLS0K IDcgZmlsZXMgY2hhbmdlZCwgNzEgaW5zZXJ0aW9ucygrKSwgODUgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggZDQ1NDc1Mjg3MTMwLi4wZWM2NWNjNDhiNWEgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMTk5Niw2ICsxOTk2LDggQEAgc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgewogCQlzdHJ1Y3QgZGVsYXllZF93b3JrIGlkbGVfd29yazsKIAogCQlrdGltZV90 IGxhc3RfaW5pdF90aW1lOworCisJCXN0cnVjdCBpOTE1X3ZtYSAqc2NyYXRjaDsKIAl9IGd0Owog CiAJLyogcGVyZm9ybSBQSFkgc3RhdGUgc2FuaXR5IGNoZWNrcz8gKi8KQEAgLTM3MjQsNCArMzcy Niw5IEBAIHN0YXRpYyBpbmxpbmUgaW50IGludGVsX2h3c19jc2Jfd3JpdGVfaW5kZXgoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJCXJldHVybiBJOTE1X0hXU19DU0JfV1JJVEVfSU5E RVg7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdTMyIGk5MTVfc2NyYXRjaF9vZmZzZXQoY29uc3Qgc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCit7CisJcmV0dXJuIGk5MTVfZ2d0dF9vZmZzZXQo aTkxNS0+Z3Quc2NyYXRjaCk7Cit9CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5k ZXggODM0MjQwYTliMjYyLi5jY2E0Mjg1ZTMzMjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpA QCAtNTQ5NSw2ICs1NDk1LDQ0IEBAIHN0YXRpYyBpbnQgX19pbnRlbF9lbmdpbmVzX3JlY29yZF9k ZWZhdWx0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlnb3RvIG91dF9jdHg7CiB9 CiAKK3N0YXRpYyBpbnQKK2k5MTVfZ2VtX2luaXRfc2NyYXRjaChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSwgdW5zaWduZWQgaW50IHNpemUpCit7CisJc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iajsKKwlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKKwlpbnQgcmV0OworCisJb2JqID0g aTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oaTkxNSwgc2l6ZSk7CisJaWYgKCFvYmopCisJ CW9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfaW50ZXJuYWwoaTkxNSwgc2l6ZSk7CisJaWYg KElTX0VSUihvYmopKSB7CisJCURSTV9FUlJPUigiRmFpbGVkIHRvIGFsbG9jYXRlIHNjcmF0Y2gg cGFnZVxuIik7CisJCXJldHVybiBQVFJfRVJSKG9iaik7CisJfQorCisJdm1hID0gaTkxNV92bWFf aW5zdGFuY2Uob2JqLCAmaTkxNS0+Z2d0dC52bSwgTlVMTCk7CisJaWYgKElTX0VSUih2bWEpKSB7 CisJCXJldCA9IFBUUl9FUlIodm1hKTsKKwkJZ290byBlcnJfdW5yZWY7CisJfQorCisJcmV0ID0g aTkxNV92bWFfcGluKHZtYSwgMCwgMCwgUElOX0dMT0JBTCB8IFBJTl9ISUdIKTsKKwlpZiAocmV0 KQorCQlnb3RvIGVycl91bnJlZjsKKworCWk5MTUtPmd0LnNjcmF0Y2ggPSB2bWE7CisJcmV0dXJu IDA7CisKK2Vycl91bnJlZjoKKwlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7CisJcmV0dXJuIHJl dDsKK30KKworc3RhdGljIHZvaWQgaTkxNV9nZW1fZmluaV9zY3JhdGNoKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1KQoreworCWk5MTVfdm1hX3VucGluX2FuZF9yZWxlYXNlKCZpOTE1LT5n dC5zY3JhdGNoLCAwKTsKK30KKwogaW50IGk5MTVfZ2VtX2luaXQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQogewogCWludCByZXQ7CkBAIC01NTQxLDEyICs1NTc5LDE5IEBAIGlu dCBpOTE1X2dlbV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJZ290 byBlcnJfdW5sb2NrOwogCX0KIAotCXJldCA9IGk5MTVfZ2VtX2NvbnRleHRzX2luaXQoZGV2X3By aXYpOworCXJldCA9IGk5MTVfZ2VtX2luaXRfc2NyYXRjaChkZXZfcHJpdiwKKwkJCQkgICAgSVNf R0VOMihkZXZfcHJpdikgPyBTWl8yNTZLIDogUEFHRV9TSVpFKTsKIAlpZiAocmV0KSB7CiAJCUdF TV9CVUdfT04ocmV0ID09IC1FSU8pOwogCQlnb3RvIGVycl9nZ3R0OwogCX0KIAorCXJldCA9IGk5 MTVfZ2VtX2NvbnRleHRzX2luaXQoZGV2X3ByaXYpOworCWlmIChyZXQpIHsKKwkJR0VNX0JVR19P TihyZXQgPT0gLUVJTyk7CisJCWdvdG8gZXJyX3NjcmF0Y2g7CisJfQorCiAJcmV0ID0gaW50ZWxf ZW5naW5lc19pbml0KGRldl9wcml2KTsKIAlpZiAocmV0KSB7CiAJCUdFTV9CVUdfT04ocmV0ID09 IC1FSU8pOwpAQCAtNTYxOSw2ICs1NjY0LDggQEAgaW50IGk5MTVfZ2VtX2luaXQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogZXJyX2NvbnRleHQ6CiAJaWYgKHJldCAhPSAtRUlP KQogCQlpOTE1X2dlbV9jb250ZXh0c19maW5pKGRldl9wcml2KTsKK2Vycl9zY3JhdGNoOgorCWk5 MTVfZ2VtX2Zpbmlfc2NyYXRjaChkZXZfcHJpdik7CiBlcnJfZ2d0dDoKIGVycl91bmxvY2s6CiAJ aW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9wdXQoZGV2X3ByaXYsIEZPUkNFV0FLRV9BTEwpOwpAQCAt NTY3MCw2ICs1NzE3LDcgQEAgdm9pZCBpOTE1X2dlbV9maW5pKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKIAlpbnRlbF91Y19maW5pKGRldl9wcml2KTsKIAlpOTE1X2dlbV9jbGVh bnVwX2VuZ2luZXMoZGV2X3ByaXYpOwogCWk5MTVfZ2VtX2NvbnRleHRzX2ZpbmkoZGV2X3ByaXYp OworCWk5MTVfZ2VtX2Zpbmlfc2NyYXRjaChkZXZfcHJpdik7CiAJbXV0ZXhfdW5sb2NrKCZkZXZf cHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7CiAKIAlpbnRlbF9jbGVhbnVwX2d0X3Bvd2Vyc2F2ZShk ZXZfcHJpdik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJv ci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwppbmRleCBhNjg4NWE1 OTU2OGIuLjA3NDY1MTIzYzE2NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9ncHVfZXJyb3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5j CkBAIC0xNTcxLDcgKzE1NzEsNyBAQCBzdGF0aWMgdm9pZCBnZW1fcmVjb3JkX3JpbmdzKHN0cnVj dCBpOTE1X2dwdV9zdGF0ZSAqZXJyb3IpCiAJCQlpZiAoSEFTX0JST0tFTl9DU19UTEIoaTkxNSkp CiAJCQkJZWUtPndhX2JhdGNoYnVmZmVyID0KIAkJCQkJaTkxNV9lcnJvcl9vYmplY3RfY3JlYXRl KGk5MTUsCi0JCQkJCQkJCSBlbmdpbmUtPnNjcmF0Y2gpOworCQkJCQkJCQkgaTkxNS0+Z3Quc2Ny YXRjaCk7CiAJCQlyZXF1ZXN0X3JlY29yZF91c2VyX2JvKHJlcXVlc3QsIGVlKTsKIAogCQkJZWUt PmN0eCA9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3Mu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCmluZGV4IDc1OWMwZmQ1 OGY4Yy4uMjM5MDk4NTM4NGQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9lbmdpbmVfY3MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3Mu YwpAQCAtNDkzLDQ2ICs0OTMsNiBAQCB2b2lkIGludGVsX2VuZ2luZV9zZXR1cF9jb21tb24oc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCWludGVsX2VuZ2luZV9pbml0X2NtZF9wYXJz ZXIoZW5naW5lKTsKIH0KIAotaW50IGludGVsX2VuZ2luZV9jcmVhdGVfc2NyYXRjaChzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUsCi0JCQkJdW5zaWduZWQgaW50IHNpemUpCi17Ci0Jc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKLQlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKLQlp bnQgcmV0OwotCi0JV0FSTl9PTihlbmdpbmUtPnNjcmF0Y2gpOwotCi0Jb2JqID0gaTkxNV9nZW1f b2JqZWN0X2NyZWF0ZV9zdG9sZW4oZW5naW5lLT5pOTE1LCBzaXplKTsKLQlpZiAoIW9iaikKLQkJ b2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9pbnRlcm5hbChlbmdpbmUtPmk5MTUsIHNpemUp OwotCWlmIChJU19FUlIob2JqKSkgewotCQlEUk1fRVJST1IoIkZhaWxlZCB0byBhbGxvY2F0ZSBz Y3JhdGNoIHBhZ2VcbiIpOwotCQlyZXR1cm4gUFRSX0VSUihvYmopOwotCX0KLQotCXZtYSA9IGk5 MTVfdm1hX2luc3RhbmNlKG9iaiwgJmVuZ2luZS0+aTkxNS0+Z2d0dC52bSwgTlVMTCk7Ci0JaWYg KElTX0VSUih2bWEpKSB7Ci0JCXJldCA9IFBUUl9FUlIodm1hKTsKLQkJZ290byBlcnJfdW5yZWY7 Ci0JfQotCi0JcmV0ID0gaTkxNV92bWFfcGluKHZtYSwgMCwgMCwgUElOX0dMT0JBTCB8IFBJTl9I SUdIKTsKLQlpZiAocmV0KQotCQlnb3RvIGVycl91bnJlZjsKLQotCWVuZ2luZS0+c2NyYXRjaCA9 IHZtYTsKLQlyZXR1cm4gMDsKLQotZXJyX3VucmVmOgotCWk5MTVfZ2VtX29iamVjdF9wdXQob2Jq KTsKLQlyZXR1cm4gcmV0OwotfQotCi12b2lkIGludGVsX2VuZ2luZV9jbGVhbnVwX3NjcmF0Y2go c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQotewotCWk5MTVfdm1hX3VucGluX2FuZF9y ZWxlYXNlKCZlbmdpbmUtPnNjcmF0Y2gsIDApOwotfQotCiBzdGF0aWMgdm9pZCBjbGVhbnVwX3N0 YXR1c19wYWdlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKIAlpZiAoSFdTX05F RURTX1BIWVNJQ0FMKGVuZ2luZS0+aTkxNSkpIHsKQEAgLTcwNyw4ICs2NjcsNiBAQCB2b2lkIGlu dGVsX2VuZ2luZV9jbGVhbnVwX2NvbW1vbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp CiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBlbmdpbmUtPmk5MTU7CiAKLQlp bnRlbF9lbmdpbmVfY2xlYW51cF9zY3JhdGNoKGVuZ2luZSk7Ci0KIAljbGVhbnVwX3N0YXR1c19w YWdlKGVuZ2luZSk7CiAKIAlpbnRlbF9lbmdpbmVfZmluaV9icmVhZGNydW1icyhlbmdpbmUpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9scmMuYwppbmRleCBiNTUxMWEwNTRmMzAuLmRlMDcwZGNhNDAzMyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKQEAgLTEyODYsOSArMTI4NiwxMCBAQCBzdGF0aWMg aW50IGV4ZWNsaXN0c19yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3Qp CiBzdGF0aWMgdTMyICoKIGdlbjhfZW1pdF9mbHVzaF9jb2hlcmVudGwzX3dhKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSwgdTMyICpiYXRjaCkKIHsKKwkvKiBOQiBubyBvbmUgZWxzZSBp cyBhbGxvd2VkIHRvIHNjcmliYmxlIG92ZXIgc2NyYXRjaCArIDI1NiEgKi8KIAkqYmF0Y2grKyA9 IE1JX1NUT1JFX1JFR0lTVEVSX01FTV9HRU44IHwgTUlfU1JNX0xSTV9HTE9CQUxfR1RUOwogCSpi YXRjaCsrID0gaTkxNV9tbWlvX3JlZ19vZmZzZXQoR0VOOF9MM1NRQ1JFRzQpOwotCSpiYXRjaCsr ID0gaTkxNV9nZ3R0X29mZnNldChlbmdpbmUtPnNjcmF0Y2gpICsgMjU2OworCSpiYXRjaCsrID0g aTkxNV9zY3JhdGNoX29mZnNldChlbmdpbmUtPmk5MTUpICsgMjU2OwogCSpiYXRjaCsrID0gMDsK IAogCSpiYXRjaCsrID0gTUlfTE9BRF9SRUdJU1RFUl9JTU0oMSk7CkBAIC0xMzAyLDcgKzEzMDMs NyBAQCBnZW44X2VtaXRfZmx1c2hfY29oZXJlbnRsM193YShzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUsIHUzMiAqYmF0Y2gpCiAKIAkqYmF0Y2grKyA9IE1JX0xPQURfUkVHSVNURVJfTUVN X0dFTjggfCBNSV9TUk1fTFJNX0dMT0JBTF9HVFQ7CiAJKmJhdGNoKysgPSBpOTE1X21taW9fcmVn X29mZnNldChHRU44X0wzU1FDUkVHNCk7Ci0JKmJhdGNoKysgPSBpOTE1X2dndHRfb2Zmc2V0KGVu Z2luZS0+c2NyYXRjaCkgKyAyNTY7CisJKmJhdGNoKysgPSBpOTE1X3NjcmF0Y2hfb2Zmc2V0KGVu Z2luZS0+aTkxNSkgKyAyNTY7CiAJKmJhdGNoKysgPSAwOwogCiAJcmV0dXJuIGJhdGNoOwpAQCAt MTMzOSw3ICsxMzQwLDcgQEAgc3RhdGljIHUzMiAqZ2VuOF9pbml0X2luZGlyZWN0Y3R4X2JiKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgdTMyICpiYXRjaCkKIAkJCQkgICAgICAgUElQ RV9DT05UUk9MX0dMT0JBTF9HVFRfSVZCIHwKIAkJCQkgICAgICAgUElQRV9DT05UUk9MX0NTX1NU QUxMIHwKIAkJCQkgICAgICAgUElQRV9DT05UUk9MX1FXX1dSSVRFLAotCQkJCSAgICAgICBpOTE1 X2dndHRfb2Zmc2V0KGVuZ2luZS0+c2NyYXRjaCkgKworCQkJCSAgICAgICBpOTE1X3NjcmF0Y2hf b2Zmc2V0KGVuZ2luZS0+aTkxNSkgKwogCQkJCSAgICAgICAyICogQ0FDSEVMSU5FX0JZVEVTKTsK IAogCSpiYXRjaCsrID0gTUlfQVJCX09OX09GRiB8IE1JX0FSQl9FTkFCTEU7CkBAIC0xOTY5LDcg KzE5NzAsNyBAQCBzdGF0aWMgaW50IGdlbjhfZW1pdF9mbHVzaF9yZW5kZXIoc3RydWN0IGk5MTVf cmVxdWVzdCAqcmVxdWVzdCwKIHsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSBy ZXF1ZXN0LT5lbmdpbmU7CiAJdTMyIHNjcmF0Y2hfYWRkciA9Ci0JCWk5MTVfZ2d0dF9vZmZzZXQo ZW5naW5lLT5zY3JhdGNoKSArIDIgKiBDQUNIRUxJTkVfQllURVM7CisJCWk5MTVfc2NyYXRjaF9v ZmZzZXQoZW5naW5lLT5pOTE1KSArIDIgKiBDQUNIRUxJTkVfQllURVM7CiAJYm9vbCB2Zl9mbHVz aF93YSA9IGZhbHNlLCBkY19mbHVzaF93YSA9IGZhbHNlOwogCXUzMiAqY3MsIGZsYWdzID0gMDsK IAlpbnQgbGVuOwpAQCAtMjMwNiwxMCArMjMwNyw2IEBAIGludCBsb2dpY2FsX3JlbmRlcl9yaW5n X2luaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCWlmIChyZXQpCiAJCXJldHVy biByZXQ7CiAKLQlyZXQgPSBpbnRlbF9lbmdpbmVfY3JlYXRlX3NjcmF0Y2goZW5naW5lLCBQQUdF X1NJWkUpOwotCWlmIChyZXQpCi0JCWdvdG8gZXJyX2NsZWFudXBfY29tbW9uOwotCiAJcmV0ID0g aW50ZWxfaW5pdF93b3JrYXJvdW5kX2JiKGVuZ2luZSk7CiAJaWYgKHJldCkgewogCQkvKgpAQCAt MjMyMiwxMCArMjMxOSw2IEBAIGludCBsb2dpY2FsX3JlbmRlcl9yaW5nX2luaXQoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCX0KIAogCXJldHVybiAwOwotCi1lcnJfY2xlYW51cF9j b21tb246Ci0JaW50ZWxfZW5naW5lX2NsZWFudXBfY29tbW9uKGVuZ2luZSk7Ci0JcmV0dXJuIHJl dDsKIH0KIAogaW50IGxvZ2ljYWxfeGNzX3JpbmdfaW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKaW5kZXggODFi MTBkODViNzM4Li5hM2QzMTI2YTM5MzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3JpbmdidWZmZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5n YnVmZmVyLmMKQEAgLTE1MCw4ICsxNTAsNyBAQCBnZW40X3JlbmRlcl9yaW5nX2ZsdXNoKHN0cnVj dCBpOTE1X3JlcXVlc3QgKnJxLCB1MzIgbW9kZSkKIAkgKi8KIAlpZiAobW9kZSAmIEVNSVRfSU5W QUxJREFURSkgewogCQkqY3MrKyA9IEdGWF9PUF9QSVBFX0NPTlRST0woNCkgfCBQSVBFX0NPTlRS T0xfUVdfV1JJVEU7Ci0JCSpjcysrID0gaTkxNV9nZ3R0X29mZnNldChycS0+ZW5naW5lLT5zY3Jh dGNoKSB8Ci0JCQlQSVBFX0NPTlRST0xfR0xPQkFMX0dUVDsKKwkJKmNzKysgPSBpOTE1X3NjcmF0 Y2hfb2Zmc2V0KHJxLT5pOTE1KSB8IFBJUEVfQ09OVFJPTF9HTE9CQUxfR1RUOwogCQkqY3MrKyA9 IDA7CiAJCSpjcysrID0gMDsKIApAQCAtMTU5LDggKzE1OCw3IEBAIGdlbjRfcmVuZGVyX3Jpbmdf Zmx1c2goc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHUzMiBtb2RlKQogCQkJKmNzKysgPSBNSV9G TFVTSDsKIAogCQkqY3MrKyA9IEdGWF9PUF9QSVBFX0NPTlRST0woNCkgfCBQSVBFX0NPTlRST0xf UVdfV1JJVEU7Ci0JCSpjcysrID0gaTkxNV9nZ3R0X29mZnNldChycS0+ZW5naW5lLT5zY3JhdGNo KSB8Ci0JCQlQSVBFX0NPTlRST0xfR0xPQkFMX0dUVDsKKwkJKmNzKysgPSBpOTE1X3NjcmF0Y2hf b2Zmc2V0KHJxLT5pOTE1KSB8IFBJUEVfQ09OVFJPTF9HTE9CQUxfR1RUOwogCQkqY3MrKyA9IDA7 CiAJCSpjcysrID0gMDsKIAl9CkBAIC0yMTIsOCArMjEwLDcgQEAgZ2VuNF9yZW5kZXJfcmluZ19m bHVzaChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgdTMyIG1vZGUpCiBzdGF0aWMgaW50CiBpbnRl bF9lbWl0X3Bvc3Rfc3luY19ub256ZXJvX2ZsdXNoKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQog ewotCXUzMiBzY3JhdGNoX2FkZHIgPQotCQlpOTE1X2dndHRfb2Zmc2V0KHJxLT5lbmdpbmUtPnNj cmF0Y2gpICsgMiAqIENBQ0hFTElORV9CWVRFUzsKKwl1MzIgc2NyYXRjaF9hZGRyID0gaTkxNV9z Y3JhdGNoX29mZnNldChycS0+aTkxNSkgKyAyICogQ0FDSEVMSU5FX0JZVEVTOwogCXUzMiAqY3M7 CiAKIAljcyA9IGludGVsX3JpbmdfYmVnaW4ocnEsIDYpOwpAQCAtMjQ2LDggKzI0Myw3IEBAIGlu dGVsX2VtaXRfcG9zdF9zeW5jX25vbnplcm9fZmx1c2goc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEp CiBzdGF0aWMgaW50CiBnZW42X3JlbmRlcl9yaW5nX2ZsdXNoKHN0cnVjdCBpOTE1X3JlcXVlc3Qg KnJxLCB1MzIgbW9kZSkKIHsKLQl1MzIgc2NyYXRjaF9hZGRyID0KLQkJaTkxNV9nZ3R0X29mZnNl dChycS0+ZW5naW5lLT5zY3JhdGNoKSArIDIgKiBDQUNIRUxJTkVfQllURVM7CisJdTMyIHNjcmF0 Y2hfYWRkciA9IGk5MTVfc2NyYXRjaF9vZmZzZXQocnEtPmk5MTUpICsgMiAqIENBQ0hFTElORV9C WVRFUzsKIAl1MzIgKmNzLCBmbGFncyA9IDA7CiAJaW50IHJldDsKIApAQCAtMzE2LDggKzMxMiw3 IEBAIGdlbjdfcmVuZGVyX3JpbmdfY3Nfc3RhbGxfd2Eoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEp CiBzdGF0aWMgaW50CiBnZW43X3JlbmRlcl9yaW5nX2ZsdXNoKHN0cnVjdCBpOTE1X3JlcXVlc3Qg KnJxLCB1MzIgbW9kZSkKIHsKLQl1MzIgc2NyYXRjaF9hZGRyID0KLQkJaTkxNV9nZ3R0X29mZnNl dChycS0+ZW5naW5lLT5zY3JhdGNoKSArIDIgKiBDQUNIRUxJTkVfQllURVM7CisJdTMyIHNjcmF0 Y2hfYWRkciA9IGk5MTVfc2NyYXRjaF9vZmZzZXQocnEtPmk5MTUpICsgMiAqIENBQ0hFTElORV9C WVRFUzsKIAl1MzIgKmNzLCBmbGFncyA9IDA7CiAKIAkvKgpAQCAtMTAwMiw3ICs5OTcsNyBAQCBp ODMwX2VtaXRfYmJfc3RhcnQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsCiAJCSAgIHU2NCBvZmZz ZXQsIHUzMiBsZW4sCiAJCSAgIHVuc2lnbmVkIGludCBkaXNwYXRjaF9mbGFncykKIHsKLQl1MzIg KmNzLCBjc19vZmZzZXQgPSBpOTE1X2dndHRfb2Zmc2V0KHJxLT5lbmdpbmUtPnNjcmF0Y2gpOwor CXUzMiAqY3MsIGNzX29mZnNldCA9IGk5MTVfc2NyYXRjaF9vZmZzZXQocnEtPmk5MTUpOwogCiAJ Y3MgPSBpbnRlbF9yaW5nX2JlZ2luKHJxLCA2KTsKIAlpZiAoSVNfRVJSKGNzKSkKQEAgLTE0NTks NyArMTQ1NCw2IEBAIHN0YXRpYyBpbnQgaW50ZWxfaW5pdF9yaW5nX2J1ZmZlcihzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7CiAJc3RydWN0IGk5MTVfdGltZWxpbmUgKnRpbWVsaW5l OwogCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nOwotCXVuc2lnbmVkIGludCBzaXplOwogCWludCBl cnI7CiAKIAlpbnRlbF9lbmdpbmVfc2V0dXBfY29tbW9uKGVuZ2luZSk7CkBAIC0xNDg0LDIxICsx NDc4LDEyIEBAIHN0YXRpYyBpbnQgaW50ZWxfaW5pdF9yaW5nX2J1ZmZlcihzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpCiAJR0VNX0JVR19PTihlbmdpbmUtPmJ1ZmZlcik7CiAJZW5naW5l LT5idWZmZXIgPSByaW5nOwogCi0Jc2l6ZSA9IFBBR0VfU0laRTsKLQlpZiAoSEFTX0JST0tFTl9D U19UTEIoZW5naW5lLT5pOTE1KSkKLQkJc2l6ZSA9IEk4MzBfV0FfU0laRTsKLQllcnIgPSBpbnRl bF9lbmdpbmVfY3JlYXRlX3NjcmF0Y2goZW5naW5lLCBzaXplKTsKLQlpZiAoZXJyKQotCQlnb3Rv IGVycl91bnBpbjsKLQogCWVyciA9IGludGVsX2VuZ2luZV9pbml0X2NvbW1vbihlbmdpbmUpOwog CWlmIChlcnIpCi0JCWdvdG8gZXJyX3NjcmF0Y2g7CisJCWdvdG8gZXJyX3VucGluOwogCiAJcmV0 dXJuIDA7CiAKLWVycl9zY3JhdGNoOgotCWludGVsX2VuZ2luZV9jbGVhbnVwX3NjcmF0Y2goZW5n aW5lKTsKIGVycl91bnBpbjoKIAlpbnRlbF9yaW5nX3VucGluKHJpbmcpOwogZXJyX3Jpbmc6CkBA IC0xNTcyLDcgKzE1NTcsNyBAQCBzdGF0aWMgaW50IGZsdXNoX3BkX2RpcihzdHJ1Y3QgaTkxNV9y ZXF1ZXN0ICpycSkKIAkvKiBTdGFsbCB1bnRpbCB0aGUgcGFnZSB0YWJsZSBsb2FkIGlzIGNvbXBs ZXRlICovCiAJKmNzKysgPSBNSV9TVE9SRV9SRUdJU1RFUl9NRU0gfCBNSV9TUk1fTFJNX0dMT0JB TF9HVFQ7CiAJKmNzKysgPSBpOTE1X21taW9fcmVnX29mZnNldChSSU5HX1BQX0RJUl9CQVNFKGVu Z2luZSkpOwotCSpjcysrID0gaTkxNV9nZ3R0X29mZnNldChlbmdpbmUtPnNjcmF0Y2gpOworCSpj cysrID0gaTkxNV9zY3JhdGNoX29mZnNldChycS0+aTkxNSk7CiAJKmNzKysgPSBNSV9OT09QOwog CiAJaW50ZWxfcmluZ19hZHZhbmNlKHJxLCBjcyk7CkBAIC0xNjgxLDcgKzE2NjYsNyBAQCBzdGF0 aWMgaW5saW5lIGludCBtaV9zZXRfY29udGV4dChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgdTMy IGZsYWdzKQogCQkJLyogSW5zZXJ0IGEgZGVsYXkgYmVmb3JlIHRoZSBuZXh0IHN3aXRjaCEgKi8K IAkJCSpjcysrID0gTUlfU1RPUkVfUkVHSVNURVJfTUVNIHwgTUlfU1JNX0xSTV9HTE9CQUxfR1RU OwogCQkJKmNzKysgPSBpOTE1X21taW9fcmVnX29mZnNldChsYXN0X3JlZyk7Ci0JCQkqY3MrKyA9 IGk5MTVfZ2d0dF9vZmZzZXQoZW5naW5lLT5zY3JhdGNoKTsKKwkJCSpjcysrID0gaTkxNV9zY3Jh dGNoX29mZnNldChycS0+aTkxNSk7CiAJCQkqY3MrKyA9IE1JX05PT1A7CiAJCX0KIAkJKmNzKysg PSBNSV9BUkJfT05fT0ZGIHwgTUlfQVJCX0VOQUJMRTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuaAppbmRleCA4YTIyNzBiMjA5YjAuLjk3MGZiNWMwNWMzNiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaApAQCAtNDUxLDcgKzQ1MSw2IEBAIHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgewogCiAJc3RydWN0IGludGVsX2h3X3N0YXR1c19wYWdlIHN0YXR1 c19wYWdlOwogCXN0cnVjdCBpOTE1X2N0eF93b3JrYXJvdW5kcyB3YV9jdHg7Ci0Jc3RydWN0IGk5 MTVfdm1hICpzY3JhdGNoOwogCiAJdTMyICAgICAgICAgICAgIGlycV9rZWVwX21hc2s7IC8qIGFs d2F5cyBrZWVwIHRoZXNlIGludGVycnVwdHMgKi8KIAl1MzIJCWlycV9lbmFibGVfbWFzazsgLyog Yml0bWFzayB0byBlbmFibGUgcmluZyBpbnRlcnJ1cHQgKi8KQEAgLTkwOCwxMCArOTA3LDYgQEAg dm9pZCBpbnRlbF9lbmdpbmVfc2V0dXBfY29tbW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSk7CiBpbnQgaW50ZWxfZW5naW5lX2luaXRfY29tbW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSk7CiB2b2lkIGludGVsX2VuZ2luZV9jbGVhbnVwX2NvbW1vbihzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUpOwogCi1pbnQgaW50ZWxfZW5naW5lX2NyZWF0ZV9zY3JhdGNo KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKLQkJCQl1bnNpZ25lZCBpbnQgc2l6ZSk7 Ci12b2lkIGludGVsX2VuZ2luZV9jbGVhbnVwX3NjcmF0Y2goc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lKTsKLQogaW50IGludGVsX2luaXRfcmVuZGVyX3JpbmdfYnVmZmVyKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CiBpbnQgaW50ZWxfaW5pdF9ic2RfcmluZ19idWZmZXIo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKIGludCBpbnRlbF9pbml0X2JsdF9yaW5n X2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwotLSAKMi4yMC4wLnJjMQoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==