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==