From mboxrd@z Thu Jan 1 00:00:00 1970 From: Philipp Zabel Subject: Re: [PATCH v2 2/8] drm/etnaviv: split out cmdbuf mapping into address space Date: Wed, 24 Jul 2019 15:51:52 +0200 Message-ID: <1563976312.2914.14.camel@pengutronix.de> References: <20190705171727.27501-1-l.stach@pengutronix.de> <20190705171727.27501-2-l.stach@pengutronix.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by gabe.freedesktop.org (Postfix) with ESMTPS id A474D6E4F8 for ; Wed, 24 Jul 2019 13:51:55 +0000 (UTC) In-Reply-To: <20190705171727.27501-2-l.stach@pengutronix.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Lucas Stach , etnaviv@lists.freedesktop.org Cc: Russell King , dri-devel@lists.freedesktop.org, kernel@pengutronix.de, patchwork-lst@pengutronix.de List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCAyMDE5LTA3LTA1IGF0IDE5OjE3ICswMjAwLCBMdWNhcyBTdGFjaCB3cm90ZToKPiBU aGlzIGFsbG93cyB0byBkZWNvdXBsZSB0aGUgY21kYnVmIHN1YmFsbG9jYXRvciBjcmVhdGUgYW5k IG1hcHBpbmcKPiB0aGUgcmVnaW9uIGludG8gdGhlIEdQVSBhZGRyZXNzIHNwYWNlLiBBbGxvd2lu ZyBtdWx0aXBsZSBBUyB0byBzaGFyZQo+IGEgc2luZ2xlIGNtZGJ1ZiBzdWJhbGxvYy4KPiAKPiBT aWduZWQtb2ZmLWJ5OiBMdWNhcyBTdGFjaCA8bC5zdGFjaEBwZW5ndXRyb25peC5kZT4KPiAtLS0K PiAgZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9idWZmZXIuYyB8IDIzICsrKystLS0t Cj4gIGRyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfY21kYnVmLmMgfCAzNSArKysrKyst LS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9jbWRidWYuaCB8IDExICsr Ky0KPiAgZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9kdW1wLmMgICB8ICA2ICstCj4g IGRyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ3B1LmMgICAgfCAxOSArKysrKy0tCj4g IGRyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ3B1LmggICAgfCAgMyArLQo+ICBkcml2 ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X21tdS5jICAgIHwgNzAgKysrKysrKysrKysrKysr LS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfbW11LmggICAgfCAx MiArKy0tCj4gIDggZmlsZXMgY2hhbmdlZCwgMTE0IGluc2VydGlvbnMoKyksIDY1IGRlbGV0aW9u cygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2J1 ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9idWZmZXIuYwo+IGluZGV4 IGZlMGQyZDY3MDA3ZC4uNjQwMGE4OGNkNzc4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9ldG5hdml2L2V0bmF2aXZfYnVmZmVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZp di9ldG5hdml2X2J1ZmZlci5jCj4gQEAgLTExOCw3ICsxMTgsOCBAQCBzdGF0aWMgdm9pZCBldG5h dml2X2J1ZmZlcl9kdW1wKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1LAo+ICAJdTMyICpwdHIgPSBi dWYtPnZhZGRyICsgb2ZmOwo+ICAKPiAgCWRldl9pbmZvKGdwdS0+ZGV2LCAidmlydCAlcCBwaHlz IDB4JTA4eCBmcmVlIDB4JTA4eFxuIiwKPiAtCQkJcHRyLCBldG5hdml2X2NtZGJ1Zl9nZXRfdmEo YnVmKSArIG9mZiwgc2l6ZSAtIGxlbiAqIDQgLSBvZmYpOwo+ICsJCQlwdHIsIGV0bmF2aXZfY21k YnVmX2dldF92YShidWYsICZncHUtPmNtZGJ1Zl9tYXBwaW5nKSArCj4gKwkJCW9mZiwgc2l6ZSAt IGxlbiAqIDQgLSBvZmYpOwo+ICAKPiAgCXByaW50X2hleF9kdW1wKEtFUk5fSU5GTywgImNtZCAi LCBEVU1QX1BSRUZJWF9PRkZTRVQsIDE2LCA0LAo+ICAJCQlwdHIsIGxlbiAqIDQsIDApOwo+IEBA IC0xNTEsNyArMTUyLDggQEAgc3RhdGljIHUzMiBldG5hdml2X2J1ZmZlcl9yZXNlcnZlKHN0cnVj dCBldG5hdml2X2dwdSAqZ3B1LAo+ICAJaWYgKGJ1ZmZlci0+dXNlcl9zaXplICsgY21kX2R3b3Jk cyAqIHNpemVvZih1NjQpID4gYnVmZmVyLT5zaXplKQo+ICAJCWJ1ZmZlci0+dXNlcl9zaXplID0g MDsKPiAgCj4gLQlyZXR1cm4gZXRuYXZpdl9jbWRidWZfZ2V0X3ZhKGJ1ZmZlcikgKyBidWZmZXIt PnVzZXJfc2l6ZTsKPiArCXJldHVybiBldG5hdml2X2NtZGJ1Zl9nZXRfdmEoYnVmZmVyLCAmZ3B1 LT5jbWRidWZfbWFwcGluZykgKwo+ICsJICAgICAgIGJ1ZmZlci0+dXNlcl9zaXplOwo+ICB9Cj4g IAo+ICB1MTYgZXRuYXZpdl9idWZmZXJfaW5pdChzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSkKPiBA QCAtMTY0LDggKzE2Niw4IEBAIHUxNiBldG5hdml2X2J1ZmZlcl9pbml0KHN0cnVjdCBldG5hdml2 X2dwdSAqZ3B1KQo+ICAJYnVmZmVyLT51c2VyX3NpemUgPSAwOwo+ICAKPiAgCUNNRF9XQUlUKGJ1 ZmZlcik7Cj4gLQlDTURfTElOSyhidWZmZXIsIDIsIGV0bmF2aXZfY21kYnVmX2dldF92YShidWZm ZXIpICsKPiAtCQkgYnVmZmVyLT51c2VyX3NpemUgLSA0KTsKPiArCUNNRF9MSU5LKGJ1ZmZlciwg MiwgZXRuYXZpdl9jbWRidWZfZ2V0X3ZhKGJ1ZmZlciwgJmdwdS0+Y21kYnVmX21hcHBpbmcpCj4g KwkJICsgYnVmZmVyLT51c2VyX3NpemUgLSA0KTsKPiAgCj4gIAlyZXR1cm4gYnVmZmVyLT51c2Vy X3NpemUgLyA4Owo+ICB9Cj4gQEAgLTI5MSw4ICsyOTMsOCBAQCB2b2lkIGV0bmF2aXZfc3luY19w b2ludF9xdWV1ZShzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSwgdW5zaWduZWQgaW50IGV2ZW50KQo+ ICAKPiAgCS8qIEFwcGVuZCB3YWl0bGluayAqLwo+ICAJQ01EX1dBSVQoYnVmZmVyKTsKPiAtCUNN RF9MSU5LKGJ1ZmZlciwgMiwgZXRuYXZpdl9jbWRidWZfZ2V0X3ZhKGJ1ZmZlcikgKwo+IC0JCQkg ICAgYnVmZmVyLT51c2VyX3NpemUgLSA0KTsKPiArCUNNRF9MSU5LKGJ1ZmZlciwgMiwgZXRuYXZp dl9jbWRidWZfZ2V0X3ZhKGJ1ZmZlciwgJmdwdS0+Y21kYnVmX21hcHBpbmcpCj4gKwkJICsgYnVm ZmVyLT51c2VyX3NpemUgLSA0KTsKPiAgCj4gIAkvKgo+ICAJICogS2ljayBvZmYgdGhlICdzeW5j IHBvaW50JyBjb21tYW5kIGJ5IHJlcGxhY2luZyB0aGUgcHJldmlvdXMKPiBAQCAtMzE5LDcgKzMy MSw3IEBAIHZvaWQgZXRuYXZpdl9idWZmZXJfcXVldWUoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUs IHUzMiBleGVjX3N0YXRlLAo+ICAJaWYgKGRybV9kZWJ1ZyAmIERSTV9VVF9EUklWRVIpCj4gIAkJ ZXRuYXZpdl9idWZmZXJfZHVtcChncHUsIGJ1ZmZlciwgMCwgMHg1MCk7Cj4gIAo+IC0JbGlua190 YXJnZXQgPSBldG5hdml2X2NtZGJ1Zl9nZXRfdmEoY21kYnVmKTsKPiArCWxpbmtfdGFyZ2V0ID0g ZXRuYXZpdl9jbWRidWZfZ2V0X3ZhKGNtZGJ1ZiwgJmdwdS0+Y21kYnVmX21hcHBpbmcpOwo+ICAJ bGlua19kd29yZHMgPSBjbWRidWYtPnNpemUgLyA4Owo+ICAKPiAgCS8qCj4gQEAgLTQxMiwxMiAr NDE0LDEzIEBAIHZvaWQgZXRuYXZpdl9idWZmZXJfcXVldWUoc3RydWN0IGV0bmF2aXZfZ3B1ICpn cHUsIHUzMiBleGVjX3N0YXRlLAo+ICAJQ01EX0xPQURfU1RBVEUoYnVmZmVyLCBWSVZTX0dMX0VW RU5ULCBWSVZTX0dMX0VWRU5UX0VWRU5UX0lEKGV2ZW50KSB8Cj4gIAkJICAgICAgIFZJVlNfR0xf RVZFTlRfRlJPTV9QRSk7Cj4gIAlDTURfV0FJVChidWZmZXIpOwo+IC0JQ01EX0xJTksoYnVmZmVy LCAyLCBldG5hdml2X2NtZGJ1Zl9nZXRfdmEoYnVmZmVyKSArCj4gLQkJCSAgICBidWZmZXItPnVz ZXJfc2l6ZSAtIDQpOwo+ICsJQ01EX0xJTksoYnVmZmVyLCAyLCBldG5hdml2X2NtZGJ1Zl9nZXRf dmEoYnVmZmVyLCAmZ3B1LT5jbWRidWZfbWFwcGluZykKPiArCQkgKyBidWZmZXItPnVzZXJfc2l6 ZSAtIDQpOwo+ICAKPiAgCWlmIChkcm1fZGVidWcgJiBEUk1fVVRfRFJJVkVSKQo+ICAJCXByX2lu Zm8oInN0cmVhbSBsaW5rIHRvIDB4JTA4eCBAIDB4JTA4eCAlcFxuIiwKPiAtCQkJcmV0dXJuX3Rh cmdldCwgZXRuYXZpdl9jbWRidWZfZ2V0X3ZhKGNtZGJ1ZiksCj4gKwkJCXJldHVybl90YXJnZXQs Cj4gKwkJCWV0bmF2aXZfY21kYnVmX2dldF92YShjbWRidWYsICZncHUtPmNtZGJ1Zl9tYXBwaW5n KSwKPiAgCQkJY21kYnVmLT52YWRkcik7Cj4gIAo+ICAJaWYgKGRybV9kZWJ1ZyAmIERSTV9VVF9E UklWRVIpIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9j bWRidWYuYyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfY21kYnVmLmMKPiBpbmRl eCA3Yjc3OTkyZjMxYzQuLjg5MTVkOWQwNTZhNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vZXRuYXZpdi9ldG5hdml2X2NtZGJ1Zi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2V0bmF2 aXYvZXRuYXZpdl9jbWRidWYuYwo+IEBAIC04LDYgKzgsNyBAQAo+ICAjaW5jbHVkZSA8ZHJtL2Ry bV9tbS5oPgo+ICAKPiAgI2luY2x1ZGUgImV0bmF2aXZfY21kYnVmLmgiCj4gKyNpbmNsdWRlICJl dG5hdml2X2dlbS5oIgo+ICAjaW5jbHVkZSAiZXRuYXZpdl9ncHUuaCIKPiAgI2luY2x1ZGUgImV0 bmF2aXZfbW11LmgiCj4gIAo+IEBAIC0yMSwxMCArMjIsNiBAQCBzdHJ1Y3QgZXRuYXZpdl9jbWRi dWZfc3ViYWxsb2Mgewo+ICAJdm9pZCAqdmFkZHI7Cj4gIAlkbWFfYWRkcl90IHBhZGRyOwo+ICAK PiAtCS8qIEdQVSBtYXBwaW5nICovCj4gLQl1MzIgaW92YTsKPiAtCXN0cnVjdCBkcm1fbW1fbm9k ZSB2cmFtX25vZGU7IC8qIG9ubHkgdXNlZCBvbiBNTVV2MiAqLwo+IC0KPiAgCS8qIGFsbG9jYXRp b24gbWFuYWdlbWVudCAqLwo+ICAJc3RydWN0IG11dGV4IGxvY2s7Cj4gIAlERUNMQVJFX0JJVE1B UChncmFudWxlX21hcCwgU1VCQUxMT0NfR1JBTlVMRVMpOwo+IEBAIC01MywyNiArNTAsMzEgQEAg ZXRuYXZpdl9jbWRidWZfc3ViYWxsb2NfbmV3KHN0cnVjdCBldG5hdml2X2dwdSAqIGdwdSkKPiAg CQlnb3RvIGZyZWVfc3ViYWxsb2M7Cj4gIAl9Cj4gIAo+IC0JcmV0ID0gZXRuYXZpdl9pb21tdV9n ZXRfc3ViYWxsb2NfdmEoZ3B1LCBzdWJhbGxvYy0+cGFkZHIsCj4gLQkJCQkJICAgICZzdWJhbGxv Yy0+dnJhbV9ub2RlLCBTVUJBTExPQ19TSVpFLAo+IC0JCQkJCSAgICAmc3ViYWxsb2MtPmlvdmEp Owo+IC0JaWYgKHJldCkKPiAtCQlnb3RvIGZyZWVfZG1hOwo+IC0KPiAgCXJldHVybiBzdWJhbGxv YzsKPiAgCj4gLWZyZWVfZG1hOgo+IC0JZG1hX2ZyZWVfd2MoZ3B1LT5kZXYsIFNVQkFMTE9DX1NJ WkUsIHN1YmFsbG9jLT52YWRkciwgc3ViYWxsb2MtPnBhZGRyKTsKPiAgZnJlZV9zdWJhbGxvYzoK PiAgCWtmcmVlKHN1YmFsbG9jKTsKPiAgCj4gIAlyZXR1cm4gRVJSX1BUUihyZXQpOwo+ICB9Cj4g IAo+ICtpbnQgZXRuYXZpdl9jbWRidWZfc3ViYWxsb2NfbWFwKHN0cnVjdCBldG5hdml2X2NtZGJ1 Zl9zdWJhbGxvYyAqc3ViYWxsb2MsCj4gKwkJCQlzdHJ1Y3QgZXRuYXZpdl9pb21tdSAqbW11LAo+ ICsJCQkJc3RydWN0IGV0bmF2aXZfdnJhbV9tYXBwaW5nICptYXBwaW5nLAo+ICsJCQkJdTMyIG1l bW9yeV9iYXNlKQo+ICt7Cj4gKwlyZXR1cm4gZXRuYXZpdl9pb21tdV9nZXRfc3ViYWxsb2NfdmEo bW11LCBtYXBwaW5nLCBtZW1vcnlfYmFzZSwKPiArCQkJCQkgICAgIHN1YmFsbG9jLT5wYWRkciwg U1VCQUxMT0NfU0laRSk7Cj4gK30KPiArCj4gK3ZvaWQgZXRuYXZpdl9jbWRidWZfc3ViYWxsb2Nf dW5tYXAoc3RydWN0IGV0bmF2aXZfaW9tbXUgKm1tdSwKPiArCQkJCSAgIHN0cnVjdCBldG5hdml2 X3ZyYW1fbWFwcGluZyAqbWFwcGluZykKPiArewo+ICsJZXRuYXZpdl9pb21tdV9wdXRfc3ViYWxs b2NfdmEobW11LCBtYXBwaW5nKTsKPiArfQo+ICsKPiAgdm9pZCBldG5hdml2X2NtZGJ1Zl9zdWJh bGxvY19kZXN0cm95KHN0cnVjdCBldG5hdml2X2NtZGJ1Zl9zdWJhbGxvYyAqc3ViYWxsb2MpCj4g IHsKPiAtCWV0bmF2aXZfaW9tbXVfcHV0X3N1YmFsbG9jX3ZhKHN1YmFsbG9jLT5ncHUsICZzdWJh bGxvYy0+dnJhbV9ub2RlLAo+IC0JCQkJICAgICAgU1VCQUxMT0NfU0laRSwgc3ViYWxsb2MtPmlv dmEpOwo+ICAJZG1hX2ZyZWVfd2Moc3ViYWxsb2MtPmdwdS0+ZGV2LCBTVUJBTExPQ19TSVpFLCBz dWJhbGxvYy0+dmFkZHIsCj4gIAkJICAgIHN1YmFsbG9jLT5wYWRkcik7Cj4gIAlrZnJlZShzdWJh bGxvYyk7Cj4gQEAgLTEyNiw5ICsxMjgsMTAgQEAgdm9pZCBldG5hdml2X2NtZGJ1Zl9mcmVlKHN0 cnVjdCBldG5hdml2X2NtZGJ1ZiAqY21kYnVmKQo+ICAJd2FrZV91cF9hbGwoJnN1YmFsbG9jLT5m cmVlX2V2ZW50KTsKPiAgfQo+ICAKPiAtdTMyIGV0bmF2aXZfY21kYnVmX2dldF92YShzdHJ1Y3Qg ZXRuYXZpdl9jbWRidWYgKmJ1ZikKPiArdTMyIGV0bmF2aXZfY21kYnVmX2dldF92YShzdHJ1Y3Qg ZXRuYXZpdl9jbWRidWYgKmJ1ZiwKPiArCQkJICBzdHJ1Y3QgZXRuYXZpdl92cmFtX21hcHBpbmcg Km1hcHBpbmcpCj4gIHsKPiAtCXJldHVybiBidWYtPnN1YmFsbG9jLT5pb3ZhICsgYnVmLT5zdWJh bGxvY19vZmZzZXQ7Cj4gKwlyZXR1cm4gbWFwcGluZy0+aW92YSArIGJ1Zi0+c3ViYWxsb2Nfb2Zm c2V0Owo+ICB9Cj4gIAo+ICBkbWFfYWRkcl90IGV0bmF2aXZfY21kYnVmX2dldF9wYShzdHJ1Y3Qg ZXRuYXZpdl9jbWRidWYgKmJ1ZikKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2 aXYvZXRuYXZpdl9jbWRidWYuaCBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfY21k YnVmLmgKPiBpbmRleCA0OTkwODc5NzQ1NmUuLjExZDk1ZjA1YzAxNyAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2NtZGJ1Zi5oCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9jbWRidWYuaAo+IEBAIC05LDYgKzksOCBAQAo+ICAjaW5j bHVkZSA8bGludXgvdHlwZXMuaD4KPiAgCj4gIHN0cnVjdCBldG5hdml2X2dwdTsKPiArc3RydWN0 IGV0bmF2aXZfaW9tbXU7Cj4gK3N0cnVjdCBldG5hdml2X3ZyYW1fbWFwcGluZzsKPiAgc3RydWN0 IGV0bmF2aXZfY21kYnVmX3N1YmFsbG9jOwo+ICAKPiAgc3RydWN0IGV0bmF2aXZfY21kYnVmIHsK PiBAQCAtMjQsMTMgKzI2LDIwIEBAIHN0cnVjdCBldG5hdml2X2NtZGJ1ZiB7Cj4gIHN0cnVjdCBl dG5hdml2X2NtZGJ1Zl9zdWJhbGxvYyAqCj4gIGV0bmF2aXZfY21kYnVmX3N1YmFsbG9jX25ldyhz dHJ1Y3QgZXRuYXZpdl9ncHUgKiBncHUpOwo+ICB2b2lkIGV0bmF2aXZfY21kYnVmX3N1YmFsbG9j X2Rlc3Ryb3koc3RydWN0IGV0bmF2aXZfY21kYnVmX3N1YmFsbG9jICpzdWJhbGxvYyk7Cj4gK2lu dCBldG5hdml2X2NtZGJ1Zl9zdWJhbGxvY19tYXAoc3RydWN0IGV0bmF2aXZfY21kYnVmX3N1YmFs bG9jICpzdWJhbGxvYywKPiArCQkJCXN0cnVjdCBldG5hdml2X2lvbW11ICptbXUsCj4gKwkJCQlz dHJ1Y3QgZXRuYXZpdl92cmFtX21hcHBpbmcgKm1hcHBpbmcsCj4gKwkJCQl1MzIgbWVtb3J5X2Jh c2UpOwo+ICt2b2lkIGV0bmF2aXZfY21kYnVmX3N1YmFsbG9jX3VubWFwKHN0cnVjdCBldG5hdml2 X2lvbW11ICptbXUsCj4gKwkJCQkgICBzdHJ1Y3QgZXRuYXZpdl92cmFtX21hcHBpbmcgKm1hcHBp bmcpOwo+ICAKPiAgCj4gIGludCBldG5hdml2X2NtZGJ1Zl9pbml0KHN0cnVjdCBldG5hdml2X2Nt ZGJ1Zl9zdWJhbGxvYyAqc3ViYWxsb2MsCj4gIAkJc3RydWN0IGV0bmF2aXZfY21kYnVmICpjbWRi dWYsIHUzMiBzaXplKTsKPiAgdm9pZCBldG5hdml2X2NtZGJ1Zl9mcmVlKHN0cnVjdCBldG5hdml2 X2NtZGJ1ZiAqY21kYnVmKTsKPiAgCj4gLXUzMiBldG5hdml2X2NtZGJ1Zl9nZXRfdmEoc3RydWN0 IGV0bmF2aXZfY21kYnVmICpidWYpOwo+ICt1MzIgZXRuYXZpdl9jbWRidWZfZ2V0X3ZhKHN0cnVj dCBldG5hdml2X2NtZGJ1ZiAqYnVmLAo+ICsJCQkgIHN0cnVjdCBldG5hdml2X3ZyYW1fbWFwcGlu ZyAqbWFwcGluZyk7Cj4gIGRtYV9hZGRyX3QgZXRuYXZpdl9jbWRidWZfZ2V0X3BhKHN0cnVjdCBl dG5hdml2X2NtZGJ1ZiAqYnVmKTsKPiAgCj4gICNlbmRpZiAvKiBfX0VUTkFWSVZfQ01EQlVGX0hf XyAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2R1bXAu YyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZHVtcC5jCj4gaW5kZXggMGFhOGNk ZTY4NTkzLi4xM2E2M2Q5ZGNmNTQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2 aXYvZXRuYXZpdl9kdW1wLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2 X2R1bXAuYwo+IEBAIC0xNzMsMTEgKzE3MywxMyBAQCB2b2lkIGV0bmF2aXZfY29yZV9kdW1wKHN0 cnVjdCBldG5hdml2X2dlbV9zdWJtaXQgKnN1Ym1pdCkKPiAgCj4gIAlldG5hdml2X2NvcmVfZHVt cF9tZW0oJml0ZXIsIEVURFVNUF9CVUZfUklORywgZ3B1LT5idWZmZXIudmFkZHIsCj4gIAkJCSAg ICAgIGdwdS0+YnVmZmVyLnNpemUsCj4gLQkJCSAgICAgIGV0bmF2aXZfY21kYnVmX2dldF92YSgm Z3B1LT5idWZmZXIpKTsKPiArCQkJICAgICAgZXRuYXZpdl9jbWRidWZfZ2V0X3ZhKCZncHUtPmJ1 ZmZlciwKPiArCQkJCQkJICAgICZncHUtPmNtZGJ1Zl9tYXBwaW5nKSk7Cj4gIAo+ICAJZXRuYXZp dl9jb3JlX2R1bXBfbWVtKCZpdGVyLCBFVERVTVBfQlVGX0NNRCwKPiAgCQkJICAgICAgc3VibWl0 LT5jbWRidWYudmFkZHIsIHN1Ym1pdC0+Y21kYnVmLnNpemUsCj4gLQkJCSAgICAgIGV0bmF2aXZf Y21kYnVmX2dldF92YSgmc3VibWl0LT5jbWRidWYpKTsKPiArCQkJICAgICAgZXRuYXZpdl9jbWRi dWZfZ2V0X3ZhKCZzdWJtaXQtPmNtZGJ1ZiwKPiArCQkJCQkJICAgICZncHUtPmNtZGJ1Zl9tYXBw aW5nKSk7Cj4gIAo+ICAJLyogUmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIGJvbWFwICovCj4gIAlpZiAo bl9ib21hcF9wYWdlcykgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9l dG5hdml2X2dwdS5jIGIvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9ncHUuYwo+IGlu ZGV4IGU4NGEwZWQ5MDRhYS4uNjJhMzhhNjNlNGViIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9ldG5hdml2L2V0bmF2aXZfZ3B1LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZp di9ldG5hdml2X2dwdS5jCj4gQEAgLTY4Nyw4ICs2ODcsOCBAQCBzdGF0aWMgdm9pZCBldG5hdml2 X2dwdV9od19pbml0KHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1KQo+ICAJcHJlZmV0Y2ggPSBldG5h dml2X2J1ZmZlcl9pbml0KGdwdSk7Cj4gIAo+ICAJZ3B1X3dyaXRlKGdwdSwgVklWU19ISV9JTlRS X0VOQkwsIH4wVSk7Cj4gLQlldG5hdml2X2dwdV9zdGFydF9mZShncHUsIGV0bmF2aXZfY21kYnVm X2dldF92YSgmZ3B1LT5idWZmZXIpLAo+IC0JCQkgICAgIHByZWZldGNoKTsKPiArCWV0bmF2aXZf Z3B1X3N0YXJ0X2ZlKGdwdSwgZXRuYXZpdl9jbWRidWZfZ2V0X3ZhKCZncHUtPmJ1ZmZlciwKPiAr CQkJICAgICAmZ3B1LT5jbWRidWZfbWFwcGluZyksIHByZWZldGNoKTsKPiAgfQo+ICAKPiAgaW50 IGV0bmF2aXZfZ3B1X2luaXQoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpCj4gQEAgLTc2NywxNiAr NzY3LDI0IEBAIGludCBldG5hdml2X2dwdV9pbml0KHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1KQo+ ICAJCWdvdG8gZGVzdHJveV9pb21tdTsKPiAgCX0KPiAgCj4gKwlyZXQgPSBldG5hdml2X2NtZGJ1 Zl9zdWJhbGxvY19tYXAoZ3B1LT5jbWRidWZfc3ViYWxsb2MsIGdwdS0+bW11LAo+ICsJCQkJCSAg JmdwdS0+Y21kYnVmX21hcHBpbmcsCj4gKwkJCQkJICBncHUtPm1lbW9yeV9iYXNlKTsKPiArCWlm IChyZXQpIHsKPiArCQlkZXZfZXJyKGdwdS0+ZGV2LCAiZmFpbGVkIHRvIG1hcCBjbWRidWYgc3Vi YWxsb2NcbiIpOwo+ICsJCWdvdG8gZGVzdHJveV9zdWJhbGxvYzsKPiArCX0KPiArCj4gIAkvKiBD cmVhdGUgYnVmZmVyOiAqLwo+ICAJcmV0ID0gZXRuYXZpdl9jbWRidWZfaW5pdChncHUtPmNtZGJ1 Zl9zdWJhbGxvYywgJmdwdS0+YnVmZmVyLAo+ICAJCQkJICBQQUdFX1NJWkUpOwo+ICAJaWYgKHJl dCkgewo+ICAJCWRldl9lcnIoZ3B1LT5kZXYsICJjb3VsZCBub3QgY3JlYXRlIGNvbW1hbmQgYnVm ZmVyXG4iKTsKPiAtCQlnb3RvIGRlc3Ryb3lfc3ViYWxsb2M7Cj4gKwkJZ290byB1bm1hcF9zdWJh bGxvYzsKPiAgCX0KPiAgCj4gIAlpZiAoZ3B1LT5tbXUtPnZlcnNpb24gPT0gRVROQVZJVl9JT01N VV9WMSAmJgo+IC0JICAgIGV0bmF2aXZfY21kYnVmX2dldF92YSgmZ3B1LT5idWZmZXIpID4gMHg4 MDAwMDAwMCkgewo+ICsJICAgIGV0bmF2aXZfY21kYnVmX2dldF92YSgmZ3B1LT5idWZmZXIsICZn cHUtPmNtZGJ1Zl9tYXBwaW5nKSA+IDB4ODAwMDAwMDApIHsKPiAgCQlyZXQgPSAtRUlOVkFMOwo+ ICAJCWRldl9lcnIoZ3B1LT5kZXYsCj4gIAkJCSJjb21tYW5kIGJ1ZmZlciBvdXRzaWRlIHZhbGlk IG1lbW9yeSB3aW5kb3dcbiIpOwo+IEBAIC04MDUsNiArODEzLDggQEAgaW50IGV0bmF2aXZfZ3B1 X2luaXQoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpCj4gIAo+ICBmcmVlX2J1ZmZlcjoKPiAgCWV0 bmF2aXZfY21kYnVmX2ZyZWUoJmdwdS0+YnVmZmVyKTsKPiArdW5tYXBfc3ViYWxsb2M6Cj4gKwll dG5hdml2X2NtZGJ1Zl9zdWJhbGxvY191bm1hcChncHUtPm1tdSwgJmdwdS0+Y21kYnVmX21hcHBp bmcpOwo+ICBkZXN0cm95X3N1YmFsbG9jOgo+ICAJZXRuYXZpdl9jbWRidWZfc3ViYWxsb2NfZGVz dHJveShncHUtPmNtZGJ1Zl9zdWJhbGxvYyk7Cj4gIGRlc3Ryb3lfaW9tbXU6Cj4gQEAgLTE2ODEs NiArMTY5MSw3IEBAIHN0YXRpYyB2b2lkIGV0bmF2aXZfZ3B1X3VuYmluZChzdHJ1Y3QgZGV2aWNl ICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3RlciwKPiAgCj4gIAlpZiAoZ3B1LT5pbml0aWFsaXpl ZCkgewo+ICAJCWV0bmF2aXZfY21kYnVmX2ZyZWUoJmdwdS0+YnVmZmVyKTsKPiArCQlldG5hdml2 X2NtZGJ1Zl9zdWJhbGxvY191bm1hcChncHUtPm1tdSwgJmdwdS0+Y21kYnVmX21hcHBpbmcpOwo+ ICAJCWV0bmF2aXZfY21kYnVmX3N1YmFsbG9jX2Rlc3Ryb3koZ3B1LT5jbWRidWZfc3ViYWxsb2Mp Owo+ICAJCWV0bmF2aXZfaW9tbXVfZGVzdHJveShncHUtPm1tdSk7Cj4gIAkJZ3B1LT5pbml0aWFs aXplZCA9IGZhbHNlOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5h dml2X2dwdS5oIGIvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9ncHUuaAo+IGluZGV4 IGIwNmM3Yzk4ZDUyMi4uNmE2YWRkMzUwZDJkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9ldG5hdml2L2V0bmF2aXZfZ3B1LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9l dG5hdml2X2dwdS5oCj4gQEAgLTcsNiArNyw3IEBACj4gICNkZWZpbmUgX19FVE5BVklWX0dQVV9I X18KPiAgCj4gICNpbmNsdWRlICJldG5hdml2X2NtZGJ1Zi5oIgo+ICsjaW5jbHVkZSAiZXRuYXZp dl9nZW0uaCIKPiAgI2luY2x1ZGUgImV0bmF2aXZfZHJ2LmgiCj4gIAo+ICBzdHJ1Y3QgZXRuYXZp dl9nZW1fc3VibWl0Owo+IEBAIC04NCw3ICs4NSw2IEBAIHN0cnVjdCBldG5hdml2X2V2ZW50IHsK PiAgfTsKPiAgCj4gIHN0cnVjdCBldG5hdml2X2NtZGJ1Zl9zdWJhbGxvYzsKPiAtc3RydWN0IGV0 bmF2aXZfY21kYnVmOwo+ICBzdHJ1Y3QgcmVndWxhdG9yOwo+ICBzdHJ1Y3QgY2xrOwo+ICAKPiBA QCAtMTAyLDYgKzEwMiw3IEBAIHN0cnVjdCBldG5hdml2X2dwdSB7Cj4gIAlib29sIGluaXRpYWxp emVkOwo+ICAKPiAgCS8qICdyaW5nJy1idWZmZXI6ICovCj4gKwlzdHJ1Y3QgZXRuYXZpdl92cmFt X21hcHBpbmcgY21kYnVmX21hcHBpbmc7Cj4gIAlzdHJ1Y3QgZXRuYXZpdl9jbWRidWYgYnVmZmVy Owo+ICAJaW50IGV4ZWNfc3RhdGU7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v ZXRuYXZpdi9ldG5hdml2X21tdS5jIGIvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9t bXUuYwo+IGluZGV4IDczMTI3NTk5OWE1Ny4uZGQ4MTM3NjcyNGQ3IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfbW11LmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vZXRuYXZpdi9ldG5hdml2X21tdS5jCj4gQEAgLTMzNCw1MiArMzM0LDcyIEBAIHZvaWQgZXRu YXZpdl9pb21tdV9yZXN0b3JlKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1KQo+ICAJCWV0bmF2aXZf aW9tbXV2Ml9yZXN0b3JlKGdwdSk7Cj4gIH0KPiAgCj4gLWludCBldG5hdml2X2lvbW11X2dldF9z dWJhbGxvY192YShzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSwgZG1hX2FkZHJfdCBwYWRkciwKPiAt CQkJCSAgc3RydWN0IGRybV9tbV9ub2RlICp2cmFtX25vZGUsIHNpemVfdCBzaXplLAo+IC0JCQkJ ICB1MzIgKmlvdmEpCj4gK2ludCBldG5hdml2X2lvbW11X2dldF9zdWJhbGxvY192YShzdHJ1Y3Qg ZXRuYXZpdl9pb21tdSAqbW11LAo+ICsJCQkJICBzdHJ1Y3QgZXRuYXZpdl92cmFtX21hcHBpbmcg Km1hcHBpbmcsCj4gKwkJCQkgIHUzMiBtZW1vcnlfYmFzZSwgZG1hX2FkZHJfdCBwYWRkciwKPiAr CQkJCSAgc2l6ZV90IHNpemUpCj4gIHsKPiAtCXN0cnVjdCBldG5hdml2X2lvbW11ICptbXUgPSBn cHUtPm1tdTsKPiArCW11dGV4X2xvY2soJm1tdS0+bG9jayk7Cj4gIAo+ICsJLyoKPiArCSAqIEZv ciBNTVV2MSB3ZSBkb24ndCBhZGQgdGhlIHN1YmFsbG9jIHJlZ2lvbiB0byB0aGUgcGFnZXRhYmxl cywgYXMKPiArCSAqIHRob3NlIEdQVXMgY2FuIG9ubHkgd29yayB3aXRoIGNtZGJ1ZnMgYWNjZXNz ZWQgdGhyb3VnaCB0aGUgbGluZWFyCj4gKwkgKiB3aW5kb3cuIEluc3RlYWQgd2UgbWFudWZhY3R1 cmUgYSBtYXBwaW5nIHRvIG1ha2UgaXQgbG9vayB1bmlmb3JtCj4gKwkgKiB0byB0aGUgdXBwZXIg bGF5ZXJzLgo+ICsJICovCj4gIAlpZiAobW11LT52ZXJzaW9uID09IEVUTkFWSVZfSU9NTVVfVjEp IHsKPiAtCQkqaW92YSA9IHBhZGRyIC0gZ3B1LT5tZW1vcnlfYmFzZTsKPiAtCQlyZXR1cm4gMDsK PiArCQltYXBwaW5nLT5pb3ZhID0gcGFkZHIgLSBtZW1vcnlfYmFzZTsKPiArCQlsaXN0X2FkZF90 YWlsKCZtYXBwaW5nLT5tbXVfbm9kZSwgJm1tdS0+bWFwcGluZ3MpOwo+ICAJfSBlbHNlIHsKWy4u Ll0KPiArCQlsaXN0X2FkZF90YWlsKCZtYXBwaW5nLT5tbXVfbm9kZSwgJm1tdS0+bWFwcGluZ3Mp OwoKVGhpcyBpcyB0aGUgc2FtZSBpbiBib3RoIGJyYW5jaGVzIGFuZCBjb3VsZCBiZSBtb3ZlZCBi ZWxvdy4KCj4gKwkJbW11LT5uZWVkX2ZsdXNoID0gdHJ1ZTsKPiAgCX0KPiArCj4gKwltYXBwaW5n LT51c2UgPSAxOwo+ICsKPiArCW11dGV4X3VubG9jaygmbW11LT5sb2NrKTsKPiArCj4gKwlyZXR1 cm4gMDsKPiAgfQo+ICAKWy4uLl0KClJldmlld2VkLWJ5OiBQaGlsaXBwIFphYmVsIDxwLnphYmVs QHBlbmd1dHJvbml4LmRlPgoKcmVnYXJkcwpQaGlsaXBwCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==