From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 14/16] drm/msm: Convert to use new iterator macros, v2. Date: Wed, 12 Jul 2017 12:45:32 +0200 Message-ID: References: <20170712081344.25495-1-maarten.lankhorst@linux.intel.com> <20170712081344.25495-15-maarten.lankhorst@linux.intel.com> <20170712094823.2akjrev3v7ckxb7b@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170712094823.2akjrev3v7ckxb7b-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Daniel Vetter Cc: Rob Herring , Archit Taneja , linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, intel-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Sushmita Susheelendra , Russell King , Vincent Abriou , freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Markus Elfring List-Id: dri-devel@lists.freedesktop.org T3AgMTItMDctMTcgb20gMTE6NDggc2NocmVlZiBEYW5pZWwgVmV0dGVyOgo+IE9uIFdlZCwgSnVs IDEyLCAyMDE3IGF0IDEwOjEzOjQyQU0gKzAyMDAsIE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3RlOgo+ PiBmb3JfZWFjaF9vYmpfaW5fc3RhdGUgaXMgYWJvdXQgdG8gYmUgcmVtb3ZlZCwgc28gY29udmVy dAo+PiB0byB0aGUgbmV3IGl0ZXJhdG9yIG1hY3Jvcy4KPj4KPj4gSnVzdCBsaWtlIGluIG9tYXAs IHVzZSBjcnRjX3N0YXRlLT5hY3RpdmUgaW5zdGVhZCBvZgo+PiBjcnRjX3N0YXRlLT5lbmFibGUg d2hlbiB3YWl0aW5nIGZvciBjb21wbGV0aW9uLgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBNYWFydGVu IExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+PiBDYzogUm9i IENsYXJrIDxyb2JkY2xhcmtAZ21haWwuY29tPgo+PiBDYzogQXJjaGl0IFRhbmVqYSA8YXJjaGl0 dEBjb2RlYXVyb3JhLm9yZz4KPj4gQ2M6IFZpbmNlbnQgQWJyaW91IDx2aW5jZW50LmFicmlvdUBz dC5jb20+Cj4+IENjOiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXgu aW50ZWwuY29tPgo+PiBDYzogUnVzc2VsbCBLaW5nIDxybWsra2VybmVsQGFybWxpbnV4Lm9yZy51 az4KPj4gQ2M6IFJvYiBIZXJyaW5nIDxyb2JoQGtlcm5lbC5vcmc+Cj4+IENjOiBNYXJrdXMgRWxm cmluZyA8ZWxmcmluZ0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cj4+IENjOiBTdXNobWl0YSBTdXNo ZWVsZW5kcmEgPHNzdXNoZWVsQGNvZGVhdXJvcmEub3JnPgo+PiBDYzogbGludXgtYXJtLW1zbUB2 Z2VyLmtlcm5lbC5vcmcKPj4gQ2M6IGZyZWVkcmVub0BsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4g LS0tCj4+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA0L21kcDRfa21zLmMgfCAgNCArKy0t Cj4+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9hdG9taWMuYyAgICAgICAgfCAxNiArKysrKysr Ky0tLS0tLS0tCj4+ICAyIGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDEwIGRlbGV0 aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNC9t ZHA0X2ttcy5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNC9tZHA0X2ttcy5jCj4+IGlu ZGV4IGJjZDFmNWNhYzcyYy4uZjdmMDg3NDE5ZWQ4IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vbXNtL21kcC9tZHA0L21kcDRfa21zLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21z bS9tZHAvbWRwNC9tZHA0X2ttcy5jCj4+IEBAIC0xMTQsNyArMTE0LDcgQEAgc3RhdGljIHZvaWQg bWRwNF9wcmVwYXJlX2NvbW1pdChzdHJ1Y3QgbXNtX2ttcyAqa21zLCBzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqc3QKPj4gIAltZHA0X2VuYWJsZShtZHA0X2ttcyk7Cj4+ICAKPj4gIAkvKiBzZWUg MTE5ZWNiN2ZkICovCj4+IC0JZm9yX2VhY2hfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0 Y19zdGF0ZSwgaSkKPj4gKwlmb3JfZWFjaF9uZXdfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0Yywg Y3J0Y19zdGF0ZSwgaSkKPj4gIAkJZHJtX2NydGNfdmJsYW5rX2dldChjcnRjKTsKPj4gIH0KPj4g IAo+PiBAQCAtMTI2LDcgKzEyNiw3IEBAIHN0YXRpYyB2b2lkIG1kcDRfY29tcGxldGVfY29tbWl0 KHN0cnVjdCBtc21fa21zICprbXMsIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzCj4+ICAJc3Ry dWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwo+PiAgCj4+ICAJLyogc2VlIDExOWVjYjdm ZCAqLwo+PiAtCWZvcl9lYWNoX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUs IGkpCj4+ICsJZm9yX2VhY2hfbmV3X2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3Rh dGUsIGkpCj4+ICAJCWRybV9jcnRjX3ZibGFua19wdXQoY3J0Yyk7Cj4+ICAKPj4gIAltZHA0X2Rp c2FibGUobWRwNF9rbXMpOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21f YXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9hdG9taWMuYwo+PiBpbmRleCA5NjMz YTY4YjE0ZDcuLjlkM2NjMWY1ZTMxYSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21z bS9tc21fYXRvbWljLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWljLmMK Pj4gQEAgLTg0LDEzICs4NCwxMyBAQCBzdGF0aWMgdm9pZCBtc21fYXRvbWljX3dhaXRfZm9yX2Nv bW1pdF9kb25lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+ICAJCXN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpvbGRfc3RhdGUpCj4+ICB7Cj4+ICAJc3RydWN0IGRybV9jcnRjICpjcnRjOwo+PiAt CXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKPj4gKwlzdHJ1Y3QgZHJtX2NydGNf c3RhdGUgKm5ld19jcnRjX3N0YXRlOwo+PiAgCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYg PSBvbGRfc3RhdGUtPmRldi0+ZGV2X3ByaXZhdGU7Cj4+ICAJc3RydWN0IG1zbV9rbXMgKmttcyA9 IHByaXYtPmttczsKPj4gIAlpbnQgaTsKPj4gIAo+PiAtCWZvcl9lYWNoX2NydGNfaW5fc3RhdGUo b2xkX3N0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7Cj4+IC0JCWlmICghY3J0Yy0+c3RhdGUt PmVuYWJsZSkKPj4gKwlmb3JfZWFjaF9uZXdfY3J0Y19pbl9zdGF0ZShvbGRfc3RhdGUsIGNydGMs IG5ld19jcnRjX3N0YXRlLCBpKSB7Cj4+ICsJCWlmICghbmV3X2NydGNfc3RhdGUtPmFjdGl2ZSkK Pj4gIAkJCWNvbnRpbnVlOwo+PiAgCj4+ICAJCWttcy0+ZnVuY3MtPndhaXRfZm9yX2NydGNfY29t bWl0X2RvbmUoa21zLCBjcnRjKTsKPj4gQEAgLTE5NSw3ICsxOTUsNyBAQCBpbnQgbXNtX2F0b21p Y19jb21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4gIAlzdHJ1Y3QgZHJtX2NydGMgKmNy dGM7Cj4+ICAJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwo+PiAgCXN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lOwo+PiAtCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRl Owo+PiArCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm9sZF9wbGFuZV9zdGF0ZSwgKm5ld19wbGFu ZV9zdGF0ZTsKPj4gIAlpbnQgaSwgcmV0Owo+PiAgCj4+ICAJcmV0ID0gZHJtX2F0b21pY19oZWxw ZXJfcHJlcGFyZV9wbGFuZXMoZGV2LCBzdGF0ZSk7Cj4+IEBAIC0yMTEsMTUgKzIxMSwxNSBAQCBp bnQgbXNtX2F0b21pY19jb21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4gIAkvKgo+PiAg CSAqIEZpZ3VyZSBvdXQgd2hhdCBjcnRjcyB3ZSBoYXZlOgo+PiAgCSAqLwo+PiAtCWZvcl9lYWNo X2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkpCj4+ICsJZm9yX2VhY2hf bmV3X2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkpCj4+ICAJCWMtPmNy dGNfbWFzayB8PSBkcm1fY3J0Y19tYXNrKGNydGMpOwo+PiAgCj4+ICAJLyoKPj4gIAkgKiBGaWd1 cmUgb3V0IHdoYXQgZmVuY2UgdG8gd2FpdCBmb3I6Cj4+ICAJICovCj4+IC0JZm9yX2VhY2hfcGxh bmVfaW5fc3RhdGUoc3RhdGUsIHBsYW5lLCBwbGFuZV9zdGF0ZSwgaSkgewo+PiAtCQlpZiAoKHBs YW5lLT5zdGF0ZS0+ZmIgIT0gcGxhbmVfc3RhdGUtPmZiKSAmJiBwbGFuZV9zdGF0ZS0+ZmIpIHsK Pj4gLQkJCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqID0gbXNtX2ZyYW1lYnVmZmVyX2JvKHBs YW5lX3N0YXRlLT5mYiwgMCk7Cj4+ICsJZm9yX2VhY2hfb2xkbmV3X3BsYW5lX2luX3N0YXRlKHN0 YXRlLCBwbGFuZSwgb2xkX3BsYW5lX3N0YXRlLCBuZXdfcGxhbmVfc3RhdGUsIGkpIHsKPj4gKwkJ aWYgKChuZXdfcGxhbmVfc3RhdGUtPmZiICE9IG9sZF9wbGFuZV9zdGF0ZS0+ZmIpICYmIG5ld19w bGFuZV9zdGF0ZS0+ZmIpIHsKPj4gKwkJCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqID0gbXNt X2ZyYW1lYnVmZmVyX2JvKG5ld19wbGFuZV9zdGF0ZS0+ZmIsIDApOwo+PiAgCQkJc3RydWN0IG1z bV9nZW1fb2JqZWN0ICptc21fb2JqID0gdG9fbXNtX2JvKG9iaik7Cj4+ICAJCQlzdHJ1Y3QgZG1h X2ZlbmNlICpmZW5jZSA9IHJlc2VydmF0aW9uX29iamVjdF9nZXRfZXhjbF9yY3UobXNtX29iai0+ cmVzdik7Cj4gUHJldHR5IHN1cmUgdGhpcyBmYWlscyB0byBjb21waWxlLCB5b3UndmUgZm9yZ290 dGVuIHRvIGRvIG9uZSBtb3JlCj4gcy9wbGFuZV9zdGF0ZS9uZXdfcGxhbmVfc3RhdGUvLgo+Cj4g V2l0aCB0aGF0IGZpeGVkOgo+Cj4gUmV2aWV3ZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52 ZXR0ZXJAZmZ3bGwuY2g+CgotLS0+OC0tLQpmb3JfZWFjaF9vYmpfaW5fc3RhdGUgaXMgYWJvdXQg dG8gYmUgcmVtb3ZlZCwgc28gY29udmVydAp0byB0aGUgbmV3IGl0ZXJhdG9yIG1hY3Jvcy4KCkp1 c3QgbGlrZSBpbiBvbWFwLCB1c2UgY3J0Y19zdGF0ZS0+YWN0aXZlIGluc3RlYWQgb2YKY3J0Y19z dGF0ZS0+ZW5hYmxlIHdoZW4gd2FpdGluZyBmb3IgY29tcGxldGlvbi4KCkNoYW5nZXMgc2luY2Ug djE6Ci0gRml4IGNvbXBpbGF0aW9uLgoKU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3Qg PG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KQ2M6IFJvYiBDbGFyayA8cm9iZGNs YXJrQGdtYWlsLmNvbT4KQ2M6IEFyY2hpdCBUYW5lamEgPGFyY2hpdHRAY29kZWF1cm9yYS5vcmc+ CkNjOiBWaW5jZW50IEFicmlvdSA8dmluY2VudC5hYnJpb3VAc3QuY29tPgpDYzogTWFhcnRlbiBM YW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KQ2M6IFJ1c3NlbGwg S2luZyA8cm1rK2tlcm5lbEBhcm1saW51eC5vcmcudWs+CkNjOiBSb2IgSGVycmluZyA8cm9iaEBr ZXJuZWwub3JnPgpDYzogTWFya3VzIEVsZnJpbmcgPGVsZnJpbmdAdXNlcnMuc291cmNlZm9yZ2Uu bmV0PgpDYzogU3VzaG1pdGEgU3VzaGVlbGVuZHJhIDxzc3VzaGVlbEBjb2RlYXVyb3JhLm9yZz4K Q2M6IGxpbnV4LWFybS1tc21Admdlci5rZXJuZWwub3JnCkNjOiBmcmVlZHJlbm9AbGlzdHMuZnJl ZWRlc2t0b3Aub3JnClJldmlld2VkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZm d2xsLmNoPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDQvbWRwNF9rbXMuYyB8ICA0 ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0b21pYy5jICAgICAgICB8IDE4ICsrKysr KysrKy0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAxMSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA0L21kcDRf a21zLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA0L21kcDRfa21zLmMKaW5kZXggYmNk MWY1Y2FjNzJjLi5mN2YwODc0MTllZDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20v bWRwL21kcDQvbWRwNF9rbXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA0L21k cDRfa21zLmMKQEAgLTExNCw3ICsxMTQsNyBAQCBzdGF0aWMgdm9pZCBtZHA0X3ByZXBhcmVfY29t bWl0KHN0cnVjdCBtc21fa21zICprbXMsIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdAogCW1k cDRfZW5hYmxlKG1kcDRfa21zKTsKIAogCS8qIHNlZSAxMTllY2I3ZmQgKi8KLQlmb3JfZWFjaF9j cnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKQorCWZvcl9lYWNoX25ld19j cnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKQogCQlkcm1fY3J0Y192Ymxh bmtfZ2V0KGNydGMpOwogfQogCkBAIC0xMjYsNyArMTI2LDcgQEAgc3RhdGljIHZvaWQgbWRwNF9j b21wbGV0ZV9jb21taXQoc3RydWN0IG1zbV9rbXMgKmttcywgc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKnMKIAlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7CiAKIAkvKiBzZWUgMTE5 ZWNiN2ZkICovCi0JZm9yX2VhY2hfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0 ZSwgaSkKKwlmb3JfZWFjaF9uZXdfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0 ZSwgaSkKIAkJZHJtX2NydGNfdmJsYW5rX3B1dChjcnRjKTsKIAogCW1kcDRfZGlzYWJsZShtZHA0 X2ttcyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9hdG9taWMuYyBiL2Ry aXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0b21pYy5jCmluZGV4IDk2MzNhNjhiMTRkNy4uMjcyODc5 NGE3MTQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9hdG9taWMuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9hdG9taWMuYwpAQCAtODQsMTMgKzg0LDEzIEBAIHN0 YXRpYyB2b2lkIG1zbV9hdG9taWNfd2FpdF9mb3JfY29tbWl0X2RvbmUoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKIAkJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKIHsKIAlzdHJ1 Y3QgZHJtX2NydGMgKmNydGM7Ci0Jc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwor CXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGU7CiAJc3RydWN0IG1zbV9kcm1f cHJpdmF0ZSAqcHJpdiA9IG9sZF9zdGF0ZS0+ZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgbXNt X2ttcyAqa21zID0gcHJpdi0+a21zOwogCWludCBpOwogCi0JZm9yX2VhY2hfY3J0Y19pbl9zdGF0 ZShvbGRfc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkpIHsKLQkJaWYgKCFjcnRjLT5zdGF0ZS0+ ZW5hYmxlKQorCWZvcl9lYWNoX25ld19jcnRjX2luX3N0YXRlKG9sZF9zdGF0ZSwgY3J0YywgbmV3 X2NydGNfc3RhdGUsIGkpIHsKKwkJaWYgKCFuZXdfY3J0Y19zdGF0ZS0+YWN0aXZlKQogCQkJY29u dGludWU7CiAKIAkJa21zLT5mdW5jcy0+d2FpdF9mb3JfY3J0Y19jb21taXRfZG9uZShrbXMsIGNy dGMpOwpAQCAtMTk1LDcgKzE5NSw3IEBAIGludCBtc21fYXRvbWljX2NvbW1pdChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAogCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKIAlzdHJ1Y3QgZHJtX2NydGNf c3RhdGUgKmNydGNfc3RhdGU7CiAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Ci0Jc3RydWN0IGRy bV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGU7CisJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xk X3BsYW5lX3N0YXRlLCAqbmV3X3BsYW5lX3N0YXRlOwogCWludCBpLCByZXQ7CiAKIAlyZXQgPSBk cm1fYXRvbWljX2hlbHBlcl9wcmVwYXJlX3BsYW5lcyhkZXYsIHN0YXRlKTsKQEAgLTIxMSwxOSAr MjExLDE5IEBAIGludCBtc21fYXRvbWljX2NvbW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAog CS8qCiAJICogRmlndXJlIG91dCB3aGF0IGNydGNzIHdlIGhhdmU6CiAJICovCi0JZm9yX2VhY2hf Y3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkKKwlmb3JfZWFjaF9uZXdf Y3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkKIAkJYy0+Y3J0Y19tYXNr IHw9IGRybV9jcnRjX21hc2soY3J0Yyk7CiAKIAkvKgogCSAqIEZpZ3VyZSBvdXQgd2hhdCBmZW5j ZSB0byB3YWl0IGZvcjoKIAkgKi8KLQlmb3JfZWFjaF9wbGFuZV9pbl9zdGF0ZShzdGF0ZSwgcGxh bmUsIHBsYW5lX3N0YXRlLCBpKSB7Ci0JCWlmICgocGxhbmUtPnN0YXRlLT5mYiAhPSBwbGFuZV9z dGF0ZS0+ZmIpICYmIHBsYW5lX3N0YXRlLT5mYikgewotCQkJc3RydWN0IGRybV9nZW1fb2JqZWN0 ICpvYmogPSBtc21fZnJhbWVidWZmZXJfYm8ocGxhbmVfc3RhdGUtPmZiLCAwKTsKKwlmb3JfZWFj aF9vbGRuZXdfcGxhbmVfaW5fc3RhdGUoc3RhdGUsIHBsYW5lLCBvbGRfcGxhbmVfc3RhdGUsIG5l d19wbGFuZV9zdGF0ZSwgaSkgeworCQlpZiAoKG5ld19wbGFuZV9zdGF0ZS0+ZmIgIT0gb2xkX3Bs YW5lX3N0YXRlLT5mYikgJiYgbmV3X3BsYW5lX3N0YXRlLT5mYikgeworCQkJc3RydWN0IGRybV9n ZW1fb2JqZWN0ICpvYmogPSBtc21fZnJhbWVidWZmZXJfYm8obmV3X3BsYW5lX3N0YXRlLT5mYiwg MCk7CiAJCQlzdHJ1Y3QgbXNtX2dlbV9vYmplY3QgKm1zbV9vYmogPSB0b19tc21fYm8ob2JqKTsK IAkJCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9leGNs X3JjdShtc21fb2JqLT5yZXN2KTsKIAotCQkJZHJtX2F0b21pY19zZXRfZmVuY2VfZm9yX3BsYW5l KHBsYW5lX3N0YXRlLCBmZW5jZSk7CisJCQlkcm1fYXRvbWljX3NldF9mZW5jZV9mb3JfcGxhbmUo bmV3X3BsYW5lX3N0YXRlLCBmZW5jZSk7CiAJCX0KIAl9CiAKLS0gCjIuMTEuMAoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkZyZWVkcmVubyBtYWlsaW5n IGxpc3QKRnJlZWRyZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVubwo=