From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [Intel-gfx] [PATCH 01/19] drm/atomic: Add new iterators over all state Date: Tue, 1 Nov 2016 15:09:06 +0200 Message-ID: <20161101130906.GW4617@intel.com> References: <1476707838-25253-1-git-send-email-maarten.lankhorst@linux.intel.com> <1476707838-25253-2-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1476707838-25253-2-git-send-email-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBPY3QgMTcsIDIwMTYgYXQgMDI6Mzc6MDBQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gQWRkIGZvcl9lYWNoXyhvbGQpKG5ldylfKHBsYW5lLGNvbm5lY3RvcixjcnRj KV9pbl9zdGF0ZSBpdGVyYXRvcnMgdG8KPiByZXBsYWNlIHRoZSBvbGQgZm9yX2VhY2hfeHh4X2lu X3N0YXRlIG9uZXMuIFRoaXMgaXMgdXNlZnVsIGZvciA+MSBmbGlwCj4gZGVwdGggYW5kIGdldHRp bmcgcmlkIG9mIGFsbCB4eHgtPnN0YXRlIGRlcmVmZXJlbmNlcy4KPiAKPiBTaWduZWQtb2ZmLWJ5 OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+ IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jICAgICAgICAgfCAgNiArKysKPiAg ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgIHwgNTIgKysrKysrKysrKysrKysr KysrKysrLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMTEgKyst LS0KPiAgaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oICAgICAgICAgICAgIHwgODEgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tCj4gIGluY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVs cGVyLmggICAgICB8ICAzICsrCj4gIDUgZmlsZXMgY2hhbmdlZCwgMTQyIGluc2VydGlvbnMoKyks IDExIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0 b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+IGluZGV4IDVkZDcwNTQwMjE5 Yy4uMTIwNzc1ZmNmYjcwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWlj LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCj4gQEAgLTI3OCw2ICsyNzgs OCBAQCBkcm1fYXRvbWljX2dldF9jcnRjX3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSwKPiAgCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKPiAgCj4gIAlzdGF0ZS0+Y3J0Y3Nb aW5kZXhdLnN0YXRlID0gY3J0Y19zdGF0ZTsKPiArCXN0YXRlLT5jcnRjc1tpbmRleF0ub2xkX3N0 YXRlID0gY3J0Yy0+c3RhdGU7Cj4gKwlzdGF0ZS0+Y3J0Y3NbaW5kZXhdLm5ld19zdGF0ZSA9IGNy dGNfc3RhdGU7Cj4gIAlzdGF0ZS0+Y3J0Y3NbaW5kZXhdLnB0ciA9IGNydGM7Cj4gIAljcnRjX3N0 YXRlLT5zdGF0ZSA9IHN0YXRlOwo+ICAKPiBAQCAtNjQwLDYgKzY0Miw4IEBAIGRybV9hdG9taWNf Z2V0X3BsYW5lX3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPiAgCj4gIAlz dGF0ZS0+cGxhbmVzW2luZGV4XS5zdGF0ZSA9IHBsYW5lX3N0YXRlOwo+ICAJc3RhdGUtPnBsYW5l c1tpbmRleF0ucHRyID0gcGxhbmU7Cj4gKwlzdGF0ZS0+cGxhbmVzW2luZGV4XS5vbGRfc3RhdGUg PSBwbGFuZS0+c3RhdGU7Cj4gKwlzdGF0ZS0+cGxhbmVzW2luZGV4XS5uZXdfc3RhdGUgPSBwbGFu ZV9zdGF0ZTsKPiAgCXBsYW5lX3N0YXRlLT5zdGF0ZSA9IHN0YXRlOwo+ICAKPiAgCURSTV9ERUJV R19BVE9NSUMoIkFkZGVkIFtQTEFORTolZDolc10gJXAgc3RhdGUgdG8gJXBcbiIsCj4gQEAgLTkz MSw2ICs5MzUsOCBAQCBkcm1fYXRvbWljX2dldF9jb25uZWN0b3Jfc3RhdGUoc3RydWN0IGRybV9h dG9taWNfc3RhdGUgKnN0YXRlLAo+ICAKPiAgCWRybV9jb25uZWN0b3JfcmVmZXJlbmNlKGNvbm5l Y3Rvcik7Cj4gIAlzdGF0ZS0+Y29ubmVjdG9yc1tpbmRleF0uc3RhdGUgPSBjb25uZWN0b3Jfc3Rh dGU7Cj4gKwlzdGF0ZS0+Y29ubmVjdG9yc1tpbmRleF0ub2xkX3N0YXRlID0gY29ubmVjdG9yLT5z dGF0ZTsKPiArCXN0YXRlLT5jb25uZWN0b3JzW2luZGV4XS5uZXdfc3RhdGUgPSBjb25uZWN0b3Jf c3RhdGU7Cj4gIAlzdGF0ZS0+Y29ubmVjdG9yc1tpbmRleF0ucHRyID0gY29ubmVjdG9yOwo+ICAJ Y29ubmVjdG9yX3N0YXRlLT5zdGF0ZSA9IHN0YXRlOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Y19oZWxwZXIuYwo+IGluZGV4IDA3YjQzMmY0M2I5OC4uZmNiNmU1YjU1MjE3IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPiBAQCAtMjQ5NSw3ICsyNDk1LDcgQEAgRVhQT1JU X1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX2FsbCk7Cj4gICAqCj4gICAqIFNlZSBh bHNvOgo+ICAgKiBkcm1fYXRvbWljX2hlbHBlcl9kdXBsaWNhdGVfc3RhdGUoKSwgZHJtX2F0b21p Y19oZWxwZXJfZGlzYWJsZV9hbGwoKSwKPiAtICogZHJtX2F0b21pY19oZWxwZXJfcmVzdW1lKCkK PiArICogZHJtX2F0b21pY19oZWxwZXJfcmVzdW1lKCksIGRybV9hdG9taWNfaGVscGVyX2NvbW1p dF9kdXBsaWNhdGVkX3N0YXRlKCkKPiAgICovCj4gIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpk cm1fYXRvbWljX2hlbHBlcl9zdXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIHsKPiBA QCAtMjUzNiw2ICsyNTM2LDUyIEBAIHVubG9jazoKPiAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWlj X2hlbHBlcl9zdXNwZW5kKTsKPiAgCj4gIC8qKgo+ICsgKiBkcm1fYXRvbWljX2hlbHBlcl9jb21t aXRfZHVwbGljYXRlZF9zdGF0ZSAtIGNvbW1pdCBkdXBsaWNhdGVkIHN0YXRlCj4gKyAqIEBzdGF0 ZTogZHVwbGljYXRlZCBhdG9taWMgc3RhdGUgdG8gY29tbWl0Cj4gKyAqIEBjdHg6IHBvaW50ZXIg dG8gYWNxdWlyZV9jdHggdG8gdXNlIGZvciBjb21taXQuCj4gKyAqIEBub25ibG9jazogY29tbWl0 IHRoZSBzdGF0ZSBub24tYmxvY2tpbmcuCj4gKyAqCj4gKyAqIFRoZSBzdGF0ZSByZXR1cm5lZCBi eSBkcm1fYXRvbWljX2hlbHBlcl9kdXBsaWNhdGVfc3RhdGUoKSBhbmQKPiArICogZHJtX2F0b21p Y19oZWxwZXJfc3VzcGVuZCgpIGlzIHBhcnRpYWxseSBpbnZhbGlkLCBhbmQgbmVlZHMgdG8KPiAr ICogYmUgZml4ZWQgdXAgYmVmb3JlIGNvbW1pdC4KClNvIHRoZSBvbGRfc3RhdGUgcG9pbnRlcnMg YXJlIHBvdGVudGlhbGx5IGludmFsaWQgYmVjYXVzZSB3aGF0ZXZlci0+c3RhdGUKbWF5IGhhdmUg Y2hhbmdlZCBzaW5jZSB3ZSBkdXBsaWNhdGVkIHRoZSBzdGF0ZT8KCj4gKyAqCj4gKyAqIFJldHVy bnM6Cj4gKyAqIDAgb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVy ZS4KPiArICoKPiArICogU2VlIGFsc286Cj4gKyAqIGRybV9hdG9taWNfaGVscGVyX3N1c3BlbmQo KQo+ICsgKi8KPiAraW50IGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9kdXBsaWNhdGVkX3N0YXRl KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPiArCQkJCQkgICAgICBzdHJ1Y3QgZHJt X21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCwKPiArCQkJCQkgICAgICBib29sIG5vbmJsb2NrKQo+ ICt7Cj4gKwlpbnQgaTsKPiArCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwo+ICsJc3RydWN0IGRy bV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yOwo+ICsJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGU7Cj4gKwlz dHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4gKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3Rh dGU7Cj4gKwo+ICsJc3RhdGUtPmFjcXVpcmVfY3R4ID0gY3R4Owo+ICsKPiArCWZvcl9lYWNoX25l d19wbGFuZV9pbl9zdGF0ZShzdGF0ZSwgcGxhbmUsIHBsYW5lX3N0YXRlLCBpKQo+ICsJCXN0YXRl LT5wbGFuZXNbaV0ub2xkX3N0YXRlID0gcGxhbmUtPnN0YXRlOwo+ICsKPiArCWZvcl9lYWNoX25l d19jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKQo+ICsJCXN0YXRlLT5j cnRjc1tpXS5vbGRfc3RhdGUgPSBjcnRjLT5zdGF0ZTsKPiArCj4gKwlmb3JfZWFjaF9uZXdfY29u bmVjdG9yX2luX3N0YXRlKHN0YXRlLCBjb25uZWN0b3IsIGNvbm5fc3RhdGUsIGkpCj4gKwkJc3Rh dGUtPmNvbm5lY3RvcnNbaV0ub2xkX3N0YXRlID0gY29ubmVjdG9yLT5zdGF0ZTsKPiArCj4gKwlp ZiAobm9uYmxvY2spCj4gKwkJcmV0dXJuIGRybV9hdG9taWNfbm9uYmxvY2tpbmdfY29tbWl0KHN0 YXRlKTsKPiArCWVsc2UKPiArCQlyZXR1cm4gZHJtX2F0b21pY19jb21taXQoc3RhdGUpOwo+ICt9 Cj4gK0VYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X2R1cGxpY2F0ZWRfc3Rh dGUpOwo+ICsKPiArLyoqCj4gICAqIGRybV9hdG9taWNfaGVscGVyX3Jlc3VtZSAtIHN1YnN5c3Rl bS1sZXZlbCByZXN1bWUgaGVscGVyCj4gICAqIEBkZXY6IERSTSBkZXZpY2UKPiAgICogQHN0YXRl OiBhdG9taWMgc3RhdGUgdG8gcmVzdW1lIHRvCj4gQEAgLTI1NTgsOSArMjYwNCw5IEBAIGludCBk cm1fYXRvbWljX2hlbHBlcl9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCWludCBl cnI7Cj4gIAo+ICAJZHJtX21vZGVfY29uZmlnX3Jlc2V0KGRldik7Cj4gKwo+ICAJZHJtX21vZGVz ZXRfbG9ja19hbGwoZGV2KTsKPiAtCXN0YXRlLT5hY3F1aXJlX2N0eCA9IGNvbmZpZy0+YWNxdWly ZV9jdHg7Cj4gLQllcnIgPSBkcm1fYXRvbWljX2NvbW1pdChzdGF0ZSk7Cj4gKwllcnIgPSBkcm1f YXRvbWljX2hlbHBlcl9jb21taXRfZHVwbGljYXRlZF9zdGF0ZShzdGF0ZSwgY29uZmlnLT5hY3F1 aXJlX2N0eCwgZmFsc2UpOwo+ICAJZHJtX21vZGVzZXRfdW5sb2NrX2FsbChkZXYpOwo+ICAKPiAg CXJldHVybiBlcnI7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IGEx MmUwOTNjNTRjZi4uM2JkM2Y2YTkzYzEyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+IEBAIC0zNDk3LDcgKzM0OTcsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF91cGRhdGVf cHJpbWFyeV9wbGFuZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCj4gIHN0YXRpYyBpbnQK PiAgX19pbnRlbF9kaXNwbGF5X3Jlc3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+IC0JCSAg ICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gKwkJICAgICAgIHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPiArCQkgICAgICAgc3RydWN0IGRybV9tb2Rlc2V0X2Fj cXVpcmVfY3R4ICpjdHgpCj4gIHsKPiAgCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZTsKPiAgCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiBAQCAtMzUyMSw3ICszNTIyLDcgQEAgX19p bnRlbF9kaXNwbGF5X3Jlc3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJLyogaWdub3Jl IGFueSByZXNldCB2YWx1ZXMvQklPUyBsZWZ0b3ZlcnMgaW4gdGhlIFdNIHJlZ2lzdGVycyAqLwo+ ICAJdG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRlKS0+c2tpcF9pbnRlcm1lZGlhdGVfd20gPSB0 cnVlOwo+ICAKPiAtCXJldCA9IGRybV9hdG9taWNfY29tbWl0KHN0YXRlKTsKPiArCXJldCA9IGRy bV9hdG9taWNfaGVscGVyX2NvbW1pdF9kdXBsaWNhdGVkX3N0YXRlKHN0YXRlLCBjdHgsIGZhbHNl KTsKPiAgCj4gIAlXQVJOX09OKHJldCA9PSAtRURFQURMSyk7Cj4gIAlyZXR1cm4gcmV0Owo+IEBA IC0zNjE3LDcgKzM2MTgsNyBAQCB2b2lkIGludGVsX2ZpbmlzaF9yZXNldChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAkJCSAqLwo+ICAJCQlpbnRlbF91cGRhdGVfcHJpbWFy eV9wbGFuZXMoZGV2KTsKPiAgCQl9IGVsc2Ugewo+IC0JCQlyZXQgPSBfX2ludGVsX2Rpc3BsYXlf cmVzdW1lKGRldiwgc3RhdGUpOwo+ICsJCQlyZXQgPSBfX2ludGVsX2Rpc3BsYXlfcmVzdW1lKGRl diwgc3RhdGUsIGN0eCk7Cj4gIAkJCWlmIChyZXQpCj4gIAkJCQlEUk1fRVJST1IoIlJlc3Rvcmlu ZyBvbGQgc3RhdGUgZmFpbGVkIHdpdGggJWlcbiIsIHJldCk7Cj4gIAkJfQo+IEBAIC0zNjM2LDcg KzM2MzcsNyBAQCB2b2lkIGludGVsX2ZpbmlzaF9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCj4gIAkJCWRldl9wcml2LT5kaXNwbGF5LmhwZF9pcnFfc2V0dXAoZGV2X3By aXYpOwo+ICAJCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKPiAgCj4gLQkJ cmV0ID0gX19pbnRlbF9kaXNwbGF5X3Jlc3VtZShkZXYsIHN0YXRlKTsKPiArCQlyZXQgPSBfX2lu dGVsX2Rpc3BsYXlfcmVzdW1lKGRldiwgc3RhdGUsIGN0eCk7Cj4gIAkJaWYgKHJldCkKPiAgCQkJ RFJNX0VSUk9SKCJSZXN0b3Jpbmcgb2xkIHN0YXRlIGZhaWxlZCB3aXRoICVpXG4iLCByZXQpOwo+ ICAKPiBAQCAtMTY5MzcsNyArMTY5MzgsNyBAQCB2b2lkIGludGVsX2Rpc3BsYXlfcmVzdW1lKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAl9Cj4gIAo+ICAJaWYgKCFyZXQpCj4gLQkJcmV0ID0g X19pbnRlbF9kaXNwbGF5X3Jlc3VtZShkZXYsIHN0YXRlKTsKPiArCQlyZXQgPSBfX2ludGVsX2Rp c3BsYXlfcmVzdW1lKGRldiwgc3RhdGUsICZjdHgpOwo+ICAKPiAgCWRybV9tb2Rlc2V0X2Ryb3Bf bG9ja3MoJmN0eCk7Cj4gIAlkcm1fbW9kZXNldF9hY3F1aXJlX2ZpbmkoJmN0eCk7Cj4gZGlmZiAt LWdpdCBhL2luY2x1ZGUvZHJtL2RybV9hdG9taWMuaCBiL2luY2x1ZGUvZHJtL2RybV9hdG9taWMu aAo+IGluZGV4IGZjOGFmNTNiMThhYS4uMDlmYjZiMzE2Y2E5IDEwMDY0NAo+IC0tLSBhL2luY2x1 ZGUvZHJtL2RybV9hdG9taWMuaAo+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9hdG9taWMuaAo+IEBA IC0xMzcsMTggKzEzNywxOCBAQCBzdHJ1Y3QgZHJtX2NydGNfY29tbWl0IHsKPiAgCj4gIHN0cnVj dCBfX2RybV9wbGFuZXNfc3RhdGUgewo+ICAJc3RydWN0IGRybV9wbGFuZSAqcHRyOwo+IC0Jc3Ry dWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGU7Cj4gKwlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpz dGF0ZSwgKm9sZF9zdGF0ZSwgKm5ld19zdGF0ZTsKPiAgfTsKPiAgCj4gIHN0cnVjdCBfX2RybV9j cnRjc19zdGF0ZSB7Cj4gIAlzdHJ1Y3QgZHJtX2NydGMgKnB0cjsKPiAtCXN0cnVjdCBkcm1fY3J0 Y19zdGF0ZSAqc3RhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlLCAqb2xkX3N0 YXRlLCAqbmV3X3N0YXRlOwo+ICAJc3RydWN0IGRybV9jcnRjX2NvbW1pdCAqY29tbWl0Owo+ICB9 Owo+ICAKPiAgc3RydWN0IF9fZHJtX2Nvbm5uZWN0b3JzX3N0YXRlIHsKPiAgCXN0cnVjdCBkcm1f Y29ubmVjdG9yICpwdHI7Cj4gLQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqc3RhdGU7Cj4g KwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqc3RhdGUsICpvbGRfc3RhdGUsICpuZXdfc3Rh dGU7Cj4gIH07Cj4gIAo+ICAvKioKPiBAQCAtMzcyLDYgKzM3MiwzMSBAQCBpbnQgX19tdXN0X2No ZWNrIGRybV9hdG9taWNfbm9uYmxvY2tpbmdfY29tbWl0KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSk7Cj4gIAkgICAgIChfX2kpKyspCQkJCQkJCVwKPiAgCQlmb3JfZWFjaF9pZiAoY29u bmVjdG9yKQo+ICAKPiArI2RlZmluZSBmb3JfZWFjaF9vbGRuZXdfY29ubmVjdG9yX2luX3N0YXRl KF9fc3RhdGUsIGNvbm5lY3Rvciwgb2xkX2Nvbm5lY3Rvcl9zdGF0ZSwgbmV3X2Nvbm5lY3Rvcl9z dGF0ZSwgX19pKSBcCj4gKwlmb3IgKChfX2kpID0gMDsJCQkJCQkJCVwKPiArCSAgICAgKF9faSkg PCAoX19zdGF0ZSktPm51bV9jb25uZWN0b3IgJiYJCQkJXAo+ICsJICAgICAoKGNvbm5lY3Rvcikg PSAoX19zdGF0ZSktPmNvbm5lY3RvcnNbX19pXS5wdHIsCQkJXAo+ICsJICAgICAob2xkX2Nvbm5l Y3Rvcl9zdGF0ZSkgPSAoX19zdGF0ZSktPmNvbm5lY3RvcnNbX19pXS5vbGRfc3RhdGUsCVwKPiAr CSAgICAgKG5ld19jb25uZWN0b3Jfc3RhdGUpID0gKF9fc3RhdGUpLT5jb25uZWN0b3JzW19faV0u bmV3X3N0YXRlLCAxKTsgCVwKPiArCSAgICAgKF9faSkrKykJCQkJCQkJXAo+ICsJCWZvcl9lYWNo X2lmIChjb25uZWN0b3IpCj4gKwo+ICsjZGVmaW5lIGZvcl9lYWNoX29sZF9jb25uZWN0b3JfaW5f c3RhdGUoX19zdGF0ZSwgY29ubmVjdG9yLCBvbGRfY29ubmVjdG9yX3N0YXRlLCBfX2kpIFwKPiAr CWZvciAoKF9faSkgPSAwOwkJCQkJCQkJXAo+ICsJICAgICAoX19pKSA8IChfX3N0YXRlKS0+bnVt X2Nvbm5lY3RvciAmJgkJCQlcCj4gKwkgICAgICgoY29ubmVjdG9yKSA9IChfX3N0YXRlKS0+Y29u bmVjdG9yc1tfX2ldLnB0ciwJCQlcCj4gKwkgICAgIChvbGRfY29ubmVjdG9yX3N0YXRlKSA9IChf X3N0YXRlKS0+Y29ubmVjdG9yc1tfX2ldLm9sZF9zdGF0ZSwgMSk7IAlcCj4gKwkgICAgIChfX2kp KyspCQkJCQkJCVwKPiArCQlmb3JfZWFjaF9pZiAoY29ubmVjdG9yKQo+ICsKPiArI2RlZmluZSBm b3JfZWFjaF9uZXdfY29ubmVjdG9yX2luX3N0YXRlKF9fc3RhdGUsIGNvbm5lY3RvciwgbmV3X2Nv bm5lY3Rvcl9zdGF0ZSwgX19pKSBcCj4gKwlmb3IgKChfX2kpID0gMDsJCQkJCQkJCVwKPiArCSAg ICAgKF9faSkgPCAoX19zdGF0ZSktPm51bV9jb25uZWN0b3IgJiYJCQkJXAo+ICsJICAgICAoKGNv bm5lY3RvcikgPSAoX19zdGF0ZSktPmNvbm5lY3RvcnNbX19pXS5wdHIsCQkJXAo+ICsJICAgICAo bmV3X2Nvbm5lY3Rvcl9zdGF0ZSkgPSAoX19zdGF0ZSktPmNvbm5lY3RvcnNbX19pXS5uZXdfc3Rh dGUsIDEpOyAJXAo+ICsJICAgICAoX19pKSsrKQkJCQkJCQlcCj4gKwkJZm9yX2VhY2hfaWYgKGNv bm5lY3RvcikKPiArCj4gICNkZWZpbmUgZm9yX2VhY2hfY3J0Y19pbl9zdGF0ZShfX3N0YXRlLCBj cnRjLCBjcnRjX3N0YXRlLCBfX2kpCVwKPiAgCWZvciAoKF9faSkgPSAwOwkJCQkJCVwKPiAgCSAg ICAgKF9faSkgPCAoX19zdGF0ZSktPmRldi0+bW9kZV9jb25maWcubnVtX2NydGMgJiYJXAo+IEBA IC0zODAsNiArNDA1LDMxIEBAIGludCBfX211c3RfY2hlY2sgZHJtX2F0b21pY19ub25ibG9ja2lu Z19jb21taXQoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKPiAgCSAgICAgKF9faSkr KykJCQkJCQlcCj4gIAkJZm9yX2VhY2hfaWYgKGNydGNfc3RhdGUpCj4gIAo+ICsjZGVmaW5lIGZv cl9lYWNoX29sZG5ld19jcnRjX2luX3N0YXRlKF9fc3RhdGUsIGNydGMsIG9sZF9jcnRjX3N0YXRl LCBuZXdfY3J0Y19zdGF0ZSwgX19pKSBcCj4gKwlmb3IgKChfX2kpID0gMDsJCQkJCQkJXAo+ICsJ ICAgICAoX19pKSA8IChfX3N0YXRlKS0+ZGV2LT5tb2RlX2NvbmZpZy5udW1fY3J0YyAmJgkJXAo+ ICsJICAgICAoKGNydGMpID0gKF9fc3RhdGUpLT5jcnRjc1tfX2ldLnB0ciwJCQlcCj4gKwkgICAg IChvbGRfY3J0Y19zdGF0ZSkgPSAoX19zdGF0ZSktPmNydGNzW19faV0ub2xkX3N0YXRlLAlcCj4g KwkgICAgIChuZXdfY3J0Y19zdGF0ZSkgPSAoX19zdGF0ZSktPmNydGNzW19faV0ubmV3X3N0YXRl LCAxKTsJXAo+ICsJICAgICAoX19pKSsrKQkJCQkJCQlcCj4gKwkJZm9yX2VhY2hfaWYgKGNydGMp Cj4gKwo+ICsjZGVmaW5lIGZvcl9lYWNoX29sZF9jcnRjX2luX3N0YXRlKF9fc3RhdGUsIGNydGMs IG9sZF9jcnRjX3N0YXRlLCBfX2kpCVwKPiArCWZvciAoKF9faSkgPSAwOwkJCQkJCQlcCj4gKwkg ICAgIChfX2kpIDwgKF9fc3RhdGUpLT5kZXYtPm1vZGVfY29uZmlnLm51bV9jcnRjICYmCQlcCj4g KwkgICAgICgoY3J0YykgPSAoX19zdGF0ZSktPmNydGNzW19faV0ucHRyLAkJCVwKPiArCSAgICAg KG9sZF9jcnRjX3N0YXRlKSA9IChfX3N0YXRlKS0+Y3J0Y3NbX19pXS5vbGRfc3RhdGUsIDEpOwlc Cj4gKwkgICAgIChfX2kpKyspCQkJCQkJCVwKPiArCQlmb3JfZWFjaF9pZiAoY3J0YykKPiArCj4g KyNkZWZpbmUgZm9yX2VhY2hfbmV3X2NydGNfaW5fc3RhdGUoX19zdGF0ZSwgY3J0YywgbmV3X2Ny dGNfc3RhdGUsIF9faSkJXAo+ICsJZm9yICgoX19pKSA9IDA7CQkJCQkJCVwKPiArCSAgICAgKF9f aSkgPCAoX19zdGF0ZSktPmRldi0+bW9kZV9jb25maWcubnVtX2NydGMgJiYJCVwKPiArCSAgICAg KChjcnRjKSA9IChfX3N0YXRlKS0+Y3J0Y3NbX19pXS5wdHIsCQkJXAo+ICsJICAgICAobmV3X2Ny dGNfc3RhdGUpID0gKF9fc3RhdGUpLT5jcnRjc1tfX2ldLm5ld19zdGF0ZSwgMSk7CVwKPiArCSAg ICAgKF9faSkrKykJCQkJCQkJXAo+ICsJCWZvcl9lYWNoX2lmIChjcnRjKQo+ICsKPiAgI2RlZmlu ZSBmb3JfZWFjaF9wbGFuZV9pbl9zdGF0ZShfX3N0YXRlLCBwbGFuZSwgcGxhbmVfc3RhdGUsIF9f aSkJCVwKPiAgCWZvciAoKF9faSkgPSAwOwkJCQkJCQlcCj4gIAkgICAgIChfX2kpIDwgKF9fc3Rh dGUpLT5kZXYtPm1vZGVfY29uZmlnLm51bV90b3RhbF9wbGFuZSAmJglcCj4gQEAgLTM4OCw2ICs0 MzgsMzEgQEAgaW50IF9fbXVzdF9jaGVjayBkcm1fYXRvbWljX25vbmJsb2NraW5nX2NvbW1pdChz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwo+ICAJICAgICAoX19pKSsrKQkJCQkJCQlc Cj4gIAkJZm9yX2VhY2hfaWYgKHBsYW5lX3N0YXRlKQo+ICAKPiArI2RlZmluZSBmb3JfZWFjaF9v bGRuZXdfcGxhbmVfaW5fc3RhdGUoX19zdGF0ZSwgcGxhbmUsIG9sZF9wbGFuZV9zdGF0ZSwgbmV3 X3BsYW5lX3N0YXRlLCBfX2kpIFwKPiArCWZvciAoKF9faSkgPSAwOwkJCQkJCQlcCj4gKwkgICAg IChfX2kpIDwgKF9fc3RhdGUpLT5kZXYtPm1vZGVfY29uZmlnLm51bV90b3RhbF9wbGFuZSAmJglc Cj4gKwkgICAgICgocGxhbmUpID0gKF9fc3RhdGUpLT5wbGFuZXNbX19pXS5wdHIsCQkJXAo+ICsJ ICAgICAob2xkX3BsYW5lX3N0YXRlKSA9IChfX3N0YXRlKS0+cGxhbmVzW19faV0ub2xkX3N0YXRl LAlcCj4gKwkgICAgIChuZXdfcGxhbmVfc3RhdGUpID0gKF9fc3RhdGUpLT5wbGFuZXNbX19pXS5u ZXdfc3RhdGUsIDEpOwlcCj4gKwkgICAgIChfX2kpKyspCQkJCQkJCVwKPiArCQlmb3JfZWFjaF9p ZiAocGxhbmUpCj4gKwo+ICsjZGVmaW5lIGZvcl9lYWNoX29sZF9wbGFuZV9pbl9zdGF0ZShfX3N0 YXRlLCBwbGFuZSwgb2xkX3BsYW5lX3N0YXRlLCBfX2kpIFwKPiArCWZvciAoKF9faSkgPSAwOwkJ CQkJCQlcCj4gKwkgICAgIChfX2kpIDwgKF9fc3RhdGUpLT5kZXYtPm1vZGVfY29uZmlnLm51bV90 b3RhbF9wbGFuZSAmJglcCj4gKwkgICAgICgocGxhbmUpID0gKF9fc3RhdGUpLT5wbGFuZXNbX19p XS5wdHIsCQkJXAo+ICsJICAgICAob2xkX3BsYW5lX3N0YXRlKSA9IChfX3N0YXRlKS0+cGxhbmVz W19faV0ub2xkX3N0YXRlLCAxKTsJXAo+ICsJICAgICAoX19pKSsrKQkJCQkJCQlcCj4gKwkJZm9y X2VhY2hfaWYgKHBsYW5lKQo+ICsKPiArI2RlZmluZSBmb3JfZWFjaF9uZXdfcGxhbmVfaW5fc3Rh dGUoX19zdGF0ZSwgcGxhbmUsIG5ld19wbGFuZV9zdGF0ZSwgX19pKSBcCj4gKwlmb3IgKChfX2kp ID0gMDsJCQkJCQkJXAo+ICsJICAgICAoX19pKSA8IChfX3N0YXRlKS0+ZGV2LT5tb2RlX2NvbmZp Zy5udW1fdG90YWxfcGxhbmUgJiYJXAo+ICsJICAgICAoKHBsYW5lKSA9IChfX3N0YXRlKS0+cGxh bmVzW19faV0ucHRyLAkJCVwKPiArCSAgICAgKG5ld19wbGFuZV9zdGF0ZSkgPSAoX19zdGF0ZSkt PnBsYW5lc1tfX2ldLm5ld19zdGF0ZSwgMSk7CVwKPiArCSAgICAgKF9faSkrKykJCQkJCQkJXAo+ ICsJCWZvcl9lYWNoX2lmIChwbGFuZSkKPiArCj4gIC8qKgo+ICAgKiBkcm1fYXRvbWljX2NydGNf bmVlZHNfbW9kZXNldCAtIGNvbXB1dGUgY29tYmluZWQgbW9kZXNldCBuZWVkCj4gICAqIEBzdGF0 ZTogJmRybV9jcnRjX3N0YXRlIGZvciB0aGUgQ1JUQwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2Ry bS9kcm1fYXRvbWljX2hlbHBlci5oIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaAo+ IGluZGV4IDdmZjkyYjA5ZmQ5Yy4uNjEzYmI3MzFiYTM2IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUv ZHJtL2RybV9hdG9taWNfaGVscGVyLmgKPiArKysgYi9pbmNsdWRlL2RybS9kcm1fYXRvbWljX2hl bHBlci5oCj4gQEAgLTEwOCw2ICsxMDgsOSBAQCBpbnQgX19kcm1fYXRvbWljX2hlbHBlcl9zZXRf Y29uZmlnKHN0cnVjdCBkcm1fbW9kZV9zZXQgKnNldCwKPiAgaW50IGRybV9hdG9taWNfaGVscGVy X2Rpc2FibGVfYWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCQkgIHN0cnVjdCBkcm1f bW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4KTsKPiAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKmRy bV9hdG9taWNfaGVscGVyX3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gK2ludCBk cm1fYXRvbWljX2hlbHBlcl9jb21taXRfZHVwbGljYXRlZF9zdGF0ZShzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqc3RhdGUsCj4gKwkJCQkJICAgICAgc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVf Y3R4ICpjdHgsCj4gKwkJCQkJICAgICAgYm9vbCBub25ibG9jayk7Cj4gIGludCBkcm1fYXRvbWlj X2hlbHBlcl9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkJICAgICBzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwo+ICAKPiAtLSAKPiAyLjcuNAo+IAo+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKLS0gClZpbGxlIFN5 cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVsCg==