From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id B4BD46E874 for ; Fri, 11 Jun 2021 08:57:41 +0000 (UTC) Date: Fri, 11 Jun 2021 10:57:35 +0200 From: Zbigniew =?utf-8?Q?Kempczy=C5=84ski?= Message-ID: <20210611085735.GE3298@zkempczy-mobl2> References: <20210609131522.1794-1-andrzej.turko@linux.intel.com> <20210609131522.1794-4-andrzej.turko@linux.intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20210609131522.1794-4-andrzej.turko@linux.intel.com> Subject: Re: [igt-dev] [PATCH i-g-t 3/3] lib/intel_allocator: Add support for regions of allocation List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Andrzej Turko Cc: igt-dev@lists.freedesktop.org List-ID: T24gV2VkLCBKdW4gMDksIDIwMjEgYXQgMDM6MTU6MjJQTSArMDIwMCwgQW5kcnplaiBUdXJrbyB3 cm90ZToKPiBFbmFibGUgY3JlYXRpbmcgYWxsb2NhdG9ycyBtYW5hZ2luZyBvbmx5IGEgZ2l2ZW4g aW50ZXJ2YWwKPiBvZiBhdmFpbGFibGUgZ3R0IGZvciBhbGwgaW1wbGVtZW50YXRpb25zLCBub3Qg anVzdCB0aGUKPiBzaW1wbGUgYWxsb2NhdG9yLiBBZGRpdGluYWxseSwgc2V0IGEgdW5pdmVyc2Fs IGxvd2VyCj4gYm91bmQgb24gYWxpZ25tZW50IHRvIDQwOTYuCj4gCj4gU2lnbmVkLW9mZi1ieTog QW5kcnplaiBUdXJrbyA8YW5kcnplai50dXJrb0BsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IFpiaWdu aWV3IEtlbXBjennFhHNraSA8emJpZ25pZXcua2VtcGN6eW5za2lAaW50ZWwuY29tPgo+IC0tLQo+ ICBsaWIvaW50ZWxfYWxsb2NhdG9yLmMgICAgICAgIHwgMTQgKysrKysrKysrLS0tLS0KPiAgbGli L2ludGVsX2FsbG9jYXRvcl9yYW5kb20uYyB8IDMwICsrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLQo+ICBsaWIvaW50ZWxfYWxsb2NhdG9yX3JlbG9jLmMgIHwgMTggKysrKysrKysrKysrLS0t LS0tCj4gIGxpYi9pbnRlbF9hbGxvY2F0b3Jfc2ltcGxlLmMgfCAgMSAtCj4gIDQgZmlsZXMgY2hh bmdlZCwgNDAgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBh L2xpYi9pbnRlbF9hbGxvY2F0b3IuYyBiL2xpYi9pbnRlbF9hbGxvY2F0b3IuYwo+IGluZGV4IGE3 OGE2NjFiMS4uODI4NzUyMjRkIDEwMDY0NAo+IC0tLSBhL2xpYi9pbnRlbF9hbGxvY2F0b3IuYwo+ ICsrKyBiL2xpYi9pbnRlbF9hbGxvY2F0b3IuYwo+IEBAIC02NCw4ICs2NCwxMCBAQCBzdHJ1Y3Qg aGFuZGxlX2VudHJ5IHsKPiAgCXN0cnVjdCBhbGxvY2F0b3IgKmFsOwo+ICB9Owo+ICAKPiAtc3Ry dWN0IGludGVsX2FsbG9jYXRvciAqaW50ZWxfYWxsb2NhdG9yX3JlbG9jX2NyZWF0ZShpbnQgZmQs IHVpbnQ2NF90IGVuZCk7Cj4gLXN0cnVjdCBpbnRlbF9hbGxvY2F0b3IgKmludGVsX2FsbG9jYXRv cl9yYW5kb21fY3JlYXRlKGludCBmZCwgdWludDY0X3QgZW5kKTsKPiArc3RydWN0IGludGVsX2Fs bG9jYXRvciAqCj4gK2ludGVsX2FsbG9jYXRvcl9yZWxvY19jcmVhdGUoaW50IGZkLCB1aW50NjRf dCBzdGFydCwgdWludDY0X3QgZW5kKTsKPiArc3RydWN0IGludGVsX2FsbG9jYXRvciAqCj4gK2lu dGVsX2FsbG9jYXRvcl9yYW5kb21fY3JlYXRlKGludCBmZCwgdWludDY0X3Qgc3RhcnQsIHVpbnQ2 NF90IGVuZCk7Cj4gIHN0cnVjdCBpbnRlbF9hbGxvY2F0b3IgKgo+ICBpbnRlbF9hbGxvY2F0b3Jf c2ltcGxlX2NyZWF0ZShpbnQgZmQsIHVpbnQ2NF90IHN0YXJ0LCB1aW50NjRfdCBlbmQsCj4gIAkJ CSAgICAgIGVudW0gYWxsb2NhdG9yX3N0cmF0ZWd5IHN0cmF0ZWd5KTsKPiBAQCAtMjkxLDEwICsy OTMsMTAgQEAgc3RhdGljIHN0cnVjdCBpbnRlbF9hbGxvY2F0b3IgKmludGVsX2FsbG9jYXRvcl9j cmVhdGUoaW50IGZkLAo+ICAJCQkgICAgICJXZSBjYW5ub3QgdXNlIE5PTkUgYWxsb2NhdG9yXG4i KTsKPiAgCQlicmVhazsKPiAgCWNhc2UgSU5URUxfQUxMT0NBVE9SX1JFTE9DOgo+IC0JCWlhbCA9 IGludGVsX2FsbG9jYXRvcl9yZWxvY19jcmVhdGUoZmQsIGVuZCk7Cj4gKwkJaWFsID0gaW50ZWxf YWxsb2NhdG9yX3JlbG9jX2NyZWF0ZShmZCwgc3RhcnQsIGVuZCk7Cj4gIAkJYnJlYWs7Cj4gIAlj YXNlIElOVEVMX0FMTE9DQVRPUl9SQU5ET006Cj4gLQkJaWFsID0gaW50ZWxfYWxsb2NhdG9yX3Jh bmRvbV9jcmVhdGUoZmQsIGVuZCk7Cj4gKwkJaWFsID0gaW50ZWxfYWxsb2NhdG9yX3JhbmRvbV9j cmVhdGUoZmQsIHN0YXJ0LCBlbmQpOwo+ICAJCWJyZWFrOwo+ICAJY2FzZSBJTlRFTF9BTExPQ0FU T1JfU0lNUExFOgo+ICAJCWlhbCA9IGludGVsX2FsbG9jYXRvcl9zaW1wbGVfY3JlYXRlKGZkLCBz dGFydCwgZW5kLAo+IEBAIC0xMDc4LDEwICsxMDgwLDEyIEBAIHVpbnQ2NF90IF9faW50ZWxfYWxs b2NhdG9yX2FsbG9jKHVpbnQ2NF90IGFsbG9jYXRvcl9oYW5kbGUsIHVpbnQzMl90IGhhbmRsZSwK PiAgCQkJCSAuYWxsb2NhdG9yX2hhbmRsZSA9IGFsbG9jYXRvcl9oYW5kbGUsCj4gIAkJCQkgLmFs bG9jLmhhbmRsZSA9IGhhbmRsZSwKPiAgCQkJCSAuYWxsb2Muc2l6ZSA9IHNpemUsCj4gLQkJCQkg LmFsbG9jLmFsaWdubWVudCA9IGFsaWdubWVudCwKPiAgCQkJCSAuYWxsb2Muc3RyYXRlZ3kgPSBz dHJhdGVneSB9Owo+ICAJc3RydWN0IGFsbG9jX3Jlc3AgcmVzcDsKPiAgCj4gKwlpZ3RfYXNzZXJ0 KChhbGlnbm1lbnQgJiAoYWxpZ25tZW50LTEpKSA9PSAwKTsKPiArCXJlcS5hbGxvYy5hbGlnbm1l bnQgPSBtYXgoYWxpZ25tZW50LCAxIDw8IDEyKTsKPiArCj4gIAlpZ3RfYXNzZXJ0KGhhbmRsZV9y ZXF1ZXN0KCZyZXEsICZyZXNwKSA9PSAwKTsKPiAgCWlndF9hc3NlcnQocmVzcC5yZXNwb25zZV90 eXBlID09IFJFU1BfQUxMT0MpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvbGliL2ludGVsX2FsbG9jYXRv cl9yYW5kb20uYyBiL2xpYi9pbnRlbF9hbGxvY2F0b3JfcmFuZG9tLmMKPiBpbmRleCA4NWFjMmNm NGUuLjFkMjk2OTYxOCAxMDA2NDQKPiAtLS0gYS9saWIvaW50ZWxfYWxsb2NhdG9yX3JhbmRvbS5j Cj4gKysrIGIvbGliL2ludGVsX2FsbG9jYXRvcl9yYW5kb20uYwo+IEBAIC0xMCwxMiArMTAsMTIg QEAKPiAgI2luY2x1ZGUgImlndF9yYW5kLmgiCj4gICNpbmNsdWRlICJpbnRlbF9hbGxvY2F0b3Iu aCIKPiAgCj4gLXN0cnVjdCBpbnRlbF9hbGxvY2F0b3IgKmludGVsX2FsbG9jYXRvcl9yYW5kb21f Y3JlYXRlKGludCBmZCwgdWludDY0X3QgZW5kKTsKPiArc3RydWN0IGludGVsX2FsbG9jYXRvciAq Cj4gK2ludGVsX2FsbG9jYXRvcl9yYW5kb21fY3JlYXRlKGludCBmZCwgdWludDY0X3Qgc3RhcnQs IHVpbnQ2NF90IGVuZCk7Cj4gIAo+ICBzdHJ1Y3QgaW50ZWxfYWxsb2NhdG9yX3JhbmRvbSB7Cj4g LQl1aW50NjRfdCBiaWFzOwo+ICAJdWludDMyX3QgcHJuZzsKPiAtCXVpbnQ2NF90IGFkZHJlc3Nf bWFzazsKPiArCXVpbnQ2NF90IHNpemVfbWFzazsKPiAgCXVpbnQ2NF90IHN0YXJ0Owo+ICAJdWlu dDY0X3QgZW5kOwo+ICAKPiBAQCAtMjMsNiArMjMsNyBAQCBzdHJ1Y3QgaW50ZWxfYWxsb2NhdG9y X3JhbmRvbSB7Cj4gIAl1aW50NjRfdCBhbGxvY2F0ZWRfb2JqZWN0czsKPiAgfTsKPiAgCj4gKy8q IEtlZXAgdGhlIGxvdyAyNTZrIGNsZWFyLCBmb3IgbmVnYXRpdmUgZGVsdGFzICovCj4gICNkZWZp bmUgQklBUyAyNTYgPDwgMTAKPiAKCiNkZWZpbmUgUkVUUklFUyA4CiAKPiAgc3RhdGljIHZvaWQg aW50ZWxfYWxsb2NhdG9yX3JhbmRvbV9nZXRfYWRkcmVzc19yYW5nZShzdHJ1Y3QgaW50ZWxfYWxs b2NhdG9yICppYWwsCj4gQEAgLTQ1LDE2ICs0NiwyMiBAQCBzdGF0aWMgdWludDY0X3QgaW50ZWxf YWxsb2NhdG9yX3JhbmRvbV9hbGxvYyhzdHJ1Y3QgaW50ZWxfYWxsb2NhdG9yICppYWwsCj4gIHsK PiAgCXN0cnVjdCBpbnRlbF9hbGxvY2F0b3JfcmFuZG9tICppYWxyID0gaWFsLT5wcml2Owo+ICAJ dWludDY0X3Qgb2Zmc2V0Owo+ICsJaW50IGNudCA9IDA7CgppbnQgY250ID0gUkVUUklFUzsKCj4g IAo+ICAJKHZvaWQpIGhhbmRsZTsKPiAgCSh2b2lkKSBzdHJhdGVneTsKPiAgCj4gIAkvKiByYW5k b21pemUgdGhlIGFkZHJlc3MsIHdlIHRyeSB0byBhdm9pZCByZWxvY2F0aW9ucyAqLwo+ICAJZG8g ewo+ICsJCS8qIHRoZSBvYmplY3Qgd29uJ3QgZml0IGluIHRoZSBhZGRyZXNzIHJhbmdlICovCj4g KwkJaWYgKGNudCA+IDMpIHJldHVybiBBTExPQ19JTlZBTElEX0FERFJFU1M7Cj4gKwo+ICAJCW9m ZnNldCA9IGhhcnNfcGV0cnVza2FfZjU0XzFfcmFuZG9tNjQoJmlhbHItPnBybmcpOwo+IC0JCW9m ZnNldCArPSBpYWxyLT5iaWFzOyAvKiBLZWVwIHRoZSBsb3cgMjU2ayBjbGVhciwgZm9yIG5lZ2F0 aXZlIGRlbHRhcyAqLwo+IC0JCW9mZnNldCAmPSBpYWxyLT5hZGRyZXNzX21hc2s7Cj4gLQkJb2Zm c2V0ICY9IH4oYWxpZ25tZW50IC0gMSk7Cj4gKwkJaWYgKGNudCsrID09IDMpIG9mZnNldCA9IDA7 Cj4gKwo+ICsJCW9mZnNldCAmPSBpYWxyLT5zaXplX21hc2s7Cj4gKwkJb2Zmc2V0ICs9IGlhbHIt PnN0YXJ0Owo+ICsJCW9mZnNldCA9IEFMSUdOKG9mZnNldCwgYWxpZ25tZW50KTsKPiAgCX0gd2hp bGUgKG9mZnNldCArIHNpemUgPiBpYWxyLT5lbmQpOwoKTWF5YmU6CgovKiBXZSB3b24ndCBmaXQg YXQgYWxsICovCmlmIChzaXplID4gaWFsci0+ZW5kIC0gaWFsci0+c3RhcnQpCglyZXR1cm4gQUxM T0NfSU5WQUxJRF9BRERSRVNTOwoKZG8gewoJb2Zmc2V0ID0gaGFyc19wZXRydXNrYV9mNTRfMV9y YW5kb202NCgmaWFsci0+cHJuZyk7CglvZmZzZXQgJj0gaWFsci0+c2l6ZV9tYXNrOwoJb2Zmc2V0 ICs9IGlhbHItPnN0YXJ0OwoJb2Zmc2V0ID0gQUxJR04ob2Zmc2V0LCBhbGlnbm1lbnQpOwp9IHdo aWxlIChvZmZzZXQgKyBzaXplID4gaWFsci0+ZW5kICYmIGNudC0tKTsKCmlmICghY250KQoJcmV0 dXJuIEFMTE9DX0lOVkFMSURfQUREUkVTUzsKCndpbGwgYmUgbW9yZSByZWFkYWJsZT8gIAoKPiAg Cj4gIAlpYWxyLT5hbGxvY2F0ZWRfb2JqZWN0cysrOwo+IEBAIC0xNDUsNyArMTUyLDggQEAgc3Rh dGljIGJvb2wgaW50ZWxfYWxsb2NhdG9yX3JhbmRvbV9pc19lbXB0eShzdHJ1Y3QgaW50ZWxfYWxs b2NhdG9yICppYWwpCj4gIAlyZXR1cm4gIWlhbHItPmFsbG9jYXRlZF9vYmplY3RzOwo+ICB9Cj4g IAo+IC1zdHJ1Y3QgaW50ZWxfYWxsb2NhdG9yICppbnRlbF9hbGxvY2F0b3JfcmFuZG9tX2NyZWF0 ZShpbnQgZmQsIHVpbnQ2NF90IGVuZCkKPiArc3RydWN0IGludGVsX2FsbG9jYXRvciAqCj4gK2lu dGVsX2FsbG9jYXRvcl9yYW5kb21fY3JlYXRlKGludCBmZCwgdWludDY0X3Qgc3RhcnQsIHVpbnQ2 NF90IGVuZCkKPiAgewo+ICAJc3RydWN0IGludGVsX2FsbG9jYXRvciAqaWFsOwo+ICAJc3RydWN0 IGludGVsX2FsbG9jYXRvcl9yYW5kb20gKmlhbHI7Cj4gQEAgLTE3MCwxMCArMTc4LDEwIEBAIHN0 cnVjdCBpbnRlbF9hbGxvY2F0b3IgKmludGVsX2FsbG9jYXRvcl9yYW5kb21fY3JlYXRlKGludCBm ZCwgdWludDY0X3QgZW5kKQo+ICAJaWd0X2Fzc2VydChpYWwtPnByaXYpOwo+ICAJaWFsci0+cHJu ZyA9ICh1aW50MzJfdCkgdG9fdXNlcl9wb2ludGVyKGlhbCk7Cj4gIAo+IC0JaWd0X2Fzc2VydChC SUFTIDwgZW5kKTsKPiAtCWlhbHItPmFkZHJlc3NfbWFzayA9ICgxVUxMIDw8IChpZ3RfZmxzKGVu ZCkgLSAxKSkgLSAxOwo+IC0JaWFsci0+YmlhcyA9IEJJQVM7Cj4gLQlpYWxyLT5zdGFydCA9IGlh bHItPmJpYXM7Cj4gKwlzdGFydCA9IG1heChzdGFydCwgQklBUyk7Cj4gKwlpZ3RfYXNzZXJ0KHN0 YXJ0IDwgZW5kKTsKPiArCWlhbHItPnNpemVfbWFzayA9ICgxVUxMIDw8IChpZ3RfZmxzKGVuZCAt IHN0YXJ0KSAtIDEpKSAtIDE7Cj4gKwlpYWxyLT5zdGFydCA9IHN0YXJ0Owo+ICAJaWFsci0+ZW5k ID0gZW5kOwoKTm8sIG1hc2sgd2lsbCBiZSBpbnZhbGlkIGluIHRoaXMgY2FzZS4KCi0tClpiaWdu aWV3Cgo+ICAKPiAgCWlhbHItPmFsbG9jYXRlZF9vYmplY3RzID0gMDsKPiBkaWZmIC0tZ2l0IGEv bGliL2ludGVsX2FsbG9jYXRvcl9yZWxvYy5jIGIvbGliL2ludGVsX2FsbG9jYXRvcl9yZWxvYy5j Cj4gaW5kZXggNzAzZDA1NGM2Li4yNGIyYWVlYmMgMTAwNjQ0Cj4gLS0tIGEvbGliL2ludGVsX2Fs bG9jYXRvcl9yZWxvYy5jCj4gKysrIGIvbGliL2ludGVsX2FsbG9jYXRvcl9yZWxvYy5jCj4gQEAg LTEwLDEwICsxMCwxMCBAQAo+ICAjaW5jbHVkZSAiaWd0X3JhbmQuaCIKPiAgI2luY2x1ZGUgImlu dGVsX2FsbG9jYXRvci5oIgo+ICAKPiAtc3RydWN0IGludGVsX2FsbG9jYXRvciAqaW50ZWxfYWxs b2NhdG9yX3JlbG9jX2NyZWF0ZShpbnQgZmQsIHVpbnQ2NF90IGVuZCk7Cj4gK3N0cnVjdCBpbnRl bF9hbGxvY2F0b3IgKgo+ICtpbnRlbF9hbGxvY2F0b3JfcmVsb2NfY3JlYXRlKGludCBmZCwgdWlu dDY0X3Qgc3RhcnQsIHVpbnQ2NF90IGVuZCk7Cj4gIAo+ICBzdHJ1Y3QgaW50ZWxfYWxsb2NhdG9y X3JlbG9jIHsKPiAtCXVpbnQ2NF90IGJpYXM7Cj4gIAl1aW50MzJfdCBwcm5nOwo+ICAJdWludDY0 X3Qgc3RhcnQ7Cj4gIAl1aW50NjRfdCBlbmQ7Cj4gQEAgLTIzLDYgKzIzLDcgQEAgc3RydWN0IGlu dGVsX2FsbG9jYXRvcl9yZWxvYyB7Cj4gIAl1aW50NjRfdCBhbGxvY2F0ZWRfb2JqZWN0czsKPiAg fTsKPiAgCj4gKy8qIEtlZXAgdGhlIGxvdyAyNTZrIGNsZWFyLCBmb3IgbmVnYXRpdmUgZGVsdGFz ICovCj4gICNkZWZpbmUgQklBUyAyNTYgPDwgMTAKPiAgCj4gIHN0YXRpYyB2b2lkIGludGVsX2Fs bG9jYXRvcl9yZWxvY19nZXRfYWRkcmVzc19yYW5nZShzdHJ1Y3QgaW50ZWxfYWxsb2NhdG9yICpp YWwsCj4gQEAgLTQ5LDEzICs1MCwxNiBAQCBzdGF0aWMgdWludDY0X3QgaW50ZWxfYWxsb2NhdG9y X3JlbG9jX2FsbG9jKHN0cnVjdCBpbnRlbF9hbGxvY2F0b3IgKmlhbCwKPiAgCSh2b2lkKSBoYW5k bGU7Cj4gIAkodm9pZCkgc3RyYXRlZ3k7Cj4gIAo+IC0JYWxpZ25tZW50ID0gbWF4KGFsaWdubWVu dCwgNDA5Nik7Cj4gIAlhbGlnbmVkX29mZnNldCA9IEFMSUdOKGlhbHItPm9mZnNldCwgYWxpZ25t ZW50KTsKPiAgCj4gIAkvKiBDaGVjayB3ZSB3b24ndCBleGNlZWQgZW5kICovCj4gIAlpZiAoYWxp Z25lZF9vZmZzZXQgKyBzaXplID4gaWFsci0+ZW5kKQo+ICAJCWFsaWduZWRfb2Zmc2V0ID0gQUxJ R04oaWFsci0+c3RhcnQsIGFsaWdubWVudCk7Cj4gIAo+ICsJLyogQ2hlY2sgdGhhdCB0aGUgb2Jq ZWN0IGZpdHMgaW4gdGhlIGFkZHJlc3MgcmFuZ2UgKi8KPiArCWlmIChhbGlnbmVkX29mZnNldCAr IHNpemUgPiBpYWxyLT5lbmQpCj4gKwkJcmV0dXJuIEFMTE9DX0lOVkFMSURfQUREUkVTUzsKPiAr Cj4gIAlvZmZzZXQgPSBhbGlnbmVkX29mZnNldDsKPiAgCWlhbHItPm9mZnNldCA9IG9mZnNldCAr IHNpemU7Cj4gIAlpYWxyLT5hbGxvY2F0ZWRfb2JqZWN0cysrOwo+IEBAIC0xNDYsNyArMTUwLDgg QEAgc3RhdGljIGJvb2wgaW50ZWxfYWxsb2NhdG9yX3JlbG9jX2lzX2VtcHR5KHN0cnVjdCBpbnRl bF9hbGxvY2F0b3IgKmlhbCkKPiAgCXJldHVybiAhaWFsci0+YWxsb2NhdGVkX29iamVjdHM7Cj4g IH0KPiAgCj4gLXN0cnVjdCBpbnRlbF9hbGxvY2F0b3IgKmludGVsX2FsbG9jYXRvcl9yZWxvY19j cmVhdGUoaW50IGZkLCB1aW50NjRfdCBlbmQpCj4gK3N0cnVjdCBpbnRlbF9hbGxvY2F0b3IgKgo+ ICtpbnRlbF9hbGxvY2F0b3JfcmVsb2NfY3JlYXRlKGludCBmZCwgdWludDY0X3Qgc3RhcnQsIHVp bnQ2NF90IGVuZCkKPiAgewo+ICAJc3RydWN0IGludGVsX2FsbG9jYXRvciAqaWFsOwo+ICAJc3Ry dWN0IGludGVsX2FsbG9jYXRvcl9yZWxvYyAqaWFscjsKPiBAQCAtMTcxLDggKzE3Niw5IEBAIHN0 cnVjdCBpbnRlbF9hbGxvY2F0b3IgKmludGVsX2FsbG9jYXRvcl9yZWxvY19jcmVhdGUoaW50IGZk LCB1aW50NjRfdCBlbmQpCj4gIAlpZ3RfYXNzZXJ0KGlhbC0+cHJpdik7Cj4gIAlpYWxyLT5wcm5n ID0gKHVpbnQzMl90KSB0b191c2VyX3BvaW50ZXIoaWFsKTsKPiAgCj4gLQlpYWxyLT5iaWFzID0g aWFsci0+b2Zmc2V0ID0gQklBUzsKPiAtCWlhbHItPnN0YXJ0ID0gaWFsci0+YmlhczsKPiArCXN0 YXJ0ID0gbWF4KHN0YXJ0LCBCSUFTKTsKPiArCWlndF9hc3NlcnQoc3RhcnQgPCBlbmQpOwo+ICsJ aWFsci0+b2Zmc2V0ID0gaWFsci0+c3RhcnQgPSBzdGFydDsKPiAgCWlhbHItPmVuZCA9IGVuZDsK PiAgCj4gIAlpYWxyLT5hbGxvY2F0ZWRfb2JqZWN0cyA9IDA7Cj4gZGlmZiAtLWdpdCBhL2xpYi9p bnRlbF9hbGxvY2F0b3Jfc2ltcGxlLmMgYi9saWIvaW50ZWxfYWxsb2NhdG9yX3NpbXBsZS5jCj4g aW5kZXggNjAyMmU4MzJiLi4wZTY3NjM5NjQgMTAwNjQ0Cj4gLS0tIGEvbGliL2ludGVsX2FsbG9j YXRvcl9zaW1wbGUuYwo+ICsrKyBiL2xpYi9pbnRlbF9hbGxvY2F0b3Jfc2ltcGxlLmMKPiBAQCAt NDE5LDcgKzQxOSw2IEBAIHN0YXRpYyB1aW50NjRfdCBpbnRlbF9hbGxvY2F0b3Jfc2ltcGxlX2Fs bG9jKHN0cnVjdCBpbnRlbF9hbGxvY2F0b3IgKmlhbCwKPiAgCWlhbHMgPSAoc3RydWN0IGludGVs X2FsbG9jYXRvcl9zaW1wbGUgKikgaWFsLT5wcml2Owo+ICAJaWd0X2Fzc2VydChpYWxzKTsKPiAg CWlndF9hc3NlcnQoaGFuZGxlKTsKPiAtCWFsaWdubWVudCA9IGFsaWdubWVudCA+IDAgPyBhbGln bm1lbnQgOiAxOwo+ICAKPiAgCXJlYyA9IGlndF9tYXBfc2VhcmNoKGlhbHMtPm9iamVjdHMsICZo YW5kbGUpOwo+ICAJaWYgKHJlYykgewo+IC0tIAo+IDIuMjUuMQo+IApfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3Qt ZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK