From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 1/7] drm/i915: Allocate a common scratch page Date: Tue, 4 Dec 2018 14:15:16 +0000 Message-ID: <20181204141522.13640-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 547416E265 for ; Tue, 4 Dec 2018 14:16:02 +0000 (UTC) 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 dGhhdCB3ZSBjYW4gYWx3YXlzIHJlbHkKb24gdGhlcmUgYmVpbmcgYSBzY3JhdGNoIHBhZ2UuCgp2 MjogQ2hlY2sgdGhhdCB3ZSBhbGxvY2F0ZWQgYSBsYXJnZSBlbm91Z2ggc2NyYXRjaCBmb3IgSTgz MCB3L2EKClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNv LnVrPgpDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KQ2M6IE1p a2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICB8ICA3ICsrKysKIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICB8IDUwICsrKysrKysrKysrKysrKysrKysrKysrKy0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgICB8ICAyICstCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyAgfCA0MiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAgICAgICB8IDE3ICsrKy0tLS0t LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIHwgMzcgKysrKysrLS0t LS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggfCAgNSAt LS0KIDcgZmlsZXMgY2hhbmdlZCwgNzQgaW5zZXJ0aW9ucygrKSwgODYgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggMjNhM2RjNmYzOTA3Li5jNWYwMTk2NGYwZmIgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMTk4Myw2ICsxOTgzLDggQEAgc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgewogCQlzdHJ1Y3QgZGVsYXllZF93b3JrIGlkbGVfd29yazsKIAogCQlrdGlt ZV90IGxhc3RfaW5pdF90aW1lOworCisJCXN0cnVjdCBpOTE1X3ZtYSAqc2NyYXRjaDsKIAl9IGd0 OwogCiAJLyogcGVyZm9ybSBQSFkgc3RhdGUgc2FuaXR5IGNoZWNrcz8gKi8KQEAgLTM3MTMsNCAr MzcxNSw5IEBAIHN0YXRpYyBpbmxpbmUgaW50IGludGVsX2h3c19jc2Jfd3JpdGVfaW5kZXgoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJCXJldHVybiBJOTE1X0hXU19DU0JfV1JJVEVf SU5ERVg7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdTMyIGk5MTVfc2NyYXRjaF9vZmZzZXQoY29uc3Qg c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCit7CisJcmV0dXJuIGk5MTVfZ2d0dF9vZmZz ZXQoaTkxNS0+Z3Quc2NyYXRjaCk7Cit9CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMK aW5kZXggMzVlY2ZlYTRlOTAzLi5kMzZhOTc1NWFkOTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0u YwpAQCAtNTQ5OCw2ICs1NDk4LDQ0IEBAIHN0YXRpYyBpbnQgX19pbnRlbF9lbmdpbmVzX3JlY29y ZF9kZWZhdWx0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlnb3RvIG91dF9jdHg7 CiB9CiAKK3N0YXRpYyBpbnQKK2k5MTVfZ2VtX2luaXRfc2NyYXRjaChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSwgdW5zaWduZWQgaW50IHNpemUpCit7CisJc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iajsKKwlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKKwlpbnQgcmV0OworCisJb2Jq ID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oaTkxNSwgc2l6ZSk7CisJaWYgKCFvYmop CisJCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfaW50ZXJuYWwoaTkxNSwgc2l6ZSk7CisJ aWYgKElTX0VSUihvYmopKSB7CisJCURSTV9FUlJPUigiRmFpbGVkIHRvIGFsbG9jYXRlIHNjcmF0 Y2ggcGFnZVxuIik7CisJCXJldHVybiBQVFJfRVJSKG9iaik7CisJfQorCisJdm1hID0gaTkxNV92 bWFfaW5zdGFuY2Uob2JqLCAmaTkxNS0+Z2d0dC52bSwgTlVMTCk7CisJaWYgKElTX0VSUih2bWEp KSB7CisJCXJldCA9IFBUUl9FUlIodm1hKTsKKwkJZ290byBlcnJfdW5yZWY7CisJfQorCisJcmV0 ID0gaTkxNV92bWFfcGluKHZtYSwgMCwgMCwgUElOX0dMT0JBTCB8IFBJTl9ISUdIKTsKKwlpZiAo cmV0KQorCQlnb3RvIGVycl91bnJlZjsKKworCWk5MTUtPmd0LnNjcmF0Y2ggPSB2bWE7CisJcmV0 dXJuIDA7CisKK2Vycl91bnJlZjoKKwlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7CisJcmV0dXJu IHJldDsKK30KKworc3RhdGljIHZvaWQgaTkxNV9nZW1fZmluaV9zY3JhdGNoKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1KQoreworCWk5MTVfdm1hX3VucGluX2FuZF9yZWxlYXNlKCZpOTE1 LT5ndC5zY3JhdGNoLCAwKTsKK30KKwogaW50IGk5MTVfZ2VtX2luaXQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQogewogCWludCByZXQ7CkBAIC01NTQ0LDEyICs1NTgyLDE5IEBA IGludCBpOTE1X2dlbV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJ Z290byBlcnJfdW5sb2NrOwogCX0KIAotCXJldCA9IGk5MTVfZ2VtX2NvbnRleHRzX2luaXQoZGV2 X3ByaXYpOworCXJldCA9IGk5MTVfZ2VtX2luaXRfc2NyYXRjaChkZXZfcHJpdiwKKwkJCQkgICAg SVNfR0VOMihkZXZfcHJpdikgPyBTWl8yNTZLIDogUEFHRV9TSVpFKTsKIAlpZiAocmV0KSB7CiAJ CUdFTV9CVUdfT04ocmV0ID09IC1FSU8pOwogCQlnb3RvIGVycl9nZ3R0OwogCX0KIAorCXJldCA9 IGk5MTVfZ2VtX2NvbnRleHRzX2luaXQoZGV2X3ByaXYpOworCWlmIChyZXQpIHsKKwkJR0VNX0JV R19PTihyZXQgPT0gLUVJTyk7CisJCWdvdG8gZXJyX3NjcmF0Y2g7CisJfQorCiAJcmV0ID0gaW50 ZWxfZW5naW5lc19pbml0KGRldl9wcml2KTsKIAlpZiAocmV0KSB7CiAJCUdFTV9CVUdfT04ocmV0 ID09IC1FSU8pOwpAQCAtNTYyMiw2ICs1NjY3LDggQEAgaW50IGk5MTVfZ2VtX2luaXQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogZXJyX2NvbnRleHQ6CiAJaWYgKHJldCAhPSAt RUlPKQogCQlpOTE1X2dlbV9jb250ZXh0c19maW5pKGRldl9wcml2KTsKK2Vycl9zY3JhdGNoOgor CWk5MTVfZ2VtX2Zpbmlfc2NyYXRjaChkZXZfcHJpdik7CiBlcnJfZ2d0dDoKIGVycl91bmxvY2s6 CiAJaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9wdXQoZGV2X3ByaXYsIEZPUkNFV0FLRV9BTEwpOwpA QCAtNTY3Myw2ICs1NzIwLDcgQEAgdm9pZCBpOTE1X2dlbV9maW5pKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIAlpbnRlbF91Y19maW5pKGRldl9wcml2KTsKIAlpOTE1X2dlbV9j bGVhbnVwX2VuZ2luZXMoZGV2X3ByaXYpOwogCWk5MTVfZ2VtX2NvbnRleHRzX2ZpbmkoZGV2X3By aXYpOworCWk5MTVfZ2VtX2Zpbmlfc2NyYXRjaChkZXZfcHJpdik7CiAJbXV0ZXhfdW5sb2NrKCZk ZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7CiAKIAlpbnRlbF93YV9saXN0X2ZyZWUoJmRldl9w cml2LT5ndF93YV9saXN0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z3B1X2Vycm9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCmluZGV4 IGE2ODg1YTU5NTY4Yi4uMDc0NjUxMjNjMTY2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dwdV9lcnJvci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1 X2Vycm9yLmMKQEAgLTE1NzEsNyArMTU3MSw3IEBAIHN0YXRpYyB2b2lkIGdlbV9yZWNvcmRfcmlu Z3Moc3RydWN0IGk5MTVfZ3B1X3N0YXRlICplcnJvcikKIAkJCWlmIChIQVNfQlJPS0VOX0NTX1RM QihpOTE1KSkKIAkJCQllZS0+d2FfYmF0Y2hidWZmZXIgPQogCQkJCQlpOTE1X2Vycm9yX29iamVj dF9jcmVhdGUoaTkxNSwKLQkJCQkJCQkJIGVuZ2luZS0+c2NyYXRjaCk7CisJCQkJCQkJCSBpOTE1 LT5ndC5zY3JhdGNoKTsKIAkJCXJlcXVlc3RfcmVjb3JkX3VzZXJfYm8ocmVxdWVzdCwgZWUpOwog CiAJCQllZS0+Y3R4ID0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Vu Z2luZV9jcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKaW5kZXgg NmI0MjdiYzUyZjc4Li5hZjI4NzM0MDMwMDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2VuZ2luZV9jcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Vu Z2luZV9jcy5jCkBAIC00OTMsNDYgKzQ5Myw2IEBAIHZvaWQgaW50ZWxfZW5naW5lX3NldHVwX2Nv bW1vbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJaW50ZWxfZW5naW5lX2luaXRf Y21kX3BhcnNlcihlbmdpbmUpOwogfQogCi1pbnQgaW50ZWxfZW5naW5lX2NyZWF0ZV9zY3JhdGNo KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKLQkJCQl1bnNpZ25lZCBpbnQgc2l6ZSkK LXsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwotCXN0cnVjdCBpOTE1X3ZtYSAq dm1hOwotCWludCByZXQ7Ci0KLQlXQVJOX09OKGVuZ2luZS0+c2NyYXRjaCk7Ci0KLQlvYmogPSBp OTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihlbmdpbmUtPmk5MTUsIHNpemUpOwotCWlmICgh b2JqKQotCQlvYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX2ludGVybmFsKGVuZ2luZS0+aTkx NSwgc2l6ZSk7Ci0JaWYgKElTX0VSUihvYmopKSB7Ci0JCURSTV9FUlJPUigiRmFpbGVkIHRvIGFs bG9jYXRlIHNjcmF0Y2ggcGFnZVxuIik7Ci0JCXJldHVybiBQVFJfRVJSKG9iaik7Ci0JfQotCi0J dm1hID0gaTkxNV92bWFfaW5zdGFuY2Uob2JqLCAmZW5naW5lLT5pOTE1LT5nZ3R0LnZtLCBOVUxM KTsKLQlpZiAoSVNfRVJSKHZtYSkpIHsKLQkJcmV0ID0gUFRSX0VSUih2bWEpOwotCQlnb3RvIGVy cl91bnJlZjsKLQl9Ci0KLQlyZXQgPSBpOTE1X3ZtYV9waW4odm1hLCAwLCAwLCBQSU5fR0xPQkFM IHwgUElOX0hJR0gpOwotCWlmIChyZXQpCi0JCWdvdG8gZXJyX3VucmVmOwotCi0JZW5naW5lLT5z Y3JhdGNoID0gdm1hOwotCXJldHVybiAwOwotCi1lcnJfdW5yZWY6Ci0JaTkxNV9nZW1fb2JqZWN0 X3B1dChvYmopOwotCXJldHVybiByZXQ7Ci19Ci0KLXZvaWQgaW50ZWxfZW5naW5lX2NsZWFudXBf c2NyYXRjaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCi17Ci0JaTkxNV92bWFfdW5w aW5fYW5kX3JlbGVhc2UoJmVuZ2luZS0+c2NyYXRjaCwgMCk7Ci19Ci0KIHN0YXRpYyB2b2lkIGNs ZWFudXBfc3RhdHVzX3BhZ2Uoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogCWlm IChIV1NfTkVFRFNfUEhZU0lDQUwoZW5naW5lLT5pOTE1KSkgewpAQCAtNzA3LDggKzY2Nyw2IEBA IHZvaWQgaW50ZWxfZW5naW5lX2NsZWFudXBfY29tbW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGVuZ2luZS0+aTkx NTsKIAotCWludGVsX2VuZ2luZV9jbGVhbnVwX3NjcmF0Y2goZW5naW5lKTsKLQogCWNsZWFudXBf c3RhdHVzX3BhZ2UoZW5naW5lKTsKIAogCWludGVsX2VuZ2luZV9maW5pX2JyZWFkY3J1bWJzKGVu Z2luZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCmluZGV4IDg3MjI3ZmQ5YWU1Zi4uZDdmYTMw MWI1ZWM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwpAQCAtMTI4OCw5ICsxMjg4LDEwIEBA IHN0YXRpYyBpbnQgZXhlY2xpc3RzX3JlcXVlc3RfYWxsb2Moc3RydWN0IGk5MTVfcmVxdWVzdCAq cmVxdWVzdCkKIHN0YXRpYyB1MzIgKgogZ2VuOF9lbWl0X2ZsdXNoX2NvaGVyZW50bDNfd2Eoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1MzIgKmJhdGNoKQogeworCS8qIE5CIG5vIG9u ZSBlbHNlIGlzIGFsbG93ZWQgdG8gc2NyaWJibGUgb3ZlciBzY3JhdGNoICsgMjU2ISAqLwogCSpi YXRjaCsrID0gTUlfU1RPUkVfUkVHSVNURVJfTUVNX0dFTjggfCBNSV9TUk1fTFJNX0dMT0JBTF9H VFQ7CiAJKmJhdGNoKysgPSBpOTE1X21taW9fcmVnX29mZnNldChHRU44X0wzU1FDUkVHNCk7Ci0J KmJhdGNoKysgPSBpOTE1X2dndHRfb2Zmc2V0KGVuZ2luZS0+c2NyYXRjaCkgKyAyNTY7CisJKmJh dGNoKysgPSBpOTE1X3NjcmF0Y2hfb2Zmc2V0KGVuZ2luZS0+aTkxNSkgKyAyNTY7CiAJKmJhdGNo KysgPSAwOwogCiAJKmJhdGNoKysgPSBNSV9MT0FEX1JFR0lTVEVSX0lNTSgxKTsKQEAgLTEzMDQs NyArMTMwNSw3IEBAIGdlbjhfZW1pdF9mbHVzaF9jb2hlcmVudGwzX3dhKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSwgdTMyICpiYXRjaCkKIAogCSpiYXRjaCsrID0gTUlfTE9BRF9SRUdJ U1RFUl9NRU1fR0VOOCB8IE1JX1NSTV9MUk1fR0xPQkFMX0dUVDsKIAkqYmF0Y2grKyA9IGk5MTVf bW1pb19yZWdfb2Zmc2V0KEdFTjhfTDNTUUNSRUc0KTsKLQkqYmF0Y2grKyA9IGk5MTVfZ2d0dF9v ZmZzZXQoZW5naW5lLT5zY3JhdGNoKSArIDI1NjsKKwkqYmF0Y2grKyA9IGk5MTVfc2NyYXRjaF9v ZmZzZXQoZW5naW5lLT5pOTE1KSArIDI1NjsKIAkqYmF0Y2grKyA9IDA7CiAKIAlyZXR1cm4gYmF0 Y2g7CkBAIC0xMzQxLDcgKzEzNDIsNyBAQCBzdGF0aWMgdTMyICpnZW44X2luaXRfaW5kaXJlY3Rj dHhfYmIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1MzIgKmJhdGNoKQogCQkJCSAg ICAgICBQSVBFX0NPTlRST0xfR0xPQkFMX0dUVF9JVkIgfAogCQkJCSAgICAgICBQSVBFX0NPTlRS T0xfQ1NfU1RBTEwgfAogCQkJCSAgICAgICBQSVBFX0NPTlRST0xfUVdfV1JJVEUsCi0JCQkJICAg ICAgIGk5MTVfZ2d0dF9vZmZzZXQoZW5naW5lLT5zY3JhdGNoKSArCisJCQkJICAgICAgIGk5MTVf c2NyYXRjaF9vZmZzZXQoZW5naW5lLT5pOTE1KSArCiAJCQkJICAgICAgIDIgKiBDQUNIRUxJTkVf QllURVMpOwogCiAJKmJhdGNoKysgPSBNSV9BUkJfT05fT0ZGIHwgTUlfQVJCX0VOQUJMRTsKQEAg LTE5NzMsNyArMTk3NCw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9lbWl0X2ZsdXNoX3JlbmRlcihzdHJ1 Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0LAogewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSA9IHJlcXVlc3QtPmVuZ2luZTsKIAl1MzIgc2NyYXRjaF9hZGRyID0KLQkJaTkxNV9nZ3R0 X29mZnNldChlbmdpbmUtPnNjcmF0Y2gpICsgMiAqIENBQ0hFTElORV9CWVRFUzsKKwkJaTkxNV9z Y3JhdGNoX29mZnNldChlbmdpbmUtPmk5MTUpICsgMiAqIENBQ0hFTElORV9CWVRFUzsKIAlib29s IHZmX2ZsdXNoX3dhID0gZmFsc2UsIGRjX2ZsdXNoX3dhID0gZmFsc2U7CiAJdTMyICpjcywgZmxh Z3MgPSAwOwogCWludCBsZW47CkBAIC0yMjkyLDEwICsyMjkzLDYgQEAgaW50IGxvZ2ljYWxfcmVu ZGVyX3JpbmdfaW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJaWYgKHJldCkK IAkJcmV0dXJuIHJldDsKIAotCXJldCA9IGludGVsX2VuZ2luZV9jcmVhdGVfc2NyYXRjaChlbmdp bmUsIFBBR0VfU0laRSk7Ci0JaWYgKHJldCkKLQkJZ290byBlcnJfY2xlYW51cF9jb21tb247Ci0K IAlyZXQgPSBpbnRlbF9pbml0X3dvcmthcm91bmRfYmIoZW5naW5lKTsKIAlpZiAocmV0KSB7CiAJ CS8qCkBAIC0yMzExLDEwICsyMzA4LDYgQEAgaW50IGxvZ2ljYWxfcmVuZGVyX3JpbmdfaW5pdChz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJaW50ZWxfZW5naW5lX2luaXRfd29ya2Fy b3VuZHMoZW5naW5lKTsKIAogCXJldHVybiAwOwotCi1lcnJfY2xlYW51cF9jb21tb246Ci0JaW50 ZWxfZW5naW5lX2NsZWFudXBfY29tbW9uKGVuZ2luZSk7Ci0JcmV0dXJuIHJldDsKIH0KIAogaW50 IGxvZ2ljYWxfeGNzX3JpbmdfaW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKaW5kZXggN2Y4OGRmNWJmZjA5Li5j NWViMjZhN2VlNzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKQEAg LTE1MCw4ICsxNTAsNyBAQCBnZW40X3JlbmRlcl9yaW5nX2ZsdXNoKHN0cnVjdCBpOTE1X3JlcXVl c3QgKnJxLCB1MzIgbW9kZSkKIAkgKi8KIAlpZiAobW9kZSAmIEVNSVRfSU5WQUxJREFURSkgewog CQkqY3MrKyA9IEdGWF9PUF9QSVBFX0NPTlRST0woNCkgfCBQSVBFX0NPTlRST0xfUVdfV1JJVEU7 Ci0JCSpjcysrID0gaTkxNV9nZ3R0X29mZnNldChycS0+ZW5naW5lLT5zY3JhdGNoKSB8Ci0JCQlQ SVBFX0NPTlRST0xfR0xPQkFMX0dUVDsKKwkJKmNzKysgPSBpOTE1X3NjcmF0Y2hfb2Zmc2V0KHJx LT5pOTE1KSB8IFBJUEVfQ09OVFJPTF9HTE9CQUxfR1RUOwogCQkqY3MrKyA9IDA7CiAJCSpjcysr ID0gMDsKIApAQCAtMTU5LDggKzE1OCw3IEBAIGdlbjRfcmVuZGVyX3JpbmdfZmx1c2goc3RydWN0 IGk5MTVfcmVxdWVzdCAqcnEsIHUzMiBtb2RlKQogCQkJKmNzKysgPSBNSV9GTFVTSDsKIAogCQkq Y3MrKyA9IEdGWF9PUF9QSVBFX0NPTlRST0woNCkgfCBQSVBFX0NPTlRST0xfUVdfV1JJVEU7Ci0J CSpjcysrID0gaTkxNV9nZ3R0X29mZnNldChycS0+ZW5naW5lLT5zY3JhdGNoKSB8Ci0JCQlQSVBF X0NPTlRST0xfR0xPQkFMX0dUVDsKKwkJKmNzKysgPSBpOTE1X3NjcmF0Y2hfb2Zmc2V0KHJxLT5p OTE1KSB8IFBJUEVfQ09OVFJPTF9HTE9CQUxfR1RUOwogCQkqY3MrKyA9IDA7CiAJCSpjcysrID0g MDsKIAl9CkBAIC0yMTIsOCArMjEwLDcgQEAgZ2VuNF9yZW5kZXJfcmluZ19mbHVzaChzdHJ1Y3Qg aTkxNV9yZXF1ZXN0ICpycSwgdTMyIG1vZGUpCiBzdGF0aWMgaW50CiBpbnRlbF9lbWl0X3Bvc3Rf c3luY19ub256ZXJvX2ZsdXNoKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQogewotCXUzMiBzY3Jh dGNoX2FkZHIgPQotCQlpOTE1X2dndHRfb2Zmc2V0KHJxLT5lbmdpbmUtPnNjcmF0Y2gpICsgMiAq IENBQ0hFTElORV9CWVRFUzsKKwl1MzIgc2NyYXRjaF9hZGRyID0gaTkxNV9zY3JhdGNoX29mZnNl dChycS0+aTkxNSkgKyAyICogQ0FDSEVMSU5FX0JZVEVTOwogCXUzMiAqY3M7CiAKIAljcyA9IGlu dGVsX3JpbmdfYmVnaW4ocnEsIDYpOwpAQCAtMjQ2LDggKzI0Myw3IEBAIGludGVsX2VtaXRfcG9z dF9zeW5jX25vbnplcm9fZmx1c2goc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiBzdGF0aWMgaW50 CiBnZW42X3JlbmRlcl9yaW5nX2ZsdXNoKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCB1MzIgbW9k ZSkKIHsKLQl1MzIgc2NyYXRjaF9hZGRyID0KLQkJaTkxNV9nZ3R0X29mZnNldChycS0+ZW5naW5l LT5zY3JhdGNoKSArIDIgKiBDQUNIRUxJTkVfQllURVM7CisJdTMyIHNjcmF0Y2hfYWRkciA9IGk5 MTVfc2NyYXRjaF9vZmZzZXQocnEtPmk5MTUpICsgMiAqIENBQ0hFTElORV9CWVRFUzsKIAl1MzIg KmNzLCBmbGFncyA9IDA7CiAJaW50IHJldDsKIApAQCAtMzE2LDggKzMxMiw3IEBAIGdlbjdfcmVu ZGVyX3JpbmdfY3Nfc3RhbGxfd2Eoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiBzdGF0aWMgaW50 CiBnZW43X3JlbmRlcl9yaW5nX2ZsdXNoKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCB1MzIgbW9k ZSkKIHsKLQl1MzIgc2NyYXRjaF9hZGRyID0KLQkJaTkxNV9nZ3R0X29mZnNldChycS0+ZW5naW5l LT5zY3JhdGNoKSArIDIgKiBDQUNIRUxJTkVfQllURVM7CisJdTMyIHNjcmF0Y2hfYWRkciA9IGk5 MTVfc2NyYXRjaF9vZmZzZXQocnEtPmk5MTUpICsgMiAqIENBQ0hFTElORV9CWVRFUzsKIAl1MzIg KmNzLCBmbGFncyA9IDA7CiAKIAkvKgpAQCAtOTk0LDcgKzk4OSw3IEBAIGk5NjVfZW1pdF9iYl9z dGFydChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwKIH0KIAogLyogSnVzdCB1c2Vyc3BhY2UgQUJJ IGNvbnZlbnRpb24gdG8gbGltaXQgdGhlIHdhIGJhdGNoIGJvIHRvIGEgcmVzb25hYmxlIHNpemUg Ki8KLSNkZWZpbmUgSTgzMF9CQVRDSF9MSU1JVCAoMjU2KjEwMjQpCisjZGVmaW5lIEk4MzBfQkFU Q0hfTElNSVQgU1pfMjU2SwogI2RlZmluZSBJODMwX1RMQl9FTlRSSUVTICgyKQogI2RlZmluZSBJ ODMwX1dBX1NJWkUgbWF4KEk4MzBfVExCX0VOVFJJRVMqNDA5NiwgSTgzMF9CQVRDSF9MSU1JVCkK IHN0YXRpYyBpbnQKQEAgLTEwMDIsNyArOTk3LDkgQEAgaTgzMF9lbWl0X2JiX3N0YXJ0KHN0cnVj dCBpOTE1X3JlcXVlc3QgKnJxLAogCQkgICB1NjQgb2Zmc2V0LCB1MzIgbGVuLAogCQkgICB1bnNp Z25lZCBpbnQgZGlzcGF0Y2hfZmxhZ3MpCiB7Ci0JdTMyICpjcywgY3Nfb2Zmc2V0ID0gaTkxNV9n Z3R0X29mZnNldChycS0+ZW5naW5lLT5zY3JhdGNoKTsKKwl1MzIgKmNzLCBjc19vZmZzZXQgPSBp OTE1X3NjcmF0Y2hfb2Zmc2V0KHJxLT5pOTE1KTsKKworCUdFTV9CVUdfT04ocnEtPmk5MTUtPmd0 LnNjcmF0Y2gtPnNpemUgPCBJODMwX1dBX1NJWkUpOwogCiAJY3MgPSBpbnRlbF9yaW5nX2JlZ2lu KHJxLCA2KTsKIAlpZiAoSVNfRVJSKGNzKSkKQEAgLTE0NTksNyArMTQ1Niw2IEBAIHN0YXRpYyBp bnQgaW50ZWxfaW5pdF9yaW5nX2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp CiB7CiAJc3RydWN0IGk5MTVfdGltZWxpbmUgKnRpbWVsaW5lOwogCXN0cnVjdCBpbnRlbF9yaW5n ICpyaW5nOwotCXVuc2lnbmVkIGludCBzaXplOwogCWludCBlcnI7CiAKIAlpbnRlbF9lbmdpbmVf c2V0dXBfY29tbW9uKGVuZ2luZSk7CkBAIC0xNDg0LDIxICsxNDgwLDEyIEBAIHN0YXRpYyBpbnQg aW50ZWxfaW5pdF9yaW5nX2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJ R0VNX0JVR19PTihlbmdpbmUtPmJ1ZmZlcik7CiAJZW5naW5lLT5idWZmZXIgPSByaW5nOwogCi0J c2l6ZSA9IFBBR0VfU0laRTsKLQlpZiAoSEFTX0JST0tFTl9DU19UTEIoZW5naW5lLT5pOTE1KSkK LQkJc2l6ZSA9IEk4MzBfV0FfU0laRTsKLQllcnIgPSBpbnRlbF9lbmdpbmVfY3JlYXRlX3NjcmF0 Y2goZW5naW5lLCBzaXplKTsKLQlpZiAoZXJyKQotCQlnb3RvIGVycl91bnBpbjsKLQogCWVyciA9 IGludGVsX2VuZ2luZV9pbml0X2NvbW1vbihlbmdpbmUpOwogCWlmIChlcnIpCi0JCWdvdG8gZXJy X3NjcmF0Y2g7CisJCWdvdG8gZXJyX3VucGluOwogCiAJcmV0dXJuIDA7CiAKLWVycl9zY3JhdGNo OgotCWludGVsX2VuZ2luZV9jbGVhbnVwX3NjcmF0Y2goZW5naW5lKTsKIGVycl91bnBpbjoKIAlp bnRlbF9yaW5nX3VucGluKHJpbmcpOwogZXJyX3Jpbmc6CkBAIC0xNTcyLDcgKzE1NTksNyBAQCBz dGF0aWMgaW50IGZsdXNoX3BkX2RpcihzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKIAkvKiBTdGFs bCB1bnRpbCB0aGUgcGFnZSB0YWJsZSBsb2FkIGlzIGNvbXBsZXRlICovCiAJKmNzKysgPSBNSV9T VE9SRV9SRUdJU1RFUl9NRU0gfCBNSV9TUk1fTFJNX0dMT0JBTF9HVFQ7CiAJKmNzKysgPSBpOTE1 X21taW9fcmVnX29mZnNldChSSU5HX1BQX0RJUl9CQVNFKGVuZ2luZSkpOwotCSpjcysrID0gaTkx NV9nZ3R0X29mZnNldChlbmdpbmUtPnNjcmF0Y2gpOworCSpjcysrID0gaTkxNV9zY3JhdGNoX29m ZnNldChycS0+aTkxNSk7CiAJKmNzKysgPSBNSV9OT09QOwogCiAJaW50ZWxfcmluZ19hZHZhbmNl KHJxLCBjcyk7CkBAIC0xNjgxLDcgKzE2NjgsNyBAQCBzdGF0aWMgaW5saW5lIGludCBtaV9zZXRf Y29udGV4dChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgdTMyIGZsYWdzKQogCQkJLyogSW5zZXJ0 IGEgZGVsYXkgYmVmb3JlIHRoZSBuZXh0IHN3aXRjaCEgKi8KIAkJCSpjcysrID0gTUlfU1RPUkVf UkVHSVNURVJfTUVNIHwgTUlfU1JNX0xSTV9HTE9CQUxfR1RUOwogCQkJKmNzKysgPSBpOTE1X21t aW9fcmVnX29mZnNldChsYXN0X3JlZyk7Ci0JCQkqY3MrKyA9IGk5MTVfZ2d0dF9vZmZzZXQoZW5n aW5lLT5zY3JhdGNoKTsKKwkJCSpjcysrID0gaTkxNV9zY3JhdGNoX29mZnNldChycS0+aTkxNSk7 CiAJCQkqY3MrKyA9IE1JX05PT1A7CiAJCX0KIAkJKmNzKysgPSBNSV9BUkJfT05fT0ZGIHwgTUlf QVJCX0VOQUJMRTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAppbmRleCA5 MjdiYjIxYTJiMGIuLjcyZWRhYTdmZjQxMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcmluZ2J1ZmZlci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuaApAQCAtNDM5LDcgKzQzOSw2IEBAIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mgewog CXN0cnVjdCBpOTE1X3dhX2xpc3QgY3R4X3dhX2xpc3Q7CiAJc3RydWN0IGk5MTVfd2FfbGlzdCB3 YV9saXN0OwogCXN0cnVjdCBpOTE1X3dhX2xpc3Qgd2hpdGVsaXN0OwotCXN0cnVjdCBpOTE1X3Zt YSAqc2NyYXRjaDsKIAogCXUzMiAgICAgICAgICAgICBpcnFfa2VlcF9tYXNrOyAvKiBhbHdheXMg a2VlcCB0aGVzZSBpbnRlcnJ1cHRzICovCiAJdTMyCQlpcnFfZW5hYmxlX21hc2s7IC8qIGJpdG1h c2sgdG8gZW5hYmxlIHJpbmcgaW50ZXJydXB0ICovCkBAIC04OTYsMTAgKzg5NSw2IEBAIHZvaWQg aW50ZWxfZW5naW5lX3NldHVwX2NvbW1vbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp OwogaW50IGludGVsX2VuZ2luZV9pbml0X2NvbW1vbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpOwogdm9pZCBpbnRlbF9lbmdpbmVfY2xlYW51cF9jb21tb24oc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lKTsKIAotaW50IGludGVsX2VuZ2luZV9jcmVhdGVfc2NyYXRjaChzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCi0JCQkJdW5zaWduZWQgaW50IHNpemUpOwotdm9p ZCBpbnRlbF9lbmdpbmVfY2xlYW51cF9zY3JhdGNoKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSk7Ci0KIGludCBpbnRlbF9pbml0X3JlbmRlcl9yaW5nX2J1ZmZlcihzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpOwogaW50IGludGVsX2luaXRfYnNkX3JpbmdfYnVmZmVyKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CiBpbnQgaW50ZWxfaW5pdF9ibHRfcmluZ19idWZm ZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKLS0gCjIuMjAuMC5yYzIKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=