From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gerd Hoffmann Subject: Re: [PATCH 9/9] drm/ast: Enable atomic modesetting Date: Tue, 5 Nov 2019 10:57:11 +0100 Message-ID: <20191105095711.nzjlqwjjt57se5rt@sirius.home.kraxel.org> References: <20191028154928.4058-1-tzimmermann@suse.de> <20191028154928.4058-10-tzimmermann@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id EE3E16E98C for ; Tue, 5 Nov 2019 09:57:19 +0000 (UTC) In-Reply-To: <20191028154928.4058-10-tzimmermann@suse.de> Content-Disposition: inline List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thomas Zimmermann Cc: airlied@redhat.com, chen@aspeedtech.com, sam@ravnborg.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBPY3QgMjgsIDIwMTkgYXQgMDQ6NDk6MjhQTSArMDEwMCwgVGhvbWFzIFppbW1lcm1h bm4gd3JvdGU6Cj4gVGhpcyBjb21taXQgc2V0cyB0aGUgcmVtYWluaW5nIGF0b21pYy1tb2Rlc2V0 dGluZyBoZWxwZXJzIGFuZCB0aGUgZmxhZwo+IERSSVZFUl9BVE9NSUMuIExlZ2FjeSBjdXJzb3Ig ZnVuY3Rpb25zIGFyZSByZW1vdmVkIGluIGZhdm9yIG9mIHRoZSBjdXJzb3IKPiBwbGFuZS4gRm9y IHBvd2VyIG1hbmFnZW1lbnQsIGF0b21pYyBoZWxwZXJzIHJlcGxhY2UgdGhlIGluZHZpZHVhbAo+ IG9wZXJhdGlvbnMgdGhhdCB0aGUgZHJpdmVyIGN1cnJlbnRseSBydW5zLgo+IAo+IEF0b21pYyBt b2Rlc2V0dGluZyBpcyBlbmFibGVkIHdpdGggdGhpcyBjb21taXQuCj4gCj4gU2lnbmVkLW9mZi1i eTogVGhvbWFzIFppbW1lcm1hbm4gPHR6aW1tZXJtYW5uQHN1c2UuZGU+Cj4gLS0tCj4gIGRyaXZl cnMvZ3B1L2RybS9hc3QvYXN0X2Rydi5jICB8ICAyNCArKy0KPiAgZHJpdmVycy9ncHUvZHJtL2Fz dC9hc3RfbWFpbi5jIHwgICA1ICsKPiAgZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfbW9kZS5jIHwg MjkwICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAzIGZpbGVzIGNoYW5nZWQs IDMzIGluc2VydGlvbnMoKyksIDI4NiBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2FzdC9hc3RfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9kcnYu Ywo+IGluZGV4IDFmMTc3OTRiMDg5MC4uZDc2M2RhNmYwODM0IDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hc3QvYXN0X2Rydi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3Rf ZHJ2LmMKPiBAQCAtOTksMTQgKzk5LDE0IEBAIGFzdF9wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2 ICpwZGV2KQo+ICAJZHJtX3B1dF9kZXYoZGV2KTsKPiAgfQo+ICAKPiAtCj4gLQo+ICBzdGF0aWMg aW50IGFzdF9kcm1fZnJlZXplKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIHsKPiAtCWRybV9r bXNfaGVscGVyX3BvbGxfZGlzYWJsZShkZXYpOwo+IC0JcGNpX3NhdmVfc3RhdGUoZGV2LT5wZGV2 KTsKPiAtCWRybV9mYl9oZWxwZXJfc2V0X3N1c3BlbmRfdW5sb2NrZWQoZGV2LT5mYl9oZWxwZXIs IHRydWUpOwo+ICsJaW50IGVycm9yOwo+ICAKPiArCWVycm9yID0gZHJtX21vZGVfY29uZmlnX2hl bHBlcl9zdXNwZW5kKGRldik7Cj4gKwlpZiAoZXJyb3IpCj4gKwkJcmV0dXJuIGVycm9yOwo+ICsJ cGNpX3NhdmVfc3RhdGUoZGV2LT5wZGV2KTsKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IEBAIC0x MTQsMTEgKzExNCw3IEBAIHN0YXRpYyBpbnQgYXN0X2RybV90aGF3KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCj4gIHsKPiAgCWFzdF9wb3N0X2dwdShkZXYpOwo+ICAKPiAtCWRybV9tb2RlX2NvbmZp Z19yZXNldChkZXYpOwo+IC0JZHJtX2hlbHBlcl9yZXN1bWVfZm9yY2VfbW9kZShkZXYpOwo+IC0J ZHJtX2ZiX2hlbHBlcl9zZXRfc3VzcGVuZF91bmxvY2tlZChkZXYtPmZiX2hlbHBlciwgZmFsc2Up Owo+IC0KPiAtCXJldHVybiAwOwo+ICsJcmV0dXJuIGRybV9tb2RlX2NvbmZpZ19oZWxwZXJfcmVz dW1lKGRldik7Cj4gIH0KPiAgCj4gIHN0YXRpYyBpbnQgYXN0X2RybV9yZXN1bWUoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKPiBAQCAtMTMxLDggKzEyNyw2IEBAIHN0YXRpYyBpbnQgYXN0X2RybV9y ZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCXJldCA9IGFzdF9kcm1fdGhhdyhkZXYp Owo+ICAJaWYgKHJldCkKPiAgCQlyZXR1cm4gcmV0Owo+IC0KPiAtCWRybV9rbXNfaGVscGVyX3Bv bGxfZW5hYmxlKGRldik7Cj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiBAQCAtMTUwLDYgKzE0NCw3 IEBAIHN0YXRpYyBpbnQgYXN0X3BtX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQo+ICAJcGNp X3NldF9wb3dlcl9zdGF0ZShwZGV2LCBQQ0lfRDNob3QpOwo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAr Cj4gIHN0YXRpYyBpbnQgYXN0X3BtX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gIHsKPiAg CXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2RldihkZXYpOwo+IEBAIC0xNjUsNyArMTYw LDYgQEAgc3RhdGljIGludCBhc3RfcG1fZnJlZXplKHN0cnVjdCBkZXZpY2UgKmRldikKPiAgCWlm ICghZGRldiB8fCAhZGRldi0+ZGV2X3ByaXZhdGUpCj4gIAkJcmV0dXJuIC1FTk9ERVY7Cj4gIAly ZXR1cm4gYXN0X2RybV9mcmVlemUoZGRldik7Cj4gLQo+ICB9Cj4gIAo+ICBzdGF0aWMgaW50IGFz dF9wbV90aGF3KHN0cnVjdCBkZXZpY2UgKmRldikKPiBAQCAtMjAzLDcgKzE5Nyw5IEBAIHN0YXRp YyBzdHJ1Y3QgcGNpX2RyaXZlciBhc3RfcGNpX2RyaXZlciA9IHsKPiAgREVGSU5FX0RSTV9HRU1f Rk9QUyhhc3RfZm9wcyk7Cj4gIAo+ICBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgZHJpdmVyID0g ewo+IC0JLmRyaXZlcl9mZWF0dXJlcyA9IERSSVZFUl9NT0RFU0VUIHwgRFJJVkVSX0dFTSwKPiAr CS5kcml2ZXJfZmVhdHVyZXMgPSBEUklWRVJfQVRPTUlDIHwKPiArCQkJICAgRFJJVkVSX0dFTSB8 Cj4gKwkJCSAgIERSSVZFUl9NT0RFU0VULAo+ICAKPiAgCS5sb2FkID0gYXN0X2RyaXZlcl9sb2Fk LAo+ICAJLnVubG9hZCA9IGFzdF9kcml2ZXJfdW5sb2FkLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYXN0L2FzdF9tYWluLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9tYWluLmMK PiBpbmRleCA0OGQ1N2FiNDI5NTUuLmI3OWY0ODRlOWJkMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vYXN0L2FzdF9tYWluLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9t YWluLmMKPiBAQCAtMjgsNiArMjgsNyBAQAo+ICAKPiAgI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgo+ ICAKPiArI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgo+ICAjaW5jbHVkZSA8ZHJt L2RybV9jcnRjX2hlbHBlci5oPgo+ICAjaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KPiAg I2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+Cj4gQEAgLTQxMiw2ICs0MTMsOCBAQCBlbnVtIGRybV9t b2RlX3N0YXR1cyBhc3RfbW9kZV9jb25maWdfbW9kZV92YWxpZChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9tb2RlX2NvbmZpZ19mdW5jcyBhc3RfbW9k ZV9mdW5jcyA9IHsKPiAgCS5mYl9jcmVhdGUgPSBkcm1fZ2VtX2ZiX2NyZWF0ZSwKPiAgCS5tb2Rl X3ZhbGlkID0gYXN0X21vZGVfY29uZmlnX21vZGVfdmFsaWQsCj4gKwkuYXRvbWljX2NoZWNrID0g ZHJtX2F0b21pY19oZWxwZXJfY2hlY2ssCj4gKwkuYXRvbWljX2NvbW1pdCA9IGRybV9hdG9taWNf aGVscGVyX2NvbW1pdCwKPiAgfTsKPiAgCj4gIHN0YXRpYyB1MzIgYXN0X2dldF92cmFtX2luZm8o c3RydWN0IGRybV9kZXZpY2UgKmRldikKPiBAQCAtNTI5LDYgKzUzMiw4IEBAIGludCBhc3RfZHJp dmVyX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBmbGFncykKPiAg CWlmIChyZXQpCj4gIAkJZ290byBvdXRfZnJlZTsKPiAgCj4gKwlkcm1fbW9kZV9jb25maWdfcmVz ZXQoZGV2KTsKPiArCj4gIAlyZXQgPSBkcm1fZmJkZXZfZ2VuZXJpY19zZXR1cChkZXYsIDMyKTsK PiAgCWlmIChyZXQpCj4gIAkJZ290byBvdXRfZnJlZTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FzdC9hc3RfbW9kZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfbW9kZS5jCj4g aW5kZXggZjVmNzMyMDBlOGU0Li41ZWNjYjZhZTJlZGUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FzdC9hc3RfbW9kZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfbW9k ZS5jCj4gQEAgLTQ1LDExICs0NSw2IEBACj4gIAo+ICBzdGF0aWMgc3RydWN0IGFzdF9pMmNfY2hh biAqYXN0X2kyY19jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gIHN0YXRpYyB2b2lk IGFzdF9pMmNfZGVzdHJveShzdHJ1Y3QgYXN0X2kyY19jaGFuICppMmMpOwo+IC1zdGF0aWMgaW50 IGFzdF9jdXJzb3Jfc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAtCQkJICBzdHJ1Y3QgZHJt X2ZpbGUgKmZpbGVfcHJpdiwKPiAtCQkJICB1aW50MzJfdCBoYW5kbGUsCj4gLQkJCSAgdWludDMy X3Qgd2lkdGgsCj4gLQkJCSAgdWludDMyX3QgaGVpZ2h0KTsKPiAgc3RhdGljIGludCBhc3RfY3Vy c29yX21vdmUoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJCQkgICBpbnQgeCwgaW50IHkpOwo+ ICAKPiBAQCAtNTgsOSArNTMsNiBAQCBzdGF0aWMgdTMyIGNvcHlfY3Vyc29yX2ltYWdlKHU4ICpz cmMsIHU4ICpkc3QsIGludCB3aWR0aCwgaW50IGhlaWdodCk7Cj4gIHN0YXRpYyBpbnQgYXN0X2N1 cnNvcl91cGRhdGUodm9pZCAqZHN0LCB2b2lkICpzcmMsIHVuc2lnbmVkIGludCB3aWR0aCwKPiAg CQkJICAgICB1bnNpZ25lZCBpbnQgaGVpZ2h0KTsKPiAgc3RhdGljIHZvaWQgYXN0X2N1cnNvcl9z ZXRfYmFzZShzdHJ1Y3QgYXN0X3ByaXZhdGUgKmFzdCwgdTY0IGFkZHJlc3MpOwo+IC1zdGF0aWMg aW50IGFzdF9zaG93X2N1cnNvcihzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHZvaWQgKnNyYywKPiAt CQkJICAgdW5zaWduZWQgaW50IHdpZHRoLCB1bnNpZ25lZCBpbnQgaGVpZ2h0KTsKPiAtc3RhdGlj IHZvaWQgYXN0X2hpZGVfY3Vyc29yKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Cj4gIHN0YXRpYyBp bnQgYXN0X2N1cnNvcl9tb3ZlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCQkJICAgaW50IHgs IGludCB5KTsKPiAgCj4gQEAgLTQzNCw3ICs0MjYsNyBAQCBzdGF0aWMgdm9pZCBhc3Rfc2V0X2Ny dGNfcmVnKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yywgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1v ZAo+ICBzdGF0aWMgdm9pZCBhc3Rfc2V0X29mZnNldF9yZWcoc3RydWN0IGRybV9jcnRjICpjcnRj KQo+ICB7Cj4gIAlzdHJ1Y3QgYXN0X3ByaXZhdGUgKmFzdCA9IGNydGMtPmRldi0+ZGV2X3ByaXZh dGU7Cj4gLQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IGNydGMtPnByaW1hcnkt PmZiOwo+ICsJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBjcnRjLT5wcmltYXJ5 LT5zdGF0ZS0+ZmI7Cj4gIAo+ICAJdTE2IG9mZnNldDsKPiAgCj4gQEAgLTUyOCw3ICs1MjAsNyBA QCBzdGF0aWMgdm9pZCBhc3Rfc2V0X3N5bmNfcmVnKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptbwo+ICBzdGF0aWMgYm9vbCBhc3Rfc2V0X2RhY19yZWco c3RydWN0IGRybV9jcnRjICpjcnRjLCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKPiAg CQkgICAgIHN0cnVjdCBhc3RfdmJpb3NfbW9kZV9pbmZvICp2Ymlvc19tb2RlKQo+ICB7Cj4gLQlj b25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IGNydGMtPnByaW1hcnktPmZiOwo+ICsJ Y29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBjcnRjLT5wcmltYXJ5LT5zdGF0ZS0+ ZmI7Cj4gIAo+ICAJc3dpdGNoIChmYi0+Zm9ybWF0LT5jcHBbMF0gKiA4KSB7Cj4gIAljYXNlIDg6 Cj4gQEAgLTc2NSwxMTIgKzc1Nyw2IEBAIHN0YXRpYyB2b2lkIGFzdF9jcnRjX2RwbXMoc3RydWN0 IGRybV9jcnRjICpjcnRjLCBpbnQgbW9kZSkKPiAgCX0KPiAgfQo+ICAKPiAtc3RhdGljIGludCBh c3RfY3J0Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gLQkJCQlzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiAtCQkJCWludCB4LCBpbnQgeSwgaW50IGF0b21pYykKPiAt ewo+IC0Jc3RydWN0IGRybV9nZW1fdnJhbV9vYmplY3QgKmdibzsKPiAtCWludCByZXQ7Cj4gLQlz NjQgZ3B1X2FkZHI7Cj4gLQo+IC0JaWYgKCFhdG9taWMgJiYgZmIpIHsKPiAtCQlnYm8gPSBkcm1f Z2VtX3ZyYW1fb2ZfZ2VtKGZiLT5vYmpbMF0pOwo+IC0JCWRybV9nZW1fdnJhbV91bnBpbihnYm8p Owo+IC0JfQo+IC0KPiAtCWdibyA9IGRybV9nZW1fdnJhbV9vZl9nZW0oY3J0Yy0+cHJpbWFyeS0+ ZmItPm9ialswXSk7Cj4gLQo+IC0JcmV0ID0gZHJtX2dlbV92cmFtX3BpbihnYm8sIERSTV9HRU1f VlJBTV9QTF9GTEFHX1ZSQU0pOwo+IC0JaWYgKHJldCkKPiAtCQlyZXR1cm4gcmV0Owo+IC0JZ3B1 X2FkZHIgPSBkcm1fZ2VtX3ZyYW1fb2Zmc2V0KGdibyk7Cj4gLQlpZiAoZ3B1X2FkZHIgPCAwKSB7 Cj4gLQkJcmV0ID0gKGludClncHVfYWRkcjsKPiAtCQlnb3RvIGVycl9kcm1fZ2VtX3ZyYW1fdW5w aW47Cj4gLQl9Cj4gLQo+IC0JYXN0X3NldF9vZmZzZXRfcmVnKGNydGMpOwo+IC0JYXN0X3NldF9z dGFydF9hZGRyZXNzX2NydDEoY3J0YywgKHUzMilncHVfYWRkcik7Cj4gLQo+IC0JcmV0dXJuIDA7 Cj4gLQo+IC1lcnJfZHJtX2dlbV92cmFtX3VucGluOgo+IC0JZHJtX2dlbV92cmFtX3VucGluKGdi byk7Cj4gLQlyZXR1cm4gcmV0Owo+IC19Cj4gLQo+IC1zdGF0aWMgaW50IGFzdF9jcnRjX21vZGVf c2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLCBpbnQgeCwgaW50IHksCj4gLQkJCSAgICAg c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqb2xkX2ZiKQo+IC17Cj4gLQlyZXR1cm4gYXN0X2NydGNf ZG9fc2V0X2Jhc2UoY3J0Yywgb2xkX2ZiLCB4LCB5LCAwKTsKPiAtfQo+IC0KPiAtc3RhdGljIGlu dCBhc3RfY3J0Y19tb2RlX3NldChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gLQkJCSAgICAgc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCj4gLQkJCSAgICAgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKmFkanVzdGVkX21vZGUsCj4gLQkJCSAgICAgaW50IHgsIGludCB5LAo+IC0JCQkgICAg IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKm9sZF9mYikKPiAtewo+IC0Jc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGNydGMtPmRldjsKPiAtCXN0cnVjdCBhc3RfcHJpdmF0ZSAqYXN0ID0gY3J0Yy0+ ZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0g Y3J0Yy0+cHJpbWFyeS0+ZmI7Cj4gLQlzdHJ1Y3QgYXN0X3ZiaW9zX21vZGVfaW5mbyB2Ymlvc19t b2RlOwo+IC0JYm9vbCBzdWNjOwo+IC0KPiAtCWlmIChhc3QtPmNoaXAgPT0gQVNUMTE4MCkgewo+ IC0JCURSTV9FUlJPUigiQVNUIDExODAgbW9kZXNldHRpbmcgbm90IHN1cHBvcnRlZFxuIik7Cj4g LQkJcmV0dXJuIC1FSU5WQUw7Cj4gLQl9Cj4gLQo+IC0Jc3VjYyA9IGFzdF9nZXRfdmJpb3NfbW9k ZV9pbmZvKGZiLCBtb2RlLCBhZGp1c3RlZF9tb2RlLCAmdmJpb3NfbW9kZSk7Cj4gLQlpZiAoIXN1 Y2MpCj4gLQkJcmV0dXJuIC1FSU5WQUw7Cj4gLQo+IC0JYXN0X29wZW5fa2V5KGFzdCk7Cj4gLQo+ IC0JYXN0X3NldF92Ymlvc19jb2xvcl9yZWcoY3J0YywgZmIsICZ2Ymlvc19tb2RlKTsKPiAtCWFz dF9zZXRfdmJpb3NfbW9kZV9yZWcoY3J0YywgYWRqdXN0ZWRfbW9kZSwgJnZiaW9zX21vZGUpOwo+ IC0JYXN0X3NldF9pbmRleF9yZWcoYXN0LCBBU1RfSU9fQ1JUQ19QT1JULCAweGExLCAweDA2KTsK PiAtCWFzdF9zZXRfc3RkX3JlZyhjcnRjLCBhZGp1c3RlZF9tb2RlLCAmdmJpb3NfbW9kZSk7Cj4g LQlhc3Rfc2V0X2NydGNfcmVnKGNydGMsIGFkanVzdGVkX21vZGUsICZ2Ymlvc19tb2RlKTsKPiAt CWFzdF9zZXRfb2Zmc2V0X3JlZyhjcnRjKTsKPiAtCWFzdF9zZXRfZGNsa19yZWcoZGV2LCBhZGp1 c3RlZF9tb2RlLCAmdmJpb3NfbW9kZSk7Cj4gLQlhc3Rfc2V0X2NvbG9yX3JlZyhjcnRjLCBmYik7 Cj4gLQlhc3Rfc2V0X2NydHRoZF9yZWcoY3J0Yyk7Cj4gLQlhc3Rfc2V0X3N5bmNfcmVnKGRldiwg YWRqdXN0ZWRfbW9kZSwgJnZiaW9zX21vZGUpOwo+IC0JYXN0X3NldF9kYWNfcmVnKGNydGMsIGFk anVzdGVkX21vZGUsICZ2Ymlvc19tb2RlKTsKPiAtCj4gLQlhc3RfY3J0Y19tb2RlX3NldF9iYXNl KGNydGMsIHgsIHksIG9sZF9mYik7Cj4gLQo+IC0JcmV0dXJuIDA7Cj4gLX0KPiAtCj4gLXN0YXRp YyB2b2lkIGFzdF9jcnRjX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+IC17Cj4gLQlE Uk1fREVCVUdfS01TKCJcbiIpOwo+IC0JYXN0X2NydGNfZHBtcyhjcnRjLCBEUk1fTU9ERV9EUE1T X09GRik7Cj4gLQlpZiAoY3J0Yy0+cHJpbWFyeS0+ZmIpIHsKPiAtCQlzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpmYiA9IGNydGMtPnByaW1hcnktPmZiOwo+IC0JCXN0cnVjdCBkcm1fZ2VtX3ZyYW1f b2JqZWN0ICpnYm8gPQo+IC0JCQlkcm1fZ2VtX3ZyYW1fb2ZfZ2VtKGZiLT5vYmpbMF0pOwo+IC0K PiAtCQlkcm1fZ2VtX3ZyYW1fdW5waW4oZ2JvKTsKPiAtCX0KPiAtCWNydGMtPnByaW1hcnktPmZi ID0gTlVMTDsKPiAtfQo+IC0KPiAtc3RhdGljIHZvaWQgYXN0X2NydGNfcHJlcGFyZShzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMpCj4gLXsKPiAtCj4gLX0KPiAtCj4gLXN0YXRpYyB2b2lkIGFzdF9jcnRj X2NvbW1pdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gLXsKPiAtCXN0cnVjdCBhc3RfcHJpdmF0 ZSAqYXN0ID0gY3J0Yy0+ZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCWFzdF9zZXRfaW5kZXhfcmVnX21h c2soYXN0LCBBU1RfSU9fU0VRX1BPUlQsIDB4MSwgMHhkZiwgMCk7Cj4gLQlhc3RfY3J0Y19sb2Fk X2x1dChjcnRjKTsKPiAtfQo+IC0KPiAgc3RhdGljIGludCBhc3RfY3J0Y19oZWxwZXJfYXRvbWlj X2NoZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCQkJCQlzdHJ1Y3QgZHJtX2NydGNfc3Rh dGUgKnN0YXRlKQo+ICB7Cj4gQEAgLTk3MCwxMiArODU2LDYgQEAgYXN0X2NydGNfaGVscGVyX2F0 b21pY19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgfQo+ICAKPiAgc3RhdGljIGNv bnN0IHN0cnVjdCBkcm1fY3J0Y19oZWxwZXJfZnVuY3MgYXN0X2NydGNfaGVscGVyX2Z1bmNzID0g ewo+IC0JLmRwbXMgPSBhc3RfY3J0Y19kcG1zLAo+IC0JLm1vZGVfc2V0ID0gYXN0X2NydGNfbW9k ZV9zZXQsCj4gLQkubW9kZV9zZXRfYmFzZSA9IGFzdF9jcnRjX21vZGVfc2V0X2Jhc2UsCj4gLQku ZGlzYWJsZSA9IGFzdF9jcnRjX2Rpc2FibGUsCj4gLQkucHJlcGFyZSA9IGFzdF9jcnRjX3ByZXBh cmUsCj4gLQkuY29tbWl0ID0gYXN0X2NydGNfY29tbWl0LAo+ICAJLmF0b21pY19jaGVjayA9IGFz dF9jcnRjX2hlbHBlcl9hdG9taWNfY2hlY2ssCj4gIAkuYXRvbWljX2JlZ2luID0gYXN0X2NydGNf aGVscGVyX2F0b21pY19iZWdpbiwKPiAgCS5hdG9taWNfZmx1c2ggPSBhc3RfY3J0Y19oZWxwZXJf YXRvbWljX2ZsdXNoLAo+IEBAIC05ODMsMjEgKzg2Myw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg ZHJtX2NydGNfaGVscGVyX2Z1bmNzIGFzdF9jcnRjX2hlbHBlcl9mdW5jcyA9IHsKPiAgCS5hdG9t aWNfZGlzYWJsZSA9IGFzdF9jcnRjX2hlbHBlcl9hdG9taWNfZGlzYWJsZSwKPiAgfTsKPiAgCj4g LXN0YXRpYyB2b2lkIGFzdF9jcnRjX3Jlc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAtewo+ IC0KPiAtfQo+IC0KPiAtc3RhdGljIGludCBhc3RfY3J0Y19nYW1tYV9zZXQoc3RydWN0IGRybV9j cnRjICpjcnRjLCB1MTYgKnJlZCwgdTE2ICpncmVlbiwKPiAtCQkJICAgICAgdTE2ICpibHVlLCB1 aW50MzJfdCBzaXplLAo+IC0JCQkgICAgICBzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHgg KmN0eCkKPiAtewo+IC0JYXN0X2NydGNfbG9hZF9sdXQoY3J0Yyk7Cj4gLQo+IC0JcmV0dXJuIDA7 Cj4gLX0KPiAtCj4gLQo+ICBzdGF0aWMgdm9pZCBhc3RfY3J0Y19kZXN0cm95KHN0cnVjdCBkcm1f Y3J0YyAqY3J0YykKPiAgewo+ICAJZHJtX2NydGNfY2xlYW51cChjcnRjKTsKPiBAQCAtMTAwNSwx MiArODcwLDEyIEBAIHN0YXRpYyB2b2lkIGFzdF9jcnRjX2Rlc3Ryb3koc3RydWN0IGRybV9jcnRj ICpjcnRjKQo+ICB9Cj4gIAo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jcnRjX2Z1bmNzIGFz dF9jcnRjX2Z1bmNzID0gewo+IC0JLmN1cnNvcl9zZXQgPSBhc3RfY3Vyc29yX3NldCwKPiAtCS5j dXJzb3JfbW92ZSA9IGFzdF9jdXJzb3JfbW92ZSwKPiAtCS5yZXNldCA9IGFzdF9jcnRjX3Jlc2V0 LAo+ICsJLnJlc2V0ID0gZHJtX2F0b21pY19oZWxwZXJfY3J0Y19yZXNldCwKPiAgCS5zZXRfY29u ZmlnID0gZHJtX2NydGNfaGVscGVyX3NldF9jb25maWcsCj4gLQkuZ2FtbWFfc2V0ID0gYXN0X2Ny dGNfZ2FtbWFfc2V0LAo+ICsJLmdhbW1hX3NldCA9IGRybV9hdG9taWNfaGVscGVyX2xlZ2FjeV9n YW1tYV9zZXQsCj4gIAkuZGVzdHJveSA9IGFzdF9jcnRjX2Rlc3Ryb3ksCj4gKwkuc2V0X2NvbmZp ZyA9IGRybV9hdG9taWNfaGVscGVyX3NldF9jb25maWcsCj4gKwkucGFnZV9mbGlwID0gZHJtX2F0 b21pY19oZWxwZXJfcGFnZV9mbGlwLAo+ICAJLmF0b21pY19kdXBsaWNhdGVfc3RhdGUgPSBkcm1f YXRvbWljX2hlbHBlcl9jcnRjX2R1cGxpY2F0ZV9zdGF0ZSwKPiAgCS5hdG9taWNfZGVzdHJveV9z dGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX2NydGNfZGVzdHJveV9zdGF0ZSwKPiAgfTsKPiBAQCAt MTA0MCw2ICs5MDUsMTAgQEAgc3RhdGljIGludCBhc3RfY3J0Y19pbml0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4gIAo+ICsvKgo+ICsgKiBFbmNvZGVyCj4g KyAqLwo+ICsKPiAgc3RhdGljIHZvaWQgYXN0X2VuY29kZXJfZGVzdHJveShzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIpCj4gIHsKPiAgCWRybV9lbmNvZGVyX2NsZWFudXAoZW5jb2Rlcik7Cj4g QEAgLTEwNTAsMzQgKzkxOSw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2VuY29kZXJfZnVu Y3MgYXN0X2VuY19mdW5jcyA9IHsKPiAgCS5kZXN0cm95ID0gYXN0X2VuY29kZXJfZGVzdHJveSwK PiAgfTsKPiAgCj4gLXN0YXRpYyB2b2lkIGFzdF9lbmNvZGVyX2RwbXMoc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyLCBpbnQgbW9kZSkKPiAtewo+IC0KPiAtfQo+IC0KPiAtc3RhdGljIHZvaWQg YXN0X2VuY29kZXJfbW9kZV9zZXQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+IC0JCQkg ICAgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCj4gLQkJCSAgICAgICBzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSkKPiAtewo+IC19Cj4gLQo+IC1zdGF0aWMg dm9pZCBhc3RfZW5jb2Rlcl9wcmVwYXJlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPiAt ewo+IC0KPiAtfQo+IC0KPiAtc3RhdGljIHZvaWQgYXN0X2VuY29kZXJfY29tbWl0KHN0cnVjdCBk cm1fZW5jb2RlciAqZW5jb2RlcikKPiAtewo+IC0KPiAtfQo+IC0KPiAtc3RhdGljIGNvbnN0IHN0 cnVjdCBkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3MgYXN0X2VuY19oZWxwZXJfZnVuY3MgPSB7Cj4g LQkuZHBtcyA9IGFzdF9lbmNvZGVyX2RwbXMsCj4gLQkucHJlcGFyZSA9IGFzdF9lbmNvZGVyX3By ZXBhcmUsCj4gLQkuY29tbWl0ID0gYXN0X2VuY29kZXJfY29tbWl0LAo+IC0JLm1vZGVfc2V0ID0g YXN0X2VuY29kZXJfbW9kZV9zZXQsCj4gLX07CgpIbW0uICBQcmV0dHkgbXVjaCBhIGR1bW15IGVu Y29kZXIgaW1wbGVtZW50YXRpb24uICBNYXliZSBhc3QgaXMgc2ltcGxlCmVub3VnaCB0aGF0IHRo ZSBzaW1wbGUgcGlwZSBoZWxwZXJzIGNhbiBkbyB0aGUgdHJpY2s/CgpjaGVlcnMsCiAgR2VyZAoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs